@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as e,r as o,G as is,I as ls}from"./index-C1VaWNuD.js";/* empty css */import{u as Xs,b as Qs}from"./Provider-D0bB7q6y.js";import{a as be}from"./api-Co9aQ2Jw.js";import{c as Os}from"./clipboard-e3fSpeo7.js";import{d as Zs,c as Kt}from"./colors-BtO5_zlx.js";import{r as ne,S as os,a as cs,w as Oe,s as Ut,b as Bt,d as Ht,c as qt,e as et,f as Ae,g as Yt}from"./terminal-relay-CXHMdain.js";import{p as st,m as tt,f as nt,b as rt,n as at,s as F,d as ts,o as ns,r as it,i as lt,t as ds,e as ot,q as Vt,u as Gt,j as Jt}from"./terminal-sessions-Bdt2W3Y4.js";import{H as Xt,u as ms,a as Qt,c as Zt,h as en,b as sn,A as tn}from"./HerdrSession-DsuxCtfX.js";import{D as nn,c as rn,P as an,d as us,s as Xe,T as ln,a as on}from"./session-table-uJh3v-ly.js";import{u as ps,T as cn}from"./chunk-JTPDIGGW-COJ00z94.js";import{u as Le,L as hs}from"./chunk-YOZR3KYS-CrCgXw9l.js";import{q as dn}from"./terminal-takeover-BMeBjBB2.js";import{t as mn}from"./time-Dhsh_2EG.js";import{B as xe}from"./BackToPicker-BHicJyfc.js";import{T as ct}from"./TmuxPeek-CqTJRhkI.js";import{TerminalHeaderMount as un}from"./TerminalHeaderMount-CY7uIWBg.js";import{R as fs}from"./refresh-cw-Bkh7Cvnd.js";import{E as ks}from"./external-link-BvX5PfLh.js";import{P as fe}from"./plus-BWKhylds.js";import{T as B}from"./terminal-UDy4lzV1.js";import{c as bs}from"./createLucideIcon-Dv8H8m7J.js";import{Z as dt}from"./zap-Bcja1lHG.js";import{S as pn}from"./runtime-picker-C20lTGhV.js";import{X as ye}from"./x-DgmmnPKt.js";import{E as hn}from"./eye-C9cGk5z6.js";import"./router-kfcaYqZr.js";import"./perf-PX8Rx0EP.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./sse-B29iGBnw.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D7kGGyK_.js";import"./NewChatComposer-D2Ah4T-W.js";import"./conversation-model-C2KuZUXc.js";import"./index-Cx6Gbr6n.js";import"./HarnessMark-DttReffF.js";import"./NewChatOrigin-DCn5cWPZ.js";import"./keyboard-nav-B8sQ_8IF.js";import"./chevron-down-D120PY4g.js";import"./search-FB2vVxCp.js";import"./loader-circle-DmUG_YC7.js";import"./file-text-BHro8MkG.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-D8iB6SMt.js";import"./TextDocumentSurface-2X1Gw4eA.js";import"./chevron-right-CowuvuE6.js";import"./code-xml-CkkNdRmu.js";import"./arrow-left-eToA6GxC.js";import"./arrow-right-DTX42clh.js";import"./scout-voice-Cg1qfepC.js";import"./fx-z37u1o2z.js";import"./chunk-HRAB3GC3-KjjrTLCU.js";import"./check-Dz2SRHft.js";import"./copy-BzdzWsQd.js";import"./arrow-down-BAGkhHA6.js";/* empty css */import"./voice-levels-Dcr3jglk.js";const mt=6,ut=2;function Pe(s){if(s.layout?.mode)return{mode:s.layout.mode,...s.layout.columns===void 0?{}:{columns:fn(s.layout.columns)}};const t=s.cellCount??0,n=$e(s.columns??ut);return t<=1?{mode:"solo"}:n>=t?{mode:"lanes",columns:n}:{mode:"grid",columns:n}}function ze(s,t){const n=Math.max(1,Math.floor(t.tileCount)||1);if(s.mode==="solo")return 1;if(s.columns===void 0||s.columns==="dynamic"){const i=s.mode==="lanes"?n:Math.ceil(Math.sqrt(n));return Math.max(1,Math.min(mt,i))}return $e(s.columns)}function fn(s){return s==="dynamic"?"dynamic":$e(s)}function kn(s){if(s.mode==="solo")return"Solo";const t=s.mode==="lanes"?"Lanes":"Grid";return s.columns===void 0||s.columns==="dynamic"?`${t} · dynamic`:`${t} · ${s.columns} column${s.columns===1?"":"s"}`}function $e(s){return typeof s!="number"||!Number.isFinite(s)?ut:Math.max(1,Math.min(mt,Math.floor(s)))}const bn=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],rs=bs("ellipsis",bn);const xn=[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M3 12h18",key:"1i2n21"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]],pt=bs("grid-2x2",xn);const yn=[["circle",{cx:"12",cy:"9",r:"1",key:"124mty"}],["circle",{cx:"19",cy:"9",r:"1",key:"1ruzo2"}],["circle",{cx:"5",cy:"9",r:"1",key:"1a8b28"}],["circle",{cx:"12",cy:"15",r:"1",key:"1e56xg"}],["circle",{cx:"19",cy:"15",r:"1",key:"1a92ep"}],["circle",{cx:"5",cy:"15",r:"1",key:"5r1jwy"}]],jn=bs("grip-horizontal",yn),xs=6;function gn(s="main",t="Main"){return{version:1,activeWorkspaceId:s,workspaces:[{id:s,name:t,tiles:[]}]}}function ys(){return{version:1,activeWorkspaceId:"",workspaces:[]}}function Ps(s,t,n={}){const i=()=>n.allowEmpty?ys():gn();if(!s||typeof s!="object")return i();const d=s;if(!Array.isArray(d.workspaces))return i();const l=[],m=new Set;for(const c of d.workspaces){if(!c||typeof c!="object")continue;const k=typeof c.id=="string"?c.id.trim():"",b=typeof c.name=="string"?c.name.trim():"";if(!k||!b||m.has(k)||!Array.isArray(c.tiles))continue;m.add(k);const j=typeof c.purpose=="string"?c.purpose.trim():"",N=wn(c.columns),M=Sn(c.layout),O=typeof c.updatedAt=="number"&&Number.isFinite(c.updatedAt)&&c.updatedAt>=0?c.updatedAt:null;l.push({id:k,name:b,tiles:c.tiles.filter(t),...j?{purpose:j}:{},...N?{columns:N}:{},...M?{layout:M}:{},...O===null?{}:{updatedAt:O}})}return l.length===0?i():{version:1,activeWorkspaceId:typeof d.activeWorkspaceId=="string"&&m.has(d.activeWorkspaceId)?d.activeWorkspaceId:l[0].id,workspaces:l}}function Sn(s){if(!s||typeof s!="object")return null;const t=s;if(t.mode!=="solo"&&t.mode!=="lanes"&&t.mode!=="grid")return null;if(t.columns===void 0)return{mode:t.mode};if(t.columns==="dynamic")return{mode:t.mode,columns:"dynamic"};const n=$e(t.columns);return{mode:t.mode,columns:n}}function wn(s){if(typeof s!="number"||!Number.isFinite(s))return null;const t=Math.floor(s);return t<1?null:Math.min(t,xs)}function zs(s,t){const n=t.id.trim();if(!n)return s;const i={...t,id:n},l=s.workspaces.some(m=>m.id===n)?s.workspaces.map(m=>m.id===n?i:m):[i,...s.workspaces];return{...s,activeWorkspaceId:n,workspaces:l}}function $s(s,t,n){const i=s.workspaces.findIndex(u=>u.id===t);if(i<0)return s;const d=s.workspaces[i],l={...d,...n};return Object.keys(n).every(u=>d[u]===l[u])?s:{...s,workspaces:s.workspaces.map((u,c)=>c===i?l:u)}}function Nn(s,t){return t===s.activeWorkspaceId||!s.workspaces.some(n=>n.id===t)?s:{...s,activeWorkspaceId:t}}function vn(s,t,n={}){if(s.workspaces.length<=1)return n.allowEmpty&&s.workspaces[0]?.id===t?ys():s;const i=s.workspaces.findIndex(m=>m.id===t);if(i<0)return s;const d=s.workspaces.filter(m=>m.id!==t),l=s.activeWorkspaceId===t?d[Math.min(i,d.length-1)].id:s.activeWorkspaceId;return{...s,activeWorkspaceId:l,workspaces:d}}function Cn(s,t,n){return n>1?{axis:"horizontal",edge:s.x<t.left+t.width/2?"before":"after"}:{axis:"vertical",edge:s.y<t.top+t.height/2?"before":"after"}}function Tn(s,t,n,i){if(t===n)return[...s];const d=s.findIndex(b=>b.id===t),l=s.findIndex(b=>b.id===n);if(d<0||l<0)return[...s];const m=[...s],[u]=m.splice(d,1);if(!u)return[...s];const c=m.findIndex(b=>b.id===n),k=i==="after"?c+1:c;return m.splice(Math.max(0,k),0,u),m}const In="openscout.terminal.workspaces.v1",Rn=2,En="openscout.terminal.workspace-view.v1",Qe=2;function De(s){const t=typeof globalThis.crypto?.randomUUID=="function"?globalThis.crypto.randomUUID().slice(0,8):Math.random().toString(36).slice(2,10);return`${s}-${Date.now().toString(36)}-${t}`}const Mn=24;function ht(s,t,n){const i=t.replace(/[^A-Za-z0-9_-]+/gu,"-").replace(/^[^A-Za-z0-9_]+/u,"").slice(0,Mn).replace(/-+$/u,""),d=Wn(JSON.stringify([n,t,s]));return`scout-${s}-${i||"cell"}-${d}`}function Wn(s){let t=2166136261;for(let n=0;n<s.length;n+=1)t^=s.charCodeAt(n),t=Math.imul(t,16777619)>>>0;return t.toString(16).padStart(8,"0")}function he(s,t="shell"){return{id:De("cell"),kind:"fresh",backend:s,agent:t}}function _s(s){if(!s||typeof s!="object")return!1;const t=s;return typeof t.id!="string"||!t.id.trim()?!1:t.kind==="fresh"?typeof t.backend=="string"&&typeof t.agent=="string":t.kind==="registered"?typeof t.terminalSessionId=="string"&&typeof t.terminalSurfaceKey=="string":!1}function Fs(s){return{id:s.id,name:s.name,...s.purpose?{purpose:s.purpose}:{},columns:s.columns,...s.layout?{layout:s.layout}:{},updatedAt:s.updatedAt,tiles:s.cells.map(t=>t.surfaceId&&t.terminalSessionId?{id:t.id,kind:"registered",terminalSessionId:t.terminalSessionId,terminalSurfaceKey:t.surfaceId}:{id:t.id,kind:"fresh",backend:Ln(t.intent.hostId)?t.intent.hostId:"pty",agent:"shell"})}}function Ze(s,t={}){return{id:s.id,name:s.name,purpose:s.purpose??"",columns:ze(Pe({layout:s.layout,columns:s.columns,cellCount:s.tiles.length}),{tileCount:s.tiles.length}),layout:Pe({layout:s.layout,columns:s.columns,cellCount:s.tiles.length}),cells:s.tiles.map(n=>n.kind==="registered"?{id:n.id,surfaceId:n.terminalSurfaceKey,terminalSessionId:n.terminalSessionId,intent:An(n,t.sessions??[])}:{id:n.id,intent:{hostId:n.backend,sessionName:n.backend==="pty"?null:ht(n.backend,n.id,s.id)}})}}function An(s,t){const n=st(s.terminalSurfaceKey),i=t.find(d=>d.id===s.terminalSessionId||d.surfaces.some(l=>tt(l,s.terminalSurfaceKey)));return{...n?{hostId:n.backend,sessionName:n.hostSession}:{},...i?.cwd?{cwd:i.cwd}:{},...i?.harness?{harness:i.harness}:{},...i?.resumeCommand?{resumeCommand:i.resumeCommand}:{}}}function Ln(s){return s==="pty"||s==="tmux"||s==="zellij"||s==="herdr"}function Dn(s){if(!Array.isArray(s))return Ps(s,_s,{allowEmpty:!0});const t=s.flatMap(n=>{if(!n||typeof n!="object")return[];const i=n;if(typeof i.id!="string"||!i.id.trim())return[];const d=Array.isArray(i.cells)?i.cells:[];return[{id:i.id,name:typeof i.name=="string"&&i.name.trim()?i.name:i.id,purpose:i.purpose,columns:i.columns,updatedAt:i.updatedAt,tiles:d.map((l,m)=>({...l,id:`${i.id}-${m}`}))}]});return Ps({activeWorkspaceId:t[0]?.id??"",workspaces:t},_s,{allowEmpty:!0})}function On(s,t,n){const i=s.find(d=>d.id===t);return i?i.capabilities.control.includes(n)||i.capabilities.harnessControl.includes(n):!1}function Pn(s,t){return s.find(n=>n.id===t)??null}function zn(s){return[{value:"pty",label:"Shell",detail:"Disposable local shell",relayAttach:!0},...s.filter(t=>t.availability.installed&&t.capabilities.create).map(t=>({value:t.id,label:t.label,detail:t.description,relayAttach:t.capabilities.relayAttach})).sort((t,n)=>Number(n.relayAttach)-Number(t.relayAttach)||t.value.localeCompare(n.value))]}async function $n(){return be("/api/terminal-workspaces")}async function Ks(s){return(await be(`/api/terminal-workspaces/${encodeURIComponent(s.id)}`,{method:"PUT",body:JSON.stringify(s)})).workspace}async function _n(s,t){return be(`/api/terminal-workspaces/${encodeURIComponent(s)}/cells/${encodeURIComponent(t)}/revive`,{method:"POST",body:"{}"})}async function Fn(s){return(await be(`/api/terminal-workspaces/${encodeURIComponent(s)}`,{method:"DELETE"})).deleted}function Kn(s){const t=new Map;for(const n of s?.cells??[])t.set(n.cellId,n);return t}const Us="scout:terminal-send-line";function Un(s){const t=s.detail;if(!t||typeof t!="object"||!("line"in t))return null;const n=t.line;return typeof n=="string"&&n.trim().length>0?n:null}const te=["multiplexer","agent","session"];function Bn(s,t){if(t==="Home")return te[0];if(t==="End")return te[te.length-1];const n=t==="ArrowRight"||t==="ArrowDown"?1:t==="ArrowLeft"||t==="ArrowUp"?-1:0;if(n===0)return null;const d=(te.indexOf(s)+n+te.length)%te.length;return te[d]??null}function es(s){return`terminal-picker-tab-${s}`}function Bs(){return"terminal-picker-panel"}const ke=typeof window>"u"?o.useEffect:o.useLayoutEffect,Hn="openscout.terminal.picker-view.v1",qn="openscout.terminal.picker-source.v1",Hs={mode:"grid",columns:"dynamic"},qs=[{mode:"solo",label:"Solo",detail:"One terminal, full width",minimumCells:1},{mode:"lanes",label:"Lanes",detail:"Side by side, one row",minimumCells:2},{mode:"grid",label:"Grid",detail:"Rows and columns",minimumCells:4}],ft=[{value:"shell",label:"Shell"},{value:"codex",label:"Codex"},{value:"claude",label:"Claude"},{value:"pi",label:"Pi"}],ss="'JetBrainsMono Nerd Font', 'JetBrainsMonoNL Nerd Font', 'MesloLGS Nerd Font Mono', 'Hack Nerd Font Mono', 'JetBrains Mono', monospace",Ys=s=>{},Yn=()=>{};function Vn(){if(typeof window>"u")return{fontFamily:ss,fontSize:13};const s=new URLSearchParams(window.location.search),t=s.get("terminalFontFamily")?.trim(),n=Number(s.get("terminalFontSize"));return{fontFamily:t?`'${t.replaceAll("'","\\'")}', ${ss}`:ss,fontSize:Number.isFinite(n)&&n>=9&&n<=32?n:13}}function js(s){const t=Vn();return e.jsx(cn,{...s,renderer:s.renderer??"auto",fontFamily:t.fontFamily,fontSize:t.fontSize})}function Gn(s,t){const[n,i]=o.useState({state:"loading",sessions:[]}),d=o.useCallback(()=>{i(m=>({state:"loading",sessions:m.sessions})),nt({includeDiscovered:!0}).then(m=>{i({state:"ready",sessions:m})}).catch(m=>{i(u=>({state:"failed",sessions:u.sessions,error:m instanceof Error?m.message:String(m)}))})},[]);return o.useEffect(()=>{d()},[d]),{target:o.useMemo(()=>it(n.sessions,s,t),[n.sessions,s,t]),loadState:n.state,loadSessions:d,hasSessionHint:!!s}}function Jn(s,t,n){const i=Ut(t,n),[d,l]=o.useState(i?{state:"preparing"}:{state:"ready"}),[m,u]=o.useState(0);return o.useEffect(()=>{if(!i||!s){l({state:"ready"});return}let c=!1;return l({state:"preparing"}),be(`/api/agents/${encodeURIComponent(s)}/session-catalog`).then(k=>{if(k.resumeCommand)return dn({command:k.resumeCommand,cwd:k.resumeCwd,agentId:s})}).then(()=>{c||l({state:"ready"})}).catch(k=>{c||l({state:"failed",error:k instanceof Error?k.message:String(k)})}),()=>{c=!0}},[s,i,m]),{ready:d.state==="ready",label:d.state==="failed"?"TAKEOVER FAILED":"PREPARING TAKEOVER",status:d.state==="failed"?d.error:"Resolving live session...",onRetry:d.state==="failed"?()=>u(c=>c+1):void 0}}function Xn(s){const{agentId:t,agent:n,mode:i,navigate:d,registeredTarget:l,showContextMenu:m}=s,{hosts:u}=ms(),c=n?Zs(n.name):"var(--accent)",k=o.useRef(null),b=l?ds(l.surface):ne(n),j=i==="observe",N=l?.session.cwd??n?.cwd??n?.projectRoot??void 0,M=is(),O=ls(),S=Bt({agentId:t,agent:n,registeredTarget:l,terminalSurface:b,relayUrl:M,harness:l?.session.harness??n?.harness,cwd:N,mode:i}),f=ps({url:S.scopedRelayUrl,healthUrl:O,autoConnect:!0,...j?{}:{sessionKey:S.relayStorageSessionKey},...S.surfaceOptions??{},...S.orphanTTL?{orphanTTL:S.orphanTTL}:{},...S.cwd?{cwd:S.cwd}:{},...S.relayAgent?{agent:S.relayAgent}:{},controlMode:S.controlMode});ke(()=>{f.resize(os,cs)},[f.resize]);const v=o.useMemo(()=>j?{...f,sendInput:Ys,sendLine:Ys,restart:Yn}:f,[j,f]),w=Ht({agentId:t,registeredTarget:l}),P=Oe(w,i),R=o.useCallback(()=>{const y=k.current;y?.querySelector(".xterm-helper-textarea")?.focus(),y?.querySelector(".xterm")?.focus()},[]);o.useEffect(()=>{const y=K=>{const U=K.detail?.line;return typeof U=="string"&&U.length>0?U:null},D=K=>{const U=y(K);!U||j||(v.sendInput(U),R())},L=K=>{const U=y(K);!U||j||(v.sendLine(U),R())};return window.addEventListener("scout:terminal-send-input",D),window.addEventListener("scout:terminal-send-line",L),()=>{window.removeEventListener("scout:terminal-send-input",D),window.removeEventListener("scout:terminal-send-line",L)}},[R,j,v]);const E=o.useCallback(y=>b?qt(b,y):null,[b]),W=o.useCallback(()=>{Os(et(P))},[P]),H=o.useCallback(()=>{j||!navigator.clipboard?.readText||navigator.clipboard.readText().then(y=>{y&&v.sendInput(y)}).catch(()=>{})},[j,v]),x=o.useCallback(()=>{Ae(S.relayStorageSessionKey);const y=E("detach");if(y){y.finally(()=>f.disconnect());return}f.disconnect()},[S.relayStorageSessionKey,f,E]),A=o.useCallback(()=>{Ae(S.relayStorageSessionKey);const y=E("force-quit-bridge");if(y){y.finally(()=>{f.connect(),window.setTimeout(R,250)});return}f.connect(),window.setTimeout(R,250)},[S.relayStorageSessionKey,R,f,E]),T=o.useCallback(()=>{if(j)return;const y=E("interrupt");y?y.catch(()=>v.sendInput("")):v.sendInput(""),R()},[R,j,E,v]),$=o.useCallback(()=>{if(j)return;const y=E("quit");y?y.catch(()=>v.sendInput("")):v.sendInput(""),R()},[R,j,E,v]),Y=o.useCallback(()=>{if(j)return;const y=E("stop-job");if(y){y.finally(R);return}R()},[R,j,E]),de=o.useCallback(()=>{if(Ae(S.relayStorageSessionKey),b&&!window.confirm(`Force quit Claude in ${ns(b.sessionName)}?`))return;const y=E("force-quit");if(y){y.finally(()=>f.disconnect());return}const D=f.sessionId;if(!D){f.disconnect();return}Yt(D).catch(()=>{}).finally(()=>f.disconnect())},[S.relayStorageSessionKey,f,E,b]),z=o.useCallback(()=>{if(!b||!window.confirm(`Restart Claude in ${ns(b.sessionName)} and resume its latest session?`))return;Ae(S.relayStorageSessionKey);const y=E("restart-resume");y&&y.finally(()=>{f.disconnect(),window.setTimeout(()=>{f.connect(),window.setTimeout(R,250)},600)})},[S.relayStorageSessionKey,R,f,E,b]),V=o.useCallback(y=>{d(Oe(w,y))},[d,w]),J=o.useCallback(()=>{d(w)},[d,w]),_e=!!(l||b),Z=!j&&!!(b||f.status==="connected"),re=!j&&!!b,ee=o.useMemo(()=>{const y=b?.backend??null,D=U=>On(u,y,U),L=[];(!y||D("detach"))&&L.push({kind:"action",label:"Leave this session running",onSelect:x}),L.push({kind:"action",label:"Reconnect",onSelect:A});const K=[];return D("restart-resume")&&K.push({kind:"action",label:"Restart Claude and resume",onSelect:z}),D("force-quit")&&K.push({kind:"action",label:"Force quit Claude",onSelect:de}),K.length>0&&L.push({kind:"separator"},...K),L},[x,de,A,z,u,b?.backend]),je=o.useMemo(()=>{const y=[...ee],D=[];Z&&D.push({kind:"action",label:"Send Ctrl-C",shortcut:"⌃C",onSelect:T},{kind:"action",label:"Quit With Ctrl-D",shortcut:"⌃D",onSelect:$}),re&&D.push({kind:"action",label:"Stop Running Job",onSelect:Y}),D.length>0&&y.push({kind:"separator"},...D);const L=[];return b&&L.push({kind:"action",label:j?"Open Takeover":"Open Observe",onSelect:()=>V(j?"takeover":"observe")}),l&&L.push({kind:"action",label:"Open Summary",onSelect:J}),L.length>0&&y.push({kind:"separator"},...L),y},[Z,re,T,V,J,$,j,l,ee,Y,b]),ge=o.useCallback(y=>{m(y,je)},[je,m]),ae=o.useCallback(y=>{const D=typeof window>"u"?"":window.getSelection()?.toString()??"",L=[];D.trim()&&L.push({kind:"action",label:"Copy Selection",shortcut:"⌘C",onSelect:()=>{Os(D)}}),j||L.push({kind:"action",label:"Paste",shortcut:"⌘V",onSelect:H},{kind:"action",label:"Send Ctrl-C",shortcut:"⌃C",onSelect:T},{kind:"action",label:"Quit With Ctrl-D",shortcut:"⌃D",onSelect:$},{kind:"action",label:"Stop Running Job",onSelect:Y}),L.length>0&&L.push({kind:"separator"}),L.push({kind:"action",label:"Focus Terminal",onSelect:R},...ee,{kind:"separator"},{kind:"action",label:j?"Open Takeover":"Open Observe",onSelect:()=>V(j?"takeover":"observe")},{kind:"action",label:"Open Summary",onSelect:J},{kind:"action",label:"Copy Terminal Link",onSelect:W}),m(y,L)},[W,R,T,V,J,H,$,j,ee,m,Y]);return{color:c,terminalBodyRef:k,terminalSurface:b,readOnly:j,relay:f,terminalRelay:v,healthUrl:O,scopedRelayUrl:S.scopedRelayUrl,hasViewActions:_e,canSignalTerminal:Z,canStopTerminalJob:re,handleSessionMenu:ge,handleTerminalContextMenu:ae,openMode:V,openSummary:J,interruptTerminal:T,quitTerminal:$,stopTerminalJob:Y,terminalRouteBase:w}}function Qn({agent:s,agentId:t,color:n,navigate:i,label:d,status:l,onRetry:m}){return e.jsxs("div",{className:"s-term",children:[e.jsxs("div",{className:"s-term-bar",children:[e.jsx(xe,{slot:"terminal",fallback:{view:"terminal"},navigate:i,className:"s-term-back"}),s&&e.jsxs("div",{className:"s-term-agent",children:[e.jsx("div",{className:"s-ops-avatar",style:{"--size":"18px",background:n},children:s.name[0]?.toUpperCase()}),e.jsx("span",{className:"s-term-agent-name",children:s.name}),s.handle&&e.jsxs("span",{className:"s-term-agent-handle",children:["@",s.handle]})]}),e.jsx("span",{className:"s-term-label",children:d}),e.jsx("div",{className:"s-term-status",children:m?"OFFLINE":"CONNECTING"})]}),e.jsx("div",{className:"s-term-body s-term-body--placeholder",children:e.jsxs("div",{className:"s-term-placeholder",children:[e.jsx("span",{children:l}),m&&e.jsx("button",{type:"button",onClick:m,children:"Retry"})]})})]})}function Zn({target:s,navigate:t}){const n=o.useMemo(()=>rt([s.session]).find(m=>F(m.surface)===F(s.surface)),[s]),i={view:"terminal",terminalSessionId:s.session.id,terminalSurfaceKey:F(s.surface)},d=Vt(s.session,s.surface),l=Gt(s);return e.jsx("div",{className:"s-term s-term--summary",children:e.jsxs("div",{className:"s-term-summary",children:[e.jsxs("div",{className:"s-term-summary-main",children:[e.jsx(xe,{slot:"terminal",fallback:{view:"terminal"},navigate:t,className:"s-term-back"}),e.jsxs("div",{className:"s-term-summary-mark",children:[e.jsx(B,{size:18,strokeWidth:1.7}),e.jsx("span",{children:"Terminal"})]}),e.jsxs("div",{className:"s-term-summary-heading",children:[e.jsx("h1",{children:n?.title??s.surface.sessionName}),e.jsxs("p",{children:[s.surface.backend," · ",d]})]}),e.jsxs("div",{className:"s-term-summary-actions",children:[e.jsxs("button",{type:"button",className:"s-term-summary-action s-term-summary-action--primary",onClick:()=>t(Oe(i,"takeover")),children:[e.jsx(hs,{size:14,strokeWidth:1.8}),e.jsx("span",{children:"Enter"})]}),e.jsxs("button",{type:"button",className:"s-term-summary-action",onClick:()=>t(Oe(i,"observe")),children:[e.jsx(hn,{size:14,strokeWidth:1.8}),e.jsx("span",{children:"Observe"})]})]})]}),e.jsx("div",{className:"s-term-summary-preview",children:e.jsx(ct,{surface:ds(s.surface),lines:26,columns:112,pollMs:3e4,idlePollMs:3e4,className:"s-term-preview-peek"})}),e.jsx("dl",{className:"s-term-summary-details",children:l.map(([m,u])=>e.jsxs("div",{className:"s-term-summary-detail",children:[e.jsx("dt",{children:m}),e.jsx("dd",{title:u,children:u})]},m))})]})})}function gs({agentId:s,agent:t,mode:n,navigate:i,registeredTarget:d,embedded:l=!1,tileActions:m}){const u=Qs(),c=Xn({agentId:s,agent:t,mode:n,navigate:i,registeredTarget:d,showContextMenu:u}),k=c.relay.status==="connected"?"LIVE":c.relay.status==="connecting"?"CONNECTING":"OFFLINE",b=c.relay.status==="connected"?"live":c.relay.status==="connecting"?"connecting":"offline";return e.jsxs("div",{className:`s-term${l?" s-term--embedded":""}`,children:[!l&&e.jsxs("div",{className:"s-term-bar s-term-bar--takeover",children:[e.jsxs("div",{className:"s-term-bar-left",children:[e.jsx(xe,{slot:"terminal",fallback:{view:"terminal"},navigate:i,className:"s-term-back"}),t&&e.jsxs("div",{className:"s-term-agent",children:[e.jsx("div",{className:"s-ops-avatar",style:{"--size":"18px",background:c.color},children:t.name[0]?.toUpperCase()}),e.jsx("span",{className:"s-term-agent-name",children:t.name}),t.handle&&e.jsxs("span",{className:"s-term-agent-handle",children:["@",t.handle]})]}),d&&e.jsxs("div",{className:"s-term-registered-chip",children:[e.jsx(B,{size:14,strokeWidth:1.8}),e.jsx("span",{children:d.session.harness}),e.jsx("span",{children:d.session.sourceSessionId})]})]}),e.jsxs("div",{className:"s-term-bar-meta",children:[e.jsx("span",{className:"s-term-label",children:c.terminalSurface?c.readOnly?"TERMINAL OBSERVE":"TERMINAL TAKEOVER":"TAKEOVER"}),c.terminalSurface&&e.jsx("span",{className:"s-term-session",title:c.terminalSurface.sessionName,children:ns(c.terminalSurface.sessionName)})]}),e.jsxs("div",{className:"s-term-bar-actions",children:[c.hasViewActions&&e.jsxs("div",{className:"s-term-action-cluster s-term-action-cluster--view","aria-label":"Terminal view actions",children:[d&&e.jsx("button",{type:"button",className:"s-term-action",onClick:c.openSummary,title:"Leave the terminal canvas and show the session summary",children:"Summary"}),c.terminalSurface&&e.jsx("button",{type:"button",className:"s-term-action",onClick:()=>c.openMode(c.readOnly?"takeover":"observe"),title:c.readOnly?"Switch to interactive takeover":"Switch to read-only terminal observe",children:c.readOnly?"Takeover":"Observe"})]}),(c.canSignalTerminal||c.canStopTerminalJob)&&e.jsxs("div",{className:"s-term-action-cluster s-term-action-cluster--signals","aria-label":"Terminal signal actions",children:[c.canSignalTerminal&&e.jsxs("button",{type:"button",className:"s-term-action s-term-action--warn",onClick:c.interruptTerminal,title:"Send Ctrl-C to the terminal",children:[e.jsx(dt,{size:13,strokeWidth:1.8}),e.jsx("span",{children:"Ctrl-C"})]}),c.canSignalTerminal&&e.jsxs("button",{type:"button",className:"s-term-action s-term-action--warn",onClick:c.quitTerminal,title:"Send Ctrl-D / EOF to the terminal",children:[e.jsx(an,{size:13,strokeWidth:1.8}),e.jsx("span",{children:"Quit"})]}),c.canStopTerminalJob&&e.jsxs("button",{type:"button",className:"s-term-action s-term-action--warn",onClick:c.stopTerminalJob,title:"Stop Claude's current shell/tool job without quitting Claude",children:[e.jsx(pn,{size:12,strokeWidth:2}),e.jsx("span",{children:"Stop Job"})]})]}),e.jsxs("button",{type:"button",className:"s-term-action s-term-session-menu",onClick:c.handleSessionMenu,title:"Open session, recovery, and external handoff actions",children:[e.jsx(rs,{size:14,strokeWidth:1.8}),e.jsx("span",{children:"Session"})]}),e.jsx("div",{className:"s-term-status",children:k}),m]})]}),e.jsxs("div",{ref:c.terminalBodyRef,className:"s-term-body",onContextMenuCapture:c.handleTerminalContextMenu,children:[l&&e.jsxs("div",{className:"s-term-float","aria-label":"Terminal tile actions",children:[e.jsx("span",{className:"s-term-float-grip",title:"Drag to move","aria-hidden":"true",onPointerDown:j=>j.preventDefault(),children:e.jsx(jn,{size:14,strokeWidth:1.8})}),d&&e.jsxs("span",{className:"s-term-float-identity",title:`${d.session.harness} ${d.session.sourceSessionId}`,children:[e.jsx("span",{children:d.session.harness}),e.jsx("span",{children:d.session.sourceSessionId})]}),e.jsx("span",{className:`s-term-float-mark s-term-float-mark--${b}`,role:"status",title:k,"aria-label":`Relay ${k.toLowerCase()}`}),e.jsx("button",{type:"button",className:"s-term-icon-button",onClick:c.handleSessionMenu,title:"Session actions","aria-label":"Session actions",children:e.jsx(rs,{size:14,strokeWidth:1.8})}),m]}),e.jsx(js,{relay:c.terminalRelay,readOnly:c.readOnly,quiet:!0,configItems:[...c.terminalSurface?[{label:"backend",value:c.terminalSurface.backend},{label:"session",value:c.terminalSurface.sessionName},...c.terminalSurface.paneId?[{label:"pane",value:c.terminalSurface.paneId}]:[],...c.terminalSurface.socketDir?[{label:"socket",value:c.terminalSurface.socketDir}]:[],{label:"mode",value:c.readOnly?"read-only":"takeover"}]:[],{label:"ws",value:c.scopedRelayUrl},{label:"health",value:c.healthUrl}]})]})]})}function er({terminalSessionId:s,terminalSurfaceKey:t,mode:n,navigate:i}){const{target:d,loadState:l,loadSessions:m,hasSessionHint:u}=Gn(s,t);return d&&n?e.jsx(gs,{agent:null,mode:n,navigate:i,registeredTarget:d},`${F(d.surface)}:${n}`):d?e.jsx(Zn,{target:d,navigate:i}):e.jsx("div",{className:"s-term s-term--empty-main",children:e.jsxs("div",{className:"s-term-empty-main-mark",children:[e.jsx(B,{size:18,strokeWidth:1.6}),e.jsx("span",{children:l==="loading"?"Loading terminal":l==="failed"?"Terminal list unavailable":u?"Terminal unavailable":"Select a terminal"}),l==="failed"&&e.jsx("button",{type:"button",className:"s-term-empty-action",onClick:m,children:"Retry"})]})})}function sr(s,t){return s.kind!=="fresh"||!s.sessionName?!1:t.some(n=>n.surfaces.some(i=>i.backend===s.backend&&i.sessionName===s.sessionName&&i.state!=="exited"))}function ce(s){return`${s.session.id}:${F(s.surface)}`}function tr(s,t,n){if(s.kind==="fresh")return{id:s.id,kind:"fresh",backend:s.backend,agent:s.agent,...s.backend==="pty"?{}:{sessionName:ht(s.backend,s.id,n)}};const i=it(t,s.terminalSessionId,s.terminalSurfaceKey);return i?{id:s.id,kind:"registered",target:i}:{id:s.id,kind:"unavailable",terminalSessionId:s.terminalSessionId,terminalSurfaceKey:s.terminalSurfaceKey}}function G(s){return{session:s.session,surface:s.surface}}function nr(s){const t=s.backend;return t!=="pty"&&!lt(t)?null:{view:"terminal",terminalBackend:t,terminalAgent:s.agent,terminalTabId:s.id,...s.sessionName?{terminalSessionName:s.sessionName}:{},...s.zellijSocketDir?{zellijSocketDir:s.zellijSocketDir}:{}}}function rr(s,t="takeover"){return{view:"terminal",terminalSessionId:s.session.id,terminalSurfaceKey:F(s.surface),mode:t}}function kt(s,t){if(typeof window>"u"){t(s);return}window.open(et(s),"_blank","noopener,noreferrer")}function ar({navigate:s}){const{agents:t}=Xs(),n=Qs(),{hosts:i}=ms(),d=o.useMemo(()=>zn(i),[i]),[l,m]=Le(In,ys(),{version:Rn,migrate:Dn}),[u,c]=Le(En,"library"),k=o.useRef(new Map),[b,j]=o.useState(null),[N,M]=o.useState(""),[O,S]=o.useState(""),[f,v]=o.useState(Hs),[w,P]=o.useState(()=>Array.from({length:4},()=>he("pty"))),[R,E]=o.useState(0),[W,H]=o.useState({state:"loading",sessions:[]}),[x,A]=o.useState(0),[T,$]=o.useState(!0),[Y,de]=Le(Hn,"list"),[z,V]=Le(qn,"multiplexer"),[J,_e]=o.useState(nn),[Z,re]=o.useState(null),[ee,je]=o.useState([]),[ge,ae]=o.useState(null),[y,D]=o.useState(null),[L,K]=o.useState(null),[U,Ns]=o.useState(!1),[Se,vs]=o.useState(null),[yt,Fe]=o.useState(null),we=o.useRef(null),Ne=o.useRef(null),ve=o.useRef("after"),Ce=o.useRef(null),Te=o.useRef(null),Ke=o.useRef(!1),X=o.useCallback((r={})=>{r.silent||H(a=>({state:"loading",sessions:a.sessions})),nt({includeDiscovered:!0}).then(a=>H({state:"ready",sessions:a})).catch(a=>{r.silent||H(p=>({state:"failed",sessions:p.sessions,error:a instanceof Error?a.message:String(a)}))})},[]);o.useEffect(()=>{X()},[X]),o.useEffect(()=>{const r=()=>{document.visibilityState==="visible"&&X({silent:!0})},a=window.setInterval(r,8e3);return window.addEventListener("focus",r),document.addEventListener("visibilitychange",r),()=>{window.clearInterval(a),window.removeEventListener("focus",r),document.removeEventListener("visibilitychange",r)}},[X]),o.useEffect(()=>{let r=!1;return $n().then(a=>{if(!r){je(a.resolutions);for(const p of a.workspaces)k.current.set(p.id,JSON.stringify(Ze(Fs(p),{sessions:W.sessions})));a.workspaces.length!==0&&m(p=>{let h=p;for(const g of a.workspaces)h=zs(h,Fs(g));return{...h,activeWorkspaceId:p.activeWorkspaceId||h.activeWorkspaceId}})}}).catch(()=>{}),()=>{r=!0}},[m]);const Cs=o.useMemo(()=>rt(W.sessions),[W.sessions]),q=o.useMemo(()=>Cs.filter(r=>r.surface.state!=="exited"),[Cs]),{managed:ie}=o.useMemo(()=>at(q),[q]),me=o.useMemo(()=>q.filter(r=>r.origin==="scout"),[q]),Ie=o.useMemo(()=>hr(t).filter(r=>!!ne(r)),[t]),Re=ie.find(r=>r.id===Z)??ie[0]??null;o.useEffect(()=>{Re?.id!==Z&&re(Re?.id??null)},[Re?.id,Z]);const Ue=o.useMemo(()=>{if(z==="multiplexer")return ie;if(z==="session")return me;const r=new Set;return Ie.flatMap(a=>{const p=q.find(h=>Ss(h,[a])?.id===a.id);return!p||r.has(p.id)?[]:(r.add(p.id),[p])})},[me,q,ie,z,Ie]),Ts=W.state==="failed"?W.error:null,Be=l.workspaces,I=l.workspaces.find(r=>r.id===l.activeWorkspaceId)??null,le=Pe({layout:I?.layout,columns:I?.columns,cellCount:I?.tiles.length??0}),Q=o.useMemo(()=>(I?.tiles??[]).map(r=>tr(r,W.sessions,I?.id??"")),[I?.id,I?.tiles,W.sessions]),He=ze(le,{tileCount:Q.length});o.useEffect(()=>{if(!I||!k.current.has(I.id))return;const r=Ze(I,{sessions:W.sessions}),a=JSON.stringify(r);k.current.get(I.id)!==a&&(k.current.set(I.id,a),Ks(r).catch(p=>ae(p instanceof Error?p.message:String(p))))},[I,W.sessions]);const oe=u==="workspace"&&!I?"library":u,_=o.useCallback(r=>{m(a=>{const p=a.workspaces.find(g=>g.id===a.activeWorkspaceId);if(!p)return a;const h=r(p.tiles);return h===p.tiles?a:$s(a,p.id,{tiles:h,updatedAt:Date.now()})})},[m]),Ee=o.useCallback(r=>{m(a=>a.activeWorkspaceId?$s(a,a.activeWorkspaceId,{layout:r,updatedAt:Date.now()}):a)},[m]),jt=o.useCallback(r=>{m(a=>Nn(a,r.id)),$(!1),c("workspace")},[m,c]),gt=o.useCallback(()=>{c("library")},[c]),ue=o.useCallback(r=>{j(r?.id??null),M(r?.name??""),S(r?.purpose??""),v(r?Pe({layout:r.layout,columns:r.columns,cellCount:r.tiles.length}):Hs),P(r?.tiles??Array.from({length:4},()=>he("pty"))),E(0),c("builder")},[c]),St=o.useCallback(r=>{v(a=>r.mode==="solo"?{mode:"solo"}:{mode:r.mode,columns:a.columns??"dynamic"}),P(a=>a.length>=r.minimumCells?a:[...a,...Array.from({length:r.minimumCells-a.length},()=>he("pty"))]),E(a=>Math.max(0,Math.min(a,r.minimumCells-1)))},[]),wt=o.useCallback(r=>{v(a=>a.mode==="solo"?{mode:"lanes",columns:r}:{...a,columns:r})},[]),Nt=o.useCallback(()=>{P(r=>{const a=[...r,he("pty")];return E(a.length-1),a})},[]),vt=o.useCallback(r=>{P(a=>{if(a.length<=1)return a;const p=a.filter((h,g)=>g!==r);return E(h=>Math.min(h,p.length-1)),p})},[]),Ct=o.useCallback(()=>{const r=N.trim();if(!r)return;const a={id:b??De("workspace"),name:r,purpose:O.trim(),columns:ze(f,{tileCount:w.length}),layout:f,tiles:w,updatedAt:Date.now()};m(h=>zs(h,a));const p=Ze(a,{sessions:W.sessions});k.current.set(a.id,JSON.stringify(p)),Ks(p).catch(h=>ae(h instanceof Error?h.message:String(h))),$(!1),c("workspace")},[b,m,c,W.sessions,w,f,N,O]),Tt=o.useCallback(r=>{m(a=>vn(a,r,{allowEmpty:!0})),Fn(r).catch(()=>{})},[m]),Is=o.useCallback((r,a="shell")=>{_(p=>[...p,he(r,a)])},[_]),pe=o.useCallback((r,a)=>{const p={kind:"registered",terminalSessionId:r.session.id,terminalSurfaceKey:F(r.surface)};_(h=>{const g=h.some(C=>C.kind==="registered"&&C.terminalSessionId===p.terminalSessionId&&ts(C.terminalSurfaceKey,p.terminalSurfaceKey));return a?h.some(C=>C.id===a)?h.map(C=>C.id===a?{...p,id:C.id}:C):h:g?h:[...h,{...p,id:De("cell")}]})},[_]),qe=o.useCallback(r=>{pe(r)},[pe]),Ye=o.useMemo(()=>new Set(Q.filter(r=>r.kind==="registered").map(r=>ce(r.target))),[Q]),Me=o.useCallback(r=>{r?.currentTarget.hasPointerCapture(r.pointerId)&&r.currentTarget.releasePointerCapture(r.pointerId),Ce.current=null,Te.current=null,Ke.current=!1,D(null),K(null),Ns(!1)},[]),It=o.useCallback((r,a)=>{const p=r.target;r.button!==0||p instanceof Element&&p.closest("button, a")||(Ce.current={pointerId:r.pointerId,target:G(a),targetId:ce(G(a)),startX:r.clientX,startY:r.clientY},r.currentTarget.setPointerCapture(r.pointerId))},[]),Rt=o.useCallback(r=>{const a=Ce.current;if(!a||a.pointerId!==r.pointerId||Math.hypot(r.clientX-a.startX,r.clientY-a.startY)<6&&!y)return;y||D(a.targetId);const h=document.querySelector(".s-term--workspace");if(h){const Ds=h.getBoundingClientRect();r.clientY<Ds.top+72&&(h.scrollTop-=28),r.clientY>Ds.bottom-72&&(h.scrollTop+=28)}const g=document.elementFromPoint(r.clientX,r.clientY),C=g?.closest(".s-term-workspace-cell"),se=!!(g?.closest(".s-term-workspace-add-cell")||!C&&g?.closest(".s-term--workspace")&&!g?.closest(".s-term-picker")),Ls=se?null:C?.dataset.terminalTileId??null;Te.current=Ls,Ke.current=se,K(Ls),Ns(se)},[y]),Et=o.useCallback(r=>{const a=Ce.current;!a||a.pointerId!==r.pointerId||(Ke.current?pe(a.target):Te.current&&pe(a.target,Te.current),Me(r))},[Me,pe]),Mt=o.useCallback(r=>{Me(r)},[Me]),Wt=o.useCallback(()=>{const r=Ue.map(G);r.length!==0&&_(a=>{const p=a.filter(g=>g.kind==="registered"),h=r.filter(g=>!p.some(C=>C.kind==="registered"&&C.terminalSessionId===g.session.id&&ts(C.terminalSurfaceKey,F(g.surface)))).map(g=>({id:De("cell"),kind:"registered",terminalSessionId:g.session.id,terminalSurfaceKey:F(g.surface)}));return h.length===0?a:[...a,...h]})},[Ue,_]),Ve=o.useCallback(r=>{_(a=>{const p=a.filter(h=>h.id!==r);return p.length===a.length?a:p})},[_]),Rs=o.useCallback((r,a,p)=>{r!==a&&_(h=>Tn(h,r,a,p))},[_]),Ge=o.useCallback((r,a)=>{_(p=>{const h=p.findIndex(se=>se.id===r),g=h+a;if(h<0||g<0||g>=p.length)return p;const C=[...p];return[C[h],C[g]]=[C[g],C[h]],C})},[_]),Es=o.useCallback((r,a)=>{_(p=>p.map(h=>h.id===r?{id:h.id,kind:"fresh",backend:a,agent:"shell"}:h))},[_]),We=o.useCallback(()=>[...qs.map(r=>({kind:"action",label:r.label,onSelect:()=>Ee(r.mode==="solo"?{mode:"solo"}:{mode:r.mode,columns:le.columns??"dynamic"})})),...le.mode==="solo"?[]:[{kind:"separator"},{kind:"action",label:"Dynamic columns",onSelect:()=>Ee({...le,columns:"dynamic"})},...Array.from({length:xs},(r,a)=>({kind:"action",label:a===0?"One column":`${a+1} columns`,onSelect:()=>Ee({...le,columns:a+1})}))],{kind:"separator"},{kind:"action",label:"Edit workspace…",onSelect:()=>I&&ue(I)}],[I,Ee,ue,le]),Ms=o.useCallback(r=>{n(r,We())},[We,n]),At=o.useCallback(r=>{n(r,ft.map(a=>({kind:"action",label:a.value==="shell"?"New shell":`New ${a.label} terminal`,onSelect:()=>Is("pty",a.value)})))},[Is,n]),Lt=o.useCallback((r,a)=>{const p=Q.findIndex(g=>g.id===a.id),h=[];p>0&&h.push({kind:"action",label:"Move left",onSelect:()=>Ge(a.id,-1)}),p>=0&&p<Q.length-1&&h.push({kind:"action",label:"Move right",onSelect:()=>Ge(a.id,1)}),h.length>0&&h.push({kind:"separator"}),h.push(...d.map(g=>({kind:"action",label:g.value==="pty"?"Replace with a disposable shell":`Replace with a session that survives (${g.label})`,onSelect:()=>Es(a.id,g.value)})),{kind:"separator"},{kind:"action",label:"Remove cell",onSelect:()=>Ve(a.id)},{kind:"separator"},...We()),n(r,h)},[Ve,We,Ge,Es,n,d,Q]),Dt=o.useCallback((r,a)=>{const p=r.target;r.button===0&&p instanceof Element&&p.closest(".s-term-bar, .s-term-float-grip")&&!p.closest("button, a")&&(we.current={pointerId:r.pointerId,tileId:a,startX:r.clientX,startY:r.clientY},r.currentTarget.setPointerCapture(r.pointerId))},[]),Ot=o.useCallback(r=>{const a=we.current;if(!a||a.pointerId!==r.pointerId||Math.hypot(r.clientX-a.startX,r.clientY-a.startY)<6&&!Se)return;Se||vs(a.tileId);const h=document.elementFromPoint(r.clientX,r.clientY)?.closest(".s-term-workspace-cell"),g=h?.dataset.terminalTileId??null;if(!h||!g||g===a.tileId){Ne.current=null,ve.current="after",Fe(null);return}const C=h.getBoundingClientRect(),se=Cn({x:r.clientX,y:r.clientY},{left:C.left,top:C.top,width:C.width,height:C.height},He);Ne.current=g,ve.current=se.edge,Fe(g)},[Se,He]),Ws=o.useCallback(r=>{const a=we.current;if(!a||a.pointerId!==r.pointerId)return;const p=Ne.current;p&&Rs(a.tileId,p,ve.current),r.currentTarget.hasPointerCapture(r.pointerId)&&r.currentTarget.releasePointerCapture(r.pointerId),we.current=null,Ne.current=null,ve.current="after",vs(null),Fe(null)},[Rs]),Pt=o.useMemo(()=>Kn(ee.find(r=>r.workspaceId===I?.id)),[I?.id,ee]),As=o.useCallback(r=>{_e(a=>rn(a,r))},[]),zt=o.useCallback((r,a)=>{const p=Bn(a,r.key);p&&(r.preventDefault(),V(p),document.getElementById(es(p))?.focus())},[V]),$t=o.useCallback(()=>{X(),A(r=>r+1)},[X]),_t=o.useCallback(r=>{I&&_n(I.id,r).then(()=>{ae(null),X()}).catch(a=>ae(a instanceof Error?a.message:String(a)))},[I,X]),Ft=o.useCallback(()=>{c(I?"workspace":"library")},[I,c]),Je=e.jsx(un,{children:e.jsxs("div",{className:"s-term-topline","aria-label":"Terminal workspace controls",children:[e.jsxs("div",{className:"s-term-topline-context",children:[e.jsx("strong",{children:oe==="builder"?b?"Edit workspace":"New workspace":oe==="library"?"Workspaces":I?.name??"Workspace"}),e.jsxs("span",{children:[Be.length," workspace",Be.length===1?"":"s",e.jsx("i",{"aria-hidden":"true",children:"·"}),q.length," terminal",q.length===1?"":"s"]})]}),e.jsxs("div",{className:"s-term-topline-actions",children:[e.jsxs("a",{className:"s-term-topline-button",href:"scout://terminal",title:"Open this terminal workspace in the Scout app",children:[e.jsx(ks,{size:13,strokeWidth:1.8}),e.jsx("span",{children:"Open in Scout"})]}),oe==="library"?e.jsxs("button",{type:"button",className:"s-term-topline-button is-primary",onClick:()=>ue(),children:[e.jsx(fe,{size:13,strokeWidth:1.9}),e.jsx("span",{children:"New workspace"})]}):oe==="builder"?e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:"s-term-topline-button",onClick:Ft,children:"Cancel"}),e.jsx("button",{type:"button",className:"s-term-topline-button is-primary",onClick:Ct,disabled:!N.trim(),children:b?"Save":"Create"})]}):e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:"s-term-topline-button",onClick:gt,children:"Workspaces"}),e.jsxs("button",{type:"button",className:"s-term-topline-button is-primary",onClick:At,children:[e.jsx(fe,{size:13,strokeWidth:1.9}),e.jsx("span",{children:"New"})]}),e.jsxs("button",{type:"button",className:"s-term-topline-button",onClick:()=>$(r=>!r),"aria-pressed":T,children:[e.jsx(B,{size:13,strokeWidth:1.8}),e.jsx("span",{children:T?"Hide picker":"Show picker"})]}),e.jsx("button",{type:"button",className:"s-term-topline-icon",onClick:Ms,title:"Workspace layout and settings","aria-label":"Workspace layout and settings",children:e.jsx(rs,{size:14,strokeWidth:1.8})}),e.jsx("button",{type:"button",className:"s-term-topline-icon",onClick:$t,disabled:W.state==="loading",title:"Reload terminal inventory and previews","aria-label":"Reload terminal inventory and previews",children:e.jsx(fs,{size:13,strokeWidth:1.8})})]})]})]})});return oe==="library"?e.jsx(ir,{header:Je,workspaces:Be,sessionsReady:W.state!=="loading",onOpen:jt,onCreate:()=>ue(),onEdit:ue,onDelete:Tt}):oe==="builder"?e.jsx(or,{header:Je,editing:!!b,name:N,purpose:O,modes:qs,layout:f,startOptions:d,cells:w,selectedSlot:R,terminalItems:q,onNameChange:M,onPurposeChange:S,onApplyMode:St,onColumnsChange:wt,onSelectSlot:E,onAddCell:Nt,onRemoveCell:vt,pickerView:Y,pickerSort:J,onPickerView:de,onPickerSort:As,onAssignFresh:(r,a="shell")=>P(p=>p.map((h,g)=>g===R?{id:h.id,kind:"fresh",backend:r,agent:a}:h)),onAssignRegistered:r=>P(a=>a.map((p,h)=>h===R?{id:p.id,kind:"registered",terminalSessionId:r.session.id,terminalSurfaceKey:F(r.surface)}:p))}):e.jsxs("div",{className:"s-term s-term--workspace",children:[Je,e.jsxs("div",{className:"s-term-workspace",children:[e.jsx("h1",{className:"s-term-visually-hidden",children:I?.name??"Terminal workspace"}),Ts&&e.jsxs("div",{className:"s-term-home-error",children:[e.jsx("span",{children:"Terminal registry unavailable"}),e.jsx("code",{children:Ts})]}),ge&&e.jsxs("div",{className:"s-term-home-error",children:[e.jsx("span",{children:"This workspace is not saved to Scout — it will not follow you to another device"}),e.jsx("code",{children:ge})]}),(Q.length>0||T)&&e.jsxs("div",{className:"s-term-workspace-grid","aria-label":"Terminal tiles",style:{"--terminal-grid-columns":He},onContextMenu:Ms,children:[Q.map(r=>e.jsx("div",{className:`s-term-workspace-cell${Se===r.id?" s-term-workspace-cell--dragging":""}${yt===r.id||L===r.id?" s-term-workspace-cell--drop-target":""}`,"data-terminal-tile-id":r.id,onPointerDownCapture:a=>Dt(a,r.id),onPointerMove:Ot,onPointerUp:Ws,onPointerCancel:Ws,onContextMenu:a=>Lt(a,r),children:e.jsx(mr,{tile:r,navigate:s,onClose:Ve,resolution:Pt.get(r.id)??null,onRevive:_t,live:sr(r,W.sessions)})},`${r.id}:${x}`)),T&&e.jsxs("button",{type:"button",className:`s-term-workspace-add-cell${U?" s-term-workspace-add-cell--target":""}`,onClick:()=>$(!0),children:[e.jsx(fe,{size:20,strokeWidth:1.7}),e.jsx("strong",{children:"New slot"}),e.jsx("span",{children:y?"Drop to add":"Drag a terminal here"})]})]}),e.jsxs("section",{className:`s-term-picker${T?"":" s-term-picker--collapsed"}`,"aria-labelledby":"terminal-picker-title",onPointerDownCapture:r=>{const a=r.target;if(!(a instanceof Element))return;const p=a.closest("[data-picker-item-id]")?.dataset.pickerItemId,h=q.find(g=>g.id===p);h&&It(r,h)},onPointerMove:Rt,onPointerUp:Et,onPointerCancel:Mt,children:[e.jsxs("header",{className:"s-term-picker-head",children:[e.jsxs("div",{className:"s-term-picker-title",children:[e.jsx(B,{size:14,strokeWidth:1.8}),e.jsx("h2",{id:"terminal-picker-title",children:"Add to workspace"})]}),e.jsxs("div",{className:"s-term-picker-actions",children:[T&&z==="session"&&e.jsx("div",{className:"s-term-picker-views",role:"group","aria-label":"Picker view",children:["list","table"].map(r=>e.jsx("button",{type:"button",className:Y===r?"is-selected":"",onClick:()=>de(r),"aria-pressed":Y===r,children:r==="list"?"List":"Table"},r))}),T&&e.jsxs("button",{type:"button",className:"s-term-workspace-action",onClick:Wt,disabled:Ue.length===0,children:[e.jsx(hs,{size:13,strokeWidth:1.8}),e.jsx("span",{children:"Add all"})]}),e.jsxs("button",{type:"button",className:"s-term-picker-toggle",onClick:()=>$(r=>!r),"aria-expanded":T,children:[e.jsx("span",{children:T?"Hide":"Show terminal picker"}),e.jsx("span",{"aria-hidden":"true",children:T?"⌄":"⌃"})]})]})]}),T&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"s-term-picker-sources",role:"tablist","aria-label":"Ways to find a terminal",children:[{source:"multiplexer",label:"Multiplexer setups",detail:"Multi-pane · Herdr, tmux, Zellij",count:ie.length,icon:pt},{source:"agent",label:"Agent sessions",detail:"Agent-owned · managed terminals",count:Ie.length,icon:dt},{source:"session",label:"Recent sessions",detail:"Individual · previously opened by Scout",count:me.length,icon:B}].map(({source:r,label:a,detail:p,count:h,icon:g})=>e.jsxs("button",{type:"button",role:"tab",id:es(r),"aria-controls":Bs(),className:z===r?"is-selected":"","aria-selected":z===r,tabIndex:z===r?0:-1,onClick:()=>V(r),onKeyDown:C=>zt(C,r),children:[e.jsx(g,{size:16,strokeWidth:1.7,"aria-hidden":"true"}),e.jsxs("span",{children:[e.jsx("strong",{children:a}),e.jsx("small",{children:p})]}),e.jsx("em",{"aria-label":`${W.state==="loading"?"Loading":h} ${a.toLowerCase()}`,children:W.state==="loading"?"·":h})]},r))}),e.jsxs("div",{className:"s-term-picker-panel",role:"tabpanel",id:Bs(),"aria-labelledby":es(z),children:[e.jsx("p",{className:"s-term-picker-hint",children:z==="multiplexer"?"Preview a complete multiplexer setup, then open it or add the host-owned layout to this workspace.":z==="agent"?"Start from ownership: open the terminal associated with a managed agent, or add that surface here.":"Return to individual terminal sessions Scout has already opened or registered."}),z==="multiplexer"?e.jsx(cr,{items:ie,selectedId:Re?.id??null,attachedIds:Ye,draggedTargetId:y,onSelect:re,onAttach:qe,navigate:s}):z==="agent"?e.jsx(dr,{agents:Ie,items:q,attachedIds:Ye,onAttach:qe,navigate:s}):me.length===0&&W.state!=="loading"?e.jsxs("div",{className:"s-term-picker-empty s-term-picker-empty--explained",children:[e.jsx("strong",{children:"No recent sessions yet"}),e.jsx("span",{children:"Open or register a terminal session and it will appear here."})]}):e.jsx(xt,{items:me,view:Y,sort:J,attachedIds:Ye,draggedTargetId:y,onSort:As,onAttach:qe,navigate:s,groupManaged:!1})]})]})]})]})]})}function ir({header:s,workspaces:t,sessionsReady:n,onOpen:i,onCreate:d,onEdit:l,onDelete:m}){return e.jsxs("div",{className:"s-term s-term--workspace-library",children:[s,e.jsxs("main",{className:"s-term-workspace-library",children:[e.jsx("h1",{className:"s-term-visually-hidden",children:"Terminal workspaces"}),t.length===0?e.jsxs("section",{className:"s-term-workspace-library-empty",children:[e.jsx(pt,{size:24,strokeWidth:1.5}),e.jsx("h2",{children:"Create your first terminal workspace"}),e.jsx("p",{children:"Choose a layout, give it a purpose, place sessions, then enter the grid."}),e.jsxs("button",{type:"button",className:"s-term-workspace-action s-term-workspace-action--primary",onClick:d,children:[e.jsx(fe,{size:14,strokeWidth:1.9}),e.jsx("span",{children:"Create workspace"})]})]}):e.jsx("div",{className:"s-term-workspace-library-grid",children:t.map(u=>e.jsxs("article",{className:"s-term-workspace-card",children:[e.jsx("div",{className:"s-term-workspace-card-preview",style:{"--terminal-grid-columns":u.columns??Qe},children:u.tiles.map(c=>e.jsx("span",{className:c.kind==="registered"?"is-session":"is-shell"},c.id))}),e.jsxs("div",{className:"s-term-workspace-card-copy",children:[e.jsxs("span",{children:[u.columns??Qe," column",(u.columns??Qe)===1?"":"s"," · ",u.tiles.length," cells"]}),e.jsx("h2",{children:u.name}),e.jsx("p",{children:u.purpose||"No purpose added yet."})]}),e.jsxs("div",{className:"s-term-workspace-card-actions",children:[e.jsx("button",{type:"button",className:"s-term-workspace-action",onClick:()=>l(u),children:"Edit"}),e.jsx("button",{type:"button",className:"s-term-workspace-action",onClick:()=>m(u.id),children:"Delete"}),e.jsx("button",{type:"button",className:"s-term-workspace-action s-term-workspace-action--primary",onClick:()=>i(u),disabled:!n,children:"Enter workspace"})]})]},u.id))})]})]})}function as(s,t){return s==="solo"?1:s==="lanes"?Math.max(2,Math.min(4,t)):Math.max(2,Math.min(3,t))}function lr(s,t){return s==="solo"?1:s==="lanes"?as(s,t):as(s,t)*2}function or({header:s,editing:t,name:n,purpose:i,modes:d,layout:l,startOptions:m,cells:u,selectedSlot:c,terminalItems:k,onNameChange:b,onPurposeChange:j,onApplyMode:N,onColumnsChange:M,onSelectSlot:O,onAddCell:S,onRemoveCell:f,pickerView:v,pickerSort:w,onPickerView:P,onPickerSort:R,onAssignFresh:E,onAssignRegistered:W}){const H=ze(l,{tileCount:u.length});return e.jsxs("div",{className:"s-term s-term--workspace-builder",children:[s,e.jsxs("main",{className:"s-term-workspace-builder",children:[e.jsx("h1",{className:"s-term-visually-hidden",children:t?"Edit terminal workspace":"Create terminal workspace"}),e.jsxs("section",{className:"s-term-workspace-builder-identity","aria-label":"Workspace identity",children:[e.jsxs("label",{children:[e.jsx("span",{children:"Name"}),e.jsx("input",{value:n,onChange:x=>b(x.target.value),placeholder:"Release desk",autoFocus:!0})]}),e.jsxs("label",{children:[e.jsx("span",{children:"Purpose"}),e.jsx("input",{value:i,onChange:x=>j(x.target.value),placeholder:"Cross-project release monitoring"})]})]}),e.jsxs("section",{className:"s-term-workspace-builder-layout","aria-labelledby":"workspace-layout-title",children:[e.jsxs("div",{className:"s-term-workspace-builder-section-head",children:[e.jsxs("div",{children:[e.jsx("span",{children:"Step 1"}),e.jsx("h2",{id:"workspace-layout-title",children:"Choose the layout"})]}),e.jsxs("p",{children:[kn(l)," · ",u.length," cell",u.length===1?"":"s"]})]}),e.jsx("div",{className:"s-term-grid-presets","aria-label":"Workspace layout",children:d.map(x=>e.jsxs("button",{type:"button",className:`s-term-grid-preset${x.mode===l.mode?" s-term-grid-preset--selected":""}`,onClick:()=>N(x),"aria-pressed":x.mode===l.mode,children:[e.jsx("span",{className:"s-term-grid-preset-map",style:{"--terminal-preset-columns":as(x.mode,H)},"aria-hidden":"true",children:Array.from({length:lr(x.mode,H)},(A,T)=>e.jsx("i",{},T))}),e.jsx("span",{className:"s-term-grid-preset-label",children:x.label}),e.jsx("span",{className:"s-term-grid-preset-detail",children:x.detail})]},x.mode))}),l.mode!=="solo"&&e.jsxs("div",{className:"s-term-workspace-builder-columns",role:"group","aria-label":"Columns",children:[e.jsx("span",{children:"Columns"}),e.jsx("button",{type:"button",className:l.columns==="dynamic"||l.columns===void 0?"is-selected":"",onClick:()=>M("dynamic"),"aria-pressed":l.columns==="dynamic"||l.columns===void 0,title:"Fit the columns to the number of tiles",children:"Dynamic"}),Array.from({length:xs},(x,A)=>e.jsx("button",{type:"button",className:l.columns===A+1?"is-selected":"",onClick:()=>M(A+1),"aria-pressed":l.columns===A+1,children:A+1},A)),(l.columns==="dynamic"||l.columns===void 0)&&e.jsxs("em",{children:[H," right now"]})]})]}),e.jsxs("section",{className:"s-term-workspace-builder-placement","aria-labelledby":"workspace-placement-title",children:[e.jsxs("div",{className:"s-term-workspace-builder-section-head",children:[e.jsxs("div",{children:[e.jsx("span",{children:"Step 2"}),e.jsx("h2",{id:"workspace-placement-title",children:"Place terminals"})]}),e.jsx("p",{children:"Select a cell, then choose a session or shell. Add as many cells as the work needs."})]}),e.jsxs("div",{className:"s-term-workspace-builder-canvas",children:[e.jsxs("div",{className:"s-term-workspace-builder-grid",style:{"--terminal-grid-columns":H},children:[u.map((x,A)=>{const T=x.kind==="registered"?k.find($=>$.session.id===x.terminalSessionId&&ts(F($.surface),x.terminalSurfaceKey)):null;return e.jsxs("div",{className:`s-term-workspace-builder-cell${c===A?" is-selected":""}`,children:[e.jsxs("button",{type:"button",className:"s-term-workspace-builder-cell-select",onClick:()=>O(A),"aria-pressed":c===A,children:[e.jsx("span",{children:String(A+1).padStart(2,"0")}),e.jsx(B,{size:17,strokeWidth:1.7}),e.jsx("strong",{children:x.kind==="registered"?T?.title??"Unavailable session":ws(x.backend,x.agent).title}),e.jsx("small",{children:x.kind==="registered"?T?.cwdLabel||T?.detail:x.backend})]}),u.length>1&&e.jsx("button",{type:"button",className:"s-term-workspace-builder-cell-remove",onClick:()=>f(A),title:"Remove this cell","aria-label":`Remove cell ${A+1}`,children:e.jsx(ye,{size:13,strokeWidth:1.9})})]},x.id)}),e.jsxs("button",{type:"button",className:"s-term-workspace-builder-cell s-term-workspace-builder-cell--add",onClick:S,children:[e.jsx(fe,{size:18,strokeWidth:1.7}),e.jsx("strong",{children:"Add cell"})]})]}),e.jsxs("aside",{className:"s-term-workspace-builder-source",children:[e.jsxs("span",{children:["Cell ",String(c+1).padStart(2,"0")]}),e.jsx("h3",{children:"Start something new"}),e.jsxs("div",{className:"s-term-workspace-builder-source-actions",children:[ft.map(x=>e.jsx("button",{type:"button",onClick:()=>E("pty",x.value),children:x.label},x.value)),m.filter(x=>x.value!=="pty").map(x=>e.jsxs("button",{type:"button",onClick:()=>E(x.value,"shell"),title:x.relayAttach?x.detail:`${x.detail} — Scout starts it; open it in ${x.label} to use it`,children:[x.label,!x.relayAttach&&e.jsx("sup",{"aria-label":"opens outside Scout",children:" ↗"})]},x.value))]}),e.jsxs("div",{className:"s-term-workspace-builder-source-head",children:[e.jsx("h3",{children:"Or use a live session"}),e.jsx("div",{className:"s-term-picker-views",role:"group","aria-label":"Session picker view",children:["list","table"].map(x=>e.jsx("button",{type:"button",className:v===x?"is-selected":"",onClick:()=>P(x),"aria-pressed":v===x,children:x==="list"?"List":"Table"},x))})]}),e.jsx("div",{className:"s-term-workspace-builder-sessions",children:k.length===0?e.jsx("span",{className:"s-term-workspace-builder-no-sessions",children:"No live sessions"}):e.jsx(xt,{items:k,view:v,sort:w,attachedIds:new Set,draggedTargetId:null,onSort:R,onAttach:x=>{const A=k.find(T=>T.session.id===x.session.id&&T.surface.sessionName===x.surface.sessionName);A&&W(A)}})})]})]})]})]})]})}function bt({item:s,attached:t,dragging:n,selected:i=!1,onSelect:d,onAttach:l,onOpen:m}){const u=e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"s-term-picker-grip","aria-hidden":"true",children:"⠿"}),e.jsxs("div",{className:"s-term-picker-item-main",children:[e.jsx("strong",{title:s.surface.sessionName,children:s.title}),e.jsx("span",{title:s.session.cwd??s.detail,children:s.cwdLabel||s.detail})]}),e.jsxs("div",{className:"s-term-picker-item-meta",children:[e.jsx("span",{children:s.surface.backend}),e.jsx("span",{children:us(s)}),e.jsx("span",{title:s.session.cwd??void 0,children:s.project})]})]});return e.jsxs("article",{className:`s-term-picker-item${t?" s-term-picker-item--attached":""}${n?" s-term-picker-item--dragging":""}${i?" s-term-picker-item--selected":""}${d?" s-term-picker-item--selectable":""}`,"data-picker-item-id":s.id,role:d?"listitem":void 0,children:[d?e.jsx("button",{type:"button",className:"s-term-picker-item-summary s-term-picker-item-select","aria-pressed":i,onClick:d,children:u}):e.jsx("div",{className:"s-term-picker-item-summary",children:u}),m&&e.jsx("button",{type:"button",className:"s-term-picker-add",onClick:m,children:"Open"}),e.jsx("button",{type:"button",className:"s-term-picker-add",onClick:()=>l(G(s)),disabled:t,children:t?"In grid":"Add"})]})}function cr({items:s,selectedId:t,attachedIds:n,draggedTargetId:i,onSelect:d,onAttach:l,navigate:m}){const u=s.find(k=>k.id===t)??s[0]??null;if(!u)return e.jsx("div",{className:"s-term-picker-empty",children:"No multiplexers discovered"});const c=ds(u.surface);return e.jsxs("div",{className:"s-term-picker-explorer",children:[e.jsx("div",{className:"s-term-picker-list s-term-picker-list--explorer",role:"list","aria-label":"Managed multiplexers",children:s.map(k=>{const b=G(k),j=ce(b);return e.jsx(bt,{item:k,attached:n.has(j),dragging:i===j,selected:k.id===u.id,onSelect:()=>d(k.id),onAttach:l,onOpen:()=>m({view:"terminal",terminalSessionId:k.session.id,terminalSurfaceKey:F(k.surface)})},k.id)})}),e.jsxs("section",{className:"s-term-picker-preview","aria-label":`${u.title} live preview`,children:[e.jsxs("div",{className:"s-term-picker-preview-title",children:[e.jsxs("div",{children:[e.jsx("strong",{children:u.title}),e.jsxs("span",{children:[u.surface.backend," · ",u.project," · ",us(u)]})]}),e.jsx("span",{children:fr(u,Ss(u,[]))})]}),c?e.jsx(ct,{surface:c,lines:28,columns:112,className:"s-term-multiplexer-peek"}):e.jsx("div",{className:"s-term-picker-empty",children:"This host does not expose a web preview"})]})]})}function dr({agents:s,items:t,attachedIds:n,onAttach:i,navigate:d}){return s.length===0?e.jsx("div",{className:"s-term-picker-empty",children:"No terminal-backed agents"}):e.jsx("div",{className:"s-term-picker-list","aria-label":"Terminal-backed agents",children:s.map(l=>{const m=ne(l),u=t.find(b=>Ss(b,[l])?.id===l.id)??null,c=u?G(u):null,k=c?n.has(ce(c)):!1;return e.jsxs("article",{className:`s-term-picker-item${k?" s-term-picker-item--attached":""}`,"data-picker-item-id":u?.id,children:[e.jsx("span",{className:"s-term-picker-grip","aria-hidden":"true",children:e.jsx("span",{className:"s-term-picker-agent-dot","data-state":l.state})}),e.jsxs("div",{className:"s-term-picker-item-main",children:[e.jsx("strong",{title:l.name,children:l.name}),e.jsx("span",{title:l.cwd??l.projectRoot??void 0,children:l.handle?`@${l.handle}`:ot(l.cwd??l.projectRoot)})]}),e.jsxs("div",{className:"s-term-picker-item-meta",children:[e.jsx("span",{children:m?.backend??l.harness}),e.jsx("span",{children:Kt(l.state)}),e.jsx("span",{children:br(l)})]}),e.jsx("button",{type:"button",className:"s-term-picker-add",onClick:()=>d({view:"terminal",agentId:l.id,mode:"takeover"}),children:"Open"}),e.jsx("button",{type:"button",className:"s-term-picker-add",onClick:()=>c&&i(c),disabled:!c||k,title:c?void 0:"This agent has no registered terminal surface to add",children:k?"In grid":"Add"})]},l.id)})})}function xt({items:s,view:t,sort:n,attachedIds:i,draggedTargetId:d,onSort:l,onAttach:m,navigate:u,groupManaged:c=!0}){const k=o.useMemo(()=>Xe(s,n),[s,n]),{managed:b,regular:j}=o.useMemo(()=>c?at(s):{managed:[],regular:s},[c,s]),N=o.useMemo(()=>Xe(b,n),[b,n]),M=o.useMemo(()=>Xe(j,n),[j,n]),O=f=>{u?.({view:"terminal",terminalSessionId:f.session.id,terminalSurfaceKey:F(f.surface)})},S=(f,v)=>{const w=ce(G(f));return e.jsx(bt,{item:f,attached:i.has(w),dragging:d===w,onAttach:m,onOpen:v&&u?()=>O(f):void 0},f.id)};return t==="table"?e.jsx("div",{className:"s-term-picker-table-wrap",children:e.jsxs("table",{className:"s-term-picker-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[ln.map(f=>e.jsx("th",{scope:"col","aria-sort":n.column===f.id?n.direction==="asc"?"ascending":"descending":"none",children:e.jsxs("button",{type:"button",onClick:()=>l(f.id),children:[e.jsx("span",{children:f.label}),e.jsx("em",{"aria-hidden":"true",children:n.column===f.id?n.direction==="asc"?"▲":"▼":"·"})]})},f.id)),e.jsx("th",{scope:"col","aria-label":"Place"})]})}),e.jsx("tbody",{children:k.map(f=>{const v=ce(G(f)),w=on(f);return e.jsxs("tr",{"data-picker-item-id":f.id,className:i.has(v)?"is-attached":void 0,children:[e.jsx("td",{title:f.surface.sessionName,children:f.title}),e.jsx("td",{children:f.surface.backend}),e.jsx("td",{children:us(f)}),e.jsx("td",{title:f.session.cwd??void 0,children:f.project}),e.jsx("td",{children:w?mn(w):"—"}),e.jsx("td",{children:e.jsx("button",{type:"button",className:"s-term-picker-add",onClick:()=>m(G(f)),disabled:i.has(v),children:i.has(v)?"In grid":"Add"})})]},f.id)})})]})}):e.jsxs("div",{className:"s-term-picker-list","aria-label":"Available terminals",children:[N.length>0&&e.jsxs("section",{className:"s-term-picker-group","aria-label":"Managed sessions",children:[e.jsx("h3",{className:"s-term-picker-group-title",children:"Managed sessions"}),N.map(f=>S(f,!0))]}),N.length>0&&M.length>0?e.jsxs("section",{className:"s-term-picker-group","aria-label":"Terminals",children:[e.jsx("h3",{className:"s-term-picker-group-title",children:"Terminals"}),M.map(f=>S(f,!1))]}):M.map(f=>S(f,!1))]})}function mr({tile:s,navigate:t,onClose:n,resolution:i,onRevive:d,live:l=!1}){if(s.kind==="registered")return s.target.surface.backend==="herdr"?e.jsx(Vs,{tileId:s.id,backend:"herdr",sessionName:s.target.surface.sessionName,live:s.target.surface.state==="live",onClose:n,navigate:t}):e.jsx(pr,{tile:s,navigate:t,onClose:n});if(s.kind==="unavailable"){const m=i?.status==="revivable"&&!!d;return e.jsxs("section",{className:"s-term-workspace-tile s-term-workspace-tile--unavailable","aria-label":"Unavailable terminal session",children:[e.jsxs("div",{className:"s-term-bar",children:[e.jsxs("div",{className:"s-term-bar-left",children:[e.jsx("span",{className:"s-term-workspace-tile-mark",children:e.jsx(B,{size:14,strokeWidth:1.8})}),e.jsx("span",{className:"s-term-workspace-tile-name",children:"Not running"})]}),e.jsx("div",{className:"s-term-bar-actions",children:e.jsx("button",{type:"button",className:"s-term-icon-button s-term-icon-button--danger",onClick:()=>n(s.id),title:"Remove cell","aria-label":"Remove cell",children:e.jsx(ye,{size:14,strokeWidth:1.8})})})]}),e.jsxs("div",{className:"s-term-workspace-unavailable-body",children:[e.jsx(B,{size:22,strokeWidth:1.5}),e.jsx("strong",{children:m?"This tile is not running.":"This saved session is not currently live."}),e.jsx("span",{children:i?.detail??"Show the terminal picker to replace it, or wait for the session to reconnect."}),m&&e.jsx("button",{type:"button",className:"s-term-workspace-action s-term-workspace-action--primary",onClick:()=>d?.(s.id),children:"Start it again"})]})]})}return!lt(s.backend)&&s.backend!=="pty"?e.jsx(Vs,{tileId:s.id,backend:s.backend,sessionName:s.sessionName,live:l,onClose:n,navigate:t}):e.jsx(ur,{tile:s,navigate:t,onClose:n})}function Vs({tileId:s,backend:t,sessionName:n,live:i,onClose:d,navigate:l}){const{hosts:m}=ms(),u=Pn(m,t),[c,k]=o.useState("idle"),[b,j]=o.useState(null),N=t==="herdr",{topology:M}=Qt(N?n??null:null,{enabled:N&&i}),O=o.useCallback(()=>{n&&(k("starting"),j(null),Zt(t,{sessionName:n}).then(()=>k("idle")).catch(w=>{k("failed"),j(w instanceof Error?w.message:String(w))}))},[t,n]),S=o.useCallback(()=>{if(!l||!n)return;const w=Jt(t,n);w&&l({view:"terminal",terminalSurfaceKey:w})},[l,t,n]),f=o.useCallback(()=>{!l||!n||l(en(n))},[l,n]),v=N&&M?.running?M.workspaces.flatMap(w=>w.tabs):[];return e.jsxs("section",{className:"s-term-workspace-tile s-term-workspace-tile--hosted","aria-label":`${u?.label??t} session`,children:[e.jsxs("div",{className:"s-term-bar",children:[e.jsxs("div",{className:"s-term-bar-left",children:[e.jsx("span",{className:"s-term-workspace-tile-mark",children:e.jsx(B,{size:14,strokeWidth:1.8})}),e.jsx("span",{className:"s-term-workspace-tile-name",children:u?.label??t})]}),e.jsxs("div",{className:"s-term-bar-meta",children:[e.jsx("span",{className:"s-term-label",children:i?"running":"not running"}),n&&e.jsx("span",{className:"s-term-session",title:n,children:n})]}),e.jsxs("div",{className:"s-term-bar-actions",children:[N&&i&&n&&l&&e.jsx("button",{type:"button",className:"s-term-icon-button",onClick:f,title:"Enter — open a live web terminal attached to this session","aria-label":"Enter — open a live web terminal attached to this session",children:e.jsx(hs,{size:14,strokeWidth:1.8})}),e.jsx("button",{type:"button",className:"s-term-icon-button s-term-icon-button--danger",onClick:()=>d(s),title:"Remove cell","aria-label":"Remove cell",children:e.jsx(ye,{size:14,strokeWidth:1.8})})]})]}),v.length>0?e.jsx("button",{type:"button",className:"s-term-workspace-hosted-body s-term-workspace-hosted-body--link",onClick:S,children:v.map(w=>{const P=sn(w);return e.jsxs("span",{className:"s-term-workspace-hosted-tab",children:[e.jsx("span",{className:"s-term-workspace-hosted-tab-dots",children:P.statuses.map((R,E)=>e.jsx(tn,{status:R},`${w.tabId}:${E}`))}),e.jsx("span",{className:"s-term-workspace-hosted-tab-label",children:P.label}),e.jsx("span",{className:"s-term-workspace-hosted-tab-count",children:P.statuses.length})]},w.tabId)})}):e.jsxs("div",{className:"s-term-workspace-unavailable-body",children:[e.jsx(B,{size:22,strokeWidth:1.5}),e.jsx("strong",{children:i?`Running in ${u?.label??t}`:"Not running yet"}),e.jsx("span",{children:i?`Scout keeps this session for you. Open it in ${u?.label??t} to use it.`:`Scout can start a ${u?.label??t} session and keep it for you.`}),!i&&e.jsx("button",{type:"button",className:"s-term-workspace-action s-term-workspace-action--primary",onClick:O,disabled:c==="starting"||!n,children:c==="starting"?"Starting…":"Start it"}),b&&e.jsx("code",{children:b})]})]})}function ur({tile:s,navigate:t,onClose:n}){const i=o.useRef(null),d=is(),l=ls(),m=ws(s.backend,s.agent),u=nr(s),c=["scout-terminal-workspace",s.id,s.backend,s.agent,s.sessionName??"pty"].join("-"),k=ps({url:d,healthUrl:l,autoConnect:!0,sessionKey:c,backend:s.backend,...s.sessionName?{terminalSession:s.sessionName}:{},...s.backend==="tmux"&&s.sessionName?{tmuxSession:s.sessionName}:{},...s.backend==="zellij"&&s.sessionName?{zellijSession:s.sessionName}:{},...s.backend==="zellij"&&s.zellijSocketDir?{zellijSocketDir:s.zellijSocketDir}:{},...s.backend==="herdr"&&s.sessionName?{tmuxSession:s.sessionName}:{},agent:s.agent,controlMode:"takeover"});ke(()=>{k.resize(os,cs)},[k.resize]);const b=o.useCallback(()=>{u&&kt(u,t)},[t,u]);return e.jsx("section",{className:"s-term-workspace-tile","aria-label":m.title,children:e.jsxs("div",{className:"s-term s-term--embedded",children:[e.jsxs("div",{className:"s-term-bar s-term-bar--fresh",children:[e.jsxs("div",{className:"s-term-bar-left",children:[e.jsx("span",{className:"s-term-workspace-tile-mark",children:e.jsx(B,{size:14,strokeWidth:1.8})}),e.jsx("span",{className:"s-term-workspace-tile-name",children:m.title})]}),e.jsxs("div",{className:"s-term-bar-meta",children:[e.jsx("span",{className:"s-term-label",children:s.backend}),e.jsx("span",{className:"s-term-session",children:m.detail})]}),e.jsxs("div",{className:"s-term-bar-actions",children:[e.jsx("button",{type:"button",className:"s-term-icon-button",onClick:()=>k.restart(),title:"Restart terminal","aria-label":"Restart terminal",children:e.jsx(fs,{size:14,strokeWidth:1.8})}),e.jsx("button",{type:"button",className:"s-term-icon-button",onClick:b,title:"Open terminal in a new window","aria-label":"Open terminal in a new window",children:e.jsx(ks,{size:14,strokeWidth:1.8})}),e.jsx("button",{type:"button",className:"s-term-icon-button s-term-icon-button--danger",onClick:()=>n(s.id),title:"Close tile","aria-label":"Close tile",children:e.jsx(ye,{size:14,strokeWidth:1.8})})]})]}),e.jsx("div",{ref:i,className:"s-term-body",onMouseDown:()=>{i.current?.querySelector(".xterm-helper-textarea")?.focus(),i.current?.querySelector(".xterm")?.focus()},children:e.jsx(js,{relay:k,quiet:!0,configItems:[{label:"backend",value:s.backend},{label:"agent",value:s.agent},...s.sessionName?[{label:"session",value:s.sessionName}]:[],...s.zellijSocketDir?[{label:"socket",value:s.zellijSocketDir}]:[],{label:"ws",value:d},{label:"health",value:l}]})})]})})}function pr({tile:s,navigate:t,onClose:n}){const i=o.useCallback(()=>{kt(rr(s.target),t)},[t,s.target]);return e.jsx("section",{className:"s-term-workspace-tile","aria-label":s.target.surface.sessionName,children:e.jsx(gs,{agent:null,mode:"takeover",navigate:t,registeredTarget:s.target,embedded:!0,tileActions:e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:"s-term-icon-button",onClick:i,title:"Open terminal in a new window","aria-label":"Open terminal in a new window",children:e.jsx(ks,{size:14,strokeWidth:1.8})}),e.jsx("button",{type:"button",className:"s-term-icon-button s-term-icon-button--danger",onClick:()=>n(s.id),title:"Close tile","aria-label":"Close tile",children:e.jsx(ye,{size:14,strokeWidth:1.8})})]})})})}function hr(s){return[...s].filter(t=>!t.retiredFromFleet).sort((t,n)=>{const i=+!!ne(n)-+!!ne(t);if(i!==0)return i;const d=(n.updatedAt??0)-(t.updatedAt??0);return d!==0?d:t.name.localeCompare(n.name)})}function Ss(s,t){const n=F(s.surface),i=t.find(l=>{const m=ne(l);return m?tt(m,n):!1});if(i)return i;const d=new Set([s.session.id,s.session.sourceSessionId,s.surface.sessionName].map(l=>l.trim()).filter(Boolean));return t.find(l=>[l.harnessSessionId,l.conversationId,l.terminalSurface?.sessionName].some(m=>m&&d.has(m)))??null}function fr(s,t){const n=Gs(s.session.metadata,"currentCommand"),i=ot(Gs(s.session.metadata,"currentPath"));if(n&&i)return`${n} in ${i}`;if(n)return`running ${n}`;if(t?.handle)return`owned by @${t.handle}`;if(t)return`owned by ${t.name}`;if(s.surface.paneId)return`pane ${s.surface.paneId}`;const d=kr(s.session.metadata,"windows");return d!==null?`${d} window${d===1?"":"s"}`:`${s.surface.backend} surface`}function Gs(s,t){const n=s?.[t];return typeof n=="string"&&n.trim()?n.trim():null}function kr(s,t){const n=s?.[t];return typeof n=="number"&&Number.isFinite(n)?n:null}function br(s){return s.project??Js(s.projectRoot)??Js(s.cwd)??s.workspaceQualifier??s.definitionId}function Js(s){const t=s?.trim().replace(/\/+$/u,"");return t?t.split("/").pop()||t:null}function xr({route:s,navigate:t}){const n=o.useRef(null),i=s.terminalBackend??"pty",d=s.terminalAgent??"shell",l=s.terminalTabId??"adhoc",m=i==="pty"?void 0:`scout-${i}-${l}`,u=s.terminalSessionName??m,c=is(),k=ls(),b=ws(i,d),j=["scout-terminal-new",i,d,u??l].join("-"),N=ps({url:c,healthUrl:k,autoConnect:!0,sessionKey:j,backend:i,...u?{terminalSession:u}:{},...i==="tmux"&&u?{tmuxSession:u}:{},...i==="zellij"&&u?{zellijSession:u}:{},...i==="zellij"&&s.zellijSocketDir?{zellijSocketDir:s.zellijSocketDir}:{},...i==="herdr"&&u?{tmuxSession:u}:{},agent:d,controlMode:"takeover"}),M=o.useRef([]),O=o.useRef({status:N.status,sendLine:N.sendLine});return O.current={status:N.status,sendLine:N.sendLine},ke(()=>{const S=f=>{const v=Un(f);if(!v)return;const w=O.current;if(w.status==="connected"){w.sendLine(v);return}M.current=[...M.current.slice(-15),v]};return window.addEventListener(Us,S),()=>window.removeEventListener(Us,S)},[]),ke(()=>{if(N.status!=="connected"||M.current.length===0)return;const S=M.current;M.current=[];for(const f of S)N.sendLine(f)},[N.sendLine,N.status]),ke(()=>{N.resize(os,cs)},[N.resize]),e.jsxs("div",{className:"s-term",children:[e.jsxs("div",{className:"s-term-bar",children:[e.jsx(xe,{slot:"terminal",fallback:{view:"terminal"},navigate:t,className:"s-term-back"}),e.jsx("span",{className:"s-term-label",children:b.title}),e.jsx("div",{className:"s-term-status",children:b.detail}),e.jsx("div",{className:"s-term-actions",children:e.jsx("button",{type:"button",className:"s-term-icon-button",onClick:()=>N.restart(),title:"Restart terminal","aria-label":"Restart terminal",children:e.jsx(fs,{size:14,strokeWidth:1.8})})})]}),e.jsx("div",{ref:n,className:"s-term-body",onMouseDown:()=>{n.current?.querySelector(".xterm-helper-textarea")?.focus(),n.current?.querySelector(".xterm")?.focus()},children:e.jsx(js,{relay:N,quiet:!0,configItems:[{label:"backend",value:i},{label:"agent",value:d},...u?[{label:"session",value:u}]:[],...s.zellijSocketDir?[{label:"socket",value:s.zellijSocketDir}]:[],{label:"ws",value:c},{label:"health",value:k}]})})]})}function ws(s,t){const n=t==="shell"?"Shell":t==="codex"?"Codex":t==="pi"?"Pi":"Claude";return s==="pty"?{title:n,detail:"fresh PTY tab"}:{title:`${n} ${s}`,detail:`fresh ${s} backed tab`}}function yr({agentId:s,agent:t,mode:n,navigate:i,children:d}){const l=Jn(s,t,n);return l.ready?e.jsx(e.Fragment,{children:d}):e.jsx(Qn,{agent:t,agentId:s,color:Zs(t.name),navigate:i,label:l.label,status:l.status,onRetry:l.onRetry})}function jr({navigate:s}){return e.jsx("div",{className:"s-term",children:e.jsxs("div",{className:"s-term-bar",children:[e.jsx(xe,{slot:"terminal",fallback:{view:"terminal"},navigate:s,className:"s-term-back"}),e.jsx("span",{className:"s-term-label",children:"Terminal"}),e.jsx("div",{className:"s-term-status",children:"Resolving agent..."})]})})}function gr({route:s,navigate:t}){const{agentId:n,mode:i,terminalSessionId:d,terminalSurfaceKey:l}=s,{agents:m}=Xs();if(s.terminalBackend)return e.jsx(xr,{route:s,navigate:t});const u=s.terminalSurfaceKey?st(s.terminalSurfaceKey):null;if(!n&&u?.backend==="herdr")return e.jsx(Xt,{sessionName:u.hostSession,navigate:t});if(!n)return!d&&!l?e.jsx(ar,{navigate:t}):e.jsx(er,{terminalSessionId:d,terminalSurfaceKey:l,mode:i,navigate:t});const c=m.find(j=>j.id===n)??null;if(!c)return e.jsx(jr,{navigate:t});const k=ne(c),b=k?`${k.backend}:${c.id}:${k.sessionName}:${i??"takeover"}`:`takeover:${n}:${i??"takeover"}`;return e.jsx(yr,{agentId:n,agent:c,mode:i,navigate:t,children:e.jsx(gs,{agentId:n,agent:c,mode:i,navigate:t})},b)}function Ca({agentId:s,mode:t,terminalSessionId:n,terminalSurfaceKey:i,navigate:d}){const l={view:"terminal",agentId:s,mode:t,terminalSessionId:n,terminalSurfaceKey:i};return e.jsx(gr,{route:l,navigate:d})}export{gr as TerminalContent,Ca as TerminalScreen};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e,j as l,a as A,b as C,S as k}from"./index-C1VaWNuD.js";import{L as y,D as T,f as L,S as x,C as R}from"./Provider-D0bB7q6y.js";import{a as P}from"./api-Co9aQ2Jw.js";import{i as I}from"./colors-BtO5_zlx.js";import{r as j,a as D}from"./router-kfcaYqZr.js";import{TerminalContent as H}from"./Terminal-DWyZTZdY.js";import"./sse-B29iGBnw.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D7kGGyK_.js";import"./NewChatComposer-D2Ah4T-W.js";import"./runtime-picker-C20lTGhV.js";import"./scout-voice-Cg1qfepC.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DmUG_YC7.js";import"./createLucideIcon-Dv8H8m7J.js";import"./conversation-model-C2KuZUXc.js";import"./time-Dhsh_2EG.js";import"./index-Cx6Gbr6n.js";import"./HarnessMark-DttReffF.js";import"./NewChatOrigin-DCn5cWPZ.js";import"./keyboard-nav-B8sQ_8IF.js";import"./x-DgmmnPKt.js";import"./chevron-down-D120PY4g.js";import"./search-FB2vVxCp.js";import"./file-text-BHro8MkG.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-D8iB6SMt.js";import"./TextDocumentSurface-2X1Gw4eA.js";import"./chevron-right-CowuvuE6.js";import"./code-xml-CkkNdRmu.js";import"./arrow-left-eToA6GxC.js";import"./arrow-right-DTX42clh.js";import"./chunk-HRAB3GC3-KjjrTLCU.js";import"./perf-PX8Rx0EP.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-Bdt2W3Y4.js";/* empty css */import"./clipboard-e3fSpeo7.js";import"./terminal-relay-CXHMdain.js";import"./HerdrSession-DsuxCtfX.js";import"./chunk-YOZR3KYS-CrCgXw9l.js";import"./arrow-down-BAGkhHA6.js";import"./terminal-UDy4lzV1.js";import"./refresh-cw-Bkh7Cvnd.js";import"./check-Dz2SRHft.js";import"./copy-BzdzWsQd.js";import"./eye-C9cGk5z6.js";import"./session-table-uJh3v-ly.js";import"./chunk-JTPDIGGW-COJ00z94.js";import"./terminal-takeover-BMeBjBB2.js";import"./BackToPicker-BHicJyfc.js";import"./TmuxPeek-CqTJRhkI.js";/* empty css */import"./TerminalHeaderMount-CY7uIWBg.js";import"./external-link-BvX5PfLh.js";import"./plus-BWKhylds.js";import"./zap-Bcja1lHG.js";function g(){const t=new URLSearchParams(window.location.search).get("route")?.trim()||"/terminal",s=j(t);return s.view==="terminal"?s:{view:"terminal"}}function S(o){const t=new URLSearchParams(window.location.search);return t.set("route",D(o)),t.has("profile")||t.set("profile","macos.terminal"),`${window.location.pathname}?${t.toString()}${window.location.hash}`}function Ue(){const[o,t]=e.useState(()=>g()),s=!!(o.terminalBackend||o.agentId||o.terminalSessionId||o.terminalSurfaceKey);e.useEffect(()=>{const i=()=>t(g());return window.addEventListener("popstate",i),()=>window.removeEventListener("popstate",i)},[]);const n=e.useCallback(i=>{if(i.view!=="terminal"){const p={view:"terminal"},a=S(p);window.history.pushState(null,"",a),t(p);return}const c=S(i);window.history.pushState(null,"",c),t(i)},[]);return l.jsx(M,{route:o,navigate:n,children:l.jsx("div",{className:`s-terminal-embed${s?" s-terminal-embed--surface":""}`,children:l.jsx(H,{route:o,navigate:n})})})}function M({route:o,navigate:t,children:s}){const[n,i]=e.useState([]),[c,p]=e.useState({status:"checking",message:null,lastCheckedAt:null}),a=e.useRef(null),u=e.useMemo(()=>A(),[]),f=e.useMemo(()=>C(),[]),b=e.useMemo(()=>({...u==="light"?y:T,...f??{}}),[u,f]),w=e.useCallback(()=>{p({status:"online",message:null,lastCheckedAt:Date.now()})},[]),h=e.useCallback(r=>{p({status:"offline",message:L(r),lastCheckedAt:Date.now()})},[]),m=e.useCallback(async()=>{if(a.current)return a.current;const r=(async()=>{try{i(await P("/api/agents")),w()}catch(d){h(d)}})();a.current=r;try{await r}finally{a.current=null}},[h,w]);e.useEffect(()=>{m()},[m]),e.useEffect(()=>{const r=()=>{document.visibilityState!=="hidden"&&m()},d=window.setInterval(r,15e3);return window.addEventListener("focus",r),document.addEventListener("visibilitychange",r),()=>{window.clearInterval(d),window.removeEventListener("focus",r),document.removeEventListener("visibilitychange",r)}},[m]);const v=e.useMemo(()=>n.filter(r=>I(r.state)).length,[n]),E=e.useMemo(()=>({route:o,navigate:t,navigateBack:()=>{typeof window<"u"&&window.history.back()},canNavigateBack:typeof window<"u"&&window.history.length>1,agents:n,agentsLoaded:c.status!=="checking",onlineCount:v,apiConnection:c,appearanceDetails:k,updateAppearanceDetails:()=>{},reload:m,onboarding:null,operatorName:null,refreshOnboarding:async()=>{},onboardingSkipped:!0,skipOnboarding:()=>{},settingsOpen:!1,openSettings:()=>{},closeSettings:()=>{},scoutbotAgentId:"scoutbot",scoutbotConversationId:null,applyScoutbotUiAction:()=>{},selectedBrokerAttempt:null,inspectBrokerAttempt:()=>{},clearBrokerAttempt:()=>{},selectedKnowledgeHit:null,selectedKnowledgeQuery:"",inspectKnowledgeHit:()=>{},clearKnowledgeHit:()=>{},focusedSession:null,focusSession:()=>{},openFilePreview:()=>{},closeFilePreview:()=>{},openContextCapture:()=>{},closeContextCapture:()=>{}}),[n,c,t,v,m,o]);return l.jsx(x.Provider,{value:E,children:l.jsx("div",{"data-scout-theme":u,"data-scout-theme-mode":u,style:b,children:l.jsx(R,{children:s})})})}export{Ue as TerminalEmbedScreen};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e,j as a}from"./index-C1VaWNuD.js";import{r as c}from"./index-Cx6Gbr6n.js";const u="scout-terminal-header-slot",d=typeof window>"u"?e.useEffect:e.useLayoutEffect;function r(){return typeof document>"u"?null:document.getElementById(u)}function m({children:t}){const[o,s]=e.useState(r);d(()=>{s(r())},[]);const n=o?.isConnected?o:null;return n?c.createPortal(t,n):a.jsx("div",{className:"s-term-inline-header","data-scout-terminal-header-fallback":"",children:t})}export{u as SCOUT_TERMINAL_HEADER_SLOT_ID,m as TerminalHeaderMount};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as c,j as e}from"./index-C1VaWNuD.js";import{D as F,F as T,a as E}from"./DocumentFocusViewer-D8iB6SMt.js";import{c as D,T as M}from"./TextDocumentSurface-2X1Gw4eA.js";import{a as R}from"./api-Co9aQ2Jw.js";import{C as L}from"./chevron-right-CowuvuE6.js";import{C as W}from"./chevron-down-D120PY4g.js";import{c as z}from"./createLucideIcon-Dv8H8m7J.js";import{F as B}from"./file-text-BHro8MkG.js";import"./x-DgmmnPKt.js";import"./perf-PX8Rx0EP.js";const A=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]],O=z("image",A),P=new Set(["png","jpg","jpeg","gif","webp","avif","svg"]),g=[{value:"all",label:"All"},{value:"plan",label:"Plans"},{value:"doc",label:"Docs"},{value:"code",label:"Code"},{value:"test",label:"Tests"},{value:"config",label:"Config"},{value:"asset",label:"Assets"}];function U(s){const t=s.split("/").pop()??s,l=t.lastIndexOf(".");return l>=0?t.slice(l+1).toLowerCase():""}function v(s){return P.has(U(s.path))}function _(s){const t={type:"dir",children:[]};for(const l of s){const a=l.path.split("/").filter(Boolean);if(a.length===0)continue;let n=t;for(let f=0;f<a.length-1;f+=1){const i=a[f],p=a.slice(0,f+1).join("/");let o=n.children.find(d=>d.type==="dir"&&d.name===i);o||(o={type:"dir",name:i,path:p,children:[]},n.children.push(o)),n=o}n.children.push({type:"file",name:a[a.length-1],path:l.path,material:l})}return b(t),N(t.children)}function b(s){if(s.type==="dir"){s.children.sort((t,l)=>t.type!==l.type?t.type==="dir"?-1:1:t.name.localeCompare(l.name));for(const t of s.children)b(t)}}function N(s){return s.map(t=>{if(t.type!=="dir")return t;let l=t;for(;l.children.length===1&&l.children[0].type==="dir";){const a=l.children[0];l={type:"dir",name:`${l.name}/${a.name}`,path:a.path,children:a.children}}return{...l,children:N(l.children)}})}function G(s){switch(s){case"added":return"A";case"modified":return"M";case"deleted":return"D";case"renamed":return"R";case"untracked":return"?";case"observed":return null}}function y({node:s,depth:t,selectedId:l,collapsed:a,onToggle:n,onSelect:f}){if(s.type==="dir"){const u=a.has(s.path);return e.jsxs(e.Fragment,{children:[e.jsxs("button",{type:"button",className:"s-work-files-tree-row s-work-files-tree-dir",style:{paddingLeft:`${8+t*12}px`},onClick:()=>n(s.path),children:[e.jsx("span",{className:"s-work-files-tree-chevron","aria-hidden":"true",children:u?e.jsx(L,{size:12,strokeWidth:1.8}):e.jsx(W,{size:12,strokeWidth:1.8})}),e.jsx("span",{className:"s-work-files-tree-icon","aria-hidden":"true",children:u?e.jsx(T,{size:12,strokeWidth:1.8}):e.jsx(E,{size:12,strokeWidth:1.8})}),e.jsx("span",{className:"s-work-files-tree-name",children:s.name||"/"})]}),!u&&s.children.map(m=>e.jsx(y,{node:m,depth:t+1,selectedId:l,collapsed:a,onToggle:n,onSelect:f},m.type==="dir"?`d:${m.path}`:`f:${m.material.id}`))]})}const i=s.material.id===l,p=v(s.material),o=G(s.material.status),d=s.material.status==="deleted";return e.jsxs("button",{type:"button",className:`s-work-files-tree-row s-work-files-tree-file${i?" s-work-files-tree-file-selected":""}`,style:{paddingLeft:`${8+t*12}px`},onClick:()=>f(s.material),disabled:d,title:s.path,children:[e.jsx("span",{className:"s-work-files-tree-chevron","aria-hidden":"true"}),e.jsx("span",{className:"s-work-files-tree-icon","aria-hidden":"true",children:p?e.jsx(O,{size:12,strokeWidth:1.8}):e.jsx(B,{size:12,strokeWidth:1.8})}),e.jsx("span",{className:"s-work-files-tree-name",children:s.name}),o&&e.jsx("span",{className:`s-work-files-tree-status s-work-files-tree-status-${s.material.status}`,"aria-label":s.material.status,children:o})]})}function V({path:s}){const t=s.split("/").filter(Boolean);if(t.length===0)return e.jsx("span",{className:"s-work-files-breadcrumb",children:s});const l=t[t.length-1],a=t.slice(0,-1).join("/");return e.jsxs("span",{className:"s-work-files-breadcrumb",children:[a&&e.jsxs("span",{className:"s-work-files-breadcrumb-folder",children:[a,"/"]}),e.jsx("span",{className:"s-work-files-breadcrumb-name",children:l})]})}function K({workId:s,material:t}){const l=v(t),[a,n]=c.useState(null),[f,i]=c.useState(null),[p,o]=c.useState(!1);if(c.useEffect(()=>{if(l){n(null),i(null),o(!1);return}let u=!1;return o(!0),i(null),n(null),R(`/api/work/${encodeURIComponent(s)}/material?materialId=${encodeURIComponent(t.id)}`).then(m=>{u||n(m)}).catch(m=>{u||i(m instanceof Error?m.message:String(m))}).finally(()=>{u||o(!1)}),()=>{u=!0}},[l,t.id,s]),l){const u=`/api/work/${encodeURIComponent(s)}/material/raw?materialId=${encodeURIComponent(t.id)}`;return e.jsx("div",{className:"s-work-files-pane s-work-files-pane-image",children:e.jsx("img",{src:u,alt:t.path,className:"s-work-files-image"})})}if(p&&!a)return e.jsx("div",{className:"s-work-files-pane-state",children:"Loading file…"});if(f)return e.jsx("div",{className:"s-work-files-pane-state s-work-files-pane-error",children:f});if(!a)return e.jsx("div",{className:"s-work-files-pane-state",children:"No content."});const d=D({id:a.materialId,title:a.title,uri:a.uri,mediaType:a.mediaType,value:a.content,readOnly:!0});return e.jsxs("div",{className:"s-work-files-pane",children:[e.jsx(M,{document:d,mode:d.kind==="markdown"?"preview":"read"}),a.truncated&&e.jsxs("div",{className:"s-work-files-pane-notice",children:["Preview truncated at ",Math.round(a.content.length/1024)," KB."]})]})}function re({workId:s,workTitle:t,materials:l,open:a,initialKind:n="all",onClose:f}){const i=c.useMemo(()=>l.filter(r=>r.status!=="deleted"),[l]),[p,o]=c.useState(n),[d,u]=c.useState(null),[m,C]=c.useState(()=>new Set);c.useEffect(()=>{a&&o(n)},[n,a]);const x=c.useMemo(()=>p==="all"?i:p==="plan"?i.filter(r=>r.kind==="plan"||r.kind==="spec"):i.filter(r=>r.kind===p),[i,p]),j=c.useMemo(()=>_(x),[x]);c.useEffect(()=>{if(!d&&x.length>0){u(x[0].id);return}d&&!x.some(r=>r.id===d)&&u(x[0]?.id??null)},[x,d]);const S=c.useCallback(r=>{u(r.id)},[]),I=c.useCallback(r=>{C(k=>{const h=new Set(k);return h.has(r)?h.delete(r):h.add(r),h})},[]),w=x.find(r=>r.id===d)??null,$=c.useMemo(()=>{const r={all:i.length};for(const k of g)k.value!=="all"&&(r[k.value]=i.filter(h=>k.value==="plan"?h.kind==="plan"||h.kind==="spec":h.kind===k.value).length);return r},[i]);return e.jsx(F,{open:a,kind:"code",document:null,title:`Files · ${i.length}`,eyebrow:"Work materials",subtitle:t,focusable:!0,onClose:f,body:e.jsxs("div",{className:"s-work-files-layout",children:[e.jsxs("aside",{className:"s-work-files-tree","aria-label":"File tree",children:[e.jsx("div",{className:"s-work-files-tree-filters",role:"tablist",children:g.map(r=>{const k=$[r.value]??0;if(r.value!=="all"&&k===0)return null;const h=r.value===p;return e.jsxs("button",{type:"button",role:"tab","aria-selected":h,className:`s-work-files-tree-filter${h?" s-work-files-tree-filter-active":""}`,onClick:()=>o(r.value),children:[e.jsx("span",{children:r.label}),e.jsx("span",{className:"s-work-files-tree-filter-count",children:k})]},r.value)})}),e.jsx("div",{className:"s-work-files-tree-list",children:j.length===0?e.jsx("div",{className:"s-work-files-tree-empty",children:"No files match this filter."}):j.map(r=>e.jsx(y,{node:r,depth:0,selectedId:d,collapsed:m,onToggle:I,onSelect:S},r.type==="dir"?`d:${r.path}`:`f:${r.material.id}`))})]}),e.jsx("section",{className:"s-work-files-content","aria-label":"File preview",children:w?e.jsxs(e.Fragment,{children:[e.jsxs("header",{className:"s-work-files-content-head",children:[e.jsx(V,{path:w.path}),e.jsxs("div",{className:"s-work-files-content-meta",children:[e.jsx("span",{children:w.kind}),e.jsx("span",{children:w.status}),w.diffStat&&e.jsxs("span",{children:["+",w.diffStat.additions," -",w.diffStat.deletions]})]})]}),e.jsx(K,{workId:s,material:w})]}):e.jsx("div",{className:"s-work-files-pane-state",children:"Select a file to preview."})})]})})}export{re as WorkFilesViewer};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import{c as Q}from"./createLucideIcon-Dv8H8m7J.js";import{r as g,j as h}from"./index-C1VaWNuD.js";import{m as j,p as pt,a as rs,n as Z,i as as,b as Ce,d as De,r as Rt,t as Re,f as R,e as ot,S as ls,g as B,h as Le,j as xt,k as Ae,o as D,q as Y,s as vt,v as Ut,M as cs,w as Me,P as Ve,x as us,y as Ne,z as _t,A as hs,B as et,C as ds,c as fs}from"./use-reduced-motion-CPoX8iV2.js";import{i as _,b as ms,r as ps,s as Ht,p as Lt,d as gs,e as Be,f as ys,h as q,t as X,j as bt,k as Ft,l as xs,m as vs,n as bs,o as Ps,q as Nt,u as Pt,v as ws,w as ks,x as Ie,y as Ts,z as Ss,A as Es,B as js,C as Wt,D as Cs,F as ze,g as Ds,a as Rs,c as Ls}from"./gestures-YA5IIwp-.js";import{O as As,U as Ms,b as Vs}from"./Provider-D0bB7q6y.js";import{L as st}from"./loader-circle-DmUG_YC7.js";import{R as Oe}from"./radio-CxIXS1nU.js";import{b as Ns,M as Bs}from"./DocumentFocusViewer-D8iB6SMt.js";import{C as Is}from"./chevron-down-D120PY4g.js";import{P as zs}from"./plus-BWKhylds.js";import{S as Os,i as $s}from"./runtime-picker-C20lTGhV.js";import"./perf-PX8Rx0EP.js";import{B as Us}from"./bot-WxKXYtEX.js";import{d as _s}from"./colors-BtO5_zlx.js";const Hs=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]],Fs=Q("history",Hs);const Ws=[["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"M3 10a2 2 0 0 0 2 2h3",key:"1npucw"}],["path",{d:"M3 5v12a2 2 0 0 0 2 2h3",key:"x1gjn2"}]],Gs=Q("list-tree",Ws);const qs=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],Xs=Q("play",qs);const Ys=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],Gt=Q("settings-2",Ys);const Ks=[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]],Qn=Q("volume-2",Ks);const Zs=[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["line",{x1:"22",x2:"16",y1:"9",y2:"15",key:"1ewh16"}],["line",{x1:"16",x2:"22",y1:"9",y2:"15",key:"5ykzw1"}]],Jn=Q("volume-x",Zs);function Qs(t){return t==="x"||t==="y"?_[t]?null:(_[t]=!0,()=>{_[t]=!1}):_.x||_.y?null:(_.x=_.y=!0,()=>{_.x=_.y=!1})}function Bt(t){return ms(t)&&"ownerSVGElement"in t}const ht=new WeakMap;let dt;const $e=(t,e,i)=>(s,r)=>r&&r[0]?r[0][t+"Size"]:Bt(s)&&"getBBox"in s?s.getBBox()[e]:s[i],Js=$e("inline","width","offsetWidth"),ti=$e("block","height","offsetHeight");function ei({target:t,borderBoxSize:e}){ht.get(t)?.forEach(i=>{i(t,{get width(){return Js(t,e)},get height(){return ti(t,e)}})})}function si(t){t.forEach(ei)}function ii(){typeof ResizeObserver>"u"||(dt=new ResizeObserver(si))}function ni(t,e){dt||ii();const i=ps(t);return i.forEach(s=>{let r=ht.get(s);r||(r=new Set,ht.set(s,r)),r.add(e),dt?.observe(s)}),()=>{i.forEach(s=>{const r=ht.get(s);r?.delete(e),r?.size||dt?.unobserve(s)})}}const ft=new Set;let K;function oi(){K=()=>{const t={get width(){return window.innerWidth},get height(){return window.innerHeight}};ft.forEach(e=>e(t))},window.addEventListener("resize",K)}function ri(t){return ft.add(t),K||oi(),()=>{ft.delete(t),!ft.size&&typeof K=="function"&&(window.removeEventListener("resize",K),K=void 0)}}function qt(t,e){return typeof t=="function"?ri(t):ni(t,e)}function ai(t){return Bt(t)&&t.tagName==="svg"}function At(t,e){t.min=e.min,t.max=e.max}function z(t,e){At(t.x,e.x),At(t.y,e.y)}function Xt(t,e){t.translate=e.translate,t.scale=e.scale,t.originPoint=e.originPoint,t.origin=e.origin}const Ue=1e-4,li=1-Ue,ci=1+Ue,_e=.01,ui=0-_e,hi=0+_e;function L(t){return t.max-t.min}function di(t,e,i){return Math.abs(t-e)<=i}function Yt(t,e,i,s=.5){t.origin=s,t.originPoint=j(e.min,e.max,t.origin),t.scale=L(i)/L(e),t.translate=j(i.min,i.max,t.origin)-t.originPoint,(t.scale>=li&&t.scale<=ci||isNaN(t.scale))&&(t.scale=1),(t.translate>=ui&&t.translate<=hi||isNaN(t.translate))&&(t.translate=0)}function it(t,e,i,s){Yt(t.x,e.x,i.x,s?s.originX:void 0),Yt(t.y,e.y,i.y,s?s.originY:void 0)}function Kt(t,e,i,s=0){const r=s?j(i.min,i.max,s):i.min;t.min=r+e.min,t.max=t.min+L(e)}function fi(t,e,i,s){Kt(t.x,e.x,i.x,s?.x),Kt(t.y,e.y,i.y,s?.y)}function Zt(t,e,i,s=0){const r=s?j(i.min,i.max,s):i.min;t.min=e.min-r,t.max=t.min+L(e)}function gt(t,e,i,s){Zt(t.x,e.x,i.x,s?.x),Zt(t.y,e.y,i.y,s?.y)}function Qt(t,e,i,s,r){return t-=e,t=Ht(t,1/i,s),r!==void 0&&(t=Ht(t,1/r,s)),t}function mi(t,e=0,i=1,s=.5,r,a=t,n=t){if(pt.test(e)&&(e=parseFloat(e),e=j(n.min,n.max,e/100)-n.min),typeof e!="number")return;let o=j(a.min,a.max,s);t===a&&(o-=e),t.min=Qt(t.min,e,i,o,r),t.max=Qt(t.max,e,i,o,r)}function Jt(t,e,[i,s,r],a,n){mi(t,e[i],e[s],e[r],e.scale,a,n)}const pi=["x","scaleX","originX"],gi=["y","scaleY","originY"];function te(t,e,i,s){Jt(t.x,e,pi,i?i.x:void 0,s?s.x:void 0),Jt(t.y,e,gi,i?i.y:void 0,s?s.y:void 0)}function ee(t){return t.translate===0&&t.scale===1}function He(t){return ee(t.x)&&ee(t.y)}function se(t,e){return t.min===e.min&&t.max===e.max}function yi(t,e){return se(t.x,e.x)&&se(t.y,e.y)}function ie(t,e){return Math.round(t.min)===Math.round(e.min)&&Math.round(t.max)===Math.round(e.max)}function Fe(t,e){return ie(t.x,e.x)&&ie(t.y,e.y)}function ne(t){return L(t.x)/L(t.y)}function oe(t,e){return t.translate===e.translate&&t.scale===e.scale&&t.originPoint===e.originPoint}function O(t){return[t("x"),t("y")]}function xi(t,e,i){let s="";const r=t.x.translate/e.x,a=t.y.translate/e.y,n=i?.z||0;if((r||a||n)&&(s=`translate3d(${r}px, ${a}px, ${n}px) `),(e.x!==1||e.y!==1)&&(s+=`scale(${1/e.x}, ${1/e.y}) `),i){const{transformPerspective:c,rotate:u,pathRotation:d,rotateX:f,rotateY:p,skewX:x,skewY:y}=i;c&&(s=`perspective(${c}px) ${s}`),u&&(s+=`rotate(${u}deg) `),d&&(s+=`rotate(${d}deg) `),f&&(s+=`rotateX(${f}deg) `),p&&(s+=`rotateY(${p}deg) `),x&&(s+=`skewX(${x}deg) `),y&&(s+=`skewY(${y}deg) `)}const o=t.x.scale*e.x,l=t.y.scale*e.y;return(o!==1||l!==1)&&(s+=`scale(${o}, ${l})`),s||"none"}const We=["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"],vi=We.length,re=t=>typeof t=="string"?parseFloat(t):t,ae=t=>typeof t=="number"||rs.test(t);function bi(t,e,i,s,r,a){r?(t.opacity=j(0,i.opacity??1,Pi(s)),t.opacityExit=j(e.opacity??1,0,wi(s))):a&&(t.opacity=j(e.opacity??1,i.opacity??1,s));for(let n=0;n<vi;n++){const o=We[n];let l=le(e,o),c=le(i,o);if(l===void 0&&c===void 0)continue;l||(l=0),c||(c=0),l===0||c===0||ae(l)===ae(c)?(t[o]=Math.max(j(re(l),re(c),s),0),(pt.test(c)||pt.test(l))&&(t[o]+="%")):t[o]=c}(e.rotate||i.rotate)&&(t.rotate=j(e.rotate||0,i.rotate||0,s))}function le(t,e){return t[e]!==void 0?t[e]:t.borderRadius}const Pi=Ge(0,.5,gs),wi=Ge(.5,.95,Z);function Ge(t,e,i){return s=>s<t?0:s>e?1:i(Lt(t,e,s))}function ki(t,e,i){const s=as(t)?t:Ce(t);return s.start(Be("",s,e,i)),s.animation}const Ti=(t,e)=>t.depth-e.depth;class Si{constructor(){this.children=[],this.isDirty=!1}add(e){De(this.children,e),this.isDirty=!0}remove(e){Rt(this.children,e),this.isDirty=!0}forEach(e){this.isDirty&&this.children.sort(Ti),this.isDirty=!1,this.children.forEach(e)}}function Ei(t,e){const i=Re.now(),s=({timestamp:r})=>{const a=r-i;a>=e&&(ot(s),t(a-e))};return R.setup(s,!0),()=>ot(s)}class ji{constructor(){this.members=[]}add(e){De(this.members,e);for(let i=this.members.length-1;i>=0;i--){const s=this.members[i];if(s===e||s===this.lead||s===this.prevLead)continue;const r=s.instance;(!r||r.isConnected===!1)&&!s.snapshot&&(Rt(this.members,s),s.unmount())}e.scheduleRender()}remove(e){if(Rt(this.members,e),e===this.prevLead&&(this.prevLead=void 0),e===this.lead){const i=this.members[this.members.length-1];i&&this.promote(i)}}relegate(e){for(let i=this.members.indexOf(e)-1;i>=0;i--){const s=this.members[i];if(s.isPresent!==!1&&s.instance?.isConnected!==!1)return this.promote(s),!0}return!1}promote(e,i){const s=this.lead;if(e!==s&&(this.prevLead=s,this.lead=e,e.show(),s)){s.updateSnapshot(),e.scheduleRender();const{layoutDependency:r}=s.options,{layoutDependency:a}=e.options;(r===void 0||r!==a)&&(e.resumeFrom=s,i&&(s.preserveOpacity=!0),s.snapshot&&(e.snapshot=s.snapshot,e.snapshot.latestValues=s.animationValues||s.latestValues),e.root?.isUpdating&&(e.isLayoutDirty=!0)),e.options.crossfade===!1&&s.hide()}}exitAnimationComplete(){this.members.forEach(e=>{e.options.onExitComplete?.(),e.resumingFrom?.options.onExitComplete?.()})}scheduleRender(){this.members.forEach(e=>e.instance&&e.scheduleRender(!1))}removeLeadSnapshot(){this.lead?.snapshot&&(this.lead.snapshot=void 0)}}const mt={hasAnimatedSinceResize:!0,hasEverUpdated:!1},wt=["","X","Y","Z"],Ci=1e3;let Di=0;function kt(t,e,i,s){const{latestValues:r}=e;r[t]&&(i[t]=r[t],e.setStaticValue(t,0),s&&(s[t]=0))}function qe(t){if(t.hasCheckedOptimisedAppear=!0,t.root===t)return;const{visualElement:e}=t.options;if(!e)return;const i=Ps(e);if(window.MotionHasOptimisedAnimation(i,"transform")){const{layout:r,layoutId:a}=t.options;window.MotionCancelOptimisedAnimation(i,"transform",R,!(r||a))}const{parent:s}=t;s&&!s.hasCheckedOptimisedAppear&&qe(s)}function Xe({attachResizeListener:t,defaultParent:e,measureScroll:i,checkIsScrollRoot:s,resetTransform:r}){return class{constructor(n={},o=e?.()){this.id=Di++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(Ai),this.nodes.forEach(zi),this.nodes.forEach(Oi),this.nodes.forEach(Mi)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=n,this.root=o?o.root||o:this,this.path=o?[...o.path,o]:[],this.parent=o,this.depth=o?o.depth+1:0;for(let l=0;l<this.path.length;l++)this.path[l].shouldResetTransform=!0;this.root===this&&(this.nodes=new Si)}addEventListener(n,o){return this.eventHandlers.has(n)||this.eventHandlers.set(n,new ls),this.eventHandlers.get(n).add(o)}notifyListeners(n,...o){const l=this.eventHandlers.get(n);l&&l.notify(...o)}hasListeners(n){return this.eventHandlers.has(n)}mount(n){if(this.instance)return;this.isSVG=Bt(n)&&!ai(n),this.instance=n;const{layoutId:o,layout:l,visualElement:c}=this.options;if(c&&!c.current&&c.mount(n),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(l||o)&&(this.isLayoutDirty=!0),t){let u,d=0;const f=()=>this.root.updateBlockedByResize=!1;R.read(()=>{d=window.innerWidth}),t(n,()=>{const p=window.innerWidth;p!==d&&(d=p,this.root.updateBlockedByResize=!0,u&&u(),u=Ei(f,250),mt.hasAnimatedSinceResize&&(mt.hasAnimatedSinceResize=!1,this.nodes.forEach(he)))})}o&&this.root.registerSharedNode(o,this),this.options.animate!==!1&&c&&(o||l)&&this.addEventListener("didUpdate",({delta:u,hasLayoutChanged:d,hasRelativeLayoutChanged:f,layout:p})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const x=this.options.transition||c.getDefaultTransition()||Fi,{onLayoutAnimationStart:y,onLayoutAnimationComplete:b}=c.getProps(),v=!this.targetLayout||!Fe(this.targetLayout,p),P=!d&&f;if(this.options.layoutRoot||this.resumeFrom||P||d&&(v||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const k={...ys(x,"layout"),onPlay:y,onComplete:b};(c.shouldReduceMotion||this.options.layoutRoot)&&(k.delay=0,k.type=!1),this.startAnimation(k),this.setAnimationOrigin(u,P,k.path)}else d||he(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=p})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const n=this.getStack();n&&n.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),ot(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach($i),this.animationId++)}getTransformTemplate(){const{visualElement:n}=this.options;return n&&n.getProps().transformTemplate}willUpdate(n=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&qe(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let u=0;u<this.path.length;u++){const d=this.path[u];d.shouldResetTransform=!0,(typeof d.latestValues.x=="string"||typeof d.latestValues.y=="string")&&(d.isLayoutDirty=!0),d.updateScroll("snapshot"),d.options.layoutRoot&&d.willUpdate(!1)}const{layoutId:o,layout:l}=this.options;if(o===void 0&&!l)return;const c=this.getTransformTemplate();this.prevTransformTemplateValue=c?c(this.latestValues,""):void 0,this.updateSnapshot(),n&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){const l=this.updateBlockedByResize;this.unblockUpdate(),this.updateBlockedByResize=!1,this.clearAllSnapshots(),l&&this.nodes.forEach(Ni),this.nodes.forEach(ce);return}if(this.animationId<=this.animationCommitId){this.nodes.forEach(ue);return}this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(Bi),this.nodes.forEach(Ii),this.nodes.forEach(Ri),this.nodes.forEach(Li)):this.nodes.forEach(ue),this.clearAllSnapshots();const o=Re.now();B.delta=Le(0,1e3/60,o-B.timestamp),B.timestamp=o,B.isProcessing=!0,xt.update.process(B),xt.preRender.process(B),xt.render.process(B),B.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,Ae.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(Vi),this.sharedNodes.forEach(Ui)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,R.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){R.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!L(this.snapshot.measuredBox.x)&&!L(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let l=0;l<this.path.length;l++)this.path[l].updateScroll();const n=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected||(this.layoutCorrected=D()),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:o}=this.options;o&&o.notify("LayoutMeasure",this.layout.layoutBox,n?n.layoutBox:void 0)}updateScroll(n="measure"){let o=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===n&&(o=!1),o&&this.instance){const l=s(this.instance);this.scroll={animationId:this.root.animationId,phase:n,isRoot:l,offset:i(this.instance),wasRoot:this.scroll?this.scroll.isRoot:l}}}resetTransform(){if(!r)return;const n=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,o=this.projectionDelta&&!He(this.projectionDelta),l=this.getTransformTemplate(),c=l?l(this.latestValues,""):void 0,u=c!==this.prevTransformTemplateValue;n&&this.instance&&(o||q(this.latestValues)||u)&&(r(this.instance,c),this.shouldResetTransform=!1,this.scheduleRender())}measure(n=!0){const o=this.measurePageBox();let l=this.removeElementScroll(o);return n&&(l=this.removeTransform(l)),Wi(l),{animationId:this.root.animationId,measuredBox:o,layoutBox:l,latestValues:{},source:this.id}}measurePageBox(){const{visualElement:n}=this.options;if(!n)return D();const o=n.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(Gi))){const{scroll:c}=this.root;c&&(X(o.x,c.offset.x),X(o.y,c.offset.y))}return o}removeElementScroll(n){const o=D();if(z(o,n),this.scroll?.wasRoot)return o;for(let l=0;l<this.path.length;l++){const c=this.path[l],{scroll:u,options:d}=c;c!==this.root&&u&&d.layoutScroll&&(u.wasRoot&&z(o,n),X(o.x,u.offset.x),X(o.y,u.offset.y))}return o}applyTransform(n,o=!1,l){const c=l||D();z(c,n);for(let u=0;u<this.path.length;u++){const d=this.path[u];!o&&d.options.layoutScroll&&d.scroll&&d!==d.root&&(X(c.x,-d.scroll.offset.x),X(c.y,-d.scroll.offset.y)),q(d.latestValues)&&bt(c,d.latestValues,d.layout?.layoutBox)}return q(this.latestValues)&&bt(c,this.latestValues,this.layout?.layoutBox),c}removeTransform(n){const o=D();z(o,n);for(let l=0;l<this.path.length;l++){const c=this.path[l];if(!q(c.latestValues))continue;let u;c.instance&&(Ft(c.latestValues)&&c.updateSnapshot(),u=D(),z(u,c.measurePageBox())),te(o,c.latestValues,c.snapshot?.layoutBox,u)}return q(this.latestValues)&&te(o,this.latestValues),o}setTargetDelta(n){this.targetDelta=n,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(n){this.options={...this.options,...n,crossfade:n.crossfade!==void 0?n.crossfade:!0}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==B.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(n=!1){const o=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=o.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=o.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=o.isSharedProjectionDirty);const l=!!this.resumingFrom||this!==o;if(!(n||l&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:u,layoutId:d}=this.options;if(!this.layout||!(u||d))return;this.resolvedRelativeTargetAt=B.timestamp;const f=this.getClosestProjectingParent();f&&this.linkedParentVersion!==f.layoutVersion&&!f.options.layoutRoot&&this.removeRelativeTarget(),!this.targetDelta&&!this.relativeTarget&&(this.options.layoutAnchor!==!1&&f&&f.layout?this.createRelativeTarget(f,this.layout.layoutBox,f.layout.layoutBox):this.removeRelativeTarget()),!(!this.relativeTarget&&!this.targetDelta)&&(this.target||(this.target=D(),this.targetWithTransforms=D()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),fi(this.target,this.relativeTarget,this.relativeParent.target,this.options.layoutAnchor||void 0)):this.targetDelta?(this.resumingFrom?this.applyTransform(this.layout.layoutBox,!1,this.target):z(this.target,this.layout.layoutBox),xs(this.target,this.targetDelta)):z(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,this.options.layoutAnchor!==!1&&f&&!!f.resumingFrom==!!this.resumingFrom&&!f.options.layoutScroll&&f.target&&this.animationProgress!==1?this.createRelativeTarget(f,this.target,f.target):this.relativeParent=this.relativeTarget=void 0))}getClosestProjectingParent(){if(!(!this.parent||Ft(this.parent.latestValues)||vs(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(n,o,l){this.relativeParent=n,this.linkedParentVersion=n.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=D(),this.relativeTargetOrigin=D(),gt(this.relativeTargetOrigin,o,l,this.options.layoutAnchor||void 0),z(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){const n=this.getLead(),o=!!this.resumingFrom||this!==n;let l=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(l=!1),o&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(l=!1),this.resolvedRelativeTargetAt===B.timestamp&&(l=!1),l)return;const{layout:c,layoutId:u}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(c||u))return;z(this.layoutCorrected,this.layout.layoutBox);const d=this.treeScale.x,f=this.treeScale.y;bs(this.layoutCorrected,this.treeScale,this.path,o),n.layout&&!n.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(n.target=n.layout.layoutBox,n.targetWithTransforms=D());const{target:p}=n;if(!p){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(Xt(this.prevProjectionDelta.x,this.projectionDelta.x),Xt(this.prevProjectionDelta.y,this.projectionDelta.y)),it(this.projectionDelta,this.layoutCorrected,p,this.latestValues),(this.treeScale.x!==d||this.treeScale.y!==f||!oe(this.projectionDelta.x,this.prevProjectionDelta.x)||!oe(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",p))}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(n=!0){if(this.options.visualElement?.scheduleRender(),n){const o=this.getStack();o&&o.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=Y(),this.projectionDelta=Y(),this.projectionDeltaWithTransform=Y()}setAnimationOrigin(n,o=!1,l){const c=this.snapshot,u=c?c.latestValues:{},d={...this.latestValues},f=Y();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!o;const p=D(),x=c?c.source:void 0,y=this.layout?this.layout.source:void 0,b=x!==y,v=this.getStack(),P=!v||v.members.length<=1,k=!!(b&&!P&&this.options.crossfade===!0&&!this.path.some(Hi));this.animationProgress=0;let w;const A=l?.interpolateProjection(n);this.mixTargetDelta=E=>{const C=E/1e3,T=A?.(C);T?(f.x.translate=T.x,f.x.scale=j(n.x.scale,1,C),f.x.origin=n.x.origin,f.x.originPoint=n.x.originPoint,f.y.translate=T.y,f.y.scale=j(n.y.scale,1,C),f.y.origin=n.y.origin,f.y.originPoint=n.y.originPoint):(de(f.x,n.x,C),de(f.y,n.y,C)),this.setTargetDelta(f),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(gt(p,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),_i(this.relativeTarget,this.relativeTargetOrigin,p,C),w&&yi(this.relativeTarget,w)&&(this.isProjectionDirty=!1),w||(w=D()),z(w,this.relativeTarget)),b&&(this.animationValues=d,bi(d,u,this.latestValues,C,k,P)),T&&T.rotate!==void 0&&(this.animationValues||(this.animationValues=d),this.animationValues.pathRotation=T.rotate),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=C},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(n){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(ot(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=R.update(()=>{mt.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=Ce(0)),this.motionValue.jump(0,!1),this.currentAnimation=ki(this.motionValue,[0,1e3],{...n,velocity:0,isSync:!0,onUpdate:o=>{this.mixTargetDelta(o),n.onUpdate&&n.onUpdate(o)},onStop:()=>{},onComplete:()=>{n.onComplete&&n.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const n=this.getStack();n&&n.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Ci),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const n=this.getLead();let{targetWithTransforms:o,target:l,layout:c,latestValues:u}=n;if(!(!o||!l||!c)){if(this!==n&&this.layout&&c&&Ye(this.options.animationType,this.layout.layoutBox,c.layoutBox)){l=this.target||D();const d=L(this.layout.layoutBox.x);l.x.min=n.target.x.min,l.x.max=l.x.min+d;const f=L(this.layout.layoutBox.y);l.y.min=n.target.y.min,l.y.max=l.y.min+f}z(o,l),bt(o,u),it(this.projectionDeltaWithTransform,this.layoutCorrected,o,u)}}registerSharedNode(n,o){this.sharedNodes.has(n)||this.sharedNodes.set(n,new ji),this.sharedNodes.get(n).add(o);const c=o.options.initialPromotionConfig;o.promote({transition:c?c.transition:void 0,preserveFollowOpacity:c&&c.shouldPreserveFollowOpacity?c.shouldPreserveFollowOpacity(o):void 0})}isLead(){const n=this.getStack();return n?n.lead===this:!0}getLead(){const{layoutId:n}=this.options;return n?this.getStack()?.lead||this:this}getPrevLead(){const{layoutId:n}=this.options;return n?this.getStack()?.prevLead:void 0}getStack(){const{layoutId:n}=this.options;if(n)return this.root.sharedNodes.get(n)}promote({needsReset:n,transition:o,preserveFollowOpacity:l}={}){const c=this.getStack();c&&c.promote(this,l),n&&(this.projectionDelta=void 0,this.needsReset=!0),o&&this.setOptions({transition:o})}relegate(){const n=this.getStack();return n?n.relegate(this):!1}resetSkewAndRotation(){const{visualElement:n}=this.options;if(!n)return;let o=!1;const{latestValues:l}=n;if((l.z||l.rotate||l.rotateX||l.rotateY||l.rotateZ||l.skewX||l.skewY)&&(o=!0),!o)return;const c={};l.z&&kt("z",n,c,this.animationValues);for(let u=0;u<wt.length;u++)kt(`rotate${wt[u]}`,n,c,this.animationValues),kt(`skew${wt[u]}`,n,c,this.animationValues);n.render();for(const u in c)n.setStaticValue(u,c[u]),this.animationValues&&(this.animationValues[u]=c[u]);n.scheduleRender()}applyProjectionStyles(n,o){if(!this.instance||this.isSVG)return;if(!this.isVisible){n.visibility="hidden";return}const l=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,n.visibility="",n.opacity="",n.pointerEvents=vt(o?.pointerEvents)||"",n.transform=l?l(this.latestValues,""):"none";return}const c=this.getLead();if(!this.projectionDelta||!this.layout||!c.target){this.options.layoutId&&(n.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,n.pointerEvents=vt(o?.pointerEvents)||""),this.hasProjected&&!q(this.latestValues)&&(n.transform=l?l({},""):"none",this.hasProjected=!1);return}n.visibility="";const u=c.animationValues||c.latestValues;this.applyTransformsToTarget();let d=xi(this.projectionDeltaWithTransform,this.treeScale,u);l&&(d=l(u,d)),n.transform=d;const{x:f,y:p}=this.projectionDelta;n.transformOrigin=`${f.origin*100}% ${p.origin*100}% 0`,c.animationValues?n.opacity=c===this?u.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:u.opacityExit:n.opacity=c===this?u.opacity!==void 0?u.opacity:"":u.opacityExit!==void 0?u.opacityExit:0;for(const x in Ut){if(u[x]===void 0)continue;const{correct:y,applyTo:b,isCSSVariable:v}=Ut[x],P=d==="none"?u[x]:y(u[x],c);if(b){const k=b.length;for(let w=0;w<k;w++)n[b[w]]=P}else v?this.options.visualElement.renderState.vars[x]=P:n[x]=P}this.options.layoutId&&(n.pointerEvents=c===this?vt(o?.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(n=>n.currentAnimation?.stop()),this.root.nodes.forEach(ce),this.root.sharedNodes.clear()}}}function Ri(t){t.updateLayout()}function Li(t){const e=t.resumeFrom?.snapshot||t.snapshot;if(t.isLead()&&t.layout&&e&&t.hasListeners("didUpdate")){const{layoutBox:i,measuredBox:s}=t.layout,{animationType:r}=t.options,a=e.source!==t.layout.source;if(r==="size")O(u=>{const d=a?e.measuredBox[u]:e.layoutBox[u],f=L(d);d.min=i[u].min,d.max=d.min+f});else if(r==="x"||r==="y"){const u=r==="x"?"y":"x";At(a?e.measuredBox[u]:e.layoutBox[u],i[u])}else Ye(r,e.layoutBox,i)&&O(u=>{const d=a?e.measuredBox[u]:e.layoutBox[u],f=L(i[u]);d.max=d.min+f,t.relativeTarget&&!t.currentAnimation&&(t.isProjectionDirty=!0,t.relativeTarget[u].max=t.relativeTarget[u].min+f)});const n=Y();it(n,i,e.layoutBox);const o=Y();a?it(o,t.applyTransform(s,!0),e.measuredBox):it(o,i,e.layoutBox);const l=!He(n);let c=!1;if(!t.resumeFrom){const u=t.getClosestProjectingParent();if(u&&!u.resumeFrom){const{snapshot:d,layout:f}=u;if(d&&f){const p=t.options.layoutAnchor||void 0,x=D();gt(x,e.layoutBox,d.layoutBox,p);const y=D();gt(y,i,f.layoutBox,p),Fe(x,y)||(c=!0),u.options.layoutRoot&&(t.relativeTarget=y,t.relativeTargetOrigin=x,t.relativeParent=u)}}}t.notifyListeners("didUpdate",{layout:i,snapshot:e,delta:o,layoutDelta:n,hasLayoutChanged:l,hasRelativeLayoutChanged:c})}else if(t.isLead()){const{onExitComplete:i}=t.options;i&&i()}t.options.transition=void 0}function Ai(t){t.parent&&(t.isProjecting()||(t.isProjectionDirty=t.parent.isProjectionDirty),t.isSharedProjectionDirty||(t.isSharedProjectionDirty=!!(t.isProjectionDirty||t.parent.isProjectionDirty||t.parent.isSharedProjectionDirty)),t.isTransformDirty||(t.isTransformDirty=t.parent.isTransformDirty))}function Mi(t){t.isProjectionDirty=t.isSharedProjectionDirty=t.isTransformDirty=!1}function Vi(t){t.clearSnapshot()}function ce(t){t.clearMeasurements()}function Ni(t){t.isLayoutDirty=!0,t.updateLayout()}function ue(t){t.isLayoutDirty=!1}function Bi(t){t.isAnimationBlocked&&t.layout&&!t.isLayoutDirty&&(t.snapshot=t.layout,t.isLayoutDirty=!0)}function Ii(t){const{visualElement:e}=t.options;e&&e.getProps().onBeforeLayoutMeasure&&e.notify("BeforeLayoutMeasure"),t.resetTransform()}function he(t){t.finishAnimation(),t.targetDelta=t.relativeTarget=t.target=void 0,t.isProjectionDirty=!0}function zi(t){t.resolveTargetDelta()}function Oi(t){t.calcProjection()}function $i(t){t.resetSkewAndRotation()}function Ui(t){t.removeLeadSnapshot()}function de(t,e,i){t.translate=j(e.translate,0,i),t.scale=j(e.scale,1,i),t.origin=e.origin,t.originPoint=e.originPoint}function fe(t,e,i,s){t.min=j(e.min,i.min,s),t.max=j(e.max,i.max,s)}function _i(t,e,i,s){fe(t.x,e.x,i.x,s),fe(t.y,e.y,i.y,s)}function Hi(t){return t.animationValues&&t.animationValues.opacityExit!==void 0}const Fi={duration:.45,ease:[.4,0,.1,1]},me=t=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(t),pe=me("applewebkit/")&&!me("chrome/")?Math.round:Z;function ge(t){t.min=pe(t.min),t.max=pe(t.max)}function Wi(t){ge(t.x),ge(t.y)}function Ye(t,e,i){return t==="position"||t==="preserve-aspect"&&!di(ne(e),ne(i),.2)}function Gi(t){return t!==t.root&&t.scroll?.wasRoot}const qi=Xe({attachResizeListener:(t,e)=>Nt(t,"resize",e),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),Tt={current:void 0},Ke=Xe({measureScroll:t=>({x:t.scrollLeft,y:t.scrollTop}),defaultParent:()=>{if(!Tt.current){const t=new qi({});t.mount(window),t.setOptions({layoutScroll:!0}),Tt.current=t}return Tt.current},resetTransform:(t,e)=>{t.style.transform=e!==void 0?e:"none"},checkIsScrollRoot:t=>window.getComputedStyle(t).position==="fixed"});function ye(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}function Xi(...t){return e=>{let i=!1;const s=t.map(r=>{const a=ye(r,e);return!i&&typeof a=="function"&&(i=!0),a});if(i)return()=>{for(let r=0;r<s.length;r++){const a=s[r];typeof a=="function"?a():ye(t[r],null)}}}}function Yi(...t){return g.useCallback(Xi(...t),t)}class Ki extends g.Component{getSnapshotBeforeUpdate(e){const i=this.props.childRef.current;if(Pt(i)&&e.isPresent&&!this.props.isPresent&&this.props.pop!==!1){const s=i.offsetParent,r=Pt(s)&&s.offsetWidth||0,a=Pt(s)&&s.offsetHeight||0,n=getComputedStyle(i),o=this.props.sizeRef.current;o.height=parseFloat(n.height),o.width=parseFloat(n.width),o.top=i.offsetTop,o.left=i.offsetLeft,o.right=r-o.width-o.left,o.bottom=a-o.height-o.top,o.direction=n.direction}return null}componentDidUpdate(){}render(){return this.props.children}}function Zi({children:t,isPresent:e,anchorX:i,anchorY:s,root:r,pop:a}){const n=g.useId(),o=g.useRef(null),l=g.useRef({width:0,height:0,top:0,left:0,right:0,bottom:0,direction:"ltr"}),{nonce:c}=g.useContext(cs),u=t.props?.ref??t?.ref,d=Yi(o,u);return g.useInsertionEffect(()=>{const{width:f,height:p,top:x,left:y,right:b,bottom:v,direction:P}=l.current;if(e||a===!1||!o.current||!f||!p)return;const k=P==="rtl",w=i==="left"?k?`right: ${b}`:`left: ${y}`:k?`left: ${y}`:`right: ${b}`,A=s==="bottom"?`bottom: ${v}`:`top: ${x}`;o.current.dataset.motionPopId=n;const E=document.createElement("style");c&&(E.nonce=c);const C=r??document.head;return C.appendChild(E),E.sheet&&E.sheet.insertRule(`
|
|
2
|
-
[data-motion-pop-id="${n}"] {
|
|
3
|
-
position: absolute !important;
|
|
4
|
-
width: ${f}px !important;
|
|
5
|
-
height: ${p}px !important;
|
|
6
|
-
${w}px !important;
|
|
7
|
-
${A}px !important;
|
|
8
|
-
}
|
|
9
|
-
`),()=>{o.current?.removeAttribute("data-motion-pop-id"),C.contains(E)&&C.removeChild(E)}},[e]),h.jsx(Ki,{isPresent:e,childRef:o,sizeRef:l,pop:a,children:a===!1?t:g.cloneElement(t,{ref:d})})}const Qi=({children:t,initial:e,isPresent:i,onExitComplete:s,custom:r,presenceAffectsLayout:a,mode:n,anchorX:o,anchorY:l,root:c})=>{const u=Me(Ji),d=g.useId();let f=!0,p=g.useMemo(()=>(f=!1,{id:d,initial:e,isPresent:i,custom:r,onExitComplete:x=>{u.set(x,!0);for(const y of u.values())if(!y)return;s&&s()},register:x=>(u.set(x,!1),()=>u.delete(x))}),[i,u,s]);return a&&f&&(p={...p}),g.useMemo(()=>{u.forEach((x,y)=>u.set(y,!1))},[i]),g.useEffect(()=>{!i&&!u.size&&s&&s()},[i]),t=h.jsx(Zi,{pop:n==="popLayout",isPresent:i,anchorX:o,anchorY:l,root:c,children:t}),h.jsx(Ve.Provider,{value:p,children:t})};function Ji(){return new Map}function Ze(t=!0){const e=g.useContext(Ve);if(e===null)return[!0,null];const{isPresent:i,onExitComplete:s,register:r}=e,a=g.useId();g.useEffect(()=>{if(t)return r(a)},[t]);const n=g.useCallback(()=>t&&s&&s(a),[a,s,t]);return!i&&s?[!1,n]:[!0]}const rt=t=>t.key||"";function xe(t){const e=[];return g.Children.forEach(t,i=>{g.isValidElement(i)&&e.push(i)}),e}const eo=({children:t,custom:e,initial:i=!0,onExitComplete:s,presenceAffectsLayout:r=!0,mode:a="sync",propagate:n=!1,anchorX:o="left",anchorY:l="top",root:c})=>{const[u,d]=Ze(n),f=g.useMemo(()=>xe(t),[t]),p=n&&!u?[]:f.map(rt),x=g.useRef(!0),y=g.useRef(f),b=Me(()=>new Map),v=g.useRef(new Set),[P,k]=g.useState(f),[w,A]=g.useState(f);us(()=>{x.current=!1,y.current=f;for(let T=0;T<w.length;T++){const S=rt(w[T]);p.includes(S)?(b.delete(S),v.current.delete(S)):b.get(S)!==!0&&b.set(S,!1)}},[w,p.length,p.join("-")]);const E=[];if(f!==P){let T=[...f];for(let S=0;S<w.length;S++){const M=w[S],V=rt(M);p.includes(V)||(T.splice(S,0,M),E.push(M))}return a==="wait"&&E.length&&(T=E),A(xe(T)),k(f),null}const{forceRender:C}=g.useContext(Ne);return h.jsx(h.Fragment,{children:w.map(T=>{const S=rt(T),M=n&&!u?!1:f===w||p.includes(S),V=()=>{if(v.current.has(S))return;if(b.has(S))v.current.add(S),b.set(S,!0);else return;let H=!0;b.forEach(W=>{W||(H=!1)}),H&&(C?.(),A(y.current),n&&d?.(),s&&s())};return h.jsx(Qi,{isPresent:M,initial:!x.current||i?void 0:!1,custom:e,presenceAffectsLayout:r,mode:a,root:c,onExitComplete:M?void 0:V,anchorX:o,anchorY:l,children:T},S)})})};function nt(t,e,i,s){return Nt(t,e,ws(i),s)}const Qe=({current:t})=>t?t.ownerDocument.defaultView:null,ve=(t,e)=>Math.abs(t-e);function tn(t,e){const i=ve(t.x,e.x),s=ve(t.y,e.y);return Math.sqrt(i**2+s**2)}const be=new Set(["auto","scroll"]);class Je{constructor(e,i,{transformPagePoint:s,contextWindow:r=window,dragSnapToOrigin:a=!1,distanceThreshold:n=3,element:o}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=p=>{this.handleScroll(p.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=at(this.lastRawMoveEventInfo,this.transformPagePoint));const p=St(this.lastMoveEventInfo,this.history),x=this.startEvent!==null,y=tn(p.offset,{x:0,y:0})>=this.distanceThreshold;if(!x&&!y)return;const{point:b}=p,{timestamp:v}=B;this.history.push({...b,timestamp:v});const{onStart:P,onMove:k}=this.handlers;x||(P&&P(this.lastMoveEvent,p),this.startEvent=this.lastMoveEvent),k&&k(this.lastMoveEvent,p)},this.handlePointerMove=(p,x)=>{this.lastMoveEvent=p,this.lastRawMoveEventInfo=x,this.lastMoveEventInfo=at(x,this.transformPagePoint),R.update(this.updatePoint,!0)},this.handlePointerUp=(p,x)=>{this.end();const{onEnd:y,onSessionEnd:b,resumeAnimation:v}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const P=St(p.type==="pointercancel"?this.lastMoveEventInfo:at(x,this.transformPagePoint),this.history);this.startEvent&&y&&y(p,P),b&&b(p,P)},!ks(e))return;this.dragSnapToOrigin=a,this.handlers=i,this.transformPagePoint=s,this.distanceThreshold=n,this.contextWindow=r||window;const l=Ie(e),c=at(l,this.transformPagePoint),{point:u}=c,{timestamp:d}=B;this.history=[{...u,timestamp:d}];const{onSessionStart:f}=i;f&&f(e,St(c,this.history)),this.removeListeners=Ts(nt(this.contextWindow,"pointermove",this.handlePointerMove),nt(this.contextWindow,"pointerup",this.handlePointerUp),nt(this.contextWindow,"pointercancel",this.handlePointerUp)),o&&this.startScrollTracking(o)}startScrollTracking(e){let i=e.parentElement;for(;i;){const s=getComputedStyle(i);(be.has(s.overflowX)||be.has(s.overflowY))&&this.scrollPositions.set(i,{x:i.scrollLeft,y:i.scrollTop}),i=i.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(e){const i=this.scrollPositions.get(e);if(!i)return;const s=e===window,r=s?{x:window.scrollX,y:window.scrollY}:{x:e.scrollLeft,y:e.scrollTop},a={x:r.x-i.x,y:r.y-i.y};a.x===0&&a.y===0||(s?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=a.x,this.lastMoveEventInfo.point.y+=a.y):this.history.length>0&&(this.history[0].x-=a.x,this.history[0].y-=a.y),this.scrollPositions.set(e,r),R.update(this.updatePoint,!0))}updateHandlers(e){this.handlers=e}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),ot(this.updatePoint)}}function at(t,e){return e?{point:e(t.point)}:t}function Pe(t,e){return{x:t.x-e.x,y:t.y-e.y}}function St({point:t},e){return{point:t,delta:Pe(t,ts(e)),offset:Pe(t,en(e)),velocity:sn(e,.1)}}function en(t){return t[0]}function ts(t){return t[t.length-1]}function sn(t,e){if(t.length<2)return{x:0,y:0};let i=t.length-1,s=null;const r=ts(t);for(;i>=0&&(s=t[i],!(r.timestamp-s.timestamp>_t(e)));)i--;if(!s)return{x:0,y:0};s===t[0]&&t.length>2&&r.timestamp-s.timestamp>_t(e)*2&&(s=t[1]);const a=hs(r.timestamp-s.timestamp);if(a===0)return{x:0,y:0};const n={x:(r.x-s.x)/a,y:(r.y-s.y)/a};return n.x===1/0&&(n.x=0),n.y===1/0&&(n.y=0),n}function nn(t,{min:e,max:i},s){return e!==void 0&&t<e?t=s?j(e,t,s.min):Math.max(t,e):i!==void 0&&t>i&&(t=s?j(i,t,s.max):Math.min(t,i)),t}function we(t,e,i){return{min:e!==void 0?t.min+e:void 0,max:i!==void 0?t.max+i-(t.max-t.min):void 0}}function on(t,{top:e,left:i,bottom:s,right:r}){return{x:we(t.x,i,r),y:we(t.y,e,s)}}function ke(t,e){let i=e.min-t.min,s=e.max-t.max;return e.max-e.min<t.max-t.min&&([i,s]=[s,i]),{min:i,max:s}}function rn(t,e){return{x:ke(t.x,e.x),y:ke(t.y,e.y)}}function an(t,e){let i=.5;const s=L(t),r=L(e);return r>s?i=Lt(e.min,e.max-s,t.min):s>r&&(i=Lt(t.min,t.max-r,e.min)),Le(0,1,i)}function ln(t,e){const i={};return e.min!==void 0&&(i.min=e.min-t.min),e.max!==void 0&&(i.max=e.max-t.min),i}const Mt=.35;function cn(t=Mt){return t===!1?t=0:t===!0&&(t=Mt),{x:Te(t,"left","right"),y:Te(t,"top","bottom")}}function Te(t,e,i){return{min:Se(t,e),max:Se(t,i)}}function Se(t,e){return typeof t=="number"?t:t[e]||0}const un=new WeakMap;class hn{constructor(e){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=D(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=e}start(e,{snapToCursor:i=!1,distanceThreshold:s}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const a=d=>{i&&this.snapToCursor(Ie(d).point),this.stopAnimation()},n=(d,f)=>{const{drag:p,dragPropagation:x,onDragStart:y}=this.getProps();if(p&&!x&&(this.openDragLock&&this.openDragLock(),this.openDragLock=Qs(p),!this.openDragLock))return;this.latestPointerEvent=d,this.latestPanInfo=f,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),O(v=>{let P=this.getAxisMotionValue(v).get()||0;if(pt.test(P)){const{projection:k}=this.visualElement;if(k&&k.layout){const w=k.layout.layoutBox[v];w&&(P=L(w)*(parseFloat(P)/100))}}this.originPoint[v]=P}),y&&R.update(()=>y(d,f),!1,!0),Wt(this.visualElement,"transform");const{animationState:b}=this.visualElement;b&&b.setActive("whileDrag",!0)},o=(d,f)=>{this.latestPointerEvent=d,this.latestPanInfo=f;const{dragPropagation:p,dragDirectionLock:x,onDirectionLock:y,onDrag:b}=this.getProps();if(!p&&!this.openDragLock)return;const{offset:v}=f;if(x&&this.currentDirection===null){this.currentDirection=fn(v),this.currentDirection!==null&&y&&y(this.currentDirection);return}this.updateAxis("x",f.point,v),this.updateAxis("y",f.point,v),this.visualElement.render(),b&&R.update(()=>b(d,f),!1,!0)},l=(d,f)=>{this.latestPointerEvent=d,this.latestPanInfo=f,this.stop(d,f),this.latestPointerEvent=null,this.latestPanInfo=null},c=()=>{const{dragSnapToOrigin:d}=this.getProps();(d||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:u}=this.getProps();this.panSession=new Je(e,{onSessionStart:a,onStart:n,onMove:o,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,distanceThreshold:s,contextWindow:Qe(this.visualElement),element:this.visualElement.current})}stop(e,i){const s=e||this.latestPointerEvent,r=i||this.latestPanInfo,a=this.isDragging;if(this.cancel(),!a||!r||!s)return;const{velocity:n}=r;this.startAnimation(n);const{onDragEnd:o}=this.getProps();o&&R.postRender(()=>o(s,r))}cancel(){this.isDragging=!1;const{projection:e,animationState:i}=this.visualElement;e&&(e.isAnimationBlocked=!1),this.endPanSession();const{dragPropagation:s}=this.getProps();!s&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),i&&i.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(e,i,s){const{drag:r}=this.getProps();if(!s||!lt(e,r,this.currentDirection))return;const a=this.getAxisMotionValue(e);let n=this.originPoint[e]+s[e];this.constraints&&this.constraints[e]&&(n=nn(n,this.constraints[e],this.elastic[e])),a.set(n)}resolveConstraints(){const{dragConstraints:e,dragElastic:i}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,r=this.constraints;e&&et(e)?this.constraints||(this.constraints=this.resolveRefConstraints()):e&&s?this.constraints=on(s.layoutBox,e):this.constraints=!1,this.elastic=cn(i),r!==this.constraints&&!et(e)&&s&&this.constraints&&!this.hasMutatedConstraints&&O(a=>{this.constraints!==!1&&this.getAxisMotionValue(a)&&(this.constraints[a]=ln(s.layoutBox[a],this.constraints[a]))})}resolveRefConstraints(){const{dragConstraints:e,onMeasureDragConstraints:i}=this.getProps();if(!e||!et(e))return!1;const s=e.current,{projection:r}=this.visualElement;if(!r||!r.layout)return!1;r.root&&(r.root.scroll=void 0,r.root.updateScroll());const a=Ss(s,r.root,this.visualElement.getTransformPagePoint());let n=rn(r.layout.layoutBox,a);if(i){const o=i(Es(n));this.hasMutatedConstraints=!!o,o&&(n=js(o))}return n}startAnimation(e){const{drag:i,dragMomentum:s,dragElastic:r,dragTransition:a,dragSnapToOrigin:n,onDragTransitionEnd:o}=this.getProps(),l=this.constraints||{},c=O(u=>{if(!lt(u,i,this.currentDirection))return;let d=l&&l[u]||{};(n===!0||n===u)&&(d={min:0,max:0});const f=r?200:1e6,p=r?40:1e7,x={type:"inertia",velocity:s?e[u]:0,bounceStiffness:f,bounceDamping:p,timeConstant:750,restDelta:1,restSpeed:10,...a,...d};return this.startAxisValueAnimation(u,x)});return Promise.all(c).then(o)}startAxisValueAnimation(e,i){const s=this.getAxisMotionValue(e);return Wt(this.visualElement,e),s.start(Be(e,s,0,i,this.visualElement,!1))}stopAnimation(){O(e=>this.getAxisMotionValue(e).stop())}getAxisMotionValue(e){const i=`_drag${e.toUpperCase()}`,r=this.visualElement.getProps()[i];return r||this.visualElement.getValue(e,this.visualElement.latestValues[e]??0)}snapToCursor(e){O(i=>{const{drag:s}=this.getProps();if(!lt(i,s,this.currentDirection))return;const{projection:r}=this.visualElement,a=this.getAxisMotionValue(i);if(r&&r.layout){const{min:n,max:o}=r.layout.layoutBox[i],l=a.get()||0;a.set(e[i]-j(n,o,.5)+l)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:e,dragConstraints:i}=this.getProps(),{projection:s}=this.visualElement;if(!et(i)||!s||!this.constraints)return;this.stopAnimation();const r={x:0,y:0};O(n=>{const o=this.getAxisMotionValue(n);if(o&&this.constraints!==!1){const l=o.get();r[n]=an({min:l,max:l},this.constraints[n])}});const{transformTemplate:a}=this.visualElement.getProps();this.visualElement.current.style.transform=a?a({},""):"none",s.root&&s.root.updateScroll(),s.updateLayout(),this.constraints=!1,this.resolveConstraints(),O(n=>{if(!lt(n,e,null))return;const o=this.getAxisMotionValue(n),{min:l,max:c}=this.constraints[n];o.set(j(l,c,r[n]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;un.set(this.visualElement,this);const e=this.visualElement.current,i=nt(e,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps(),f=c.target,p=f!==e&&Cs(f);u&&d&&!p&&this.start(c)});let s;const r=()=>{const{dragConstraints:c}=this.getProps();et(c)&&c.current&&(this.constraints=this.resolveRefConstraints(),s||(s=dn(e,c.current,()=>this.scalePositionWithinConstraints())))},{projection:a}=this.visualElement,n=a.addEventListener("measure",r);a&&!a.layout&&(a.root&&a.root.updateScroll(),a.updateLayout()),R.read(r);const o=Nt(window,"resize",()=>this.scalePositionWithinConstraints()),l=a.addEventListener("didUpdate",(({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(O(d=>{const f=this.getAxisMotionValue(d);f&&(this.originPoint[d]+=c[d].translate,f.set(f.get()+c[d].translate))}),this.visualElement.render())}));return()=>{o(),i(),n(),l&&l(),s&&s()}}getProps(){const e=this.visualElement.getProps(),{drag:i=!1,dragDirectionLock:s=!1,dragPropagation:r=!1,dragConstraints:a=!1,dragElastic:n=Mt,dragMomentum:o=!0}=e;return{...e,drag:i,dragDirectionLock:s,dragPropagation:r,dragConstraints:a,dragElastic:n,dragMomentum:o}}}function Ee(t){let e=!0;return()=>{if(e){e=!1;return}t()}}function dn(t,e,i){const s=qt(t,Ee(i)),r=qt(e,Ee(i));return()=>{s(),r()}}function lt(t,e,i){return(e===!0||e===t)&&(i===null||i===t)}function fn(t,e=10){let i=null;return Math.abs(t.y)>e?i="y":Math.abs(t.x)>e&&(i="x"),i}class mn extends ze{constructor(e){super(e),this.removeGroupControls=Z,this.removeListeners=Z,this.controls=new hn(e)}mount(){const{dragControls:e}=this.node.getProps();e&&(this.removeGroupControls=e.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||Z}update(){const{dragControls:e}=this.node.getProps(),{dragControls:i}=this.node.prevProps||{};e!==i&&(this.removeGroupControls(),e&&(this.removeGroupControls=e.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}const Et=t=>(e,i)=>{t&&R.update(()=>t(e,i),!1,!0)};class pn extends ze{constructor(){super(...arguments),this.removePointerDownListener=Z}onPointerDown(e){this.session=new Je(e,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Qe(this.node)})}createPanHandlers(){const{onPanSessionStart:e,onPanStart:i,onPan:s,onPanEnd:r}=this.node.getProps();return{onSessionStart:Et(e),onStart:Et(i),onMove:Et(s),onEnd:(a,n)=>{delete this.session,r&&R.postRender(()=>r(a,n))}}}mount(){this.removePointerDownListener=nt(this.node.current,"pointerdown",e=>this.onPointerDown(e))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let jt=!1;class gn extends g.Component{componentDidMount(){const{visualElement:e,layoutGroup:i,switchLayoutGroup:s,layoutId:r}=this.props,{projection:a}=e;a&&(i.group&&i.group.add(a),s&&s.register&&r&&s.register(a),jt&&a.root.didUpdate(),a.addEventListener("animationComplete",()=>{this.safeToRemove()}),a.setOptions({...a.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),mt.hasEverUpdated=!0}getSnapshotBeforeUpdate(e){const{layoutDependency:i,visualElement:s,drag:r,isPresent:a}=this.props,{projection:n}=s;return n&&(n.isPresent=a,e.layoutDependency!==i&&n.setOptions({...n.options,layoutDependency:i}),jt=!0,r||e.layoutDependency!==i||i===void 0||e.isPresent!==a?n.willUpdate():this.safeToRemove(),e.isPresent!==a&&(a?n.promote():n.relegate()||R.postRender(()=>{const o=n.getStack();(!o||!o.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{visualElement:e,layoutAnchor:i}=this.props,{projection:s}=e;s&&(s.options.layoutAnchor=i,s.root.didUpdate(),Ae.postRender(()=>{!s.currentAnimation&&s.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:e,layoutGroup:i,switchLayoutGroup:s}=this.props,{projection:r}=e;jt=!0,r&&(r.scheduleCheckAfterUnmount(),i&&i.group&&i.group.remove(r),s&&s.deregister&&s.deregister(r))}safeToRemove(){const{safeToRemove:e}=this.props;e&&e()}render(){return null}}function es(t){const[e,i]=Ze(),s=g.useContext(Ne);return h.jsx(gn,{...t,layoutGroup:s,switchLayoutGroup:g.useContext(ds),isPresent:e,safeToRemove:i})}const yn={pan:{Feature:pn},drag:{Feature:mn,ProjectionNode:Ke,MeasureLayout:es}},xn={layout:{ProjectionNode:Ke,MeasureLayout:es}},vn={...Rs,...Ds,...yn,...xn},so=fs(vn,Ls),ct="rounded-lg bg-[color-mix(in_srgb,var(--hud-ink)_4.5%,transparent)]",je="rounded-md border border-[color-mix(in_srgb,var(--hud-ink)_10%,transparent)] bg-[color-mix(in_srgb,var(--hud-bg)_70%,transparent)] text-[var(--scout-chrome-ink-strong)] outline-none transition-colors focus:border-lime-300/45",Ct="rounded-md border border-[color-mix(in_srgb,var(--hud-ink)_8%,transparent)] text-[var(--scout-chrome-ink)] transition-colors hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink-strong)] disabled:cursor-not-allowed disabled:opacity-40",Dt="font-mono text-xs uppercase tracking-[0.11em] text-[var(--scout-chrome-ink-ghost)]";function bn(t){return t==="live"?{label:"Live",detail:"Listening — speak naturally",chip:"border-lime-300/35 bg-lime-300/[0.10] text-lime-100",iconWrap:"border-lime-300/40 bg-lime-300/[0.10] text-lime-200"}:t==="connecting"?{label:"Connecting",detail:"Opening secure audio…",chip:"border-amber-300/30 bg-amber-300/[0.09] text-amber-100/90",iconWrap:"border-amber-300/35 bg-amber-300/[0.09] text-amber-100"}:t==="error"?{label:"Error",detail:"Could not hold the call",chip:"border-red-400/35 bg-red-400/[0.10] text-red-100",iconWrap:"border-red-400/35 bg-red-400/[0.10] text-red-100"}:t==="ended"?{label:"Ended",detail:"Call closed — start again anytime",chip:"border-[color-mix(in_srgb,var(--hud-ink)_12%,transparent)] text-[var(--scout-chrome-ink-faint)]",iconWrap:"border-[color-mix(in_srgb,var(--hud-ink)_10%,transparent)] bg-[color-mix(in_srgb,var(--hud-ink)_4%,transparent)] text-[var(--scout-chrome-ink-faint)]"}:{label:"Ready",detail:"Talk continuously with Scoutbot",chip:"border-transparent bg-[color-mix(in_srgb,var(--hud-ink)_6%,transparent)] text-[var(--scout-chrome-ink-faint)]",iconWrap:"border-transparent bg-[color-mix(in_srgb,var(--hud-ink)_5%,transparent)] text-[var(--scout-chrome-ink-faint)]"}}function io({state:t,onMinimize:e,onExpand:i,layout:s="compact"}){const r=bn(t),a=s==="page";return h.jsxs("header",{className:`flex items-start ${a?"gap-3.5 px-5 py-4":"gap-2.5 px-3.5 py-3"}`,children:[h.jsx("div",{className:`${a?"size-9":"size-7"} mt-px flex shrink-0 items-center justify-center rounded-md border ${r.iconWrap}`,children:t==="connecting"?h.jsx(st,{size:a?14:12,className:"animate-spin"}):t==="live"?h.jsxs("span",{className:"relative flex size-2",children:[h.jsx("span",{className:"absolute inline-flex size-full animate-ping rounded-full bg-lime-300/35"}),h.jsx("span",{className:"relative inline-flex size-2 rounded-full bg-lime-300/90"})]}):h.jsx(Oe,{size:a?14:12})}),h.jsxs("div",{className:"min-w-0 flex-1",children:[h.jsxs("div",{className:"flex items-center justify-between gap-2",children:[h.jsx("h2",{className:`truncate font-medium text-[var(--scout-chrome-ink-strong)] ${a?"text-2xl":"text-base"}`,children:"Live voice"}),h.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[h.jsx("span",{className:`rounded border px-1.5 py-px font-mono text-xs uppercase tracking-[0.1em] ${r.chip}`,children:r.label}),i&&h.jsx("button",{type:"button",onClick:i,title:a?"Return to compact live voice view":"Open full live voice view","aria-label":a?"Return to compact live voice view":"Open full live voice view",className:"flex size-6 items-center justify-center rounded-md text-[var(--scout-chrome-ink-faint)] transition-colors hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink-strong)]",children:a?h.jsx(Ns,{size:12}):h.jsx(Bs,{size:12})}),e&&h.jsx("button",{type:"button",onClick:e,title:"Collapse live voice into the status bar","aria-label":"Collapse live voice into the status bar",className:"flex size-6 items-center justify-center rounded-md text-[var(--scout-chrome-ink-faint)] transition-colors hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink-strong)]",children:h.jsx(Is,{size:12})})]})]}),h.jsx("p",{className:`mt-0.5 leading-snug text-[var(--scout-chrome-ink-faint)] ${a?"text-base":"text-sm"}`,children:r.detail})]})]})}function no({dictationActive:t,layout:e="compact"}){const{enabled:i,state:s,error:r,trace:a,chatState:n,sessionAction:o,startCall:l,endCall:c,startNewChat:u,switchChat:d,updatePreferredModel:f,clearTrace:p,openVoiceSettings:x}=As(),y=s==="connecting"||s==="live",[b,v]=g.useState("controls"),P=wn(r),k=e==="page",[w,A]=g.useState(""),[E,C]=g.useState(!1),[T,S]=g.useState(!1),[M,V]=g.useState(null);g.useEffect(()=>{!T&&n?.config.model&&A(n.config.model)},[n?.config.model,T]);const H=async()=>{if(!(!w.trim()||T)){S(!0),V(null);try{const m=await f(w);A(m),V("Saved")}catch(m){V(m instanceof Error?m.message:"Could not save model.")}finally{S(!1)}}},W=!i&&!y?{label:"Open voice settings",icon:h.jsx(Gt,{size:11}),tone:"border-[color-mix(in_srgb,var(--hud-ink)_10%,transparent)] bg-[color-mix(in_srgb,var(--hud-ink)_5%,transparent)] text-[var(--scout-chrome-ink)] hover:bg-[var(--scout-chrome-hover)]"}:s==="connecting"?{label:"Cancel connection",icon:h.jsx(st,{size:11,className:"animate-spin"}),tone:"border-amber-300/35 bg-amber-300/[0.10] text-amber-100 hover:bg-amber-300/[0.16]"}:s==="live"?{label:"End live voice",icon:h.jsx(Os,{size:9,className:"fill-current"}),tone:"border-red-400/35 bg-red-400/[0.10] text-red-100 hover:bg-red-400/[0.16]"}:{label:"Start live voice",icon:h.jsx(Xs,{size:10,className:"fill-current"}),tone:"border-lime-300/40 bg-lime-300/[0.12] text-lime-100 hover:bg-lime-300/[0.18]"};return h.jsxs("div",{className:"flex min-h-0 flex-1 flex-col",children:[h.jsx("nav",{className:`grid shrink-0 grid-cols-2 border-b border-[var(--scout-chrome-border-soft)] ${k?"px-5":"px-3.5"}`,"aria-label":"Live voice views",children:[{id:"controls",label:"Controls",icon:h.jsx(Oe,{size:11})},{id:"activity",label:"Activity",icon:h.jsx(Gs,{size:11})}].map(m=>h.jsxs("button",{type:"button",onClick:()=>v(m.id),"aria-current":b===m.id,className:`-mb-px flex items-center justify-center gap-1.5 border-b-2 font-mono uppercase tracking-[0.1em] transition-colors ${k?"h-11 text-sm":"h-9 text-xs"} ${b===m.id?"border-lime-300/80 text-[var(--scout-chrome-ink-strong)]":"border-transparent text-[var(--scout-chrome-ink-faint)] hover:text-[var(--scout-chrome-ink-strong)]"}`,children:[m.icon,m.label,m.id==="activity"&&a.length>0&&h.jsx("span",{className:"rounded-full bg-[color-mix(in_srgb,var(--hud-ink)_10%,transparent)] px-1.5 py-px font-mono text-xs text-[var(--scout-chrome-ink-faint)]",children:a.length})]},m.id))}),b==="activity"?h.jsxs("div",{className:`flex min-h-0 flex-1 flex-col ${k?"p-5":"p-3.5"}`,children:[h.jsxs("div",{className:"mb-2 flex shrink-0 items-center justify-between",children:[h.jsx("p",{className:Dt,children:"Session activity"}),a.length>0&&h.jsx("button",{type:"button",onClick:p,className:"font-mono text-xs uppercase tracking-[0.09em] text-[var(--scout-chrome-ink-ghost)] transition-colors hover:text-[var(--scout-chrome-ink-strong)]",children:"Clear"})]}),a.length===0?h.jsx("div",{className:"flex flex-1 items-center justify-center rounded-lg border border-dashed border-[color-mix(in_srgb,var(--hud-ink)_10%,transparent)] px-6 text-center text-sm leading-relaxed text-[var(--scout-chrome-ink-faint)]",children:"Start a call to record requests, replies, navigation attempts, and delivery results."}):h.jsx("ol",{className:`min-h-0 flex-1 overflow-y-auto ${ct}`,children:a.map((m,N)=>h.jsxs("li",{className:`px-2.5 py-2 ${N>0?"border-t border-[var(--scout-chrome-border-soft)]":""}`,children:[h.jsxs("div",{className:"flex items-start justify-between gap-2",children:[h.jsxs("div",{className:"flex min-w-0 items-start gap-1.5",children:[h.jsx("span",{className:`mt-px shrink-0 rounded border px-1 py-px font-mono text-xs uppercase tracking-[0.08em] ${Tn(m.kind)}`,children:kn(m.kind)}),h.jsx("span",{className:"min-w-0 text-sm leading-snug text-[var(--scout-chrome-ink-strong)]",children:m.label})]}),h.jsx("time",{className:"shrink-0 font-mono text-xs text-[var(--scout-chrome-ink-ghost)]",children:Pn(m.at)})]}),m.detail&&h.jsx("span",{className:"mt-1 block whitespace-pre-wrap break-words font-mono text-xs leading-relaxed text-[var(--scout-chrome-ink-faint)]",children:m.detail})]},m.id))})]}):h.jsxs("div",{className:`flex min-h-0 w-full flex-1 flex-col overflow-y-auto ${k?"mx-auto max-w-2xl gap-4 p-5":"gap-2.5 p-3.5"}`,children:[h.jsxs("section",{className:`${ct} shrink-0 p-3`,children:[h.jsx("p",{className:"text-base font-medium text-[var(--scout-chrome-ink-strong)]",children:"Live conversation"}),h.jsx("p",{className:"mt-0.5 text-sm leading-snug text-[var(--scout-chrome-ink-faint)]",children:s==="live"?"Microphone and spoken replies are active.":s==="connecting"?"Opening the audio connection…":i?"Start when you are ready to speak.":"Turn on live voice before starting a call."}),h.jsxs("button",{type:"button",disabled:t&&!y,onClick:()=>{y?c():i?l():x()},className:`mt-3 flex h-9 w-full items-center justify-center gap-2 rounded-md border font-mono text-sm uppercase tracking-[0.1em] transition-colors disabled:cursor-not-allowed disabled:opacity-40 ${W.tone}`,children:[W.icon,W.label]}),t&&!y&&h.jsx("p",{className:"mt-2 text-xs leading-relaxed text-amber-200/80",children:"Finish dictation before starting a live call."}),P&&h.jsx("p",{className:"mt-2 rounded-md border border-red-400/30 bg-red-400/[0.08] px-2 py-1.5 text-sm leading-relaxed text-red-100",children:P})]}),h.jsxs("section",{className:`${ct} shrink-0 p-3`,children:[h.jsxs("div",{className:"flex items-center gap-1.5",children:[h.jsx(Fs,{size:11,className:"shrink-0 text-[var(--scout-chrome-ink-ghost)]"}),h.jsx("p",{className:Dt,children:"Live chat"})]}),h.jsx("p",{className:"mt-1.5 truncate text-base text-[var(--scout-chrome-ink-strong)]",title:n?.session.id,children:n?.session.title||"Loading chat…"}),h.jsx("p",{className:"mt-0.5 text-sm leading-snug text-[var(--scout-chrome-ink-faint)]",children:"Context stays with this chat when voice stops or the panel closes."}),h.jsxs("div",{className:"mt-2.5 flex min-w-0 items-center gap-1.5",children:[n&&n.sessions.length>1&&h.jsxs("label",{className:"min-w-0 flex-1",children:[h.jsx("span",{className:"sr-only",children:"Switch live chat"}),h.jsx("select",{value:n.session.id,disabled:!!o,onChange:m=>{d(m.target.value)},className:`h-8 w-full min-w-0 px-2 font-mono text-sm disabled:cursor-wait disabled:opacity-50 ${je}`,title:"Switch live chat; an active voice connection will end",children:n.sessions.map(m=>h.jsxs("option",{value:m.id,children:[m.title||`Chat ${m.id.slice(0,8)}`," · ",m.messageCount," msg"]},m.id))})]}),h.jsxs("button",{type:"button",onClick:()=>{u()},disabled:!n||!!o,title:"Start a new chat; an active voice connection will end",className:`flex h-8 shrink-0 items-center justify-center gap-1.5 px-2.5 font-mono text-xs uppercase tracking-[0.09em] disabled:cursor-wait ${Ct}`,children:[o==="new"?h.jsx(st,{size:10,className:"animate-spin"}):h.jsx(zs,{size:10}),"New chat"]})]})]}),h.jsxs("section",{className:`${ct} shrink-0 p-3`,children:[h.jsxs("div",{className:"flex items-center justify-between gap-2",children:[h.jsxs("div",{className:"min-w-0",children:[h.jsx("p",{className:Dt,children:"Scoutbot reply model"}),h.jsx("p",{className:"mt-1 truncate font-mono text-base text-[var(--scout-chrome-ink-strong)]",children:n?.config.model||"—"})]}),h.jsxs("div",{className:"flex shrink-0 items-center gap-1.5",children:[n?.config.provider&&h.jsx("span",{className:"font-mono text-xs uppercase tracking-[0.08em] text-[var(--scout-chrome-ink-ghost)]",children:n.config.provider}),h.jsx("button",{type:"button",onClick:()=>{V(null),C(m=>!m)},"aria-expanded":E,className:`flex h-7 items-center px-2 font-mono text-xs uppercase tracking-[0.09em] ${Ct}`,children:E?"Close":"Change"})]})]}),E&&h.jsxs("div",{className:"mt-2.5 border-t border-[var(--scout-chrome-border-soft)] pt-2.5",children:[h.jsx("p",{className:"text-sm leading-snug text-[var(--scout-chrome-ink-faint)]",children:"Used for typed and live Scoutbot replies."}),h.jsxs("div",{className:"mt-2 flex gap-1.5",children:[h.jsx("input",{value:w,onChange:m=>{A(m.target.value),V(null)},onKeyDown:m=>{m.key==="Enter"&&H()},placeholder:"gpt-4.1-mini","aria-label":"Preferred Scoutbot model",className:`h-8 min-w-0 flex-1 px-2 font-mono text-sm ${je}`}),h.jsx("button",{type:"button",onClick:()=>{H()},disabled:T||!w.trim()||w.trim()===n?.config.model,className:`flex h-8 min-w-14 items-center justify-center px-2 font-mono text-xs uppercase tracking-[0.09em] ${Ct}`,children:T?h.jsx(st,{size:10,className:"animate-spin"}):"Apply"})]}),M&&h.jsx("p",{className:"mt-1.5 font-mono text-xs text-[var(--scout-chrome-ink-faint)]",children:M})]})]}),h.jsxs("button",{type:"button",onClick:x,className:"mt-auto flex h-8 w-full shrink-0 items-center justify-center gap-1.5 rounded-md font-mono text-xs uppercase tracking-[0.09em] text-[var(--scout-chrome-ink-faint)] transition-colors hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink-strong)]",children:[h.jsx(Gt,{size:11}),"Voice settings"]})]})]})}function Pn(t){return new Date(t).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function wn(t){if(!t)return null;const e=t.toLowerCase();return e.includes("active response in progress")||e.includes("conversation already has an active response")?null:e.includes("realtime voice call is already active")?"Live voice is still running on this Scout host. Stop it from the footer, or wait a moment for it to finish closing.":t}function kn(t){switch(t){case"navigation":return"Navigate";case"scoutbot":return"Scoutbot";case"agent":return"Agent ask";case"error":return"Error";default:return"Voice"}}function Tn(t){switch(t){case"navigation":return"border-sky-300/25 bg-sky-300/[0.06] text-sky-100/80";case"scoutbot":return"border-violet-300/25 bg-violet-300/[0.06] text-violet-100/80";case"agent":return"border-amber-300/25 bg-amber-300/[0.06] text-amber-100/80";case"error":return"border-red-300/25 bg-red-300/[0.06] text-red-100/80";default:return"border-lime-300/20 bg-lime-300/[0.05] text-lime-100/70"}}const Vt="openscout:toggle-scoutbot";function Sn(t){if(typeof window>"u")return;const e={};window.dispatchEvent(new CustomEvent(Vt,{detail:e}))}function oo(t){if(typeof window>"u")return()=>{};const e=i=>{const s=i.detail??{};t(s)};return window.addEventListener(Vt,e),()=>window.removeEventListener(Vt,e)}function En(t){switch(t){case"listening":return"listening";case"thinking":return"thinking";case"speaking":return"speaking";case"briefing":return"thinking";default:return""}}function jn(t){return t==="thinking"||t==="briefing"}function Cn(t){return t!=="idle"?{kind:"activity",activity:t,label:En(t)}:{kind:"idle"}}function Dn(t,e,i){const s=[];return t.kind==="activity"?s.push(`Scout · ${t.label}`):s.push("Toggle Scout"),e&&s.push(e),i&&s.push(i),s.join(`
|
|
10
|
-
`)}function ro(){const{state:t,actions:e}=Ms(),i=Vs(),s=Cn(t.activity),r=Dn(s,t.session.title,t.error),a=s.kind==="activity"?"s-scoutbot-chip--activity":"s-scoutbot-chip--idle",n=()=>{Sn()},o=l=>{const c=[{kind:"action",label:"New chat",onSelect:()=>e.startNewChat()},{kind:"action",label:t.voice.replies?"Turn voice replies off":"Turn voice replies on",onSelect:()=>e.toggleVoiceReplies()},{kind:"separator"},{kind:"action",label:"Open chat",onSelect:()=>e.focusScoutbot()}];i(l,c)};return h.jsxs("button",{type:"button",className:`s-scoutbot-chip ${a}`,onClick:n,onContextMenu:o,title:r,children:[h.jsx(Us,{size:14,className:"s-scoutbot-chip-icon","aria-hidden":"true"}),s.kind==="activity"&&h.jsxs(h.Fragment,{children:[jn(s.activity)?h.jsx(st,{size:10,className:"s-scoutbot-chip-spinner","aria-hidden":"true"}):h.jsx("span",{className:"s-scoutbot-chip-dot s-scoutbot-chip-dot--pulse","aria-hidden":"true"}),h.jsx("span",{className:"s-scoutbot-chip-text",children:s.label})]})]})}function It(t){return t.handle??t.id}function Rn(t,e){if(!e)return!0;const i=e.toLowerCase();return t.name.toLowerCase().includes(i)||It(t).toLowerCase().includes(i)||t.id.toLowerCase().includes(i)}function Ln({agents:t,query:e,excludeIds:i,maxResults:s=50}){const r=g.useMemo(()=>new Set(i??[]),[i]),a=g.useMemo(()=>t.filter(d=>!r.has(d.id)&&Rn(d,e.trim())).slice(0,s),[t,r,e,s]),[n,o]=g.useState(0);g.useEffect(()=>{o(u=>a.length===0?0:Math.min(u,a.length-1))},[a]);const l=g.useCallback(u=>{o(d=>a.length===0?0:(d+u+a.length)%a.length)},[a.length]),c=g.useCallback(()=>o(0),[]);return{filtered:a,highlightedIndex:n,setHighlightedIndex:o,moveHighlight:l,resetHighlight:c}}function An({agents:t,highlightedIndex:e,onSelect:i,onHover:s,emptyHint:r,pendingId:a,className:n,id:o}){return t.length===0?h.jsx("div",{className:`agent-autocomplete ${n??""}`,id:o,children:h.jsx("div",{className:"agent-autocomplete-empty",children:r??"No matches."})}):h.jsx("div",{className:`agent-autocomplete ${n??""}`,role:"listbox",id:o,children:t.map((l,c)=>{const u=It(l),d=c===e;return h.jsxs("button",{type:"button",role:"option","aria-selected":d,className:`agent-autocomplete-item${d?" is-active":""}`,onMouseDown:f=>{f.preventDefault(),i(l)},onMouseEnter:()=>s?.(c),disabled:a===l.id,children:[h.jsx("div",{className:"agent-autocomplete-avatar",style:{background:_s(l.name)},children:l.name[0]?.toUpperCase()??"?"}),h.jsxs("div",{className:"agent-autocomplete-info",children:[h.jsx("span",{className:"agent-autocomplete-name",children:l.name}),h.jsxs("span",{className:"agent-autocomplete-handle",children:["@",u]})]})]},l.id)})})}const Mn=/(^|\s)@([a-zA-Z0-9_.-]*)$/,ut=4,Vn=254;function Nn(t,e){if(e<=0)return null;const i=t.slice(0,e),s=Mn.exec(i);if(!s)return null;s[1];const r=s[2]??"",a=i.length-r.length-1;return a<0?null:(t.slice(e,e+1),{start:a,end:e,query:r})}const Bn=["boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","tabSize","whiteSpace","wordWrap","wordBreak"];function In(t,e){const i=document.createElement("div");document.body.appendChild(i);const s=i.style,r=window.getComputedStyle(t);s.position="absolute",s.visibility="hidden",s.whiteSpace="pre-wrap",s.wordWrap="break-word",s.top="0",s.left="-9999px";for(const c of Bn)s[c]=r[c];i.textContent=t.value.slice(0,e);const a=document.createElement("span");a.textContent=t.value.slice(e)||".",i.appendChild(a);const n=a.offsetTop,o=a.offsetLeft,l=parseInt(r.lineHeight,10)||a.offsetHeight;return document.body.removeChild(i),{top:n,left:o,height:l}}const ao=g.forwardRef(function({agents:e,excludeIds:i,value:s,onChange:r,onSubmit:a,placeholder:n,rows:o=1,disabled:l,submitOnEnter:c=!1,className:u,textareaClassName:d,emptyHint:f,onMention:p},x){const y=g.useRef(null),b=g.useRef(null),[v,P]=g.useState(null),[k,w]=g.useState(null);g.useImperativeHandle(x,()=>({focus:()=>y.current?.focus(),blur:()=>y.current?.blur(),get textarea(){return y.current}}),[]);const A=v?.query??"",{filtered:E,highlightedIndex:C,setHighlightedIndex:T,moveHighlight:S}=Ln({agents:e,query:A,excludeIds:i}),M=g.useCallback(()=>{const m=y.current;if(!m)return;const N=window.getComputedStyle(m),I=parseFloat(N.minHeight)||0,F=parseFloat(N.maxHeight);m.style.height="0px";const $=Math.max(m.scrollHeight,I),U=Number.isFinite(F)&&F>0?Math.min($,F):$;m.style.height=`${U}px`,m.style.overflowY=$>U?"auto":"hidden"},[]);g.useLayoutEffect(()=>{M()},[M,s]);const V=g.useCallback(()=>{const m=y.current;if(!m)return;const N=Nn(m.value,m.selectionStart??0);P(N)},[]);g.useLayoutEffect(()=>{const m=y.current;if(!m||!v){w(null);return}const{top:N,left:I,height:F}=In(m,v.start),$=m.getBoundingClientRect(),U=m.parentElement?.getBoundingClientRect(),J=U?$.top-U.top:0,yt=U?$.left-U.left:0,tt=b.current?.offsetHeight||Vn,G=window.visualViewport,zt=G?.offsetTop??0,ss=zt+(G?.height??window.innerHeight),Ot=$.top+N-m.scrollTop,is=Ot+F,$t=ss-is-ut,ns=Ot-zt-ut,os=$t<tt&&ns>$t;w({top:os?J+N-m.scrollTop-tt-ut:J+N+F-m.scrollTop+ut,left:yt+I-m.scrollLeft})},[v,s,E.length]);const H=g.useCallback(m=>{const N=y.current,I=v;if(!N||!I)return;const F=It(m),$=s.slice(0,I.start),U=s.slice(I.end),J=`@${F} `,yt=`${$}${J}${U}`;r(yt),p?.(m),P(null);const tt=I.start+J.length;queueMicrotask(()=>{const G=y.current;G&&(G.focus(),G.setSelectionRange(tt,tt))})},[v,s,r,p]),W=m=>{if($s(m)||c&&m.key==="Enter"&&!m.shiftKey&&!m.nativeEvent?.isComposing&&!(v&&E.length>0)){m.preventDefault(),a?.();return}if(v&&E.length>0){if(m.key==="ArrowDown"){m.preventDefault(),S(1);return}if(m.key==="ArrowUp"){m.preventDefault(),S(-1);return}if(m.key==="Enter"||m.key==="Tab"){if(m.key==="Enter"&&m.shiftKey)return;const I=E[C];if(I){m.preventDefault(),H(I);return}}if(m.key==="Escape"){m.preventDefault(),P(null);return}}};return h.jsxs("div",{className:`agent-mention-wrap ${u??""}`,children:[h.jsx("textarea",{ref:y,className:d,value:s,rows:o,placeholder:n,disabled:l,onChange:m=>{r(m.target.value),M(),queueMicrotask(V)},onKeyUp:V,onClick:V,onBlur:()=>P(null),onKeyDown:W,"aria-autocomplete":"list"}),v&&h.jsx("div",{ref:b,className:"agent-mention-popover",style:{top:`${k?.top??0}px`,left:`${k?.left??0}px`,visibility:k?void 0:"hidden"},children:h.jsx(An,{agents:E,highlightedIndex:C,onSelect:H,onHover:T,emptyHint:f??"No matches."})})]})});export{ao as A,Fs as H,Xs as P,Gt as S,Qn as V,Jn as a,eo as b,ro as c,io as d,no as e,so as m,oo as o};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as G,f as W}from"./context-budget-DqxWzalx.js";import{a as O}from"./colors-BtO5_zlx.js";import{t as D}from"./time-Dhsh_2EG.js";import{a as E}from"./lane-observe-vfyACHi0.js";import{t as H,s as N}from"./bash-format-BRV5C6Gv.js";import{b as _,h as z,f as y}from"./agent-lane-preview-BhplDYGf.js";import{l as J}from"./agent-lanes-model-tc-1hE6q.js";const g=14;function U(o){const t=(o??"").toLowerCase();return/bash|shell|exec|run|command|terminal/.test(t)?"❯":/edit|write|apply|patch|create|update|str_replace|multiedit/.test(t)?"✎":/read|view|cat|open/.test(t)?"◎":/grep|search|glob|find|rg|ripgrep/.test(t)?"⌕":/fetch|web|browse|url/.test(t)?"⤓":"▸"}function V(o){const t=o.arg?.trim(),e=!!t&&(t.startsWith("{")||t.startsWith("["));let a;if(!t||e||t==="started"||t==="completed")a=o.tool??"tool";else{let i=H(t);i=N(i).rest||i,a=E(i,56)}return{mark:U(o.tool),tone:"tool",text:a,full:t||(o.tool??a)}}function q(o){const t=o.replace(/\/+$/u,"").split(/[\\/]/u).filter(Boolean);return t.length===0?o:t.slice(-2).join("/")}function T(o){const t=o?.trim();return t?(t.split("/").pop()??t).replace(/\.jsonl$/u,"").slice(0,8):null}function K(o){const t=o?.trim();if(!t)return null;let e=t.replace(/^[a-z0-9.]+\//iu,"");return e=e.replace(/^(claude|anthropic)-/iu,""),e=e.replace(/-(\d{8})$/u,""),e=e.replace(/-(\d+)-(\d+)(?=$|-)/gu,"-$1.$2"),e||t}function Q(o){return o==="created"?"new":o==="read"?"read":"mod"}function v(o){return(o??"").replace(/^\s*[←→↳⇒➜]+\s*/u,"").trim()}function X(o){const t=o.trim().toLowerCase().replace(/[[\]…]/gu,"").trim();return t===""||t==="thinking"||t==="running tool"||t==="turn update"}function se(o,t){const{agent:e,observe:a,source:i,facts:r}=o,l=_(a,e,{isLive:t.isLive}),u=a?.metadata?.session,f=r?.cwd??e.cwd??e.projectRoot??null,S=f?q(f):null,C=e.harnessSessionId?.trim()||null,$=e.agentClass==="operator"?{label:"operator",title:[e.role?`Role: ${e.role}`:"Privileged operator agent",e.authorityProfile?`Reads: ${e.authorityProfile.readTools.join(", ")||"none"}`:null,e.authorityProfile?`Writes: ${e.authorityProfile.writeTools.join(", ")||"none"}`:null,e.authorityProfile?`Shell: ${e.authorityProfile.shell?"allowed":"blocked"}; code writes: ${e.authorityProfile.codebaseWrites?"allowed":"blocked"}`:null,e.runtimePolicy?.sandbox?`Sandbox: ${e.runtimePolicy.sandbox}`:null].filter(Boolean).join(" · ")}:null,m=(r?.touchedFiles.length?r.touchedFiles:l?.files??[]).filter(n=>z(y(n))),F=n=>{const c=Q(n.state);return{mark:c,tone:c,text:y(n),full:n.path}},p=n=>{const c=n.map(F);return{rows:c.slice(0,g),more:Math.max(0,c.length-g)}},w=(a?.events??[]).filter(n=>n.kind==="tool"),b=w.slice(-g).reverse().map(V),I={tools:{rows:b,more:Math.max(0,w.length-b.length)},edits:p(m.filter(n=>n.state!=="read")),reads:p(m.filter(n=>n.state==="read")),files:p(m)},s=r?.usage??a?.metadata?.usage??null,h=G(s,{model:r?.model??l?.model??e.model??u?.model??null,adapterType:e.harness??l?.harness??u?.adapterType??null}),A=h?Math.min(100,h.pct):null,L=h?.usedLabel??W(s?.contextInputTokens),R=r?.turn?.index??u?.turnCount??null,k=s?[{label:"in",value:s.inputTokens},{label:"out",value:s.outputTokens},{label:"cache rd",value:s.cacheReadInputTokens},{label:"cache wr",value:s.cacheCreationInputTokens},{label:"total",value:s.totalTokens},{label:"reasoning",value:s.reasoningOutputTokens}].filter(n=>typeof n.value=="number"):[],j=k.length>0?{total:typeof s?.totalTokens=="number"?s.totalTokens:null,dials:k}:null,P=O(e.state??null,e),M=l?.headlineFrom==="user"?"from":l?.headlineFrom==="agent"?"to":null,x=v(l?.headline),d=!l||X(x),B={dir:d?null:M,text:d?P?"thinking…":"idle":x,full:d||!l||l.headFull===l.headline?null:v(l.headFull),placeholder:d};return{name:J(e,i),authority:$,harness:e.harness??l?.harness??u?.adapterType??null,model:K(r?.model??l?.model??e.model??u?.model??null),effort:r?.effort??u?.effort??null,cwd:S,cwdFull:f,branch:r?.branch??l?.branch??e.branch??null,sessionId:T(e.harnessSessionId),sessionIdFull:C,parentSessionId:r?.parentSessionId??null,parentSessionLabel:r?.parentSessionId?[r.parentAgentName,T(r.parentSessionId)].filter(Boolean).join(" · "):null,time:o.lastActiveAt?D(o.lastActiveAt,t.nowMs):null,working:P,head:B,stats:{tools:l?.stats.tools??0,edits:l?.stats.edits??0,reads:l?.stats.reads??0,files:l?.stats.files??0},context:A,tokens:L,turns:R,tokenUsage:j,pops:I}}export{se as a};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{d as Ke,i as xe}from"./context-budget-DqxWzalx.js";import{i as we}from"./terminal-sessions-Bdt2W3Y4.js";import{c as ze,d as Re,o as Ge,i as Ue,l as Q,L as ke}from"./lane-observe-vfyACHi0.js";import{a as qe,i as Ve,b as Xe,c as Se,d as Qe}from"./lane-edit-display-C_Aujldz.js";import{i as Je,b as Ze,t as Ye,e as et,f as tt,g as nt}from"./tail-display-DcliDVkW.js";function H(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function Ee(e,t){return H(H(e)?.[t])}function st(e){const s=H(e.raw)?.type;return typeof s=="string"?s:void 0}function ot(e){const s=Ee(e.raw,"payload")?.type;return typeof s=="string"?s:void 0}const rt=/context\s+compacted|compacted\s+·/iu;function it(e){const t=e.summary.trim();return t&&(e.source==="codex"&&(Ee(H(e.raw),"payload"),ot(e)==="context_compacted"||st(e)==="compacted")||rt.test(t))?t:null}function at(e,t,s){let n=null,o=null;for(const c of e){const l=it(c);l&&(n===null||c.ts>=n)&&(n=c.ts,o=l)}const r=Ke(t,s);let i=null;return r?.overLimit?i="over_limit":r&&r.pct>=80?i="high_context":n!==null&&(i="post_compaction_point"),{eligible:!!(r&&(r.overLimit||r.pct>=75||n!==null)),reason:i,lastCompactedAt:n,lastCompactedSummary:o}}function hn(e){const t=e?.trim().toLowerCase()??"";return t==="codex"||t==="claude"||t==="claude-code"}const re="5m",te=[{key:"5m",label:"5m",windowMs:5*6e4},{key:"30m",label:"30m",windowMs:30*6e4},{key:"4h",label:"4h",windowMs:240*6e4},{key:"24h",label:"24h",windowMs:1440*6e4}];function ie(e){return te.find(t=>t.key===e)?.windowMs??te[0].windowMs}function gn(e){return te.find(t=>t.key===e)?.label??e}function yn(e){return 1e3}const be=400;function ct(e){return e?`${e[0]?.toUpperCase()}${e.slice(1).toLowerCase()}`:""}function ut(e){const t=e.name.trim();if(!t||e.agentClass==="organic")return!0;const s=e.harness?.trim();if(!s)return!1;const n=ct(s);return new RegExp(`^${n}\\s+[0-9a-f]{6}`,"i").test(t)}function ae(e,t=null){const s=e?.trim();if(!s)return!1;if(/^relay[-:]/i.test(s))return!0;const n=t?.sessionName?.trim();return!!(n&&s===n)}function N(e){const t=e.harnessSessionId?.trim();return t?!ae(t,e.terminalSurface):!1}function q(e){return e.transport==="codex_app_server"&&e.state==="available"}function lt(e,t,s){return(e.brokerActivity??[]).filter(n=>n.at>0&&t-n.at<=s)}function wn(e,t=Date.now(),s=re){if(q(e))return!1;if(e.harnessSessionId?.trim()||e.state&&/^(working|active|running|in_turn|in_flight|queued|waking|dispatching)$/i.test(e.state.trim()))return!0;const n=ie(s);return e.updatedAt?t-e.updatedAt<=n:!1}function j(e,t){return t==="scout"&&e.agentClass!=="organic"&&!ut(e)&&(N(e)||(e.brokerActivity?.length??0)>0)}function dt(e,t){return e.role==="subagent"?e.name.trim()||"Subagent":j(e,t)?e.name.trim()||"Agent":e.project?.trim()||e.harness?.trim()||"local"}function kn(e,t){return e.harness?.trim()||dt(e,t)}function Sn(e,t){if(j(e,t))return[e.project,e.branch].filter(Boolean).join(" · ")||e.harness||"local";const s=e.harness?.trim(),n=e.harnessSessionId?.trim();return s&&n?`${s} · ${n.replace(/\.jsonl$/u,"").slice(0,8)}`:s||n?.slice(0,8)||"native"}function ft(e){let t=2166136261;for(let s=0;s<e.length;s+=1)t^=e.charCodeAt(s),t=Math.imul(t,16777619);return(t>>>0).toString(36)}function ne(e){const t=e.sessionId?.trim();return t?`native:${e.source}:${t}`:`native:${e.source}:path:${ft(e.transcriptPath)}`}function _(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function $(e){const t=_(e.raw);return _(t?.payload)}function ce(e){const s=_(e.raw)?.type;return typeof s=="string"?s:null}function V(e){const s=$(e)?.type;return typeof s=="string"?s:null}function f(...e){for(const t of e){if(typeof t!="string")continue;const s=t.trim();if(s)return s}}function k(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function I(e,t){return _(e?.[t])}function Fe(e,t){let s=null;for(const n of e){if(ce(n)!==t)continue;const o=$(n);o&&(!s||n.ts>=s.event.ts)&&(s={event:n,payload:o})}return s?.payload??null}function ue(e){return Fe(e,"turn_context")}function Le(e){return Fe(e,"session_meta")}function Ce(e){const t=I(e,"collaboration_mode"),s=I(t,"settings");return f(e?.effort,s?.reasoning_effort)}function K(e){return f(e?.gitBranch,e?.git_branch,e?.currentBranch,e?.current_branch,e?.branch)}function mt(e,t,s="session"){if(e.source!=="codex")return null;if(ce(e)!=="event_msg"||V(e)!=="token_count"){const b=e.summary.match(/^tokens? · ([0-9,]+)/i)?.[1]?.replace(/,/g,""),w=b?Number.parseInt(b,10):NaN;return Number.isFinite(w)?{totalTokens:w}:null}const n=$(e),o=I(n,"info"),r=I(o,"total_token_usage"),i=I(o,"last_token_usage"),u=I(n,"rate_limits");if(!r&&!o&&!u)return null;const c=s==="turn"?i??r:r??i,l={},p=k(c?.input_tokens),d=k(i?.input_tokens),m=k(c?.output_tokens),g=k(c?.reasoning_output_tokens),v=k(c?.cached_input_tokens)??k(c?.cache_read_input_tokens),x=k(c?.cache_creation_input_tokens)??k(c?.cache_write_input_tokens),M=k(c?.total_tokens)??(p!==void 0||m!==void 0?(p??0)+(m??0):void 0),D=k(o?.model_context_window)??xe({model:t,adapterType:"codex"}),a=f(n?.service_tier,u?.service_tier),S=f(n?.speed,u?.speed),y=f(n?.plan_type,u?.plan_type);return p!==void 0&&(l.inputTokens=p),d!==void 0&&(l.contextInputTokens=d),m!==void 0&&(l.outputTokens=m),g!==void 0&&(l.reasoningOutputTokens=g),v!==void 0&&(l.cacheReadInputTokens=v),x!==void 0&&(l.cacheCreationInputTokens=x),M!==void 0&&(l.totalTokens=M),D!==void 0&&(l.contextWindowTokens=D),a&&(l.serviceTier=a),S&&(l.speed=S),y&&(l.planType=y),Object.keys(l).length>0?l:null}function pt(e){if(e.source!=="claude"||ce(e)!=="assistant")return null;const t=_(e.raw),s=_(t?.message),n=_(s?.usage);if(!s||!n)return null;const o=k(n.input_tokens),r=k(n.output_tokens),i=k(n.cache_read_input_tokens),u=k(n.cache_creation_input_tokens),c=(o??0)+(i??0)+(u??0),l=k(n.context_window_tokens)??k(n.contextWindowTokens)??k(n.model_context_window)??k(s.context_window_tokens)??k(s.contextWindowTokens)??k(s.model_context_window)??xe({model:f(s.model),adapterType:"claude-code"}),p=(o??0)+(r??0)+(i??0)+(u??0),h=_(n.server_tool_use),d={};o!==void 0&&(d.inputTokens=o),c>0&&(d.contextInputTokens=c),r!==void 0&&(d.outputTokens=r),i!==void 0&&(d.cacheReadInputTokens=i),u!==void 0&&(d.cacheCreationInputTokens=u),p>0&&(d.totalTokens=p),l>0&&(d.contextWindowTokens=l);const m=k(h?.web_search_requests),g=k(h?.web_fetch_requests);m!==void 0&&(d.webSearchRequests=m),g!==void 0&&(d.webFetchRequests=g);const v=f(s.service_tier,n.service_tier),x=f(s.speed,n.speed);return v&&(d.serviceTier=v),x&&(d.speed=x),Object.keys(d).length>0?d:null}function Ne(e,t){let s=null;const n=ue(e),o=f(n?.model,I(I(n,"collaboration_mode"),"settings")?.model),r=t?.scope??"session";for(const i of e){if(i.source!=="codex"&&i.source!=="claude"||i.source==="codex"&&V(i)!=="token_count"&&!/^tokens?(?: ·|$)/i.test(i.summary.trim()))continue;const u=i.source==="codex"?mt(i,o,r):pt(i);u&&(!s||i.ts>=s.ts)&&(s={ts:i.ts,usage:u})}return s?.usage}function ht(e,t){const s=Le(t),n=ue(t),o=I(n,"collaboration_mode"),r=I(o,"settings"),i=_(n?.sandbox_policy),u=_(n?.permission_profile),c={adapterType:e.source,cwd:f(n?.cwd,s?.cwd,e.cwd)??void 0,externalSessionId:f(s?.id,e.sessionId)??void 0,threadId:f(n?.turn_id)??void 0,threadPath:e.transcriptPath,model:f(n?.model,r?.model)??void 0,effort:Ce(n),gitBranch:K(n)??K(s),cliVersion:f(s?.cli_version),entrypoint:f(s?.thread_source,s?.source),originator:f(s?.originator,s?.source),source:f(s?.source),approvalPolicy:f(n?.approval_policy),sandbox:f(i?.type,n?.sandbox),permissionMode:f(u?.type,n?.permission_mode),userType:f(s?.user_type,n?.user_type),modelProvider:f(s?.model_provider,n?.model_provider),timezone:f(n?.timezone)};for(const l of Object.keys(c))c[l]===void 0&&delete c[l];return c}function gt(e){let t,s,n;for(const o of e){if(o.source!=="claude")continue;const r=_(o.raw);if(!r)continue;const i=f(r.gitBranch);i&&(!s||o.ts>=s.ts)&&(s={ts:o.ts,value:i});const u=f(r.cwd);u&&(!n||o.ts>=n.ts)&&(n={ts:o.ts,value:u});const c=I(r,"message"),l=f(c?.model);l&&(!t||o.ts>=t.ts)&&(t={ts:o.ts,value:l})}return{model:t?.value,gitBranch:s?.value,cwd:n?.value}}function yt(e,t){const s=new Map;for(const n of[...e??[],...t??[]]){const o=n.path?.trim();if(!o||!Ue(o))continue;const r=s.get(o);if(!r){s.set(o,{...n,path:o});continue}r.touches+=n.touches,r.lastT=Math.max(r.lastT,n.lastT),r.state==="read"&&n.state!=="read"&&(r.state=n.state),r.state==="modified"&&n.state==="created"&&(r.state="created")}return[...s.values()].sort((n,o)=>{const r=n.state==="read"?0:1,i=o.state==="read"?0:1;return r!==i?i-r:o.lastT-n.lastT})}function wt(e){let t=-1,s=-1,n=0;for(const o of e){const r=o.summary.trim().toLowerCase(),i=V(o);(r==="task started"||i==="task_started")&&(t=Math.max(t,o.ts),n+=1),(r==="task complete"||i==="task_complete"||i==="turn_aborted")&&(s=Math.max(s,o.ts))}return n===0&&s<0?{phase:"idle"}:{phase:t>s?"started":"complete",index:n||void 0}}function kt(e,t){const s=[...t?.events??[]].reverse().find(n=>n.kind==="ask"&&n.text.trim());if(s)return Q(s.text,160,2);for(const n of[...e].sort((o,r)=>r.ts-o.ts)){if(n.kind==="user"&&n.summary.trim())return Q(n.summary,160,2);const o=$(n);if(V(n)==="user_message"){const r=f(o?.message);if(r)return Q(r,160,2)}}}function St(e){let t;for(const s of e)(!t||(U[s.harness]??0)>(U[t]??0))&&(t=s.harness);return t}function bt(e,t,s){const n=ht(e,t),o=gt(t);return{...n,model:n.model??o.model,gitBranch:n.gitBranch??o.gitBranch,cwd:n.cwd??o.cwd??e.cwd??void 0,externalSessionId:n.externalSessionId??e.sessionId??void 0,sessionStart:s}}function Me(e){if(!e?.trim())return null;try{return _(JSON.parse(e))}catch{return null}}function vt(e){const t=$(e);return f(t?.name,t?.type)}function Pe(e){const t=$(e),s=t?.arguments;if(typeof s=="string")return s;const n=t?.input;if(typeof n=="string")return n;const o=t?.command;if(Array.isArray(o))return o.filter(r=>typeof r=="string").join(" ");if(typeof o=="string")return o}function _t(e){if(e.source!=="codex")return;const t=vt(e)?.toLowerCase();if(t!=="apply_patch"&&t!=="patch_apply")return;const s=Pe(e),n=Me(s);return f(n?.patch,n?.input,s)}function Tt(e){if(!e?.trim())return;let t=0,s=0;const n=[];for(const o of e.split(/\r?\n/))o.startsWith("+")&&!o.startsWith("+++")&&(t+=1),o.startsWith("-")&&!o.startsWith("---")&&(s+=1),n.length<24&&/^(?:\*\*\* |@@|\+\+\+|---|[+-])/.test(o)&&n.push(o);if(!(t===0&&s===0&&n.length===0))return{add:t,del:s,preview:n.join(`
|
|
2
|
-
`)}}function At(e){const t=_(e.raw);return t?_(t.tool_input):null}function $e(e,t){if(!Ve(t))return null;if(e.source==="grok"){const o=Xe(e.summary);if(o)return o;const r=Se(At(e));if(r)return r}const s=Pe(e),n=Se(Me(s));return n||null}function It(e,t){const s=_t(e);if(s)return s;const n=$e(e,t);if(n&&(n.oldText||n.newText))return Qe(n)}function Oe(e,t,s){const n=[...e].sort((o,r)=>o.ts-r.ts);return typeof s=="number"&&s>0?n.filter(o=>o.ts>=t-s):n}function ve(e,t,s){const n=Oe(e,t,s),o=nt(n);return o.length>be?o.slice(-be):o}function xt(e,t,s,n){const o=n?.now??Date.now(),r=Oe(t,o,n?.windowMs),i=ve(r,o,void 0),u=i.length>=ke?i:ve(t,o,void 0).slice(-ke),c=u[0]?.ts??e.mtimeMs,l=u.map(d=>{const m=Ze(d),g=$e(d,m.tool),v=Ye(d,e)??It(d,m.tool),x=g&&(g.oldText||g.newText)?qe(g):Tt(v);return{id:d.id,t:Math.max(0,Math.round((d.ts-c)/1e3)),at:d.ts,kind:tt(d),text:et(d,m),tool:m.tool,arg:m.arg,result:m.result,stream:m.stream,diff:x,detail:v,live:s&&d.id===u[u.length-1]?.id}}),p=Re(l),h=Ne(r,{scope:typeof n?.windowMs=="number"&&n.windowMs>0?"turn":"session"});return{events:l,files:p,live:s&&l.length>0,metadata:{session:bt(e,t,c),usage:h}}}function z(e){return e?`${e[0]?.toUpperCase()}${e.slice(1)}`:"Native"}function se(e){return e?e.replace(/\.jsonl$/u,"").slice(0,8):"session"}function _e(e,t,s){const n=e.sessionId?.trim()||null,o=!!e.subagentId,r=o?`${z(e.source)} subagent ${se(e.subagentId)}`:`${z(e.source)} ${se(n)}`;return{id:ne(e),definitionId:`native:${e.source}`,name:r,handle:null,agentClass:"organic",harness:e.source,state:s?"working":"idle",projectRoot:e.cwd,cwd:e.cwd,updatedAt:t,createdAt:null,transport:null,selector:null,defaultSelector:null,nodeQualifier:null,workspaceQualifier:null,wakePolicy:null,capabilities:[],project:e.project,branch:null,role:o?"subagent":null,model:null,harnessSessionId:n,harnessLogPath:e.transcriptPath,conversationId:n??ne(e),homeNodeId:null,homeNodeName:null,ownerId:null,ownerName:null,ownerHandle:null,staleLocalRegistration:!1,retiredFromFleet:!1,replacedByAgentId:null,terminalSurface:null}}const Rt=new Set(["tmux","zellij","herdr"]);function Et(e){const t=e?.trim();if(!t)return null;const s=t.split("/").filter(Boolean);return s[s.length-1]??t}function Te(e){const t=e.surfaces.find(s=>we(s.backend));return!t||!we(t.backend)?null:{backend:t.backend,sessionName:t.sessionName,paneId:t.paneId,socketDir:t.socketDir??null}}function Ft(e){const t=e.harness?.trim();return!t||Rt.has(t.toLowerCase())||!e.sourceSessionId?.trim()||e.origin==="discovered"||e.metadata?.registryState==="discovered"?!1:e.surfaces.length>0}function X(e){const t=new Set;for(const s of[e.id,e.sourceSessionId,B(e.sourceSessionId)]){const n=s?.trim();n&&t.add(n)}for(const s of e.surfaces){const n=s.sessionName?.trim();n&&t.add(n)}return[...t]}function le(e){return`native:${e.harness}:terminal:${e.id}`}function Lt(e,t,s){const n=e.harness.trim()||"native",o=e.sourceSessionId.trim()||e.id,r=Et(e.cwd);return{id:le(e),definitionId:`native:${n}`,name:`${z(n)} ${se(o)}`,handle:null,agentClass:"organic",harness:n,state:s?"working":"idle",projectRoot:e.cwd||null,cwd:e.cwd||null,updatedAt:t,createdAt:e.createdAt??null,transport:Te(e)?.backend??null,selector:null,defaultSelector:null,nodeQualifier:null,workspaceQualifier:null,wakePolicy:null,capabilities:[],project:r,branch:null,role:null,model:null,harnessSessionId:o,harnessLogPath:null,conversationId:o,homeNodeId:null,homeNodeName:null,ownerId:null,ownerName:null,ownerHandle:null,staleLocalRegistration:!1,retiredFromFleet:!1,replacedByAgentId:null,terminalSurface:Te(e)}}function Ct(e){const t=e.surfaces[0];return t?`${t.backend}:${t.sessionName}`:null}function Be(e){const t=e.harness?.trim()||"Native";return{events:[{id:`${e.id}:session-ready`,t:0,at:e.startedAt,kind:"system",text:`${z(t)} session ready`,detail:e.detail??e.cwd??e.sessionId??void 0,live:e.current}],files:[],live:e.current,metadata:{session:{adapterType:e.harness??void 0,cwd:e.cwd??void 0,externalSessionId:e.sessionId??void 0,sessionStart:e.startedAt,model:e.model??void 0,source:"session-registry"}}}}function Nt(e,t,s){const n=Ct(e),o=[n?`surface: ${n}`:null,e.cwd].filter(Boolean).join(" · ");return Be({id:le(e),harness:e.harness,sessionId:e.sourceSessionId,cwd:e.cwd,startedAt:s,current:t,detail:o||null})}function je(e){if(!e)return null;const t=e.metadata?.session?.sessionStart;let s=null;for(const n of e.events){if(!de(n))continue;const o=Ge(n,t);o!==null&&(s=s===null?o:Math.max(s,o))}if(typeof t=="number"&&Number.isFinite(t))for(const n of e.files){if(!Number.isFinite(n.lastT)||n.lastT<0)continue;const o=t+n.lastT*1e3;s=s===null?o:Math.max(s,o)}return s}function G(e){return e?.live?e.events.some(t=>t.live===!0&&de(t)):!1}function Ae(e,t,s){const n=je(e);return n===null?!1:t-n<=s}function Mt(e,t,s){if(G(t?.data))return s;const n=je(t?.data),o=e.updatedAt??0;return n!==null?Math.max(n,o):0}function J(e){return G(e)}const Pt=["transcript discovered","waiting for events","no session trace","waiting for a live session"];function $t(e){if(e.kind!=="boot"&&e.kind!=="system")return!1;const t=e.text.trim().toLowerCase(),s=(e.detail??"").trim().toLowerCase();return t.includes("session started")?s.includes("turns: 0")&&s.includes("status: idle"):!1}function de(e){if(e.kind==="tool"||e.kind==="think"||e.kind==="ask"||e.kind==="message"||e.kind==="note")return!0;if(e.kind==="system"||e.kind==="boot"){if($t(e))return!1;const t=e.text.trim().toLowerCase();return!Pt.some(s=>t.includes(s))}return!1}const U={"scout-managed":3,"hudson-managed":2,unattributed:1};function Ot(e,t){const s=e.cwd?.trim();if(!s)return e.harness;const n=t.filter(o=>o.source===e.source&&o.cwd===s);return n.length===0?e.harness:n.reduce((o,r)=>{const i=U[o.harness]??0,u=U[r.harness]??0;return u>i||u===i&&r.pid<o.pid?r:o}).harness}function Z(e,t,s,n,o,r){const i=o?.metadata?.session,u=ue(t),c=Le(t),l=e?Ot(e,n):St(t),p=o?Re(o.events):[],h=yt(o?.files,p),d=Ne(t,{scope:"turn"})??o?.metadata?.usage,m={touchedFiles:h,model:f(i?.model,u?.model,I(I(u,"collaboration_mode"),"settings")?.model,s.model),effort:f(i?.effort,Ce(u)),branch:f(i?.gitBranch,K(u),K(c),s.branch),cwd:f(i?.cwd,c?.cwd,s.cwd,s.projectRoot),originator:f(i?.originator,c?.originator,c?.source),attribution:l,turn:t.length>0?wt(t):o?.live?{phase:"started"}:{phase:"idle"},usage:d,parentSessionId:e?.parentSessionId?.trim()||void 0,parentAgentName:e?.parentSessionId&&r?C(r):void 0,currentTask:kt(t,o)},g=at(t,d,{model:m.model,adapterType:e?.source??s.harness});(g.eligible||g.lastCompactedAt!==null)&&(m.compaction={eligible:g.eligible,reason:g.reason,...g.lastCompactedAt!==null?{lastCompactedAt:g.lastCompactedAt}:{},...g.lastCompactedSummary?{lastCompactedSummary:g.lastCompactedSummary}:{}});for(const v of["model","effort","branch","cwd","originator","attribution","usage","compaction","currentTask"])m[v]===void 0&&delete m[v];return m}function Bt(e){if(Je(e))return!1;if(e.kind==="tool"||e.kind==="tool-result"||e.kind==="assistant"||e.kind==="user")return!0;if(e.kind!=="system")return!1;if(e.source==="grok")return/^turn /u.test(e.summary);if(e.source==="codex"){const t=e.summary.trim().toLowerCase();if(t==="task started"||t==="task complete"||t.startsWith("turn aborted"))return!0;const s=e.raw;if(s&&typeof s=="object"&&!Array.isArray(s)){const n=s.payload;if(n&&typeof n=="object"&&!Array.isArray(n)&&n.type==="reasoning"&&t!=="[reasoning]")return!0}}return!1}function Y(e){return e?.events.some(de)??!1}function B(e){const t=e?.trim();if(!t)return null;const s=t.split("/").pop()??t;return s.endsWith(".jsonl")?s.slice(0,-6):s}function fe(e){const t=new Set;for(const s of[e.sessionId,e.transcriptPath,B(e.sessionId),B(e.transcriptPath)]){const n=s?.trim();n&&t.add(n)}return[...t]}function De(e,t){const s=fe(e),n=new Set,o=[];for(const r of s)for(const i of t.get(r)??[])n.has(i.id)||(n.add(i.id),o.push(i));return o}function me(e){const t=new Set,s=e.harnessSessionId?.trim();if(s){t.add(s);const n=B(s);n&&t.add(n);const o=W(s);o&&t.add(o)}for(const n of[e.harnessLogPath,e.conversationId,W(e.harnessLogPath),W(e.conversationId)]){const o=n?.trim();o&&t.add(o)}return[...t]}function Ie(e){return j(e,"scout")?N(e)?2:1:0}function jt(e,t,s){const n=e.get(t);if(!n){e.set(t,s);return}const o=Ie(n),r=Ie(s);if(r>o){e.set(t,s);return}r===o&&s.id.localeCompare(n.id)<0&&e.set(t,s)}function Dt(e,t){for(const s of fe(e)){const n=t.get(s);if(n)return n}}function Wt(e,t){return me(e).some(s=>t.has(s))}function Ht(e,t){return X(e).some(s=>t.has(s))}function pe(e,t,s){const n=s?De(s,t):e?.trim()?t.get(e.trim())??[]:[];let o=0;for(const r of n)Bt(r)&&(o=Math.max(o,r.ts));return o}function Kt(e,t){let s=0;for(const n of X(e))s=Math.max(s,pe(n,t));return s}function zt(e,t){return pe(e.sessionId,t,e)}function Gt(e,t){for(const s of X(e)){const n=t.get(s);if(n)return n}}function Ut(e,t,s){if(!N(e)||q(e))return!1;const n=e.transport?.trim();if(n!=="pi_rpc"&&n!=="pairing_bridge")return!1;const o=e.updatedAt??0;return o>0&&t-o<=s}function qt(e){return e.retiredFromFleet||e.staleLocalRegistration||!j(e,"scout")||!N(e)||q(e)?0:Math.max(e.updatedAt??0,e.createdAt??0)}function Vt(e,t,s){return Be({id:e.id,harness:e.harness,sessionId:e.harnessSessionId,cwd:e.cwd??e.projectRoot,model:e.model,startedAt:s,current:t,detail:[e.transport,e.cwd??e.projectRoot,e.harnessSessionId].filter(Boolean).join(" · ")||null})}function Xt(e,t){return{events:[],files:[],live:!1,metadata:{session:{adapterType:e.harness??void 0,cwd:e.cwd??e.projectRoot??void 0,externalSessionId:e.harnessSessionId??void 0,sessionStart:t,model:e.model??void 0,source:"agent-presence"}}}}function Qt(e,t){const s=new Set(["queued","waking","running","waiting","in_flight"]);return{events:t.map((n,o)=>({id:`broker:${n.kind}:${n.id}`,t:o,at:n.at,kind:n.kind==="flight"?"tool":n.kind==="invocation"?"ask":"message",text:n.summary,...n.kind==="flight"?{tool:"scout flight",arg:n.state??void 0,live:!!(n.state&&s.has(n.state))}:{}})),files:[],live:t.some(n=>!!(n.state&&s.has(n.state))),metadata:{session:{adapterType:e.harness??"scout",cwd:e.cwd??e.projectRoot??void 0,sessionStart:t[0]?.at,source:"broker-native",approvalPolicy:e.runtimePolicy?.approvalPolicy??void 0,sandbox:e.runtimePolicy?.sandbox??void 0}}}}function ee(e,t=Date.now(),s=ie(re),n=0){const{agent:o,observe:r,lastActiveAt:i,source:u}=e;return i<=0||t-i>s?!1:u==="native"?n>0&&t-n<=s?!0:G(r)||Ae(r,t,s):!!(n>0&&t-n<=s||G(r)||Ae(r,t,s))}function oe(e,t){return e.id.localeCompare(t.id)}function Jt(e){return[e.agent.harnessSessionId,e.agent.conversationId,e.observe?.metadata?.session?.externalSessionId].filter(t=>!!t?.trim())}function Zt(e,t){const s=new Map;for(const o of e)for(const r of Jt(o))s.set(r,o);const n=new Map;for(const o of e){const r=o.facts?.parentSessionId?.trim(),i=r?s.get(r):void 0;i&&i.id!==o.id&&n.set(o.id,i)}return[...e].sort((o,r)=>{const i=n.get(o.id),u=n.get(r.id),c=i??o,l=u??r,p=t.slots.get(c.id)??Number.MAX_SAFE_INTEGER,h=t.slots.get(l.id)??Number.MAX_SAFE_INTEGER;if(p!==h)return p-h;if(c.id!==l.id)return oe(c,l);if(o.id===c.id)return-1;if(r.id===l.id)return 1;const d=t.slots.get(o.id)??Number.MAX_SAFE_INTEGER,m=t.slots.get(r.id)??Number.MAX_SAFE_INTEGER;return d!==m?d-m:oe(o,r)})}const Yt=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i;function W(e){return e?.match(Yt)?.[0]?.toLowerCase()??null}function bn(){return{slots:new Map,nextSlot:0}}function vn(e,t){const s=[];for(const r of e){const i=r.id;t.slots.has(i)||(t.slots.set(i,t.nextSlot),t.nextSlot+=1,s.push(r.id))}const n=new Set(e.map(r=>r.id));for(const r of[...t.slots.keys()])n.has(r)||t.slots.delete(r);return{lanes:Zt(e,t),newLaneIds:s}}function We(e){return W(e.harnessSessionId)??B(e.harnessSessionId)??e.harnessSessionId?.trim()??null}function C(e){return e.name.trim()||e.id}function He(e,t){return`${e}:${t}`}function O(e,t,s){const n=s.sessionRef??s.kind,o=s.id??He(s.kind,n);t.has(o)||(t.add(o),e.push({...s,id:o}))}function en(e,t){for(const s of e)for(const n of me(s)){const o=t.get(n);if(o&&e.some(r=>r.id===o.id))return o}}function tn(e){if(e.source==="cursor")return`${e.source}:path:${e.transcriptPath}`;const t=e.sessionId?.trim();return t?`${e.source}:${t}`:`${e.source}:path:${e.transcriptPath}`}function nn(e){const t=new Map,s=[];for(const n of e){if(n.source!=="cursor"){s.push(n);continue}const o=n.sessionId?.trim()||n.transcriptPath,r=t.get(o);(!r||n.mtimeMs>r.mtimeMs)&&t.set(o,n)}return[...s,...t.values()]}const sn=new Set(["codex_app_server","claude_stream_json","pairing_bridge","pi_rpc"]);function on(e){return e.retiredFromFleet||e.staleLocalRegistration?!1:ae(e.harnessSessionId,e.terminalSurface)||e.terminalSurface||e.transport?.trim()||e.state==="in_flight"?!0:N(e)}function rn(e){if(e.agentClass==="organic"||(e.brokerActivity?.length??0)>0||e.terminalSurface)return!1;const t=e.transport?.trim();return!t||t==="tmux"||t==="zellij"||!e.harness?.trim()||e.state!=="in_flight"?!1:sn.has(t)}function an(e){const t=[],s=new Set,n=new Map;for(const o of e){const r=tn(o),i=n.get(r)??[];i.push(o),n.set(r,i)}for(const[o,r]of n)r.length<=1||O(t,s,{kind:"duplicate_transcript_session",sessionRef:o,transcriptPaths:r.map(i=>i.transcriptPath),message:`Tail discovery returned ${r.length} transcripts for ${o}.`});return t}function cn(e,t){const s=e.filter(on),n=[],o=new Set,r=new Map;for(const c of s){const l=We(c);if(!l)continue;const p=r.get(l)??[];p.some(h=>h.id===c.id)||p.push(c),r.set(l,p)}const i=s.filter(c=>ae(c.harnessSessionId,c.terminalSurface));i.length>0&&O(n,o,{kind:"harness_session_polluted",sessionRef:"harness-slot",agentIds:i.map(c=>c.id),agentNames:i.map(C),message:`${i.length} agent(s) store a transport ref in harnessSessionId — use terminalSurface for attach and harnessSessionId for provider ids only.`});const u=s.filter(c=>rn(c)&&!N(c));u.length>0&&O(n,o,{kind:"harness_session_unbound",sessionRef:"fleet",agentIds:u.map(c=>c.id),agentNames:u.map(C),message:`${u.length} scout agent(s) have no provider harness session bound (lanes use tail transcripts, not agent.id).`});for(const[c,l]of r){if(l.length<=1)continue;const p=en(l,t);l.filter(d=>d.id!==p?.id).length!==0&&O(n,o,{kind:"session_binding_conflict",sessionRef:c,agentIds:l.map(d=>d.id),agentNames:l.map(C),selectedAgentId:p?.id,message:p?`Multiple scout agents claim ${c}; showing ${C(p)}.`:`Multiple scout agents claim ${c} but none could be selected.`})}return n}function _n(e){if(!e?.issues?.length)return[];const t=new Set,s=[];for(const n of e.issues)n.sessionKey.startsWith("cursor:")||t.has(n.sessionKey)||(t.add(n.sessionKey),s.push({id:He("transcript_path_collision",n.sessionKey),kind:"transcript_path_collision",sessionRef:n.sessionKey,transcriptPaths:n.transcriptPaths,message:n.message}));return s}function Tn(e){const{transcripts:t,tailEvents:s,processes:n=[],scoutAgents:o=e.agents??[],terminalSessions:r=[],observeCache:i={},now:u,workingOnly:c=!0,horizon:l=re}=e,p=nn(t),h=ie(l),d=[],m=new Map;for(const a of s){const S=m.get(a.sessionId)??[];S.push(a),m.set(a.sessionId,S)}const g=new Map;for(const a of o)for(const S of me(a))jt(g,S,a);const v=new Set,x=new Set,M=[...an(p),...cn(o,g)],D=new Set(M.map(a=>a.id));for(const a of p){a.sessionId?.trim();const S=De(a,m),y=zt(a,m),b=y>0&&u-y<=h;if(!b)continue;const w=Dt(a,g),E=a.parentSessionId?g.get(a.parentSessionId):void 0;w&&x.add(w.id);const T=xt(a,S,b,{now:u,windowMs:h}),F=S.length>0,L=Z(a,S,w??_e(a,y,b),n,T,E),R=y,P=w?{id:w.id,agent:{...w,updatedAt:y},source:"scout",observe:T,facts:L,lastActiveAt:y,current:b}:{id:ne(a),agent:_e(a,y,b),source:"native",observe:T,facts:L,lastActiveAt:y,current:b};if(!(c&&!ee(P,u,h,R))&&!(F&&!Y(T)&&!J(T))){for(const A of fe(a))v.add(A);d.push(P)}}for(const a of r){if(!Ft(a)||Ht(a,v))continue;const S=Kt(a,m),y=Math.max(S,a.updatedAt??0,a.createdAt??0),b=y>0&&u-y<=h;if(!b)continue;const w=Gt(a,g);w&&x.add(w.id);const E=Lt(a,y,b),T=w?{...w,harnessSessionId:w.harnessSessionId??a.sourceSessionId,terminalSurface:w.terminalSurface??E.terminalSurface,updatedAt:Math.max(w.updatedAt??0,y)}:E,F=Nt(a,b,y),L={id:w?w.id:le(a),agent:T,source:w?"scout":"native",observe:F,facts:Z(null,[],T,n,F),lastActiveAt:y,current:b};if(!(c&&!ee(L,u,h,S||y))){for(const R of X(a))v.add(R);d.push(L)}}for(const a of o){const S=lt(a,u,h);if(q(a)&&S.length===0||!j(a,"scout"))continue;const y=N(a);if(!y&&S.length===0)continue;if(y&&Wt(a,v)){if(!x.has(a.id)){const ye=We(a)??a.id;O(M,D,{kind:"shadowed_scout_card",sessionRef:ye,agentIds:[a.id],agentNames:[C(a)],message:`${C(a)} is active but hidden because another lane already represents ${ye}.`})}continue}const b=i[a.id],w=y?pe(a.harnessSessionId,m):0,E=S.at(-1)?.at??0,T=qt(a),F=Ut(a,u,h),L=F?a.updatedAt??0:0,R=Math.max(Mt(a,b,u),w,L,T,E),P=R>0&&u-R<=h;let A=ze(b?.data??null,u,h);!A&&S.length>0&&(A=Qt(a,S)),F&&P&&!Y(A)&&!J(A)?A=Vt(a,P,R):!A&&T>0&&(A=Xt(a,R));const he={id:a.id,agent:a,source:"scout",observe:A,facts:Z(null,[],a,n,A),lastActiveAt:R,current:P},ge=T>0&&u-T<=h||E>0;c&&!ge&&!ee(he,u,h,w)||!ge&&!Y(A)&&!J(A)||d.push(he)}return{lanes:d.sort(oe),issues:M}}export{te as A,re as D,Sn as a,q as b,on as c,kn as d,wn as e,je as f,Tn as g,yn as h,J as i,ie as j,gn as k,dt as l,bn as m,vn as n,xt as o,_n as r,hn as s};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.amv{display:flex;height:100%;min-height:0;background:var(--bg)}.amv-main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}.amv-head{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--border)}.amv-ident{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.amv-name{font:600 14px/1.2 var(--font-sans);color:var(--ink)}.amv-sub{display:flex;align-items:center;gap:6px;font:400 11.5px/1.3 var(--font-sans);color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.amv-dot{flex:none;width:6px;height:6px;border-radius:50%;background:var(--green, #4ade80)}.amv-dot[data-tone=attention]{background:var(--accent)}.amv-dot[data-tone=pending]{background:var(--dim)}.amv-strip{display:flex;gap:8px;padding:8px 16px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:thin}.amv-card{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--muted);cursor:pointer;white-space:nowrap;font:400 11.5px/1.3 var(--font-sans);flex:none}.amv-card:hover{background:color-mix(in srgb,var(--ink) 5%,var(--surface))}.amv-card--on{border-color:var(--accent);color:var(--ink)}.amv-cardTitle{font-weight:550;color:var(--ink);overflow:hidden;text-overflow:ellipsis;max-width:260px}.amv-cardMeta{font-family:var(--font-mono);font-size:10px;color:var(--dim)}.amv-mark{flex:none;width:7px;height:7px;border-radius:2px;box-shadow:inset 0 0 0 1px var(--border)}.amv-mark[data-state=working]{background:var(--green, #4ade80);box-shadow:none}.amv-mark[data-state=needs_you]{background:var(--accent);box-shadow:none}.amv-feed{flex:1;min-height:0;display:flex;flex-direction:column}.amv-feed>*{flex:1;min-height:0}.amv-empty{flex:1;display:grid;place-items:center;color:var(--dim);font:400 12.5px/1.4 var(--font-sans)}.amv-thread{width:min(420px,44%);min-width:320px;border-left:1px solid var(--border);display:flex;flex-direction:column;min-height:0;background:var(--bg)}.amv-threadHead{display:flex;align-items:center;gap:6px;padding:10px 12px;border-bottom:1px solid var(--border)}.amv-threadIdent{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.amv-threadKicker{font:600 9.5px/1.2 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.amv-threadTitle{font:550 12.5px/1.3 var(--font-sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.amv-threadBtn{flex:none;border:0;background:none;color:var(--dim);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:grid;place-items:center}.amv-threadBtn:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 6%,transparent)}.amv-threadBody{flex:1;min-height:0;display:flex;flex-direction:column}.amv-threadBody>*{flex:1;min-height:0}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{f as M}from"./use-fleet-active-asks-CCGrll5q.js";import{a as j}from"./message-visibility-CGOmSSKs.js";import{h as C}from"./conversation-model-C2KuZUXc.js";import{i as v,m as T,j as b}from"./Provider-D0bB7q6y.js";const h="No project";function B(e){const t=e?.project?.trim();if(t)return t;const s=e?.projectRoot?.trim();if(s){const i=s.replace(/\/+$/,"").split("/").pop();if(i)return i}return h}function P(e){const t=(e.title??"").trim()||e.agentName||e.id,s=(e.agentName??"").trim().toLowerCase();if(t&&t.trim().toLowerCase()!==s)return t;const i=e.preview?j(e.preview).replace(/\s+/g," ").trim():"";return i?i.length>64?`${i.slice(0,61)}…`:i:e.currentBranch??t}const A={needs_you:"Needs you",working:"Working",queued:"Starting",quiet:"Quiet"},E=["needs_you","working","queued","quiet"];function N(e){return e?.status==="needs_attention"?"needs_you":e?.status==="working"?"working":e?.status==="queued"?"queued":"quiet"}const _=1440*60*1e3,q=["Today","Yesterday","This week","Earlier"];function D(e,t){if(!e)return"Earlier";const s=f=>{const u=new Date(f);return u.setHours(0,0,0,0),u.getTime()},i=Math.round((s(t)-s(e))/_);return i<=0?"Today":i===1?"Yesterday":i<7?"This week":"Earlier"}function J(e,t,s,i,f){const u=o=>{const r=o.agentId?s.get(o.agentId):void 0;switch(t){case"project":return B(r);case"agent":return r?.name??o.agentName??"Unknown agent";case"day":return D(o.lastMessageAt,f);case"state":return A[N(M(i,o))]}},c=new Map;for(const o of e){const r=u(o),a=c.get(r);a?a.push(o):c.set(r,[o])}for(const o of c.values())o.sort((r,a)=>(a.lastMessageAt??0)-(r.lastMessageAt??0));return(()=>{const o=[...c.keys()];return t==="day"?q.filter(r=>c.has(r)):t==="state"?E.map(r=>A[r]).filter(r=>c.has(r)):o.sort((r,a)=>r===h?1:a===h?-1:r.localeCompare(a))})().map(o=>({label:o,sessions:c.get(o)}))}function O(e){const t=e.project?.trim().toLowerCase();if(t)return`project:${t}`;const s=e.projectRoot?.trim().replace(/\/+$/,"").toLowerCase();return s?`root:${s}`:"project:"}function $(e){return(e.authorityNodeId??e.homeNodeId??"").trim().toLowerCase()}function w(e,t){const s=e?.definitionId.trim().toLowerCase();return!e||!s?`agent:${t}`:JSON.stringify(["definition",s,O(e),$(e)])}function y(e,t){const s=e.id===e.definitionId?0:1,i=t.id===t.definitionId?0:1;return s-i||e.id.localeCompare(t.id)}function K(e){return[...e].sort(y)[0]}function p(e,t){return e.id===t||!!e.equivalentConversationIds?.includes(t)}function I(e,t){return(e.agentId??"").localeCompare(t.agentId??"")||e.id.localeCompare(t.id)}function Q(e){const t=e.machineId?.trim()||null,s=v(e.agents,t),i=T(e.agents,t),f=b(e.sessions,i,t),u=s.find(n=>n.id===e.agentId),c=w(u,e.agentId),g=u?s.filter(n=>w(n,n.id)===c):[],o=new Set(g.map(n=>n.id));o.size===0&&o.add(e.agentId);const r=f.filter(n=>C(n)&&!!(n.agentId&&o.has(n.agentId))).sort((n,l)=>(l.lastMessageAt??0)-(n.lastMessageAt??0)||I(n,l)),a=[...g].sort(y),m=a[0]??u;let d;for(const n of a)if(n.conversationId&&(d=r.find(l=>p(l,n.conversationId)),d))break;!d&&m&&(d=[...r].filter(n=>n.agentId===m.id).sort(I)[0]),d??=[...r].sort(I)[0];const S=r.filter(n=>n.id!==d?.id),k=!!(e.threadId&&d&&p(d,e.threadId)),L=e.threadId&&!k?r.find(n=>p(n,e.threadId)):void 0;return{agent:m,memberAgentIds:[...o].sort(),sessions:r,master:d,threads:S,thread:L}}export{h as N,w as a,Q as b,K as c,J as g,B as p,P as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as m}from"./perf-PX8Rx0EP.js";const d=new Map,a=new Map,T=128;let u=null;function b(){return globalThis?.__OPENSCOUT_WEB_BOOTSTRAP__?.routes?.bootstrapScriptPath?.trim()||"/api/bootstrap.js"}async function E(){if(u)return u;const t=b();return u=(async()=>{try{return(await fetch(t,{method:"GET",credentials:"include",cache:"no-store"})).ok}catch{return!1}finally{u=null}})(),u}function g(t){const e=t.replace(/\s+/g," ").trim();return e?e.length>180?`${e.slice(0,180)}...`:e:"empty body"}function p(t,e,o){if(e)try{return JSON.parse(e)}catch{const c=o?.trim()||"non-JSON";throw new Error(`Expected JSON from ${t} but received ${c}: ${g(e)}`)}}function G(t){return t?JSON.stringify([...new Headers(t).entries()].sort(([e],[o])=>e.localeCompare(o))):""}function w(t,e){return`${(e?.method??"GET").toUpperCase()}:${t}:${G(e?.headers)}`}async function h(t,e){const o=(e?.method??"GET").toUpperCase(),c=performance.now(),n=async()=>fetch(t,{...e,headers:{...e?.headers??{},...e?.body?{"content-type":"application/json"}:{}}});let s=await n();if(s.status===401&&!t.includes("/bootstrap.js")&&await E()&&(s=await n()),!s.ok){const r=await s.text();m({method:o,path:t,ms:performance.now()-c,bytes:r.length,ok:!1});let l=r||`HTTP ${s.status}`;try{const f=JSON.parse(r);f?.error&&(l=f.error)}catch{}throw new Error(l)}const i=await s.text();return m({method:o,path:t,ms:performance.now()-c,bytes:i.length,ok:!0}),{text:i,contentType:s.headers.get("content-type")}}function y(t,e){for(a.delete(t),a.set(t,{response:e,receivedAt:Date.now()});a.size>T;){const o=a.keys().next().value;if(typeof o!="string")break;a.delete(o)}}function x(t,e,o){if("GET".toUpperCase()!=="GET"||o?.body||e<=0)return null;const n=a.get(w(t,o));return!n||Date.now()-n.receivedAt>e?null:p(t,n.response.text,n.response.contentType)}async function A(t,e){if(!((e?.method??"GET").toUpperCase()==="GET"&&!e?.body)){const r=await h(t,e);return p(t,r.text,r.contentType)}const n=w(t,e),s=d.get(n);if(s){const r=await s;return y(n,r),p(t,r.text,r.contentType)}const i=h(t,e);d.set(n,i);try{const r=await i;return y(n,r),p(t,r.text,r.contentType)}finally{d.delete(n)}}export{A as a,x as p};
|