@openscout/scout 0.2.98 → 0.2.102
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +7 -0
- package/bin/scoutd +0 -0
- package/dist/build-manifest.json +3 -3
- package/dist/client/assets/ActivityScreen-DCALiEXY.js +1 -0
- package/dist/client/assets/{AddProjectForm-fXndbzXT.js → AddProjectForm-DfbjlFfy.js} +1 -1
- package/dist/client/assets/AdventureEvidence-Dzz9VbuE.js +5 -0
- package/dist/client/assets/AdventureReader-ClMxT0e4.js +4 -0
- package/dist/client/assets/AdventureScenery-D548O0x4.js +1 -0
- package/dist/client/assets/AgentAdventures-NwTKeF0F.js +1 -0
- package/dist/client/assets/AgentAvatar-BIwg54Tj.js +1 -0
- package/dist/client/assets/AgentConfigurationScreen-B2Hw0ce1.js +1 -0
- package/dist/client/assets/AgentDefinitionsWorkspace-CwZJ833X.js +1 -0
- package/dist/client/assets/AgentDetailCard-CFDE8TLi.js +1 -0
- package/dist/client/assets/AgentFloorView-l2wNKFob.js +1 -0
- package/dist/client/assets/AgentFloorWorld-BDJmXl3C.js +1 -0
- package/dist/client/assets/AgentInfoScreen-ClZM1wQb.js +1 -0
- package/dist/client/assets/{AgentLaneCard-Cc9uyfBr.js → AgentLaneCard-C6YmwPxQ.js} +1 -1
- package/dist/client/assets/{AgentLaneChrome-Dv2lBFoH.js → AgentLaneChrome-D9uJ4QY7.js} +1 -1
- package/dist/client/assets/{AgentLaneDetailSheet-CGqtqSHQ.js → AgentLaneDetailSheet-KYckCBCX.js} +2 -2
- package/dist/client/assets/{AgentLaneSummaryResize-Di4u6df2.js → AgentLaneSummaryResize-BBYBS3DO.js} +1 -1
- package/dist/client/assets/AgentLanesEmbedScreen-DqHwqY0X.js +1 -0
- package/dist/client/assets/{AgentLanesPreflight-CCGBArIb.js → AgentLanesPreflight-pw2vMO3Q.js} +1 -1
- package/dist/client/assets/AgentLanesView-aAyC7lHf.js +2 -0
- package/dist/client/assets/AgentLiveActions-lYzicnNa.js +1 -0
- package/dist/client/assets/AgentMasterScreen-By6DN0jF.js +1 -0
- package/dist/client/assets/AgentSessions-Cox2zS-e.js +6 -0
- package/dist/client/assets/AgentsConsole-Dq0S_hRA.js +1 -0
- package/dist/client/assets/AgentsScreen-Bi9Lx47B.js +1 -0
- package/dist/client/assets/AgentsSubnav-BOobgtGE.js +1 -0
- package/dist/client/assets/{AstronautSuit-CwB4Dw07.js → AstronautSuit-C-4I5YKi.js} +1 -1
- package/dist/client/assets/AtopView-DKm-ERYC.js +1 -0
- package/dist/client/assets/BackToPicker-Bys9ColC.js +1 -0
- package/dist/client/assets/BriefingDetailScreen-sprFl4Nk.js +1 -0
- package/dist/client/assets/BriefingsScreen-D4Zf31Y6.js +1 -0
- package/dist/client/assets/{BrokerMetadataPanel-BJSwU9XZ.js → BrokerMetadataPanel-1GoSl2BV.js} +1 -1
- package/dist/client/assets/BrokerScreen-CejzhRsB.js +8 -0
- package/dist/client/assets/{CastPicker-CkgTalIt.js → CastPicker-BuwE_JQp.js} +1 -1
- package/dist/client/assets/CharacterFamilyPreview-BniL8sEL.css +1 -0
- package/dist/client/assets/CharacterFamilyPreview-CfO3j8Of.js +1 -0
- package/dist/client/assets/ChatCollapsedStrip-TV0j1xTB.js +1 -0
- package/dist/client/assets/{CodeDiffPane-DfluIWmO.js → CodeDiffPane-DB6-mqtX.js} +1 -1
- package/dist/client/assets/{CodeProjectPicker-By_Wz9ex.js → CodeProjectPicker-B_LNLpIK.js} +1 -1
- package/dist/client/assets/CodeScreen-C9H160XS.js +1 -0
- package/dist/client/assets/CommsCanvas-BR2YS76H.css +1 -0
- package/dist/client/assets/CommsCanvas-DOKw3Q8i.js +1 -0
- package/dist/client/assets/CommsDeck-C18JA7rK.js +1 -0
- package/dist/client/assets/CommsFlowGraph-Czg-KTS0.js +1 -0
- package/dist/client/assets/CommsFlowGraph-vQucylxF.css +1 -0
- package/dist/client/assets/CommsFlowMap-CzBWvSa5.js +1 -0
- package/dist/client/assets/CommsSelection-g1twA-Lb.js +1 -0
- package/dist/client/assets/{ConversationComposer-BUIjWMBi.js → ConversationComposer-B7RU6LKd.js} +1 -1
- package/dist/client/assets/ConversationFeedRows-DVqnZQH0.js +1 -0
- package/dist/client/assets/ConversationHeader-CCSU8uo_.js +1 -0
- package/dist/client/assets/ConversationPanels-C9yCAoJy.js +6 -0
- package/dist/client/assets/ConversationScreen-Brfas2y0.css +1 -0
- package/dist/client/assets/ConversationScreen-tTP6B_F-.js +2 -0
- package/dist/client/assets/ConversationStatus-CK-YfLpi.js +1 -0
- package/dist/client/assets/{CrewAvatar-CZ_faQ_s.js → CrewAvatar-CJhuqTsJ.js} +1 -1
- package/dist/client/assets/CrewSprite-DsQJdu3Z.css +1 -0
- package/dist/client/assets/CrewSprite-hgpA3SWB.js +1 -0
- package/dist/client/assets/CrewWorkspaces-4O8dgRUD.js +1 -0
- package/dist/client/assets/{DataTable-C6aMSilS.js → DataTable-BMOZ1-z8.js} +1 -1
- package/dist/client/assets/DispatchAftermath-DDlwqSCY.js +1 -0
- package/dist/client/assets/DocumentFocusViewer-f12RRQpV.js +1 -0
- package/dist/client/assets/{EmbeddableSurfacesLab-D3iZiS8o.js → EmbeddableSurfacesLab-DGl9EMRV.js} +1 -1
- package/dist/client/assets/{EmptyState-CKPWFSjq.js → EmptyState-uyYN5piI.js} +1 -1
- package/dist/client/assets/{FileViewerPane-CxNbcTYf.js → FileViewerPane-HtiDbj9N.js} +2 -2
- package/dist/client/assets/FlightObserveScreen-DDXfNbsw.js +1 -0
- package/dist/client/assets/FloorContextSheet-DV-SYA0K.js +1 -0
- package/dist/client/assets/FloorExchangePanel-B3TFhjLk.css +1 -0
- package/dist/client/assets/FloorExchangePanel-D59nvRCF.js +1 -0
- package/dist/client/assets/FloorMessagePasses-BCwsz9VS.js +1 -0
- package/dist/client/assets/FloorMessagePasses-nxwwiUom.css +1 -0
- package/dist/client/assets/FloorReplay-BHo79HCD.js +1 -0
- package/dist/client/assets/FloorResourcesSheet-Djrgd_ZU.js +1 -0
- package/dist/client/assets/FloorSavedWork-2tjBoy06.js +1 -0
- package/dist/client/assets/FloorTacticalHUD-Bngao6sn.js +1 -0
- package/dist/client/assets/FollowScreen-eHXOlK-u.js +1 -0
- package/dist/client/assets/{HarnessMark-DttReffF.js → HarnessMark-Bt47OeHy.js} +1 -1
- package/dist/client/assets/HarnessesScreen-M84sFjWY.js +1 -0
- package/dist/client/assets/{HerdrSession-DsuxCtfX.js → HerdrSession-CtJOUn7H.js} +3 -3
- package/dist/client/assets/{HomeHero-DXJo2QSO.js → HomeHero-Cvwx2H0w.js} +1 -1
- package/dist/client/assets/HostAdvisorView-CTJXIc1Q.js +1 -0
- package/dist/client/assets/KnowledgeSearchInspector-DwGMVmFL.js +1 -0
- package/dist/client/assets/KnowledgeSearchScreen-WC0WhFio.js +1 -0
- package/dist/client/assets/{LaneToolHoverCard-t7-XJP-h.js → LaneToolHoverCard-C6YehJqD.js} +1 -1
- package/dist/client/assets/LaneTraceDetailSheet-mAhj7MJi.js +1 -0
- package/dist/client/assets/{LaneTraceEventFocus-BB5DhFQm.js → LaneTraceEventFocus-WLNZZVi_.js} +1 -1
- package/dist/client/assets/MeshCanvas-FDDGE69h.js +3 -0
- package/dist/client/assets/MeshCanvasMinimap-CGRzQCac.js +1 -0
- package/dist/client/assets/MeshScreen-DlfiMlaR.js +1 -0
- package/dist/client/assets/{MeshTopologyView-Dc0GSrKa.js → MeshTopologyView-C2Cv_2gx.js} +2 -2
- package/dist/client/assets/MessagesScreen-BZ7yaGJx.js +1 -0
- package/dist/client/assets/MissionContextRail-CVSZJnvX.js +1 -0
- package/dist/client/assets/MissionControlView-DpGhxG4a.js +1 -0
- package/dist/client/assets/MissionFocusOverlay-B9SiuO-i.js +1 -0
- package/dist/client/assets/MissionLeftAgentRow-DhhRRim0.js +1 -0
- package/dist/client/assets/MissionLogPane-CMBiI29U.js +1 -0
- package/dist/client/assets/NativeAreaScreen-BQyHHRAM.js +1 -0
- package/dist/client/assets/NativeAreaScreen-Ditv-TYW.js +1 -0
- package/dist/client/assets/NativeAreaScreen-Dq3uPSEI.js +1 -0
- package/dist/client/assets/NewAgentModal-Cl4nsGhu.js +1 -0
- package/dist/client/assets/NewChatComposer-JjLbm3W2.js +19 -0
- package/dist/client/assets/{NewChatOrigin-DCn5cWPZ.js → NewChatOrigin-CyPPWTJP.js} +1 -1
- package/dist/client/assets/NodeDetailPanel-BUG8rOb-.js +1 -0
- package/dist/client/assets/NodeMenu-Fw8ATWQA.js +1 -0
- package/dist/client/assets/ObserveEmbedScreen-BPiSXXvm.js +2 -0
- package/dist/client/assets/{ObserveTextFlow-DCJ5EmD8.js → ObserveTextFlow-ET0dD1wO.js} +2 -2
- package/dist/client/assets/{ObservedTopologyPanel-CJVqIqQ2.js → ObservedTopologyPanel-DkEkQzo-.js} +1 -1
- package/dist/client/assets/OpenScoutAppShell-CzKbjwCA.js +22 -0
- package/dist/client/assets/OpsAgentsView-CZbtkcQH.js +1 -0
- package/dist/client/assets/OpsScreen-DJq-aBmX.js +1 -0
- package/dist/client/assets/OpsSubnav-9sURjajO.js +1 -0
- package/dist/client/assets/ProjectAgentProfile-q_1tMJIL.js +1 -0
- package/dist/client/assets/{ProjectAgentProfileBar-CUzZ4Rpx.js → ProjectAgentProfileBar-C1fR65Eh.js} +1 -1
- package/dist/client/assets/ProjectAgentProfileHero-DyEFyTFs.js +1 -0
- package/dist/client/assets/ProjectsInbox-Bs8I__my.js +2 -0
- package/dist/client/assets/ProjectsRail-Deb38OJ1.js +1 -0
- package/dist/client/assets/ProjectsScreen-CgLiYiss.js +1 -0
- package/dist/client/assets/ProjectsThreadAside-C0Yw3yIL.js +1 -0
- package/dist/client/assets/Provider-5Hotn7NQ.js +5 -0
- package/dist/client/assets/{RailRow-B0sRaJc6.css → RailRow-B25zKEub.css} +1 -1
- package/dist/client/assets/RailRow-BYguXNm4.js +1 -0
- package/dist/client/assets/RawSessionsTable-DIhmlvk-.js +1 -0
- package/dist/client/assets/RealtimeVoiceScreen-3oU7b7V5.js +1 -0
- package/dist/client/assets/RenderedWorkerSprite-CvdWO32C.js +1 -0
- package/dist/client/assets/RenderedWorkerSprite-qnTfkd_4.css +1 -0
- package/dist/client/assets/ReplayClock-B7JLTp8A.js +1 -0
- package/dist/client/assets/ReplayLog-DZTpf2CW.js +1 -0
- package/dist/client/assets/ReplayOutpost-CvWQa30T.js +1 -0
- package/dist/client/assets/ReplayOutpost-Y1DvZgeu.css +1 -0
- package/dist/client/assets/{RepoDiffEmbedScreen-mexrJPhW.js → RepoDiffEmbedScreen-Cbu0_PJW.js} +1 -1
- package/dist/client/assets/{RepoDiffPageScreen-DbqX4L3q.js → RepoDiffPageScreen-Chwm6GXL.js} +1 -1
- package/dist/client/assets/RepoDiffViewer-C2mb0Wj-.js +7 -0
- package/dist/client/assets/RepoDiffViewerLazy-BQ6ZCrsq.js +2 -0
- package/dist/client/assets/{ReposScreen-CzbO1Fuy.js → ReposScreen-C7JZQmyh.js} +2 -2
- package/dist/client/assets/RiggedWorkerCharacter-BpYECnyK.css +1 -0
- package/dist/client/assets/RiggedWorkerCharacter-DNe731GE.js +1 -0
- package/dist/client/assets/SageModelStudio-768dRQr4.css +1 -0
- package/dist/client/assets/SageModelStudio-BR1J2D4R.js +4108 -0
- package/dist/client/assets/ScoutDeckSurface-flRamdvE.js +1 -0
- package/dist/client/assets/{ScoutSurface-NlhDsPzg.js → ScoutSurface-BpklGmDL.js} +1 -1
- package/dist/client/assets/{ScoutbotFxLab-l2WAahCg.js → ScoutbotFxLab-DeK7ySWZ.js} +1 -1
- package/dist/client/assets/{SecondaryNav-Cs0_FQdj.js → SecondaryNav-BkTn5tkq.js} +1 -1
- package/dist/client/assets/SessionEmbedScreen-CcQN6xlo.js +1 -0
- package/dist/client/assets/{SessionObserve-CLrHfAKZ.css → SessionObserve-BOBJSfs0.css} +1 -1
- package/dist/client/assets/SessionObserve-DaqDhqDI.js +12 -0
- package/dist/client/assets/SessionObserveEvidence-Drv-D8Oh.js +1 -0
- package/dist/client/assets/SessionRefScreen-BOQ1_ydg.js +1 -0
- package/dist/client/assets/SessionsScreen-R8QKvoey.js +1 -0
- package/dist/client/assets/SettingsDrawer-BDapR4E9.js +3 -0
- package/dist/client/assets/SettingsScreen-DirtO7Z0.js +1 -0
- package/dist/client/assets/SharedFloorCharacter-Bi5_md4R.css +1 -0
- package/dist/client/assets/SharedFloorCharacter-CSYG_t9t.js +1 -0
- package/dist/client/assets/SharedWorkFloor-BCmdeb3Q.css +1 -0
- package/dist/client/assets/SharedWorkFloor-yPWFLZwX.js +2 -0
- package/dist/client/assets/{ShikiPane-C0TuCATU.js → ShikiPane-BudrOxNK.js} +1 -1
- package/dist/client/assets/{SlidePanel-CETQ5NTx.js → SlidePanel-Datu7XG4.js} +1 -1
- package/dist/client/assets/SpriteAvatar-BW1JzkDt.js +1 -0
- package/dist/client/assets/SproutActionSprite-DveCzg6l.js +1 -0
- package/dist/client/assets/{StatusPill-BllrY-eg.js → StatusPill-MxYClPG5.js} +1 -1
- package/dist/client/assets/{TailView-_gKWfaQM.js → TailView-Dn7uWmPz.js} +2 -2
- package/dist/client/assets/Terminal-D-DsQlmV.js +4 -0
- package/dist/client/assets/TerminalEmbedScreen-9Gmln759.js +1 -0
- package/dist/client/assets/TerminalHeaderMount-DCGstkZ4.js +1 -0
- package/dist/client/assets/{TextDocumentSurface-2X1Gw4eA.js → TextDocumentSurface-BhYvAB0o.js} +1 -1
- package/dist/client/assets/{TmuxPeek-CqTJRhkI.js → TmuxPeek-BhK0V9Qt.js} +1 -1
- package/dist/client/assets/{VoicePermissionsPanel-C4vkU-sU.js → VoicePermissionsPanel-CecFWzva.js} +1 -1
- package/dist/client/assets/{WorkDetailScreen-DqGnuK0e.js → WorkDetailScreen-CwtRCm_-.js} +4 -4
- package/dist/client/assets/WorkFilesViewer-DJHftsH9.js +1 -0
- package/dist/client/assets/WorkRunView-CxwAZ2QQ.css +1 -0
- package/dist/client/assets/WorkRunView-x5PH1byG.js +1 -0
- package/dist/client/assets/WorldActorTalk-uIH2jGqA.js +1 -0
- package/dist/client/assets/WorldCharacter-Dn4sIXNP.js +1 -0
- package/dist/client/assets/WorldMinimap-Blqg0d5r.js +1 -0
- package/dist/client/assets/WorldSky-DV9bpvXj.js +1 -0
- package/dist/client/assets/{activity-CzTJ-YMX.js → activity-CSUhvjD0.js} +1 -1
- package/dist/client/assets/{addon-fit-Zx3A7pGS.js → addon-fit-MR98IWES.js} +1 -1
- package/dist/client/assets/{addon-webgl-DitJj-N0.js → addon-webgl-CIIKXrvK.js} +1 -1
- package/dist/client/assets/adventure-evidence-DgQbBmfa.css +1 -0
- package/dist/client/assets/adventure-habitats-v1-CVMbdB_Z.png +0 -0
- package/dist/client/assets/adventure-habitats-v1-M1lcpTJh.js +1 -0
- package/dist/client/assets/adventure-playback-DTfkhIc0.js +3 -0
- package/dist/client/assets/adventure-reader-DM5UDDm9.css +1 -0
- package/dist/client/assets/agent-adventures-DZtWpj6k.css +1 -0
- package/dist/client/assets/agent-autocomplete-CeHQpuG9.js +10 -0
- package/dist/client/assets/{agent-essentials-K9B6kbTS.js → agent-essentials-8t2il7PV.js} +1 -1
- package/dist/client/assets/{agent-floor-CuJr1iK1.css → agent-floor-Dmr9hZHL.css} +1 -1
- package/dist/client/assets/agent-floor-actor-3v9drnxh.js +1 -0
- package/dist/client/assets/agent-floor-world-Bnd1AtwK.css +1 -0
- package/dist/client/assets/agent-floor-world-layout-hfMjuoui.js +1 -0
- package/dist/client/assets/agent-lane-card-model-l0stnU9N.js +1 -0
- package/dist/client/assets/{agent-lane-detail-ppJId6Jc.js → agent-lane-detail-Db7KyAlf.js} +1 -1
- package/dist/client/assets/{agent-lane-preview-BhplDYGf.js → agent-lane-preview-B8lsQJOQ.js} +1 -1
- package/dist/client/assets/{agent-lanes-DlqcEf0l.css → agent-lanes-DmgipV9D.css} +1 -1
- package/dist/client/assets/agent-lanes-model-CX0wTcnF.js +4 -0
- package/dist/client/assets/agent-master-THmq-1k8.css +1 -0
- package/dist/client/assets/agent-master-model-C-KdOFDK.js +1 -0
- package/dist/client/assets/{agent-specialization-CtF_jI34.js → agent-specialization-CiVxQsFT.js} +1 -1
- package/dist/client/assets/agent-state-DDhnFEEP.js +1 -0
- package/dist/client/assets/{api-HFH8wFyb.js → api-B9_IqFKY.js} +1 -1
- package/dist/client/assets/api-CaROe5_H.js +1 -0
- package/dist/client/assets/{arc.es-BNXJqSw7.js → arc.es-BzhWalCl.js} +1 -1
- package/dist/client/assets/{arrow-down-BAGkhHA6.js → arrow-down-WoVlkUmg.js} +1 -1
- package/dist/client/assets/{arrow-left-eToA6GxC.js → arrow-left-PuKdO3NM.js} +1 -1
- package/dist/client/assets/{arrow-right-DTX42clh.js → arrow-right-ldbfp4SZ.js} +1 -1
- package/dist/client/assets/{arrow-up-right-B09GPwFl.js → arrow-up-right-Hn754ybA.js} +1 -1
- package/dist/client/assets/book-open-BlJnpf2U.js +1 -0
- package/dist/client/assets/{bot-WxKXYtEX.js → bot-CfN9PSBF.js} +1 -1
- package/dist/client/assets/broker-display-BkBzyvbR.js +2 -0
- package/dist/client/assets/{cache-CeWH_KzJ.js → cache-DEy9E34b.js} +1 -1
- package/dist/client/assets/{check-Dz2SRHft.js → check-B8dMv3Is.js} +1 -1
- package/dist/client/assets/{chevron-down-D120PY4g.js → chevron-down-B5eMsn5c.js} +1 -1
- package/dist/client/assets/{chevron-right-CowuvuE6.js → chevron-right-C7UGFpkl.js} +1 -1
- package/dist/client/assets/chevron-up-BHOEgHcn.js +1 -0
- package/dist/client/assets/{chunk-HRAB3GC3-KjjrTLCU.js → chunk-HRAB3GC3-C5X-kFhb.js} +1 -1
- package/dist/client/assets/chunk-JTPDIGGW-ZC-98AHT.js +46 -0
- package/dist/client/assets/{chunk-T65CQEWV-H2QEKfr1.js → chunk-T65CQEWV-CSVUz2rY.js} +1 -1
- package/dist/client/assets/chunk-YOZR3KYS-B59jqwO0.js +2 -0
- package/dist/client/assets/{clock-_9FDplIT.js → clock-DFcRbtrl.js} +1 -1
- package/dist/client/assets/{code-xml-CkkNdRmu.js → code-xml-BmyLM0I2.js} +1 -1
- package/dist/client/assets/coffee-C_D9zooM.js +1 -0
- package/dist/client/assets/colors-CFlbwC25.js +1 -0
- package/dist/client/assets/comms-deck-C8nVeMBh.css +1 -0
- package/dist/client/assets/comms-deck-CBhsXnY-.js +2 -0
- package/dist/client/assets/comms-gesture-_aGFo6g3.js +2 -0
- package/dist/client/assets/{compass-BdpImt_W.js → compass-DTZdCpv9.js} +1 -1
- package/dist/client/assets/content-B5Q4pb9R.js +1 -0
- package/dist/client/assets/content-BK1IfOZs.js +1 -0
- package/dist/client/assets/content-BeEsWLEm.js +1 -0
- package/dist/client/assets/content-BkOwEknW.js +1 -0
- package/dist/client/assets/content-C32W5kAG.js +1 -0
- package/dist/client/assets/content-CoqyLs9v.js +1 -0
- package/dist/client/assets/content-CwpdIS5b.js +1 -0
- package/dist/client/assets/content-DS2OkJ3Q.js +1 -0
- package/dist/client/assets/content-DXKaPDfn.js +1 -0
- package/dist/client/assets/content-DZt5-dkI.js +1 -0
- package/dist/client/assets/content-DbQJH8L1.js +1 -0
- package/dist/client/assets/content-DetoiaHq.js +1 -0
- package/dist/client/assets/content-Dhu3wL7J.js +1 -0
- package/dist/client/assets/content-Dpv34iZu.js +1 -0
- package/dist/client/assets/content-TtQJb61D.js +1 -0
- package/dist/client/assets/content-ymNb2R7g.js +1 -0
- package/dist/client/assets/{context-budget-DqxWzalx.js → context-budget-DemtXu7E.js} +1 -1
- package/dist/client/assets/{conversation-icons-DHGc9wbT.js → conversation-icons-BQ4OeOmr.js} +1 -1
- package/dist/client/assets/conversation-model-BGFHoxQ0.js +1 -0
- package/dist/client/assets/conversation-motion-features-9x8uZpwh.js +1 -0
- package/dist/client/assets/conversations-Cbg9h_Af.js +1 -0
- package/dist/client/assets/{copy-BzdzWsQd.js → copy-D9WUpQRf.js} +1 -1
- package/dist/client/assets/{cpu-CHFIGw87.js → cpu-Ck_4tB_-.js} +1 -1
- package/dist/client/assets/{createLucideIcon-Dv8H8m7J.js → createLucideIcon-DkjnzvcJ.js} +1 -1
- package/dist/client/assets/{credentials-BTce3VP1.js → credentials-C4VXz2hr.js} +1 -1
- package/dist/client/assets/discover-C8IOY7_K.js +2 -0
- package/dist/client/assets/embed-entry-CG3CfCbm.js +2 -0
- package/dist/client/assets/embed-navigation-DayfkQau.js +1 -0
- package/dist/client/assets/{external-link-BvX5PfLh.js → external-link-RT4Ph-6-.js} +1 -1
- package/dist/client/assets/{eye-C9cGk5z6.js → eye-CtqSV8BS.js} +1 -1
- package/dist/client/assets/{file-code-corner-jlGFdr8d.js → file-code-corner-D_Aptal2.js} +1 -1
- package/dist/client/assets/{file-text-BHro8MkG.js → file-text-ChtICwub.js} +1 -1
- package/dist/client/assets/flag-CqdOxVkI.js +1 -0
- package/dist/client/assets/floor-character-name-CqJPOlXb.js +1 -0
- package/dist/client/assets/floor-context-model-DZBpo_oD.js +1 -0
- package/dist/client/assets/floor-context-sheet-BFnkFiY3.css +1 -0
- package/dist/client/assets/floor-memory-YMM8AlLY.js +1 -0
- package/dist/client/assets/floor-message-passes-CJh9f8Jp.js +1 -0
- package/dist/client/assets/floor-preview-text-HrORUJ7D.js +1 -0
- package/dist/client/assets/floor-replay-CccYqE-f.css +1 -0
- package/dist/client/assets/floor-tactical-hud-HL5Vja5Y.css +1 -0
- package/dist/client/assets/folder-0fWevPvQ.js +1 -0
- package/dist/client/assets/{gauge-DSflSery.js → gauge-Dgtfxf_o.js} +1 -1
- package/dist/client/assets/{gestures-YA5IIwp-.js → gestures-BDCZ1FRG.js} +1 -1
- package/dist/client/assets/{git-branch-Bc_eDIpG.js → git-branch-CA3cHKCI.js} +1 -1
- package/dist/client/assets/go-shortcuts-DKtw4qYx.js +1 -0
- package/dist/client/assets/home-moving-signal-B7m-ngb2.js +1 -0
- package/dist/client/assets/home-now-card-DduXkHRR.js +1 -0
- package/dist/client/assets/{home-now-card-nano-Jmy7eJ6H.js → home-now-card-nano-D1ScGrgv.js} +1 -1
- package/dist/client/assets/hooks-C6VyQTQe.js +2 -0
- package/dist/client/assets/{hooks-D6NI15f6.css → hooks-D787lBmm.css} +1 -1
- package/dist/client/assets/index-C5cX8dkl.js +1 -0
- package/dist/client/assets/{index-C1VaWNuD.js → index-C8uS5szO.js} +5 -5
- package/dist/client/assets/index-Ck1__1yL.css +1 -0
- package/dist/client/assets/index-ClOOrVG1.js +1 -0
- package/dist/client/assets/index-Crtgfc9I.js +1 -0
- package/dist/client/assets/index-CvsM3jm8.js +1 -0
- package/dist/client/assets/{inspector-panel-CwrHjRaQ.js → inspector-panel-BLhDODb3.js} +2 -2
- package/dist/client/assets/{keyboard-nav-B8sQ_8IF.js → keyboard-nav-CXfav14z.js} +1 -1
- package/dist/client/assets/knowledge-search-BNdQweGz.css +1 -0
- package/dist/client/assets/{lane-edit-display-C_Aujldz.js → lane-edit-display-BjdT9oZl.js} +1 -1
- package/dist/client/assets/{lane-observe-vfyACHi0.js → lane-observe-BD21P8BB.js} +2 -2
- package/dist/client/assets/lane-roster-store-DzNHP392.js +1 -0
- package/dist/client/assets/{lane-tool-detail-0WhMf4Vj.js → lane-tool-detail-Czggx8oM.js} +1 -1
- package/dist/client/assets/{layers-CW2-qHsG.js → layers-Bolb8ejU.js} +1 -1
- package/dist/client/assets/{layout-grid-BoVnPOk-.js → layout-grid-DI9tVJ2E.js} +1 -1
- package/dist/client/assets/left-B-_z_nqj.js +2 -0
- package/dist/client/assets/left-B1LY7rJc.js +1 -0
- package/dist/client/assets/{left-DH44V4I_.css → left-BV9yMiTL.css} +1 -1
- package/dist/client/assets/left-C6bdjWcG.js +2 -0
- package/dist/client/assets/left-CF4iuqlz.js +1 -0
- package/dist/client/assets/left-DLtNyZl1.js +1 -0
- package/dist/client/assets/left-Fpxoq-VY.js +1 -0
- package/dist/client/assets/left-N2wXfTlp.js +1 -0
- package/dist/client/assets/left-advisor-CeIjCKbd.js +1 -0
- package/dist/client/assets/left-agents-upjHVlOj.js +1 -0
- package/dist/client/assets/left-default-08gmdCtb.js +1 -0
- package/dist/client/assets/left-lanes-Cvsp73Hw.js +1 -0
- package/dist/client/assets/left-mission-DENnfshd.css +1 -0
- package/dist/client/assets/left-mission-W1LLaz74.js +1 -0
- package/dist/client/assets/library-DLKBVUJ6.js +1 -0
- package/dist/client/assets/{loader-circle-DmUG_YC7.js → loader-circle-DurUYl7E.js} +1 -1
- package/dist/client/assets/{local-agents-VP1-ZlPw.js → local-agents-D9fYYRyj.js} +1 -1
- package/dist/client/assets/machine-children-RGS4Q0r6.js +1 -0
- package/dist/client/assets/machine-scope-DJt9RZ2w.js +1 -0
- package/dist/client/assets/mentions-Ctw1ECUC.js +1 -0
- package/dist/client/assets/{mesh-ops-CKSWgax2.js → mesh-ops-CGpRk4ik.js} +1 -1
- package/dist/client/assets/{mesh-screen-D1Yvo8fU.css → mesh-screen-DjA4mOaN.css} +1 -1
- package/dist/client/assets/mesh-view-store-CliSYsmt.js +1 -0
- package/dist/client/assets/{message-circle-joGFxfj1.js → message-circle-CSiJj6yo.js} +1 -1
- package/dist/client/assets/{message-markup-DC0QFEZn.js → message-markup-DgFSyb3f.js} +1 -1
- package/dist/client/assets/{message-square-BLiFqpe_.js → message-square-NmXWtWLR.js} +1 -1
- package/dist/client/assets/{message-visibility-CGOmSSKs.js → message-visibility-DwxgcgYK.js} +1 -1
- package/dist/client/assets/mission-control-CsX3Yc58.css +1 -0
- package/dist/client/assets/mission-control-model-C30vU1Fe.js +1 -0
- package/dist/client/assets/mission-control-store-DZ29Mlj1.js +1 -0
- package/dist/client/assets/{mission-wall-CocIM1cF.js → mission-wall-DOuGOxQy.js} +1 -1
- package/dist/client/assets/nav-destinations-CyXnw9kh.js +1 -0
- package/dist/client/assets/observe-CkfOxYx_.js +1 -0
- package/dist/client/assets/{operator-attention-RqieiSY8.js → operator-attention-DGR4kOog.js} +1 -1
- package/dist/client/assets/ops-screen-CxYM0VOW.css +1 -0
- package/dist/client/assets/page-status-CkS3SZu-.js +1 -0
- package/dist/client/assets/panel-right-BNTJhy8M.js +1 -0
- package/dist/client/assets/pause-DWS7YGQ3.js +1 -0
- package/dist/client/assets/{persistent-state-BubPQ7tT.js → persistent-state-xsuk6Kc-.js} +1 -1
- package/dist/client/assets/pin-DWlD1BOF.js +1 -0
- package/dist/client/assets/pip-idle-v1-Tt-CZsRG.png +0 -0
- package/dist/client/assets/pip-thinking-v1-BoHWSEye.png +0 -0
- package/dist/client/assets/pip-waiting-v1-DkuvJ-dN.png +0 -0
- package/dist/client/assets/pip-working-v1-wWQLRS1z.png +0 -0
- package/dist/client/assets/play-D_Pggug4.js +1 -0
- package/dist/client/assets/{plus-BWKhylds.js → plus-D_wLGJGT.js} +1 -1
- package/dist/client/assets/profile-C3KgiZvc.js +1 -0
- package/dist/client/assets/{projects-inbox-DFbgVlXL.js → projects-inbox-DvbqJO3q.js} +1 -1
- package/dist/client/assets/{proxy-DVDRhSRR.js → proxy-DOG46ja4.js} +1 -1
- package/dist/client/assets/{radio-CxIXS1nU.js → radio-C_jtwbFP.js} +1 -1
- package/dist/client/assets/{refresh-cw-Bkh7Cvnd.js → refresh-cw-Da9DDLk2.js} +1 -1
- package/dist/client/assets/resolve-panes-DuowGRTk.js +1 -0
- package/dist/client/assets/resolve-sidebar-context-BkTbqteq.js +1 -0
- package/dist/client/assets/right-B9OUA6Ho.js +1 -0
- package/dist/client/assets/right-BDQnjetX.js +1 -0
- package/dist/client/assets/{right-DVUq5374.js → right-BLJsc2-p.js} +2 -2
- package/dist/client/assets/right-BUbKHmRH.js +1 -0
- package/dist/client/assets/right-Ci2IcD4s.js +1 -0
- package/dist/client/assets/right-CmCce3e5.js +1 -0
- package/dist/client/assets/right-D7w0zM5a.js +1 -0
- package/dist/client/assets/right-DIoON_bv.js +1 -0
- package/dist/client/assets/right-E0Jr3VN5.js +1 -0
- package/dist/client/assets/right-lCdAk9dW.js +1 -0
- package/dist/client/assets/{rocket-CnxqjX_K.js → rocket-DyrYDo8V.js} +1 -1
- package/dist/client/assets/router-BKiMcYa7.js +1 -0
- package/dist/client/assets/{runtime-picker-BYAFNLNq.css → runtime-picker-C3JwrDKP.css} +1 -1
- package/dist/client/assets/runtime-picker-DdsttHHc.js +1 -0
- package/dist/client/assets/{scope-views-KPY85UUx.js → scope-views-B7PZGlhY.js} +1 -1
- package/dist/client/assets/scout-voice-DOQ_B77g.js +1 -0
- package/dist/client/assets/{scoutbot-D7kGGyK_.js → scoutbot-Bk3nyrkj.js} +2 -2
- package/dist/client/assets/{scoutbot-markdown-yb87JlSE.js → scoutbot-markdown-Bz0Vbto2.js} +1 -1
- package/dist/client/assets/{scroll-text-DFcBYy5J.js → scroll-text-DwC8r2g6.js} +1 -1
- package/dist/client/assets/{search-FB2vVxCp.js → search-C4VlW_0l.js} +1 -1
- package/dist/client/assets/secondaryNavConfig-DAXIFtVd.js +1 -0
- package/dist/client/assets/{selection-bridge-qBGFCJv8.js → selection-bridge-B5jqyMR9.js} +1 -1
- package/dist/client/assets/{send-horizontal-CS7mxVhX.js → send-horizontal-pOtGI7FM.js} +1 -1
- package/dist/client/assets/send-to-agent-session-BZGq_ycy.js +1 -0
- package/dist/client/assets/{server-WY6gsbZz.js → server-ms1yxUYJ.js} +1 -1
- package/dist/client/assets/{session-catalog-CG4oL_yN.js → session-catalog-s-T_w41t.js} +1 -1
- package/dist/client/assets/{session-table-uJh3v-ly.js → session-table-CDx_16xf.js} +1 -1
- package/dist/client/assets/sessions-view-DzYGsKWS.js +1 -0
- package/dist/client/assets/{settings-DQEtqkM9.js → settings-TJIkkZ0P.js} +1 -1
- package/dist/client/assets/shared-work-artifacts-4IIQXQfc.js +1 -0
- package/dist/client/assets/{sliders-horizontal-57e99_qO.js → sliders-horizontal-CHf3ntw0.js} +1 -1
- package/dist/client/assets/solar-system-scope-2k-stars-points-1FwHnkj0.png +0 -0
- package/dist/client/assets/{sparkles-D0vWLTyC.js → sparkles-BbOFw3d0.js} +1 -1
- package/dist/client/assets/sprout-action-sprite-DZ8C0fTl.css +1 -0
- package/dist/client/assets/sprout-actions-proof-v1-BzUdc812.png +0 -0
- package/dist/client/assets/{sse-B29iGBnw.js → sse-v5QLsOHV.js} +1 -1
- package/dist/client/assets/system-surfaces-redesign-DKFg4GB5.css +1 -0
- package/dist/client/assets/{tail-display-DcliDVkW.js → tail-display-DHSNmvor.js} +2 -2
- package/dist/client/assets/{tail-events-LK29oCKm.js → tail-events-DQ46QBW1.js} +1 -1
- package/dist/client/assets/{terminal-UDy4lzV1.js → terminal-96JWDYDL.js} +1 -1
- package/dist/client/assets/{terminal-relay-CXHMdain.js → terminal-relay-Bfx8pg80.js} +1 -1
- package/dist/client/assets/terminal-screen-Bpb2SZrn.css +1 -0
- package/dist/client/assets/{terminal-sessions-Bdt2W3Y4.js → terminal-sessions-Ch9aYlgi.js} +1 -1
- package/dist/client/assets/{terminal-takeover-BMeBjBB2.js → terminal-takeover-BlpxpvSp.js} +1 -1
- package/dist/client/assets/use-beside-Df-F2Uvg.js +1 -0
- package/dist/client/assets/use-conversation-list-A_YUf8lo.js +1 -0
- package/dist/client/assets/{use-fleet-active-asks-CCGrll5q.js → use-fleet-active-asks-DFs_u-vM.js} +1 -1
- package/dist/client/assets/use-mesh-node-state-Ck9CYplv.js +1 -0
- package/dist/client/assets/{use-mesh-ops-items-BjyeFJTz.js → use-mesh-ops-items-Be1WmwCg.js} +1 -1
- package/dist/client/assets/{use-reduced-motion-CPoX8iV2.js → use-reduced-motion-D7n3vK8t.js} +1 -1
- package/dist/client/assets/use-scout-dev-flags-0TXfQcG0.js +1 -0
- package/dist/client/assets/{useAgentHoverCard-BgTLNcF-.js → useAgentHoverCard-Dr-OjNFF.js} +1 -1
- package/dist/client/assets/useContentSecondaryNav-CGvMOVGY.js +1 -0
- package/dist/client/assets/{useEmbedHeadline-DuUnwTB7.js → useEmbedHeadline-BL8wQawZ.js} +1 -1
- package/dist/client/assets/{usePierreRuntime-35AHf9RQ.js → usePierreRuntime-DJkRHMoe.js} +1 -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-BfVeded5.js → wrench-BsMTSeji.js} +1 -1
- package/dist/client/assets/{x-DgmmnPKt.js → x-DI1ktCYb.js} +1 -1
- package/dist/client/assets/{xterm-DnJJmrCA.js → xterm-B1YBE4Gq.js} +1 -1
- package/dist/client/assets/{zap-Bcja1lHG.js → zap-sKPkh4sQ.js} +1 -1
- package/dist/client/characters/sage/sage.glb +0 -0
- package/dist/client/crew/brik-bust.webp +0 -0
- package/dist/client/crew/brik-chip-id.webp +0 -0
- package/dist/client/crew/fenn-bust.webp +0 -0
- package/dist/client/crew/fenn-chip-id.webp +0 -0
- package/dist/client/crew/lulu-bust.webp +0 -0
- package/dist/client/crew/milo-bust.webp +0 -0
- package/dist/client/crew/milo-chip-id.webp +0 -0
- package/dist/client/crew/nori-bust.webp +0 -0
- package/dist/client/crew/pip-bust.webp +0 -0
- package/dist/client/crew/pip-chip-id.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/blink-half.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/blink-shut.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/look-left.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/look-right.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/look-up.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/rest.webp +0 -0
- package/dist/client/crew/sheets/sprout/blink-half.webp +0 -0
- package/dist/client/crew/sheets/sprout/blink-shut.webp +0 -0
- package/dist/client/crew/sheets/sprout/look-left.webp +0 -0
- package/dist/client/crew/sheets/sprout/look-right.webp +0 -0
- package/dist/client/crew/sheets/sprout/look-up.webp +0 -0
- package/dist/client/crew/sprout-bust.webp +0 -0
- package/dist/client/crew/sprout-chip-id.webp +0 -0
- package/dist/client/crew/tuck-bust.webp +0 -0
- package/dist/client/crew/tuck-chip-id.webp +0 -0
- package/dist/client/crew/vex-bust.webp +0 -0
- package/dist/client/crew/vex-chip-id.webp +0 -0
- package/dist/client/crew/wrench-bust.webp +0 -0
- package/dist/client/crew/wrench-chip-id.webp +0 -0
- package/dist/client/index.html +2 -2
- package/dist/drizzle/0017_wise_silver_sable.sql +26 -0
- package/dist/drizzle/0018_message_epoch_order.sql +1 -0
- package/dist/drizzle/meta/0017_snapshot.json +6785 -0
- package/dist/drizzle/meta/0018_snapshot.json +6804 -0
- package/dist/drizzle/meta/_journal.json +14 -0
- package/dist/main.mjs +26906 -24284
- package/dist/node/main.mjs +7077 -6284
- package/dist/openscout-terminal-relay.mjs +391 -9
- package/dist/pairing-runtime-controller.mjs +35541 -34446
- package/dist/runtime/base-daemon.mjs +31 -8
- package/dist/runtime/broker-daemon.mjs +7864 -2578
- package/dist/runtime/broker-process-manager.mjs +15 -3
- package/dist/runtime/mesh-discover.mjs +14 -3
- package/dist/scout-control-plane-web.mjs +37053 -33186
- package/dist/statusline.mjs +1021 -35
- package/dist/update-helper.mjs +32169 -0
- package/package.json +2 -2
- package/dist/client/assets/ActivityScreen-sfonf5SR.js +0 -1
- package/dist/client/assets/AgentAvatar-Dz79iTxB.js +0 -1
- package/dist/client/assets/AgentConfigurationScreen-DDc3udYM.js +0 -1
- package/dist/client/assets/AgentDefinitionsWorkspace-DHDS9Pgd.js +0 -1
- package/dist/client/assets/AgentDetailCard-8viaEY8b.js +0 -1
- package/dist/client/assets/AgentFloorView-DuyvyMMj.js +0 -1
- package/dist/client/assets/AgentInfoScreen-qntgg2q2.js +0 -1
- package/dist/client/assets/AgentLanesEmbedScreen-BA6fRwkD.js +0 -1
- package/dist/client/assets/AgentLanesView-96lHsoX7.js +0 -2
- package/dist/client/assets/AgentLiveActions-DlSKL60c.js +0 -1
- package/dist/client/assets/AgentMasterScreen-DHrMuQ6_.js +0 -1
- package/dist/client/assets/AgentSessions-DV9v34aq.js +0 -6
- package/dist/client/assets/AgentsConsole-DTpVhS67.js +0 -1
- package/dist/client/assets/AgentsScreen-hZ4o2I-e.js +0 -1
- package/dist/client/assets/AgentsSubnav-Ci7uWM7P.js +0 -1
- package/dist/client/assets/AtopView-D7vyQDtE.js +0 -1
- package/dist/client/assets/BackToPicker-BHicJyfc.js +0 -1
- package/dist/client/assets/BriefingDetailScreen-B-wD_Bot.js +0 -1
- package/dist/client/assets/BriefingsScreen-Cn4Mbam9.js +0 -1
- package/dist/client/assets/BrokerScreen-C8FQ5rlg.js +0 -5
- package/dist/client/assets/ChatCollapsedStrip-7Wrg8Ge0.js +0 -1
- package/dist/client/assets/CodeScreen-cLC0tJ4S.js +0 -1
- package/dist/client/assets/ConversationFeedRows-Bx0gFyG_.js +0 -1
- package/dist/client/assets/ConversationHeader-Bt2RBj93.js +0 -1
- package/dist/client/assets/ConversationPanels-o6W-cOoU.js +0 -6
- package/dist/client/assets/ConversationScreen-CkWnKXt6.css +0 -1
- package/dist/client/assets/ConversationScreen-DIU7m_aC.js +0 -2
- package/dist/client/assets/ConversationStatus-CTYOywFh.js +0 -1
- package/dist/client/assets/CrewWorkspaces-DNX-QQ1h.js +0 -1
- package/dist/client/assets/DispatchAftermath-ZCEB75hh.js +0 -1
- package/dist/client/assets/DocumentFocusViewer-D8iB6SMt.js +0 -1
- package/dist/client/assets/FlightObserveScreen-BTe1YRPr.js +0 -1
- package/dist/client/assets/FollowScreen-CkR-okdL.js +0 -1
- package/dist/client/assets/HarnessesScreen-COO_Q8VY.js +0 -1
- package/dist/client/assets/HostAdvisorView-DeJ-8RZV.js +0 -1
- package/dist/client/assets/KnowledgeSearchInspector-W_zNIBRV.js +0 -1
- package/dist/client/assets/KnowledgeSearchScreen-_rxJNUUh.js +0 -1
- package/dist/client/assets/LaneTraceDetailSheet-DNIECgEl.js +0 -1
- package/dist/client/assets/MeshCanvas-DZv2ipsy.js +0 -3
- package/dist/client/assets/MeshCanvasMinimap-BXHRNb7l.js +0 -1
- package/dist/client/assets/MeshScreen-DuNvpDC5.js +0 -1
- package/dist/client/assets/MessagesScreen-dNNPFwAc.js +0 -1
- package/dist/client/assets/MissionContextRail-DnCWPzAM.js +0 -1
- package/dist/client/assets/MissionControlView-DmaThhNR.js +0 -1
- package/dist/client/assets/MissionFocusOverlay-K21ssTxv.js +0 -1
- package/dist/client/assets/MissionLeftAgentRow-CbQm4BLv.js +0 -1
- package/dist/client/assets/MissionLogPane-BLvSSIdT.js +0 -1
- package/dist/client/assets/NewAgentModal-B7qxjZlW.js +0 -1
- package/dist/client/assets/NewChatComposer-D2Ah4T-W.js +0 -19
- package/dist/client/assets/ObserveEmbedScreen-DvKGsaLv.js +0 -2
- package/dist/client/assets/OpenScoutAppShell-C9TOLB7u.js +0 -79
- package/dist/client/assets/OpsAgentsView-vIoY-AW1.js +0 -1
- package/dist/client/assets/OpsScreen-CJBwshEp.js +0 -1
- package/dist/client/assets/OpsSubnav-CjDTnp64.js +0 -1
- package/dist/client/assets/ProjectAgentProfile-Br1eTD7G.js +0 -1
- package/dist/client/assets/ProjectAgentProfileHero-mjxNcRvw.js +0 -1
- package/dist/client/assets/ProjectsInbox-Bq29DE_o.js +0 -2
- package/dist/client/assets/ProjectsRail-kMDA0yn4.js +0 -1
- package/dist/client/assets/ProjectsScreen-BDaJYhc0.js +0 -1
- package/dist/client/assets/ProjectsThreadAside-B940p3vW.js +0 -1
- package/dist/client/assets/Provider-D0bB7q6y.js +0 -1
- package/dist/client/assets/RailRow-B88JVr62.js +0 -1
- package/dist/client/assets/RawSessionsTable-CzGhEdiZ.js +0 -1
- package/dist/client/assets/RealtimeVoiceScreen-CyP1CWsX.js +0 -1
- package/dist/client/assets/RepoDiffViewer-Bw5yMC4A.js +0 -7
- package/dist/client/assets/RepoDiffViewerLazy-DzfoFhbl.js +0 -2
- package/dist/client/assets/ScoutDeckSurface-DQoZofzH.js +0 -1
- package/dist/client/assets/SessionEmbedScreen-CpduQ0O9.js +0 -1
- package/dist/client/assets/SessionObserve-BVeTkcIl.js +0 -12
- package/dist/client/assets/SessionObserveEvidence-BkOezTGV.js +0 -1
- package/dist/client/assets/SessionRefScreen-DetLMkTT.js +0 -1
- package/dist/client/assets/SessionsScreen-B-McKw6d.js +0 -1
- package/dist/client/assets/SettingsDrawer-CPB32w0n.js +0 -3
- package/dist/client/assets/SettingsScreen-BEzYFdjz.js +0 -1
- package/dist/client/assets/SpriteAvatar-DFO4Kb4Z.js +0 -1
- package/dist/client/assets/Terminal-DWyZTZdY.js +0 -1
- package/dist/client/assets/TerminalEmbedScreen-_SSzwhWa.js +0 -1
- package/dist/client/assets/TerminalHeaderMount-CY7uIWBg.js +0 -1
- package/dist/client/assets/WorkFilesViewer-D8-4vF5l.js +0 -1
- package/dist/client/assets/agent-autocomplete-BlK8wY06.js +0 -10
- package/dist/client/assets/agent-lane-card-model-CY3OE1Xu.js +0 -1
- package/dist/client/assets/agent-lanes-model-tc-1hE6q.js +0 -2
- package/dist/client/assets/agent-master-I1W-5d-x.css +0 -1
- package/dist/client/assets/agent-master-model-DMcHeNq3.js +0 -1
- package/dist/client/assets/api-Co9aQ2Jw.js +0 -1
- package/dist/client/assets/broker-display-Q75fupqG.js +0 -2
- package/dist/client/assets/chunk-JTPDIGGW-COJ00z94.js +0 -46
- package/dist/client/assets/chunk-YOZR3KYS-CrCgXw9l.js +0 -2
- package/dist/client/assets/colors-BtO5_zlx.js +0 -1
- package/dist/client/assets/content-0RBfbCIJ.js +0 -1
- package/dist/client/assets/content-BTmnk2bl.js +0 -1
- package/dist/client/assets/content-Bk5DKhyP.js +0 -1
- package/dist/client/assets/content-Bw_8GE_S.js +0 -1
- package/dist/client/assets/content-CI4gLEWi.js +0 -1
- package/dist/client/assets/content-CLCtp9Rb.js +0 -1
- package/dist/client/assets/content-C_FAGTNk.js +0 -1
- package/dist/client/assets/content-CnnzWOE3.js +0 -1
- package/dist/client/assets/content-DKlY98pO.js +0 -1
- package/dist/client/assets/content-Df7ndXTG.js +0 -1
- package/dist/client/assets/content-DkZDzzx3.js +0 -1
- package/dist/client/assets/content-DnGmb2L0.js +0 -1
- package/dist/client/assets/content-Ds-zs-Ss.js +0 -1
- package/dist/client/assets/content-JIWSyC0f.js +0 -1
- package/dist/client/assets/content-Q3TIYC8q.js +0 -1
- package/dist/client/assets/content-evaBfvxD.js +0 -1
- package/dist/client/assets/conversation-model-C2KuZUXc.js +0 -1
- package/dist/client/assets/conversation-motion-features-BJnHs3Ul.js +0 -1
- package/dist/client/assets/discover-DutlV0ZU.js +0 -2
- package/dist/client/assets/embed-entry-CJG7WEVw.js +0 -2
- package/dist/client/assets/home-moving-signal-PHSqSBu_.js +0 -1
- package/dist/client/assets/home-now-card-C_qsI6C6.js +0 -1
- package/dist/client/assets/hooks-ME7rmhpE.js +0 -2
- package/dist/client/assets/index-C8UCRm2W.js +0 -1
- package/dist/client/assets/index-Cn0I2Hgi.js +0 -1
- package/dist/client/assets/index-Cx6Gbr6n.js +0 -1
- package/dist/client/assets/index-i7TMxlwW.css +0 -1
- package/dist/client/assets/knowledge-search-D_bLoYtC.css +0 -1
- package/dist/client/assets/lane-roster-store-DN2jxXF-.js +0 -1
- package/dist/client/assets/left-BRu9pnqx.js +0 -2
- package/dist/client/assets/left-BjS1dKNV.js +0 -2
- package/dist/client/assets/left-CL-TVLJ7.js +0 -1
- package/dist/client/assets/left-DLpsDi55.js +0 -1
- package/dist/client/assets/left-DPcM9o8Y.js +0 -1
- package/dist/client/assets/left-MmTJf1tK.js +0 -1
- package/dist/client/assets/left-P80i5V8L.js +0 -1
- package/dist/client/assets/left-advisor-CbXVzAqS.js +0 -1
- package/dist/client/assets/left-agents-7mJsiNyr.js +0 -1
- package/dist/client/assets/left-default-COK26l3H.js +0 -1
- package/dist/client/assets/left-lanes-Dbdm9Veu.js +0 -1
- package/dist/client/assets/left-mission-DSenPIyb.css +0 -1
- package/dist/client/assets/left-mission-DqGR5jby.js +0 -1
- package/dist/client/assets/library-COnWzUWv.js +0 -1
- package/dist/client/assets/mentions-BZ5SBMtc.js +0 -1
- package/dist/client/assets/mesh-buckets-CLYS8Jx8.js +0 -1
- package/dist/client/assets/mesh-view-store-CBM1za_N.js +0 -1
- package/dist/client/assets/mission-control-CnU7dNt1.css +0 -1
- package/dist/client/assets/mission-control-model-C0fByIjm.js +0 -1
- package/dist/client/assets/mission-control-store-CM8mQGg8.js +0 -1
- package/dist/client/assets/observe-BLmy4quB.js +0 -1
- package/dist/client/assets/ops-screen-giu3If_N.css +0 -1
- package/dist/client/assets/page-status-BE0-J1xY.js +0 -1
- package/dist/client/assets/paperclip-Br7wUDFl.js +0 -1
- package/dist/client/assets/perf-PX8Rx0EP.js +0 -1
- package/dist/client/assets/profile-BCvk8jOQ.js +0 -1
- package/dist/client/assets/resolve-panes-DhD5qmQO.js +0 -1
- package/dist/client/assets/resolve-sidebar-context-GqhZNRPY.js +0 -1
- package/dist/client/assets/right-B_08ilv6.js +0 -1
- package/dist/client/assets/right-Brm67HOL.js +0 -1
- package/dist/client/assets/right-BveAPKBW.js +0 -1
- package/dist/client/assets/right-CpTB_-Ya.js +0 -1
- package/dist/client/assets/right-CqC4Qdot.js +0 -1
- package/dist/client/assets/right-D91j9d5Y.js +0 -1
- package/dist/client/assets/right-DaLRhYl3.js +0 -1
- package/dist/client/assets/right-Dt1wOwA5.js +0 -1
- package/dist/client/assets/right-DtzqIZQF.js +0 -1
- package/dist/client/assets/router-kfcaYqZr.js +0 -1
- package/dist/client/assets/runtime-picker-C20lTGhV.js +0 -1
- package/dist/client/assets/scout-voice-Cg1qfepC.js +0 -1
- package/dist/client/assets/secondaryNavConfig-C0Srrmy8.js +0 -1
- package/dist/client/assets/system-surfaces-redesign-kuf3wuE_.css +0 -1
- package/dist/client/assets/terminal-screen-vMICbBJh.css +0 -1
- package/dist/client/assets/use-conversation-list-UG-tMN67.js +0 -1
- package/dist/client/assets/use-scout-dev-flags-DTseRrFi.js +0 -1
- package/dist/client/assets/useContentSecondaryNav-CoIoz7JU.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as e,r as p}from"./index-C8uS5szO.js";import{a as w,c as b}from"./conversations-Cbg9h_Af.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-DFs_u-vM.js";import{u as I,e as R,b as E}from"./router-BKiMcYa7.js";import{l as D,i as F,s as T}from"./sessionRead-CvFz2RHv.js";import{u as $}from"./use-conversation-list-A_YUf8lo.js";import{u as C}from"./Provider-5Hotn7NQ.js";import{AgentMasterScreen as O}from"./AgentMasterScreen-By6DN0jF.js";import{CommsDeck as P}from"./CommsDeck-C18JA7rK.js";import{ConversationScreen as S}from"./ConversationScreen-tTP6B_F-.js";import{u as V,a as Y}from"./use-beside-Df-F2Uvg.js";/* empty css */import{P as z}from"./plus-D_wLGJGT.js";import"./time-Dhsh_2EG.js";import"./api-CaROe5_H.js";import"./sse-v5QLsOHV.js";import"./index-BWHgHrtv.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Ch9aYlgi.js";import"./surface-activity-B1rgWB1i.js";import"./agent-state-DDhnFEEP.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-JjLbm3W2.js";import"./runtime-picker-DdsttHHc.js";import"./scout-voice-DOQ_B77g.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DurUYl7E.js";import"./createLucideIcon-DkjnzvcJ.js";import"./conversation-model-BGFHoxQ0.js";import"./colors-CFlbwC25.js";import"./index-C5cX8dkl.js";import"./HarnessMark-Bt47OeHy.js";import"./NewChatOrigin-CyPPWTJP.js";import"./keyboard-nav-CXfav14z.js";import"./x-DI1ktCYb.js";import"./chevron-down-B5eMsn5c.js";import"./search-C4VlW_0l.js";import"./file-text-ChtICwub.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-f12RRQpV.js";import"./TextDocumentSurface-BhYvAB0o.js";import"./index-CvsM3jm8.js";import"./chevron-right-C7UGFpkl.js";import"./folder-0fWevPvQ.js";import"./chevron-up-BHOEgHcn.js";import"./code-xml-BmyLM0I2.js";import"./arrow-left-PuKdO3NM.js";import"./arrow-right-ldbfp4SZ.js";import"./chunk-HRAB3GC3-C5X-kFhb.js";import"./AgentAvatar-BIwg54Tj.js";import"./SpriteAvatar-BW1JzkDt.js";import"./CrewAvatar-CJhuqTsJ.js";import"./sessions-view-DzYGsKWS.js";import"./message-visibility-DwxgcgYK.js";import"./CommsFlowGraph-Czg-KTS0.js";import"./comms-gesture-_aGFo6g3.js";import"./CommsCanvas-DOKw3Q8i.js";import"./comms-deck-CBhsXnY-.js";import"./CommsFlowMap-CzBWvSa5.js";import"./CommsSelection-g1twA-Lb.js";/* empty css */import"./agent-master-model-C-KdOFDK.js";import"./panel-right-BNTJhy8M.js";import"./arrow-up-right-Hn754ybA.js";import"./ConversationComposer-B7RU6LKd.js";import"./zap-sKPkh4sQ.js";import"./message-markup-DgFSyb3f.js";import"./mentions-Ctw1ECUC.js";import"./AgentDetailCard-CFDE8TLi.js";import"./AgentLiveActions-lYzicnNa.js";import"./terminal-takeover-BlpxpvSp.js";import"./openContent-C6XO6kr5.js";import"./eye-CtqSV8BS.js";import"./terminal-96JWDYDL.js";import"./operator-attention-DGR4kOog.js";import"./clipboard-e3fSpeo7.js";import"./types-B0PlfpKc.js";/* empty css */import"./ConversationHeader-CCSU8uo_.js";import"./BackToPicker-Bys9ColC.js";import"./AstronautSuit-C-4I5YKi.js";import"./ConversationFeedRows-DVqnZQH0.js";import"./ConversationPanels-C9yCAoJy.js";import"./tail-display-DHSNmvor.js";import"./lane-edit-display-BjdT9oZl.js";import"./use-reduced-motion-D7n3vK8t.js";import"./proxy-DOG46ja4.js";import"./activity-CSUhvjD0.js";import"./message-circle-CSiJj6yo.js";import"./tail-events-DQ46QBW1.js";import"./ConversationStatus-CK-YfLpi.js";import"./check-B8dMv3Is.js";import"./sparkles-BbOFw3d0.js";function Ft({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{Ft as MessagesScreen};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as h,j as s}from"./index-C8uS5szO.js";import{H as A}from"./HarnessMark-Bt47OeHy.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-DemtXu7E.js";import{s as b}from"./page-status-CkS3SZu-.js";import{t as T}from"./time-Dhsh_2EG.js";import{b as y,a as B,l as O}from"./agent-lane-detail-Db7KyAlf.js";import{b as _}from"./agent-lane-preview-B8lsQJOQ.js";import{m as F}from"./mission-wall-DOuGOxQy.js";import"./lane-observe-BD21P8BB.js";import"./tail-display-DHSNmvor.js";import"./lane-edit-display-BjdT9oZl.js";import"./lane-ask-display-B6iCAVcd.js";import"./mission-control-model-C30vU1Fe.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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as n,j as a}from"./index-C8uS5szO.js";import{s as Re}from"./send-to-agent-session-BZGq_ycy.js";/* empty css */import{a as de}from"./api-CaROe5_H.js";import{u as Se,e as Me,f as Ee,m as je,M as ke,b as Le,t as z,g as R,d as me}from"./mission-control-store-DZ29Mlj1.js";import{u as Ne}from"./observe-CkfOxYx_.js";import{h as Te}from"./NewChatComposer-JjLbm3W2.js";import{i as Ce,c as Fe}from"./keyboard-nav-CXfav14z.js";import{f as Oe}from"./tail-display-DHSNmvor.js";import{u as _e}from"./tail-events-DQ46QBW1.js";import{u as Pe}from"./Provider-5Hotn7NQ.js";import{MissionContextRail as De}from"./MissionContextRail-CVSZJnvX.js";import{FocusOverlay as $e}from"./MissionFocusOverlay-B9SiuO-i.js";import{MissionLogPane as We}from"./MissionLogPane-CMBiI29U.js";import{o as Ke}from"./agent-lanes-model-CX0wTcnF.js";import{A as Ve}from"./mission-control-model-C30vU1Fe.js";import{b as qe,s as He,f as Be,c as Qe,n as ze,d as Ue,m as Ge,W as Ye}from"./mission-wall-DOuGOxQy.js";import"./agent-state-DDhnFEEP.js";import"./surface-activity-B1rgWB1i.js";import"./runtime-picker-DdsttHHc.js";import"./scout-voice-DOQ_B77g.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DurUYl7E.js";import"./createLucideIcon-DkjnzvcJ.js";import"./router-BKiMcYa7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Ch9aYlgi.js";import"./conversation-model-BGFHoxQ0.js";import"./colors-CFlbwC25.js";import"./time-Dhsh_2EG.js";import"./conversations-Cbg9h_Af.js";import"./index-C5cX8dkl.js";import"./HarnessMark-Bt47OeHy.js";import"./NewChatOrigin-CyPPWTJP.js";import"./x-DI1ktCYb.js";import"./chevron-down-B5eMsn5c.js";import"./search-C4VlW_0l.js";import"./file-text-ChtICwub.js";import"./lane-edit-display-BjdT9oZl.js";import"./index-BWHgHrtv.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-v5QLsOHV.js";import"./scoutbot-Bk3nyrkj.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-f12RRQpV.js";import"./TextDocumentSurface-BhYvAB0o.js";import"./index-CvsM3jm8.js";import"./chevron-right-C7UGFpkl.js";import"./folder-0fWevPvQ.js";import"./chevron-up-BHOEgHcn.js";import"./code-xml-BmyLM0I2.js";import"./arrow-left-PuKdO3NM.js";import"./arrow-right-ldbfp4SZ.js";import"./chunk-HRAB3GC3-C5X-kFhb.js";import"./bash-format-BRV5C6Gv.js";import"./context-budget-DemtXu7E.js";import"./page-status-CkS3SZu-.js";import"./agent-lane-detail-Db7KyAlf.js";import"./lane-observe-BD21P8BB.js";import"./agent-lane-preview-B8lsQJOQ.js";import"./lane-ask-display-B6iCAVcd.js";function Je(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 Xe(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 W=4e3,Ze=250,et=3e4,tt=1500,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 ws({navigate:t,agents:o}){const i=Se(),{openFilePreview:p}=Pe(),{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()),L=Ne(o),_=n.useRef([]);_e(e=>{_.current.push(e)}),n.useEffect(()=>{const e=setInterval(()=>{if(_.current.length===0)return;const s=_.current;_.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>W?u.slice(u.length-W):u})},Ze);return()=>clearInterval(e)},[]),n.useEffect(()=>{const e=setInterval(()=>he(Date.now()),1e4);return()=>clearInterval(e)},[]),n.useEffect(()=>{let e=!1;return de(`/api/tail/recent?limit=${tt}`).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>W?u.slice(u.length-W):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()},et);return()=>{e=!0,clearInterval(r)}},[]);const X=n.useMemo(()=>{const e=new Map;for(const s of o){const r=L[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,L]),b=n.useMemo(()=>qe({events:Oe(Y),transcripts:O?.transcripts??[],agents:nt(o,X),now:g,liveWindowMs:Ve}),[o,O?.transcripts,g,X,Y]),[A,K]=n.useState(null),w=n.useMemo(()=>{const e=He(Be(b,{sourceFilter:k,activityFilter:v,query:G,now:g,activeWindowMs:h}),U);if(!A)return e;const s=e.find(r=>r.id===A);return s?[s,...e.filter(r=>r.id!==A)]:e},[v,h,U,b,g,A,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(()=>Qe(0,{w:0,h:0})),q=n.useRef(m),P=n.useCallback((e,s)=>{const r=ze(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},P(te.current,V.current)});return s.observe(e),()=>s.disconnect()},[P]),n.useLayoutEffect(()=>{P(w.length,V.current)},[w.length,P]);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??Ge(e),handle:e.agent?.handle??Ue(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),N=n.useRef(null);n.useEffect(()=>{y&&re.current!==y.serial&&(re.current=y.serial,K(y.id),ne(y.id),N.current&&clearTimeout(N.current),N.current=setTimeout(()=>ne(null),st),Ee(y.serial))},[y]),n.useEffect(()=>()=>{N.current&&clearTimeout(N.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?L[T.agent.id]?.data??null:null,[x,C]=n.useState(null),[M,D]=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&&D(!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?L[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,L,l]),oe=n.useCallback(e=>{t({view:"ops",mode:"tail",tailQuery:e.sessionId})},[t]),Q=n.useCallback(e=>{C(e),D(!0)},[]),le=n.useRef({focusedId:F,railOpen:M,pinnedId:A,selectedIds:i.selectedIds,visibleAgents:i.visibleAgents});le.current={focusedId:F,railOpen:M,pinnedId:A,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"&&R(null);return}if(Fe())return;if(s.key==="Escape"){r.railOpen?D(!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 $=r.visibleAgents.map(j=>j.id);if($.every(j=>r.selectedIds.includes(j))){me();return}for(const j of $)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=Xe(s.key);if(ue){s.preventDefault();const $=Je(u,d.length,se.current,ue);C(d[$]??null);return}if(c instanceof Element&&c.closest("button, a, [role='button'], [role='link']"))return;const Ae=u<0?0:u,E=d[Ae];if(E){if(s.key==="Enter"||s.key==="i"){s.preventDefault(),Q(E);return}if(s.key==="o"){s.preventDefault(),C(E),R(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:()=>Le(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"]}),A&&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:Ye},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(We,{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(De,{log:l,lane:ae,onClose:()=>D(!1),onExpand:()=>R(l.id),onTail:()=>oe(l),onOpenLog:()=>t({view:"sessions",sessionId:l.sessionId}),onOpenFile:p}),f&&a.jsx($e,{agent:f,observe:Ie,onClose:()=>R(null),onSend:async e=>{await Re(f,e)},onOpenConversation:()=>{if(R(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:()=>{R(null),t({view:"ops",mode:"tail",tailQuery:f.harnessSessionId??f.handle??f.name})},onProfile:()=>{R(null),t({view:"agents-v2",agentId:f.id})}})]})}export{ws as MissionControlView};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as f,j as e}from"./index-C8uS5szO.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-CXfav14z.js";import{t as j}from"./time-Dhsh_2EG.js";import{M,f as S}from"./runtime-picker-DdsttHHc.js";import{s as v}from"./page-status-CkS3SZu-.js";import"./api-CaROe5_H.js";import"./index-C5cX8dkl.js";import{K as k}from"./mission-control-model-C30vU1Fe.js";import"./scout-voice-DOQ_B77g.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DurUYl7E.js";import"./createLucideIcon-DkjnzvcJ.js";import"./router-BKiMcYa7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Ch9aYlgi.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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as o}from"./index-C8uS5szO.js";import{c as j}from"./agent-state-DDhnFEEP.js";import{s as x}from"./page-status-CkS3SZu-.js";import{t as l}from"./time-Dhsh_2EG.js";import{R as b}from"./RailRow-BYguXNm4.js";import"./colors-CFlbwC25.js";import"./AgentAvatar-BIwg54Tj.js";import"./Provider-5Hotn7NQ.js";import"./router-BKiMcYa7.js";import"./api-CaROe5_H.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Ch9aYlgi.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-v5QLsOHV.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-JjLbm3W2.js";import"./runtime-picker-DdsttHHc.js";import"./scout-voice-DOQ_B77g.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DurUYl7E.js";import"./createLucideIcon-DkjnzvcJ.js";import"./conversation-model-BGFHoxQ0.js";import"./conversations-Cbg9h_Af.js";import"./index-C5cX8dkl.js";import"./HarnessMark-Bt47OeHy.js";import"./NewChatOrigin-CyPPWTJP.js";import"./keyboard-nav-CXfav14z.js";import"./x-DI1ktCYb.js";import"./chevron-down-B5eMsn5c.js";import"./search-C4VlW_0l.js";import"./file-text-ChtICwub.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-f12RRQpV.js";import"./TextDocumentSurface-BhYvAB0o.js";import"./index-CvsM3jm8.js";import"./chevron-right-C7UGFpkl.js";import"./folder-0fWevPvQ.js";import"./chevron-up-BHOEgHcn.js";import"./code-xml-BmyLM0I2.js";import"./arrow-left-PuKdO3NM.js";import"./arrow-right-ldbfp4SZ.js";import"./chunk-HRAB3GC3-C5X-kFhb.js";import"./SpriteAvatar-BW1JzkDt.js";import"./CrewAvatar-CJhuqTsJ.js";function nt({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{nt as MissionLeftAgentRow};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as a,j as l}from"./index-C8uS5szO.js";import{H as k}from"./HarnessMark-Bt47OeHy.js";import{n as y}from"./agent-state-DDhnFEEP.js";import{s as P}from"./page-status-CkS3SZu-.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-C30vU1Fe.js";import{m as R,a as K}from"./mission-wall-DOuGOxQy.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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as i}from"./index-C8uS5szO.js";import{n as p}from"./embed-navigation-DayfkQau.js";import{k as m}from"./router-BKiMcYa7.js";import{OpsScreen as e}from"./OpsScreen-DJq-aBmX.js";import{u as s}from"./Provider-5Hotn7NQ.js";import{d as a}from"./types-B0PlfpKc.js";import"./scoutbot-Bk3nyrkj.js";import"./api-CaROe5_H.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Ch9aYlgi.js";/* empty css *//* empty css */import"./page-status-CkS3SZu-.js";import"./AgentLanesView-aAyC7lHf.js";/* empty css */import"./tail-events-DQ46QBW1.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./observe-CkfOxYx_.js";import"./agent-state-DDhnFEEP.js";import"./useEmbedHeadline-BL8wQawZ.js";import"./AgentAvatar-BIwg54Tj.js";import"./SpriteAvatar-BW1JzkDt.js";import"./CrewAvatar-CJhuqTsJ.js";import"./HarnessMark-Bt47OeHy.js";import"./colors-CFlbwC25.js";import"./SessionObserve-DaqDhqDI.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-C6YehJqD.js";import"./index-C5cX8dkl.js";import"./lane-observe-BD21P8BB.js";import"./time-Dhsh_2EG.js";import"./lane-ask-display-B6iCAVcd.js";import"./mentions-Ctw1ECUC.js";import"./AgentDetailCard-CFDE8TLi.js";import"./AgentLiveActions-lYzicnNa.js";import"./terminal-takeover-BlpxpvSp.js";import"./openContent-C6XO6kr5.js";import"./eye-CtqSV8BS.js";import"./createLucideIcon-DkjnzvcJ.js";import"./terminal-96JWDYDL.js";import"./message-markup-DgFSyb3f.js";import"./NewChatComposer-JjLbm3W2.js";import"./runtime-picker-DdsttHHc.js";import"./scout-voice-DOQ_B77g.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DurUYl7E.js";import"./conversation-model-BGFHoxQ0.js";import"./conversations-Cbg9h_Af.js";import"./NewChatOrigin-CyPPWTJP.js";import"./keyboard-nav-CXfav14z.js";import"./x-DI1ktCYb.js";import"./chevron-down-B5eMsn5c.js";import"./search-C4VlW_0l.js";import"./file-text-ChtICwub.js";import"./ObservedTopologyPanel-DkEkQzo-.js";import"./ObserveTextFlow-ET0dD1wO.js";import"./use-reduced-motion-D7n3vK8t.js";import"./proxy-DOG46ja4.js";import"./SessionObserveEvidence-Drv-D8Oh.js";import"./message-circle-CSiJj6yo.js";import"./wrench-BsMTSeji.js";import"./external-link-RT4Ph-6-.js";import"./chevron-up-BHOEgHcn.js";import"./AgentFloorView-l2wNKFob.js";import"./AgentAdventures-NwTKeF0F.js";import"./ReplayClock-B7JLTp8A.js";import"./SproutActionSprite-DveCzg6l.js";/* empty css */import"./CrewSprite-hgpA3SWB.js";import"./agent-lanes-model-CX0wTcnF.js";import"./context-budget-DemtXu7E.js";import"./adventure-playback-DTfkhIc0.js";import"./AdventureScenery-D548O0x4.js";import"./adventure-habitats-v1-M1lcpTJh.js";import"./AdventureReader-ClMxT0e4.js";import"./index-CvsM3jm8.js";import"./TextDocumentSurface-BhYvAB0o.js";import"./chevron-right-C7UGFpkl.js";import"./folder-0fWevPvQ.js";import"./floor-preview-text-HrORUJ7D.js";/* empty css */import"./book-open-BlJnpf2U.js";import"./scroll-text-DwC8r2g6.js";import"./ReplayLog-DZTpf2CW.js";import"./AdventureEvidence-Dzz9VbuE.js";import"./agent-lane-detail-Db7KyAlf.js";/* empty css */import"./arrow-up-right-Hn754ybA.js";/* empty css */import"./flag-CqdOxVkI.js";import"./pause-DWS7YGQ3.js";import"./play-D_Pggug4.js";import"./radio-C_jtwbFP.js";import"./arrow-left-PuKdO3NM.js";import"./arrow-right-ldbfp4SZ.js";import"./SharedWorkFloor-yPWFLZwX.js";import"./WorldMinimap-Blqg0d5r.js";import"./WorldSky-DV9bpvXj.js";import"./WorldActorTalk-uIH2jGqA.js";import"./send-to-agent-session-BZGq_ycy.js";import"./FloorExchangePanel-D59nvRCF.js";import"./floor-character-name-CqJPOlXb.js";import"./floor-message-passes-CJh9f8Jp.js";import"./shared-work-artifacts-4IIQXQfc.js";import"./floor-memory-YMM8AlLY.js";import"./CharacterFamilyPreview-CfO3j8Of.js";import"./RenderedWorkerSprite-CvdWO32C.js";import"./FloorMessagePasses-BCwsz9VS.js";import"./WorkRunView-x5PH1byG.js";import"./floor-context-model-DZBpo_oD.js";import"./agent-floor-actor-3v9drnxh.js";import"./SharedFloorCharacter-CSYG_t9t.js";import"./WorldCharacter-Dn4sIXNP.js";import"./RiggedWorkerCharacter-DNe731GE.js";import"./file-code-corner-D_Aptal2.js";import"./FloorReplay-BHo79HCD.js";import"./AgentFloorWorld-BDJmXl3C.js";/* empty css */import"./agent-floor-world-layout-hfMjuoui.js";import"./coffee-C_D9zooM.js";import"./git-branch-CA3cHKCI.js";/* empty css */import"./FloorTacticalHUD-Bngao6sn.js";import"./FloorSavedWork-2tjBoy06.js";import"./pin-DWlD1BOF.js";/* empty css */import"./FloorResourcesSheet-Djrgd_ZU.js";/* empty css */import"./machine-scope-DJt9RZ2w.js";import"./sse-v5QLsOHV.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-f12RRQpV.js";import"./code-xml-BmyLM0I2.js";import"./chunk-HRAB3GC3-C5X-kFhb.js";/* empty css */import"./FloorContextSheet-DV-SYA0K.js";import"./lane-roster-store-DzNHP392.js";import"./message-square-NmXWtWLR.js";import"./AgentLanesPreflight-pw2vMO3Q.js";import"./AgentLaneChrome-D9uJ4QY7.js";import"./AgentLaneCard-C6YmwPxQ.js";/* empty css */import"./AgentLaneSummaryResize-BBYBS3DO.js";import"./clipboard-e3fSpeo7.js";import"./agent-lane-card-model-l0stnU9N.js";import"./agent-lane-preview-B8lsQJOQ.js";import"./AgentLaneDetailSheet-KYckCBCX.js";import"./SlidePanel-Datu7XG4.js";import"./LaneTraceDetailSheet-mAhj7MJi.js";import"./LaneTraceEventFocus-WLNZZVi_.js";import"./MissionControlView-DpGhxG4a.js";/* empty css */import"./mission-control-store-DZ29Mlj1.js";import"./MissionContextRail-CVSZJnvX.js";import"./mission-wall-DOuGOxQy.js";import"./mission-control-model-C30vU1Fe.js";import"./MissionFocusOverlay-B9SiuO-i.js";import"./MissionLogPane-CMBiI29U.js";import"./OpsAgentsView-CZbtkcQH.js";/* empty css */import"./DataTable-BMOZ1-z8.js";/* empty css */import"./useAgentHoverCard-Dr-OjNFF.js";import"./sliders-horizontal-CHf3ntw0.js";import"./HostAdvisorView-CTJXIc1Q.js";/* empty css */import"./compass-DTZdCpv9.js";import"./layout-grid-DI9tVJ2E.js";import"./refresh-cw-Da9DDLk2.js";import"./cpu-Ck_4tB_-.js";import"./gauge-Dgtfxf_o.js";import"./AtopView-DKm-ERYC.js";/* empty css */import"./TailView-Dn7uWmPz.js";import"./useContentSecondaryNav-CGvMOVGY.js";import"./OpsSubnav-9sURjajO.js";import"./SecondaryNav-BkTn5tkq.js";import"./secondaryNavConfig-DAXIFtVd.js";import"./nav-destinations-CyXnw9kh.js";import"./settings-TJIkkZ0P.js";function Fr({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 Pr=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{Fr as NativeAreaScreen,Pr as scoutSurface};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as r}from"./index-C8uS5szO.js";import{K as e}from"./KnowledgeSearchInspector-DwGMVmFL.js";import{SearchContent as m}from"./content-BK1IfOZs.js";import{u as p}from"./Provider-5Hotn7NQ.js";import{d as s}from"./types-B0PlfpKc.js";/* empty css */import"./api-CaROe5_H.js";import"./router-BKiMcYa7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Ch9aYlgi.js";import"./createLucideIcon-DkjnzvcJ.js";import"./x-DI1ktCYb.js";import"./check-B8dMv3Is.js";import"./copy-D9WUpQRf.js";import"./external-link-RT4Ph-6-.js";import"./loader-circle-DurUYl7E.js";import"./KnowledgeSearchScreen-WC0WhFio.js";import"./time-Dhsh_2EG.js";import"./search-C4VlW_0l.js";import"./sparkles-BbOFw3d0.js";import"./chevron-down-B5eMsn5c.js";import"./clock-DFcRbtrl.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-v5QLsOHV.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./agent-state-DDhnFEEP.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-JjLbm3W2.js";import"./runtime-picker-DdsttHHc.js";import"./scout-voice-DOQ_B77g.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./conversation-model-BGFHoxQ0.js";import"./colors-CFlbwC25.js";import"./conversations-Cbg9h_Af.js";import"./index-C5cX8dkl.js";import"./HarnessMark-Bt47OeHy.js";import"./NewChatOrigin-CyPPWTJP.js";import"./keyboard-nav-CXfav14z.js";import"./file-text-ChtICwub.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-f12RRQpV.js";import"./TextDocumentSurface-BhYvAB0o.js";import"./index-CvsM3jm8.js";import"./chevron-right-C7UGFpkl.js";import"./folder-0fWevPvQ.js";import"./chevron-up-BHOEgHcn.js";import"./code-xml-BmyLM0I2.js";import"./arrow-left-PuKdO3NM.js";import"./arrow-right-ldbfp4SZ.js";import"./chunk-HRAB3GC3-C5X-kFhb.js";function pr({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 sr=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{pr as NativeAreaScreen,sr as scoutSurface};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as r}from"./index-C8uS5szO.js";import{HomeContent as t}from"./content-DbQJH8L1.js";import{d as m}from"./types-B0PlfpKc.js";import"./HomeHero-Cvwx2H0w.js";import"./refresh-cw-Da9DDLk2.js";import"./createLucideIcon-DkjnzvcJ.js";import"./activity-CSUhvjD0.js";import"./TailView-Dn7uWmPz.js";import"./SlidePanel-Datu7XG4.js";import"./HarnessMark-Bt47OeHy.js";import"./api-CaROe5_H.js";import"./time-Dhsh_2EG.js";import"./tail-display-DHSNmvor.js";import"./lane-edit-display-BjdT9oZl.js";import"./tail-events-DQ46QBW1.js";import"./index-BWHgHrtv.js";import"./openContent-C6XO6kr5.js";import"./Provider-5Hotn7NQ.js";import"./router-BKiMcYa7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Ch9aYlgi.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-v5QLsOHV.js";import"./surface-activity-B1rgWB1i.js";import"./agent-state-DDhnFEEP.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-JjLbm3W2.js";import"./runtime-picker-DdsttHHc.js";import"./scout-voice-DOQ_B77g.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DurUYl7E.js";import"./conversation-model-BGFHoxQ0.js";import"./colors-CFlbwC25.js";import"./conversations-Cbg9h_Af.js";import"./index-C5cX8dkl.js";import"./NewChatOrigin-CyPPWTJP.js";import"./keyboard-nav-CXfav14z.js";import"./x-DI1ktCYb.js";import"./chevron-down-B5eMsn5c.js";import"./search-C4VlW_0l.js";import"./file-text-ChtICwub.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-f12RRQpV.js";import"./TextDocumentSurface-BhYvAB0o.js";import"./index-CvsM3jm8.js";import"./chevron-right-C7UGFpkl.js";import"./folder-0fWevPvQ.js";import"./chevron-up-BHOEgHcn.js";import"./code-xml-BmyLM0I2.js";import"./arrow-left-PuKdO3NM.js";import"./arrow-right-ldbfp4SZ.js";import"./chunk-HRAB3GC3-C5X-kFhb.js";import"./observe-CkfOxYx_.js";import"./persistent-state-xsuk6Kc-.js";import"./operator-attention-DGR4kOog.js";import"./agent-lanes-model-CX0wTcnF.js";import"./lane-ask-display-B6iCAVcd.js";import"./context-budget-DemtXu7E.js";import"./lane-observe-BD21P8BB.js";import"./home-moving-signal-B7m-ngb2.js";import"./home-live-action-BkqGLVRY.js";import"./cpu-Ck_4tB_-.js";import"./git-branch-CA3cHKCI.js";import"./file-code-corner-D_Aptal2.js";import"./terminal-96JWDYDL.js";import"./external-link-RT4Ph-6-.js";function So({navigate:o}){return r.jsx(t,{navigate:o})}const jo=m({id:"home",label:"Home",route:{view:"inbox"},webPath:"/",screen:"NativeAreaScreen",embed:{path:"/embed/home",profile:"macos.home",ownsInternalRoutes:!0,hosts:{macos:!0}}});export{So as NativeAreaScreen,jo as scoutSurface};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r,j as e}from"./index-C8uS5szO.js";import{r as se}from"./index-C5cX8dkl.js";import{a as U}from"./api-CaROe5_H.js";import{u as ne}from"./keyboard-nav-CXfav14z.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-DI1ktCYb.js";import{R as re}from"./rocket-DyrYDo8V.js";import"./createLucideIcon-DkjnzvcJ.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};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import{j as i,r as l}from"./index-C8uS5szO.js";import{f as Lt,M as zn}from"./runtime-picker-DdsttHHc.js";import{C as Gn,c as Wn,S as ws,y as qn,z as Kn}from"./conversation-model-BGFHoxQ0.js";import{a as q,p as Jn}from"./api-CaROe5_H.js";import{r as Xn}from"./index-C5cX8dkl.js";import{H as bs}from"./HarnessMark-Bt47OeHy.js";import{a as Vn}from"./colors-CFlbwC25.js";import{NewChatOrigin as Yn}from"./NewChatOrigin-CyPPWTJP.js";import{u as Qn}from"./keyboard-nav-CXfav14z.js";import{n as Zn,c as eo}from"./agent-state-DDhnFEEP.js";import{X as to}from"./x-DI1ktCYb.js";import{C as so}from"./chevron-down-B5eMsn5c.js";import{S as no}from"./search-C4VlW_0l.js";import{L as oo}from"./loader-circle-DurUYl7E.js";import{F as ro}from"./file-text-ChtICwub.js";const ao={schemaVersion:"openscout.runtime-catalog.v1",revision:"2026-09-10.1",harnesses:[{id:"claude",label:"Claude Code",enabled:!0,default:!0,reasoningEfforts:["low","medium","high","xhigh","max"],defaultReasoningEffort:"medium",models:[{id:"claude-opus-5",label:"Opus 5",enabled:!0,default:!0,family:"Opus",version:"5"},{id:"claude-fable-5",label:"Fable 5",enabled:!0,family:"Fable",version:"5"},{id:"claude-sonnet-4-6",label:"Sonnet 4.6",enabled:!0,family:"Sonnet",version:"4.6"},{id:"claude-haiku-4-5",label:"Haiku 4.5",enabled:!0,family:"Haiku",version:"4.5"},{id:"claude-opus-4-8",label:"Opus 4.8",enabled:!0,family:"Opus",version:"4.8"},{id:"claude-opus-4-7",label:"Opus 4.7",enabled:!0,family:"Opus",version:"4.7"},{id:"claude-sonnet-4-5",label:"Sonnet 4.5",enabled:!0,family:"Sonnet",version:"4.5"}]},{id:"codex",label:"Codex",enabled:!0,reasoningEfforts:["low","medium","high","xhigh"],defaultReasoningEffort:"medium",models:[{id:"gpt-6-astra",label:"6 Astra",enabled:!0,default:!0,description:"Most capable for complex reasoning, coding, computer use, research, and document creation",family:"GPT",version:"6 Astra",contextWindowTokens:105e4,reasoningEfforts:["low","medium","high","xhigh","max"]},{id:"gpt-5.6-sol",label:"5.6 Sol",enabled:!0,family:"GPT",version:"5.6 Sol",reasoningEfforts:["low","medium","high","xhigh","ultra"]},{id:"gpt-5.6-terra",label:"5.6 Terra",enabled:!0,family:"GPT",version:"5.6 Terra",reasoningEfforts:["low","medium","high","xhigh","ultra"]},{id:"gpt-5.6-luna",label:"5.6 Luna",enabled:!0,family:"GPT",version:"5.6 Luna"},{id:"gpt-5.5",label:"5.5",enabled:!0,family:"GPT",version:"5.5"},{id:"gpt-5.5-mini",label:"5.5 mini",enabled:!0,family:"GPT",version:"5.5 mini"}]},{id:"grok",label:"Grok CLI",enabled:!0,listed:!1,reasoningEfforts:["low","medium","high","xhigh"],defaultReasoningEffort:"high",models:[{id:"grok-4.6",label:"Grok 4.6",enabled:!0,default:!0,family:"Grok",version:"4.6",contextWindowTokens:5e5},{id:"grok-4.5",label:"Grok 4.5",enabled:!0,family:"Grok",version:"4.5",contextWindowTokens:5e5}]},{id:"grok-acp",label:"Grok",enabled:!0,reasoningEfforts:["low","medium","high","xhigh"],defaultReasoningEffort:"high",models:[{id:"grok-4.6",label:"Grok 4.6",enabled:!0,default:!0,family:"Grok",version:"4.6",contextWindowTokens:5e5},{id:"grok-4.5",label:"Grok 4.5",enabled:!0,family:"Grok",version:"4.5",contextWindowTokens:5e5}]},{id:"kimi",label:"Kimi Code",enabled:!0,reasoningEfforts:null,models:[]},{id:"flue",label:"Flue",enabled:!0,reasoningEfforts:null,models:[]},{id:"cursor",label:"Cursor CLI",enabled:!0,reasoningEfforts:null,models:[]},{id:"opencode",label:"OpenCode",enabled:!0,reasoningEfforts:null,models:[{id:"opencode-go/glm-5.2",label:"GLM-5.2",enabled:!0,default:!0,family:"GLM",version:"5.2"},{id:"opencode-go/glm-5.1",label:"GLM-5.1",enabled:!0,family:"GLM",version:"5.1"},{id:"opencode-go/kimi-k3",label:"Kimi K3",enabled:!0,family:"Kimi",version:"K3"},{id:"opencode-go/qwen3.8-max",label:"Qwen3.8 Max",enabled:!0,family:"Qwen",version:"3.8 Max"},{id:"opencode-go/minimax-m3",label:"MiniMax M3",enabled:!0,family:"MiniMax",version:"M3"},{id:"opencode-go/deepseek-v4-pro",label:"DeepSeek V4 Pro",enabled:!0,family:"DeepSeek",version:"V4 Pro"},{id:"opencode-go/grok-4.5",label:"Grok 4.5",enabled:!0,family:"Grok",version:"4.5"},{id:"opencode/nemotron-3-ultra-free",label:"Nemotron 3 Ultra (free)",enabled:!0,family:"Nemotron",version:"3 Ultra Free"},{id:"opencode/laguna-s-2.1-free",label:"Laguna S 2.1 (free)",enabled:!0,family:"Laguna",version:"S 2.1 Free"}]},{id:"pi",label:"Pi",enabled:!0,reasoningEfforts:null,models:[]}]},Ht=["none","minimal","low","medium","high","xhigh","max","ultra"],Gs={none:"None",minimal:"Minimal",low:"Light",medium:"Medium",high:"High",xhigh:"Extra High",max:"Max",ultra:"Ultra"},Y=ao;function Bt(e,t=Y){return t.harnesses.find(n=>n.id===e)}function io(e=Y){return e.harnesses.find(t=>t.enabled&&t.default)?.id??e.harnesses.find(t=>t.enabled)?.id??null}function Ws(e,t=Y){const n=Bt(e,t);return n?.models.find(s=>s.enabled&&s.default)?.id??n?.models.find(s=>s.enabled)?.id??null}function co(e,t,n=Y){const s=Bt(e,n);if(!s||!s.enabled)return null;const o=t?s.models.find(a=>a.enabled&&a.id===t):void 0;return o?.reasoningEfforts===null?null:o?.reasoningEfforts??s.reasoningEfforts}function qs(e,t,n=Y){const s=Bt(e,n),o=t?s?.models.find(m=>m.enabled&&m.id===t):void 0,a=co(e,t,n),u=o?.defaultReasoningEffort??s?.defaultReasoningEffort??null;return u&&a?.includes(u)?u:a?.[0]??null}function lo(e=Y){return Object.fromEntries(e.harnesses.filter(t=>t.enabled).map(t=>{const n=Ws(t.id,e);return[t.id,{model:n,reasoningEffort:qs(t.id,n,e)}]}))}const uo=lo();Object.fromEntries(Y.harnesses.filter(e=>e.enabled).map(e=>{const t=Ht.filter(n=>e.reasoningEfforts?.includes(n)||e.models.some(s=>s.enabled&&s.reasoningEfforts?.includes(n)));return[e.id,t]}));function fo(e=Y){const t=new Map;for(const n of e.harnesses)if(n.enabled)for(const s of n.models){if(!s.enabled)continue;const o=t.get(s.id);if(o){o.harnesses.includes(n.id)||o.harnesses.push(n.id);continue}t.set(s.id,{id:s.id,label:s.label,...s.description?{description:s.description}:{},harnesses:[n.id],source:"default",...s.family?{family:s.family}:{},...s.version?{version:s.version}:{}})}return Array.from(t.values())}const mo=fo(),ho={none:"No extra thinking",minimal:"Smallest reasoning budget",low:"Fast responses with lighter reasoning",medium:"Balanced speed and reasoning depth",high:"Greater reasoning depth for complex work",xhigh:"Extra high reasoning depth",max:"Maximum reasoning depth",ultra:"Maximum reasoning with delegation"};function po(e=Y){return Ht.flatMap(t=>{const n=[],s=[];for(const o of e.harnesses){if(!o.enabled)continue;const a=o.models.filter(d=>d.enabled),u=a.filter(d=>(d.reasoningEfforts??o.reasoningEfforts)?.includes(t)),m=a.length===0&&o.reasoningEfforts?.includes(t);u.length===0&&!m||(n.push(o.id),a.length>0&&u.length<a.length&&s.push(...u.map(d=>d.id)))}return n.length===0?[]:[{id:t,label:Gs[t],description:ho[t],harnesses:n,...s.length>0?{models:s}:{}}]})}const go=po();function W(e){if(!e)return null;const t=e.replace(/\/+$/,""),n=t.lastIndexOf("/");return n>=0?t.slice(n+1):t}function $e(e){const t=e?.trim();return t&&(t==="/private/tmp"||t.startsWith("/private/tmp/")?t.replace(/^\/private\/tmp/u,"/tmp"):t).replace(/\/+$/,"")||null}function Ks(e){const t=e.replace(/\/+$/,""),n=t.lastIndexOf("/");return n>=0?t.slice(0,n)||"/":null}function Pt(e){return e.split(/[-_\s]+/).filter(Boolean).map(t=>t.slice(0,1).toUpperCase()+t.slice(1)).join(" ")}function Js(e){if(!e)return null;const t=wo(e);if(t)return{title:Pt(W(t)??"Unscoped"),root:t};const n=W(e)?.trim().toLowerCase();if(!n||n==="~")return null;const o=n.match(/^(.+?)(?:-(?:parity|codex))?-c\d+$/)?.[1];if(!o)return null;const a=Ks(e);return{title:Pt(o),root:a?`${a}/${o}`:o}}function wo(e){const t=e.replace(/\/+$/,"");if(/^(?:~|\/Users\/[^/]+)\/\.codex\/worktrees\//u.test(t))return null;const n=t.match(/^(.*)\/([^/]+)-worktrees(?:\/[^/]+)+$/);return n?.[1]&&n[2]?`${n[1]}/${n[2]}`:t.match(/^(.*\/[^/]+)\/(?:\.worktrees|worktrees)(?:\/[^/]+)+$/)?.[1]??null}function bo(e){const n=W(e)?.match(/^(.+)-\d+$/u),s=Ks(e);return n?.[1]&&s?`${s}/${n[1]}`:null}function yo(e){const t=e?.trim();if(!t)return null;const n=t.match(/^(\/Users\/[^/]+\/dev\/[^/]+)/);if(n?.[1])return n[1];const s=t.match(/^(~\/dev\/[^/]+)/);if(s?.[1])return s[1];const o=t.match(/\.claude\/projects\/-Users-([^-]+)-dev-([^/]+)/);if(o?.[1]&&o[2]){const a=o[2].split("-packages-")[0]??o[2];return`/Users/${o[1]}/dev/${a}`}return null}function vo(e){const t=e.match(/^\/(?:Users|home)\/[^/]+(\/.*)?$/);if(!t)return e;const n=t[1]??"";return n?`~${n}`:"~"}function zt(e){const t=$e(e);if(!t)return null;const s=Js(t)?.root??bo(t)??t,a=vo(yo(s)??s);return a==="~"||/^\/(Users|home)\/[^/]+$/.test(a)||/^\/(Users|home)$/.test(a)?null:a}function Dt(e){return(e??"").toLowerCase().replace(/[^a-z0-9]+/g," ").trim().replace(/\s+\d+$/,"").replace(/\s+/g,"")}function xo(e){return(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/-\d+$/,"")}function jo(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(36)}function ys(e){const t=e.root??"";return t?$t(t)?3:t.startsWith("~/dev/")||/^\/Users\/[^/]+\/dev\//.test(t)?0:t.startsWith("~/")?1:2:4}function So(e,t){return ys(e)-ys(t)||e.key.localeCompare(t.key)}function Co(e){const t=new Map;for(const n of e){const s=t.get(n.slug)??[];s.push(n),t.set(n.slug,s)}for(const n of t.values()){if(n.length<=1)continue;const s=[...n].sort(So)[0];for(const o of n)o!==s&&(o.slug=`${o.slug}-${jo(o.key)}`)}}function ko(e,t){const n=zt(e);return n?`root:${n}`:`project:${Dt(t)||"unscoped"}`}function $t(e){return!!(e?.startsWith("/tmp/")||e?.startsWith("/private/tmp/")||e?.startsWith("/var/tmp/")||e?.startsWith("/private/var/tmp/")||/^\/(?:private\/)?var\/folders\/[^/]+\/[^/]+\/T\//.test(e??""))}function vs(e,t){const n=zt(t),s=n?Pt(W(n)??(e?.trim()||"Unscoped")):e?.trim()||"Unscoped";return{key:ko(n,s),title:s,root:n,slug:xo(W(n)??s)||"unscoped"}}const Ao=new Set(["empty","unknown","unscoped","untitled","general"]);function Mo(e,t){e.agents.push(...t.agents),e.scoutSessions.push(...t.scoutSessions),e.nativeSessions.push(...t.nativeSessions),e.workflows.push(...t.workflows)}function Io(e){const t=new Map;for(const n of e.values()){if(!n.root)continue;const s=Dt(W(n.root)??n.title);s&&!t.has(s)&&t.set(s,n)}for(const[n,s]of[...e.entries()]){if(s.root)continue;const o=Dt(s.title),a=o?t.get(o):void 0;a?(Mo(a,s),e.delete(n)):(!o||Ao.has(s.title.trim().toLowerCase())||s.agents.length===0&&s.scoutSessions.length===0)&&e.delete(n)}}function Fa(e,t){if(t.filter(o=>o.name===e.name).length<=1)return{name:e.name,qualifier:null};const s=e.project??e.branch??e.id.replace(/^.*\./,"");return{name:e.name,qualifier:s}}function Ua(e){const t=[...e].filter(o=>o.kind==="direct"&&!!o.agentId).sort((o,a)=>(a.lastMessageAt??0)-(o.lastMessageAt??0)),n=new Map,s=new Map;for(const o of t){const a=s.get(o.agentId);(!a||Eo(o,a))&&(n.set(o.agentId,o.id),s.set(o.agentId,o))}return{conversationByAgentId:n,sessionByAgentId:s}}function Eo(e,t){const n=e.lastMessageAt??0,s=t.lastMessageAt??0;return n!==s?n>s:e.id<t.id}const ct={needs_attention:0,in_turn:1,in_flight:2,callable:3,blocked:4},No=6e4;function Ve(e,t){const n=$e(t),s=Js(n);return s?vs(s.title,s.root):vs(e,n)}function Ro(e){const t=$e(e.agent.projectRoot??e.agent.cwd),n=e.agent.project??e.project;return Ve(n,t)}function To(e){return Ve(e.project,e.cwd)}function Lo(e){return Ve(e.agentName??e.title,e.workspaceRoot)}function Po(e){return Ve(e.project.title,e.project.root)}function mt(e){const t=e?.trim();if(!t)return null;const n=W(t)??t;return n.endsWith(".jsonl")?n.slice(0,-6):n}function Le(e,t){const n=t?.trim();n&&e.add(n.toLowerCase());const s=mt(n);s&&e.add(s.toLowerCase())}function Xs(e){const t=new Set;return Le(t,e.agent.conversationId),Le(t,e.agent.harnessSessionId),Le(t,e.agent.harnessLogPath),Le(t,e.session?.id),Le(t,e.session?.harnessSessionId),Le(t,e.session?.harnessLogPath),t}function De(e,t){const n=t?.trim();if(n&&e.has(n.toLowerCase()))return!0;const s=mt(n);return!!(s&&e.has(s.toLowerCase()))}function Do(e,t){if(e.agentId&&e.agentId===t.agent.id)return!0;const n=Xs(t);return De(n,e.id)||De(n,e.harnessSessionId)||De(n,e.harnessLogPath)}function $o(e,t){const n=e?.command?.toLowerCase();return n?[t.agent.id,t.agent.selector?.replace(/^@/,"").replace(/\.node:.+$/,""),t.agent.defaultSelector?.replace(/^@/,"").replace(/\.node:.+$/,""),t.agent.harnessSessionId].filter(o=>!!(o&&o.length>=8)).some(o=>n.includes(o.toLowerCase())):!1}function _o(e,t){const n=Xs(t);return De(n,e.refId)||De(n,e.sessionId)||De(n,e.transcriptPath)||$o(e.process,t)}function Ha(e,t){if(!e)return[];const n=[];for(const s of e.transcripts??[]){const o=s.source||"unknown",a=mt(s.sessionId)??mt(s.transcriptPath);if(!a)continue;const u=(s.lastEventAt??s.mtimeMs)||null;n.push({key:`transcript:${s.transcriptPath}`,refId:a,source:o,project:s.project?.trim()||W(s.cwd)||W(s.transcriptPath)||"unknown",cwd:$e(s.cwd),transcriptPath:s.transcriptPath,sessionId:s.sessionId,mtimeMs:s.mtimeMs,size:s.size,status:u&&t-u<=No?"active":"idle",process:null,lastActivityAt:u})}for(const s of e.processes??[]){const o=s.source||"unknown",a=$e(s.cwd);n.push({key:`process:${o}:${s.pid}`,refId:`pid-${s.pid}`,source:o,project:W(a)??"unknown",cwd:a,transcriptPath:null,sessionId:null,mtimeMs:null,size:null,status:"active",process:s,lastActivityAt:null})}return n.sort((s,o)=>{const a=(s.status==="active"?0:1)-(o.status==="active"?0:1);return a!==0?a:(o.lastActivityAt??0)-(s.lastActivityAt??0)||s.project.localeCompare(o.project)})}function Oo(e){if(!e)return"—";const t=e.replace(/^session[_:-]?/i,"");return t.length>10?t.slice(0,8):t}function Pe(e){const t=e?.trim();return t||void 0}function Fo(e){const t=Pe(e.projectRoot)??Pe(e.cwd);return{target:{agentId:e.id,...t?{projectPath:t}:{}},execution:{session:"new",...Pe(e.harness)?{harness:Pe(e.harness)}:{},...Pe(e.model)?{model:Pe(e.model)}:{}}}}function Uo(e){if(e.length===0)return null;const t={working:0,needs_attention:1,queued:2,failed:3,completed:4},n=[...e].sort((s,o)=>{const a=t[s.status]-t[o.status];return a!==0?a:(o.updatedAt??0)-(s.updatedAt??0)})[0];return(n.summary??n.task??n.statusLabel??"").trim()||null}function Ba(e,t,n){const s=Zn(e.state,e),o=e.project??W(e.projectRoot)??"Unscoped",a=e.branch??"—",u=Lt(e.harness)??Lt(e.agentClass)??"agent";return{agent:e,status:s,stateLabel:eo(e.state,e),project:o,branch:a,harness:u,session:t,activeTask:Uo(n),activeAskCount:n.length,lastActivityAt:Math.max(0,t?.lastMessageAt??0,e.updatedAt??0)||null}}function Ho(e){return{...e,agents:[],scoutSessions:[],nativeSessions:[],workflows:[],status:"callable",lastActivityAt:null}}function lt(e,t){const n=e.get(t.key);if(n)return t.root&&(!n.root||$t(n.root)&&!$t(t.root))&&(n.root=t.root),n;const s=Ho(t);return e.set(t.key,s),s}function Bo(e){const t=e.agents.some(p=>p.status==="in_turn"||p.status==="in_flight"),n=e.nativeSessions.some(p=>p.status==="active"),s=e.workflows.some(p=>p.activeTaskCount>0||p.status==="running"),o=e.agents.some(p=>p.status==="callable");e.status=t||n||s?"in_turn":o?"callable":"blocked";const a=e.agents.map(p=>p.lastActivityAt??0),u=e.scoutSessions.map(p=>p.lastMessageAt??0),m=e.nativeSessions.map(p=>p.lastActivityAt??0),d=e.workflows.map(p=>p.lastActivityAt??0),b=Math.max(0,...a,...u,...m,...d);e.lastActivityAt=b||null}function zo(e,t,n,s){const o=new Map,a=new Map;for(const d of e){const b=Ro(d);lt(o,b).agents.push(d),a.set(d.agent.id,b.key)}for(const d of n)lt(o,To(d)).nativeSessions.push(d);for(const d of s)lt(o,Po(d)).workflows.push(d);const u=new Map;for(const d of t){const b=d.agentId?a.get(d.agentId):void 0,p=b?o.get(b)??null:zt(d.workspaceRoot)?lt(o,Lo(d)):null;if(!p)continue;const x=p,F=u.get(x.key)??new Set;F.has(d.id)||(F.add(d.id),u.set(x.key,F),x.scoutSessions.push(d))}Io(o);for(const d of o.values())d.agents.sort((b,p)=>{const x=ct[b.status]-ct[p.status];return x!==0?x:(p.lastActivityAt??0)-(b.lastActivityAt??0)||b.agent.name.localeCompare(p.agent.name)}),d.scoutSessions.sort((b,p)=>(p.lastMessageAt??0)-(b.lastMessageAt??0)),d.nativeSessions.sort((b,p)=>{const x=(b.status==="active"?0:1)-(p.status==="active"?0:1);return x!==0?x:(p.lastActivityAt??0)-(b.lastActivityAt??0)}),d.workflows.sort((b,p)=>{const x=(p.activeTaskCount>0?1:0)-(b.activeTaskCount>0?1:0);return x!==0?x:(p.lastActivityAt??0)-(b.lastActivityAt??0)||b.label.localeCompare(p.label)}),Bo(d);const m=[...o.values()];return Co(m),m.sort((d,b)=>{const p=ct[d.status]-ct[b.status];return p!==0?p:(b.lastActivityAt??0)-(d.lastActivityAt??0)||d.title.localeCompare(b.title)})}function xs(e){const t=Lt(e.harness)??"scout";return{key:`scout:${e.id}`,kind:"scout",status:e.kind,harness:t,label:e.title||e.agentName||e.id,detail:e.preview??e.id,lastActivityAt:e.lastMessageAt,route:{view:"conversation",conversationId:e.id}}}function js(e){return{key:`native:${e.key}`,kind:"native",status:e.status,harness:e.source,label:Oo(e.sessionId??e.refId),detail:e.transcriptPath??e.process?.command??e.cwd,lastActivityAt:e.lastActivityAt,route:e.sessionId||e.transcriptPath?{view:"sessions",sessionId:e.refId}:null}}function Go(e,t){return e.agent.name.localeCompare(t.agent.name)||e.agent.id.localeCompare(t.agent.id)}function Ss(e){const t={workflow:0,native:1,scout:2};return[...e].sort((n,s)=>{const o=t[n.kind]-t[s.kind];return o!==0?o:n.harness.localeCompare(s.harness)||n.key.localeCompare(s.key)})}function Wo(e){const t=new Set,n=new Set,s=[...e.agents].sort(Go).map(a=>{const u=[];for(const m of e.scoutSessions)t.has(m.id)||Do(m,a)&&(t.add(m.id),u.push(xs(m)));for(const m of e.nativeSessions)n.has(m.key)||_o(m,a)&&(n.add(m.key),u.push(js(m)));return{key:a.agent.id,row:a,sessions:Ss(u)}}),o=Ss([...e.nativeSessions.filter(a=>!n.has(a.key)).map(js),...e.scoutSessions.filter(a=>!t.has(a.id)).map(xs)]);return{agents:s,unassignedSessions:o}}const qo=e=>e.status==="in_turn"||e.status==="in_flight";function Ko(e){let t=e.row.lastActivityAt??0;for(const n of e.sessions)t=Math.max(t,n.lastActivityAt??0);return t}function Cs(e){return e.agents.filter(t=>qo(t.row)).length}function ks(e){return e.agents.some(t=>t.row.activeAskCount>0)}function za(e,t,n){const o=zo(e,t,n,[]).map(a=>{const u=Wo(a);let m=0;for(const d of u.agents)m=Math.max(m,Ko(d));for(const d of u.unassignedSessions)m=Math.max(m,d.lastActivityAt??0);return{slice:a,agents:u.agents,unassigned:u.unassignedSessions,lastActivityAt:m}});return o.sort((a,u)=>{const m=ks(a)?1:0,d=ks(u)?1:0;if(m!==d)return d-m;const b=Cs(a),p=Cs(u);return b!==p?p-b:u.lastActivityAt-a.lastActivityAt}),o}function Ga(e,t){if(!t)return null;const n=t.trim().replace(/^@+/,"");if(!n)return null;const s=e.find(m=>m.id===n);if(s)return s;if(n.split(".").filter(Boolean).length>=3)return null;const a=e.filter(m=>m.handle===n||m.selector===`@${n}`||m.defaultSelector===`@${n}`||m.id.startsWith(`${n}.`)),u=Array.from(new Map(a.map(m=>[m.id,m])).values());return u.length===1?u[0]:null}function Wa(e){const n=e.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean);return n[n.length-1]??e}function qa(e){const t=$e(e.projectRoot??e.cwd),n=e.project??W(t);return Ve(n,t)}const Vs=new Set(["md","markdown","mdx","mdown","mkd"]),Jo=new Set(["c","cc","cpp","cxx","h","hh","hpp","hxx","cjs","mjs","js","jsx","ts","tsx","py","pyw","pyi","rs","go","java","kt","kts","swift","cs","rb","php","lua","r","sh","bash","zsh","fish","ps1","bat","cmd","sql","prisma","json","jsonc","json5","yaml","yml","toml","xml","html","htm","xhtml","css","scss","sass","less","vue","svelte","astro","graphql","gql","zig","ex","exs","erl","hrl","hs","clj","cljs","cljc","dart","tf","hcl","nix","env","ini","cfg","conf","properties","txt","log","cmake","gradle","groovy","patch","diff","proto","wat"]),Xo=new Set(["dockerfile","containerfile","makefile","gemfile","rakefile","procfile","brewfile"]),Vo=new Set(["text/markdown","text/x-markdown","text/plain","text/javascript","text/typescript","text/css","text/html","text/yaml","text/toml","text/x-shellscript","application/json","application/javascript"]);function Ys(e){return e.trim().split(/[/\\]/).pop()?.toLowerCase()??""}function Gt(e){const t=Ys(e),n=t.lastIndexOf(".");return n>=0?t.slice(n+1):""}function Yo(e){return Vs.has(Gt(e))}function Qo(e){const t=Ys(e);return Xo.has(t)?!0:Jo.has(Gt(e))}function Qs(e){return Yo(e)||Qo(e)}function Zs(e,t){if(!Qs(t))return null;const n=Gt(t);if(Vs.has(n))return"text/markdown";switch(n){case"json":case"jsonc":case"json5":return"application/json";case"yaml":case"yml":return"text/yaml";case"toml":return"text/toml";case"html":case"htm":case"xhtml":return"text/html";case"css":case"scss":case"sass":case"less":return"text/css";case"js":case"jsx":case"mjs":case"cjs":return"text/javascript";case"ts":case"tsx":return"text/typescript";case"sh":case"bash":case"zsh":case"fish":return"text/x-shellscript"}const s=e.trim().toLowerCase();return Vo.has(s)?s:"text/plain"}function Zo(e,t){const n=e.trim().toLowerCase();return n.startsWith("image/")||n.startsWith("video/")||n==="text/markdown"||n==="text/x-markdown"?!0:t?Zs(n,t)?!0:!n||n==="application/octet-stream"?Qs(t):!1:!1}function er(e){const t=e.type.trim().toLowerCase();return t.startsWith("image/")||t.startsWith("video/")?t:Zs(t,e.name)??t}function Je(e){return Zo(e.type,e.name)}function tr(e){return er(e)}function ut(e){return e?e.files.length>0||[...e.types].some(t=>t.toLowerCase()==="files")?!0:[...e.items].some(t=>t.kind==="file"):!1}function en(e){if(!e)return[];const t=[...e.files];if(t.length>0)return t;const n=[];for(const s of e.items){if(s.kind!=="file")continue;const o=s.getAsFile();o&&n.push(o)}return n}function sr(e){return en(e).filter(Je)}function Ka(e){return sr(e)}function nr(e){return new Promise((t,n)=>{const s=new FileReader;s.onload=()=>{const o=typeof s.result=="string"?s.result:"",a=o.indexOf(",");t(a>=0?o.slice(a+1):o)},s.onerror=()=>n(s.error??new Error("Could not read file.")),s.readAsDataURL(e)})}async function or(e){if(!Je(e))throw new Error("Only markdown, code, image, and video files can be routed.");const t=await nr(e);return q("/api/blobs",{method:"POST",body:JSON.stringify({data:t,mediaType:tr(e),fileName:e.name})})}async function rr(e){const t=e.filter(Je);if(t.length===0)throw new Error("Drop markdown, code, an image, or a video clip to route.");return(await Promise.all(t.map(s=>or(s)))).map((s,o)=>({id:s.id,mediaType:s.mediaType,fileName:s.fileName??t[o]?.name,url:s.url}))}function ar(e,t){const n=t?.trim();return n?e.find(s=>s.id===n)??null:null}function ir(e,t){if(e.view==="conversation"&&e.conversationId)return{agentId:null,conversationId:e.conversationId,label:"Current chat",canUseExistingChat:!0};if(e.view==="messages"&&e.conversationId)return{agentId:null,conversationId:e.conversationId,label:"Current chat",canUseExistingChat:!0};if(e.view==="agents-v2"&&e.agentId){const n=ar(t,e.agentId),s=e.conversationId??n?.conversationId??null;return{agentId:e.agentId,conversationId:s,label:n?.name??e.agentId,canUseExistingChat:!!s}}return{agentId:null,conversationId:null,label:"Pick a project",canUseExistingChat:!1}}function As({label:e,items:t,activeIndex:n,placement:s="above",onPick:o,onActiveIndexChange:a}){return t.length===0?null:i.jsxs("div",{className:"s-msg-compose-suggest surface-card","data-placement":s,role:"listbox","aria-label":e,children:[i.jsxs("div",{className:"s-msg-compose-suggest-header",children:[i.jsx("span",{className:"s-msg-compose-suggest-label label-xs text-muted",children:e}),i.jsxs("span",{className:"label-xs text-dim s-msg-compose-suggest-count",children:[t.length," options"]})]}),i.jsx("div",{className:"s-msg-compose-suggest-list",children:t.map((u,m)=>{const d=m===n;return i.jsxs("button",{type:"button",role:"option","aria-selected":d,className:`s-msg-compose-suggest-item${d?" s-msg-compose-suggest-item--active":""}`,onMouseDown:b=>{b.preventDefault(),o(m)},onMouseEnter:()=>a(m),children:[d&&i.jsx("span",{className:"s-msg-compose-suggest-active-indicator","aria-hidden":"true"}),u.avatarNode?i.jsx("span",{className:"s-msg-compose-suggest-avatar-node","aria-hidden":"true",children:u.avatarNode}):u.avatar?i.jsx("span",{className:"s-ops-avatar s-msg-compose-suggest-avatar",style:{"--size":"20px",background:u.avatar.color},"aria-hidden":"true",children:u.avatar.label}):null,i.jsx("span",{className:"s-msg-compose-suggest-token",children:u.token}),i.jsx("span",{className:"s-msg-compose-suggest-desc",children:u.description}),d&&i.jsx("span",{className:"s-msg-compose-suggest-pick-hint label-xs text-dim",children:i.jsx(Gn,{size:10,"aria-hidden":"true"})})]},u.id)})}),i.jsx("div",{className:"s-msg-compose-suggest-footer",children:i.jsxs("span",{className:"label-xs text-dim",children:[i.jsx("kbd",{className:"s-kbd",children:"↑"})," ",i.jsx("kbd",{className:"s-kbd",children:"↓"})," navigate · ",i.jsx("kbd",{className:"s-kbd",children:"↵"})," select · ",i.jsx("kbd",{className:"s-kbd",children:"esc"})," close"]})})]})}const G="",cr={none:"no reasoning",minimal:"lightest",low:"triage",medium:"default",high:"deep",xhigh:"exhaustive",max:"fullest",ultra:"beyond max"},lr=Ht.map(e=>({value:e,label:Gs[e],note:cr[e]}));function _e(e,t){return e.harnesses.find(n=>n.value===t)}function Wt(e,t){return _e(e,t)?.models??[]}function Ae(e,t,n){const s=_e(e,t),o=s?s.efforts===null?null:s.efforts??e.efforts:e.efforts;if(!o||!n)return o;const a=new Set((s?.models??[]).map(u=>u.value));return a.has(n)?o.filter(u=>{if(!u.models||u.models.length===0)return!0;const m=u.models.filter(d=>a.has(d));return m.length===0||m.includes(n)}):o}function tn(e,t){const s=Wt(e,t.harness).find(o=>o.value===t.model);return s||(t.model.trim()?{value:t.model,label:t.model,note:"custom"}:{value:G,label:"Default",note:"harness picks"})}function ur(e,t){const n=_e(e,t.harness),s=n?.label??t.harness??"Default",o=tn(e,t),a=Ae(e,t.harness,t.model),u=a?.find(b=>b.value===t.effort),m=u?.label??t.effort,d=a?`Runtime: ${s}, model ${o.label}, effort ${m}`:`Runtime: ${s}, model ${o.label}`;return{harness:n,harnessLabel:s,model:o,modelLabel:o.label,effort:u,effortLabel:m,supportsEffort:a!==null,summary:d}}function dr(e,t,n){const s={...t,...n};if(!(n.harness!==void 0&&n.harness!==t.harness)){if(n.model===void 0||n.model===t.model)return s;const p=Ae(e,s.harness,s.model);if(!p||s.effort===G||p.some(Z=>Z.value===s.effort))return s;const F=(Ae(e,t.harness,t.model)??e.efforts).findIndex(Z=>Z.value===t.effort),Q=Math.min(Math.max(F,0),p.length-1);return s.effort=p[Q]?.value??p[0]?.value??G,s}const a=_e(e,s.harness);s.model=n.model??a?.defaultModel??G,n.effort===void 0&&a?.defaultEffort&&(s.effort=a.defaultEffort);const u=Ae(e,s.harness,s.model);if(!u)return s.effort=G,s;if(u.some(p=>p.value===s.effort))return s;const d=(Ae(e,t.harness,t.model)??e.efforts).findIndex(p=>p.value===t.effort),b=Math.min(Math.max(d,0),u.length-1);return s.effort=u[b]?.value??u[0]?.value??G,s}function fr(e,t){const n=t?.harness??e.harnesses.find(a=>!a.disabled)?.value??"",s=Ae(e,n),o=s?.find(a=>a.note==="default")?.value??s?.[Math.floor((s.length-1)/2)]?.value??G;return{harness:n,model:t?.model??_e(e,n)?.defaultModel??Wt(e,n)[1]?.value??G,effort:s?t?.effort??_e(e,n)?.defaultEffort??o:G}}function mr(e,t){const n=t.trim().toLowerCase();return n?e.filter(s=>`${s.label} ${s.value} ${s.note??""}`.toLowerCase().includes(n)):e}function qe(...e){for(const t of e){const n=t?.trim();if(n)return n}}function sn(e){const t=e.harnesses.map(s=>{const o=e.defaultsByHarness?.[s.id],a=s.ready!==!1,u=[{value:G,label:"Default",note:"harness picks"},...e.models.filter(d=>d.harnesses.includes(s.id)).map(d=>({value:d.id,label:d.label,note:qe(d.description)}))],m=e.efforts.filter(d=>d.harnesses.includes(s.id));return{value:s.id,label:s.label,note:a?qe(s.description):qe(s.detail,s.state,"unavailable"),disabled:!a,defaultModel:o?.model??G,defaultEffort:o?.reasoningEffort??G,models:u,efforts:m.length===0?null:m.map(d=>({value:d.id,label:d.label,note:qe(d.description),...d.models?.length?{models:[...d.models]}:{}}))}}),n=e.efforts.map(s=>({value:s.id,label:s.label,note:qe(s.description)}));return{harnesses:t,efforts:n.length>0?n:lr}}const hr=6,Ms=400,pr=14,gr=300,ke=8,Et=["harness","model","effort"],wr={harness:"horizontal",model:"horizontal",effort:"horizontal"};function br(){return i.jsx("svg",{className:"s-rt-chip-chevron",width:"8",height:"5",viewBox:"0 0 8 5",fill:"none","aria-hidden":"true",children:i.jsx("path",{d:"M1 1.2 4 4 7 1.2",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})})}function yr({ctx:e}){const{efforts:t,value:n,set:s}=e;if(!t)return null;const o=Math.max(0,t.findIndex(a=>a.value===n.effort));return i.jsx("div",{className:"s-rt-ladder",role:"radiogroup","aria-label":"Reasoning effort",children:t.map((a,u)=>{const m=u===o;return i.jsxs("button",{type:"button",role:"radio","aria-checked":m,title:a.note,onClick:()=>s({effort:a.value}),...e.cell("effort",u),className:"s-rt-step",children:[i.jsx("span",{className:"s-rt-step-bar","data-state":m?"current":u<o?"filled":"empty"}),i.jsx("span",{className:"s-rt-step-label",children:a.label})]},a.value)})})}function vr({harnessLabel:e}){return i.jsxs("p",{className:"s-rt-effort-absent",children:[e," has no effort control."]})}function Nt({children:e}){return i.jsx("h3",{className:"s-rt-label",children:e})}function xr({ctx:e}){return i.jsxs("div",{className:"s-rt-search",children:[i.jsxs("svg",{width:"11",height:"11",viewBox:"0 0 12 12","aria-hidden":"true",className:"s-rt-search-icon",children:[i.jsx("circle",{cx:"5",cy:"5",r:"3.4",fill:"none",stroke:"currentColor",strokeWidth:"1.3"}),i.jsx("path",{d:"M7.6 7.6 10.5 10.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),i.jsx("input",{ref:e.searchRef,type:"text",value:e.query,onChange:t=>e.setQuery(t.target.value),onKeyDown:e.onSearchKeyDown,placeholder:"Filter models","aria-label":"Filter models",spellCheck:!1,autoComplete:"off",className:"s-rt-search-input"}),e.query?i.jsx("button",{type:"button",onClick:()=>{e.setQuery(""),e.searchRef.current?.focus()},"aria-label":"Clear filter",className:"s-rt-search-clear",children:"clear"}):null]})}function jr({ctx:e}){return e.status==="loading"?i.jsxs("div",{className:"s-rt-status","aria-busy":!0,role:"status",children:[i.jsx("span",{className:"s-rt-sr",children:"Loading models"}),[0,1,2].map(t=>i.jsx("span",{"aria-hidden":!0,className:"s-rt-skel",style:{animationDelay:`${t*90}ms`}},t))]}):e.status==="error"?i.jsxs("div",{role:"alert",className:"s-rt-status s-rt-status--error",children:[i.jsx("span",{className:"s-rt-status-message",children:e.statusMessage??"Model catalog unavailable."}),e.onRetry?i.jsx("button",{type:"button",onClick:e.onRetry,className:"s-rt-retry",children:"Retry"}):null]}):i.jsx("p",{className:"s-rt-empty",children:e.query.trim()?`No model matches “${e.query.trim()}”.`:"No models listed."})}function Sr({ctx:e}){return e.status!=="ready"||e.models.length===0?i.jsx(jr,{ctx:e}):i.jsx("div",{role:"listbox","aria-label":"Model",className:"s-rt-models",children:e.models.map((t,n)=>{const s=t.value===e.value.model,o=t.disabled??!1;return i.jsx("button",{type:"button",role:"option","aria-selected":s,"aria-disabled":o||void 0,onClick:()=>{o||e.set({model:t.value})},"data-on":s||void 0,"data-disabled":o||void 0,title:t.note,...e.cell("model",n),style:{animationDelay:`${Math.min(n,6)*16}ms`},className:"s-rt-opt s-rt-model-opt",children:t.label},t.value||"default")})},e.value.harness)}function Is({value:e,defaultValue:t,onChange:n,catalog:s,status:o="ready",statusMessage:a,onRetry:u,disabled:m=!1,showEffort:d,searchable:b="auto",className:p}){const[x,F]=l.useState(!1),[Q,Z]=l.useState(""),[Ye,Qe]=l.useState(()=>fr(s,t)),M=e??Ye,C=l.useRef(null),he=l.useRef(null),pe=l.useRef(null),ge=l.useRef(null),I=l.useId(),je=l.useCallback(f=>{const y=dr(s,M,f);e===void 0&&Qe(y),n?.(y),f.harness!==void 0&&f.harness!==M.harness&&Z("")},[s,e,n,M]),L=s.harnesses,Oe=l.useMemo(()=>Wt(s,M.harness),[s,M.harness]),_=l.useMemo(()=>{const f=tn(s,M);return f.note!=="custom"?Oe:[...Oe,f]},[Oe,s,M]),ie=l.useMemo(()=>mr(_,Q),[_,Q]),Fe=Ae(s,M.harness,M.model),ee=d===!1?null:d===!0?Fe??s.efforts:Fe,te=b==="auto"?_.length>hr:b,U=ur(s,M),N=l.useRef(new Map),[we,T]=l.useState({group:"model",index:0}),P=l.useMemo(()=>({harness:L.length,model:o==="ready"?ie.length:0,effort:ee?.length??0}),[ee?.length,L.length,ie.length,o]),ce=l.useCallback(f=>f==="harness"?Math.max(0,L.findIndex(y=>y.value===M.harness)):f==="model"?Math.max(0,ie.findIndex(y=>y.value===M.model)):Math.max(0,ee?.findIndex(y=>y.value===M.effort)??0),[ee,L,ie,M]),R=l.useCallback((f,y)=>{T({group:f,index:y}),N.current.get(`${f}:${y}`)?.focus()},[]),se=l.useCallback((f,y)=>{const w=Et.indexOf(f);for(let S=w+y;S>=0&&S<Et.length;S+=y){const k=Et[S];if(P[k]>0)return R(k,Math.min(ce(k),P[k]-1)),!0}return!1},[P,R,ce]),Ze=l.useCallback((f,y)=>({ref:w=>{const S=`${f}:${y}`;w?N.current.set(S,w):N.current.delete(S)},tabIndex:we.group===f&&we.index===y?0:-1,onFocus:()=>T({group:f,index:y}),onKeyDown:w=>{const S=wr[f]==="vertical",k=S?"ArrowDown":"ArrowRight",K=S?"ArrowUp":"ArrowLeft",z=S?"ArrowRight":"ArrowDown",He=S?"ArrowLeft":"ArrowUp",O=P[f];O!==0&&(f==="model"&&w.key==="ArrowUp"&&te?(w.preventDefault(),T({group:f,index:y}),ge.current?.focus()):w.key===k?(w.preventDefault(),R(f,(y+1)%O)):w.key===K?(w.preventDefault(),R(f,(y-1+O)%O)):w.key===z?(w.preventDefault(),se(f,1)):w.key===He?(w.preventDefault(),se(f,-1)):w.key==="Home"?(w.preventDefault(),R(f,0)):w.key==="End"&&(w.preventDefault(),R(f,O-1)))}}),[P,we,R,se,te]),be=l.useCallback(f=>{if(f.key==="ArrowDown"&&P.model>0)f.preventDefault(),R("model",0);else if(f.key==="ArrowUp")f.preventDefault(),se("model",-1);else if(f.key==="Enter"&&P.model===1){f.preventDefault();const y=ie[0];y.disabled||je({model:y.value})}else f.key==="Escape"&&Q&&(f.preventDefault(),f.stopPropagation(),Z(""))},[P.model,R,se,ie,Q,je]),[H,Ue]=l.useState(null),ye=l.useCallback(()=>{const f=he.current;if(!f)return;const y=f.getBoundingClientRect(),w=y.top,S=window.innerHeight-y.bottom,k=w>=gr||w>=S?"up":"down",K=Math.min(Ms,window.innerWidth-ke*2),z=Math.min(Math.max(ke,y.right-K),Math.max(ke,window.innerWidth-K-ke));Ue({left:z,top:k==="up"?y.top-ke:y.bottom+ke,placement:k})},[]);l.useLayoutEffect(()=>{if(!x)return;ye();const f=()=>ye();return window.addEventListener("scroll",f,!0),window.addEventListener("resize",f),()=>{window.removeEventListener("scroll",f,!0),window.removeEventListener("resize",f)}},[x,ye]);const E=l.useCallback(f=>{F(!1),f&&he.current?.focus()},[]);l.useEffect(()=>{if(!x)return;const f=w=>{const S=w.target;C.current?.contains(S)||pe.current?.contains(S)||F(!1)},y=w=>{w.key==="Escape"&&(w.stopPropagation(),E(!0))};return document.addEventListener("pointerdown",f),document.addEventListener("keydown",y),()=>{document.removeEventListener("pointerdown",f),document.removeEventListener("keydown",y)}},[x,E]),l.useEffect(()=>{if(!x)return;const f=P.model>0?"model":"harness",y=Math.min(ce(f),Math.max(0,P[f]-1));T({group:f,index:y});const w=requestAnimationFrame(()=>{const S=N.current.get(`${f}:${y}`);S?S.focus():pe.current?.focus()});return()=>cancelAnimationFrame(w)},[x]),l.useEffect(()=>{x||Z("")},[x]),l.useEffect(()=>{m&&F(!1)},[m]);const B={value:M,set:je,status:o,statusMessage:a,onRetry:u,harnesses:L,models:ie,efforts:ee,harnessLabel:U.harnessLabel,searchable:te,query:Q,setQuery:Z,searchRef:ge,cell:Ze,onSearchKeyDown:be};return i.jsxs("div",{ref:C,className:p?`s-rt-root ${p}`:"s-rt-root",style:{position:"relative",display:"inline-flex"},children:[i.jsxs("button",{ref:he,type:"button",className:`s-rt-chip${m?" s-rt-chip--disabled":""}`,"aria-haspopup":"dialog","aria-expanded":x,"aria-controls":x?I:void 0,"aria-label":U.summary,disabled:m,onClick:()=>F(f=>!f),children:[i.jsx(bs,{harness:M.harness||"unknown",size:12,className:"s-rt-chip-mark",title:null}),i.jsxs("span",{className:"s-rt-chip-type",children:[i.jsx("span",{className:"s-rt-chip-model",style:{maxWidth:`${pr}ch`},children:i.jsx("span",{className:"s-rt-chip-model-text",children:U.modelLabel},U.modelLabel)}),ee&&U.effortLabel?i.jsxs(i.Fragment,{children:[i.jsx("span",{"aria-hidden":!0,className:"s-rt-chip-divider"}),i.jsx("span",{className:"s-rt-chip-effort","data-effort":M.effort,children:U.effortLabel})]}):null]}),i.jsx(br,{})]}),x&&H?Xn.createPortal(i.jsxs("div",{ref:pe,id:I,role:"dialog","aria-label":"Runtime",tabIndex:-1,"data-placement":H.placement,className:"s-rt-panel",style:{left:H.left,width:Math.min(Ms,window.innerWidth-ke*2),...H.placement==="up"?{bottom:window.innerHeight-H.top}:{top:H.top}},children:[i.jsxs("section",{className:"s-rt-band",style:{animationDelay:"20ms"},children:[i.jsx(Nt,{children:"Harness"}),i.jsx("div",{className:"s-rt-options",role:"radiogroup","aria-label":"Harness",children:L.map((f,y)=>{const w=f.value===M.harness,S=f.disabled??!1;return i.jsxs("button",{type:"button",role:"radio","aria-checked":w,"aria-disabled":S||void 0,onClick:()=>{S||B.set({harness:f.value})},"data-on":w||void 0,"data-disabled":S||void 0,title:f.note,...B.cell("harness",y),className:"s-rt-opt s-rt-harness-opt",children:[i.jsx(bs,{harness:f.value||"unknown",size:13,className:"s-rt-opt-mark",title:null}),i.jsx("span",{children:f.label})]},f.value||"default")})})]}),i.jsxs("section",{className:"s-rt-band",style:{animationDelay:"45ms"},children:[i.jsx(Nt,{children:"Model"}),te?i.jsx(xr,{ctx:B}):null,i.jsx(Sr,{ctx:B}),U.model.note?i.jsx("p",{className:"s-rt-band-note",children:U.model.note}):null]}),i.jsxs("section",{className:"s-rt-band",style:{animationDelay:"70ms"},children:[i.jsx(Nt,{children:"Effort"}),i.jsx("div",{className:"s-rt-effort",children:ee?i.jsx(yr,{ctx:B}):i.jsx(vr,{harnessLabel:U.harnessLabel})})]})]}),document.body):null]})}const _t="scout:newchat:frame:v1",Cr=620,Es=420,Ns=300,ht=12,kr=210,Ar=154;function nn(e){return e>Cr}function Rs(e,t,n){if(!nn(n.width))return null;const s=e??t;return s?pt(s,n):null}function Mr(e){return e?Math.max(Ar,Math.round(e.height-kr)):null}function Ts(e,t,n){const s=n-t-ht;return Math.round(Math.max(ht,Math.min(e,s)))}function pt(e,t){const n=Math.round(Math.max(Es,Math.min(e.width,Math.max(Es,t.width-ht*2)))),s=Math.round(Math.max(Ns,Math.min(e.height,Math.max(Ns,t.height-ht*2))));return{x:Ts(e.x,n,t.width),y:Ts(e.y,s,t.height),width:n,height:s}}function Ir(e,t,n,s){return pt({...e,x:e.x+t,y:e.y+n},s)}function Er(e,t,n,s,o){const a=s==="s"?e.width:e.width+t,u=s==="e"?e.height:e.height+n;return pt({...e,width:a,height:u},o)}function Nr(e){if(!e||typeof e!="object")return!1;const t=e;return["x","y","width","height"].every(n=>typeof t[n]=="number"&&Number.isFinite(t[n]))}function Rr(e){if(!e)return null;try{const t=JSON.parse(e);return Nr(t)?{x:t.x,y:t.y,width:t.width,height:t.height}:null}catch{return null}}function Ls(){try{return typeof localStorage>"u"?null:Rr(localStorage.getItem(_t))}catch{return null}}function Ps(e){try{if(typeof localStorage>"u")return;if(!e){localStorage.removeItem(_t);return}localStorage.setItem(_t,JSON.stringify(e))}catch{}}const Ot=io()??"",Ds=Ws(Ot),Me={schemaVersion:"openscout.runtime-capabilities.v1",catalogVersion:Y.schemaVersion,defaults:{harness:Ot,model:Ds,reasoningEffort:qs(Ot,Ds)},defaultsByHarness:uo,harnesses:Y.harnesses.filter(e=>e.enabled&&e.listed!==!1).map(e=>({id:e.id,label:e.label})),models:mo.map(e=>({id:e.id,label:e.label,...e.description?{description:e.description}:{},harnesses:[...e.harnesses]})),efforts:go.map(e=>({id:e.id,label:e.label,...e.description?{description:e.description}:{},harnesses:[...e.harnesses],...e.models?{models:[...e.models]}:{}}))};function Ja(e){return sn({defaultsByHarness:e.defaultsByHarness,harnesses:e.harnesses.map(t=>({id:t.id,label:t.label??t.id})),models:e.models.map(t=>({id:t.id,label:t.label??t.id,description:t.description,harnesses:t.harnesses})),efforts:e.efforts.map(t=>({id:t.id,label:t.label,description:t.description,harnesses:t.harnesses,...t.models?.length?{models:[...t.models]}:{}}))})}const Tr="|";function $s(e){return e<55296?e:e<57344?e+8192:e-2048}function Lr(e,t){if(e===t)return 0;const n=Math.min(e.length,t.length);for(let s=0;s<n;s+=1){const o=e.charCodeAt(s),a=t.charCodeAt(s);if(o!==a)return $s(o)<$s(a)?-1:1}return e.length===t.length?0:e.length<t.length?-1:1}function _s(e){return Number.isFinite(e)?e:0}function Pr(e,t){const n=_s(e.createdAt),s=_s(t.createdAt);return n!==s?n<s?-1:1:Lr(e.id,t.id)}function Dr(e){return`${Number.isFinite(e.createdAt)?Math.max(0,Math.trunc(e.createdAt)):0}${Tr}${e.id}`}const $r=10,_r=80,Os=300,Fs=100,on=2e3,Or=$r,xe=new Map,me=new Map;let rn=0;function Ee(e){return e.trim()}function Fr(e){const t=new Map;for(const n of e)t.set(n.id,n);return[...t.values()].sort(Pr)}function Ur(){if(xe.size<=Or)return;let e=null,t=Number.POSITIVE_INFINITY;for(const[n,s]of xe)s.touchedAt<t&&(e=n,t=s.touchedAt);e&&xe.delete(e)}function Ie(e){const t=Ee(e),n=xe.get(t);return n?(n.touchedAt=++rn,n.messages):null}function qt(e,t,n={}){const s=Ee(e);if(!s)return[];const o=xe.get(s),a=Fr(t).slice(-on);return xe.set(s,{messages:a,historyLoaded:n.historyLoaded??o?.historyLoaded??!1,historyExhausted:n.historyExhausted??o?.historyExhausted??!1,touchedAt:++rn}),Ur(),a}function an(e,t){const n=Ie(e)??[];return qt(e,[...n,...t])}function cn(e){return xe.get(Ee(e))?.historyLoaded??!1}function Hr(e){const t=xe.get(Ee(e));return!!(t&&t.historyLoaded&&!t.historyExhausted&&t.messages.length>0&&t.messages.length<on)}async function Xa(e,t={}){const n=Ee(e);if(!n)return[];const s=Ie(n);if(s&&!t.refresh)return s;const o=me.get(n);if(o)return o;const a=q(`/api/messages?conversationId=${encodeURIComponent(n)}&limit=${_r}`).then(u=>an(n,u));me.set(n,a);try{return await a}finally{me.delete(n)}}async function Br(e){const t=Ee(e);if(!t)return[];if(cn(t))return Ie(t)??[];const n=`${t}:history`,s=me.get(n);if(s)return s;const o=q(`/api/messages?conversationId=${encodeURIComponent(t)}&limit=${Os}`).then(a=>qt(t,[...Ie(t)??[],...a],{historyLoaded:!0,historyExhausted:a.length<Os}));me.set(n,o);try{return await o}finally{me.delete(n)}}async function Va(e){const t=Ee(e);if(!t)return[];if(!cn(t))return Br(t);if(!Hr(t))return Ie(t)??[];const n=Ie(t)??[],s=n[0];if(!s)return n;const o=Dr(s),a=`${t}:before:${o}`,u=me.get(a);if(u)return u;const m=q(`/api/messages?conversationId=${encodeURIComponent(t)}&limit=${Fs}&beforeMessageId=${encodeURIComponent(o)}`).then(d=>qt(t,[...d,...Ie(t)??[]],{historyLoaded:!0,historyExhausted:d.length<Fs}));me.set(a,m);try{return await m}finally{me.delete(a)}}const zr=12e4,Xe=new Map;function Gr(){const e=globalThis.crypto?.randomUUID?.();return e?`web-${e}`:`web-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function Wr(e){const t=e.conversationId.trim(),n=e.messageId.trim();if(!t||!n)return;an(t,[{id:n,conversationId:t,actorId:"operator",actorName:"operator",body:e.body,createdAt:e.createdAt,class:"operator",...e.attachments?.length?{attachments:e.attachments}:{},metadata:{clientMessageId:e.clientMessageId}}]);const s=e.flightId?.trim(),o=e.agentId?.trim();!s||!o||Xe.set(t,{flight:{id:s,invocationId:e.invocationId?.trim()||`pending:${s}`,agentId:o,agentName:null,conversationId:t,collaborationRecordId:null,state:"queued",summary:"Request accepted; waiting for worker activity.",startedAt:e.createdAt,completedAt:null,sessions:[]},expiresAt:Date.now()+zr})}function Ya(e,t=Date.now()){const n=e.trim(),s=Xe.get(n);return s?s.expiresAt<=t?(Xe.delete(n),null):s.flight:null}function Qa(e,t){const n=e.trim(),s=Xe.get(n);s&&(!t||s.flight.id===t)&&Xe.delete(n)}const qr=1200,Kr=new Set(["Page","URL"]);function ln(e){return e.trim().slice(0,qr)}function Jr(e){const t=[{label:"Page",value:e.pageTitle??""},{label:"URL",value:e.pageUrl??""}];return e.selection?.trim()&&t.push({label:"Selection",value:ln(e.selection)}),(e.notes??[]).forEach((n,s)=>{t.push({label:`Note ${s+1}`,value:n})}),t.filter(n=>n.value.trim())}function Xr(e,t){const n=[];for(const o of t){const a=o.value.trim();a&&(Kr.has(o.label)?n.push(`${o.label}: ${a}`):n.push(`${o.label}:
|
|
2
|
+
${a.split(`
|
|
3
|
+
`).map(u=>`> ${u}`).join(`
|
|
4
|
+
`)}`))}const s=e.trim();return s&&n.push(s),n.join(`
|
|
5
|
+
|
|
6
|
+
`)}const Vr=6,Us=1600;function Yr(e){return e===0?"":e===1?"[1 attachment remains on the source Scout message; not copied]":`[${e} attachments remain on the source Scout message; not copied]`}function un(e){const t=e.body.trim(),n=Yr(e.attachmentCount??0),s=[t,n].filter(Boolean).join(`
|
|
7
|
+
`)||"(message has no text)";return s.length<=Us?s:`${s.slice(0,Us-1).trimEnd()}…`}function Qr(e){const t=un(e).split(/\r?\n/gu).map(n=>`> ${n}`).join(`
|
|
8
|
+
`);return`Forwarded from ${e.actorLabel} in Scout
|
|
9
|
+
|
|
10
|
+
${t}`}function Za(e){const t=e.messages.findIndex(a=>a.id===e.selectedMessageId);if(t<0)throw new Error("The selected message is no longer available in this conversation.");const n=e.messages[t],s=e.messages.slice(Math.max(0,t-Vr),t).filter(a=>a.body.trim()||(a.attachmentCount??0)>0),o=s.map(a=>`${a.actorLabel}:
|
|
11
|
+
${un(a)}`).join(`
|
|
12
|
+
|
|
13
|
+
`).slice(-8e3).trim();return{selectedMessage:Qr(n),selectedMessageId:n.id,sourceConversationId:e.conversationId,...o?{recentContext:o}:{},recentMessageCount:s.length}}function Zr(e,t,n){const s=n.trim(),o=t==="instructions-only"?"":t==="recent-context"&&e.recentContext?[`Recent Scout conversation before the forwarded message (${e.recentMessageCount} ${e.recentMessageCount===1?"message":"messages"})`,e.recentContext,e.selectedMessage].join(`
|
|
14
|
+
|
|
15
|
+
`):e.selectedMessage;return s?o?`${s}
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
${o}`:s:o}const dn="openscout.project-recency.v1",fn=12;function mn(e){const t=e?.trim();return t?t.length>1?t.replace(/\/+$/u,""):t:null}function Ft(){if(typeof window>"u")return[];try{const e=window.localStorage.getItem(dn);if(!e)return[];const t=JSON.parse(e);if(!Array.isArray(t))return[];const n=[];for(const s of t){const o=typeof s=="string"?mn(s):null;o&&!n.includes(o)&&n.push(o)}return n.slice(0,fn)}catch{return[]}}function Hs(e){const t=mn(e);if(!t)return Ft();const n=[t,...Ft().filter(s=>s!==t)].slice(0,fn);if(typeof window<"u")try{window.localStorage.setItem(dn,JSON.stringify(n))}catch{}return n}async function ea(e){const t=e.conversationId?.trim();if(t)return t;const n=e.projectRoot?.trim()||e.cwd?.trim(),s=await q("/api/conversations/direct",{method:"POST",body:JSON.stringify({agentId:e.id,targetLabel:e.selector??e.defaultSelector??e.name,...n?{projectPath:n}:{}})}),o=s.chatId?.trim()??s.conversationId?.trim()??s.cId?.trim()??s.id?.trim();if(!o)throw new Error("Chat was created, but no chat id was returned.");return o}function Ke(e){const t=e?.trim();return t?t.length>1?t.replace(/\/+$/u,""):t:null}function Ut(e){return e.split("/").filter(Boolean).at(-1)??e}function ta(e,t,n="claude"){const s=new Map;for(const o of e){const a=Ke(o.root);a&&s.set(a,{id:o.id||`project:${a}`,title:o.title?.trim()||Ut(a),root:a,defaultHarness:o.defaultHarness?.trim()||n,source:"inventory",registrationKind:o.registrationKind?.trim()||null})}for(const o of t){const a=Ke(o.projectRoot??o.cwd);!a||s.has(a)||s.set(a,{id:`agent-project:${a}`,title:o.project?.trim()||Ut(a),root:a,defaultHarness:o.harness?.trim()||n,source:"agent",registrationKind:null})}return[...s.values()].sort((o,a)=>o.title.localeCompare(a.title,void 0,{sensitivity:"base"})||o.root.localeCompare(a.root))}function sa(e,t){const n=e.title.toLocaleLowerCase(),s=e.root.toLocaleLowerCase(),o=Ut(e.root).toLocaleLowerCase();return n===t||o===t||s===t?0:n.startsWith(t)||o.startsWith(t)?1:s.startsWith(t)?2:t.split(/\s+/u).filter(Boolean).every(u=>n.includes(u)||s.includes(u))?3:null}function na(e,t){if(t.length===0)return[...e];const n=new Map(e.map(a=>[a.root,a])),s=[],o=new Set;for(const a of t){const u=n.get(a);!u||o.has(a)||(o.add(a),s.push(u))}return[...s,...e.filter(a=>!o.has(a.root))]}function oa(e,t){const n=t.trim().toLocaleLowerCase();return n?e.map(s=>({project:s,score:sa(s,n)})).filter(s=>s.score!==null).sort((s,o)=>s.score-o.score||s.project.title.localeCompare(o.project.title,void 0,{sensitivity:"base"})||s.project.root.localeCompare(o.project.root)).map(s=>s.project):[...e]}function ra(e,t){return e===t||e.startsWith(`${t}/`)}function aa(e,t){const n=Ke(t.preferredRoot);if(n){const o=e.find(a=>a.root===n);if(o)return o}for(const o of t.recentRoots??[]){const a=Ke(o);if(!a)continue;const u=e.find(m=>m.root===a);if(u)return u}const s=Ke(t.currentDirectory);if(s){const o=e.filter(a=>ra(s,a.root)).sort((a,u)=>u.root.length-a.root.length)[0];if(o)return o}return e[0]??null}async function ia(e){await q("/api/send",{method:"POST",body:JSON.stringify({conversationId:e.conversationId,body:e.body?.trim()??"",attachments:e.attachments})})}async function ca(e,t){const n=t?.attachments?.filter(Boolean)??[],s=t?.instructions?.trim(),o=Fo(e),a=s||n.length>0?{...o,seed:{...s?{instructions:s}:{},...n.length>0?{attachments:n}:{},...t?.clientMessageId?{clientMessageId:t.clientMessageId}:{}}}:o;return await q("/api/sessions",{method:"POST",body:JSON.stringify(a)})}async function la(e){const t=e.projectPath.trim(),n=e.harness?.trim(),s=e.model?.trim(),o=e.reasoningEffort?.trim(),a=e.instructions?.trim(),u=e.fromMessageId?.trim(),m=e.fromConversationId?.trim(),d=e.attachments?.filter(Boolean)??[];return q("/api/sessions",{method:"POST",body:JSON.stringify({target:{projectPath:t},execution:{session:"new",...n?{harness:n}:{},...s?{model:s}:{},...o?{reasoningEffort:o}:{}},agent:{persistence:"one_time"},...a||d.length>0||u&&m?{seed:{...a?{instructions:a}:{},...d.length>0?{attachments:d}:{},...e.clientMessageId?{clientMessageId:e.clientMessageId}:{},...u&&m?{fromMessageId:u,fromConversationId:m}:{}}}:{}})})}async function ei(e){return q("/api/sessions",{method:"POST",body:JSON.stringify({target:{agentId:e.agentId.trim()},execution:{session:"existing",targetSessionId:e.sessionId.trim()},seed:{instructions:e.instructions.trim()}})})}function ua(e){const t=e?.trim().toLowerCase();if(t)switch(t){case"claude":case"claude-code":case"claude_code":case"claude_stream_json":return"claude";case"codex":case"codex_app_server":return"codex";case"pi":case"pi_rpc":return"pi";case"cursor":case"cursor_exec":return"cursor";case"grok":return"grok";case"grok-acp":case"grok_acp":return"grok-acp";case"kimi":return"kimi";case"opencode":case"opencode_acp":return"opencode";default:return}}function ti(e){const t=ua(e);return t&&["claude","codex","grok","opencode","pi"].includes(t)?t:void 0}async function si(e){const t=e.projectPath.trim(),n=e.sessionId.trim(),s=e.instructions.trim(),o=e.harness?.trim()||void 0,a=e.model?.trim()||void 0,u=e.reasoningEffort?.trim()||void 0;return q("/api/sessions",{method:"POST",body:JSON.stringify({target:{projectPath:t},execution:{session:"existing",targetSessionId:n,...o?{harness:o}:{},...a?{model:a}:{},...u?{reasoningEffort:u}:{}},seed:{instructions:s}})})}async function da(e,t){const n=t.message?.trim();if(t.mode==="existing-chat"){const a=await ea(e);return await ia({conversationId:a,body:n||"Shared capture",attachments:t.attachments}),{conversationId:a,agentId:e.id}}const s=await ca(e,{instructions:n||"Shared capture for context.",attachments:t.attachments}),o=s.conversationId?.trim();if(!o)throw new Error("Session started, but no conversation was returned.");return{conversationId:o,agentId:s.agentId?.trim()||e.id}}const hn=Me.harnesses.map(e=>({id:e.id,label:e.label??e.id,description:null,state:null,ready:null,detail:null})),fa=Me.models.map(e=>({id:e.id,label:e.label??e.id,description:e.description??null,harnesses:[...e.harnesses],source:"catalog"})),ma=Me.efforts.map(e=>({...e,harnesses:[...e.harnesses],...e.models?{models:[...e.models]}:{}})),dt={defaults:{harness:Me.defaults?.harness??"claude",model:Me.defaults?.model??null,reasoningEffort:Me.defaults?.reasoningEffort??"medium"},defaultsByHarness:Me.defaultsByHarness,harnesses:hn,models:fa,efforts:ma};let Rt=null;const Bs="/api/runner/options",ha=5*6e4,zs=5;function pa(e,t){const n=e.defaults.harness===t?e.defaults.model?.trim()??"":"";return n&&e.models.some(s=>s.id===n&&s.harnesses.includes(t))?n:e.models.find(s=>s.harnesses.includes(t))?.id??""}function ga(e,t){const n=e.efforts.filter(s=>s.harnesses.includes(t));return n.find(s=>s.id===e.defaults.reasoningEffort)?.id??n.find(s=>s.id==="medium")?.id??n[0]?.id??""}function wa(e){return URL.createObjectURL(e)}function Tt(e){return e.replace(/^\/Users\/[^/]+/u,"~")}function ba(e){return e.split("/").filter(Boolean).at(-1)??e}function ya(e){const t=e.trim();return t.startsWith("/")||t.startsWith("~/")}function va({file:e,onRemove:t}){const n=l.useMemo(()=>wa(e),[e]);l.useEffect(()=>()=>URL.revokeObjectURL(n),[n]);const s=e.type.startsWith("video/"),o=e.type.startsWith("image/");return i.jsxs("div",{className:"s-newchat-attachment",children:[s?i.jsx("video",{src:n,muted:!0,playsInline:!0}):o?i.jsx("img",{src:n,alt:e.name}):i.jsxs("div",{className:"s-newchat-attachment-file",title:e.name,children:[i.jsx(ro,{size:24,"aria-hidden":"true"}),i.jsx("span",{children:e.name})]}),i.jsx("span",{className:"s-newchat-attachment-badge",children:s?"video":o?"image":"file"}),i.jsx("button",{type:"button",className:"s-newchat-attachment-remove","aria-label":`Remove ${e.name}`,onClick:t,children:"×"})]})}function ft(){return{width:window.innerWidth,height:window.innerHeight}}function xa({agents:e,route:t,navigate:n,onClose:s,initialAgentId:o,initialConversationId:a,initialMessage:u,initialFiles:m,initialAttachmentFeedback:d,initialIntent:b="new-task",initialProjectPath:p,initialForwardContext:x,initialForwardContextMode:F="selected-message",defaultMode:Q,draftRestored:Z=!1,onDraftChange:Ye,onDraftConsumed:Qe}){const M=l.useMemo(()=>ir(t,e),[t,e]),C=b==="forward-message"&&!!x,he=l.useMemo(()=>[...e].sort((r,c)=>(c.updatedAt??0)-(r.updatedAt??0)),[e]),pe=b==="route-capture"?o??M.agentId??null:null,ge=b==="route-capture"?a??M.conversationId:null,I=he.find(r=>r.id===pe)??null,je=I?.projectRoot??I?.cwd??null,[L,Oe]=l.useState(null),[_,ie]=l.useState(()=>Rt??Jn(Bs,ha)),[Fe,ee]=l.useState(null),[te,U]=l.useState(null),[N,we]=l.useState(()=>p||je||""),[T,P]=l.useState(""),[ce,R]=l.useState(0),[se,Ze]=l.useState(()=>Ft()),[be,H]=l.useState(!1),[Ue,ye]=l.useState(null),[E,B]=l.useState(()=>u??""),[f,y]=l.useState(F),[w,S]=l.useState({open:!1,query:"",triggerStart:-1,index:0}),[k,K]=l.useState({open:!1,query:"",triggerStart:-1,index:0}),[z,He]=l.useState(()=>[...m??[]]),[O,Kt]=l.useState(()=>Q||(ge?"existing-chat":"new-session")),[pn,Jt]=l.useState("idle"),[gn,gt]=l.useState("idle"),[Xt,Se]=l.useState(null),[et,Vt]=l.useState(()=>d??null),[Be]=l.useState(()=>{if(typeof window>"u")return{title:"",url:"",selection:""};const r=document.activeElement,c=r instanceof HTMLInputElement||r instanceof HTMLTextAreaElement;return{title:document.title,url:window.location.href,selection:c?"":ln(window.getSelection()?.toString()??"")}}),[wt,wn]=l.useState(!1),[le,Yt]=l.useState(()=>I?.harness?.trim()||dt.defaults.harness),[tt,Qt]=l.useState(()=>I?.model?.trim()||dt.defaults.model||""),[st,Zt]=l.useState(dt.defaults.reasoningEffort||""),[bt,es]=l.useState(()=>Z?"Restored your unsent draft.":null),[bn,yt]=l.useState(0),{ref:vt,onKeyDown:yn}=Qn(!0),D=l.useRef(null),xt=l.useRef(null),Ce=l.useRef(0),nt=l.useRef(!!p),ts=l.useRef(!1),[ne,Ne]=l.useState(null),[vn,jt]=l.useState(null),ze=l.useRef(null);l.useEffect(()=>{typeof window>"u"||Ne(Rs(null,Ls(),ft()))},[]),l.useEffect(()=>{if(typeof window>"u")return;const r=()=>{Ne(c=>{const g=ft();return Rs(c,c?null:Ls(),g)})};return window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)},[]);const xn=l.useCallback(()=>{if(ne)return ne;const r=vt.current;if(!r)return null;const c=r.getBoundingClientRect();return{x:Math.round(c.left),y:Math.round(c.top),width:Math.round(c.width),height:Math.round(c.height)}},[ne,vt]),jn=(r,c)=>{if(typeof window>"u"||r.button!==0||!nn(window.innerWidth)||!c&&r.target?.closest("button"))return;const g=xn();g&&(r.preventDefault(),r.currentTarget.setPointerCapture(r.pointerId),ze.current={base:g,x:r.clientX,y:r.clientY,edge:c},jt(c?"resize":"move"),Ne(pt(g,ft())))},Sn=r=>{const c=ze.current;if(!c)return;const g=r.clientX-c.x,h=r.clientY-c.y,v=ft();Ne(c.edge?Er(c.base,g,h,c.edge,v):Ir(c.base,g,h,v))},ss=r=>{if(ze.current){ze.current=null,jt(null);try{r.currentTarget.releasePointerCapture(r.pointerId)}catch{}Ne(c=>(c&&Ps(c),c))}},Cn=()=>{ze.current=null,jt(null),Ne(null),Ps(null)},ot=r=>({onPointerDown:c=>jn(c,r),onPointerMove:Sn,onPointerUp:ss,onPointerCancel:ss}),ns=Mr(ne),kn=ne?{position:"absolute",left:ne.x,top:ne.y,width:ne.width,height:ne.height,maxWidth:"none",maxHeight:"none",...ns?{"--s-newchat-input-min":`${ns}px`}:{}}:void 0,oe=l.useMemo(()=>na(ta(L?.projects??[],e,L?.context.defaultHarness??"claude"),se),[e,L,se]),A=oe.find(r=>r.root===N)??null??(N?{id:`direct:${N}`,title:ba(N),root:N,defaultHarness:L?.context.defaultHarness??I?.harness??"claude",source:"agent",registrationKind:null}:null),St=l.useMemo(()=>{const r=new Set,c=A?he.filter(h=>h.projectRoot?.trim()===A.root||h.cwd?.trim()===A.root):[];return(c.length>0?c:he).flatMap(h=>{if(h.retiredFromFleet)return[];const v=h.handle?.trim().replace(/^@+/,"")||Wn(h.id)||"",X=v.toLowerCase();return!v||r.has(X)?[]:(r.add(X),[{id:h.id,label:v,name:h.name||v,handle:v}])})},[A,he]),re=(_?.harnesses??hn).find(r=>r.id===le)??null,os=l.useMemo(()=>{const r=sn(_??dt);return le&&!r.harnesses.some(c=>c.value===le)?{...r,harnesses:[...r.harnesses,{value:le,label:le,models:[{value:"",label:"Default",note:"harness picks"}]}]}:r},[_,le]),Ge=l.useMemo(()=>oa(oe,T),[T,oe]),ae=l.useMemo(()=>{const r=Ge.slice(0,zs);if(!N||r.some(g=>g.root===N))return r;const c=Ge.find(g=>g.root===N);return c?[c,...r.slice(0,zs-1)]:r},[Ge,N]),ve=ya(T)&&!oe.some(r=>r.root===T.trim())?T.trim():null,rt=ae.length+(ve?1:0),An=Math.max(0,(T.trim()?Ge.length:oe.length)-ae.length),Mn=!!(I&&A&&[I.projectRoot,I.cwd].some(r=>r?.trim()===A.root)),J=z.length>0,j=pn==="starting",rs=bn>0,at=Mn&&!!(I?.conversationId||ge),Re=!J||!at||O==="new-session",as=Re&&re?.ready===!1,is=C?"Forward to new task":J?"Route capture":"New task",cs=l.useMemo(()=>C?[]:Jr({pageTitle:Be.title,pageUrl:Be.url,selection:wt?Be.selection:void 0}),[wt,C,Be]),ue=C&&x?Zr(x,f,E):Xr(E,cs),In=gn==="uploading"?"Uploading capture":C?"Forwarding to new task":J?"Routing capture":"Sending message",En=J?`Submitted to ${A?.title??I?.name??"Scout"}. Opening the chat when the broker returns it.`:ue?`Routing your first message through /${A?.title??I?.name??"project"}.`:`Starting a project-routed chat in /${A?.title??I?.name??"project"}.`,ls=J&&at,Nn=Re&&(!!te||re?.ready===!1),Rn=ls||!C&&Nn,de=l.useMemo(()=>{if(!w.open)return[];const r=w.query.toLowerCase();return r?ws.filter(c=>c.command.toLowerCase().startsWith(`/${r}`)||c.command.toLowerCase().includes(r)):ws},[w.open,w.query]),fe=l.useMemo(()=>{if(!k.open)return[];const r=k.query.toLowerCase();return r?St.filter(c=>c.handle.toLowerCase().includes(r)||c.name.toLowerCase().includes(r)||c.label.toLowerCase().includes(r)).slice(0,8):St.slice(0,8)},[St,k.open,k.query]),Ct=l.useCallback(()=>{S(r=>r.open?{...r,open:!1}:r),K(r=>r.open?{...r,open:!1}:r)},[]),We=l.useCallback((r,c)=>{const g=qn(r,c);S(v=>g?{open:!0,query:g.query,triggerStart:g.start,index:v.open&&v.triggerStart===g.start?v.index:0}:v.open?{...v,open:!1}:v);const h=Kn(r,c);K(v=>h?{open:!0,query:h.query,triggerStart:h.start,index:v.open&&v.triggerStart===h.start?v.index:0}:v.open?{...v,open:!1}:v)},[]),Tn=l.useCallback((r,c)=>{B(r),We(r,c?.caret??r.length)},[We]),kt=l.useCallback(r=>{const c=w.triggerStart;if(c<0)return;const g=D.current?.selectionStart??E.length,h=E.slice(0,c),v=E.slice(g),X=`${h}${r.insert}${v}`;B(X),S(V=>({...V,open:!1})),requestAnimationFrame(()=>{const V=D.current;if(!V)return;const $=h.length+r.insert.length;V.focus(),V.setSelectionRange($,$)})},[E,w.triggerStart]),At=l.useCallback(r=>{const c=k.triggerStart;if(c<0)return;const g=D.current?.selectionStart??E.length,h=E.slice(0,c),v=E.slice(g),X=`@${r.handle}${v.length===0||!v.startsWith(" ")?" ":""}`,V=`${h}${X}${v}`;B(V),K($=>({...$,open:!1})),requestAnimationFrame(()=>{const $=D.current;if(!$)return;const Te=h.length+X.length;$.focus(),$.setSelectionRange(Te,Te)})},[k.triggerStart,E]),us=l.useCallback(r=>{if(j)return;const g=D.current?.selectionStart??E.length,h=E.slice(0,g),v=E.slice(g),V=`${h&&!/\s$/.test(h)?" ":""}${r}`,$=`${h}${V}${v}`,Te=h.length+V.length;B($),We($,Te),requestAnimationFrame(()=>{const It=D.current;It&&(It.focus(),It.setSelectionRange(Te,Te))})},[j,E,We]),Ln=l.useCallback(r=>{const c=w.open&&de.length>0,g=k.open&&fe.length>0;if(!c&&!g)return!1;if(r.key==="ArrowDown")return c?S(h=>({...h,index:(h.index+1)%de.length})):K(h=>({...h,index:(h.index+1)%fe.length})),!0;if(r.key==="ArrowUp")return c?S(h=>({...h,index:(h.index-1+de.length)%de.length})):K(h=>({...h,index:(h.index-1+fe.length)%fe.length})),!0;if(r.key==="Escape")return Ct(),!0;if((r.key==="Enter"||r.key==="Tab")&&!r.shiftKey&&!r.metaKey&&!r.ctrlKey&&!r.altKey){if(c){const h=de[w.index]??de[0];h&&kt(h)}else{const h=fe[k.index]??fe[0];h&&At(h)}return!0}return!1},[At,kt,Ct,fe,de,k.index,k.open,w.index,w.open]),Mt=l.useCallback(()=>{j||s()},[j,s]),Pn=l.useCallback(()=>{es("Draft kept open. Use Esc or × when you are ready to close it."),requestAnimationFrame(()=>D.current?.focus())},[]);l.useEffect(()=>{const r=c=>{c.key==="Escape"&&(c.preventDefault(),Mt())};return window.addEventListener("keydown",r),()=>window.removeEventListener("keydown",r)},[Mt]),l.useEffect(()=>{if(!bt)return;const r=window.setTimeout(()=>es(null),5e3);return()=>window.clearTimeout(r)},[bt]),l.useEffect(()=>{D.current?.focus()},[]);const ds=l.useCallback(()=>{let r=!1;return q("/api/agent-config/snapshot").then(c=>{r||(Oe(c),ee(null))}).catch(c=>{r||ee(c instanceof Error?c.message:"Could not load projects.")}),()=>{r=!0}},[]);l.useEffect(()=>{if(!(!be||L))return ds()},[L,ds,be]);const fs=l.useCallback(()=>{q(Bs).then(r=>{Rt=r,ie(r),U(null)}).catch(()=>{Rt||U("Live model availability is unavailable. Using the bundled catalog.")})},[]);l.useEffect(()=>{fs()},[fs]),l.useEffect(()=>{if(nt.current||oe.length===0)return;const r=aa(oe,{preferredRoot:je,currentDirectory:L?.context.currentDirectory,recentRoots:se});r&&we(r.root)},[L?.context.currentDirectory,je,oe,se]),l.useEffect(()=>{if(ts.current)return;const r=A?.defaultHarness?.trim()||I?.harness?.trim()||_?.defaults.harness||"claude";if(Yt(r),!_)return;const c=I?.model?.trim()??"",g=_.models.some(h=>h.id===c&&h.harnesses.includes(r));Qt(g?c:pa(_,r)),Zt(ga(_,r))},[I?.harness,I?.model,_,A?.defaultHarness,A?.root]),l.useLayoutEffect(()=>{Ye?.({intent:b,...pe?{agentId:pe}:{},...ge?{conversationId:ge}:{},message:E,files:z,attachmentFeedback:et,mode:O,projectPath:N,projectQuery:T,...C&&x?{forwardContext:x}:{},forwardContextMode:f})},[et,z,f,x,b,C,E,O,Ye,N,T,pe,ge,A?.title]);const ms=l.useCallback((r,c="Added")=>{if(j)return;const g=r.filter(Je),h=r.filter(v=>!Je(v));if(g.length>0&&(He(v=>[...v,...g]),Vt(g.length===1?`${c} ${g[0]?.name??"1 attachment"}.`:`${c} ${g.length} attachments.`)),h.length>0){const v=h.length===1?h[0]?.name??"That file":`${h.length} files`;Se(`${v} ${h.length===1?"is":"are"} not supported. Attach markdown, code, an image, or a video clip.`)}else g.length>0&&Se(null)},[j]),it=l.useCallback((r,c)=>{const g=en(r);if(g.length===0){Se("Scout could not read that file. Try dropping or pasting it again.");return}ms(g,c)},[ms]),Dn=l.useCallback(r=>{j||!ut(r.dataTransfer)||(r.preventDefault(),r.stopPropagation(),Ce.current+=1,yt(Ce.current))},[j]),$n=l.useCallback(r=>{j||!ut(r.dataTransfer)||(r.preventDefault(),r.stopPropagation(),r.dataTransfer.dropEffect="copy")},[j]),_n=l.useCallback(r=>{Ce.current!==0&&(r.preventDefault(),r.stopPropagation(),Ce.current=Math.max(0,Ce.current-1),yt(Ce.current))},[]),On=l.useCallback(r=>{ut(r.dataTransfer)&&(r.preventDefault(),r.stopPropagation(),Ce.current=0,yt(0),it(r.dataTransfer,"Added"))},[it]),Fn=l.useCallback(r=>{j||!ut(r.clipboardData)||(r.preventDefault(),r.stopPropagation(),it(r.clipboardData,"Pasted"))},[it,j]),hs=r=>{nt.current=!0,Ze(Hs(r.root)),we(r.root),P(""),R(0),H(!1),ye(null),requestAnimationFrame(()=>D.current?.focus())},ps=r=>{const c=r.trim();c&&(nt.current=!0,Ze(Hs(c)),we(c),P(""),R(0),H(!1),ye(null),requestAnimationFrame(()=>D.current?.focus()))},Un=()=>{nt.current=!0,we(""),P(""),R(0),H(!1),ye(null),requestAnimationFrame(()=>D.current?.focus())},Hn=r=>{if(r.key==="ArrowDown"||r.key==="ArrowUp"){r.preventDefault(),R(c=>{if(rt===0)return 0;const g=r.key==="ArrowDown"?1:-1;return(c+g+rt)%rt});return}if(r.key==="Enter"){r.preventDefault();const c=ae[ce];c?hs(c):ve&&ce===ae.length&&ps(ve);return}r.key==="Escape"&&be&&T&&(r.preventDefault(),r.stopPropagation(),P(""),R(0))},gs=r=>{ts.current=!0,Yt(r.harness),Qt(r.model),Zt(r.effort)},Bn=async()=>{if(j)return;if(C&&!ue){Se("Add instructions, or choose a context option that includes the source message."),requestAnimationFrame(()=>D.current?.focus());return}if(!A){Se(null),ye("Choose a project before starting this task."),H(!0),requestAnimationFrame(()=>xt.current?.focus());return}if(as)return;Jt("starting"),gt(z.length>0?"uploading":"starting"),Se(null);const r=Gr(),c=Date.now();try{let g=[];if(z.length>0&&(g=await rr(z),gt("starting")),J&&I&&at&&O==="existing-chat"){const $=await da(I,{mode:O==="existing-chat"&&at?"existing-chat":"new-session",message:ue,attachments:g});B(""),He([]),Vt(null),n({view:"agents-v2",agentId:$.agentId,conversationId:$.conversationId,tab:"message"}),Qe?.(),s();return}const h=await la({projectPath:A.root,harness:le,...tt?{model:tt}:{},...st?{reasoningEffort:st}:{},...ue?{instructions:ue}:J?{instructions:"Shared capture for context."}:{},...g.length>0?{attachments:g}:{},...C&&x?{fromMessageId:x.selectedMessageId,fromConversationId:x.sourceConversationId}:{},clientMessageId:r}),v=h.conversationId?.trim();if(!v)throw new Error("Message sent, but no Chat was returned.");const X=h.messageId?.trim();X&&Wr({conversationId:v,messageId:X,clientMessageId:r,body:ue||(g.length>0?"Shared capture for context.":"New session started."),attachments:g,agentId:h.agentId,flightId:h.flightId,invocationId:h.invocationId,createdAt:c}),B(""),n({view:"conversation",conversationId:v}),Qe?.(),s()}catch(g){Se(g instanceof Error?g.message:J?"Could not route capture.":"Could not send message."),Jt("idle"),gt("idle")}};return i.jsx("div",{className:"s-newchat-backdrop",onClick:Pn,onDragEnter:Dn,onDragOver:$n,onDragLeave:_n,onDrop:On,onPaste:Fn,role:"presentation",children:i.jsxs("div",{ref:vt,className:`s-newchat-panel${j?" s-newchat-panel--starting":""}${rs?" s-newchat-panel--dragging":""}`,style:kn,"data-framed":ne?"true":void 0,"data-gesture":vn??void 0,role:"dialog","aria-modal":"true","aria-label":is,onClick:r=>r.stopPropagation(),onKeyDown:yn,tabIndex:-1,children:[i.jsxs("header",{className:"s-newchat-head",title:"Drag to move · double-click to recenter",onDoubleClick:Cn,...ot(null),children:[i.jsx("span",{className:"s-newchat-title",children:is}),i.jsx("div",{className:"s-newchat-head-status",children:i.jsx("span",{role:"status","aria-live":"polite",children:bt})}),i.jsx("button",{type:"button",className:"s-newchat-close",onClick:Mt,disabled:j,"aria-label":"Close (Esc)",title:"Close (Esc)",children:i.jsx(to,{size:14,"aria-hidden":"true"})})]}),rs?i.jsx("div",{className:"s-newchat-drop-prompt",role:"status","aria-live":"polite",children:"Drop to attach markdown, code, images, or video"}):null,i.jsxs("div",{className:"s-newchat-body",children:[i.jsxs("div",{className:"s-newchat-lead",children:[C?i.jsx("p",{className:"s-newchat-forward-intro",children:"Choose the destination, runtime, and visible Scout context to carry into a fresh task."}):null,i.jsx(Yn,{context:cs,selection:Be.selection,attached:wt,onToggleSelection:()=>wn(r=>!r)}),i.jsxs("div",{className:"s-newchat-project-bar",children:[i.jsx("span",{className:"label-md s-newchat-project-label",children:"Project"}),i.jsxs("button",{type:"button",className:"s-newchat-project-summary","data-empty":A?void 0:"true","aria-expanded":be,"aria-controls":"s-newchat-project-panel","aria-describedby":Ue?"s-newchat-project-reminder":void 0,disabled:j,onClick:()=>{const r=!be;H(r),requestAnimationFrame(r?()=>xt.current?.focus():()=>D.current?.focus())},children:[i.jsx("span",{className:"s-newchat-project-summary-title",children:A?`/${A.title}`:"Choose a project"}),A?i.jsx("span",{className:"s-newchat-project-summary-path",title:A.root,children:Tt(A.root)}):i.jsx("span",{className:"s-newchat-project-summary-path",children:"Required when you send"}),i.jsx(so,{size:13,"aria-hidden":"true"})]})]}),Ue?i.jsx("p",{id:"s-newchat-project-reminder",className:"s-newchat-project-reminder",role:"alert",children:Ue}):null,be?i.jsxs("div",{id:"s-newchat-project-panel",className:"s-newchat-project-panel",children:[i.jsxs("div",{className:"s-newchat-project-picker",children:[i.jsx(no,{size:13,"aria-hidden":"true",className:"s-newchat-project-search-icon"}),i.jsx("input",{ref:xt,id:"s-newchat-project-search",className:"s-newchat-project-search",type:"search",role:"combobox","aria-label":"Filter projects or enter a project path","aria-autocomplete":"list","aria-expanded":"true","aria-controls":"s-newchat-project-results","aria-activedescendant":rt>0?`s-newchat-project-option-${ce}`:void 0,value:T,placeholder:L?"Filter projects, or type a path…":"Loading projects…",disabled:j,spellCheck:!1,autoComplete:"off",onChange:r=>{P(r.currentTarget.value),R(0)},onKeyDown:Hn})]}),i.jsxs("div",{id:"s-newchat-project-results",className:"s-newchat-project-results",role:"listbox","aria-label":"Projects",children:[ae.map((r,c)=>i.jsxs("div",{id:`s-newchat-project-option-${c}`,role:"option","aria-selected":r.root===N,"aria-disabled":j||void 0,className:"s-newchat-project-option","data-active":c===ce||void 0,onMouseDown:g=>g.preventDefault(),onMouseEnter:()=>R(c),onClick:()=>{j||hs(r)},children:[i.jsxs("span",{className:"s-newchat-project-option-title",children:["/",r.title]}),i.jsx("span",{className:"s-newchat-project-option-path",children:Tt(r.root)})]},r.root)),ve?i.jsxs("div",{id:`s-newchat-project-option-${ae.length}`,role:"option","aria-selected":ve===N,"aria-disabled":j||void 0,className:"s-newchat-project-option s-newchat-project-option--path","data-active":ce===ae.length||void 0,onMouseDown:r=>r.preventDefault(),onMouseEnter:()=>R(ae.length),onClick:()=>{j||ps(ve)},children:[i.jsx("span",{className:"s-newchat-project-option-title",children:"Use this project path"}),i.jsx("span",{className:"s-newchat-project-option-path",children:Tt(ve)})]}):null,ae.length===0&&!ve?i.jsx("p",{className:"s-newchat-project-empty",children:"No project matched. Type an absolute path such as ~/dev/my-project."}):null]}),i.jsxs("div",{className:"s-newchat-project-panel-foot",children:[An>0?i.jsxs("p",{className:"s-newchat-project-foot",children:[ae.length," of"," ",T.trim()?Ge.length:oe.length,T.trim()?" matches":" projects"," · type to narrow"]}):i.jsx("span",{}),A?i.jsx("button",{type:"button",className:"s-newchat-project-clear",onClick:Un,children:"Clear project"}):null]}),Fe&&oe.length===0?i.jsx("div",{className:"s-newchat-error",role:"alert",children:Fe}):null]}):null,C&&x?i.jsxs("div",{className:"s-newchat-forward-config",children:[i.jsxs("div",{className:"s-newchat-field",children:[i.jsx("span",{className:"label-md s-newchat-field-label",children:"Runtime"}),i.jsx("div",{className:"s-newchat-forward-runtime",children:i.jsx(Is,{catalog:os,value:{harness:le,model:tt,effort:st},onChange:gs,status:"ready",disabled:j||!Re})}),Re&&(te||re?.ready===!1)?i.jsx("p",{className:"s-newchat-runtime-note",role:"alert",children:re?.ready===!1?re.detail||`${re.label} is unavailable.`:te}):null]}),i.jsxs("div",{className:"s-newchat-field",children:[i.jsx("span",{id:"s-newchat-forward-context-label",className:"label-md s-newchat-field-label",children:"Context"}),i.jsxs("div",{className:"s-newchat-context-options",role:"radiogroup","aria-labelledby":"s-newchat-forward-context-label",children:[i.jsxs("button",{type:"button",className:"s-newchat-context-option",role:"radio","aria-checked":f==="selected-message",disabled:j,onClick:()=>y("selected-message"),children:[i.jsx("span",{className:"s-newchat-context-option-title",children:"Selected message"}),i.jsx("span",{className:"s-newchat-context-option-copy",children:"Carry only the message you chose."})]}),i.jsxs("button",{type:"button",className:"s-newchat-context-option",role:"radio","aria-checked":f==="recent-context",disabled:j||x.recentMessageCount===0,onClick:()=>y("recent-context"),children:[i.jsx("span",{className:"s-newchat-context-option-title",children:"Recent context + message"}),i.jsx("span",{className:"s-newchat-context-option-copy",children:x.recentMessageCount>0?`Carry ${x.recentMessageCount} preceding visible ${x.recentMessageCount===1?"message":"messages"}, then this message.`:"No preceding visible messages are available."})]}),i.jsxs("button",{type:"button",className:"s-newchat-context-option",role:"radio","aria-checked":f==="instructions-only",disabled:j,onClick:()=>y("instructions-only"),children:[i.jsx("span",{className:"s-newchat-context-option-title",children:"Instructions only"}),i.jsx("span",{className:"s-newchat-context-option-copy",children:"Start clean without source conversation text."})]})]}),i.jsx("p",{className:"s-newchat-context-note",children:"Recent context is a bounded Scout excerpt, not a generated summary or full model context."})]})]}):null,C?i.jsx("span",{className:"label-md s-newchat-field-label",children:"Instructions"}):null,i.jsx(zn,{density:"panel",value:E,onChange:Tn,onSend:()=>{Bn()},sendOnEnter:!0,textareaRef:D,placeholder:C?"Add what the new task should do (optional)…":J?"What should the agent do with this?":"Describe the task, or leave blank…","aria-label":C?"Instructions for the new task":"Message",disabled:j,sending:j,canSend:!j&&!as&&(!C||!!ue),rows:7,maxHeightPx:280,sendTitle:C?"Forward to new task (Enter)":J?"Route (Enter)":"Start task (Enter)",sendAriaLabel:C?"Forward to new task":J?"Route capture":"Start task",overlay:i.jsxs(i.Fragment,{children:[w.open?i.jsx(As,{label:"Slash commands",placement:"inside",items:de.map(r=>({id:r.command,token:r.label,description:r.description})),activeIndex:w.index,onPick:r=>{const c=de[r];c&&kt(c)},onActiveIndexChange:r=>S(c=>({...c,index:r}))}):null,k.open?i.jsx(As,{label:"Mention agent",placement:"inside",items:fe.map(r=>({id:r.id,token:`@${r.handle}`,description:r.name,avatar:{label:r.name[0]?.toUpperCase()??"?",color:Vn(r.name)}})),activeIndex:k.index,onPick:r=>{const c=fe[r];c&&At(c)},onActiveIndexChange:r=>K(c=>({...c,index:r}))}):null]}),onSelect:r=>{const c=r.currentTarget;We(c.value,c.selectionStart)},onBlur:()=>window.setTimeout(Ct,120),onKeyDown:Ln,leadingTools:i.jsxs("div",{className:"s-newchat-compose-triggers","aria-label":"Message shortcuts",children:[i.jsx("button",{type:"button",className:"s-newchat-command-trigger",disabled:j,onClick:()=>us("/"),children:"/Commands"}),i.jsx("span",{"aria-hidden":"true",children:"·"}),i.jsx("button",{type:"button",className:"s-newchat-command-trigger",disabled:j,onClick:()=>us("@"),children:"@Agents"})]}),tools:C?void 0:i.jsx(Is,{catalog:os,value:{harness:le,model:tt,effort:st},onChange:gs,status:"ready",disabled:j||!Re})}),z.length>0?i.jsx("div",{className:"s-newchat-attachments","aria-label":"Attached captures",children:z.map((r,c)=>i.jsx(va,{file:r,onRemove:()=>He(g=>g.filter((h,v)=>v!==c))},`${r.name}:${r.size}:${c}`))}):null,et?i.jsx("div",{className:"s-newchat-attachment-feedback",role:"status","aria-live":"polite",children:et}):null,Xt&&i.jsx("div",{className:"s-newchat-error",role:"alert",children:Xt}),j&&i.jsxs("div",{className:"s-newchat-progress",role:"status","aria-live":"polite",children:[i.jsx(oo,{size:14,className:"s-newchat-progress-spinner","aria-hidden":"true"}),i.jsxs("div",{className:"s-newchat-progress-copy",children:[i.jsx("span",{className:"label-md s-newchat-progress-title",children:In}),i.jsx("span",{className:"s-newchat-progress-detail",children:En}),ue&&i.jsx("span",{className:"s-newchat-progress-message",children:ue})]})]})]}),Rn?i.jsxs("div",{className:"s-newchat-config",children:[ls?i.jsxs("div",{className:"s-newchat-mode",role:"group","aria-label":"Delivery mode",children:[i.jsx("button",{type:"button",className:`s-newchat-mode-btn${O==="existing-chat"?" s-newchat-mode-btn--on":""}`,disabled:j,onClick:()=>Kt("existing-chat"),children:"Existing chat"}),i.jsx("button",{type:"button",className:`s-newchat-mode-btn${O==="new-session"?" s-newchat-mode-btn--on":""}`,disabled:j,onClick:()=>Kt("new-session"),children:"New chat"})]}):null,Re&&(te||re?.ready===!1)?i.jsx("p",{className:"s-newchat-runtime-note",role:"alert",children:re?.ready===!1?re.detail||`${re.label} is unavailable.`:te}):null]}):null]}),i.jsx("div",{className:"s-newchat-resize s-newchat-resize--e","aria-hidden":"true",title:"Drag to resize",...ot("e")}),i.jsx("div",{className:"s-newchat-resize s-newchat-resize--s","aria-hidden":"true",title:"Drag to resize",...ot("s")}),i.jsx("div",{className:"s-newchat-resize s-newchat-resize--se","aria-hidden":"true",title:"Drag to resize",...ot("se")})]})})}const ni=Object.freeze(Object.defineProperty({__proto__:null,NewChatComposer:xa},Symbol.toStringTag,{value:"Module"}));export{Gr as A,rr as B,ti as C,ei as D,si as E,Ja as F,Ae as G,Is as H,qo as I,ir as J,en as K,ni as L,As as M,xa as N,Me as R,qa as a,Fa as b,Ba as c,Ua as d,Ha as e,za as f,Cs as g,ea as h,ks as i,Je as j,Ka as k,ut as l,sr as m,Fo as n,Ie as o,Wa as p,Ya as q,Ga as r,Hr as s,cn as t,Br as u,Xa as v,qt as w,Qa as x,Va as y,Za as z};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e}from"./index-
|
|
1
|
+
import{j as e}from"./index-C8uS5szO.js";function c({context:l,selection:a,attached:n,onToggleSelection:i}){return l.length===0?null:e.jsxs("div",{className:"s-newchat-origin",children:[e.jsx("span",{className:"label-md s-newchat-origin-label",children:"From"}),e.jsx("dl",{className:"s-newchat-origin-facts",children:l.map(s=>e.jsxs("div",{className:"s-newchat-origin-fact",children:[e.jsx("dt",{children:s.label}),e.jsx("dd",{title:s.value,children:s.value})]},s.label))}),a?e.jsx("button",{type:"button",className:"s-newchat-origin-attach","aria-pressed":n,onClick:i,children:n?"Remove selection":`Attach selection (${a.length} chars)`}):null]})}export{c as NewChatOrigin};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as g,j as e}from"./index-C8uS5szO.js";import{t as p}from"./time-Dhsh_2EG.js";import{u as f,l as S,s as A,r as C,i as T}from"./use-mesh-node-state-Ck9CYplv.js";import{a as R}from"./mesh-view-store-CliSYsmt.js";import"./api-CaROe5_H.js";function $(a){return a?a.replace(/^https?:\/\//,"").split("/")[0]??a:""}function L(a){return a==="working"?"in_turn":a==="available"?"callable":a==="offline"?"blocked":"unknown"}function d({label:a,value:s,code:t}){return e.jsxs("div",{className:"sys-detail-card",children:[e.jsx("span",{className:"sys-detail-label",children:a}),t?e.jsx("code",{className:"sys-detail-value",children:s}):e.jsx("span",{className:"sys-detail-value",children:s})]})}function M({view:a}){const s=a.workload;if(!s)return e.jsx("div",{className:"mesh-node-workload mesh-node-workload--unknown",children:e.jsx("span",{className:"mesh-node-workload-note",children:"No workload reported for this machine yet."})});const t=s.working!==null;return e.jsxs("div",{className:"mesh-node-workload",children:[e.jsxs("div",{className:"mesh-node-workload-cell",children:[e.jsx("span",{className:"mesh-node-workload-num",children:s.total}),e.jsx("span",{className:"mesh-node-workload-label",children:"on this node"})]}),t?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mesh-node-workload-cell mesh-node-workload-cell--working",children:[e.jsx("span",{className:"mesh-node-workload-num",children:s.working}),e.jsx("span",{className:"mesh-node-workload-label",children:"working"})]}),e.jsxs("div",{className:"mesh-node-workload-cell",children:[e.jsx("span",{className:"mesh-node-workload-num",children:s.available}),e.jsx("span",{className:"mesh-node-workload-label",children:"ready"})]}),e.jsxs("div",{className:"mesh-node-workload-cell",children:[e.jsx("span",{className:"mesh-node-workload-num",children:s.offline}),e.jsx("span",{className:"mesh-node-workload-label",children:"offline"})]})]}):e.jsx("div",{className:"mesh-node-workload-cell mesh-node-workload-cell--unknown",children:e.jsx("span",{className:"mesh-node-workload-label",children:"registered here — this broker cannot report what they are doing"})}),s.unattributed>0&&e.jsxs("div",{className:"mesh-node-workload-cell mesh-node-workload-cell--unknown",children:[e.jsx("span",{className:"mesh-node-workload-num",children:s.unattributed}),e.jsx("span",{className:"mesh-node-workload-label",children:"not attributed to this node"})]})]})}function B({view:a}){return a.roster.length===0?T(a)?e.jsx("div",{className:"sys-list-empty",style:{marginTop:4},children:e.jsx("p",{children:"Connected, with nothing running right now."})}):e.jsx("div",{className:"sys-list-empty",style:{marginTop:4},children:e.jsx("p",{children:"Nothing has been reported for this machine. That is not the same as nothing running."})}):e.jsxs("div",{className:"mesh-agent-table",style:{marginTop:4},children:[a.roster.map(s=>{const t=L(s.state);return e.jsxs("div",{className:"mesh-detail-agent",children:[e.jsx("span",{className:`mesh-detail-dot mesh-detail-dot--${t}`}),e.jsxs("div",{className:"mesh-detail-agent-body",children:[e.jsx("span",{className:"mesh-detail-agent-name",children:s.title}),(s.role||s.projectRoot)&&e.jsx("span",{className:"mesh-detail-agent-task",children:[s.role,s.projectRoot].filter(Boolean).join(" · ")})]}),e.jsx("span",{className:`mesh-detail-agent-state mesh-detail-agent-state--${t}`,children:s.statusLabel??s.state??"state unknown"})]},s.id)}),a.workload?.truncated&&e.jsxs("p",{className:"mesh-node-roster-note",children:["Showing the first ",a.roster.length," of ",a.workload.total,"."]})]})}function v({title:a,section:s,unreported:t,empty:r,render:l}){return e.jsxs("div",{className:"mesh-node-inspector-section",children:[e.jsxs("div",{className:"sys-inspector-section-label",children:[a,s&&s.total>0&&e.jsx("span",{className:"mesh-node-section-count",children:s.total})]}),!s&&e.jsx("p",{className:"mesh-node-unreported",children:t}),s&&s.items.length===0&&e.jsx("p",{className:"mesh-node-empty",children:r}),s&&s.items.length>0&&e.jsxs("div",{className:"mesh-node-rows",children:[s.items.map(h=>l(h)),s.truncated&&e.jsxs("p",{className:"mesh-node-roster-note",children:["Showing ",s.items.length," of ",s.total,"."]})]})]})}function U({machineId:a,mesh:s,issues:t=[]}){const r=f(a),l=r?.view??null,h=g.useRef(null);g.useEffect(()=>{h.current!==a&&(h.current=a,S(a,{deep:!0}))},[a]);const o=Object.values(s.nodes).find(n=>n.id===a)??(s.localNode?.id===a?s.localNode:null),i=a.startsWith("tailnet:")?s.tailscale.peers.find(n=>n.id===a.slice(8))??null:s.tailscale.peers.find(n=>{const m=(n.hostName??n.name??"").split(".")[0]?.toLowerCase(),y=(o?.hostName??o?.name??"").split(".")[0]?.toLowerCase();return!!(m&&y&&m===y)})??null,j=l?.label??o?.hostName?.split(".")[0]??o?.name??i?.hostName?.split(".")[0]??i?.name??"Node",u=s.localNode?.id===a,c=A(l),x=l?.node?.brokerUrl??o?.brokerUrl??null,N=l?.node?.id??o?.id??null,k=l?.node?.capabilities??o?.capabilities??[],w=i?.addresses?.[0]?.split("/")[0]??null,b=o&&"lastSeenAt"in o&&typeof o.lastSeenAt=="number"?o.lastSeenAt:null;return e.jsxs("div",{className:"sys-inspector-content mesh-node-inspector",children:[e.jsxs("div",{className:"sys-inspector-head",children:[e.jsx("h3",{className:"sys-inspector-title",children:j}),e.jsxs("div",{className:"mesh-node-inspector-actions",children:[u&&e.jsx("span",{className:"sys-chip sys-chip-neutral",children:"this broker"}),e.jsx("span",{className:`sys-chip mesh-node-reach mesh-node-reach--${c.tone}`,children:r?.loading?"Checking…":c.label}),e.jsx("button",{type:"button",className:"s-btn s-btn--sm",disabled:r?.loading??!1,onClick:()=>{C(a)},title:"Check this machine again now",children:"Refresh"})]})]}),(c.detail||r?.error)&&e.jsx("div",{className:`sys-banner sys-banner-${c.tone==="bad"?"warning":"muted"} mesh-node-reach-note`,children:e.jsx("span",{children:r?.error??c.detail})}),e.jsxs("div",{className:"mesh-node-inspector-section",children:[e.jsxs("div",{className:"sys-inspector-section-label",children:["Running here",l?.stale&&e.jsx("span",{className:"mesh-node-stale-tag",children:"last known"})]}),!l&&r?.loading&&e.jsx("div",{className:"sys-banner sys-banner-muted",children:e.jsxs("span",{children:["Asking ",j," what it is running…"]})}),!l&&!r?.loading&&e.jsx("div",{className:"sys-list-empty",children:e.jsx("p",{children:"This machine has not been checked yet."})}),l&&e.jsxs(e.Fragment,{children:[e.jsx(M,{view:l}),e.jsx(B,{view:l})]})]}),l&&e.jsxs(e.Fragment,{children:[e.jsx(v,{title:"Sessions",section:l.sessions,unreported:"This machine did not report its sessions.",empty:"No harness session is live on this machine.",render:n=>e.jsxs("div",{className:"mesh-node-row",children:[e.jsx("span",{className:"mesh-node-row-name",children:n.agentId||n.id}),e.jsx("span",{className:"mesh-node-row-meta",children:[n.harness,n.transport].filter(Boolean).join(" · ")||"session"}),e.jsx("span",{className:`mesh-node-row-state mesh-node-row-state--${n.state}`,children:n.state})]},n.id)}),e.jsx(v,{title:"Work in flight",section:l.work,unreported:"This machine did not report work in flight.",empty:"No work is in flight on this machine.",render:n=>e.jsxs("div",{className:"mesh-node-row",children:[e.jsx("span",{className:"mesh-node-row-name",children:n.targetAgentId||n.id}),n.summary&&e.jsx("span",{className:"mesh-node-row-meta",children:n.summary}),e.jsx("span",{className:`mesh-node-row-state mesh-node-row-state--${n.state}`,children:n.state})]},n.id)})]}),e.jsxs("div",{className:"mesh-node-inspector-section mesh-node-identity",children:[e.jsx("div",{className:"sys-inspector-section-label",children:"Machine"}),e.jsxs("div",{className:"sys-detail-grid",children:[N&&e.jsx(d,{label:"Node ID",value:N,code:!0}),(l?.node?.hostName??o?.hostName)&&e.jsx(d,{label:"Host",value:l?.node?.hostName??o?.hostName??""}),x&&e.jsx(d,{label:"Broker",value:$(x),code:!0}),w&&e.jsx(d,{label:"Address",value:w,code:!0}),i?.os&&e.jsx(d,{label:"Platform",value:i.os}),l?.node?.meshId&&e.jsx(d,{label:"Mesh",value:l.node.meshId.slice(0,14),code:!0}),l?.observedAt&&e.jsx(d,{label:"Reported",value:p(l.observedAt)}),l?.checkedAt&&e.jsx(d,{label:"Checked",value:p(l.checkedAt)}),!l?.checkedAt&&b!==null&&e.jsx(d,{label:"Last seen",value:p(b)})]}),k.length>0&&e.jsx("div",{className:"mesh-node-caps",children:k.map(n=>e.jsx("span",{className:"sys-chip sys-chip-neutral",children:n},n))})]}),u&&t.length>0&&e.jsx("div",{className:"sys-issue-grid",style:{marginTop:12},children:t.map((n,m)=>e.jsxs("article",{className:`sys-issue-card sys-issue-card-${n.severity==="error"?"error":"warning"}`,children:[e.jsx("div",{className:"sys-issue-head",children:e.jsx("h3",{className:"sys-issue-title",children:n.title})}),e.jsx("p",{className:"sys-issue-body",children:n.summary}),n.actionCommand&&e.jsx("div",{className:"sys-issue-action",children:e.jsx("code",{className:"sys-code-inline",children:n.actionCommand})})]},m))}),e.jsx("button",{type:"button",className:"s-btn",style:{marginTop:14},onClick:()=>R(null,null),children:"Clear selection"})]})}export{U as NodeDetailPanel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r,j as i}from"./index-C8uS5szO.js";import{r as A}from"./index-C5cX8dkl.js";const B=r.forwardRef(function({machineLabel:o,actions:h,className:g},R){const[s,x]=r.useState(!1),[u,D]=r.useState(null),[b,w]=r.useState(null),p=r.useRef(null),y=r.useRef(null),c=r.useRef([]),k=r.useRef(null),a=r.useCallback((e=!0)=>{if(x(!1),D(null),w(null),!e)return;(k.current??p.current)?.focus()},[]),f=r.useCallback(e=>{k.current=document.activeElement??null;const t=p.current?.getBoundingClientRect();D(e??(t?{x:t.left,y:t.bottom+2}:{x:16,y:16})),w(null),x(!0)},[]);r.useImperativeHandle(R,()=>({openAt:e=>f(e),open:()=>f(null),close:()=>a(!1)}),[a,f]),r.useLayoutEffect(()=>{if(!s||!u)return;const e=y.current;if(!e)return;const t=e.getBoundingClientRect(),n=8,l=Math.max(n,window.innerWidth-t.width-n),d=Math.min(Math.max(n,u.x),l),P=u.y+t.height+n<=window.innerHeight?u.y:Math.max(n,u.y-t.height-(u.y>window.innerHeight/2?4:0));w({left:d,top:P})},[u,s]),r.useEffect(()=>{if(!s)return;(c.current.find(t=>t&&!t.disabled)??c.current[0])?.focus()},[s]),r.useEffect(()=>{if(!s)return;const e=n=>{const l=n.target;y.current?.contains(l??null)||p.current?.contains(l??null)||a(!1)},t=()=>a(!1);return document.addEventListener("pointerdown",e,!0),window.addEventListener("blur",t),()=>{document.removeEventListener("pointerdown",e,!0),window.removeEventListener("blur",t)}},[a,s]);const E=(e,t)=>{const n=h.length;if(n!==0)for(let l=1;l<=n;l+=1){const d=c.current[(e+t*l+n*l)%n];if(d&&!d.disabled){d.focus();return}}},M=(e,t)=>{switch(e.key){case"Escape":e.preventDefault(),e.stopPropagation(),a();break;case"ArrowDown":e.preventDefault(),E(t,1);break;case"ArrowUp":e.preventDefault(),E(t,-1);break;case"Home":e.preventDefault(),c.current[0]?.focus();break;case"End":e.preventDefault(),c.current[h.length-1]?.focus();break;case"Tab":a(!1);break}},j=e=>{e.disabled||(a(),e.run())};return i.jsxs(i.Fragment,{children:[i.jsx("button",{type:"button",ref:p,className:`mesh-node-menu-btn${g?` ${g}`:""}`,"aria-haspopup":"menu","aria-expanded":s,"aria-label":`Actions for ${o}`,onClick:e=>{e.stopPropagation(),s?a(!1):f(null)},onKeyDown:e=>{e.key==="ArrowDown"&&!s&&(e.preventDefault(),f(null))},children:i.jsx("span",{"aria-hidden":!0,children:"⋯"})}),s&&typeof document<"u"&&A.createPortal(i.jsx("div",{ref:y,role:"menu","aria-label":`${o} actions`,className:"mesh-node-menu",style:{position:"fixed",left:b?.left??u?.x??0,top:b?.top??u?.y??0,visibility:b?"visible":"hidden"},children:h.map((e,t)=>i.jsxs("button",{type:"button",role:"menuitem",ref:n=>{c.current[t]=n},className:"mesh-node-menu-item",title:e.hint,disabled:e.disabled,"aria-disabled":e.disabled,onClick:n=>{n.stopPropagation(),j(e)},onKeyDown:n=>M(n,t),children:[i.jsx("span",{className:"mesh-node-menu-item-label",children:e.label}),e.hint&&i.jsx("span",{className:"mesh-node-menu-item-hint",children:e.hint})]},e.id))}),document.body)]})});function K(m){return{onContextMenu:o=>{o.preventDefault(),o.stopPropagation(),m.current?.openAt({x:o.clientX,y:o.clientY})},onKeyDown:o=>{(o.key==="ContextMenu"||o.shiftKey&&o.key==="F10")&&(o.preventDefault(),o.stopPropagation(),m.current?.open())}}}export{B as NodeMenu,K as nodeMenuRowProps};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as o,j as e}from"./index-C8uS5szO.js";import{a as v}from"./api-CaROe5_H.js";import{d as b,S as u}from"./SessionObserve-DaqDhqDI.js";import{u as h}from"./sse-v5QLsOHV.js";import{f as x}from"./time-Dhsh_2EG.js";import{SessionObserveEmbedStatus as f}from"./SessionObserveEvidence-Drv-D8Oh.js";import{E as c}from"./external-link-RT4Ph-6-.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-C6YehJqD.js";import"./index-C5cX8dkl.js";import"./lane-observe-BD21P8BB.js";import"./lane-ask-display-B6iCAVcd.js";import"./colors-CFlbwC25.js";import"./agent-state-DDhnFEEP.js";import"./mentions-Ctw1ECUC.js";import"./Provider-5Hotn7NQ.js";import"./router-BKiMcYa7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Ch9aYlgi.js";import"./machine-scope-DJt9RZ2w.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-JjLbm3W2.js";import"./runtime-picker-DdsttHHc.js";import"./scout-voice-DOQ_B77g.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DurUYl7E.js";import"./createLucideIcon-DkjnzvcJ.js";import"./conversation-model-BGFHoxQ0.js";import"./conversations-Cbg9h_Af.js";import"./HarnessMark-Bt47OeHy.js";import"./NewChatOrigin-CyPPWTJP.js";import"./keyboard-nav-CXfav14z.js";import"./x-DI1ktCYb.js";import"./chevron-down-B5eMsn5c.js";import"./search-C4VlW_0l.js";import"./file-text-ChtICwub.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-f12RRQpV.js";import"./TextDocumentSurface-BhYvAB0o.js";import"./index-CvsM3jm8.js";import"./chevron-right-C7UGFpkl.js";import"./folder-0fWevPvQ.js";import"./chevron-up-BHOEgHcn.js";import"./code-xml-BmyLM0I2.js";import"./arrow-left-PuKdO3NM.js";import"./arrow-right-ldbfp4SZ.js";import"./chunk-HRAB3GC3-C5X-kFhb.js";import"./AgentDetailCard-CFDE8TLi.js";import"./AgentLiveActions-lYzicnNa.js";import"./terminal-takeover-BlpxpvSp.js";import"./openContent-C6XO6kr5.js";import"./eye-CtqSV8BS.js";import"./terminal-96JWDYDL.js";import"./message-markup-DgFSyb3f.js";import"./ObservedTopologyPanel-DkEkQzo-.js";import"./ObserveTextFlow-ET0dD1wO.js";import"./use-reduced-motion-D7n3vK8t.js";import"./proxy-DOG46ja4.js";import"./message-circle-CSiJj6yo.js";import"./wrench-BsMTSeji.js";import"./index-BWHgHrtv.js";const j=2500,g=240,N=5;function I({ask:r,sessionId:s}){const[i,p]=o.useState(!1);if(!r)return e.jsxs("section",{className:"s-observe-embed-ask s-observe-embed-ask--unknown",children:[e.jsx("div",{className:"s-observe-embed-ask-kicker",children:"Ask"}),e.jsx("div",{className:"s-observe-embed-ask-unknown",children:"Not available for this observed session."})]});const a=r.task.length>g||r.task.split(`
|
|
2
|
+
`).length>N,n=r.conversationId?`/messages/${encodeURIComponent(r.conversationId)}${r.messageId?`#msg-${encodeURIComponent(r.messageId)}`:""}`:null,d=`/flights/${encodeURIComponent(r.flightId)}/observe${s?`?session=${encodeURIComponent(s)}`:""}`;return e.jsxs("section",{className:"s-observe-embed-ask",children:[e.jsxs("div",{className:"s-observe-embed-ask-head",children:[e.jsxs("div",{children:[e.jsx("div",{className:"s-observe-embed-ask-kicker",children:"Ask"}),e.jsxs("div",{className:"s-observe-embed-ask-byline",children:[e.jsx("span",{children:r.requesterName}),e.jsx("span",{"aria-hidden":"true",children:"·"}),e.jsx("time",{dateTime:new Date(r.requestedAt).toISOString(),children:x(r.requestedAt)})]})]}),e.jsxs("nav",{className:"s-observe-embed-ask-links","aria-label":"Run provenance",children:[n&&e.jsxs("a",{href:n,target:"_top",children:["Origin ",e.jsx(c,{size:11,"aria-hidden":"true"})]}),e.jsxs("a",{href:d,target:"_top",children:["Flight ",e.jsx(c,{size:11,"aria-hidden":"true"})]})]})]}),e.jsx("div",{className:`s-observe-embed-ask-body${i?" is-expanded":""}`,children:r.task}),a&&e.jsx("button",{type:"button",className:"s-observe-embed-ask-toggle","aria-expanded":i,onClick:()=>p(t=>!t),children:i?"Show less":"Show full ask"})]})}function Te({agentId:r}){const[s,i]=o.useState(null),[p,a]=o.useState(!0),[n,d]=o.useState(null),t=o.useCallback(async(l=!1)=>{l||a(!0),d(null);try{const m=await v(`/api/agents/${encodeURIComponent(r)}/observe`);i(m)}catch(m){l||i(null),d(m instanceof Error?m.message:String(m))}finally{a(!1)}},[r]);return o.useEffect(()=>{t();const l=window.setInterval(()=>{t(!0)},j);return()=>window.clearInterval(l)},[t]),h(()=>{t(!0)}),n&&!s?e.jsx("div",{className:"s-observe-embed-page",children:e.jsxs("div",{className:"s-observe-embed-empty",children:[e.jsx("div",{className:"s-observe-embed-empty-title",children:"Observe unavailable"}),e.jsx("div",{className:"s-observe-embed-empty-detail",children:n})]})}):p&&!s?e.jsx("div",{className:"s-observe-embed-page",children:e.jsxs("div",{className:"s-observe-embed-empty",children:[e.jsx("div",{className:"s-observe-embed-empty-title",children:"Resolving trace"}),e.jsx("div",{className:"s-observe-embed-empty-detail",children:r})]})}):e.jsxs("div",{className:"s-observe-embed-page",children:[s&&e.jsxs(e.Fragment,{children:[e.jsx(f,{source:s.source,fidelity:s.fidelity,sessionId:s.sessionId,evidence:b({source:s.source,fidelity:s.fidelity,live:s.data.live,eventCount:s.data.events.length})}),e.jsx(I,{ask:s.initiatingAsk,sessionId:s.sessionId})]}),e.jsx(u,{data:s?.data,agentId:r,sessionId:s?.sessionId,showRail:!1,observeSource:s?.source,observeFidelity:s?.fidelity})]})}export{I as InitiatingAsk,Te as ObserveEmbedScreen};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/conversation-motion-features-
|
|
2
|
-
import{r as n,j as e,_ as b}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/conversation-motion-features-9x8uZpwh.js","assets/gestures-BDCZ1FRG.js","assets/index-C8uS5szO.js","assets/index-Ck1__1yL.css","assets/use-reduced-motion-D7n3vK8t.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as n,j as e,_ as b}from"./index-C8uS5szO.js";import{b as p}from"./lane-observe-BD21P8BB.js";import{C as f}from"./chevron-down-B5eMsn5c.js";import{u as h}from"./use-reduced-motion-D7n3vK8t.js";import{L as g,m as x}from"./proxy-DOG46ja4.js";import"./time-Dhsh_2EG.js";import"./tail-display-DHSNmvor.js";import"./lane-edit-display-BjdT9oZl.js";import"./createLucideIcon-DkjnzvcJ.js";const j=420,N=()=>b(()=>import("./conversation-motion-features-9x8uZpwh.js"),__vite__mapDeps([0,1,2,3,4])).then(t=>t.default);function R({text:t}){const s=h(),[o,i]=n.useState(!0),r=n.useRef(null);return n.useEffect(()=>(i(!0),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>i(!1),j),()=>{r.current&&clearTimeout(r.current)}),[t]),e.jsx(g,{features:N,strict:!0,children:e.jsx(x.span,{className:"s-observe-stream-cursor","data-receiving":o||void 0,"aria-hidden":"true",initial:!1,animate:s||o?{opacity:1}:{opacity:[1,.28,1]},transition:s||o?{duration:.12}:{duration:1.05,ease:"linear",repeat:1/0}})})}function w({text:t,live:s,compact:o=!1,copyControl:i}){const r=n.useId(),c=t.trim(),[a,d]=n.useState(s),u=n.useRef(s);n.useEffect(()=>{s?d(!0):u.current&&d(!1),u.current=s},[s]);const l=p(c,o?120:168,1),m=e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"s-observe-reasoning-state",children:[e.jsx("span",{className:"s-observe-reasoning-dot","aria-hidden":"true"}),s?"Thinking":"Reasoning"]}),!s&&!a&&l?e.jsx("span",{className:"s-observe-reasoning-preview",title:c,children:l}):null,s?null:e.jsx(f,{className:"s-observe-reasoning-chevron",size:12,strokeWidth:1.8,"aria-hidden":"true"})]});return e.jsxs("div",{className:["s-observe-block","s-observe-reasoning",o&&"s-observe-reasoning--compact",s&&"s-observe-reasoning--live",a&&"s-observe-reasoning--open"].filter(Boolean).join(" "),"aria-busy":s||void 0,children:[s?e.jsx("div",{className:"s-observe-reasoning-header",role:"status",children:m}):e.jsx("button",{type:"button",className:"s-observe-reasoning-header s-observe-reasoning-header--button","aria-expanded":a,"aria-controls":r,"aria-label":a?"Hide reasoning":"Show reasoning",onClick:()=>d(v=>!v),children:m}),e.jsx("div",{id:r,className:"s-observe-reasoning-body","aria-hidden":!a,inert:a?void 0:!0,children:e.jsx("div",{className:"s-observe-reasoning-body-clip",children:e.jsxs("div",{className:"s-observe-reasoning-body-inner",children:[e.jsxs("div",{className:"s-observe-reasoning-text",children:[c,s?e.jsx(R,{text:c}):null]}),i?e.jsx("div",{className:"s-observe-reasoning-tools",children:i}):null]})})})]})}export{w as ObserveReasoningDisclosure,R as ObserveStreamCursor};
|