@openscout/scout 0.2.105 → 0.2.106
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/scoutd +0 -0
- package/dist/build-manifest.json +3 -3
- package/dist/chat.mjs +23 -1
- package/dist/client/assets/ActivityScreen-CZmGwQ2U.js +1 -0
- package/dist/client/assets/{AddProjectForm-CHNJ4NnS.js → AddProjectForm-CusDRiVO.js} +1 -1
- package/dist/client/assets/{AdventureEvidence-B4mEvXeD.js → AdventureEvidence-CyegKk1V.js} +1 -1
- package/dist/client/assets/{AdventureReader-ZsBDQITY.js → AdventureReader-X-hbTOi0.js} +1 -1
- package/dist/client/assets/{AdventureScenery-DSxDlqG1.js → AdventureScenery-LPXSVP67.js} +1 -1
- package/dist/client/assets/AgentAdventures-BAgxdOF8.js +1 -0
- package/dist/client/assets/AgentAvatar-CrP1eXxk.js +1 -0
- package/dist/client/assets/AgentConfigurationScreen-1L0IQm2w.js +1 -0
- package/dist/client/assets/AgentDefinitionsWorkspace-DguGs7jZ.js +1 -0
- package/dist/client/assets/{AgentDetailCard-MIEBKw_S.js → AgentDetailCard-DtHT3sCo.js} +1 -1
- package/dist/client/assets/AgentFloorView-DH4jiDgw.js +1 -0
- package/dist/client/assets/{AgentFloorWorld-BTqwmK5G.js → AgentFloorWorld-CjoIa6jA.js} +1 -1
- package/dist/client/assets/AgentInfoScreen-DYtmKkeE.js +1 -0
- package/dist/client/assets/{AgentLaneCard-C4rKLLdT.js → AgentLaneCard-BaZ2g-f8.js} +1 -1
- package/dist/client/assets/{AgentLaneChrome-fGC-ZrJS.js → AgentLaneChrome-TF1SlJSc.js} +1 -1
- package/dist/client/assets/{AgentLaneDetailSheet-BTF4_th9.js → AgentLaneDetailSheet-EzEPsn3g.js} +1 -1
- package/dist/client/assets/{AgentLaneSummaryResize-DgSeA_vS.js → AgentLaneSummaryResize-dpp7YvrX.js} +1 -1
- package/dist/client/assets/AgentLanesEmbedScreen-BlSof_6S.js +1 -0
- package/dist/client/assets/{AgentLanesPreflight-CcS23wij.js → AgentLanesPreflight-Ry-aqDTr.js} +1 -1
- package/dist/client/assets/AgentLanesView-BJi9xXz6.js +2 -0
- package/dist/client/assets/{AgentLiveActions-6Kfr1uOT.js → AgentLiveActions-CfTupTEl.js} +1 -1
- package/dist/client/assets/AgentMasterScreen-EJhmuKgl.js +1 -0
- package/dist/client/assets/AgentSessions-B1gOhDBf.js +6 -0
- package/dist/client/assets/AgentsConsole-RXGqRvcb.js +1 -0
- package/dist/client/assets/AgentsScreen-ChwMBs11.js +1 -0
- package/dist/client/assets/AgentsSubnav-DwNX4yy0.js +1 -0
- package/dist/client/assets/{AstronautSuit-D67fIBdR.js → AstronautSuit-Cchnc4Ug.js} +1 -1
- package/dist/client/assets/{AtopView-Ck30FbzG.js → AtopView-gkEp4y__.js} +1 -1
- package/dist/client/assets/{BackToPicker-CkBhGRlD.js → BackToPicker-CUkjnoVk.js} +1 -1
- package/dist/client/assets/BriefingDetailScreen-DrlC3qkm.js +1 -0
- package/dist/client/assets/{BriefingsScreen-DTxYMr3a.js → BriefingsScreen-B1HlBMGZ.js} +1 -1
- package/dist/client/assets/{BrokerMetadataPanel-crirZCdo.js → BrokerMetadataPanel-Dk242Yh_.js} +1 -1
- package/dist/client/assets/BrokerScreen-DwOF6bMA.js +8 -0
- package/dist/client/assets/{Canvas-CRP0KjKb.js → Canvas-X9pVSkw3.js} +1 -1
- package/dist/client/assets/{CastPicker-ZPomvOf-.js → CastPicker-BXUtPAGC.js} +1 -1
- package/dist/client/assets/ChannelComposer-DoK7IDGa.js +1 -0
- package/dist/client/assets/ChannelSidebar-e9DOPulb.js +1 -0
- package/dist/client/assets/{CharacterFamilyPreview-ckVkecDO.js → CharacterFamilyPreview-DMfw7UM_.js} +1 -1
- package/dist/client/assets/{ChatAvatar-DKBsbOqk.js → ChatAvatar-C3a_o5Hj.js} +1 -1
- package/dist/client/assets/ChatBits-CsvxbToF.js +1 -0
- package/dist/client/assets/{ChatCollapsedStrip-Co0NmqOO.js → ChatCollapsedStrip-FEmQ_G9J.js} +1 -1
- package/dist/client/assets/ChatRichInput-DhtwFxQE.js +31 -0
- package/dist/client/assets/ChatRightPanel-C1h_aIkn.js +1 -0
- package/dist/client/assets/ChatSpaceSurface-BXyLYKHn.js +1 -0
- package/dist/client/assets/ChatSpaceTheme-3wLZGsvT.css +1 -0
- package/dist/client/assets/ChatSpaceTheme-CUH8bTZc.js +1 -0
- package/dist/client/assets/{CodeDiffPane-D-iv28LJ.js → CodeDiffPane-DuQRwpgK.js} +1 -1
- package/dist/client/assets/{CodeProjectPicker-CZ3gDdiT.js → CodeProjectPicker-ZQ6gSBpg.js} +1 -1
- package/dist/client/assets/{CodeScreen-CSC-zbP9.js → CodeScreen-BXyKeL5T.js} +1 -1
- package/dist/client/assets/{CommsCanvas-DdNAwjGW.js → CommsCanvas-THp0r_U8.js} +1 -1
- package/dist/client/assets/{CommsDeck-mGWY7Ivi.js → CommsDeck-BVmSMV2V.js} +1 -1
- package/dist/client/assets/{CommsFlowGraph-voDD9M5R.js → CommsFlowGraph-DxoOaLF_.js} +1 -1
- package/dist/client/assets/{CommsFlowMap-C33sgD48.js → CommsFlowMap-Vi8ziCPg.js} +1 -1
- package/dist/client/assets/{CommsSelection-BL8aYD7z.js → CommsSelection-BUoRbu9o.js} +1 -1
- package/dist/client/assets/ComposerAttachments-DW0AIb8k.js +1 -0
- package/dist/client/assets/ConversationComposer-CUQyArlk.js +1 -0
- package/dist/client/assets/ConversationFeedRows-DWiOfT-y.js +1 -0
- package/dist/client/assets/ConversationHeader-C-ZWscKj.js +1 -0
- package/dist/client/assets/{ConversationPanels-6pprBpmq.js → ConversationPanels-D9oC0xG5.js} +2 -2
- package/dist/client/assets/ConversationScreen-9MlMnEo4.css +1 -0
- package/dist/client/assets/ConversationScreen-CUfsQ4MR.js +2 -0
- package/dist/client/assets/ConversationStatus--IPm2nGh.js +1 -0
- package/dist/client/assets/{CrewAvatar-D0c9z5Qr.css → CrewAvatar-BnIPIn_Z.css} +1 -1
- package/dist/client/assets/CrewAvatar-kTznzqcO.js +1 -0
- package/dist/client/assets/{CrewSprite-Dp9KBBGY.js → CrewSprite-Dhryjx2c.js} +1 -1
- package/dist/client/assets/CrewStage-vdO0qm3D.js +1 -0
- package/dist/client/assets/CrewWorkspaces-DCBzAAS4.js +1 -0
- package/dist/client/assets/{DataTable-av71ehJV.js → DataTable-aH-jCyDq.js} +1 -1
- package/dist/client/assets/{DispatchAftermath-CcYGUB10.js → DispatchAftermath-66uQAorV.js} +1 -1
- package/dist/client/assets/{DocumentFocusViewer-DlMiEALb.js → DocumentFocusViewer-DJr0v0D_.js} +1 -1
- package/dist/client/assets/{EmbeddableSurfacesLab-CTkO_tQR.js → EmbeddableSurfacesLab-BBa70EhJ.js} +1 -1
- package/dist/client/assets/{EmptyState-CYUwYyAW.js → EmptyState-CZlrHXy-.js} +1 -1
- package/dist/client/assets/{FileViewerPane-Cxhixtks.js → FileViewerPane-BAO6mtjD.js} +1 -1
- package/dist/client/assets/FleetRollCallHud-C5q2567n.js +1 -0
- package/dist/client/assets/FlightObserveScreen-DZ2mrw91.js +1 -0
- package/dist/client/assets/{FloorContextSheet-Vj_wVZq1.js → FloorContextSheet-2_NVPQor.js} +1 -1
- package/dist/client/assets/{FloorExchangePanel-CjHSDXad.js → FloorExchangePanel-BU1pPu8K.js} +1 -1
- package/dist/client/assets/{FloorMessagePasses-BG4ebnX5.js → FloorMessagePasses-cLW2UGNP.js} +1 -1
- package/dist/client/assets/{FloorReplay-BoYaGY9t.js → FloorReplay-VFzA6Kxc.js} +1 -1
- package/dist/client/assets/FloorResourcesSheet-C-kQ6Ren.js +1 -0
- package/dist/client/assets/{FloorSavedWork-jbtRs-YE.js → FloorSavedWork-BeHDejWz.js} +1 -1
- package/dist/client/assets/FloorTacticalHUD-CO-iiFpb.js +1 -0
- package/dist/client/assets/{FollowScreen-CupyOgt4.js → FollowScreen-CFfkIbc6.js} +1 -1
- package/dist/client/assets/HarnessMark-C4naWc16.js +1 -0
- package/dist/client/assets/HarnessesScreen-DX3NLcDG.js +1 -0
- package/dist/client/assets/{HerdrSession-Dcm3vf9U.js → HerdrSession-_t7yM8vX.js} +2 -2
- package/dist/client/assets/{HomeHero-pIZtE1cC.js → HomeHero-DouPyNmz.js} +1 -1
- package/dist/client/assets/{HostAdvisorView-Dv5meXo2.js → HostAdvisorView-CnM1i8hW.js} +1 -1
- package/dist/client/assets/InviteLandingScreen-CEjG2E34.js +1 -0
- package/dist/client/assets/InviteSheet-CwxZtWCl.js +1 -0
- package/dist/client/assets/{JumpPalette-BmiSOEmp.js → JumpPalette-O1aJE9gR.js} +1 -1
- package/dist/client/assets/{KnowledgeSearchInspector-B8yiM524.js → KnowledgeSearchInspector-32n9baT-.js} +1 -1
- package/dist/client/assets/KnowledgeSearchScreen-Dd6jrQ0A.js +1 -0
- package/dist/client/assets/{LaneToolHoverCard-D2cnTeUd.js → LaneToolHoverCard-CJa110yk.js} +1 -1
- package/dist/client/assets/LaneTraceDetailSheet-DYrd0BIf.js +1 -0
- package/dist/client/assets/{LaneTraceEventFocus-BLhVHwff.js → LaneTraceEventFocus-TbrNHRj_.js} +1 -1
- package/dist/client/assets/{MeshCanvas-BR25OBTJ.js → MeshCanvas-DWZHYh1A.js} +2 -2
- package/dist/client/assets/{MeshCanvasMinimap-ClVolr4-.js → MeshCanvasMinimap-iswYFpIb.js} +1 -1
- package/dist/client/assets/MeshScreen-8nAzQVbm.js +1 -0
- package/dist/client/assets/{MeshTopologyView-BT3ke2D1.js → MeshTopologyView-BVvtqI8q.js} +2 -2
- package/dist/client/assets/MessageEmbeds-ksPazAKH.js +1 -0
- package/dist/client/assets/MessagesScreen-C3WB4T21.js +1 -0
- package/dist/client/assets/{MissionContextRail-CafjuseK.js → MissionContextRail-D62-Wis8.js} +1 -1
- package/dist/client/assets/MissionControlView-B9cNPXvl.js +1 -0
- package/dist/client/assets/{MissionFocusOverlay-nhy3hkxQ.js → MissionFocusOverlay-C1zys3Jv.js} +1 -1
- package/dist/client/assets/MissionLeftAgentRow-vycMV77n.js +1 -0
- package/dist/client/assets/{MissionLogPane-DiUf3vWW.js → MissionLogPane-B19lYSY9.js} +1 -1
- package/dist/client/assets/NativeAreaScreen-B1RLa85C.js +1 -0
- package/dist/client/assets/NativeAreaScreen-CV0OhGra.js +1 -0
- package/dist/client/assets/NativeAreaScreen-CzuZt6o1.js +1 -0
- package/dist/client/assets/{NewAgentModal-BQ2wQ5gp.js → NewAgentModal-Bh-L-emz.js} +1 -1
- package/dist/client/assets/NewChatComposer-C97-iTMK.js +19 -0
- package/dist/client/assets/{NewChatOrigin-C8ROO4ps.js → NewChatOrigin-DFbF_XvR.js} +1 -1
- package/dist/client/assets/{NodeDetailPanel-BNTqYC7m.js → NodeDetailPanel-CElOEpCh.js} +1 -1
- package/dist/client/assets/{NodeMenu-CcOeFRCB.js → NodeMenu-B-jjHf1c.js} +1 -1
- package/dist/client/assets/ObserveEmbedScreen-B7Qt69Ms.js +2 -0
- package/dist/client/assets/{ObserveTextFlow-CC5mnngm.js → ObserveTextFlow-PFnG_10h.js} +2 -2
- package/dist/client/assets/{ObservedTopologyPanel-DF6tRZL_.js → ObservedTopologyPanel-CUTIoLZJ.js} +1 -1
- package/dist/client/assets/OpenScoutAppShell-37PDFfA4.js +31 -0
- package/dist/client/assets/OpsAgentsView-DajlX8LO.js +1 -0
- package/dist/client/assets/OpsScreen-jVcaBKGi.js +1 -0
- package/dist/client/assets/OpsSubnav-BOOYShHE.js +1 -0
- package/dist/client/assets/ProjectAgentProfile-D_wlW4sQ.js +1 -0
- package/dist/client/assets/{ProjectAgentProfileBar-C8z22pJ2.js → ProjectAgentProfileBar-DHuMKJj-.js} +1 -1
- package/dist/client/assets/ProjectAgentProfileHero-Dbebtug1.js +1 -0
- package/dist/client/assets/ProjectsInbox-B8zYE4vP.css +1 -0
- package/dist/client/assets/ProjectsInbox-Cgu7B4--.js +2 -0
- package/dist/client/assets/ProjectsRail-CDWocin_.js +1 -0
- package/dist/client/assets/ProjectsScreen-B_CJycqW.js +1 -0
- package/dist/client/assets/ProjectsThreadAside-1MMl_qUD.js +1 -0
- package/dist/client/assets/Provider-C35yu29I.js +5 -0
- package/dist/client/assets/{RailRow-DUPqXMZh.js → RailRow-BjmWK420.js} +1 -1
- package/dist/client/assets/RawSessionsTable-DzT90hWu.js +1 -0
- package/dist/client/assets/RealtimeVoiceScreen-B6ylX3WQ.js +16 -0
- package/dist/client/assets/{RenderedWorkerSprite-C8fxndAh.js → RenderedWorkerSprite-Dhlyg89J.js} +1 -1
- package/dist/client/assets/{ReplayClock-DUVJjrIu.js → ReplayClock-348f17bW.js} +1 -1
- package/dist/client/assets/{ReplayLog-Bek1Vc4W.js → ReplayLog-CBnAM3ui.js} +1 -1
- package/dist/client/assets/{ReplayOutpost-DlRg3172.js → ReplayOutpost-DyRPfNFx.js} +1 -1
- package/dist/client/assets/{RepoDiffEmbedScreen-CVUMnt6A.js → RepoDiffEmbedScreen-BWxvRDrS.js} +1 -1
- package/dist/client/assets/{RepoDiffPageScreen-D9-s5PyB.js → RepoDiffPageScreen-DN94irmY.js} +1 -1
- package/dist/client/assets/{RepoDiffViewer-D7FN-oyY.js → RepoDiffViewer-_4JVXBIW.js} +1 -1
- package/dist/client/assets/RepoDiffViewerLazy-XGVC3WXv.js +2 -0
- package/dist/client/assets/{ReposScreen-BQ7HO1om.js → ReposScreen-uMCpt0e9.js} +2 -2
- package/dist/client/assets/{RiggedWorkerCharacter-CJMWlvV-.js → RiggedWorkerCharacter-q6QRc7_o.js} +1 -1
- package/dist/client/assets/{SageModelStudio-B526NSnw.js → SageModelStudio-CNDhZhgD.js} +1 -1
- package/dist/client/assets/{ScoutDeckSurface-ChkvGyEW.js → ScoutDeckSurface-CUaU4R6T.js} +1 -1
- package/dist/client/assets/{ScoutSurface-6g1f5chk.js → ScoutSurface-3_25USO_.js} +1 -1
- package/dist/client/assets/{ScoutbotFxLab-BuwBdnPf.js → ScoutbotFxLab-CRqhYe0a.js} +1 -1
- package/dist/client/assets/{SecondaryNav-Bs-_VwTC.js → SecondaryNav-D7dbV2qo.js} +1 -1
- package/dist/client/assets/SessionContextStrip-CXfs9hUD.js +1 -0
- package/dist/client/assets/SessionContextStrip-DAIXwtHd.css +1 -0
- package/dist/client/assets/{SessionEmbedScreen-C2wf35-P.js → SessionEmbedScreen-D0zFmou-.js} +1 -1
- package/dist/client/assets/SessionHopMenu-E6VJZrE0.js +1 -0
- package/dist/client/assets/{SessionObserve-B64YsYhy.js → SessionObserve-DXxBvejJ.js} +9 -9
- package/dist/client/assets/SessionObserveEvidence-Cuj_KHxR.js +1 -0
- package/dist/client/assets/SessionRefScreen-DqLSUlCE.js +1 -0
- package/dist/client/assets/SessionsScreen-BLIRkohT.js +1 -0
- package/dist/client/assets/SettingsDrawer-juCpnbH6.js +3 -0
- package/dist/client/assets/SettingsScreen-BtGzE2-O.js +1 -0
- package/dist/client/assets/{SharedFloorCharacter-V04kD5T9.js → SharedFloorCharacter-DNEiaOUh.js} +1 -1
- package/dist/client/assets/SharedWorkFloor-0rqtdF-n.css +1 -0
- package/dist/client/assets/SharedWorkFloor-D9mf9KSg.js +2 -0
- package/dist/client/assets/{ShikiPane-XwFI-pCp.js → ShikiPane-CRtTYkMj.js} +1 -1
- package/dist/client/assets/{SlidePanel-BMpkXai_.js → SlidePanel-_CHAQdOa.js} +1 -1
- package/dist/client/assets/SpaceSwitcher-BLgSCf_T.js +1 -0
- package/dist/client/assets/{SpriteAvatar-aHeF4ZQZ.js → SpriteAvatar-CpZWf54-.js} +1 -1
- package/dist/client/assets/{SproutActionSprite-DI5N3gOj.js → SproutActionSprite-BSiTS4en.js} +1 -1
- package/dist/client/assets/{StatusPill-Dw4LP7wu.js → StatusPill-2gCP6H7A.js} +1 -1
- package/dist/client/assets/{TailView-BofjmUMJ.js → TailView-CYSijNTy.js} +2 -2
- package/dist/client/assets/Terminal-Bi97yb5s.js +4 -0
- package/dist/client/assets/TerminalEmbedScreen-Bqop67Bq.js +1 -0
- package/dist/client/assets/{TerminalHeaderMount-CwbQhXcI.js → TerminalHeaderMount-Cq4OD_xN.js} +1 -1
- package/dist/client/assets/{TerminalRelay--qOBwnbR.js → TerminalRelay-DrikpUSJ.js} +3 -3
- package/dist/client/assets/{TextDocumentSurface-BK6Qy41F.js → TextDocumentSurface-D52m7Vd8.js} +1 -1
- package/dist/client/assets/{TmuxPeek-DpUT9Tpc.js → TmuxPeek-CXFeweMg.js} +1 -1
- package/dist/client/assets/VoiceControlWell-DF3bjcYA.js +1 -0
- package/dist/client/assets/VoicePathDiagram-CmpHWfO-.js +1 -0
- package/dist/client/assets/{VoicePermissionsPanel-D35fOnQj.js → VoicePermissionsPanel-Ok2nfxHw.js} +1 -1
- package/dist/client/assets/VoiceTurnDetails-wAByRaNB.js +8 -0
- package/dist/client/assets/VoiceTurnStage-edoJalLV.js +1 -0
- package/dist/client/assets/VoiceTurnView-D-8g5E4r.js +1 -0
- package/dist/client/assets/WorkDetailScreen-zQkNVy2F.js +5 -0
- package/dist/client/assets/{WorkFilesViewer-t8AEyx3Q.js → WorkFilesViewer-vNt01sDd.js} +1 -1
- package/dist/client/assets/{WorkRunView-_mhG_FR2.js → WorkRunView-BDkR7Edq.js} +1 -1
- package/dist/client/assets/WorldActorTalk-BvSg_b1y.js +1 -0
- package/dist/client/assets/{WorldCharacter-BRrj3MQN.js → WorldCharacter-CIIlutQq.js} +1 -1
- package/dist/client/assets/WorldMinimap-B6HNgcDe.js +1 -0
- package/dist/client/assets/{WorldSky-D-RJzSa6.js → WorldSky-Jm2Z6dfW.js} +1 -1
- package/dist/client/assets/{activity-BJqFrZyB.js → activity-CIlFrfPJ.js} +1 -1
- package/dist/client/assets/{addon-fit-CHohcvS3.js → addon-fit-dFpj9Kfq.js} +1 -1
- package/dist/client/assets/{addon-webgl-CaRy2x2b.js → addon-webgl-BFCGRtGh.js} +1 -1
- package/dist/client/assets/{agent-essentials-bKWYOZaH.js → agent-essentials-BGGvT5G6.js} +1 -1
- package/dist/client/assets/{agent-master-model-C-KdOFDK.js → agent-master-model-Bk_yuUXJ.js} +1 -1
- package/dist/client/assets/{agent-specialization-BplZUa_0.js → agent-specialization-DDc7mLCW.js} +1 -1
- package/dist/client/assets/agents-screen-BYakbO50.css +1 -0
- package/dist/client/assets/{arc.es-CubLvQ4W.js → arc.es-C1SQHJ3k.js} +1 -1
- package/dist/client/assets/{arrow-left-DFfKAq0d.js → arrow-left-MVUKauwQ.js} +1 -1
- package/dist/client/assets/{arrow-right-DmAWnyAH.js → arrow-right-Bp-FpE5V.js} +1 -1
- package/dist/client/assets/{arrow-up-right-B0aLKiyF.js → arrow-up-right-BPedAgxO.js} +1 -1
- package/dist/client/assets/{book-open-BL9qvhEI.js → book-open-CV98WMSp.js} +1 -1
- package/dist/client/assets/{bot-BhAVbcCA.js → bot-B4zLQ4IN.js} +1 -1
- package/dist/client/assets/chat-api-DSJMBYoT.js +2 -0
- package/dist/client/assets/chat-message-markup-91DIry6R.js +1 -0
- package/dist/client/assets/chat-space-model-aW3Fd8_U.js +4 -0
- package/dist/client/assets/chat-transport-DNS5CB2I.js +1 -0
- package/dist/client/assets/{check-g7D7-c1J.js → check-lrJ3a73a.js} +1 -1
- package/dist/client/assets/{chevron-down-CDzRQQGl.js → chevron-down-l1mrh5S9.js} +1 -1
- package/dist/client/assets/{chevron-right-DKGTLiqc.js → chevron-right-DrfqcerI.js} +1 -1
- package/dist/client/assets/{chevron-up-DX7R6KY2.js → chevron-up-CETZJzjV.js} +1 -1
- package/dist/client/assets/{chunk-HRAB3GC3-Dvk_QpRq.js → chunk-HRAB3GC3-DbVLgbWX.js} +1 -1
- package/dist/client/assets/{clock-CQb4FeMf.js → clock-BV1aqPkK.js} +1 -1
- package/dist/client/assets/{code-xml-Cmadr3pQ.js → code-xml-BhcNbLWU.js} +1 -1
- package/dist/client/assets/{coffee-ljG1_krY.js → coffee-D7EAOdCk.js} +1 -1
- package/dist/client/assets/{compass-CvzkzkIh.js → compass-63TUaz5_.js} +1 -1
- package/dist/client/assets/content-B1lgE8qr.js +1 -0
- package/dist/client/assets/content-B5l11YyQ.js +1 -0
- package/dist/client/assets/content-BNZOZEpX.js +1 -0
- package/dist/client/assets/content-BRIxP155.js +1 -0
- package/dist/client/assets/content-BWd8gt8L.js +1 -0
- package/dist/client/assets/content-BfwS2jAK.js +1 -0
- package/dist/client/assets/content-C4p43_eT.js +1 -0
- package/dist/client/assets/content-CdYfaoDV.js +1 -0
- package/dist/client/assets/content-CzldLxw0.js +1 -0
- package/dist/client/assets/content-D-olnc4U.js +1 -0
- package/dist/client/assets/content-DTioimq4.js +1 -0
- package/dist/client/assets/content-LOebm3_d.js +1 -0
- package/dist/client/assets/{content-CKJ9zb7Z.js → content-nGlEZhUI.js} +1 -1
- package/dist/client/assets/{content-D1Ze_FG9.js → content-oyzDM-LK.js} +1 -1
- package/dist/client/assets/content-x1PHxED7.js +1 -0
- package/dist/client/assets/content-zX3ZY3T9.js +1 -0
- package/dist/client/assets/{conversation-icons-CIRaxmid.js → conversation-icons-Tqba2d56.js} +1 -1
- package/dist/client/assets/conversation-model-FxDeWlle.js +1 -0
- package/dist/client/assets/conversation-motion-features-C5zjuNwE.js +1 -0
- package/dist/client/assets/conversations-DoAAO6kA.js +1 -0
- package/dist/client/assets/{copy-BGOC1tJB.js → copy-xKeM5ZtU.js} +1 -1
- package/dist/client/assets/{cpu-Q6nrHFTN.js → cpu-BOTa_WLr.js} +1 -1
- package/dist/client/assets/{createLucideIcon-ChvMq-zl.js → createLucideIcon-zZ8Hx7er.js} +1 -1
- package/dist/client/assets/ctx-panel-BC8fpcWJ.css +1 -0
- package/dist/client/assets/direct-voice-BbLPuJ04.js +2 -0
- package/dist/client/assets/direct-voice-DbO7CSv_.css +1 -0
- package/dist/client/assets/discover-DJFxyV1k.js +2 -0
- package/dist/client/assets/embed-entry-Lyvu0Kfc.js +2 -0
- package/dist/client/assets/{external-link-BVccgH0n.js → external-link-CUObqmgX.js} +1 -1
- package/dist/client/assets/{eye-CsGfEVR6.js → eye-LrO-cXQt.js} +1 -1
- package/dist/client/assets/{file-code-corner-Be6da5l3.js → file-code-corner-CsU7jJpu.js} +1 -1
- package/dist/client/assets/{file-text-DP6txVW-.js → file-text-CnISiiw6.js} +1 -1
- package/dist/client/assets/{flag-DAFE2wZ5.js → flag-C4wl8z2-.js} +1 -1
- package/dist/client/assets/fleet-roll-call-BUgf7w-V.css +1 -0
- package/dist/client/assets/{folder-B_S7gBVr.js → folder-D5prSkzz.js} +1 -1
- package/dist/client/assets/{gauge-DQCGlE3o.js → gauge-D9_5iJEm.js} +1 -1
- package/dist/client/assets/{gestures-CofqY4Km.js → gestures-QZub3Ot9.js} +1 -1
- package/dist/client/assets/{git-branch-DcUCsWdJ.js → git-branch-B0_fPLO7.js} +1 -1
- package/dist/client/assets/{go-shortcuts-KQy-ZOpV.js → go-shortcuts-DicR7sUf.js} +1 -1
- package/dist/client/assets/home-moving-signal-rpMhsOJB.js +1 -0
- package/dist/client/assets/home-now-card-ByE6Umcx.js +1 -0
- package/dist/client/assets/{home-now-card-nano-CvU8B61b.js → home-now-card-nano-B5Dv3-pb.js} +1 -1
- package/dist/client/assets/hooks-_eCZZPsR.js +2 -0
- package/dist/client/assets/index-724SdE6r.js +1 -0
- package/dist/client/assets/{index-kkXUq-zf.js → index-CHD0qcfL.js} +1 -1
- package/dist/client/assets/index-CN4rBB_s.css +1 -0
- package/dist/client/assets/index-D1d98iYf.js +1 -0
- package/dist/client/assets/{index-DReVb7jZ.js → index-EsrkGBcv.js} +8 -8
- package/dist/client/assets/index-gGHPA-By.js +1 -0
- package/dist/client/assets/{inspector-panel-CLU7wjnT.js → inspector-panel-BkgUDn6G.js} +2 -2
- package/dist/client/assets/{keyboard-nav-CJXPaHXj.js → keyboard-nav-DDHegDbx.js} +1 -1
- package/dist/client/assets/{lane-roster-store-Ch9t6lb0.js → lane-roster-store-D-RSWjb-.js} +1 -1
- package/dist/client/assets/{layers-BOwyWodP.js → layers-C8PDiMul.js} +1 -1
- package/dist/client/assets/{layout-grid-B36Qsh0y.js → layout-grid-Cor2frzj.js} +1 -1
- package/dist/client/assets/left-Bn5X7x2o.js +2 -0
- package/dist/client/assets/left-BqS0fYX1.js +1 -0
- package/dist/client/assets/left-CTCeeeD3.js +1 -0
- package/dist/client/assets/left-DhtVPVux.js +1 -0
- package/dist/client/assets/left-K39b-Wvx.js +2 -0
- package/dist/client/assets/left-KGmueNPt.js +1 -0
- package/dist/client/assets/left-P_GOYB-s.js +1 -0
- package/dist/client/assets/left-advisor-B0N47De2.js +1 -0
- package/dist/client/assets/left-agents-CsSNc51Y.js +1 -0
- package/dist/client/assets/left-default-BlO5LP2T.js +1 -0
- package/dist/client/assets/left-lanes-C4PhaJE6.js +1 -0
- package/dist/client/assets/left-mission-BjTE5vPa.js +1 -0
- package/dist/client/assets/library-CkWNPHRp.js +1 -0
- package/dist/client/assets/{loader-circle-DNUsuPWz.js → loader-circle-OvccU82H.js} +1 -1
- package/dist/client/assets/{local-agents-I40PawYA.js → local-agents-BqnoxJrq.js} +1 -1
- package/dist/client/assets/log-in-7SnYqW5w.js +1 -0
- package/dist/client/assets/{machine-children-CdhNzDF0.js → machine-children-DxcqCLmd.js} +1 -1
- package/dist/client/assets/media-blobs-Bi8pxr1u.js +1 -0
- package/dist/client/assets/{mentions-Ck_Vjnyp.js → mentions-ByUvhS-v.js} +1 -1
- package/dist/client/assets/{mesh-ops-DSlvHp-D.js → mesh-ops-CiZ8xSAx.js} +1 -1
- package/dist/client/assets/{mesh-view-store-C1-mdP3P.js → mesh-view-store-DZvJC4KU.js} +1 -1
- package/dist/client/assets/{message-circle-cI5_A5mj.js → message-circle-CxRVKNE-.js} +1 -1
- package/dist/client/assets/message-markup-BQW5jdJw.js +15 -0
- package/dist/client/assets/message-markup-Zwo3t4cI.js +1 -0
- package/dist/client/assets/{message-square-CJW4WRlo.js → message-square-BxesYglW.js} +1 -1
- package/dist/client/assets/mission-control-model-BpJHDV5D.js +1 -0
- package/dist/client/assets/{mission-control-store-p_cboAm4.js → mission-control-store-elEEsIvb.js} +1 -1
- package/dist/client/assets/{mission-wall-DOuGOxQy.js → mission-wall-CAo4BKfa.js} +1 -1
- package/dist/client/assets/{monitor-C7_cHlkC.js → monitor-DTTYEb73.js} +1 -1
- package/dist/client/assets/{nav-destinations-CU_euC-Q.js → nav-destinations-uorRqFxf.js} +1 -1
- package/dist/client/assets/{observe-CtS0l3zu.js → observe-BJqERJVj.js} +1 -1
- package/dist/client/assets/{page-status-DwFR4wSw.js → page-status-BswZLqvA.js} +1 -1
- package/dist/client/assets/{panel-right-qP17MwMl.js → panel-right-Bv7sP_fc.js} +1 -1
- package/dist/client/assets/paperclip-BjcuP_Hx.js +1 -0
- package/dist/client/assets/{pause-B_hliKuR.js → pause-C2XTlkjs.js} +1 -1
- package/dist/client/assets/{persistent-state-BUsTTZFE.js → persistent-state-KRk_yb0q.js} +1 -1
- package/dist/client/assets/{pin-Oi4qHR6M.js → pin-C2mFOV1l.js} +1 -1
- package/dist/client/assets/{play-CVeRmqLH.js → play-FT6K3It1.js} +1 -1
- package/dist/client/assets/{plus-D5NLH_fM.js → plus-DFDDeGKu.js} +1 -1
- package/dist/client/assets/profile-DTmzN16I.js +1 -0
- package/dist/client/assets/{projects-inbox-CfwxCTdN.js → projects-inbox-C0FUCv_p.js} +1 -1
- package/dist/client/assets/projects-inbox-ColX6lpx.css +1 -0
- package/dist/client/assets/{provider-DwmCoSlc.js → provider-Dojd8quC.js} +1 -1
- package/dist/client/assets/{proxy-DgzP27W8.js → proxy-AJsmwA6h.js} +1 -1
- package/dist/client/assets/{radio-Cas2qg1D.js → radio-DRoOZsws.js} +1 -1
- package/dist/client/assets/{refresh-cw-IcD2lPoT.js → refresh-cw-BmVr7sCD.js} +1 -1
- package/dist/client/assets/resolve-panes-pbY1fCWi.js +1 -0
- package/dist/client/assets/resolve-sidebar-context-YWkZTq1t.js +1 -0
- package/dist/client/assets/right-49kO-6nD.js +1 -0
- package/dist/client/assets/right-APtItA8A.js +1 -0
- package/dist/client/assets/right-BJwhPqtn.js +1 -0
- package/dist/client/assets/right-BPqrf4ek.js +1 -0
- package/dist/client/assets/right-D7djOy6K.js +1 -0
- package/dist/client/assets/right-DKOUCRob.js +1 -0
- package/dist/client/assets/right-DMNrVzg7.js +1 -0
- package/dist/client/assets/{right-cjPTwPXS.js → right-DWPVB-nK.js} +1 -1
- package/dist/client/assets/right-DppeMCy4.js +1 -0
- package/dist/client/assets/right-GAL5Mw1v.js +1 -0
- package/dist/client/assets/{rocket-DAqYvu8I.js → rocket-CGl4RTV7.js} +1 -1
- package/dist/client/assets/router-DCtl8wqb.js +1 -0
- package/dist/client/assets/runtime-picker-DXu2bOTh.js +1 -0
- package/dist/client/assets/{scope-views-Dl3ml9OZ.js → scope-views-RUWwCVAr.js} +1 -1
- package/dist/client/assets/scout-voice-CZx60X6E.js +1 -0
- package/dist/client/assets/{scoutbot-markdown-DwvGQOWo.js → scoutbot-markdown-BKEBSbG0.js} +1 -1
- package/dist/client/assets/{scroll-text-B0tKI9Sg.js → scroll-text-DNjxhyO2.js} +1 -1
- package/dist/client/assets/{search-UsM-9-_W.js → search-DT42oyRW.js} +1 -1
- package/dist/client/assets/secondaryNavConfig-CS1svh6n.js +1 -0
- package/dist/client/assets/{selection-bridge-OTS2iFkt.js → selection-bridge-x3wFUjxj.js} +1 -1
- package/dist/client/assets/{send-horizontal-BlQsRK6C.js → send-horizontal-CH0-fbZE.js} +1 -1
- package/dist/client/assets/{send-to-agent-session-C1mgqdow.js → send-to-agent-session-DoKCDBJ4.js} +1 -1
- package/dist/client/assets/{server-DBlPW0Mp.js → server-QfsgMLk1.js} +1 -1
- package/dist/client/assets/{session-catalog-CnpZMB7C.js → session-catalog-CvSdPHPe.js} +1 -1
- package/dist/client/assets/session-recap-lanes-D-eVJnpY.js +1 -0
- package/dist/client/assets/session-recap-queue-41l2XVkI.js +1 -0
- package/dist/client/assets/{session-table-CGkfG5Yd.js → session-table-L-pns6Zl.js} +1 -1
- package/dist/client/assets/{sessions-view-Bge4XZ4I.js → sessions-view-Dc-QAa7O.js} +1 -1
- package/dist/client/assets/{settings-C69Zjrpq.js → settings-BVh7kldq.js} +1 -1
- package/dist/client/assets/{sliders-horizontal-6bzeod7c.js → sliders-horizontal-782VC_yy.js} +1 -1
- package/dist/client/assets/{sparkles-Cc5lPZRv.js → sparkles-BjHq_DNK.js} +1 -1
- package/dist/client/assets/{sse-A8AyLH0g.js → sse-BCPRocpq.js} +1 -1
- package/dist/client/assets/system-surfaces-redesign-q2BmCB7e.css +1 -0
- package/dist/client/assets/{tail-events-C4WdhVeK.js → tail-events-d0yAYxR0.js} +1 -1
- package/dist/client/assets/{terminal-DMZjX1es.js → terminal-hQKQygcf.js} +1 -1
- package/dist/client/assets/{terminal-relay-mO89dX-Y.js → terminal-relay-Bxs1hp-j.js} +1 -1
- package/dist/client/assets/{terminal-takeover-CZZsnPzj.js → terminal-takeover-Ay5C2c-M.js} +1 -1
- package/dist/client/assets/theme-vars-DNK0nn3k.js +1 -0
- package/dist/client/assets/triangle-alert-CHoRGdVO.js +1 -0
- package/dist/client/assets/{use-beside-D3cJpA5p.js → use-beside-DoRC1nt0.js} +1 -1
- package/dist/client/assets/{use-conversation-list-D5EnpVba.js → use-conversation-list-CY4JciOV.js} +1 -1
- package/dist/client/assets/{use-fleet-active-asks-D_QOmjg5.js → use-fleet-active-asks-CymmXWH4.js} +1 -1
- package/dist/client/assets/{use-mesh-node-state-3V3ADQ-G.js → use-mesh-node-state-BvaqtODo.js} +1 -1
- package/dist/client/assets/{use-mesh-ops-items-DI9GKWlF.js → use-mesh-ops-items-BSYaqH_0.js} +1 -1
- package/dist/client/assets/{use-reduced-motion-CiaZHMnk.js → use-reduced-motion-3gMYZNIp.js} +1 -1
- package/dist/client/assets/{use-scout-dev-flags-CkdAHlDR.js → use-scout-dev-flags-DS_pYYQd.js} +1 -1
- package/dist/client/assets/{useAgentHoverCard-A3QGXqIy.js → useAgentHoverCard-BANmpjMh.js} +1 -1
- package/dist/client/assets/useContentSecondaryNav-C6OBu-3_.js +1 -0
- package/dist/client/assets/{useEmbedHeadline-atkQVfGw.js → useEmbedHeadline-D6pJRxUg.js} +1 -1
- package/dist/client/assets/usePersistentState-B8lP7TRb.js +1 -0
- package/dist/client/assets/{usePierreRuntime-DTvcwISe.js → usePierreRuntime-BAQdiN0L.js} +1 -1
- package/dist/client/assets/useSidebarCollapse-OL_8J5cL.js +1 -0
- package/dist/client/assets/{users-RLK3P5U4.js → users-BUjx36gx.js} +1 -1
- package/dist/client/assets/voice-paths-CJUuBPh3.css +1 -0
- package/dist/client/assets/voice-turn-DftA0iIb.css +1 -0
- package/dist/client/assets/voice-turn-ledger-BMZxlSjg.js +1 -0
- package/dist/client/assets/{wrench-B4maQJai.js → wrench-DR0i5BU7.js} +1 -1
- package/dist/client/assets/{x-rlMdRqJF.js → x-DAehov0E.js} +1 -1
- package/dist/client/assets/{xterm-B1zHHOLQ.js → xterm-BXQiLVnI.js} +1 -1
- package/dist/client/assets/{zap-B4X0OrEw.js → zap-CEjZNZbI.js} +1 -1
- package/dist/client/crew/sheets/eye-plate-v1/look-down-left.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/look-down-right.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/look-down.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/look-up-left.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/look-up-right.webp +0 -0
- package/dist/client/crew/sheets/eye-plate-v1/look-up.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-down-left.webp +0 -0
- package/dist/client/crew/sheets/sprout/look-down-right.webp +0 -0
- package/dist/client/crew/sheets/sprout/look-down.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-left.webp +0 -0
- package/dist/client/crew/sheets/sprout/look-up-right.webp +0 -0
- package/dist/client/crew/sheets/sprout/look-up.webp +0 -0
- package/dist/client/index.html +2 -2
- package/dist/drizzle/0020_message_reactions.sql +11 -0
- package/dist/drizzle/meta/_journal.json +7 -0
- package/dist/main.mjs +542 -150
- package/dist/node/main.mjs +131 -17
- package/dist/pairing-runtime-controller.mjs +375 -78
- package/dist/runtime/base-daemon.mjs +98 -5
- package/dist/runtime/broker-daemon.mjs +1879 -1198
- package/dist/runtime/broker-process-manager.mjs +96 -3
- package/dist/runtime/mesh-discover.mjs +96 -3
- package/dist/scout-control-plane-web.mjs +4817 -1616
- package/dist/update-helper.mjs +211 -39
- package/package.json +2 -2
- package/dist/client/assets/ActivityScreen-CcDdQTBK.js +0 -1
- package/dist/client/assets/AgentAdventures-BxrYq_2v.js +0 -1
- package/dist/client/assets/AgentAvatar-NZOqcsB2.js +0 -1
- package/dist/client/assets/AgentConfigurationScreen-BhD1PEAM.js +0 -1
- package/dist/client/assets/AgentDefinitionsWorkspace-BqS6MXqF.js +0 -1
- package/dist/client/assets/AgentFloorView-A0dDRlRV.js +0 -1
- package/dist/client/assets/AgentInfoScreen-DuaN0sgE.js +0 -1
- package/dist/client/assets/AgentLanesEmbedScreen-CeNiaZ9_.js +0 -1
- package/dist/client/assets/AgentLanesView-WZhEDBFE.js +0 -2
- package/dist/client/assets/AgentMasterScreen-DUDUTAnU.js +0 -1
- package/dist/client/assets/AgentSessions-CO1WGa8Z.js +0 -6
- package/dist/client/assets/AgentsConsole-BQOWkj35.js +0 -1
- package/dist/client/assets/AgentsScreen-BMNAj1PH.js +0 -1
- package/dist/client/assets/AgentsSubnav-CeHhuzyM.js +0 -1
- package/dist/client/assets/BriefingDetailScreen-yZG8_m4h.js +0 -1
- package/dist/client/assets/BrokerScreen-CT37VQiL.js +0 -8
- package/dist/client/assets/ChannelComposer-BVItWlEz.js +0 -1
- package/dist/client/assets/ChannelSidebar-B-2spawY.js +0 -1
- package/dist/client/assets/ChatBits-CLJ71hTY.js +0 -1
- package/dist/client/assets/ChatRightPanel-pKQtkAgl.js +0 -1
- package/dist/client/assets/ChatSpaceSurface-NrLwdPkE.js +0 -1
- package/dist/client/assets/ChatSpaceTheme-BPMgPdVK.css +0 -1
- package/dist/client/assets/ChatSpaceTheme-D37Jk7bl.js +0 -1
- package/dist/client/assets/ConversationComposer-DNcn5U6D.js +0 -1
- package/dist/client/assets/ConversationFeedRows-RnYSa7Io.js +0 -1
- package/dist/client/assets/ConversationHeader-Y9TEJxP_.js +0 -1
- package/dist/client/assets/ConversationScreen-Brfas2y0.css +0 -1
- package/dist/client/assets/ConversationScreen-tpj4cqWs.js +0 -2
- package/dist/client/assets/ConversationStatus-Cv-7hErW.js +0 -1
- package/dist/client/assets/CrewAvatar-zgzC3cbU.js +0 -1
- package/dist/client/assets/CrewWorkspaces-K2jcyLec.js +0 -1
- package/dist/client/assets/FlightObserveScreen-CvzhzuWc.js +0 -1
- package/dist/client/assets/FloorResourcesSheet-_Iy5UqgY.js +0 -1
- package/dist/client/assets/FloorTacticalHUD-BhyOqlL5.js +0 -1
- package/dist/client/assets/HarnessMark-DSvM_H7H.js +0 -1
- package/dist/client/assets/HarnessesScreen-DyjqbZ4k.js +0 -1
- package/dist/client/assets/InviteLandingScreen-xZQ2na1z.js +0 -1
- package/dist/client/assets/InviteSheet--5Zjct25.js +0 -1
- package/dist/client/assets/KnowledgeSearchScreen-BPqAjHnH.js +0 -1
- package/dist/client/assets/LaneTraceDetailSheet-jl4XQmEx.js +0 -1
- package/dist/client/assets/MeshScreen-BW1dMFWF.js +0 -1
- package/dist/client/assets/MessagesScreen-CtNMfIvC.js +0 -1
- package/dist/client/assets/MissionControlView-BjPOViGY.js +0 -1
- package/dist/client/assets/MissionLeftAgentRow-Dms0DBjO.js +0 -1
- package/dist/client/assets/NativeAreaScreen-BQSTo8As.js +0 -1
- package/dist/client/assets/NativeAreaScreen-Brix6xDB.js +0 -1
- package/dist/client/assets/NativeAreaScreen-D7HyQNlM.js +0 -1
- package/dist/client/assets/NewChatComposer-BEXS8vV6.js +0 -19
- package/dist/client/assets/ObserveEmbedScreen-Dh30EjAQ.js +0 -2
- package/dist/client/assets/OpenScoutAppShell-D9pgw36i.js +0 -31
- package/dist/client/assets/OpsAgentsView-D3rM0udq.js +0 -1
- package/dist/client/assets/OpsScreen-DySeNQ1V.js +0 -1
- package/dist/client/assets/OpsSubnav-C9E0r3GZ.js +0 -1
- package/dist/client/assets/ProjectAgentProfile-FUav75j2.js +0 -1
- package/dist/client/assets/ProjectAgentProfileHero-BLK0EwMg.js +0 -1
- package/dist/client/assets/ProjectsInbox-DfCXReZK.js +0 -2
- package/dist/client/assets/ProjectsRail-CELVubfJ.js +0 -1
- package/dist/client/assets/ProjectsScreen-DMw4TLKy.js +0 -1
- package/dist/client/assets/ProjectsThreadAside-D1Sh4fnX.js +0 -1
- package/dist/client/assets/Provider-CNZluAZb.js +0 -5
- package/dist/client/assets/RailToggle-BwmY70B8.js +0 -1
- package/dist/client/assets/RawSessionsTable-6OVJq0JZ.js +0 -1
- package/dist/client/assets/RealtimeVoiceScreen-D41TYY0x.js +0 -9
- package/dist/client/assets/RepoDiffViewerLazy-BpMR7tlx.js +0 -2
- package/dist/client/assets/SessionObserveEvidence-CS1aQBpQ.js +0 -1
- package/dist/client/assets/SessionRefScreen-DURV0MpF.js +0 -1
- package/dist/client/assets/SessionsScreen-D71ZR-8t.js +0 -1
- package/dist/client/assets/SettingsDrawer-Nz98oBVl.js +0 -3
- package/dist/client/assets/SettingsScreen-CYBHal6y.js +0 -1
- package/dist/client/assets/SharedWorkFloor-BCmdeb3Q.css +0 -1
- package/dist/client/assets/SharedWorkFloor-C0xxW4SN.js +0 -2
- package/dist/client/assets/SpaceSwitcher-BfeIf-ad.js +0 -1
- package/dist/client/assets/Terminal-jIqnIZZ6.js +0 -4
- package/dist/client/assets/TerminalEmbedScreen-3XsjuySR.js +0 -1
- package/dist/client/assets/WorkDetailScreen-Bcf_yHhU.js +0 -5
- package/dist/client/assets/WorldActorTalk-CKerDikx.js +0 -1
- package/dist/client/assets/WorldMinimap-DOptgrc4.js +0 -1
- package/dist/client/assets/agent-autocomplete-C7xwIcwd.css +0 -1
- package/dist/client/assets/agent-autocomplete-_u9o5EZu.js +0 -2
- package/dist/client/assets/agents-screen-BMu6PpRY.css +0 -1
- package/dist/client/assets/at-sign-DM7xeppo.js +0 -1
- package/dist/client/assets/chat-api-BPVC0asu.js +0 -1
- package/dist/client/assets/chat-space-model-B6Jg2CY4.js +0 -4
- package/dist/client/assets/content-0AXa0klu.js +0 -1
- package/dist/client/assets/content-BEyJ19Lx.js +0 -1
- package/dist/client/assets/content-BN5weWKW.js +0 -1
- package/dist/client/assets/content-BNokkm7C.js +0 -1
- package/dist/client/assets/content-BV4PUM9q.js +0 -1
- package/dist/client/assets/content-BxUPlcx5.js +0 -1
- package/dist/client/assets/content-CIC5sku8.js +0 -1
- package/dist/client/assets/content-CdkTyxqk.js +0 -1
- package/dist/client/assets/content-CnhhSCZq.js +0 -1
- package/dist/client/assets/content-DY3F9Vfr.js +0 -1
- package/dist/client/assets/content-DrKBYpcb.js +0 -1
- package/dist/client/assets/content-LSStQYj5.js +0 -1
- package/dist/client/assets/content-YvU-D0hF.js +0 -1
- package/dist/client/assets/content-oKQMyVnH.js +0 -1
- package/dist/client/assets/conversation-model-m8HhzroS.js +0 -1
- package/dist/client/assets/conversation-motion-features-D9PxLoDt.js +0 -1
- package/dist/client/assets/conversations-Cbg9h_Af.js +0 -1
- package/dist/client/assets/ctx-panel-F05jXK4Q.css +0 -1
- package/dist/client/assets/discover-DlwbftpC.js +0 -2
- package/dist/client/assets/embed-entry-c0lwtjBG.js +0 -2
- package/dist/client/assets/home-moving-signal-BIHUGNfI.js +0 -1
- package/dist/client/assets/home-now-card-CaLgZze2.js +0 -1
- package/dist/client/assets/hooks-DaUOREpP.js +0 -2
- package/dist/client/assets/index-CGbs0SBm.css +0 -1
- package/dist/client/assets/index-CbqBwfIW.js +0 -1
- package/dist/client/assets/index-CyPMl7Up.js +0 -1
- package/dist/client/assets/index-PQpJveGO.js +0 -1
- package/dist/client/assets/left-0vBrvrBG.js +0 -2
- package/dist/client/assets/left-C6SyaqlJ.js +0 -1
- package/dist/client/assets/left-CTuXysZR.js +0 -2
- package/dist/client/assets/left-Cc6s4DT2.js +0 -1
- package/dist/client/assets/left-DF5caiyh.js +0 -1
- package/dist/client/assets/left-DgT4tWCx.js +0 -1
- package/dist/client/assets/left-R0wppTTr.js +0 -1
- package/dist/client/assets/left-advisor-C-kt8V28.js +0 -1
- package/dist/client/assets/left-agents-thnBO156.js +0 -1
- package/dist/client/assets/left-default-CT42fnpF.js +0 -1
- package/dist/client/assets/left-lanes-CSmZgciK.js +0 -1
- package/dist/client/assets/left-mission-C86x6i9h.js +0 -1
- package/dist/client/assets/library-DdhYL_9v.js +0 -1
- package/dist/client/assets/message-markup-6Tgo4qFJ.js +0 -15
- package/dist/client/assets/mission-control-model-C30vU1Fe.js +0 -1
- package/dist/client/assets/profile-BegEUmB7.js +0 -1
- package/dist/client/assets/projects-inbox-CKPLZN8s.css +0 -1
- package/dist/client/assets/resolve-panes-pfZTezKo.js +0 -1
- package/dist/client/assets/resolve-sidebar-context-D5ksvrb_.js +0 -1
- package/dist/client/assets/right-BDaCJ0CF.js +0 -1
- package/dist/client/assets/right-BP6lXRFS.js +0 -1
- package/dist/client/assets/right-Cb1VCrdj.js +0 -1
- package/dist/client/assets/right-CeFaxfBo.js +0 -1
- package/dist/client/assets/right-Ck2SrYCj.js +0 -1
- package/dist/client/assets/right-D-uv5YfF.js +0 -1
- package/dist/client/assets/right-DJMSICky.js +0 -1
- package/dist/client/assets/right-Dnljs8ah.js +0 -1
- package/dist/client/assets/right-SdCSF8PP.js +0 -1
- package/dist/client/assets/router-C-MF5-mb.js +0 -1
- package/dist/client/assets/runtime-picker-C_AVYF63.js +0 -1
- package/dist/client/assets/scout-voice-CqAyfblr.js +0 -1
- package/dist/client/assets/secondaryNavConfig-DzNHk6IH.js +0 -1
- package/dist/client/assets/system-surfaces-redesign-DKFg4GB5.css +0 -1
- package/dist/client/assets/useContentSecondaryNav-DrL_nkCZ.js +0 -1
- package/dist/client/assets/usePersistentState-Y8XwSTg-.js +0 -1
- package/dist/drizzle/meta/0000_snapshot.json +0 -4575
- package/dist/drizzle/meta/0001_snapshot.json +0 -4624
- package/dist/drizzle/meta/0002_snapshot.json +0 -4631
- package/dist/drizzle/meta/0003_snapshot.json +0 -4952
- package/dist/drizzle/meta/0004_snapshot.json +0 -5235
- package/dist/drizzle/meta/0005_snapshot.json +0 -5599
- package/dist/drizzle/meta/0006_snapshot.json +0 -5606
- package/dist/drizzle/meta/0007_snapshot.json +0 -5767
- package/dist/drizzle/meta/0008_snapshot.json +0 -5774
- package/dist/drizzle/meta/0009_snapshot.json +0 -6262
- package/dist/drizzle/meta/0010_snapshot.json +0 -6286
- package/dist/drizzle/meta/0011_snapshot.json +0 -6337
- package/dist/drizzle/meta/0012_snapshot.json +0 -6458
- package/dist/drizzle/meta/0013_snapshot.json +0 -6465
- package/dist/drizzle/meta/0014_snapshot.json +0 -6503
- package/dist/drizzle/meta/0015_snapshot.json +0 -6596
- package/dist/drizzle/meta/0016_snapshot.json +0 -6611
- package/dist/drizzle/meta/0017_snapshot.json +0 -6785
- package/dist/drizzle/meta/0018_snapshot.json +0 -6804
- package/dist/drizzle/meta/0019_snapshot.json +0 -6804
package/dist/update-helper.mjs
CHANGED
|
@@ -2712,6 +2712,8 @@ var scoutBrokerPaths = {
|
|
|
2712
2712
|
machines: "/v1/machines",
|
|
2713
2713
|
machinesScan: "/v1/machines/scan",
|
|
2714
2714
|
messages: "/v1/messages",
|
|
2715
|
+
messageReactions: "/v1/message-reactions",
|
|
2716
|
+
messageReactionsRemove: "/v1/message-reactions/remove",
|
|
2715
2717
|
brokerMessages: "/v1/broker/messages",
|
|
2716
2718
|
eventsStream: "/v1/events/stream",
|
|
2717
2719
|
commands: "/v1/commands",
|
|
@@ -5643,6 +5645,99 @@ var CONTROL_PLANE_SCHEMA_VERSION = 18;
|
|
|
5643
5645
|
// ../runtime/src/sqlite-adapter.ts
|
|
5644
5646
|
import { createRequire } from "module";
|
|
5645
5647
|
|
|
5648
|
+
// ../runtime/src/sqlite-observation.ts
|
|
5649
|
+
import { createHash as createHash2 } from "crypto";
|
|
5650
|
+
function observeSqliteDatabase(database, options) {
|
|
5651
|
+
const configured = options.thresholdMs ?? Number(process.env.OPENSCOUT_SLOW_DB_MS ?? 100);
|
|
5652
|
+
const threshold = Number.isFinite(configured) && configured >= 0 ? configured : 100;
|
|
5653
|
+
if (threshold === 0)
|
|
5654
|
+
return database;
|
|
5655
|
+
const now = options.now ?? (() => performance.now());
|
|
5656
|
+
const emit = options.emit ?? ((event) => console.warn("[scout-db]", JSON.stringify(event)));
|
|
5657
|
+
const statements = new WeakMap;
|
|
5658
|
+
let windowStart = -Infinity;
|
|
5659
|
+
let emitted = 0;
|
|
5660
|
+
let suppressed = 0;
|
|
5661
|
+
function timed(operation, sql, call) {
|
|
5662
|
+
const start = now();
|
|
5663
|
+
let outcome = "error";
|
|
5664
|
+
try {
|
|
5665
|
+
const result = call();
|
|
5666
|
+
outcome = "ok";
|
|
5667
|
+
return result;
|
|
5668
|
+
} finally {
|
|
5669
|
+
try {
|
|
5670
|
+
const end = now();
|
|
5671
|
+
const duration = end - start;
|
|
5672
|
+
if (duration >= threshold) {
|
|
5673
|
+
if (end - windowStart >= 60000) {
|
|
5674
|
+
windowStart = end;
|
|
5675
|
+
emitted = 0;
|
|
5676
|
+
}
|
|
5677
|
+
if (emitted >= 10) {
|
|
5678
|
+
suppressed += 1;
|
|
5679
|
+
} else {
|
|
5680
|
+
emitted += 1;
|
|
5681
|
+
const caller = (new Error().stack ?? "").split(`
|
|
5682
|
+
`).filter((line) => !/sqlite-observation\.(?:ts|js):/.test(line)).map((line) => line.match(/(?:packages|apps)\/[\w./-]+:\d+:\d+/)?.[0]).filter((line) => Boolean(line)).slice(0, 4);
|
|
5683
|
+
emit({
|
|
5684
|
+
event: "slow_sqlite",
|
|
5685
|
+
database: options.database,
|
|
5686
|
+
pid: process.pid,
|
|
5687
|
+
operation,
|
|
5688
|
+
queryId: createHash2("sha256").update(sql).digest("hex").slice(0, 16),
|
|
5689
|
+
durationMs: Math.round(duration * 100) / 100,
|
|
5690
|
+
outcome,
|
|
5691
|
+
suppressed,
|
|
5692
|
+
caller
|
|
5693
|
+
});
|
|
5694
|
+
suppressed = 0;
|
|
5695
|
+
}
|
|
5696
|
+
}
|
|
5697
|
+
} catch {}
|
|
5698
|
+
}
|
|
5699
|
+
}
|
|
5700
|
+
function statementProxy(statement, sql) {
|
|
5701
|
+
const existing = statements.get(statement);
|
|
5702
|
+
if (existing)
|
|
5703
|
+
return existing;
|
|
5704
|
+
const proxy = bindProxy(statement, (key, method, args) => {
|
|
5705
|
+
if (["all", "get", "run", "values"].includes(key)) {
|
|
5706
|
+
return timed(key, sql, () => Reflect.apply(method, statement, args));
|
|
5707
|
+
}
|
|
5708
|
+
return Reflect.apply(method, statement, args);
|
|
5709
|
+
});
|
|
5710
|
+
statements.set(statement, proxy);
|
|
5711
|
+
return proxy;
|
|
5712
|
+
}
|
|
5713
|
+
return bindProxy(database, (key, method, args) => {
|
|
5714
|
+
if (["query", "prepare"].includes(key) && typeof args[0] === "string") {
|
|
5715
|
+
const sql = args[0];
|
|
5716
|
+
const statement = timed(`${key}.prepare`, sql, () => Reflect.apply(method, database, args));
|
|
5717
|
+
return statementProxy(statement, sql);
|
|
5718
|
+
}
|
|
5719
|
+
if (["exec", "run"].includes(key) && typeof args[0] === "string") {
|
|
5720
|
+
return timed(key, args[0], () => Reflect.apply(method, database, args));
|
|
5721
|
+
}
|
|
5722
|
+
return Reflect.apply(method, database, args);
|
|
5723
|
+
});
|
|
5724
|
+
}
|
|
5725
|
+
function bindProxy(target, invoke) {
|
|
5726
|
+
const methods = new Map;
|
|
5727
|
+
return new Proxy(target, {
|
|
5728
|
+
get(object, key) {
|
|
5729
|
+
const value = Reflect.get(object, key, object);
|
|
5730
|
+
if (typeof value !== "function" || key === "constructor")
|
|
5731
|
+
return value;
|
|
5732
|
+
const cached = methods.get(key);
|
|
5733
|
+
if (cached?.original === value)
|
|
5734
|
+
return cached.wrapped;
|
|
5735
|
+
const wrapped = (...args) => invoke(String(key), value, args);
|
|
5736
|
+
methods.set(key, { original: value, wrapped });
|
|
5737
|
+
return wrapped;
|
|
5738
|
+
}
|
|
5739
|
+
});
|
|
5740
|
+
}
|
|
5646
5741
|
// ../runtime/src/runtime-adapters.ts
|
|
5647
5742
|
function detectRuntimeHost(globalScope = globalThis) {
|
|
5648
5743
|
return typeof globalScope.Bun === "undefined" ? "node" : "bun";
|
|
@@ -5708,13 +5803,13 @@ function openRuntimeSqliteDatabase(path, options) {
|
|
|
5708
5803
|
const adapter = controlPlaneSqliteAdapterKind();
|
|
5709
5804
|
if (adapter === "bun-sqlite") {
|
|
5710
5805
|
const { Database } = require2("bun:sqlite");
|
|
5711
|
-
return new Database(path, options);
|
|
5806
|
+
return observeSqliteDatabase(new Database(path, options), { database: "runtime" });
|
|
5712
5807
|
}
|
|
5713
5808
|
const { DatabaseSync } = require2("node:sqlite");
|
|
5714
|
-
return new NodeSqliteDatabaseAdapter(new DatabaseSync(path, {
|
|
5809
|
+
return observeSqliteDatabase(new NodeSqliteDatabaseAdapter(new DatabaseSync(path, {
|
|
5715
5810
|
open: true,
|
|
5716
5811
|
readOnly: options?.readonly === true
|
|
5717
|
-
}));
|
|
5812
|
+
})), { database: "runtime" });
|
|
5718
5813
|
}
|
|
5719
5814
|
function prepareNodeSqliteSql(sql) {
|
|
5720
5815
|
const numberedParamIndexes = [];
|
|
@@ -13342,6 +13437,15 @@ var messageMentionsTable = sqliteTable("message_mentions", {
|
|
|
13342
13437
|
}, (table) => [
|
|
13343
13438
|
primaryKey({ columns: [table.messageId, table.actorId] })
|
|
13344
13439
|
]);
|
|
13440
|
+
var messageReactionsTable = sqliteTable("message_reactions", {
|
|
13441
|
+
messageId: text("message_id").notNull().references(() => messagesTable.id, { onDelete: "cascade" }),
|
|
13442
|
+
actorId: text("actor_id").notNull().references(() => actorsTable.id, { onDelete: "restrict" }),
|
|
13443
|
+
emoji: text("emoji").notNull(),
|
|
13444
|
+
createdAt: integer("created_at").notNull()
|
|
13445
|
+
}, (table) => [
|
|
13446
|
+
primaryKey({ columns: [table.messageId, table.actorId, table.emoji] }),
|
|
13447
|
+
index("idx_message_reactions_message").on(table.messageId)
|
|
13448
|
+
]);
|
|
13345
13449
|
var messageAttachmentsTable = sqliteTable("message_attachments", {
|
|
13346
13450
|
id: text("id").primaryKey(),
|
|
13347
13451
|
messageId: text("message_id").notNull().references(() => messagesTable.id, { onDelete: "cascade" }),
|
|
@@ -14189,6 +14293,16 @@ CREATE TABLE IF NOT EXISTS message_mentions (
|
|
|
14189
14293
|
PRIMARY KEY (message_id, actor_id)
|
|
14190
14294
|
);
|
|
14191
14295
|
|
|
14296
|
+
CREATE TABLE IF NOT EXISTS message_reactions (
|
|
14297
|
+
message_id TEXT NOT NULL REFERENCES messages(id) ON DELETE CASCADE,
|
|
14298
|
+
actor_id TEXT NOT NULL REFERENCES actors(id) ON DELETE RESTRICT,
|
|
14299
|
+
emoji TEXT NOT NULL,
|
|
14300
|
+
created_at INTEGER NOT NULL,
|
|
14301
|
+
PRIMARY KEY (message_id, actor_id, emoji)
|
|
14302
|
+
);
|
|
14303
|
+
CREATE INDEX IF NOT EXISTS idx_message_reactions_message
|
|
14304
|
+
ON message_reactions (message_id);
|
|
14305
|
+
|
|
14192
14306
|
CREATE TABLE IF NOT EXISTS message_attachments (
|
|
14193
14307
|
id TEXT PRIMARY KEY,
|
|
14194
14308
|
message_id TEXT NOT NULL REFERENCES messages(id) ON DELETE CASCADE,
|
|
@@ -15576,7 +15690,7 @@ class InMemoryControlRuntime {
|
|
|
15576
15690
|
}
|
|
15577
15691
|
}
|
|
15578
15692
|
// ../runtime/src/conversation-thread-artifact.ts
|
|
15579
|
-
import { createHash as
|
|
15693
|
+
import { createHash as createHash3, randomBytes as randomBytes2 } from "crypto";
|
|
15580
15694
|
import {
|
|
15581
15695
|
existsSync as existsSync13,
|
|
15582
15696
|
mkdirSync as mkdirSync5,
|
|
@@ -15712,7 +15826,7 @@ function artifactBytes(artifact) {
|
|
|
15712
15826
|
return Buffer.byteLength(encodedArtifact(artifact), "utf8");
|
|
15713
15827
|
}
|
|
15714
15828
|
function contentCursorForArtifact(artifact) {
|
|
15715
|
-
return
|
|
15829
|
+
return createHash3("sha256").update(JSON.stringify({
|
|
15716
15830
|
feedId: artifact.feedId,
|
|
15717
15831
|
entityKind: artifact.entityKind,
|
|
15718
15832
|
conversationId: artifact.conversationId,
|
|
@@ -15722,7 +15836,7 @@ function contentCursorForArtifact(artifact) {
|
|
|
15722
15836
|
})).digest("hex");
|
|
15723
15837
|
}
|
|
15724
15838
|
function nativeReadThreadArtifactPath(outputDirectory, feedId) {
|
|
15725
|
-
const digest =
|
|
15839
|
+
const digest = createHash3("sha256").update(feedId).digest("hex");
|
|
15726
15840
|
return join14(outputDirectory, `${ARTIFACT_PREFIX}${digest}${ARTIFACT_SUFFIX}`);
|
|
15727
15841
|
}
|
|
15728
15842
|
function buildNativeReadThreadArtifact(snapshot) {
|
|
@@ -15891,7 +16005,7 @@ var QUOTA_HISTORY_BUCKET_MS = 60 * 60 * 1000;
|
|
|
15891
16005
|
// ../runtime/src/sqlite-store.ts
|
|
15892
16006
|
var RUNTIME_SESSION_RETENTION_MS = 30 * 24 * 60 * 60 * 1000;
|
|
15893
16007
|
// ../runtime/src/mesh-peer-auth.ts
|
|
15894
|
-
import { createHash as
|
|
16008
|
+
import { createHash as createHash4, randomBytes as randomBytes3 } from "crypto";
|
|
15895
16009
|
var PEER_AUTH_HEADERS = {
|
|
15896
16010
|
peer: "x-openscout-peer",
|
|
15897
16011
|
ts: "x-openscout-ts",
|
|
@@ -15926,7 +16040,7 @@ function peerRequestSigningPayload(input) {
|
|
|
15926
16040
|
`);
|
|
15927
16041
|
}
|
|
15928
16042
|
function sha256Hex(body) {
|
|
15929
|
-
return
|
|
16043
|
+
return createHash4("sha256").update(body).digest("hex");
|
|
15930
16044
|
}
|
|
15931
16045
|
function signPeerRequest(identity, input) {
|
|
15932
16046
|
const ts = input.ts ?? Date.now();
|
|
@@ -15991,7 +16105,7 @@ import { connect as tlsConnect } from "tls";
|
|
|
15991
16105
|
|
|
15992
16106
|
// ../runtime/src/node-tls-identity.ts
|
|
15993
16107
|
import {
|
|
15994
|
-
createHash as
|
|
16108
|
+
createHash as createHash5,
|
|
15995
16109
|
createPrivateKey as createPrivateKey2,
|
|
15996
16110
|
createPublicKey as createPublicKey2,
|
|
15997
16111
|
generateKeyPairSync as generateKeyPairSync2,
|
|
@@ -28064,7 +28178,7 @@ AsnEcSignatureFormatter.namedCurveSize.set("P-521", 66);
|
|
|
28064
28178
|
var TLS_CERT_VALIDITY_MS = 365 * 24 * 60 * 60 * 1000;
|
|
28065
28179
|
var TLS_CERT_RENEWAL_WINDOW_MS = 30 * 24 * 60 * 60 * 1000;
|
|
28066
28180
|
function tlsSpkiFingerprintFromDer(spkiDer) {
|
|
28067
|
-
return
|
|
28181
|
+
return createHash5("sha256").update(spkiDer).digest("hex");
|
|
28068
28182
|
}
|
|
28069
28183
|
function tlsSpkiFingerprintFromCertificateDer(certificateDer) {
|
|
28070
28184
|
const certificate2 = new X509Certificate(asBufferSource(certificateDer));
|
|
@@ -28604,7 +28718,7 @@ var MAX_PEER_AGENT_SNAPSHOT_BYTES = 2 * 1024 * 1024;
|
|
|
28604
28718
|
import { createRequire as createRequire3 } from "module";
|
|
28605
28719
|
var require4 = createRequire3(import.meta.url);
|
|
28606
28720
|
// ../runtime/src/mesh-sas.ts
|
|
28607
|
-
import { createHash as
|
|
28721
|
+
import { createHash as createHash6, createHmac } from "crypto";
|
|
28608
28722
|
|
|
28609
28723
|
// ../runtime/src/eff-short-wordlist.ts
|
|
28610
28724
|
var EFF_SHORT_WORDLIST = [
|
|
@@ -29909,7 +30023,7 @@ var EFF_SHORT_WORDLIST = [
|
|
|
29909
30023
|
// ../runtime/src/mesh-sas.ts
|
|
29910
30024
|
var SAS_WORD_COUNT = 6;
|
|
29911
30025
|
function createEnrollmentCommitment(nonce, cardSignature) {
|
|
29912
|
-
return
|
|
30026
|
+
return createHash6("sha256").update(Buffer.concat([nonce, Buffer.from(cardSignature, "utf8")])).digest("base64");
|
|
29913
30027
|
}
|
|
29914
30028
|
function verifyEnrollmentCommitment(commitment, nonce, cardSignature) {
|
|
29915
30029
|
const expected = createEnrollmentCommitment(nonce, cardSignature);
|
|
@@ -31319,6 +31433,8 @@ var ACTIVE_FLIGHT_STATES3 = new Set(["queued", "waking", "running", "waiting"]);
|
|
|
31319
31433
|
// ../runtime/src/knowledge/store.ts
|
|
31320
31434
|
var KNOWLEDGE_WARM_SPAN_STALE_MS = 6 * 60 * 60 * 1000;
|
|
31321
31435
|
var STALE_INDEX_JOB_MS = 10 * 60 * 1000;
|
|
31436
|
+
// ../../apps/desktop/src/core/broker/sender.ts
|
|
31437
|
+
var TRUTHY_ENV_VALUES = new Set(["1", "true", "yes", "on"]);
|
|
31322
31438
|
// ../../apps/desktop/src/core/broker/service.ts
|
|
31323
31439
|
function resolveScoutBrokerUrl() {
|
|
31324
31440
|
const explicit = process.env.OPENSCOUT_BROKER_URL?.trim();
|
|
@@ -31451,7 +31567,7 @@ function createScoutCommandContext(input = {}) {
|
|
|
31451
31567
|
|
|
31452
31568
|
// ../../apps/desktop/src/cli/commands/install.ts
|
|
31453
31569
|
import { spawnSync as spawnSync2 } from "child_process";
|
|
31454
|
-
import { createHash as
|
|
31570
|
+
import { createHash as createHash7 } from "crypto";
|
|
31455
31571
|
import {
|
|
31456
31572
|
existsSync as fsExistsSync,
|
|
31457
31573
|
mkdirSync as fsMkdirSync,
|
|
@@ -31462,7 +31578,7 @@ import {
|
|
|
31462
31578
|
readFileSync as readFileSync11
|
|
31463
31579
|
} from "fs";
|
|
31464
31580
|
import { tmpdir as osTmpdir } from "os";
|
|
31465
|
-
import { join as join16 } from "path";
|
|
31581
|
+
import { dirname as dirname11, join as join16 } from "path";
|
|
31466
31582
|
|
|
31467
31583
|
// ../../apps/desktop/src/cli/errors.ts
|
|
31468
31584
|
class ScoutCliError extends Error {
|
|
@@ -31475,7 +31591,8 @@ class ScoutCliError extends Error {
|
|
|
31475
31591
|
// ../../apps/desktop/src/cli/commands/install.ts
|
|
31476
31592
|
var OPENSCOUT_RELEASE_OWNER = "oscout";
|
|
31477
31593
|
var OPENSCOUT_RELEASE_REPOSITORY = "scout";
|
|
31478
|
-
var OPENSCOUT_APP_NAME = "
|
|
31594
|
+
var OPENSCOUT_APP_NAME = "Scout.app";
|
|
31595
|
+
var LEGACY_APP_BUNDLE_NAMES = ["OpenScout.app"];
|
|
31479
31596
|
var OPENSCOUT_APP_BUNDLE_ID = "app.openscout.scout";
|
|
31480
31597
|
var OPENSCOUT_SIGNING_TEAM_ID = "2U83JFPW66";
|
|
31481
31598
|
var DEFAULT_OPENSCOUT_APP_PATH = `/Applications/${OPENSCOUT_APP_NAME}`;
|
|
@@ -31492,20 +31609,20 @@ var MENU_PROCESS_EXECUTABLE = "ScoutMenu";
|
|
|
31492
31609
|
var HELP_FLAGS = new Set(["help", "--help", "-h"]);
|
|
31493
31610
|
function renderInstallCommandHelp() {
|
|
31494
31611
|
return [
|
|
31495
|
-
"scout install \u2014 download and install the
|
|
31612
|
+
"scout install \u2014 download and install the Scout macOS app",
|
|
31496
31613
|
"",
|
|
31497
31614
|
"Usage:",
|
|
31498
31615
|
" scout install # install or update to the latest signed release",
|
|
31499
31616
|
" scout install --check # report installed vs latest, install nothing",
|
|
31500
31617
|
" scout install --version <tag> # install a specific release (e.g. v0.2.70)",
|
|
31501
31618
|
" scout install --force # reinstall even if already up to date",
|
|
31502
|
-
" scout install --no-restart # do not relaunch
|
|
31619
|
+
" scout install --no-restart # do not relaunch Scout after installing",
|
|
31503
31620
|
" scout install --candidate <receipt.json> --dmg <file> # explicit local signed candidate",
|
|
31504
31621
|
"",
|
|
31505
31622
|
"Behavior:",
|
|
31506
31623
|
" Downloads the signed + notarized OpenScout.dmg from the GitHub release,",
|
|
31507
31624
|
" verifies the published byte size and sha256 digest when GitHub provides one,",
|
|
31508
|
-
" then codesign and Gatekeeper-assess the DMG before mounting.
|
|
31625
|
+
" then codesign and Gatekeeper-assess the DMG before mounting. Scout.app",
|
|
31509
31626
|
" must match the pinned bundle id and Team ID, pass codesign --deep --strict,",
|
|
31510
31627
|
" and pass Gatekeeper execute after staging. A running copy of the installed",
|
|
31511
31628
|
" app and any stale ScoutMenu helpers from other checkouts are stopped first;",
|
|
@@ -31604,7 +31721,7 @@ function stripLeadingV(tag) {
|
|
|
31604
31721
|
function normalizeReleaseVersion(tag) {
|
|
31605
31722
|
const version2 = stripLeadingV(tag);
|
|
31606
31723
|
if (!/^\d+\.\d+\.\d+$/.test(version2)) {
|
|
31607
|
-
throw new ScoutCliError(`unsupported
|
|
31724
|
+
throw new ScoutCliError(`unsupported Scout release tag: ${tag}`);
|
|
31608
31725
|
}
|
|
31609
31726
|
return version2;
|
|
31610
31727
|
}
|
|
@@ -31700,7 +31817,7 @@ function verifyDownloadedAsset(buffer, asset) {
|
|
|
31700
31817
|
const parsed = parseGithubAssetDigest(digest);
|
|
31701
31818
|
let actual;
|
|
31702
31819
|
try {
|
|
31703
|
-
actual =
|
|
31820
|
+
actual = createHash7(parsed.algorithm).update(buffer).digest("hex");
|
|
31704
31821
|
} catch {
|
|
31705
31822
|
throw new ScoutCliError(`unsupported GitHub asset digest algorithm: ${parsed.algorithm}`);
|
|
31706
31823
|
}
|
|
@@ -31717,7 +31834,7 @@ function findAppDmgAsset(release) {
|
|
|
31717
31834
|
const latestAlias = assets.find((asset) => asset.name === LATEST_DMG_ALIAS);
|
|
31718
31835
|
if (latestAlias)
|
|
31719
31836
|
return latestAlias;
|
|
31720
|
-
throw new ScoutCliError(`no
|
|
31837
|
+
throw new ScoutCliError(`no product DMG found in release ${release.tag_name}. Assets: ${assets.map((asset) => asset.name).join(", ") || "(none)"}`);
|
|
31721
31838
|
}
|
|
31722
31839
|
function infoPlistPath(appPath) {
|
|
31723
31840
|
return join16(appPath, "Contents", "Info.plist");
|
|
@@ -31750,7 +31867,7 @@ async function fetchRelease(version2, deps) {
|
|
|
31750
31867
|
if ((gh.status ?? 1) === 0 && gh.stdout.trim()) {
|
|
31751
31868
|
return JSON.parse(gh.stdout);
|
|
31752
31869
|
}
|
|
31753
|
-
throw new ScoutCliError(version2 ? `release "${version2}" not found on GitHub (${OPENSCOUT_RELEASE_OWNER}/${OPENSCOUT_RELEASE_REPOSITORY})` : `could not fetch the latest
|
|
31870
|
+
throw new ScoutCliError(version2 ? `release "${version2}" not found on GitHub (${OPENSCOUT_RELEASE_OWNER}/${OPENSCOUT_RELEASE_REPOSITORY})` : `could not fetch the latest Scout release from GitHub (${OPENSCOUT_RELEASE_OWNER}/${OPENSCOUT_RELEASE_REPOSITORY})`);
|
|
31754
31871
|
}
|
|
31755
31872
|
async function downloadDmg(asset, destination, context, deps) {
|
|
31756
31873
|
context.stderr(`Downloading ${asset.name} (${formatBytes(asset.size)})\u2026`);
|
|
@@ -31787,11 +31904,13 @@ function unmountDmg(mountPoint, deps) {
|
|
|
31787
31904
|
deps.run("hdiutil", ["detach", mountPoint, "-force", "-quiet"]);
|
|
31788
31905
|
}
|
|
31789
31906
|
function requireMountedOpenScoutApp(mountPoint, deps) {
|
|
31790
|
-
const
|
|
31791
|
-
|
|
31792
|
-
|
|
31907
|
+
for (const name2 of [OPENSCOUT_APP_NAME, ...LEGACY_APP_BUNDLE_NAMES]) {
|
|
31908
|
+
const source = join16(mountPoint, name2);
|
|
31909
|
+
if (deps.existsSync(source) && deps.existsSync(infoPlistPath(source)))
|
|
31910
|
+
return source;
|
|
31793
31911
|
}
|
|
31794
|
-
|
|
31912
|
+
const names2 = [OPENSCOUT_APP_NAME, ...LEGACY_APP_BUNDLE_NAMES].join(" or ");
|
|
31913
|
+
throw new ScoutCliError(`no ${names2} found in the mounted DMG at ${mountPoint}`);
|
|
31795
31914
|
}
|
|
31796
31915
|
function codesignField(output, key) {
|
|
31797
31916
|
const match = output.match(new RegExp(`^${key}=(.+)$`, "m"));
|
|
@@ -32012,7 +32131,7 @@ function processIdsForMenuOutsideApp(psOutput, appPath) {
|
|
|
32012
32131
|
}
|
|
32013
32132
|
function inspectInstallProcessIds(deps) {
|
|
32014
32133
|
const result = deps.run("ps", ["-axo", "pid=,args="]);
|
|
32015
|
-
requireSuccess(result, "could not inspect running
|
|
32134
|
+
requireSuccess(result, "could not inspect running Scout processes");
|
|
32016
32135
|
return {
|
|
32017
32136
|
installed: processIdsForInstalledApp(result.stdout, deps.appPath),
|
|
32018
32137
|
staleMenus: processIdsForMenuOutsideApp(result.stdout, deps.appPath)
|
|
@@ -32050,7 +32169,57 @@ function stopRunningApp(deps) {
|
|
|
32050
32169
|
}
|
|
32051
32170
|
if (waitUntilInstallUnblocked(deps, STOP_POLL_ATTEMPTS))
|
|
32052
32171
|
return hadInstalledRunning;
|
|
32053
|
-
throw new ScoutCliError("could not stop
|
|
32172
|
+
throw new ScoutCliError("could not stop Scout before replacing it");
|
|
32173
|
+
}
|
|
32174
|
+
function stopAppAtPath(appPath, deps) {
|
|
32175
|
+
const scan = () => {
|
|
32176
|
+
const result = deps.run("ps", ["-axo", "pid=,args="]);
|
|
32177
|
+
requireSuccess(result, "could not inspect running Scout processes");
|
|
32178
|
+
return processIdsForInstalledApp(result.stdout, appPath);
|
|
32179
|
+
};
|
|
32180
|
+
if (scan().length === 0)
|
|
32181
|
+
return false;
|
|
32182
|
+
for (const pid of scan())
|
|
32183
|
+
deps.run("kill", [String(pid)]);
|
|
32184
|
+
for (let attempt = 0;attempt < STOP_POLL_ATTEMPTS; attempt += 1) {
|
|
32185
|
+
if (scan().length === 0)
|
|
32186
|
+
return true;
|
|
32187
|
+
deps.sleep(STOP_POLL_MS);
|
|
32188
|
+
}
|
|
32189
|
+
for (const pid of scan())
|
|
32190
|
+
deps.run("kill", ["-9", String(pid)]);
|
|
32191
|
+
for (let attempt = 0;attempt < STOP_POLL_ATTEMPTS; attempt += 1) {
|
|
32192
|
+
if (scan().length === 0)
|
|
32193
|
+
return true;
|
|
32194
|
+
deps.sleep(STOP_POLL_MS);
|
|
32195
|
+
}
|
|
32196
|
+
throw new ScoutCliError(`could not stop the pre-rename app at ${appPath}`);
|
|
32197
|
+
}
|
|
32198
|
+
function retireLegacyAppBundles(deps, context) {
|
|
32199
|
+
const removed = [];
|
|
32200
|
+
let hadRunning = false;
|
|
32201
|
+
let blocked = false;
|
|
32202
|
+
for (const name2 of LEGACY_APP_BUNDLE_NAMES) {
|
|
32203
|
+
const legacyPath = join16(dirname11(deps.appPath), name2);
|
|
32204
|
+
if (legacyPath === deps.appPath || !deps.existsSync(legacyPath))
|
|
32205
|
+
continue;
|
|
32206
|
+
try {
|
|
32207
|
+
if (stopAppAtPath(legacyPath, deps))
|
|
32208
|
+
hadRunning = true;
|
|
32209
|
+
} catch (error) {
|
|
32210
|
+
blocked = true;
|
|
32211
|
+
context.stderr(`Kept ${legacyPath}; automatic relaunch skipped: ${error instanceof Error ? error.message : String(error)}`);
|
|
32212
|
+
continue;
|
|
32213
|
+
}
|
|
32214
|
+
try {
|
|
32215
|
+
deps.rmSync(legacyPath, { recursive: true, force: true });
|
|
32216
|
+
removed.push(legacyPath);
|
|
32217
|
+
context.stderr(`Removed the pre-rename bundle at ${legacyPath}.`);
|
|
32218
|
+
} catch (error) {
|
|
32219
|
+
context.stderr(`Could not remove the pre-rename bundle at ${legacyPath}: ${error instanceof Error ? error.message : String(error)}`);
|
|
32220
|
+
}
|
|
32221
|
+
}
|
|
32222
|
+
return { removed, hadRunning, blocked };
|
|
32054
32223
|
}
|
|
32055
32224
|
function launchApp(deps) {
|
|
32056
32225
|
requireSuccess(deps.run("open", [deps.appPath]), `could not relaunch ${deps.appPath}`);
|
|
@@ -32076,24 +32245,24 @@ async function runCheck(context, options, deps) {
|
|
|
32076
32245
|
if (!deps.existsSync(deps.appPath)) {
|
|
32077
32246
|
if (deps.existsSync(backupPathFor(deps.appPath))) {
|
|
32078
32247
|
status = "repair-needed";
|
|
32079
|
-
message = "An interrupted
|
|
32248
|
+
message = "An interrupted Scout install needs repair \u2014 run `scout install --force`.";
|
|
32080
32249
|
} else {
|
|
32081
32250
|
status = "not-installed";
|
|
32082
|
-
message = "
|
|
32251
|
+
message = "Scout is not installed \u2014 run `scout install`.";
|
|
32083
32252
|
}
|
|
32084
32253
|
} else {
|
|
32085
32254
|
try {
|
|
32086
32255
|
installed = verifyStagedOpenScoutApp(deps.appPath, deps);
|
|
32087
32256
|
if (installed === target2) {
|
|
32088
32257
|
status = "up-to-date";
|
|
32089
|
-
message = `
|
|
32258
|
+
message = `Scout ${installed} is up to date.`;
|
|
32090
32259
|
} else {
|
|
32091
32260
|
status = "update-available";
|
|
32092
32261
|
message = `Update available: ${installed} \u2192 ${target2}. Run \`scout install\`.`;
|
|
32093
32262
|
}
|
|
32094
32263
|
} catch (error) {
|
|
32095
32264
|
status = "repair-needed";
|
|
32096
|
-
message = `
|
|
32265
|
+
message = `Scout needs repair (${error instanceof Error ? error.message : String(error)}). ` + "Run `scout install --force`.";
|
|
32097
32266
|
}
|
|
32098
32267
|
}
|
|
32099
32268
|
context.output.writeValue({ action: "check", status, installed, target: target2, bundlePath: deps.appPath, message }, renderInstallResult);
|
|
@@ -32114,7 +32283,7 @@ async function runInstallCommand(context, args, dependencies = {}) {
|
|
|
32114
32283
|
await runCheck(context, options, deps);
|
|
32115
32284
|
return;
|
|
32116
32285
|
}
|
|
32117
|
-
context.stderr(options.candidate ? "Verifying explicit local candidate (unpublished)\u2026" : options.version ? `Fetching release ${options.version}\u2026` : "Fetching the latest
|
|
32286
|
+
context.stderr(options.candidate ? "Verifying explicit local candidate (unpublished)\u2026" : options.version ? `Fetching release ${options.version}\u2026` : "Fetching the latest Scout release\u2026");
|
|
32118
32287
|
const release = options.candidate && options.dmg ? loadInstallCandidate(options.candidate, options.dmg) : await fetchRelease(options.version, deps);
|
|
32119
32288
|
const target2 = normalizeReleaseVersion(release.tag_name);
|
|
32120
32289
|
const releaseInstallLock = acquireInstallLock(deps);
|
|
@@ -32132,12 +32301,12 @@ async function runInstallCommand(context, args, dependencies = {}) {
|
|
|
32132
32301
|
installed: verifiedVersion,
|
|
32133
32302
|
target: target2,
|
|
32134
32303
|
bundlePath: deps.appPath,
|
|
32135
|
-
message: `
|
|
32304
|
+
message: `Scout ${target2} is already installed (use --force to reinstall).`
|
|
32136
32305
|
}, renderInstallResult);
|
|
32137
32306
|
return;
|
|
32138
32307
|
} catch (error) {
|
|
32139
32308
|
repairingInstalledApp = true;
|
|
32140
|
-
context.stderr(`Installed
|
|
32309
|
+
context.stderr(`Installed Scout ${target2} failed verification; repairing it: ${error instanceof Error ? error.message : String(error)}`);
|
|
32141
32310
|
}
|
|
32142
32311
|
}
|
|
32143
32312
|
const asset = findAppDmgAsset(release);
|
|
@@ -32156,7 +32325,7 @@ async function runInstallCommand(context, args, dependencies = {}) {
|
|
|
32156
32325
|
} else {
|
|
32157
32326
|
await downloadDmg(asset, dmgPath, context, deps);
|
|
32158
32327
|
}
|
|
32159
|
-
context.stderr(`Installing
|
|
32328
|
+
context.stderr(`Installing Scout ${target2} to ${deps.appPath}\u2026`);
|
|
32160
32329
|
verifyDownloadedDmg(dmgPath, deps);
|
|
32161
32330
|
mountDmg(dmgPath, mountPoint, deps);
|
|
32162
32331
|
mounted = true;
|
|
@@ -32170,11 +32339,14 @@ async function runInstallCommand(context, args, dependencies = {}) {
|
|
|
32170
32339
|
unmountDmg(mountPoint, deps);
|
|
32171
32340
|
deps.rmSync(workDir, { recursive: true, force: true });
|
|
32172
32341
|
}
|
|
32173
|
-
|
|
32342
|
+
const retirement = retireLegacyAppBundles(deps, context);
|
|
32343
|
+
if (retirement.hadRunning)
|
|
32344
|
+
wasRunning = true;
|
|
32345
|
+
if (wasRunning && options.restart && !retirement.blocked) {
|
|
32174
32346
|
launchApp(deps);
|
|
32175
32347
|
}
|
|
32176
32348
|
const status = hadInstalledApp ? "updated" : "installed";
|
|
32177
|
-
const relaunchNote = wasRunning ? options.restart ? " (relaunched)" : " (restart
|
|
32349
|
+
const relaunchNote = retirement.blocked ? " (legacy app cleanup incomplete; automatic relaunch skipped)" : wasRunning ? options.restart ? " (relaunched)" : " (restart Scout to use the new version)" : "";
|
|
32178
32350
|
let verb = "Installed";
|
|
32179
32351
|
if (repairingInstalledApp || hadInstalledApp && !installedBefore) {
|
|
32180
32352
|
verb = "Repaired";
|
|
@@ -32187,7 +32359,7 @@ async function runInstallCommand(context, args, dependencies = {}) {
|
|
|
32187
32359
|
installed: installedAfter,
|
|
32188
32360
|
target: target2,
|
|
32189
32361
|
bundlePath: deps.appPath,
|
|
32190
|
-
message: `${verb}
|
|
32362
|
+
message: `${verb} Scout ${installedAfter} \u2192 ${deps.appPath}${relaunchNote}`
|
|
32191
32363
|
}, renderInstallResult);
|
|
32192
32364
|
} finally {
|
|
32193
32365
|
releaseInstallLock();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openscout/scout",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.106",
|
|
4
4
|
"description": "Local-first control plane for discovering, messaging, and coordinating AI agents across Claude Code, Codex, and more",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"openscout",
|
|
@@ -62,5 +62,5 @@
|
|
|
62
62
|
"publishConfig": {
|
|
63
63
|
"access": "public"
|
|
64
64
|
},
|
|
65
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "02db44c5ccdacb0dddbd4647e36da5d7d8f630bf"
|
|
66
66
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as t,j as s}from"./index-DReVb7jZ.js";import{p as Y,a as J}from"./api-DSqpVKC7.js";import{c as k}from"./clipboard-e3fSpeo7.js";import{u as Q}from"./sse-A8AyLH0g.js";import{a as Z}from"./colors-CFlbwC25.js";import{m as ss,a as es}from"./machine-scope-DJt9RZ2w.js";import{d as as}from"./router-C-MF5-mb.js";import{r as B}from"./mentions-Ck_Vjnyp.js";import{t as I,b as U}from"./time-Dhsh_2EG.js";import{u as ts,a as ns}from"./Provider-CNZluAZb.js";import{E as C}from"./EmptyState-CYUwYyAW.js";/* empty css */import"./index-BWHgHrtv.js";import"./agent-state-DDhnFEEP.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./index-CbqBwfIW.js";import"./AgentDetailCard-MIEBKw_S.js";import"./AgentLiveActions-6Kfr1uOT.js";import"./terminal-takeover-CZZsnPzj.js";import"./openContent-C6XO6kr5.js";import"./eye-CsGfEVR6.js";import"./createLucideIcon-ChvMq-zl.js";import"./terminal-DMZjX1es.js";import"./provider-DwmCoSlc.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-BEXS8vV6.js";import"./runtime-picker-C_AVYF63.js";import"./scout-voice-CqAyfblr.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DNUsuPWz.js";import"./conversation-model-m8HhzroS.js";import"./conversations-Cbg9h_Af.js";import"./HarnessMark-DSvM_H7H.js";import"./NewChatOrigin-C8ROO4ps.js";import"./keyboard-nav-CJXPaHXj.js";import"./x-rlMdRqJF.js";import"./chevron-down-CDzRQQGl.js";import"./search-UsM-9-_W.js";import"./file-text-DP6txVW-.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-DlMiEALb.js";import"./TextDocumentSurface-BK6Qy41F.js";import"./index-kkXUq-zf.js";import"./chevron-right-DKGTLiqc.js";import"./folder-B_S7gBVr.js";import"./chevron-up-DX7R6KY2.js";import"./code-xml-Cmadr3pQ.js";import"./arrow-left-DFfKAq0d.js";import"./arrow-right-DmAWnyAH.js";import"./chunk-HRAB3GC3-Dvk_QpRq.js";const is=3e4,ls={"agent.registered":"registered","agent.online":"came online","agent.offline":"went offline","flight.started":"started task","message.sent":"sent message","message.received":"received message","collaboration.ask":"asked a question","collaboration.answer":"answered",ask_sent:"sent a request",ask_working:"working",flight_created:"started task",message_sent:"sent",message_received:"received"},rs=new Set(["ask_failed","ask_replied","flight.completed","flight.updated","flight_updated"]),os={presence:{label:"Presence",tone:"notice"},work:{label:"Execution",tone:"working"},message:{label:"Delivery",tone:"completed"},collaboration:{label:"Coordination",tone:"working"},system:{label:"System",tone:"notice"}};function q(a){return ls[a]??a.replace(/[._]/g," ")}function cs(a){return a.startsWith("agent.")||a.includes("registered")||a.includes("online")||a.includes("offline")?"presence":a.startsWith("flight")||a.startsWith("ask_")?"work":a.startsWith("message")?"message":a.startsWith("collaboration")?"collaboration":"system"}function ds(a){return(a??"system").charAt(0).toUpperCase()}function p(a){return a.length<=14?a:`${a.slice(0,8)}...${a.slice(-4)}`}function ps(a){if(!a)return null;const u=a.split("/").filter(Boolean);return u[u.length-1]??a}function us(a){return`${a.actorName??"system"} ${q(a.kind)}`}function hs(a){return a.workspaceRoot?`Recorded from ${a.workspaceRoot}.`:a.conversationId?`Linked to thread ${p(a.conversationId)}.`:"No additional detail was captured for this event."}function he({navigate:a}){const{agents:u,route:z}=ts(),[w]=t.useState(()=>Y("/api/activity",is)),[g,F]=t.useState(w??[]),[x,S]=t.useState(null),[y,R]=t.useState(w===null),[_,T]=t.useState(!1),[h,E]=t.useState(null),[N,G]=t.useState(null),$=t.useRef(w??[]),b=t.useRef(0),f=t.useRef(null),K=ns(),L=as(z),D=t.useMemo(()=>ss(u,L),[u,L]),i=t.useMemo(()=>es(g,D).filter(e=>!rs.has(e.kind)),[g,D]);t.useEffect(()=>{$.current=g},[g]),t.useEffect(()=>{x&&!i.some(e=>e.id===x)&&S(null)},[x,i]);const m=t.useCallback(async(e="initial")=>{const l=++b.current;!($.current.length>0)&&e!=="background"?(R(!0),E(null)):T(!0);try{const o=await J("/api/activity");if(l!==b.current)return;F(o),E(null),G(Date.now()),S(v=>o.some(A=>A.id===v)?v:null)}catch(o){if(l!==b.current)return;E(o instanceof Error?o.message:String(o))}finally{l===b.current&&(R(!1),T(!1))}},[]),P=t.useCallback(()=>{f.current||(f.current=setTimeout(()=>{f.current=null,m("background")},250))},[m]);t.useEffect(()=>(m("initial"),()=>{f.current&&clearTimeout(f.current)}),[m]),Q(P);const H=t.useMemo(()=>{const e=new Set(i.map(c=>c.actorName??"system")),l=new Set(i.map(c=>c.conversationId).filter(c=>!!c));return[{label:"Events",value:`${i.length}`,detail:i.length>0?`Latest ${I(i[0].ts)}`:"Waiting for records"},{label:"Actors",value:`${e.size}`,detail:e.size>0?"Distinct event owners":"No actors yet"},{label:"Threads",value:`${l.size}`,detail:l.size>0?"Conversation-linked records":"No linked threads"}]},[i]),V=!y&&i.length===0&&!!h,X=!y&&i.length===0&&!h;return s.jsxs("div",{className:"sys-surface-page",children:[s.jsxs("div",{className:"sys-page-head",children:[s.jsxs("div",{className:"sys-page-title-group",children:[s.jsx("h2",{className:"sys-page-title",children:"Activity Log"}),s.jsx("p",{className:"sys-page-subtitle",children:"Broker events, task execution, and collaboration handoffs."})]}),s.jsxs("div",{className:"sys-page-actions",children:[s.jsx("div",{className:"sys-sync-note",children:y?"Loading audit ledger...":h&&i.length>0?`Showing last confirmed snapshot from ${N?I(N):"earlier"}`:N?`Updated ${I(N)}`:"Waiting for first snapshot"}),s.jsx("button",{type:"button",className:"s-btn",disabled:y||_,onClick:()=>{m("manual")},children:_?"Refreshing...":"Refresh"})]})]}),s.jsx("div",{className:"sys-stat-grid",children:H.map(e=>s.jsxs("div",{className:"sys-stat-card",children:[s.jsx("span",{className:"sys-stat-label",children:e.label}),s.jsx("strong",{className:"sys-stat-value",children:e.value}),s.jsx("span",{className:"sys-stat-detail",children:e.detail})]},e.label))}),h&&i.length>0&&s.jsxs("div",{className:"sys-banner sys-banner-warning",children:[s.jsx("strong",{children:"Refresh failed."}),s.jsx("span",{children:h})]}),y&&i.length===0&&s.jsx(C,{title:"Loading activity",body:"Pulling the latest records from the broker database."}),V&&s.jsx(C,{className:"sys-state-card-error",title:"Activity is unavailable",body:h,action:s.jsx("button",{type:"button",className:"s-btn",onClick:()=>{m("manual")},children:"Try again"})}),X&&s.jsx(C,{title:"No activity yet",body:"Events appear here after agents register, send messages, or advance work."}),i.length>0&&s.jsx("div",{className:"sys-audit-list",children:i.map(e=>{const l=x===e.id,c=cs(e.kind),o=os[c],v=ps(e.workspaceRoot),A=e.summary&&e.summary!==e.title?e.summary:hs(e),r=[];if(e.conversationId&&r.push({key:"thread",label:"Thread",title:`Open thread ${p(e.conversationId)}`,route:{view:"conversation",conversationId:e.conversationId}}),e.recordId&&r.push({key:"work",label:"Work",title:"Open work item",route:{view:"work",workId:e.recordId}}),e.agentId){const n=e.agentName??"Agent";r.push({key:"agent",label:n,title:`Open agent ${n}`,route:{view:"agents-v2",agentId:e.agentId}})}e.sessionId&&r.push({key:"session",label:"Session",title:"Open session",route:{view:"sessions",sessionId:e.sessionId}}),(e.flightId||e.invocationId)&&r.push({key:"follow",label:"Follow",title:"Follow live execution",route:{view:"follow",...e.flightId?{flightId:e.flightId}:{},...e.invocationId?{invocationId:e.invocationId}:{},...e.conversationId?{conversationId:e.conversationId}:{}}});const M=()=>S(l?null:e.id);return s.jsxs("article",{className:`sys-audit-entry${l?" sys-audit-entry-expanded":""}`,onContextMenu:n=>{const j=window.getSelection()?.toString().trim(),d=[];j&&(d.push({kind:"action",label:"Copy Selection",shortcut:"⌘C",onSelect:()=>{k(j)}}),d.push({kind:"separator"}));const W=e.title??e.summary??"";if(W&&d.push({kind:"action",label:"Copy Details",onSelect:()=>{k(W)}}),e.actorName&&d.push({kind:"action",label:"Copy Actor",onSelect:()=>{k(e.actorName)}}),d.push({kind:"action",label:"Copy Event ID",onSelect:()=>{k(e.id)}}),r.length>0){d.push({kind:"separator"});for(const O of r)d.push({kind:"action",label:`Open ${O.label}`,onSelect:()=>a(O.route)})}K(n,d)},children:[s.jsxs("div",{className:"sys-audit-toggle",role:"button",tabIndex:0,"aria-expanded":l,onClick:M,onKeyDown:n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),M())},children:[s.jsxs("div",{className:"sys-audit-stamp",children:[s.jsx("span",{className:"sys-audit-time",children:I(e.ts)}),s.jsx("span",{className:"sys-audit-date",children:U(e.ts)})]}),s.jsx("div",{className:`sys-audit-marker sys-audit-marker-${o.tone}`,children:s.jsx("span",{})}),s.jsxs("div",{className:"sys-audit-body",children:[s.jsxs("div",{className:"sys-audit-topline",children:[s.jsx("span",{className:"sys-audit-category",children:o.label}),s.jsx("span",{className:"sys-audit-kind",children:q(e.kind)})]}),s.jsx("h3",{className:"sys-audit-title",children:B(e.title??us(e))}),s.jsx("p",{className:"sys-audit-summary",children:B(A)}),s.jsxs("div",{className:"sys-audit-meta",children:[s.jsxs("span",{className:"sys-audit-meta-item",children:[s.jsx("span",{className:"sys-audit-avatar",style:{background:Z(e.actorName??"system")},children:ds(e.actorName)}),e.actorName??"system"]}),v&&s.jsxs("span",{className:"sys-audit-meta-item",children:["Workspace ",v]})]}),r.length>0&&s.jsxs("div",{className:"sys-audit-jumps",children:[s.jsx("span",{className:"sys-audit-jumps-label",children:"Open"}),r.map(n=>s.jsx("button",{type:"button",className:"sys-audit-jump",title:n.title,onClick:j=>{j.stopPropagation(),a(n.route)},children:n.label},n.key))]})]}),s.jsx("div",{className:"sys-audit-expand",children:l?"Close":"Details"})]}),l&&s.jsxs("div",{className:"sys-audit-details",children:[s.jsxs("div",{className:"sys-detail-grid",children:[s.jsxs("div",{className:"sys-detail-card",children:[s.jsx("span",{className:"sys-detail-label",children:"Event"}),s.jsx("code",{className:"sys-detail-value",children:e.kind})]}),s.jsxs("div",{className:"sys-detail-card",children:[s.jsx("span",{className:"sys-detail-label",children:"Recorded"}),s.jsx("span",{className:"sys-detail-value",children:U(e.ts)})]}),s.jsxs("div",{className:"sys-detail-card",children:[s.jsx("span",{className:"sys-detail-label",children:"Actor"}),s.jsx("span",{className:"sys-detail-value",children:e.actorName??"system"})]}),e.agentName&&s.jsxs("div",{className:"sys-detail-card",children:[s.jsx("span",{className:"sys-detail-label",children:"Agent"}),s.jsx("span",{className:"sys-detail-value",children:e.agentName})]}),s.jsxs("div",{className:"sys-detail-card",children:[s.jsx("span",{className:"sys-detail-label",children:"Workspace"}),s.jsx("span",{className:"sys-detail-value",children:e.workspaceRoot??"Not attached"})]}),s.jsxs("div",{className:"sys-detail-card",children:[s.jsx("span",{className:"sys-detail-label",children:"Thread"}),s.jsx("span",{className:"sys-detail-value",children:e.conversationId?p(e.conversationId):"Not attached"})]}),e.recordId&&s.jsxs("div",{className:"sys-detail-card",children:[s.jsx("span",{className:"sys-detail-label",children:"Work"}),s.jsx("span",{className:"sys-detail-value",children:p(e.recordId)})]}),e.sessionId&&s.jsxs("div",{className:"sys-detail-card",children:[s.jsx("span",{className:"sys-detail-label",children:"Session"}),s.jsx("span",{className:"sys-detail-value",children:p(e.sessionId)})]}),e.flightId&&s.jsxs("div",{className:"sys-detail-card",children:[s.jsx("span",{className:"sys-detail-label",children:"Flight"}),s.jsx("span",{className:"sys-detail-value",children:p(e.flightId)})]}),e.invocationId&&s.jsxs("div",{className:"sys-detail-card",children:[s.jsx("span",{className:"sys-detail-label",children:"Invocation"}),s.jsx("span",{className:"sys-detail-value",children:p(e.invocationId)})]}),s.jsxs("div",{className:"sys-detail-card",children:[s.jsx("span",{className:"sys-detail-label",children:"Record id"}),s.jsx("code",{className:"sys-detail-value",children:e.id})]})]}),r.length>0&&s.jsx("div",{className:"sys-inline-actions",children:r.map(n=>s.jsxs("button",{type:"button",className:"s-btn s-btn-sm",onClick:()=>a(n.route),children:["Open ",n.label]},n.key))})]})]},e.id)})})]})}export{he as ActivityScreen};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r,m as se,g as ne,j as e,h as ke}from"./index-DReVb7jZ.js";import{ReplayClock as be}from"./ReplayClock-DUVJjrIu.js";import{S as _e}from"./SproutActionSprite-DI5N3gOj.js";import{C as B}from"./CrewSprite-Dp9KBBGY.js";import{l as ie}from"./agent-lanes-model-DMAdqCmK.js";import{o as ye}from"./lane-observe-CteDwdD-.js";import{b as L,a as O,c as we}from"./adventure-playback-DTfkhIc0.js";import{AdventureScenery as Ne}from"./AdventureScenery-DSxDlqG1.js";import{AdventureReader as Se}from"./AdventureReader-ZsBDQITY.js";import{ReplayLog as Ce}from"./ReplayLog-Bek1Vc4W.js";import{H as $e,A as Pe}from"./AdventureEvidence-B4mEvXeD.js";import{f as H}from"./floor-preview-text-HrORUJ7D.js";/* empty css */import{c as K}from"./createLucideIcon-ChvMq-zl.js";import{F as V}from"./flag-DAFE2wZ5.js";import{W as Me}from"./wrench-B4maQJai.js";import{B as oe}from"./book-open-BL9qvhEI.js";import{P as Te}from"./pause-B_hliKuR.js";import{P as Ae}from"./play-CVeRmqLH.js";import{R as Re}from"./radio-Cas2qg1D.js";import{A as ze}from"./arrow-left-DFfKAq0d.js";import{A as ae}from"./arrow-right-DmAWnyAH.js";/* empty css */import"./lane-ask-display-BTVSakyo.js";import"./context-budget-8qFKqM-j.js";import"./terminal-sessions-3RfJpen8.js";import"./api-DSqpVKC7.js";import"./lane-edit-display-BjdT9oZl.js";import"./tail-display-DHSNmvor.js";import"./time-Dhsh_2EG.js";import"./adventure-habitats-v1-M1lcpTJh.js";import"./index-kkXUq-zf.js";import"./TextDocumentSurface-BK6Qy41F.js";import"./chevron-right-DKGTLiqc.js";import"./folder-B_S7gBVr.js";import"./file-text-DP6txVW-.js";/* empty css */import"./x-rlMdRqJF.js";import"./terminal-DMZjX1es.js";import"./scroll-text-B0tKI9Sg.js";import"./observe-CtS0l3zu.js";import"./agent-state-DDhnFEEP.js";import"./surface-activity-B1rgWB1i.js";import"./Provider-CNZluAZb.js";import"./provider-DwmCoSlc.js";import"./router-C-MF5-mb.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-A8AyLH0g.js";import"./index-BWHgHrtv.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-BEXS8vV6.js";import"./runtime-picker-C_AVYF63.js";import"./scout-voice-CqAyfblr.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DNUsuPWz.js";import"./conversation-model-m8HhzroS.js";import"./colors-CFlbwC25.js";import"./conversations-Cbg9h_Af.js";import"./index-CbqBwfIW.js";import"./HarnessMark-DSvM_H7H.js";import"./NewChatOrigin-C8ROO4ps.js";import"./keyboard-nav-CJXPaHXj.js";import"./chevron-down-CDzRQQGl.js";import"./search-UsM-9-_W.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-DlMiEALb.js";import"./chevron-up-DX7R6KY2.js";import"./code-xml-Cmadr3pQ.js";import"./chunk-HRAB3GC3-Dvk_QpRq.js";import"./agent-lane-detail-Ti3trpfH.js";/* empty css */import"./arrow-up-right-B0aLKiyF.js";const Ie=[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]],le=K("mail",Ie);const Le=[["path",{d:"m8 3 4 8 5-5 5 15H2L8 3z",key:"otkl63"}]],Ee=K("mountain",Le);const We=[["path",{d:"M3.5 21 14 3",key:"1szst5"}],["path",{d:"M20.5 21 10 3",key:"1310c3"}],["path",{d:"M15.5 21 12 15l-3.5 6",key:"1ddtfw"}],["path",{d:"M2 21h20",key:"1nyx9w"}]],re=K("tent",We),De={start:"Trailhead",think:"Lookout",read:"Field library",edit:"Workbench",tool:"Tool shed",message:"Post station",wait:"Waiting camp",end:"Turn complete",stopped:"Journey interrupted"};function Fe(n){const p=n.text.trim().toLowerCase();if(n.kind==="note"||n.kind==="system"||n.kind==="boot")return/^(task started|turn started|\[turn_started\])$/.test(p)?"start":/^(task complete|task completed|turn complete|turn completed|turn ended|\[turn_ended\])$/.test(p)?"end":/^(?:(?:turn|task) (?:aborted|failed|cancelled|canceled))(?:$|[ :])/.test(p)?"stopped":/\b(waiting|approval required|permission requested|blocked)\b/.test(p)?"wait":null;if(n.kind==="think")return"think";if(n.kind==="ask"||n.kind==="message")return"message";const c=n.tool?.toLowerCase()??"";return/wait|sleep|request_user_input/.test(c)?"wait":n.diff||/(?:^|[._/])(?:edit|write|write_file|edit_file|apply_patch|multiedit|str_replace_editor)$/.test(c)?"edit":/read|search|find|open|view|fetch/.test(c)?"read":n.kind==="tool"?"tool":null}function Je(n,p){const c=new Set,x=(n.observe?.events??[]).flatMap(o=>{const b=ye(o,n.observe?.metadata?.session?.sessionStart),v=Fe(o);return b===null||b>p||!v||c.has(o.id)?[]:(c.add(o.id),[{id:`${n.id}:${o.id}`,event:o,at:b,kind:v,label:De[v],artifact:o.arg||o.tool||o.text}])}).sort((o,b)=>o.at-b.at),m=[];let k;for(const o of x)(!k||o.kind==="start"||k.closed)&&(k={id:o.id,stops:[],partial:o.kind!=="start",closed:!1},m.push(k)),k.stops.push(o),k.closed=o.kind==="end"||o.kind==="stopped";return m}function I(n,p){if(p==="continuous")return null;const c=n.event.result?.exit_code??n.event.result?.exitCode,x=typeof c=="number"?c:typeof c=="string"&&/^-?\d+$/.test(c)?Number(c):null;if(x!==null&&x!==0)return`Command needs attention · exit ${x}`;if(n.kind==="stopped")return"Journey interrupted";if(n.kind==="wait")return"Waiting for input";if(p==="problems")return null;if(n.kind==="end")return"Turn complete";if(p==="all")return L(n).checkpoint?L(n).label:null;const m=O(n);return m&&x!==null&&we(m)?"Validation result ready":null}const qe={start:V,think:Ee,read:oe,edit:$e,tool:Me,message:le,wait:re,end:V,stopped:re},M=n=>new Date(n).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"}),w=218;function vs({lanes:n,now:p,onActor:c}){const[x,m]=r.useState(null),[k,o]=r.useState(n[0]?.id??""),[b,v]=r.useState(null),[de,_]=r.useState(0),[ce,He]=r.useState(!0),[ue,Oe]=r.useState(!0),[Ve,Ke]=r.useState(!1),[U,Ue]=r.useState(!1),[f,Ye]=r.useState(!1),[u,h]=r.useState(!0),[j,pe]=r.useState(1),[E,T]=r.useState("rest"),[S,Y]=r.useState("results"),[me,A]=r.useState(null),[C,he]=r.useState(!document.hidden);r.useEffect(()=>{const t=()=>he(!document.hidden);return document.addEventListener("visibilitychange",t),()=>document.removeEventListener("visibilitychange",t)},[]);const R=r.useRef(null),l=n.find(t=>t.id===k)??n[0],W=r.useMemo(()=>l?Je(l,p):[],[l,p]),g=W.find(t=>t.id===b)??W.at(-1),a=g?.stops??[],i=Math.min(de??a.length-1,a.length-1),s=a[i],Z=l?se(l.agent.name)??ne(l.id):"sprout",D=s?.event.to?n.find(t=>[t.id,t.agent.id,t.agent.name,t.agent.handle].includes(s.event.to)):void 0;ce&&l&&n.filter(t=>t.id!==l.id&&!!l.agent.project&&t.agent.project===l.agent.project).slice(0,4);const G=b===null,y=s?L(s):null,F=s?I(s,S):null,Q=a.findIndex((t,d)=>d>i&&I(t,S==="continuous"?"results":S)),$=!!(u&&F&&me!==s?.id),J=$||!u&&!!s,P=u&&!$;r.useEffect(()=>{if(!u||f||!C||!s){T("rest");return}T("travel");const t=window.setTimeout(()=>T(y?.routine?"land":"rest"),700/j),d=window.setTimeout(()=>T("rest"),960/j);return()=>{window.clearTimeout(t),window.clearTimeout(d)}},[s?.id,u,f,C,j]);const xe=E==="travel"?y?.routine?"jump":"run":E==="land"?"land":"idle",X=s?O(s):null,ee=s?.event.result?.exit_code??s?.event.result?.exitCode,ve=ee!==void 0?`Process exited with code ${ee}`:s?.event.live?"Command is still running":"Inspect the observed command and collected evidence below",q=ue&&!U;r.useEffect(()=>{_(0),A(null)},[l?.id,g?.id]),r.useEffect(()=>{if(!C||!P||!s||i>=a.length-1)return;const t=window.setTimeout(()=>{document.hidden||_(i+1)},Math.max(1e3,y?.durationMs??1600)/j);return()=>window.clearTimeout(t)},[C,P,s?.id,i,a.length,y?.durationMs,j]),r.useEffect(()=>{!R.current||i<0||R.current.scrollTo({left:Math.max(0,150+i*w-R.current.clientWidth*.5),behavior:u&&!f&&!window.matchMedia("(prefers-reduced-motion: reduce)").matches?"smooth":"auto"})},[i,l?.id,g?.id]);const fe=t=>{o(t),v(null),_(0),h(!0)},N=t=>{h(!1),v(g?.id??null),_(Math.max(0,Math.min(a.length-1,t)))},te=()=>{h(!u),u||A(s?.id??null)},je=$?"Checkpoint":u?i>=a.length-1?g?.closed?"Journey complete":"Following live":"Playing journey":"Paused for review";return e.jsxs("section",{onKeyDown:t=>{t.code==="Space"&&!t.target.closest("button,input,select,textarea,summary,[contenteditable=true]")&&(t.preventDefault(),te())},className:`adventures${J?" is-reviewing":""}${f||!u?" is-paused":""}`,"aria-label":"Agent Replay",onPointerDown:t=>t.stopPropagation(),onWheel:t=>t.stopPropagation(),children:[e.jsx("div",{className:"adventures__scene",ref:R,tabIndex:0,"aria-label":"Replay landscape, follows the seek position",children:e.jsxs("div",{className:"adventures__landscape",style:{width:Math.max(1e3,a.length*w+450)},children:[e.jsx(Ne,{}),e.jsx("div",{className:"adventures__trail","aria-hidden":"true"}),a.length?null:e.jsxs("div",{className:"adventures__empty",children:[e.jsx(B,{slug:"sprout",size:120,paused:f}),e.jsx("h3",{children:"The trail is quiet."}),e.jsx("p",{children:n.length?"No journey observations are available for this agent. Choose another agent or keep watching.":"Your crew will appear when agent activity arrives."})]}),a.map((t,d)=>{const ge=qe[t.kind],z=L(t);return e.jsxs("button",{type:"button",className:`adventures__stop adventures__stop--${t.kind}${z.checkpoint?" is-checkpoint":z.routine?" is-routine":""}${d===i?" is-current":""}${d>i?" is-ahead":""}`,style:{left:150+d*w},onClick:()=>N(d),"aria-label":`${t.label}, ${M(t.at)}`,"aria-pressed":d===i,children:[e.jsx("span",{className:"adventures__stop-title",children:z.checkpoint?z.label:t.label}),e.jsxs("span",{className:"adventures__prop",children:[e.jsx(ge,{size:36,strokeWidth:1.5}),t.kind==="edit"?e.jsx("span",{className:"adventures__sparks"}):null]}),e.jsx("span",{className:"adventures__artifact",children:H(O(t)??t.artifact).slice(0,100)}),e.jsx("time",{children:M(t.at)})]},t.id)}),s&&l?e.jsxs("div",{className:`adventures__traveler adventures__traveler--${s.kind}${q?" has-action-sprite":""}${y?.checkpoint?" is-checkpoint":""}${y?.routine&&E==="travel"?" is-hopping":""}`,style:{left:112+i*w,transitionDuration:`${700/j}ms`},children:[s.kind==="think"?e.jsx("span",{className:"adventures__thought",children:"Thinking"}):null,e.jsx("button",{type:"button",onClick:()=>{h(!1),c(l)},"aria-label":`Inspect ${ie(l.agent,l.source)}`,children:e.jsx(e.Fragment,{children:q?e.jsx(_e,{action:xe,playbackRate:j,size:128,paused:f||!u}):e.jsx(B,{slug:Z,size:112,pixel:U&&ke(Z),paused:f||!P,expression:J?"look-right":Be(s.kind)})})},s.id),e.jsx("span",{className:"adventures__shadow"}),s.kind!=="think"?e.jsxs("span",{className:"adventures__action-caption",children:[e.jsx("strong",{children:s.event.tool||(s.kind==="message"?"Message":s.kind==="end"?"Turn complete":s.kind==="wait"?"Waiting":s.label)}),s.event.tool?e.jsx("small",{children:H(X||s.event.arg).slice(0,90)}):null]}):null]}):null,s&&J?e.jsxs("button",{type:"button",className:"adventures__world-artifact",style:{left:252+i*w},onClick:()=>{h(!1),m({path:null})},"aria-label":"Inspect current artifact",children:[e.jsxs("span",{className:"adventures__artifact-sheet",children:[e.jsx(oe,{size:23}),e.jsx("strong",{children:F||s.label}),e.jsx("span",{children:H(X||s.artifact).slice(0,110)}),e.jsx("small",{children:"Inspect artifact ↗"})]}),e.jsx("span",{className:"adventures__artifact-stand"})]}):null,s?.event.to?e.jsxs("div",{className:"adventures__handoff",style:{left:218+i*w},children:[e.jsx(le,{size:20}),e.jsxs("span",{children:["Message to ",s.event.to]}),D?e.jsx(B,{slug:se(D.agent.name)??ne(D.id),size:70,paused:f||!P}):null]}):null,s?e.jsxs("div",{className:"adventures__frontier",style:{left:240+a.length*w},children:[e.jsx("span",{children:g?.closed?"Until the next turn":"Uncharted"}),e.jsx("small",{children:g?.closed?"This journey has ended.":"The next step is not known yet."})]}):null]})}),e.jsxs("div",{className:"adventures__console",children:[e.jsxs("details",{className:"replay-selection",children:[e.jsx("summary",{children:"Choose agent / journey"}),e.jsxs("div",{className:"adventures__navigation",children:[e.jsxs("label",{children:[q?"Sprout follows":"Follow",e.jsx("select",{"aria-label":"Follow agent",value:l?.id??"",onChange:t=>fe(t.target.value),children:n.map(t=>e.jsxs("option",{value:t.id,children:[ie(t.agent,t.source)," · ",t.id.slice(-5)]},t.id))})]}),e.jsxs("label",{children:["Journey",e.jsx("select",{"aria-label":"Select journey",value:g?.id??"",onChange:t=>{v(t.target.value),_(0),h(!0)},children:W.map((t,d)=>e.jsxs("option",{value:t.id,children:[d+1," · ",M(t.stops[0].at)," · ",t.closed?t.stops.at(-1).label:"end not observed"]},t.id))})]})]})]}),e.jsxs("div",{className:"adventures__transport",children:[e.jsxs("div",{className:"adventures__recording-clock",children:[e.jsx(be,{at:s?.at??0,nextAt:a[i+1]?.at??s?.at??0,start:a[0]?.at??0,duration:Math.max(1e3,y?.durationMs??1600)/j,running:C&&P&&!f}),e.jsx("span",{className:"adventures__clock-divider","aria-hidden":"true"}),s?e.jsx("time",{dateTime:new Date(s.at).toISOString(),children:new Date(s.at).toLocaleString([],{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"})}):e.jsx("span",{children:"No recorded timestamp"})]}),e.jsxs("div",{className:"adventures__transport-top",children:[e.jsxs("button",{type:"button",className:"adventures__play-button",title:"Play or pause · Space","aria-label":u?"Pause journey":"Play journey",onClick:te,children:[u?e.jsx(Te,{size:17}):e.jsx(Ae,{size:17}),e.jsx("span",{children:u?"Pause":"Play"})]}),e.jsxs("span",{className:`adventures__transport-status${$?" is-checkpoint":""}`,role:"status",children:[e.jsx("i",{}),je]}),e.jsxs("label",{className:"adventures__speed",children:[e.jsx("span",{children:"Speed"}),e.jsxs("select",{"aria-label":"Playback pace",value:j,onChange:t=>pe(Number(t.target.value)),children:[e.jsx("option",{value:.75,children:"0.75×"}),e.jsx("option",{value:1,children:"1×"}),e.jsx("option",{value:1.5,children:"1.5×"})]})]}),e.jsxs("select",{className:"adventures__checkpoint-mode","aria-label":"Checkpoint behavior",value:S,onChange:t=>Y(t.target.value),children:[e.jsx("option",{value:"results",children:"Review results"}),e.jsx("option",{value:"all",children:"Every checkpoint"}),e.jsx("option",{value:"problems",children:"Only problems"}),e.jsx("option",{value:"continuous",children:"Play straight through"})]})]}),e.jsxs("button",{className:"adventures__next-review",type:"button",disabled:Q<0,onClick:()=>{v(g?.id??null),_(Q),h(!0),A(null),S==="continuous"&&Y("results")},children:[e.jsx(V,{size:12})," Next review point"]}),e.jsxs("div",{className:"adventures__playhead",children:[e.jsxs("button",{type:"button",className:G?"is-live":"","aria-pressed":G,onClick:()=>{v(null),_(null),h(!0)},children:[e.jsx(Re,{size:14})," Live edge"]}),e.jsx("button",{type:"button","aria-label":"Previous observation",disabled:i<=0,onClick:()=>N(i-1),children:e.jsx(ze,{size:15})}),e.jsxs("div",{className:"adventures__seek-track",children:[e.jsx("input",{type:"range","aria-label":"Journey observation",min:0,max:Math.max(0,a.length-1),value:Math.max(0,i),disabled:!a.length,onChange:t=>N(Number(t.target.value))}),e.jsx("div",{className:"adventures__seek-markers",children:a.map((t,d)=>I(t,"all")?e.jsx("button",{type:"button",style:{left:`${a.length>1?d/(a.length-1)*100:0}%`},className:d<=i?"is-visited":"","aria-label":`Seek to ${I(t,"all")} at ${M(t.at)}`,title:`${t.label} · ${M(t.at)}`,onClick:()=>N(d)},t.id):null)})]}),e.jsx("button",{type:"button","aria-label":"Next observation",disabled:i>=a.length-1,onClick:()=>N(i+1),children:e.jsx(ae,{size:15})}),e.jsx("span",{children:a.length?`${i+1} / ${a.length}`:"No observations"})]}),$?e.jsxs("div",{className:"adventures__checkpoint-review",children:[e.jsxs("div",{children:[e.jsx("strong",{children:F}),e.jsx("small",{children:ve})]}),e.jsxs("button",{type:"button",onClick:()=>A(s?.id??null),children:["Continue ",e.jsx(ae,{size:14})]})]}):null]}),e.jsx(Ce,{stops:a,index:i,onInspect:t=>{N(t),m({path:null})}}),l?e.jsx("div",{onClickCapture:()=>h(!1),children:e.jsx(Pe,{stops:a,index:i,lane:l,onFile:t=>{h(!1),m({path:t})}})}):null]}),x?e.jsx(Se,{stop:s,path:x.path,onClose:()=>m(null),onPath:t=>m({path:t})}):null]})}function Be(n){return n==="think"?"look-up":n==="message"?"look-left":"look-right"}export{vs as AgentAdventures};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as i,f as B,m as f,g as L,C as F,h as G}from"./index-DReVb7jZ.js";import{d as J}from"./Provider-CNZluAZb.js";import{a as K,S as Q}from"./SpriteAvatar-aHeF4ZQZ.js";import{C as U}from"./CrewAvatar-zgzC3cbU.js";import{s as X}from"./colors-CFlbwC25.js";import{i as Y,d as $}from"./agent-state-DDhnFEEP.js";const z={hero:{tile:!1,presence:!1,glow:!0},inspector:{sizes:{compact:32,regular:40,large:52},tile:!0,presence:!0},row:{sizes:{compact:20,regular:24,large:32},tile:!0,presence:!0},turn:{tile:!1,presence:!1},list:{tile:!1,presence:!1},roster:{tile:!1,presence:!1},node:{sizes:{compact:14,regular:16,large:20},tile:!1,presence:!1}},ee={compact:.85,regular:1,large:1.25};function le(e,a){return z[e].sizes?.[a]}function re(e,a){if(a==="regular")return e;const l=Math.round(e*ee[a]);return a==="compact"?Math.max(20,Math.min(e,l)):l}function ce({agent:e,name:a,slug:l,avatarStyle:E,project:D,harness:R,state:I,kind:M="agent",placement:d="row",size:w,scaleWithPreference:P=!0,presence:g,tile:T,salt:O,className:s,channelClassName:_,style:o,title:c}){const r=e?.name??a??"?";if(M==="channel")return i.jsx("span",{className:_??s,style:o,title:c??r,children:"#"});const t=J(),k=t?.operatorName||t?.onboarding?.operatorName?.trim()||t?.onboarding?.operatorNameSuggestion?.trim()||"operator",m=r.toLowerCase()==="operator"||r.toLowerCase()==="you"||r.toLowerCase()===k.toLowerCase()||r.toLowerCase()==="art",A=t?.appearanceDetails?.operatorCharacter||"milo",h=E??t?.appearanceDetails?.avatarStyle??"crew",y=m?void 0:B(t?.appearanceDetails?.agentCharacters,{id:e?.id,name:r},t?.agents??[]),p=l?f(l)??L(l):m?f(A)??L(A):f(y)??f(e?.slug||r),H=p!=null&&F[p]!=null&&(h!=="chip"||G(p)),n=z[d],S=P?t?.appearanceDetails?.avatarSize??"regular":"regular",u=w!=null?re(w,S):n.sizes?.[S];if(h!=="sprite"&&H&&p){const b=R??e?.harness??void 0,Z=I??e?.state??null,q=D??e?.project??"openscout",C=i.jsx(U,{slug:p,name:r,project:q,harness:b,state:Z,size:u,badge:b?g??n.presence:!1,ring:g??(d==="hero"||d==="turn"?!1:n.presence),chip:h==="chip",glow:n.glow,title:c??r});return u==null?i.jsx("span",{className:s,style:{background:"transparent",overflow:"visible",display:"inline-grid",placeItems:"center",...o},title:c??r,children:C}):s||o?i.jsx("span",{className:s,style:{display:"inline-grid",placeItems:"center",...o},children:C}):C}const j=e?K(e):null,x=g??n.presence,N=Y(e?.state??null),V=x&&N?X(e?.state??null):void 0,W=x&&$(e?.state??null),v=i.jsx(Q,{name:r,size:u,hue:j?.hue,tone:j?.tone,salt:O,tile:T??n.tile,glow:n.glow,corner:V,cornerPulse:W,title:c??r});return u==null?i.jsx("span",{className:s,style:{background:"transparent",overflow:"visible",...o},title:c??r,children:v}):s||o?i.jsx("span",{className:s,style:o,children:v}):v}export{ce as A,le as p};
|