@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
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as d,j as e}from"./index-
|
|
1
|
+
import{r as d,j as e}from"./index-EsrkGBcv.js";import{f as b,a as E,c as I,b as y,h as $,d as L,p as w}from"./comms-gesture-_aGFo6g3.js";import{f as B}from"./comms-deck-CBhsXnY-.js";function F(a){return(a.includes("/")?a.slice(a.lastIndexOf("/")+1):a).replace(/^(claude|openai|anthropic)-/i,"")}function f(a){return a.model?.trim()?F(a.model.trim()):a.harness?.trim()||null}function N(a,c){return a.length<=c?a:`${a.slice(0,c-1).trimEnd()}…`}function C({node:a,dim:c,on:r,onHover:n,onOpen:l}){const i=f(a);return e.jsxs("g",{className:["cfm-node",a.hub?"cfm-node--hub":"",c?"cfm-node--dim":"",r?"cfm-node--on":""].filter(Boolean).join(" "),transform:`translate(${a.x} ${a.y})`,onMouseEnter:()=>n(a.id),onMouseLeave:()=>n(null),"aria-label":`${a.actor.short} — ${a.sent} sent, ${a.received} received`,...$(l),children:[e.jsx("title",{children:`${a.actor.short} — ${a.sent} sent, ${a.received} received`}),e.jsx("rect",{className:"cfm-box",x:-62,y:-21,width:124,height:42,rx:6}),e.jsx("text",{className:"cfm-name",x:0,y:i?-3:5,children:N(a.actor.short,17)}),i?e.jsx("text",{className:`cfm-model${a.model?"":" cfm-model--harness"}`,x:0,y:12,children:N(i,20)}):null]})}function T({passes:a,flights:c,identities:r,focus:n,selectedId:l,onOpen:i}){const[m,u]=d.useState(null),x=d.useMemo(()=>E(a,c),[a,c]),t=d.useMemo(()=>I(a,r),[a,r]),k=d.useMemo(()=>y(t),[t]),p=s=>f(r.get(s)??{model:null,harness:null});if(t.nodes.length===0)return e.jsx("p",{className:"cf-graph-empty",children:"Nothing has been exchanged in this window yet."});const v=s=>n?n.has(s):!1,g=s=>m!==null?m===s:n?n.has(s):!0,j=(s,o)=>m!==null?m===s||m===o:n?n.has(s)&&n.has(o):!0,M=t.nodes.length-t.modelsKnown,h=s=>l===B(s);return e.jsxs("div",{className:"cfm",children:[e.jsxs("svg",{className:"cfm-svg",viewBox:`0 0 ${t.width} ${t.height}`,preserveAspectRatio:"xMidYMid meet",role:"img","aria-label":"Who exchanged work with whom in this window",children:[t.edges.map(s=>e.jsxs("g",{className:`cfm-edge${s.inbound?" cfm-edge--in":""}${j(s.from,s.to)?"":" cfm-edge--dim"}`,children:[e.jsx("path",{className:"cfm-edge-line",d:s.d,strokeWidth:s.weight}),e.jsx("path",{className:"cfm-edge-tip",d:"M 0 0 L -7 -3.2 L -7 3.2 Z",transform:`translate(${s.tip.x} ${s.tip.y}) rotate(${s.tip.angle})`}),i?e.jsx("path",{className:"cfm-edge-hit",d:s.d,"aria-label":`${s.count} message${s.count===1?"":"s"} — open`,...$(()=>i({kind:"pair",from:s.from,to:s.to})),children:e.jsx("title",{children:`${s.count} message${s.count===1?"":"s"} — open`})}):null]},s.key)),t.nodes.map(s=>e.jsx(C,{node:s,dim:!g(s.id),on:v(s.id),onHover:u,onOpen:()=>i?.({kind:"actor",actorId:s.id})},s.id))]}),x.length>0&&e.jsx("ol",{className:"cfm-tasks",children:x.map(s=>{const o={kind:"task",askId:s.id};return e.jsx("li",{children:e.jsxs("button",{type:"button",className:`cfm-task${h(o)?" cfm-task--on":""}`,...w(()=>i?.(o)),"aria-current":h(o)?"true":void 0,title:s.title,children:[e.jsx("span",{className:"cfm-task-title",children:s.title}),e.jsxs("span",{className:"cfm-task-who",children:[s.waiter.short,e.jsx("i",{className:"cfm-arrow",children:"→"}),s.worker.short,p(s.worker.id)?e.jsx("i",{className:"cfm-task-ran",children:p(s.worker.id)}):null]}),e.jsx("span",{className:`cfm-task-ms${s.abandoned?" cfm-task-ms--late":""}`,children:L(s.ms)})]})},s.id)})}),e.jsx("ol",{className:"cfm-pairs",children:k.map(s=>{const o={kind:"pair",from:s.from.id,to:s.to.id};return e.jsx("li",{className:j(s.from.id,s.to.id)?"":"cfm-pair--dim",children:e.jsxs("button",{type:"button",className:`cfm-pair${h(o)?" cfm-pair--on":""}`,...w(()=>i?.(o)),"aria-current":h(o)?"true":void 0,onMouseEnter:()=>u(s.from.id),onMouseLeave:()=>u(null),children:[e.jsxs("span",{className:"cfm-pair-who",children:[s.from.actor.short,e.jsx("i",{className:"cfm-arrow",children:"→"}),s.to.actor.short]}),e.jsxs("span",{className:"cfm-pair-models",children:[f(s.from)??"not stated",e.jsx("i",{className:"cfm-arrow",children:"→"}),f(s.to)??"not stated"]}),e.jsx("span",{className:"cfm-pair-count",children:s.count})]})},s.key)})}),e.jsxs("div",{className:"cf-legend",children:[e.jsxs("span",{children:[e.jsx("i",{className:"cf-swatch"})," exchange, thicker with volume"]}),e.jsxs("span",{children:[e.jsx("i",{className:"cf-swatch cf-swatch--in"})," addressed to you"]}),t.broadcasts>0&&e.jsxs("span",{className:"cf-dim",children:[t.broadcasts," to the whole conversation, which is not a pair"]}),e.jsx("span",{className:"cf-dim",children:M===0?`all ${t.nodes.length} name a model`:`${t.modelsKnown} of ${t.nodes.length} name a model; the rest show the harness that ran them`})]})]})}function W(a){const c=new Map;for(const r of a??[]){if(!r.model&&!r.harness)continue;const n=b(r.actorId),l=c.get(n);c.set(n,{model:l?.model??r.model??null,harness:l?.harness??r.harness??null})}return c}export{T as CommsFlowMap,W as mapIdentities};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as l,j as e}from"./index-
|
|
1
|
+
import{r as l,j as e}from"./index-EsrkGBcv.js";/* empty css */import{c as x}from"./conversations-DoAAO6kA.js";import{u as N}from"./use-conversation-list-CY4JciOV.js";import{s as f}from"./agent-master-model-Bk_yuUXJ.js";import{g as b,h as C,i as y,j as E,D as w}from"./comms-deck-CBhsXnY-.js";import{X as v}from"./x-DAehov0E.js";import{P as K}from"./panel-right-Bv7sP_fc.js";import"./time-Dhsh_2EG.js";import"./machine-scope-DJt9RZ2w.js";import"./api-DSqpVKC7.js";import"./sse-BCPRocpq.js";import"./index-BWHgHrtv.js";import"./createLucideIcon-zZ8Hx7er.js";function M(n){const s=new Date(n),i=a=>String(a).padStart(2,"0");return`${i(s.getHours())}:${i(s.getMinutes())}:${i(s.getSeconds())}`}function S({passes:n}){return n.length===0?e.jsx("p",{className:"cdk-empty",children:"Nothing passed between them in this window."}):e.jsx("div",{className:"cdk-body",children:n.map(s=>e.jsxs("article",{className:["cdk-msg",s.inbound?"cdk-msg--in":"",s.kind==="status"?"cdk-msg--status":""].filter(Boolean).join(" "),children:[e.jsxs("header",{className:"cdk-msg-head",children:[e.jsx("span",{className:"cdk-msg-from",children:s.from.short}),e.jsxs("span",{className:"cdk-msg-to",children:["to ",s.kind==="channel"?"the conversation":s.audience.map(i=>i.short).join(", ")]}),s.count>1?e.jsxs("span",{className:"cdk-msg-tag",children:["×",s.count]}):null,e.jsx("span",{className:"cdk-msg-at",children:M(s.at)})]}),e.jsx("p",{className:"cdk-msg-body",children:s.message.body})]},s.id))})}function _({card:n,passes:s,tasks:i,onClear:a,onStage:u,beside:d}){const m=l.useMemo(()=>b(s),[s]),k=l.useCallback(t=>m.get(t)??t,[m]),h=C(n,i,s,k),g=l.useMemo(()=>y(n,s,i),[n,s,i]),r=l.useMemo(()=>E(n,s,i),[n,s,i]),{sessions:p}=N(),j=t=>{const c=p.find(o=>f(o,t));return c?x(c):t};return l.useEffect(()=>{const t=c=>{if(c.key!=="Escape"||c.defaultPrevented)return;const o=c.target;o&&(o.tagName==="TEXTAREA"||o.tagName==="INPUT"||o.isContentEditable)||a()};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[a]),e.jsxs("aside",{className:"csl","aria-label":"Selection",children:[e.jsxs("header",{className:"cdk-head",children:[e.jsxs("span",{className:"cdk-ident",children:[e.jsxs("span",{className:"cdk-kicker",children:["Selected · ",w[n.kind]]}),e.jsx("span",{className:"cdk-title",title:h,children:h})]}),e.jsx("button",{type:"button",className:"cdk-btn",title:"Clear the selection (Esc)","aria-label":"Clear the selection",onClick:a,children:e.jsx(v,{size:13,strokeWidth:2,"aria-hidden":!0})})]}),r.length>0?e.jsxs("div",{className:"csl-in",children:[e.jsx("span",{className:"csl-in-label",children:r.length===1?"In":`In ${r.length} conversations`}),r.map(t=>{const c=d?.has(t)??!1;return e.jsxs("span",{className:"csl-conv",children:[e.jsx("button",{type:"button",className:"csl-conv-open",title:"Open this conversation on the stage",onClick:()=>u(t),children:j(t)}),d?e.jsx("button",{type:"button",className:`cdk-btn${c?" cdk-btn--on":""}`,title:c?"Close the column beside the stage":"Keep this conversation beside the stage","aria-label":c?"Close beside":"Keep beside","aria-pressed":c,onClick:()=>d.toggle(t),children:e.jsx(K,{size:12,strokeWidth:2,"aria-hidden":!0})}):null]},t)})]}):null,e.jsx(S,{passes:g})]})}export{_ as CommsSelection,S as DeckMessages};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as n,j as a}from"./index-EsrkGBcv.js";import{isRoutableMediaFile as N,readClipboardMediaFiles as D,dataTransferMayContainFiles as b,readRoutableFiles as M}from"./media-blobs-Bi8pxr1u.js";import{F as S}from"./file-text-CnISiiw6.js";const j="Only markdown, code, images, and video clips can be attached.";function y(){const[e,r]=n.useState([]),[c,i]=n.useState(null),[u,l]=n.useState(null),[p,h]=n.useState(0),o=n.useRef(null),g=n.useCallback((t,s="Attached")=>{const m=t.filter(N);return m.length===0?(t.length>0&&l(j),0):(l(null),r(x=>{const C=new Set(x.map(d=>`${d.name}:${d.size}:${d.lastModified}`)),f=m.filter(d=>!C.has(`${d.name}:${d.size}:${d.lastModified}`));return f.length>0?[...x,...f]:x}),i(m.length===1?`${s} ${m[0]?.name??"1 attachment"}.`:`${s} ${m.length} attachments.`),m.length)},[]),$=n.useCallback(t=>{r(s=>s.filter(m=>m!==t)),i(null)},[]),k=n.useCallback(()=>{r([]),i(null),l(null),h(0)},[]),v=n.useCallback(()=>{o.current?.click()},[]),F=n.useCallback(t=>{const s=D(t.clipboardData);s.length!==0&&(t.preventDefault(),g(s,"Pasted"))},[g]),R=n.useMemo(()=>({onDragOver:t=>{b(t.dataTransfer)&&(t.preventDefault(),h(s=>s===0?1:s))},onDragLeave:t=>{t.currentTarget.contains(t.relatedTarget)||h(0)},onDrop:t=>{if(!b(t.dataTransfer))return;t.preventDefault(),h(0);const s=M(t.dataTransfer);if(s.length===0){l(j);return}g(s,"Dropped")}}),[g]);return{files:e,hasFiles:e.length>0,feedback:c,error:u,dragActive:p>0,stage:g,remove:$,clear:k,setError:l,openPicker:v,dropHandlers:R,onPaste:F,inputRef:o}}function T(e){if(e<1024)return`${e} B`;const r=e/1024;return r<1024?`${r.toFixed(0)} KB`:`${(r/1024).toFixed(1)} MB`}function z(e){return(e.split(".").pop()?.toUpperCase()??"FILE").slice(0,4)}function E({file:e,onRemove:r}){const c=n.useMemo(()=>URL.createObjectURL(e),[e]);n.useEffect(()=>()=>URL.revokeObjectURL(c),[c]);const i=e.type.startsWith("video/"),u=e.type.startsWith("image/"),l=z(e.name),p=T(e.size);return a.jsxs("div",{className:"s-msg-compose-attachment surface-card surface-card--inset",children:[i?a.jsx("video",{src:c,muted:!0,playsInline:!0}):u?a.jsx("img",{src:c,alt:e.name}):a.jsxs("div",{className:"s-msg-compose-attachment-file",title:`${e.name} (${p})`,children:[a.jsxs("div",{className:"s-msg-compose-attachment-file-icon",children:[a.jsx(S,{size:16,"aria-hidden":"true"}),a.jsx("span",{className:"s-msg-compose-attachment-ext label-xs",children:l})]}),a.jsx("span",{className:"s-msg-compose-attachment-name",children:e.name}),a.jsx("span",{className:"s-msg-compose-attachment-size label-xs text-dim",children:p})]}),a.jsx("button",{type:"button",className:"s-msg-compose-attachment-remove btn btn--ghost btn--icon","aria-label":`Remove ${e.name}`,title:`Remove ${e.name}`,onClick:r,children:"×"})]})}function B({attachments:e,accept:r="image/*,video/*,text/markdown,.md,.markdown,text/plain,.txt"}){const{files:c,feedback:i,error:u,remove:l,stage:p,inputRef:h}=e;return a.jsxs(a.Fragment,{children:[a.jsx("input",{ref:h,type:"file",multiple:!0,accept:r,className:"s-msg-compose-file-input",onChange:o=>{p([...o.target.files??[]]),o.target.value=""}}),c.length>0?a.jsx("div",{className:"s-msg-compose-attachments","aria-label":"Staged attachments",children:c.map(o=>a.jsx(E,{file:o,onRemove:()=>l(o)},`${o.name}:${o.size}:${o.lastModified}`))}):null,u?a.jsx("div",{className:"s-msg-compose-attach-note","data-tone":"error",role:"alert",children:u}):i?a.jsx("div",{className:"s-msg-compose-attach-note","data-tone":"muted",role:"status",children:i}):null]})}export{B as C,y as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as s}from"./index-EsrkGBcv.js";import{A as J}from"./AgentAvatar-CrP1eXxk.js";import{M as T}from"./runtime-picker-DXu2bOTh.js";import{M as $}from"./NewChatComposer-C97-iTMK.js";import{C as V}from"./ComposerAttachments-DW0AIb8k.js";import"./index-724SdE6r.js";import{c as z}from"./createLucideIcon-zZ8Hx7er.js";import{Z as Y}from"./zap-CEjZNZbI.js";import{X as M}from"./x-DAehov0E.js";import"./Provider-C35yu29I.js";import"./theme-vars-DNK0nn3k.js";import"./provider-Dojd8quC.js";import"./router-DCtl8wqb.js";import"./api-DSqpVKC7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-BCPRocpq.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./agent-state-DDhnFEEP.js";import"./scoutbot-Bk3nyrkj.js";import"./model-CBkMvT1w.js";import"./time-Dhsh_2EG.js";import"./DocumentFocusViewer-DJr0v0D_.js";import"./TextDocumentSurface-D52m7Vd8.js";import"./file-text-CnISiiw6.js";import"./index-CHD0qcfL.js";import"./chevron-right-DrfqcerI.js";import"./folder-D5prSkzz.js";import"./chevron-up-CETZJzjV.js";import"./code-xml-BhcNbLWU.js";import"./arrow-left-MVUKauwQ.js";import"./arrow-right-Bp-FpE5V.js";import"./scout-voice-CZx60X6E.js";import"./fx-z37u1o2z.js";import"./voice-turn-ledger-BMZxlSjg.js";import"./keyboard-nav-DDHegDbx.js";import"./media-blobs-Bi8pxr1u.js";import"./chunk-HRAB3GC3-DbVLgbWX.js";import"./SpriteAvatar-CpZWf54-.js";import"./CrewAvatar-kTznzqcO.js";import"./HarnessMark-C4naWc16.js";import"./colors-CFlbwC25.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-OvccU82H.js";import"./conversation-model-FxDeWlle.js";import"./conversations-DoAAO6kA.js";import"./NewChatOrigin-DFbF_XvR.js";import"./chevron-down-l1mrh5S9.js";import"./search-DT42oyRW.js";const S=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],ee=z("pencil",S);const se=[["path",{d:"M20 18v-2a4 4 0 0 0-4-4H4",key:"5vmcpk"}],["path",{d:"m9 17-5-5 5-5",key:"nvlc11"}]],te=z("reply",se);function es({composeRef:P,draft:N,setDraft:R,composePlaceholder:K,slashState:n,setSlashState:b,filteredSlashCommands:r,applySlashCommand:w,mentionState:a,setMentionState:j,filteredMentions:i,applyMention:f,updateTriggersFromDraft:v,closeSuggestions:y,replyTarget:u,onCancelReply:H,isStopMode:L,sending:p,composeAction:_,onSend:I,onInterrupt:W,attachments:c,isAgentBusy:D,busyIntent:k,onBusyIntentChange:C,queued:l,queueNote:F,onEditQueued:O,editingQueuedId:m,editingAttachmentCount:h,onCancelEdit:Q,onUnqueue:Z,onSendQueuedNow:U}){const X=s.jsxs(s.Fragment,{children:[n.open?s.jsx($,{label:"Slash commands",items:r.map(e=>({id:e.command,token:e.label,description:e.description})),activeIndex:n.index,onPick:e=>{const t=r[e];t&&w(t)},onActiveIndexChange:e=>b(t=>({...t,index:e}))}):null,a.open?s.jsx($,{label:"Mention agent",items:i.map(e=>({id:e.id,token:`@${e.handle}`,description:e.name,avatarNode:s.jsx(J,{name:e.name,size:20,tile:!0,presence:!1})})),activeIndex:a.index,onPick:e=>{const t=i[e];t&&f(t)},onActiveIndexChange:e=>j(t=>({...t,index:e}))}):null]}),B=N.trim().length>0,x=m!==null,q=B||c.hasFiles||h>0,g=D&&q,d=g&&k==="steer",A=x?l.findIndex(e=>e.id===m)+1:0,E=g?s.jsxs("div",{className:"s-msg-compose-mode",role:"group","aria-label":"What Send does while this turn is running",children:[s.jsx("button",{type:"button",className:"s-msg-compose-mode-btn","data-mode":"queue","aria-pressed":k==="queue",title:"Hold this draft until the running turn lands",disabled:p,onClick:()=>C("queue"),children:"Queue"}),s.jsx("button",{type:"button",className:"s-msg-compose-mode-btn","data-mode":"steer","aria-pressed":k==="steer",title:"Interrupt the running turn and deliver this now",disabled:p,onClick:()=>C("steer"),children:"Steer"})]}):null,G=l.length>0||E?s.jsxs("div",{className:"s-msg-compose-queue",role:"group","aria-label":"Queued messages",children:[s.jsxs("div",{className:"s-msg-compose-queue-head",children:[s.jsx("span",{className:"s-msg-compose-queue-kicker",children:l.length>0?`Queue · ${l.length}`:"Queues next"}),s.jsx("span",{className:"s-msg-compose-queue-hint",children:x?d?`Rewriting ${A} — send interrupts this turn`:`Rewriting ${A} — send returns it to its place`:l.length>0?d?"Send interrupts this turn":F??"":d?"Interrupts this turn on send":"Sends when this turn lands"}),E]}),l.map((e,t)=>s.jsxs("div",{className:"s-msg-compose-queue-row","data-editing":e.id===m?"true":void 0,children:[s.jsx("span",{className:"s-msg-compose-queue-index",children:t+1}),s.jsx("span",{className:"s-msg-compose-queue-body",children:e.body.trim()||"Attachments only"}),e.attachments.length>0?s.jsxs("span",{className:"s-msg-compose-queue-clip",children:[e.attachments.length," file",e.attachments.length===1?"":"s"]}):null,e.id===m?s.jsx("button",{type:"button",className:"s-msg-compose-queue-edit btn btn--sm btn--ghost",title:"Stop rewriting — leave this row as it was","aria-label":`Cancel rewriting queued message ${t+1}`,onClick:Q,children:"Cancel edit"}):s.jsxs("button",{type:"button",className:"s-msg-compose-queue-edit btn btn--sm btn--ghost",title:"Pull this back into the input box to rewrite it","aria-label":`Edit queued message ${t+1}`,disabled:p||x,onClick:()=>O(e.id),children:[s.jsx(ee,{size:11,"aria-hidden":"true"}),s.jsx("span",{children:"Edit"})]}),s.jsxs("button",{type:"button",className:"s-msg-compose-queue-now btn btn--sm btn--accent",title:"Interrupt this turn and send this now","aria-label":`Send queued message ${t+1} now`,disabled:p||e.id===m,onClick:()=>U(e.id),children:[s.jsx(Y,{size:11,"aria-hidden":"true"}),s.jsx("span",{children:"Send now"})]}),s.jsx("button",{type:"button",className:"s-msg-compose-queue-drop btn btn--ghost btn--icon",title:"Cancel — drop this from the queue","aria-label":`Cancel queued message ${t+1}`,onClick:()=>Z(e.id),children:"×"})]},e.id))]}):null;return s.jsx(T,{density:"thread",value:N,onChange:(e,t)=>{R(e),v(e,t?.caret??e.length)},onSend:I,placeholder:K,sending:p,stopMode:L,onStop:W,canSend:q,sendTitle:d?"Steer — interrupt this turn and send now (Cmd+Enter)":g?"Queue for the next turn (Cmd+Enter)":"Send (Cmd+Enter)",sendAriaLabel:d?"Steer — interrupt this turn and send now (Cmd+Enter)":g?"Queue message for the next turn (Cmd+Enter)":_==="steer"?"Send follow-up (Cmd+Enter)":"Send message (Cmd+Enter)",showAttach:!0,onAttach:c.openPicker,onPaste:c.onPaste,dropHandlers:c.dropHandlers,dragActive:c.dragActive,textareaRef:P,overlay:X,above:G,aboveAttached:!0,header:s.jsxs(s.Fragment,{children:[u?s.jsxs("div",{className:"s-thread-compose-reply surface-card surface-card--inset",role:"status",children:[s.jsx(te,{className:"s-thread-compose-reply-icon text-muted",size:13,strokeWidth:1.8,"aria-hidden":"true"}),s.jsx("span",{className:"s-thread-compose-reply-label label-xs text-muted",children:"Replying to"}),s.jsx("span",{className:"s-thread-compose-reply-actor chip chip--sm chip--mono chip--neutral",children:u.actorLabel}),s.jsx("span",{className:"s-thread-compose-reply-preview text-muted",title:u.preview,children:u.preview}),s.jsx("button",{type:"button",className:"s-thread-compose-reply-cancel btn btn--ghost btn--icon","aria-label":"Cancel reply",title:"Cancel reply",onClick:H,children:s.jsx(M,{size:13,strokeWidth:1.8,"aria-hidden":"true"})})]}):null,x&&h>0?s.jsxs("div",{className:"s-msg-compose-carried",role:"status",children:[h," file",h===1?"":"s"," stay attached to this draft"]}):null,s.jsx(V,{attachments:c})]}),tools:s.jsxs("span",{className:"s-thread-compose-hint s-msg-compose-tools-hint",children:[s.jsx("kbd",{className:"s-kbd",children:"/"})," commands"," · ",s.jsx("kbd",{className:"s-kbd",children:"@"})," agents"]}),onSelect:e=>{const t=e.currentTarget;v(t.value,t.selectionStart)},onBlur:()=>{setTimeout(y,120)},onKeyDown:e=>{if(!(n.open&&r.length>0||a.open&&i.length>0))return!1;if(e.key==="ArrowDown")return n.open?b(o=>({...o,index:(o.index+1)%r.length})):a.open&&j(o=>({...o,index:(o.index+1)%i.length})),!0;if(e.key==="ArrowUp")return n.open?b(o=>({...o,index:(o.index-1+r.length)%r.length})):a.open&&j(o=>({...o,index:(o.index-1+i.length)%i.length})),!0;if(e.key==="Escape")return y(),!0;if((e.key==="Enter"||e.key==="Tab")&&!e.shiftKey&&!e.metaKey&&!e.ctrlKey&&!e.altKey){if(n.open){const o=r[n.index]??r[0];o&&w(o)}else if(a.open){const o=i[a.index]??i[0];o&&f(o)}return!0}return!1}})}export{es as ConversationComposer};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as t}from"./index-EsrkGBcv.js";import{M as p}from"./message-markup-Zwo3t4cI.js";import{f as d}from"./conversation-model-FxDeWlle.js";import{t as n}from"./time-Dhsh_2EG.js";import"./message-markup-BQW5jdJw.js";import"./mentions-ByUvhS-v.js";import"./colors-CFlbwC25.js";import"./agent-state-DDhnFEEP.js";import"./index-724SdE6r.js";import"./api-DSqpVKC7.js";import"./Provider-C35yu29I.js";import"./theme-vars-DNK0nn3k.js";import"./provider-Dojd8quC.js";import"./router-DCtl8wqb.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-BCPRocpq.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-C97-iTMK.js";import"./runtime-picker-DXu2bOTh.js";import"./scout-voice-CZx60X6E.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-OvccU82H.js";import"./createLucideIcon-zZ8Hx7er.js";import"./media-blobs-Bi8pxr1u.js";import"./HarnessMark-C4naWc16.js";import"./NewChatOrigin-DFbF_XvR.js";import"./keyboard-nav-DDHegDbx.js";import"./x-DAehov0E.js";import"./chevron-down-l1mrh5S9.js";import"./search-DT42oyRW.js";import"./file-text-CnISiiw6.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-DJr0v0D_.js";import"./TextDocumentSurface-D52m7Vd8.js";import"./index-CHD0qcfL.js";import"./chevron-right-DrfqcerI.js";import"./folder-D5prSkzz.js";import"./chevron-up-CETZJzjV.js";import"./code-xml-BhcNbLWU.js";import"./arrow-left-MVUKauwQ.js";import"./arrow-right-Bp-FpE5V.js";import"./voice-turn-ledger-BMZxlSjg.js";import"./chunk-HRAB3GC3-DbVLgbWX.js";import"./AgentDetailCard-DtHT3sCo.js";import"./AgentLiveActions-CfTupTEl.js";import"./terminal-takeover-Ay5C2c-M.js";import"./openContent-C6XO6kr5.js";import"./eye-LrO-cXQt.js";import"./terminal-hQKQygcf.js";import"./conversations-DoAAO6kA.js";function l({at:i}){const r=d(i);return t.jsxs("div",{className:"s-thread-day-divider","aria-label":r,children:[t.jsx("span",{className:"s-thread-day-line","aria-hidden":"true"}),t.jsx("span",{className:"s-thread-day-label",children:r}),t.jsx("span",{className:"s-thread-day-line","aria-hidden":"true"})]})}function ht({row:i,expanded:r,showDayDivider:e,onToggle:s}){const m=`${i.recipients.length} recipients`;return t.jsxs("div",{className:["s-thread-feed-block","s-thread-fanout",e&&"s-thread-feed-block--full-width"].filter(Boolean).join(" "),children:[e&&t.jsx(l,{at:i.createdAt}),i.messages.map(a=>t.jsx("span",{id:`msg-${a.id}`,className:"s-thread-fanout-anchor","aria-hidden":"true"},a.id)),t.jsxs("button",{type:"button",className:"s-thread-fanout-summary","aria-expanded":r,onClick:s,title:i.recipients.join(", "),children:[t.jsx("span",{className:"s-thread-fanout-caret","aria-hidden":"true",children:r?"▾":"▸"}),t.jsx("span",{className:"s-thread-fanout-label",children:m}),t.jsx("span",{className:"s-thread-fanout-time",children:n(i.createdAt)})]}),r&&t.jsxs("div",{className:"s-thread-fanout-detail",children:[t.jsx("ul",{className:"s-thread-fanout-recipients",children:i.messages.map((a,o)=>t.jsx("li",{className:"s-thread-fanout-recipient",children:i.recipients[o]},a.id))}),t.jsx("div",{className:"s-thread-fanout-body",children:t.jsx(p,{text:i.messages[0].body})})]})]})}export{ht as FanOutRow,l as ThreadDayDivider};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as S,j as e,H as Z}from"./index-EsrkGBcv.js";import{c as M}from"./clipboard-e3fSpeo7.js";import{d as ee}from"./router-DCtl8wqb.js";import{A as P}from"./AgentAvatar-CrP1eXxk.js";import{H as te}from"./HarnessMark-C4naWc16.js";import{a as se}from"./Provider-C35yu29I.js";import{n as ne,c as ae}from"./agent-state-DDhnFEEP.js";import{B as re}from"./BackToPicker-CUkjnoVk.js";import{o as _}from"./openContent-C6XO6kr5.js";import{AstronautSuit as oe}from"./AstronautSuit-Cchnc4Ug.js";import{n as ie,o as le}from"./conversation-model-FxDeWlle.js";import{E as ce}from"./eye-LrO-cXQt.js";import{P as de}from"./panel-right-Bv7sP_fc.js";import{c as me}from"./createLucideIcon-zZ8Hx7er.js";import"./api-DSqpVKC7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./SpriteAvatar-CpZWf54-.js";import"./CrewAvatar-kTznzqcO.js";import"./runtime-picker-DXu2bOTh.js";import"./scout-voice-CZx60X6E.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-OvccU82H.js";import"./colors-CFlbwC25.js";import"./theme-vars-DNK0nn3k.js";import"./provider-Dojd8quC.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-BCPRocpq.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./NewChatComposer-C97-iTMK.js";import"./media-blobs-Bi8pxr1u.js";import"./index-724SdE6r.js";import"./NewChatOrigin-DFbF_XvR.js";import"./keyboard-nav-DDHegDbx.js";import"./x-DAehov0E.js";import"./chevron-down-l1mrh5S9.js";import"./search-DT42oyRW.js";import"./file-text-CnISiiw6.js";import"./model-CBkMvT1w.js";import"./time-Dhsh_2EG.js";import"./DocumentFocusViewer-DJr0v0D_.js";import"./TextDocumentSurface-D52m7Vd8.js";import"./index-CHD0qcfL.js";import"./chevron-right-DrfqcerI.js";import"./folder-D5prSkzz.js";import"./chevron-up-CETZJzjV.js";import"./code-xml-BhcNbLWU.js";import"./arrow-left-MVUKauwQ.js";import"./arrow-right-Bp-FpE5V.js";import"./voice-turn-ledger-BMZxlSjg.js";import"./chunk-HRAB3GC3-DbVLgbWX.js";import"./conversations-DoAAO6kA.js";const he=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]],pe=me("user-plus",he),Y=150,B=320,ue=1.4,xe=1.1,G=5,fe=22,J=5200,ve=1,ge=1200;function je(n){S.useEffect(()=>{const s=n.current;if(!s||window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)return;let i=[],r=[],d=-9999,x=-9999,m=0;const c=()=>{i=[],r=[],s.querySelectorAll(".sprite-cell--eye circle").forEach(o=>{const a=o.getBoundingClientRect();if(!a.width)return;const u=o.closest("[data-state]");i.push({el:o,cx:a.left+a.width/2,cy:a.top+a.height/2,working:u?.dataset.state==="in_flight"})}),s.querySelectorAll(".s-thread-participant-avatar svg").forEach(o=>{const a=o.getBoundingClientRect();a.width&&r.push({el:o,cx:a.left+a.width/2,cy:a.top+a.height/2})})},E=o=>o<Y?1:o>B?0:(B-o)/(B-Y),j=o=>{for(const a of i){const u=d-a.cx,y=x-a.cy,p=Math.hypot(u,y),v=E(p),b=p<1?1:p;let A=u/b*ue*v;const L=y/b*xe*v;if(a.working&&v<1){const w=o%J/J;A+=Math.sin(w*Math.PI*2)*ve*(1-v)}a.el.style.transform=`translate(${A.toFixed(2)}px, ${L.toFixed(2)}px)`}for(const a of r){const u=d-a.cx,y=Math.hypot(u,x-a.cy),p=E(y),v=Math.max(-G,Math.min(G,u/fe))*p;a.el.style.transform=v===0?"":`rotate(${v.toFixed(2)}deg)`}m=requestAnimationFrame(j)},f=o=>{d=o.clientX,x=o.clientY};c();const h=window.setInterval(c,ge);return m=requestAnimationFrame(j),window.addEventListener("resize",c),document.addEventListener("pointermove",f,{passive:!0}),()=>{cancelAnimationFrame(m),window.clearInterval(h),window.removeEventListener("resize",c),document.removeEventListener("pointermove",f);for(const o of i)o.el.style.transform="";for(const o of r)o.el.style.transform=""}},[n])}function I(n,s,i){const r=i?Z[i.trim().toLowerCase()]:void 0;return{"--fp-z":String(n-s),"--fp-i":String(s),...r==null?{}:{"--fp-suit-hue":String(r)}}}function be(n){if(n<1e3)return String(n);const s=n/1e3;return s<10?`${s.toFixed(1).replace(/\.0$/,"")}k`:`${Math.round(s)}k`}function T({name:n,runtime:s,state:i,action:r}){return e.jsxs("span",{className:"s-thread-participant-card","aria-hidden":"true",children:[e.jsx("strong",{children:n}),s?e.jsx("span",{children:s}):null,e.jsx("span",{children:i}),r?e.jsx("span",{className:"s-thread-participant-card-action",children:r}):null]})}function H({count:n,className:s,style:i,rosterId:r,expanded:d,onClick:x}){const m=`${n} more participant${n===1?"":"s"}`;return e.jsx("button",{type:"button",className:`s-thread-participant s-thread-participant--button ${s}`,style:i,"aria-label":`${m}; open participant list`,"aria-haspopup":"dialog","aria-controls":r,"aria-expanded":d,onClick:x,children:e.jsxs("span",{className:"s-thread-participant-face s-thread-participant-face--overflow",children:["+",be(n)]})})}const ye=[{id:"thread",label:"Thread",hint:"The conversation in order"},{id:"flow",label:"Flow",hint:"Who asked whom, who waited, and where the work branched"},{id:"map",label:"Map",hint:"Who exchanges work with whom, and on which model"},{id:"canvas",label:"Canvas",hint:"The same window laid out left to right, with nobody folded away"}];function Nt({showBackNav:n,backLabel:s,isDm:i,navigate:r,route:d,canonicalConversationId:x,threadTitle:m,agentId:c,sessionId:E,detailRoute:j,participants:f,operator:h,canAddParticipants:o,onToggleAddParticipant:a,view:u,onChangeView:y,beside:p}){const v=se(),b=ee(d),A=S.useRef(null),L=S.useRef(null),w=S.useId(),[N,C]=S.useState(!1);je(A);const $=f.slice(0,3),z=Math.max(f.length-$.length,0),U=Math.max(f.length-2,0),W=Math.max(f.length-1,0),k=$.length+(z>0?1:0)+(h.active?1:0);S.useEffect(()=>{if(!N)return;const t=g=>{L.current?.contains(g.target)||C(!1)},l=g=>{g.key==="Escape"&&C(!1)};return document.addEventListener("mousedown",t),document.addEventListener("keydown",l),()=>{document.removeEventListener("mousedown",t),document.removeEventListener("keydown",l)}},[N]);const O=t=>t.agent?{view:"agents-v2",agentId:t.agent.id,...b?{machineId:b}:{}}:t.sessionId?{view:"sessions",sessionId:t.sessionId,...b?{machineId:b}:{}}:null,q=t=>{const l=O(t);l&&(C(!1),_(r,l,{returnTo:d}))};return e.jsxs("div",{className:"s-thread-center-header",onClick:t=>{t.target?.closest("button,a,input,select,textarea")||!i||!j||_(r,j,{returnTo:d})},style:i&&j?{cursor:"pointer"}:void 0,onContextMenu:t=>{const l=[{kind:"action",label:"Copy Title",onSelect:()=>{M(m)}}];c&&l.push({kind:"action",label:"Copy Agent ID",onSelect:()=>{M(c)}}),!c&&E&&l.push({kind:"action",label:"Copy Session ID",onSelect:()=>{M(E)}}),l.push({kind:"action",label:"Copy Conversation ID",onSelect:()=>{M(x)}}),v(t,l)},children:[n&&e.jsx(re,{slot:"conversation",fallback:{view:"inbox"},navigate:r,label:s??"Back",className:"s-thread-header-back"}),e.jsx("div",{className:"s-thread-center-header-info",children:i&&j?e.jsx("button",{type:"button",className:"s-thread-center-header-name",title:`Open ${m} details`,onClick:()=>_(r,j,{returnTo:d}),children:m}):e.jsx("span",{className:"s-thread-center-header-name",title:m,children:m})}),e.jsxs("div",{className:"s-thread-center-header-right",children:[e.jsx("div",{className:"s-thread-view-toggle",role:"group","aria-label":"Conversation view",children:ye.map(t=>e.jsx("button",{type:"button",className:`s-thread-view-option${u===t.id?" s-thread-view-option--on":""}`,"aria-pressed":u===t.id,title:t.hint,onClick:()=>y(t.id),children:t.label},t.id))}),f.length>0&&e.jsxs("div",{className:"s-thread-participants",ref:t=>{A.current=t,L.current=t},"aria-label":"Conversation participants",children:[$.map((t,l)=>{const g=[t.harness,t.model,t.reasoningEffort].filter(Boolean).join(" · ")||null,F=t.agent?ne(t.agent.state??null,t.agent):null,D=t.agent?ae(t.agent.state??null,t.agent):"Session participant",V=O(t),X=V?t.agent?"Open profile":"Open session":null,Q=[t.name,g,D,X].filter(Boolean).join(", "),K=e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"s-thread-participant-face",children:[e.jsx(oe,{}),e.jsx(P,{agent:t.agent??void 0,name:t.name,placement:"turn",size:28,className:"s-thread-participant-avatar",gaze:"pointer"})]}),t.harness?e.jsx(te,{harness:t.harness,size:9,className:"s-thread-participant-harness",title:null}):null,e.jsx(T,{name:t.name,runtime:g,state:D,action:X})]}),R={className:"s-thread-participant",style:I(k,l,t.harness),"data-state":F??void 0,"data-compact-hidden":l>=2?"true":void 0,"data-narrow-hidden":l>=1?"true":void 0,"aria-label":Q};return V?e.jsx("button",{type:"button",...R,className:`${R.className} s-thread-participant--button`,onClick:()=>q(t),children:K},t.id):e.jsx("span",{...R,role:"group",tabIndex:0,children:K},t.id)}),z>0?e.jsx(H,{count:z,className:"s-thread-participant--desktop-overflow",style:I(k,$.length),rosterId:w,expanded:N,onClick:()=>C(t=>!t)}):null,U>0?e.jsx(H,{count:U,className:"s-thread-participant--compact-overflow",style:I(k,2),rosterId:w,expanded:N,onClick:()=>C(t=>!t)}):null,W>0?e.jsx(H,{count:W,className:"s-thread-participant--narrow-overflow",style:I(k,1),rosterId:w,expanded:N,onClick:()=>C(t=>!t)}):null,h.active?e.jsxs("span",{className:"s-thread-participant s-thread-participant--operator",style:I(k,k-1),role:"group",tabIndex:0,"aria-label":`${h.name}, you, in this conversation`,children:[e.jsx("span",{className:"s-thread-participant-face",children:e.jsx(P,{name:h.name,placement:"turn",size:28,className:"s-thread-participant-avatar",gaze:"pointer"})}),e.jsx(T,{name:`${h.name} (you)`,runtime:null,state:"In this conversation",action:null})]}):e.jsxs("span",{className:"s-thread-participant-observer",role:"group",tabIndex:0,"aria-label":`${h.name}, observing, not in this conversation`,children:[e.jsx(ce,{size:15,strokeWidth:1.9,"aria-hidden":"true"}),e.jsx(T,{name:h.name,runtime:null,state:"Observing, not in this conversation",action:null})]}),N?e.jsxs("div",{id:w,className:"s-thread-participant-roster",role:"dialog","aria-label":"Conversation participants",onClick:t=>t.stopPropagation(),children:[e.jsx("strong",{className:"s-thread-participant-roster-title",children:"Participants"}),e.jsxs("div",{className:"s-thread-participant-roster-list",children:[f.map(t=>{const l=O(t),g=[t.harness,t.model].filter(Boolean).join(" · "),F=e.jsxs(e.Fragment,{children:[e.jsx(P,{agent:t.agent??void 0,name:t.name,placement:"turn",size:24,className:"s-thread-participant-roster-avatar"}),e.jsxs("span",{children:[e.jsx("strong",{children:t.name}),g?e.jsx("small",{children:g}):null]})]});return l?e.jsx("button",{type:"button",className:"s-thread-participant-roster-row",onClick:()=>q(t),children:F},t.id):e.jsx("div",{className:"s-thread-participant-roster-row",children:F},t.id)}),h.active?e.jsxs("div",{className:"s-thread-participant-roster-row",children:[e.jsx(P,{name:h.name,placement:"turn",size:24,className:"s-thread-participant-roster-avatar"}),e.jsxs("span",{children:[e.jsxs("strong",{children:[h.name," (you)"]}),e.jsx("small",{children:"Operator"})]})]}):null]})]}):null]}),p&&e.jsx("button",{type:"button",className:`s-thread-add-participant-trigger${p.on?" is-on":""}`,onClick:p.toggle,title:p.on?"Close the column beside the stage":"Keep this conversation beside the stage","aria-label":p.on?"Close beside":"Keep beside","aria-pressed":p.on,children:e.jsx(de,{size:14,strokeWidth:1.9,"aria-hidden":"true"})}),o&&e.jsx("button",{type:"button",className:"s-thread-add-participant-trigger",onClick:a,title:"Add participant","aria-label":"Add participant",children:e.jsx(pe,{size:14,strokeWidth:1.9,"aria-hidden":"true"})})]})]})}function Ct({canonicalConversationId:n,conversationAlias:s}){return e.jsxs("div",{className:"s-thread-identity-row",children:[e.jsxs("button",{type:"button",className:"s-thread-identity-chip",title:n,onClick:()=>{M(n)},children:[e.jsx("span",{children:ie()}),e.jsx("strong",{children:le(n)})]}),s&&e.jsxs("span",{className:"s-thread-identity-chip",title:s,children:[e.jsx("span",{children:"Alias"}),e.jsx("strong",{children:s})]})]})}function kt({agents:n,addParticipantId:s,setAddParticipantId:i,addingParticipant:r,addParticipantError:d,onCancel:x,onSubmit:m}){return e.jsxs("form",{className:"s-thread-add-participant",onSubmit:c=>{c.preventDefault(),m()},children:[e.jsxs("div",{className:"s-thread-add-participant-row",children:[e.jsxs("div",{className:"s-thread-add-participant-field",children:[e.jsx("label",{className:"s-thread-add-participant-label",htmlFor:"thread-add-participant-select",children:"Agent"}),e.jsx("select",{id:"thread-add-participant-select",className:"s-thread-add-participant-select",value:s,onChange:c=>i(c.target.value),autoFocus:!0,children:n.map(c=>e.jsx("option",{value:c.id,children:c.name},c.id))})]}),e.jsxs("div",{className:"s-thread-add-participant-actions",children:[e.jsx("button",{type:"button",className:"s-btn s-btn-sm",onClick:x,disabled:r,children:"Cancel"}),e.jsx("button",{type:"submit",className:"s-btn s-btn-primary s-btn-sm",disabled:r||s.trim().length===0,children:r?"Adding...":"Add"})]})]}),d&&e.jsx("div",{className:"s-thread-add-participant-error",children:d})]})}export{kt as AddParticipantForm,Nt as ConversationHeader,Ct as ConversationIdentityRow};
|
package/dist/client/assets/{ConversationPanels-6pprBpmq.js → ConversationPanels-D9oC0xG5.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/conversation-motion-features-
|
|
2
|
-
import{j as e,r as g,_ as z}from"./index-DReVb7jZ.js";import{e as W,t as B,g as O,r as D,h as U,m as F,c as K,i as H,p as q}from"./conversation-model-m8HhzroS.js";import{n as G,e as V}from"./agent-state-DDhnFEEP.js";import{a as L,s as J}from"./colors-CFlbwC25.js";import{i as C}from"./sessionRead-CvFz2RHv.js";import{n as Q,t as w,f as b}from"./time-Dhsh_2EG.js";import{u as X}from"./Provider-CNZluAZb.js";import{o as E}from"./openContent-C6XO6kr5.js";import{f as Y,c as Z,b as ee,e as te,g as se}from"./tail-display-DHSNmvor.js";import{u as ae}from"./use-reduced-motion-CiaZHMnk.js";import{L as ie,m as f}from"./proxy-DgzP27W8.js";import{C as ne}from"./chevron-down-CDzRQQGl.js";import{C as re}from"./chevron-right-DKGTLiqc.js";import{A as oe}from"./activity-BJqFrZyB.js";import{T as ce}from"./terminal-DMZjX1es.js";import{M as le}from"./message-circle-cI5_A5mj.js";const M=60,de={planning:"Planning",inspection:"Inspection",mutation:"Mutations",execution:"Execution",verification:"Verification",coordination:"Coordination"};function N(s){if(s.kind==="think")return"planning";const t=s.tool?.toLowerCase()??"",o=s.arg?.toLowerCase()??"",r=s.text?.toLowerCase()??"",i=s.outcome?.toLowerCase()??"";return t.includes("test")||t.includes("check")||t.includes("lint")||t.includes("typecheck")||t.includes("verify")||/\b(?:bun|npm|pnpm|yarn|cargo|pytest|go|vitest|jest|playwright|cypress)\s+(?:test|run\s+(?:check|test|lint)|check|typecheck)/i.test(o)||/\b(?:\d+\s+pass|all tests passed|test passed|lint clean|tsc clean)\b/i.test(i)?"verification":t==="write"||t==="edit"||t==="strreplace"||t==="str_replace"||t==="delete"||t==="write_file"||t==="edit_file"||t==="patch"||t==="apply_patch"||t==="todowrite"||t==="todo_write"||/\b(?:git\s+apply|git\s+commit|git\s+add|rm\s+|mkdir\s+|touch\s+|sed\s+|awk\s+)/i.test(o)||/^\+\d+\s+[−-]\d+/u.test(i)?"mutation":t==="read"||t==="glob"||t==="grep"||t==="filesearch"||t==="file_search"||t==="list_dir"||t==="list_directory"||t==="view"||t==="fetch"||t==="webfetch"||t==="websearch"||t==="scout_search"||t==="search"||/\b(?:grep|find|rg|cat|head|tail|ls|git\s+status|git\s+diff|git\s+log|git\s+branch)/i.test(o)?"inspection":s.kind==="note"||/\b(?:planning|plan|evaluating|analyzing|reasoning|strategy)\b/i.test(r)?"planning":s.kind==="tool"||t==="bash"||t==="shell"||t==="terminal"||t==="exec"||t==="run"||t==="command"||t==="task"?"execution":"coordination"}function y(s){const t=s.outcome?.toLowerCase()??"";return t.includes("error")||t.includes("fail")||t.includes("exit 1")||t.includes("rejected")||t.includes("timed out")?"error":t.includes("warn")||t.includes("skipped")?"warning":s.outcome||!s.isLatest?"success":s.isActive?"working":"success"}function he(s){if(s<1e3)return`${Math.round(s)}ms`;const t=s/1e3;if(t<60)return`${t.toFixed(1).replace(/\.0$/,"")}s`;const o=Math.floor(t/60),r=Math.round(t%60);return`${o}m ${r}s`}function me(s){if(s.length===0)return[];const t=new Map;for(const c of s)t.set(c.phase,(t.get(c.phase)??0)+(c.repeatCount||1));const r=s.at(-1)?.phase??"planning";return["planning","inspection","mutation","execution","verification","coordination"].filter(c=>(t.get(c)??0)>0).map(c=>({phase:c,label:de[c],count:t.get(c)??0,active:c===r}))}function j(s,t,o){const r=o?.trim();if(!r)return;const i=r.toLowerCase();t.has(i)||(t.add(i),s.push(r))}function Ue(s){const t=[],o=new Set;j(t,o,s.observeSessionId);for(const r of s.flight?.sessions??[])j(t,o,r.sessionId);return j(t,o,s.agent?.harnessSessionId),j(t,o,s.sessionMeta?.harnessSessionId),t}function Fe(s,t){const o=s.sessionId?.trim().toLowerCase();return o?t.some(r=>{const i=r.trim().toLowerCase();return i?o.includes(i)||i.includes(o):!1}):!1}function A(s,t){return s.ts!==t.ts?s.ts-t.ts:s.id.localeCompare(t.id)}function Ke(s,t){const o=new Map;for(const r of[...s,...t])o.set(r.id,r);return[...o.values()].sort(A).slice(-M)}function He(s){const t=Y(s).sort(A),o=Z(t.map(i=>({event:i,meta:ee(i)}))),r=[];for(const i of o){if(i.event.kind==="other")continue;if(i.event.kind==="tool-result"){const m=r.at(-1);m?.kind==="tool"&&(m.outcome=i.meta.result?.outcome??m.outcome??"done",m.ts=i.event.ts,m.status=y({outcome:m.outcome}),m.phase=N({kind:m.kind,tool:m.tool,arg:m.arg,text:m.text,outcome:m.outcome}));continue}const c=ue(i.event),l=pe(i.event,te(i.event,i.meta),c);if(!l&&c!=="think")continue;const d=i.meta.tool,n=i.meta.arg?v(i.meta.arg):void 0,h=i.meta.result?.outcome,a=N({kind:c,tool:d,arg:n,text:l,outcome:h}),p=y({outcome:h}),u={id:i.event.id,ts:i.event.ts,kind:c,text:l,repeatCount:i.repeatCount,phase:a,status:p};d&&(u.tool=d),n&&(u.arg=n),h&&(u.outcome=h),r.push(u)}for(let i=0;i<r.length-1;i++){const c=r[i],l=r[i+1];c&&l&&l.ts>=c.ts&&(c.durationMs=l.ts-c.ts)}return r}const $=160;function v(s){const t=s.replace(/\s+/gu," ").trim();return t.length>$?`${t.slice(0,$-1)}…`:t}const I=/^\[thinking\]\s*$/iu;function ue(s){return I.test(s.summary.trim())?"think":se(s)}function pe(s,t,o){return o==="think"&&I.test(s.summary.trim())?"":v(t)}const xe=15e3;function ge(s){const t=s?.outcome;return typeof t=="string"&&t.trim()?t.trim():void 0}function qe(s){const{observe:t,flight:o}=s;if(!t||!o)return[];const r=t.data.events.filter(n=>n.kind!=="boot"&&n.kind!=="system");if(r.length===0)return[];const i=Q(o.startedAt),c=i!==null?r.filter(n=>typeof n.at=="number"&&n.at>=i-xe):[],d=(c.length>0?c:t.data.live?r:[]).slice(-M).map(n=>{const h=ge(n.result),p=(n.diff?`+${n.diff.add} −${n.diff.del}`:void 0)||h,u=N({kind:n.kind,tool:n.tool,arg:n.arg,text:n.text,outcome:p}),m=y({outcome:p}),x={id:`observe:${t.sessionId??"session"}:${n.id}`,ts:n.at??n.t,kind:n.kind,text:v(n.text||n.tool||"step"),repeatCount:1,phase:u,status:m};return n.tool&&(x.tool=n.tool),n.arg&&(x.arg=v(n.arg)),p&&(x.outcome=p),x});for(let n=0;n<d.length-1;n++){const h=d[n],a=d[n+1];h&&a&&a.ts>=h.ts&&(h.durationMs=a.ts-h.ts)}return d}function Ge(s){const t=s.at(-1);return t?t.tool?t.arg?`${t.tool} · ${t.arg}`:t.tool:t.kind==="think"?t.text||"Thinking":t.text||null:null}function Ve(s){if(s.length===0)return null;const t=s.filter(i=>i.kind==="tool").length,o=s.filter(i=>i.kind==="think").length,r=[];return t>0&&r.push(`${t} tool${t===1?"":"s"}`),o>0&&r.push(`${o} thinking`),r.length===0?`${s.length} step${s.length===1?"":"s"}`:r.join(" · ")}function Je(s){const t=s.flight?.state;return t==="queued"?{label:"Queued",detail:"waiting for the session to come online"}:t==="waking"?{label:"Waking",detail:"starting the session"}:t==="running"||t==="waiting"?s.hasSessionScope?{label:"Session live",detail:"waiting for the first trace line"}:{label:"Session live",detail:"no trace stream for this session yet"}:s.awaitingResponse?{label:"Sent",detail:"waiting for the agent to pick this up"}:null}const fe=[{head:"30%",body:"88%",short:"62%"},{head:"22%",body:"76%",short:"48%"},{head:"34%",body:"82%",short:"68%"}],je=()=>z(()=>import("./conversation-motion-features-D9PxLoDt.js"),__vite__mapDeps([0,1,2,3,4])).then(s=>s.default);function P({onOpenTrace:s,onOpenTerminal:t,onSteer:o,compact:r=!1}){return!s&&!t&&!o?null:e.jsxs("nav",{className:`s-thread-working-actions${r?" s-thread-working-actions--compact":""}`,"aria-label":"Working turn actions",children:[s&&e.jsxs("button",{type:"button",className:"s-thread-working-action s-thread-working-action--primary",onClick:s,title:"Watch this run's live trace",children:[e.jsx(oe,{size:13,strokeWidth:1.9,"aria-hidden":"true"}),e.jsx("span",{children:"Live trace"})]}),t&&e.jsxs("button",{type:"button",className:"s-thread-working-action",onClick:t,title:"Jump into this agent's terminal",children:[e.jsx(ce,{size:13,strokeWidth:1.9,"aria-hidden":"true"}),e.jsx("span",{children:"Terminal"})]}),o&&e.jsxs("button",{type:"button",className:"s-thread-working-action",onClick:o,title:"Write an interrupting message to steer this turn",children:[e.jsx(le,{size:13,strokeWidth:1.9,"aria-hidden":"true"}),e.jsx("span",{children:"Steer…"})]})]})}const ve={think:"Thinking",tool:"Tool",ask:"Prompt",message:"Says",note:"Note",system:"System",boot:"Boot"};function k({steps:s,phase:t,limit:o=5,compact:r=!1}){const[i,c]=g.useState(()=>new Set),l=g.useCallback(a=>{c(p=>{const u=new Set(p);return u.has(a)?u.delete(a):u.add(a),u})},[]),d=g.useMemo(()=>me(s),[s]),n=s.slice(-o),h=s.length-n.length;return n.length===0?t?e.jsxs("div",{className:"s-thread-steps-phase surface-card surface-card--inset",children:[e.jsxs("div",{className:"s-thread-steps-phase-header",children:[e.jsx("span",{className:"dot dot--sm dot--working dot--pulse dot--glow","aria-hidden":"true"}),e.jsx("span",{className:"label-xs text-muted",children:t.label})]}),e.jsx("strong",{className:"s-thread-steps-phase-detail",children:t.detail})]}):null:e.jsxs("div",{className:`s-thread-steps${r?" s-thread-steps--compact":""}`,children:[d.length>0&&e.jsx("div",{className:"s-thread-turn-phases-ribbon",role:"status","aria-label":"Execution phases",children:d.map(a=>e.jsxs("span",{className:`s-thread-turn-phase-chip chip chip--sm chip--mono ${a.active?"chip--working s-thread-turn-phase-chip--active":"chip--neutral"}`,children:[a.active&&e.jsx("span",{className:"dot dot--sm dot--working dot--pulse dot--glow","aria-hidden":"true"}),e.jsx("span",{className:"s-thread-turn-phase-name",children:a.label}),e.jsx("span",{className:"s-thread-turn-phase-count",children:a.count})]},a.phase))}),h>0&&e.jsxs("div",{className:"s-thread-steps-elided label-xs",children:[h," earlier step",h===1?"":"s"]}),e.jsx("ol",{className:"s-thread-steps-list","aria-label":"Live steps in this turn",children:n.map((a,p)=>{const u=p===n.length-1,m=i.has(a.id),x=!!(a.arg&&a.arg.length>30||a.outcome||a.text.length>50);return e.jsxs("li",{className:`s-thread-step-card s-thread-step-card--${a.status}${u?" s-thread-step-card--latest":""}${m?" s-thread-step-card--expanded":""}`,"data-kind":a.kind,"data-phase":a.phase,"data-status":a.status,children:[e.jsxs("div",{className:"s-thread-step-header",children:[e.jsx("span",{className:"s-thread-step-mark s-thread-step-indicator","aria-hidden":"true",children:a.status==="working"||u&&!a.outcome?e.jsx("span",{className:"dot dot--sm dot--working dot--pulse dot--glow"}):a.status==="error"?e.jsx("span",{className:"dot dot--sm dot--danger"}):a.status==="warning"?e.jsx("span",{className:"dot dot--sm dot--warning"}):e.jsx("span",{className:"dot dot--sm dot--success"})}),e.jsx("span",{className:"s-thread-step-kind chip chip--sm chip--mono chip--ghost",children:a.tool?a.tool:ve[a.kind]}),e.jsxs("div",{className:"s-thread-step-body",children:[a.tool?e.jsx("span",{className:"s-thread-step-tool-arg",children:a.arg?e.jsx("code",{className:"s-thread-step-arg-code",children:a.arg}):e.jsx("span",{className:"s-thread-step-tool",children:a.tool})}):e.jsx("span",{className:"s-thread-step-text",children:a.text}),a.repeatCount>1&&e.jsxs("span",{className:"s-thread-step-repeat chip chip--sm chip--mono chip--neutral",children:["×",a.repeatCount]})]}),e.jsxs("div",{className:"s-thread-step-meta",children:[a.outcome&&e.jsx("span",{className:`s-thread-step-outcome chip chip--sm chip--mono ${a.outcome.includes("+")?"chip--success":a.status==="error"?"chip--danger":"chip--neutral"}`,children:a.outcome}),a.durationMs?e.jsx("span",{className:"s-thread-step-duration label-xs",children:he(a.durationMs)}):null,e.jsx("time",{className:"label-xs",title:b(a.ts),children:w(a.ts)}),x&&e.jsx("button",{type:"button",className:"s-thread-step-toggle btn btn--ghost btn--icon","aria-expanded":m,onClick:()=>l(a.id),title:m?"Collapse output":"Expand output",children:m?e.jsx(ne,{size:12}):e.jsx(re,{size:12})})]})]}),m&&e.jsxs("div",{className:"s-thread-step-output surface-card surface-card--inset",children:[e.jsxs("div",{className:"s-thread-step-output-header",children:[e.jsx("span",{className:"label-xs text-muted",children:"Telemetry Detail"}),e.jsxs("span",{className:"label-xs text-dim",children:[a.phase.toUpperCase()," · ",a.status.toUpperCase()]})]}),e.jsx("pre",{className:"s-thread-step-output-code",children:e.jsxs("code",{children:[a.tool?`tool: ${a.tool}
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/conversation-motion-features-C5zjuNwE.js","assets/gestures-QZub3Ot9.js","assets/index-EsrkGBcv.js","assets/index-CN4rBB_s.css","assets/use-reduced-motion-3gMYZNIp.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{j as e,r as g,_ as z}from"./index-EsrkGBcv.js";import{h as W,t as B,i as O,r as D,j as U,m as F,c as K,k as H,p as q}from"./conversation-model-FxDeWlle.js";import{n as G,e as V}from"./agent-state-DDhnFEEP.js";import{a as L,s as J}from"./colors-CFlbwC25.js";import{i as C}from"./sessionRead-CvFz2RHv.js";import{n as Q,t as w,f as b}from"./time-Dhsh_2EG.js";import{u as X}from"./Provider-C35yu29I.js";import{o as E}from"./openContent-C6XO6kr5.js";import{f as Y,c as Z,b as ee,e as te,g as se}from"./tail-display-DHSNmvor.js";import{u as ae}from"./use-reduced-motion-3gMYZNIp.js";import{L as ie,m as f}from"./proxy-AJsmwA6h.js";import{C as ne}from"./chevron-down-l1mrh5S9.js";import{C as re}from"./chevron-right-DrfqcerI.js";import{A as oe}from"./activity-CIlFrfPJ.js";import{T as ce}from"./terminal-hQKQygcf.js";import{M as le}from"./message-circle-CxRVKNE-.js";const M=60,de={planning:"Planning",inspection:"Inspection",mutation:"Mutations",execution:"Execution",verification:"Verification",coordination:"Coordination"};function N(s){if(s.kind==="think")return"planning";const t=s.tool?.toLowerCase()??"",o=s.arg?.toLowerCase()??"",r=s.text?.toLowerCase()??"",i=s.outcome?.toLowerCase()??"";return t.includes("test")||t.includes("check")||t.includes("lint")||t.includes("typecheck")||t.includes("verify")||/\b(?:bun|npm|pnpm|yarn|cargo|pytest|go|vitest|jest|playwright|cypress)\s+(?:test|run\s+(?:check|test|lint)|check|typecheck)/i.test(o)||/\b(?:\d+\s+pass|all tests passed|test passed|lint clean|tsc clean)\b/i.test(i)?"verification":t==="write"||t==="edit"||t==="strreplace"||t==="str_replace"||t==="delete"||t==="write_file"||t==="edit_file"||t==="patch"||t==="apply_patch"||t==="todowrite"||t==="todo_write"||/\b(?:git\s+apply|git\s+commit|git\s+add|rm\s+|mkdir\s+|touch\s+|sed\s+|awk\s+)/i.test(o)||/^\+\d+\s+[−-]\d+/u.test(i)?"mutation":t==="read"||t==="glob"||t==="grep"||t==="filesearch"||t==="file_search"||t==="list_dir"||t==="list_directory"||t==="view"||t==="fetch"||t==="webfetch"||t==="websearch"||t==="scout_search"||t==="search"||/\b(?:grep|find|rg|cat|head|tail|ls|git\s+status|git\s+diff|git\s+log|git\s+branch)/i.test(o)?"inspection":s.kind==="note"||/\b(?:planning|plan|evaluating|analyzing|reasoning|strategy)\b/i.test(r)?"planning":s.kind==="tool"||t==="bash"||t==="shell"||t==="terminal"||t==="exec"||t==="run"||t==="command"||t==="task"?"execution":"coordination"}function y(s){const t=s.outcome?.toLowerCase()??"";return t.includes("error")||t.includes("fail")||t.includes("exit 1")||t.includes("rejected")||t.includes("timed out")?"error":t.includes("warn")||t.includes("skipped")?"warning":s.outcome||!s.isLatest?"success":s.isActive?"working":"success"}function he(s){if(s<1e3)return`${Math.round(s)}ms`;const t=s/1e3;if(t<60)return`${t.toFixed(1).replace(/\.0$/,"")}s`;const o=Math.floor(t/60),r=Math.round(t%60);return`${o}m ${r}s`}function me(s){if(s.length===0)return[];const t=new Map;for(const c of s)t.set(c.phase,(t.get(c.phase)??0)+(c.repeatCount||1));const r=s.at(-1)?.phase??"planning";return["planning","inspection","mutation","execution","verification","coordination"].filter(c=>(t.get(c)??0)>0).map(c=>({phase:c,label:de[c],count:t.get(c)??0,active:c===r}))}function j(s,t,o){const r=o?.trim();if(!r)return;const i=r.toLowerCase();t.has(i)||(t.add(i),s.push(r))}function Ue(s){const t=[],o=new Set;j(t,o,s.observeSessionId);for(const r of s.flight?.sessions??[])j(t,o,r.sessionId);return j(t,o,s.agent?.harnessSessionId),j(t,o,s.sessionMeta?.harnessSessionId),t}function Fe(s,t){const o=s.sessionId?.trim().toLowerCase();return o?t.some(r=>{const i=r.trim().toLowerCase();return i?o.includes(i)||i.includes(o):!1}):!1}function A(s,t){return s.ts!==t.ts?s.ts-t.ts:s.id.localeCompare(t.id)}function Ke(s,t){const o=new Map;for(const r of[...s,...t])o.set(r.id,r);return[...o.values()].sort(A).slice(-M)}function He(s){const t=Y(s).sort(A),o=Z(t.map(i=>({event:i,meta:ee(i)}))),r=[];for(const i of o){if(i.event.kind==="other")continue;if(i.event.kind==="tool-result"){const m=r.at(-1);m?.kind==="tool"&&(m.outcome=i.meta.result?.outcome??m.outcome??"done",m.ts=i.event.ts,m.status=y({outcome:m.outcome}),m.phase=N({kind:m.kind,tool:m.tool,arg:m.arg,text:m.text,outcome:m.outcome}));continue}const c=ue(i.event),l=pe(i.event,te(i.event,i.meta),c);if(!l&&c!=="think")continue;const d=i.meta.tool,n=i.meta.arg?v(i.meta.arg):void 0,h=i.meta.result?.outcome,a=N({kind:c,tool:d,arg:n,text:l,outcome:h}),p=y({outcome:h}),u={id:i.event.id,ts:i.event.ts,kind:c,text:l,repeatCount:i.repeatCount,phase:a,status:p};d&&(u.tool=d),n&&(u.arg=n),h&&(u.outcome=h),r.push(u)}for(let i=0;i<r.length-1;i++){const c=r[i],l=r[i+1];c&&l&&l.ts>=c.ts&&(c.durationMs=l.ts-c.ts)}return r}const $=160;function v(s){const t=s.replace(/\s+/gu," ").trim();return t.length>$?`${t.slice(0,$-1)}…`:t}const I=/^\[thinking\]\s*$/iu;function ue(s){return I.test(s.summary.trim())?"think":se(s)}function pe(s,t,o){return o==="think"&&I.test(s.summary.trim())?"":v(t)}const xe=15e3;function ge(s){const t=s?.outcome;return typeof t=="string"&&t.trim()?t.trim():void 0}function qe(s){const{observe:t,flight:o}=s;if(!t||!o)return[];const r=t.data.events.filter(n=>n.kind!=="boot"&&n.kind!=="system");if(r.length===0)return[];const i=Q(o.startedAt),c=i!==null?r.filter(n=>typeof n.at=="number"&&n.at>=i-xe):[],d=(c.length>0?c:t.data.live?r:[]).slice(-M).map(n=>{const h=ge(n.result),p=(n.diff?`+${n.diff.add} −${n.diff.del}`:void 0)||h,u=N({kind:n.kind,tool:n.tool,arg:n.arg,text:n.text,outcome:p}),m=y({outcome:p}),x={id:`observe:${t.sessionId??"session"}:${n.id}`,ts:n.at??n.t,kind:n.kind,text:v(n.text||n.tool||"step"),repeatCount:1,phase:u,status:m};return n.tool&&(x.tool=n.tool),n.arg&&(x.arg=v(n.arg)),p&&(x.outcome=p),x});for(let n=0;n<d.length-1;n++){const h=d[n],a=d[n+1];h&&a&&a.ts>=h.ts&&(h.durationMs=a.ts-h.ts)}return d}function Ge(s){const t=s.at(-1);return t?t.tool?t.arg?`${t.tool} · ${t.arg}`:t.tool:t.kind==="think"?t.text||"Thinking":t.text||null:null}function Ve(s){if(s.length===0)return null;const t=s.filter(i=>i.kind==="tool").length,o=s.filter(i=>i.kind==="think").length,r=[];return t>0&&r.push(`${t} tool${t===1?"":"s"}`),o>0&&r.push(`${o} thinking`),r.length===0?`${s.length} step${s.length===1?"":"s"}`:r.join(" · ")}function Je(s){const t=s.flight?.state;return t==="queued"?{label:"Queued",detail:"waiting for the session to come online"}:t==="waking"?{label:"Waking",detail:"starting the session"}:t==="running"||t==="waiting"?s.hasSessionScope?{label:"Session live",detail:"waiting for the first trace line"}:{label:"Session live",detail:"no trace stream for this session yet"}:s.awaitingResponse?{label:"Sent",detail:"waiting for the agent to pick this up"}:null}const fe=[{head:"30%",body:"88%",short:"62%"},{head:"22%",body:"76%",short:"48%"},{head:"34%",body:"82%",short:"68%"}],je=()=>z(()=>import("./conversation-motion-features-C5zjuNwE.js"),__vite__mapDeps([0,1,2,3,4])).then(s=>s.default);function P({onOpenTrace:s,onOpenTerminal:t,onSteer:o,compact:r=!1}){return!s&&!t&&!o?null:e.jsxs("nav",{className:`s-thread-working-actions${r?" s-thread-working-actions--compact":""}`,"aria-label":"Working turn actions",children:[s&&e.jsxs("button",{type:"button",className:"s-thread-working-action s-thread-working-action--primary",onClick:s,title:"Watch this run's live trace",children:[e.jsx(oe,{size:13,strokeWidth:1.9,"aria-hidden":"true"}),e.jsx("span",{children:"Live trace"})]}),t&&e.jsxs("button",{type:"button",className:"s-thread-working-action",onClick:t,title:"Jump into this agent's terminal",children:[e.jsx(ce,{size:13,strokeWidth:1.9,"aria-hidden":"true"}),e.jsx("span",{children:"Terminal"})]}),o&&e.jsxs("button",{type:"button",className:"s-thread-working-action",onClick:o,title:"Write an interrupting message to steer this turn",children:[e.jsx(le,{size:13,strokeWidth:1.9,"aria-hidden":"true"}),e.jsx("span",{children:"Steer…"})]})]})}const ve={think:"Thinking",tool:"Tool",ask:"Prompt",message:"Says",note:"Note",system:"System",boot:"Boot"};function k({steps:s,phase:t,limit:o=5,compact:r=!1}){const[i,c]=g.useState(()=>new Set),l=g.useCallback(a=>{c(p=>{const u=new Set(p);return u.has(a)?u.delete(a):u.add(a),u})},[]),d=g.useMemo(()=>me(s),[s]),n=s.slice(-o),h=s.length-n.length;return n.length===0?t?e.jsxs("div",{className:"s-thread-steps-phase surface-card surface-card--inset",children:[e.jsxs("div",{className:"s-thread-steps-phase-header",children:[e.jsx("span",{className:"dot dot--sm dot--working dot--pulse dot--glow","aria-hidden":"true"}),e.jsx("span",{className:"label-xs text-muted",children:t.label})]}),e.jsx("strong",{className:"s-thread-steps-phase-detail",children:t.detail})]}):null:e.jsxs("div",{className:`s-thread-steps${r?" s-thread-steps--compact":""}`,children:[d.length>0&&e.jsx("div",{className:"s-thread-turn-phases-ribbon",role:"status","aria-label":"Execution phases",children:d.map(a=>e.jsxs("span",{className:`s-thread-turn-phase-chip chip chip--sm chip--mono ${a.active?"chip--working s-thread-turn-phase-chip--active":"chip--neutral"}`,children:[a.active&&e.jsx("span",{className:"dot dot--sm dot--working dot--pulse dot--glow","aria-hidden":"true"}),e.jsx("span",{className:"s-thread-turn-phase-name",children:a.label}),e.jsx("span",{className:"s-thread-turn-phase-count",children:a.count})]},a.phase))}),h>0&&e.jsxs("div",{className:"s-thread-steps-elided label-xs",children:[h," earlier step",h===1?"":"s"]}),e.jsx("ol",{className:"s-thread-steps-list","aria-label":"Live steps in this turn",children:n.map((a,p)=>{const u=p===n.length-1,m=i.has(a.id),x=!!(a.arg&&a.arg.length>30||a.outcome||a.text.length>50);return e.jsxs("li",{className:`s-thread-step-card s-thread-step-card--${a.status}${u?" s-thread-step-card--latest":""}${m?" s-thread-step-card--expanded":""}`,"data-kind":a.kind,"data-phase":a.phase,"data-status":a.status,children:[e.jsxs("div",{className:"s-thread-step-header",children:[e.jsx("span",{className:"s-thread-step-mark s-thread-step-indicator","aria-hidden":"true",children:a.status==="working"||u&&!a.outcome?e.jsx("span",{className:"dot dot--sm dot--working dot--pulse dot--glow"}):a.status==="error"?e.jsx("span",{className:"dot dot--sm dot--danger"}):a.status==="warning"?e.jsx("span",{className:"dot dot--sm dot--warning"}):e.jsx("span",{className:"dot dot--sm dot--success"})}),e.jsx("span",{className:"s-thread-step-kind chip chip--sm chip--mono chip--ghost",children:a.tool?a.tool:ve[a.kind]}),e.jsxs("div",{className:"s-thread-step-body",children:[a.tool?e.jsx("span",{className:"s-thread-step-tool-arg",children:a.arg?e.jsx("code",{className:"s-thread-step-arg-code",children:a.arg}):e.jsx("span",{className:"s-thread-step-tool",children:a.tool})}):e.jsx("span",{className:"s-thread-step-text",children:a.text}),a.repeatCount>1&&e.jsxs("span",{className:"s-thread-step-repeat chip chip--sm chip--mono chip--neutral",children:["×",a.repeatCount]})]}),e.jsxs("div",{className:"s-thread-step-meta",children:[a.outcome&&e.jsx("span",{className:`s-thread-step-outcome chip chip--sm chip--mono ${a.outcome.includes("+")?"chip--success":a.status==="error"?"chip--danger":"chip--neutral"}`,children:a.outcome}),a.durationMs?e.jsx("span",{className:"s-thread-step-duration label-xs",children:he(a.durationMs)}):null,e.jsx("time",{className:"label-xs",title:b(a.ts),children:w(a.ts)}),x&&e.jsx("button",{type:"button",className:"s-thread-step-toggle btn btn--ghost btn--icon","aria-expanded":m,onClick:()=>l(a.id),title:m?"Collapse output":"Expand output",children:m?e.jsx(ne,{size:12}):e.jsx(re,{size:12})})]})]}),m&&e.jsxs("div",{className:"s-thread-step-output surface-card surface-card--inset",children:[e.jsxs("div",{className:"s-thread-step-output-header",children:[e.jsx("span",{className:"label-xs text-muted",children:"Telemetry Detail"}),e.jsxs("span",{className:"label-xs text-dim",children:[a.phase.toUpperCase()," · ",a.status.toUpperCase()]})]}),e.jsx("pre",{className:"s-thread-step-output-code",children:e.jsxs("code",{children:[a.tool?`tool: ${a.tool}
|
|
3
3
|
`:"",a.arg?`args: ${a.arg}
|
|
4
4
|
`:"",a.outcome?`outcome: ${a.outcome}
|
|
5
5
|
`:"",a.text?`text: ${a.text}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.s-thread-layout{display:flex;flex:1 1 0;height:100%;min-height:0;overflow:hidden;background:var(--bg)}.s-thread-rail{width:280px;flex-shrink:0;display:flex;flex-direction:column;background:color-mix(in srgb,var(--bg) 70%,black);border-right:1px solid var(--border);overflow:hidden}.s-thread-rail-scroll{flex:1;min-height:0;overflow-y:auto;padding-bottom:var(--space-2xl)}.s-thread-rail-section{padding:0}.s-thread-rail-section-label{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xl) var(--space-2xl) var(--space-xs);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-lg);text-transform:uppercase;color:var(--dim);-webkit-user-select:none;user-select:none}.s-thread-rail-section--needs-you .s-thread-rail-section-label{color:var(--amber)}.s-thread-rail-item{position:relative;display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-2xl) var(--space-sm) var(--space-xl);cursor:pointer;border:none;background:transparent;width:100%;text-align:left;transition:background .1s ease;border-left:2px solid transparent}.s-thread-rail-item:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}.s-thread-rail-item--active{background:color-mix(in srgb,var(--accent) 6%,transparent);border-left-color:var(--accent)}.s-thread-rail-item--needs-you{background:color-mix(in srgb,var(--amber) 4%,transparent)}.s-thread-rail-item--needs-you:hover{background:color-mix(in srgb,var(--amber) 8%,transparent)}.s-thread-rail-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:600;color:var(--scout-chrome-avatar-ink);flex-shrink:0}.s-thread-rail-avatar--channel{background:color-mix(in srgb,var(--border) 60%,transparent);color:var(--muted);font-size:var(--text-lg);font-weight:400}.s-thread-rail-body{flex:1;min-width:0}.s-thread-rail-name{display:block;font-size:var(--text-md);font-weight:550;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.005em}.s-thread-rail-item--active .s-thread-rail-name{color:var(--ink);font-weight:600}.s-thread-rail-sub{display:block;font-size:var(--text-xs);color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.s-thread-rail-trailing{display:flex;align-items:center;gap:var(--space-xs);flex-shrink:0}.s-thread-rail-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 var(--space-xs);border-radius:var(--radius-lg);background:var(--accent);color:var(--bg);font-size:var(--text-xs);font-weight:600;font-variant-numeric:tabular-nums}.s-thread-rail-badge--amber{background:var(--amber)}.s-thread-rail-presence-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.s-thread-center{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0;overflow:hidden;background:var(--bg)}.s-thread-center-header{display:flex;align-items:center;gap:var(--space-md);min-height:62px;padding:var(--space-md) var(--space-3xl);border-bottom:1px solid color-mix(in srgb,var(--border) 92%,var(--surface));background:var(--surface);flex-shrink:0}.s-thread-header-back{min-width:30px;height:30px;padding:0 var(--space-sm);border-color:color-mix(in srgb,var(--border) 34%,transparent);background:transparent;color:var(--muted);font-size:var(--text-xs);align-self:center}.s-thread-header-back:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}.s-thread-center-header-info{flex:1;min-width:0}.s-thread-center-header-name{display:block;font-size:var(--text-2xl);font-weight:650;letter-spacing:-.02em;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button.s-thread-center-header-name{appearance:none;width:100%;padding:0;border:0;background:none;font-family:inherit;text-align:left;cursor:pointer}.s-thread-center-header-right{display:flex;align-items:center;gap:var(--space-sm);min-width:0;flex-shrink:0}.s-thread-participants{--fp-coin: 46px;--fp-lap: 9px;--fp-cut: 1px;--fp-step: calc(var(--fp-coin) - var(--fp-lap));--fp-sprite: 24px;--fp-badge: 14px;display:flex;align-items:center;min-width:0;max-width:min(48vw,520px)}.s-thread-participant{position:relative;z-index:var(--fp-z, 0);display:inline-flex;align-items:center;justify-content:center;width:var(--fp-coin);height:var(--fp-coin);flex:0 0 auto;padding:0;border:0;background:transparent;color:var(--muted)}.s-thread-participant+.s-thread-participant{margin-left:calc(var(--fp-lap) * -1)}.s-thread-participant-face{position:relative;display:grid;place-items:center;width:var(--fp-coin);height:var(--fp-coin);border-radius:50%;overflow:hidden;background:color-mix(in srgb,var(--ink) 7%,var(--surface));transition:background .16s ease,box-shadow .16s ease}.s-thread-participant+.s-thread-participant .s-thread-participant-face{--fp-carve: radial-gradient( circle at calc(50% - var(--fp-step)) 50%, transparent calc(var(--fp-coin) / 2 + var(--fp-cut)), #000 calc(var(--fp-coin) / 2 + var(--fp-cut) + .5px) );-webkit-mask-image:var(--fp-carve);mask-image:var(--fp-carve)}button.s-thread-participant{font:inherit;cursor:pointer}.s-thread-participants:hover .s-thread-participant-face{background:color-mix(in srgb,var(--ink) 12%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--border) 60%,transparent);transition-delay:calc(var(--fp-i, 0) * 26ms)}.s-thread-participant{transition:transform .18s cubic-bezier(.22,1,.36,1),filter .18s ease}.s-thread-participant:hover{z-index:40;transform:translateY(-3px);filter:drop-shadow(0 4px 8px color-mix(in srgb,var(--bg) 70%,transparent))}.s-thread-participant:hover .s-thread-participant-face{-webkit-mask-image:none;mask-image:none;background:color-mix(in srgb,var(--ink) 14%,var(--surface));box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 55%,transparent);transition-delay:0s}.s-thread-participant:hover .s-thread-participant-avatar{transform:scale(1.1)}.s-thread-participant:hover .sprite-cell--eye circle{animation:s-thread-participant-glance .46s cubic-bezier(.34,1.4,.64,1) 1}@keyframes s-thread-participant-glance{0%{transform:translate(0)}30%{transform:translate(1.4px)}62%{transform:translate(-1.2px)}to{transform:translate(0)}}@media(prefers-reduced-motion:reduce){.s-thread-participant,.s-thread-participant-face,.s-thread-participant-avatar{transition:none}.s-thread-participant:hover,.s-thread-participant:hover .s-thread-participant-avatar{transform:none}.s-thread-participant:hover .sprite-cell--eye circle{animation:none}}.s-thread-participant-avatar{display:inline-flex;align-items:center;justify-content:center;width:var(--fp-sprite);height:var(--fp-sprite);flex:0 0 auto;transition:transform .18s cubic-bezier(.22,1,.36,1)}.s-thread-participant-harness{position:absolute;right:4px;bottom:-3px;display:grid;place-items:center;width:var(--fp-badge);height:var(--fp-badge);border-radius:50%;background:color-mix(in srgb,var(--ink) 18%,var(--surface));box-shadow:0 0 0 1.5px var(--surface);color:var(--muted);pointer-events:none;transition:color .16s ease}.s-thread-participant:hover .s-thread-participant-harness{color:var(--ink)}.s-thread-participant--operator .s-thread-participant-face{background:color-mix(in srgb,var(--surface) 70%,var(--bg));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--border) 70%,transparent);color:var(--muted)}.s-thread-participant-face{--fp-suit: color-mix( in oklab, oklch(.62 .14 var(--fp-suit-hue, 260)) 22%, color-mix(in srgb, var(--ink) 13%, var(--surface)) );--fp-suit-light: color-mix( in oklab, oklch(.68 .16 var(--fp-suit-hue, 260)) 34%, color-mix(in srgb, var(--ink) 20%, var(--surface)) );--fp-visor: color-mix(in srgb, var(--ink) 9%, transparent);align-items:start}.s-thread-participant-suit{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}[data-scout-avatar-style=crew] .s-thread-participant-suit,[data-scout-avatar-style=chip] .s-thread-participant-suit{display:none}[data-scout-avatar-style=crew] .s-thread-participant-face,[data-scout-avatar-style=chip] .s-thread-participant-face{align-items:center;justify-content:center}[data-scout-avatar-style=crew] .s-thread-participant-avatar,[data-scout-avatar-style=chip] .s-thread-participant-avatar{align-self:center;margin-top:0;width:100%!important;height:100%!important}[data-scout-avatar-style=crew] .s-thread-participant-harness,[data-scout-avatar-style=chip] .s-thread-participant-harness{display:none}.s-thread-participant-avatar{align-self:start;margin-top:6px}.s-thread-participant:hover .s-thread-participant-avatar{transform:scale(1.08);transform-origin:50% 38%}.s-thread-participant-face--overflow{align-items:center}.s-thread-participant-harness{right:3px;bottom:2px;background:color-mix(in srgb,var(--ink) 15%,var(--surface));box-shadow:none;color:color-mix(in srgb,var(--ink) 44%,transparent);transform:scale(.9);transition:background .18s ease,color .18s ease,transform .2s cubic-bezier(.34,1.4,.64,1)}.s-thread-participants:hover .s-thread-participant-harness{background:color-mix(in srgb,var(--ink) 26%,var(--surface));color:color-mix(in srgb,var(--ink) 80%,transparent);transform:scale(1);transition-delay:calc(var(--fp-i, 0) * 26ms)}.s-thread-participant:hover .s-thread-participant-harness{background:color-mix(in srgb,var(--ink) 34%,var(--surface));color:var(--ink);transform:scale(1.08);transition-delay:0s}.s-thread-participant[data-state=in_turn]{z-index:50;transform:translateY(-3px)}.s-thread-participant[data-state=in_turn] .s-thread-participant-face{-webkit-mask-image:none;mask-image:none;background:color-mix(in srgb,var(--ink) 12%,var(--surface));animation:s-thread-participant-turn 2.6s ease-in-out infinite}.s-thread-participant[data-state=in_turn]+.s-thread-participant .s-thread-participant-face{-webkit-mask-image:none;mask-image:none}.s-thread-participant[data-state=in_turn] .s-thread-participant-harness{background:color-mix(in srgb,var(--ink) 30%,var(--surface));color:var(--ink);transform:scale(1)}@keyframes s-thread-participant-turn{0%,to{box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 26%,transparent)}50%{box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 72%,transparent)}}.s-thread-participant .sprite-cell--eye{transform-box:fill-box;transform-origin:50% 50%;animation:s-thread-participant-blink 7.2s ease-in-out infinite;animation-delay:calc(var(--fp-i, 0) * -1.73s)}@keyframes s-thread-participant-blink{0%,93%,to{transform:scaleY(1)}96%{transform:scaleY(.06)}}.s-thread-participant .sprite-cell--eye circle{transition:transform .12s cubic-bezier(.22,1,.36,1)}.s-thread-participant:hover .sprite-cell--eye circle{animation:s-thread-participant-widen .42s ease-out 1}.s-thread-participant[data-state=in_turn] .sprite-cell--eye circle{animation:s-thread-participant-dilate 2.6s ease-in-out infinite}@keyframes s-thread-participant-widen{0%,to{r:2.4px}42%{r:3px}}@keyframes s-thread-participant-dilate{0%,to{r:2.4px}50%{r:3.2px}}.s-thread-participant-avatar svg{transform-origin:50% 92%;transition:transform .22s cubic-bezier(.22,1,.36,1)}@media(prefers-reduced-motion:reduce){.s-thread-participant .sprite-cell--eye,.s-thread-participant .sprite-cell--eye circle,.s-thread-participant:hover .sprite-cell--eye circle,.s-thread-participant[data-state=in_turn] .sprite-cell--eye circle{animation:none;transition:none;transform:none!important}.s-thread-participant-avatar svg{transition:none;transform:none!important}.s-thread-participant[data-state=in_turn]{transform:none}.s-thread-participant[data-state=in_turn] .s-thread-participant-face{animation:none;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 55%,transparent)}}.s-thread-participant-face--overflow{padding-left:calc(var(--fp-lap) + var(--fp-cut));background:color-mix(in srgb,var(--surface) 80%,var(--bg));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--border) 55%,transparent);color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;letter-spacing:-.04em;white-space:nowrap}.s-thread-participant-observer{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex:0 0 auto;margin-left:var(--space-xs);border:1px dashed color-mix(in srgb,var(--border) 60%,transparent);border-radius:50%;background:transparent;color:var(--dim)}.s-thread-participant-observer svg{opacity:.85}.s-thread-participant--button{appearance:none}.s-thread-participant-card{position:absolute;z-index:80;top:calc(100% + 8px);right:-8px;display:grid;width:max-content;min-width:168px;max-width:240px;gap:2px;padding:var(--space-sm) var(--space-md);border:1px solid color-mix(in srgb,var(--border) 72%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 96%,var(--bg));box-shadow:0 10px 26px color-mix(in srgb,var(--bg) 42%,transparent);color:var(--muted);font-size:var(--text-xs);line-height:1.35;text-align:left;pointer-events:none;opacity:0;visibility:hidden;transform:translateY(-3px);transition:opacity .12s ease,transform .16s cubic-bezier(.22,1,.36,1),visibility 0s linear .16s}.s-thread-participant-card strong{overflow:hidden;color:var(--ink);font-size:var(--text-sm);font-weight:650;text-overflow:ellipsis;white-space:nowrap}.s-thread-participant-card-action{margin-top:var(--space-2xs);color:var(--accent);font-weight:600}.s-thread-participant:hover .s-thread-participant-card,.s-thread-participant:focus-visible .s-thread-participant-card,.s-thread-participant-observer:hover .s-thread-participant-card,.s-thread-participant-observer:focus-visible .s-thread-participant-card{opacity:1;visibility:visible;transform:translateY(0);transition-delay:0s}.s-thread-participant:focus-visible{z-index:40;outline:none;filter:drop-shadow(0 4px 8px color-mix(in srgb,var(--bg) 70%,transparent));transform:translateY(-3px)}.s-thread-participant:focus-visible .s-thread-participant-face{-webkit-mask-image:none;mask-image:none;background:color-mix(in srgb,var(--ink) 14%,var(--surface));box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 72%,transparent)}.s-thread-participant-observer{position:relative}.s-thread-participant-observer:hover,.s-thread-participant-observer:focus-visible{border-color:color-mix(in srgb,var(--accent) 54%,var(--border));color:var(--ink);outline:none}.s-thread-participant-observer .s-thread-participant-card{right:0}.s-thread-participant--compact-overflow,.s-thread-participant--narrow-overflow{display:none}.s-thread-participant-roster{position:absolute;z-index:90;top:calc(100% + 10px);right:0;display:grid;width:min(290px,calc(100vw - 32px));gap:var(--space-sm);padding:var(--space-md);border:1px solid color-mix(in srgb,var(--border) 74%,transparent);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 97%,var(--bg));box-shadow:0 16px 38px color-mix(in srgb,var(--bg) 48%,transparent)}.s-thread-participant-roster-title{padding:0 var(--space-xs);color:var(--ink);font-size:var(--text-sm)}.s-thread-participant-roster-list{display:grid;max-height:min(360px,55vh);overflow-y:auto}.s-thread-participant-roster-row{display:flex;align-items:center;width:100%;min-width:0;gap:var(--space-sm);padding:var(--space-sm);border:0;border-radius:var(--radius-md);background:transparent;color:var(--ink);font:inherit;text-align:left}button.s-thread-participant-roster-row{cursor:pointer}button.s-thread-participant-roster-row:hover,button.s-thread-participant-roster-row:focus-visible{background:color-mix(in srgb,var(--accent) 9%,transparent);outline:none}.s-thread-participant-roster-row>span:last-child{display:grid;min-width:0}.s-thread-participant-roster-row strong,.s-thread-participant-roster-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-thread-participant-roster-row small{color:var(--muted);font-size:var(--text-xs)}.s-thread-participant-roster-avatar{width:24px;height:24px;flex:0 0 auto}@media(prefers-reduced-motion:reduce){.s-thread-participant-card{transition:none}.s-thread-participant:focus-visible{transform:none}}.s-thread-add-participant-trigger{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;flex-shrink:0;border:1px solid color-mix(in srgb,var(--border) 48%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--bg) 70%,transparent);color:var(--muted);cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.s-thread-add-participant-trigger:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--border));background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--ink)}.s-thread-add-participant-trigger.is-on{border-color:color-mix(in oklab,var(--ink) 45%,transparent);color:var(--ink)}.s-thread-identity-row{display:flex;align-items:center;gap:var(--space-xs);min-height:30px;padding:var(--space-2xs) var(--space-3xl);border-bottom:1px solid color-mix(in srgb,var(--border) 46%,transparent);background:color-mix(in srgb,var(--surface) 72%,var(--bg));overflow-x:auto;flex-shrink:0}.s-thread-identity-chip{display:inline-flex;align-items:center;gap:var(--space-xs);max-width:240px;min-height:20px;padding:0 var(--space-sm);border:1px solid color-mix(in srgb,var(--border) 70%,transparent);border-radius:var(--radius-md);background:var(--bg);color:var(--muted);font:inherit;font-size:var(--text-xs);white-space:nowrap}button.s-thread-identity-chip{cursor:pointer}button.s-thread-identity-chip:hover{border-color:color-mix(in srgb,var(--accent) 32%,var(--border));color:var(--ink)}.s-thread-identity-chip span{color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-md);text-transform:uppercase}.s-thread-identity-chip strong{min-width:0;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;color:var(--muted)}.s-thread-add-participant{margin:var(--space-md) var(--space-3xl) 0;padding:var(--space-lg) var(--space-xl);border:1px solid color-mix(in srgb,var(--accent) 18%,var(--border));border-radius:var(--radius-lg);background:color-mix(in srgb,var(--accent) 5%,var(--surface));display:flex;flex-direction:column;gap:var(--space-md)}.s-thread-add-participant-row{display:flex;align-items:flex-end;gap:var(--space-lg);flex-wrap:wrap}.s-thread-add-participant-field{display:flex;flex-direction:column;gap:var(--space-xs);flex:1;min-width:220px}.s-thread-add-participant-label{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--dim)}.s-thread-add-participant-select{width:100%;min-height:36px;border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--border) 86%,var(--surface));background:var(--bg);color:var(--ink);font:inherit;padding:0 var(--space-md)}.s-thread-add-participant-select:focus-visible{outline:none;border-color:color-mix(in srgb,var(--accent) 40%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.s-thread-add-participant-actions{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.s-thread-add-participant-error{font-size:var(--text-sm);color:var(--red)}.s-thread-pinned-ask{margin:var(--space-lg) var(--space-3xl) 0;padding:var(--space-lg) var(--space-xl);display:flex;align-items:flex-start;flex-wrap:wrap;gap:var(--space-lg);border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:0 2px 6px var(--shadow-soft)}.s-thread-pinned-ask-coin{flex:0 0 auto;display:inline-grid;place-items:center;margin-top:1px}.s-thread-pinned-ask-body{flex:1 1 260px;min-width:0}.s-thread-pinned-ask-eyebrow{display:block;font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-normal);letter-spacing:var(--tracking-xs);color:var(--dim)}.s-thread-pinned-ask-text{font-size:var(--text-lg);line-height:var(--leading-snug);color:var(--ink);margin:var(--space-2xs) 0 0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}.s-thread-pinned-ask-context{font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--muted);margin:var(--space-2xs) 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-thread-pinned-ask-actions{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;margin-left:auto}.s-thread-pinned-ask-btn{display:inline-flex;align-items:center;gap:var(--space-xs);font-weight:600;letter-spacing:var(--tracking-xs)}.s-thread-approval-gate{margin:var(--space-lg) var(--space-3xl) 0;padding:var(--space-xl) var(--space-2xl);border:1px solid color-mix(in srgb,var(--amber) 40%,var(--border));border-radius:var(--radius-xl);background:color-mix(in srgb,var(--surface) 95%,transparent);box-shadow:0 0 16px color-mix(in srgb,var(--amber) 12%,transparent);display:flex;flex-direction:column;gap:var(--space-md)}.s-thread-approval-gate-head{display:flex;flex-direction:column;gap:var(--space-2xs)}.s-thread-approval-gate-title-wrap{display:flex;align-items:center;gap:var(--space-xs)}.s-thread-approval-gate-title{margin:0;font-size:var(--text-2xl);font-weight:600;color:var(--ink)}.s-thread-approval-gate-desc{margin:0;font-size:var(--text-md);color:var(--muted)}.s-thread-approval-gate-command,.s-thread-approval-gate-diff{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg) 85%,transparent);border:1px solid color-mix(in srgb,var(--border) 40%,transparent)}.s-thread-approval-gate-code,.s-thread-approval-gate-diff-pre code{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink);white-space:pre-wrap;word-break:break-all}.s-thread-approval-gate-actions{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;padding-top:var(--space-xs)}@keyframes s-thread-thinking-strip{0%{background-position:200% 0}to{background-position:-200% 0}}.s-thread-feed{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-3xl) var(--space-3xl) var(--space-2xl);align-items:stretch;background:linear-gradient(var(--bg) 2%,transparent 8%),linear-gradient(transparent 92%,var(--bg) 98%);background-attachment:local;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--border) 60%,transparent) transparent}.s-thread-feed::-webkit-scrollbar{width:4px}.s-thread-feed::-webkit-scrollbar-track{background:transparent}.s-thread-feed::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--border) 60%,transparent);border-radius:var(--radius-xs)}.s-thread-history-control{align-self:stretch;display:flex;justify-content:center;padding:0 0 var(--space-lg)}.s-thread-history-button{display:inline-flex;align-items:center;justify-content:center;min-height:30px;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border:1px solid color-mix(in srgb,var(--border) 82%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 82%,var(--bg));color:var(--muted);font:inherit;font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:background .16s ease-out,border-color .16s ease-out,color .16s ease-out}.s-thread-history-button:hover:not(:disabled){border-color:color-mix(in srgb,var(--accent) 30%,var(--border));background:color-mix(in srgb,var(--accent) 7%,var(--surface));color:var(--ink)}.s-thread-history-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.s-thread-history-button:disabled{cursor:default;opacity:.68}.s-thread-new-messages{position:sticky;bottom:var(--space-sm);z-index:1;align-self:center;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);min-height:30px;margin:calc(var(--space-sm) * -1) 0 0;padding:var(--space-sm) var(--space-lg);border:1px solid color-mix(in srgb,var(--accent) 48%,var(--border));border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 94%,var(--accent));color:var(--accent);font:inherit;font-size:var(--text-xs);font-weight:600;cursor:pointer;box-shadow:0 var(--space-sm) var(--space-xl) color-mix(in srgb,var(--bg) 42%,transparent);transition:background .16s ease-out,border-color .16s ease-out,color .16s ease-out}.s-thread-new-messages:hover{border-color:var(--accent);background:color-mix(in srgb,var(--surface) 86%,var(--accent));color:var(--ink)}.s-thread-new-messages:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.s-thread-history-spinner{width:11px;height:11px;border:1.5px solid color-mix(in srgb,currentColor 28%,transparent);border-top-color:currentColor;border-radius:50%;animation:s-thread-history-spin .7s linear infinite}@keyframes s-thread-history-spin{to{transform:rotate(360deg)}}.s-thread-feed-block{display:flex;flex-direction:column;gap:var(--space-xs);max-width:min(88%,760px)}.s-thread-feed-block--you{align-self:flex-end}.s-thread-msg-permalink{opacity:0;transition:opacity .15s;cursor:pointer;color:var(--muted);background:transparent;border:none;width:22px;height:22px;padding:0;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center}.s-thread-msg-actions{display:contents}.s-thread-msg-card:hover .s-thread-msg-permalink{opacity:1}.s-thread-msg-permalink:focus-visible{opacity:1;outline:2px solid color-mix(in srgb,var(--accent) 50%,transparent);outline-offset:1px}.s-thread-msg-permalink:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 7%,transparent)}@media(hover:none){.s-thread-msg-permalink{opacity:.72}}.s-thread-compose-reply{display:grid;grid-template-columns:auto auto auto minmax(0,1fr) auto;align-items:center;gap:var(--space-xs);min-width:0;color:var(--muted);font-size:var(--text-xs);line-height:var(--leading-tight)}.s-thread-compose-reply-icon{flex:none;color:var(--accent)}.s-thread-compose-reply-label{color:var(--dim)}.s-thread-compose-reply-actor{color:var(--ink);font-family:var(--font-mono);font-weight:600;white-space:nowrap}.s-thread-compose-reply-preview{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.s-thread-compose-reply-cancel{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin:calc(var(--space-2xs) * -1);padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--dim);cursor:pointer}.s-thread-compose-reply-cancel:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 7%,transparent)}.s-thread-compose-reply-cancel:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 50%,transparent);outline-offset:1px}.s-thread-msg-dismiss{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;color:color-mix(in srgb,var(--amber) 78%,var(--muted));background:color-mix(in srgb,var(--amber) 6%,transparent);border:1px solid color-mix(in srgb,var(--amber) 28%,transparent);border-radius:var(--radius-md);cursor:pointer}.s-thread-msg-dismiss:hover{color:var(--ink);background:color-mix(in srgb,var(--amber) 12%,transparent);border-color:color-mix(in srgb,var(--amber) 45%,transparent)}.s-thread-feed-block--full-width{max-width:100%;align-self:stretch}.s-thread-feed-block--full-width.s-thread-feed-block--you{align-items:flex-end}.s-thread-feed-block--full-width.s-thread-feed-block--you .s-thread-day-divider{align-self:stretch}.s-thread-feed-block--full-width.s-thread-feed-block--you .s-thread-msg{max-width:min(88%,760px)}.s-thread-day-divider{display:flex;align-items:center;gap:var(--space-xl);margin:var(--space-lg) 0}.s-thread-day-line{flex:1;height:1px;background:color-mix(in srgb,var(--border) 40%,transparent)}.s-thread-day-label{flex-shrink:0;font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--muted)}.s-thread-msg{max-width:min(100%,760px)}.s-thread-msg-card{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);border-radius:var(--radius-2xl);border:1px solid color-mix(in srgb,var(--border) 80%,var(--surface));background:var(--surface)}.s-thread-msg-card-content{min-width:0;display:flex;flex-direction:column;gap:var(--space-sm)}.s-thread-msg-card--avatar-row{flex-direction:row;gap:var(--space-lg);align-items:flex-start}.s-thread-msg-card--avatar-row .s-thread-msg-card-content{flex:1}.s-thread-msg-avatar{--size: 28px;display:inline-flex;align-items:center;justify-content:center;width:var(--size);height:var(--size);flex-shrink:0;margin-top:0;border-radius:50%;overflow:hidden}.s-thread-msg-avatar--working{--size: 32px}.s-thread-msg-avatar--nav{--size: 28px;display:inline-flex;width:var(--size);height:var(--size);align-items:center;justify-content:center;flex-shrink:0;border:none;background:transparent;padding:0;cursor:pointer;border-radius:50%;transition:transform .15s cubic-bezier(.2,0,0,1),box-shadow .15s ease}.s-thread-msg-avatar--nav:hover{transform:scale(1.05);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 28%,transparent)}.s-thread-msg-avatar--nav:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.s-thread-msg--you .s-thread-msg-card{border-color:color-mix(in srgb,var(--accent) 18%,var(--border));background:color-mix(in srgb,var(--accent) 7%,var(--surface))}.s-thread-msg-header{display:flex;align-items:flex-start;gap:var(--space-md)}.s-thread-msg-meta{display:flex;align-items:center;flex:1;flex-wrap:wrap;min-width:0;gap:var(--space-sm)}.s-thread-msg-actor{min-width:0;font-size:var(--text-md);font-weight:600;letter-spacing:0;color:var(--ink)}button.s-thread-msg-actor{background:transparent;border:none;padding:0;cursor:pointer;font-family:inherit;text-align:left;border-radius:var(--radius-sm);transition:color .1s ease,text-decoration-color .1s ease;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}button.s-thread-msg-actor:hover{color:var(--accent);text-decoration-color:color-mix(in srgb,var(--accent) 60%,transparent)}button.s-thread-msg-actor:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.s-thread-msg-handle{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:var(--text-xs);color:var(--dim);font-family:var(--font-mono)}.s-thread-msg-kind{display:inline-flex;align-items:center;min-height:20px;padding:0 var(--space-sm);border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--border) 70%,var(--surface));background:var(--bg);font-size:var(--text-xs);font-weight:500;letter-spacing:var(--tracking-xs);color:var(--dim);font-family:var(--font-mono)}.s-thread-msg-time{flex-shrink:0;font-size:var(--text-xs);font-family:var(--font-sans);color:var(--dim);opacity:.85;transition:opacity .12s ease;margin-left:auto}.s-thread-msg-card:hover .s-thread-msg-time{opacity:1}.s-thread-msg-body{padding:0;border:none;background:none;font-size:var(--text-md);line-height:var(--leading-normal);color:var(--ink);letter-spacing:0;white-space:pre-wrap;word-break:break-word;cursor:text;user-select:text;-webkit-user-select:text}.s-thread-msg-body .s-inline-code{border-color:color-mix(in srgb,var(--border) 62%,transparent);background:color-mix(in srgb,var(--ink) 5%,transparent);color:color-mix(in srgb,var(--ink) 82%,var(--muted))}.s-thread-reply-ctx{display:inline-flex;align-items:center;gap:6px;max-width:100%;margin:0 0 5px;padding:0;border:none;background:none;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--dim);cursor:pointer}.s-thread-reply-ctx svg{flex:none;color:var(--dim);transition:color .12s ease}.s-thread-reply-ctx-label{flex:none;text-transform:uppercase;letter-spacing:var(--tracking-xs);font-weight:700}.s-thread-reply-ctx-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);transition:color .12s ease}.s-thread-reply-ctx-from,.s-thread-reply-ctx-status{flex:none;color:var(--dim)}.s-thread-reply-ctx:hover .s-thread-reply-ctx-title{color:var(--accent);text-decoration:underline}.s-thread-reply-ctx:hover svg{color:var(--accent)}.s-thread-reply-ctx:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px;border-radius:var(--radius-sm)}.s-thread-fanout{align-self:stretch}.s-thread-fanout-anchor{display:block;height:0;scroll-margin-block:var(--space-2xl)}.s-thread-fanout-summary{display:inline-flex;align-items:baseline;gap:var(--space-sm);padding:var(--space-2xs) var(--space-sm);margin-left:calc(var(--space-sm) * -1);border:none;border-radius:var(--radius-sm);background:none;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-xs);cursor:pointer;transition:color .12s ease,background .12s ease}.s-thread-fanout-summary:hover{background:color-mix(in srgb,var(--ink) 4%,transparent);color:var(--muted)}.s-thread-fanout-summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.s-thread-fanout-caret{flex:none;width:8px}.s-thread-fanout-label{font-weight:650;text-transform:uppercase}.s-thread-fanout-time{color:color-mix(in srgb,var(--dim) 78%,transparent)}.s-thread-fanout-detail{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm) 0 var(--space-md) var(--space-lg);border-left:1px solid color-mix(in srgb,var(--border) 55%,transparent)}.s-thread-fanout-recipients{display:flex;flex-wrap:wrap;gap:var(--space-2xs) var(--space-sm);margin:0;padding:0;list-style:none}.s-thread-fanout-recipient{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--muted)}.s-thread-fanout-body{max-width:68ch;font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--muted);white-space:pre-wrap;word-break:break-word}.s-thread-msg--flash .s-thread-msg-card,.s-thread-fanout--flash .s-thread-fanout-summary{animation:s-thread-msg-flash 1.2s ease}@keyframes s-thread-msg-flash{0%,35%{background:color-mix(in srgb,var(--accent) 12%,transparent)}to{background:transparent}}.s-thread-msg--tool .s-thread-msg-card{border-style:dashed;border-color:color-mix(in srgb,var(--border) 60%,transparent);background:var(--bg)}.s-thread-msg--tool .s-thread-msg-body:before{content:"›_";font-family:var(--font-mono);color:var(--dim);margin-right:var(--space-xs)}.s-thread-msg[data-class=status] .s-thread-msg-card,.s-thread-msg[data-class="scout.dispatch"] .s-thread-msg-card{border-color:color-mix(in srgb,var(--accent) 12%,var(--border))}.s-thread-feed-block:has(>.s-thread-msg[data-class=system]),.s-thread-feed-block:has(>.s-thread-msg[data-class=status]){max-width:min(72%,560px);align-self:center}.s-thread-msg[data-class=system] .s-thread-msg-card,.s-thread-msg[data-class=status] .s-thread-msg-card{gap:var(--space-3xs);padding:var(--space-xs) var(--space-lg);border-radius:var(--radius-lg);border-color:color-mix(in srgb,var(--border) 60%,transparent);background:color-mix(in srgb,var(--bg) 80%,transparent)}.s-thread-msg[data-class=system] .s-thread-msg-avatar,.s-thread-msg[data-class=status] .s-thread-msg-avatar{--size: 18px;margin-top:1px;opacity:.55}.s-thread-presence-line-avatar{display:inline-flex;width:20px;height:20px}.s-thread-msg[data-class=system] .s-thread-msg-actor,.s-thread-msg[data-class=status] .s-thread-msg-actor{font-size:var(--text-sm);font-weight:500;color:var(--dim);text-transform:uppercase;letter-spacing:var(--tracking-md)}.s-thread-msg[data-class=system] .s-thread-msg-handle,.s-thread-msg[data-class=status] .s-thread-msg-handle{display:none}.s-thread-msg[data-class=system] .s-thread-msg-kind,.s-thread-msg[data-class=status] .s-thread-msg-kind{min-height:16px;padding:0 var(--space-xs);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase;border-color:color-mix(in srgb,var(--border) 50%,transparent);color:var(--dim)}.s-thread-msg[data-class=system] .s-thread-msg-time,.s-thread-msg[data-class=status] .s-thread-msg-time{font-size:var(--text-2xs)}.s-thread-msg[data-class=system] .s-thread-msg-body,.s-thread-msg[data-class=status] .s-thread-msg-body{font-size:var(--text-sm);line-height:var(--leading-snug);color:var(--muted)}.s-thread-failure-notice{display:grid;grid-template-columns:16px minmax(0,1fr) max-content;align-items:start;gap:var(--space-sm);width:100%;padding:var(--space-xs) var(--space-2xs)}.s-thread-failure-notice-mark{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-top:1px;border:1px solid color-mix(in srgb,var(--red) 44%,transparent);border-radius:50%;color:color-mix(in srgb,var(--red) 80%,var(--ink));font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700;line-height:1}.s-thread-failure-notice-content{min-width:0}.s-thread-failure-notice-content p{margin:0;color:var(--muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.s-thread-failure-notice-content strong{color:var(--ink);font-weight:600}.s-thread-failure-notice-time{padding-top:1px;color:var(--dim);font-size:var(--text-2xs);white-space:nowrap}.s-thread-failure-notice-details{margin-top:var(--space-2xs);color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs)}.s-thread-failure-notice-details summary{width:max-content;max-width:100%;cursor:pointer;-webkit-user-select:none;user-select:none}.s-thread-failure-notice-details summary:hover{color:var(--muted)}.s-thread-failure-notice-details summary:focus-visible{border-radius:var(--radius-sm);outline:2px solid var(--accent);outline-offset:2px}.s-thread-failure-notice-details pre{max-width:100%;margin:var(--space-sm) 0 0;padding:var(--space-sm) var(--space-md);overflow-x:auto;border:1px solid color-mix(in srgb,var(--border) 56%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--bg) 82%,transparent);color:var(--dim);font:inherit;line-height:var(--leading-normal);white-space:pre-wrap;overflow-wrap:anywhere}.s-thread-failure-notice-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm)}.s-thread-failure-notice-action{min-height:24px;padding:2px var(--space-sm);border:1px solid color-mix(in srgb,var(--border) 72%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 84%,transparent);color:var(--muted);font:600 var(--text-2xs)/var(--leading-normal) var(--font-sans);cursor:pointer}.s-thread-failure-notice-action--primary{border-color:color-mix(in srgb,var(--accent) 34%,var(--border));background:color-mix(in srgb,var(--accent) 9%,transparent);color:color-mix(in srgb,var(--accent) 76%,var(--ink))}.s-thread-failure-notice-action--clear{min-height:24px;padding:0;border:0;background:transparent;color:var(--dim)}.s-thread-failure-notice-action:hover:not(:disabled){color:var(--ink)}.s-thread-failure-notice-action:disabled{cursor:not-allowed;opacity:.44}.s-thread-failure-notice-action:focus-visible{border-radius:var(--radius-sm);outline:2px solid var(--accent);outline-offset:2px}@media(max-width:700px){.s-thread-failure-notice{grid-template-columns:16px minmax(0,1fr)}.s-thread-failure-notice-action{min-height:44px;padding-inline:var(--space-md)}.s-thread-failure-notice-action--clear{padding-inline:var(--space-sm)}.s-thread-failure-notice-time{grid-column:2}}.s-thread-msg-working-card{border-color:color-mix(in srgb,var(--green) 12%,var(--border));background:color-mix(in srgb,var(--green) 2%,var(--surface))}.s-thread-msg-working-card.s-thread-msg-card--avatar-row{gap:var(--space-4xl)}.s-thread-msg-avatar--working{--sprite-lane: 16px;--sprite-stride: 4.5s;--sprite-hop-every: 150s;animation:s-thread-sprite-walk var(--sprite-stride) ease-in-out infinite alternate}.s-thread-msg-avatar--working>span{animation:s-thread-sprite-step calc(var(--sprite-stride) / 5) ease-in-out infinite}.s-thread-msg-avatar--working svg{transform-origin:50% 100%;animation:s-thread-sprite-hop var(--sprite-hop-every) linear infinite}@keyframes s-thread-sprite-walk{0%{transform:translateZ(0)}to{transform:translate3d(var(--sprite-lane),0,0)}}@keyframes s-thread-sprite-step{0%,to{transform:translateZ(0)}50%{transform:translate3d(0,-1.5px,0)}}@keyframes s-thread-sprite-hop{0%,99%{transform:translateZ(0) scaleY(1)}99.2%{transform:translateZ(0) scaleY(.9)}99.45%{transform:translate3d(0,-7px,0) scaleY(1.05)}99.7%{transform:translateZ(0) scaleY(.94)}to{transform:translateZ(0) scaleY(1)}}@media(prefers-reduced-motion:reduce){.s-thread-msg-avatar--working,.s-thread-msg-avatar--working>span,.s-thread-msg-avatar--working svg{animation:none}}.s-thread-msg-working-body{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-sm);padding:0;border:none;background:none}.s-thread-msg-working-copy{display:-webkit-box;color:var(--ink);font-size:var(--text-md);line-height:var(--leading-snug);overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.s-thread-turn-snapshot{display:flex;align-items:flex-start;gap:var(--space-sm);min-width:0}.s-thread-turn-snapshot-pulse{position:relative;width:9px;height:9px;flex:0 0 auto;margin-top:16px;border-radius:var(--radius-pill);background:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 12%,transparent)}.s-thread-turn-snapshot-pulse:after{content:"";position:absolute;inset:-5px;border-radius:inherit;border:1px solid color-mix(in srgb,var(--green) 38%,transparent);animation:s-thread-turn-pulse 1.8s ease-out infinite}.s-thread-turn-snapshot-main{display:flex;min-width:0;flex:1;flex-direction:column;gap:var(--space-3xs)}.s-thread-turn-snapshot-label{color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-md);text-transform:uppercase}.s-thread-turn-snapshot-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:var(--space-3xs) 0 0;padding:var(--space-sm) 0 0;border-top:1px solid color-mix(in srgb,var(--green) 12%,transparent)}.s-thread-turn-snapshot-stat{min-width:0;padding-right:var(--space-md)}.s-thread-turn-snapshot-stat+.s-thread-turn-snapshot-stat{padding-left:var(--space-md);border-left:1px solid color-mix(in srgb,var(--border) 54%,transparent)}.s-thread-turn-snapshot-stat dt{margin:0 0 var(--space-3xs);color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-md);text-transform:uppercase}.s-thread-turn-snapshot-stat dd{margin:0;color:var(--muted);font-size:var(--text-sm);font-weight:600;line-height:var(--leading-tight);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-thread-working-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);padding-top:var(--space-sm);border-top:1px solid color-mix(in srgb,var(--border) 46%,transparent)}.s-thread-working-actions--compact{padding-top:var(--space-xs)}.s-thread-working-action{min-height:30px;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:0 var(--space-md);border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 84%,var(--bg));color:var(--muted);font:inherit;font-size:var(--text-xs);font-weight:650;cursor:pointer;transition:border-color .14s ease-out,background .14s ease-out,color .14s ease-out}.s-thread-working-action--primary{border-color:color-mix(in srgb,var(--accent) 30%,var(--border));background:color-mix(in srgb,var(--accent) 9%,var(--surface));color:color-mix(in srgb,var(--accent) 72%,var(--ink))}.s-thread-working-action:hover{border-color:color-mix(in srgb,var(--accent) 38%,var(--border));background:color-mix(in srgb,var(--accent) 8%,var(--surface));color:var(--ink)}.s-thread-working-action:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.s-thread-typing-indicator{display:inline-flex;gap:var(--space-3xs);align-items:center}.s-thread-typing-dot{width:4px;height:4px;border-radius:50%;background:var(--green);animation:s-thread-typing-bounce var(--motion-duration-typing) ease-in-out infinite}.s-thread-typing-dot:nth-child(2){animation-delay:.15s}.s-thread-typing-dot:nth-child(3){animation-delay:.3s}@keyframes s-thread-typing-bounce{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@keyframes s-thread-turn-pulse{0%{opacity:.5;transform:scale(.72)}to{opacity:0;transform:scale(1.35)}}.s-thread-presence-line{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-3xl);border-top:1px solid color-mix(in srgb,var(--border) 40%,transparent);flex-shrink:0}.s-thread-presence-line-avatars{display:flex;align-items:center}.s-thread-presence-line-avatars .s-ops-avatar{--size: 20px;margin-left:-4px;border:2px solid var(--bg)}.s-thread-presence-line-avatars .s-ops-avatar:first-child{margin-left:0}.s-thread-presence-line-label{min-width:0;flex:0 1 auto;font-size:var(--text-sm);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-thread-presence-strip{--presence-trail-start: 46%;--presence-trail-duration: 2.4s;flex:1;height:2px;border-radius:1px;background:linear-gradient(90deg,transparent 0%,transparent var(--presence-trail-start),color-mix(in srgb,var(--green) 12%,transparent) calc(var(--presence-trail-start) + 4%),color-mix(in srgb,var(--green) 44%,transparent) 53%,var(--green) 58%,color-mix(in srgb,var(--green) 72%,var(--ink)) 59%,transparent 61%,transparent 100%);background-size:200% 100%;animation:s-thread-thinking-strip var(--presence-trail-duration) ease-in-out infinite}.s-thread-presence-strip--sustained{--presence-trail-start: 32%;--presence-trail-duration: 3.2s}.s-thread-presence-strip--long{--presence-trail-start: 14%;--presence-trail-duration: 4.2s}@media(prefers-reduced-motion:reduce){.s-thread-presence-strip{background:color-mix(in srgb,var(--green) 58%,transparent);background-size:auto;animation:none;opacity:.8}}.s-thread-dispatch{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-sm);margin-top:var(--space-3xs)}.s-thread-dispatch-tile{display:flex;flex-direction:column;gap:var(--space-2xs);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-xl);border:1px solid color-mix(in srgb,var(--border) 92%,var(--surface));background:var(--bg);cursor:pointer;transition:border-color .12s ease,background .12s ease}.s-thread-dispatch-tile:hover{border-color:color-mix(in srgb,var(--accent) 18%,var(--border));background:color-mix(in srgb,var(--accent) 4%,var(--surface))}.s-thread-dispatch-tile-id{font-size:var(--text-md);font-weight:600;color:var(--ink);font-family:var(--font-mono)}.s-thread-dispatch-tile-state{font-size:var(--text-xs);color:var(--muted)}.s-thread-dispatch-tile-meta{font-size:var(--text-xs);color:var(--dim)}.s-thread-compose{box-sizing:border-box;width:100%;min-width:0;padding:var(--space-md) var(--space-3xl) var(--space-2xl);border-top:1px solid color-mix(in srgb,var(--border) 40%,transparent);background:transparent;flex-shrink:0;margin-top:auto}.s-thread-compose-shell{position:relative;box-sizing:border-box;width:100%;max-width:100%;min-width:0;border:1px solid color-mix(in srgb,var(--border) 60%,var(--surface));border-radius:var(--radius-xl);background:var(--surface);transition:border-color .15s ease}.s-thread-compose-shell:focus-within{border-color:color-mix(in srgb,var(--border) 100%,transparent)}.s-thread-compose-row{display:flex;align-items:flex-end;gap:var(--space-sm);min-width:0;padding:var(--space-xs) var(--space-sm) var(--space-xs) var(--space-xs)}.s-thread-compose-voice-status{display:flex;align-items:center;gap:var(--space-xs);padding:0 var(--space-md) var(--space-sm);font-size:var(--text-xs);color:var(--dim);line-height:var(--leading-snug)}.s-thread-compose-voice-status--recording{color:var(--green)}.s-thread-compose-voice-status--processing{color:var(--muted)}.s-thread-compose-voice-status--error{color:var(--red)}.s-thread-compose-mode-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);padding:var(--space-md) var(--space-lg) 0}.s-thread-compose-mode{flex-shrink:0;display:flex;gap:0;padding:var(--space-3xs);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg) 82%,var(--surface))}.s-thread-compose-mode-btn{padding:var(--space-2xs) var(--space-lg);font-size:var(--text-sm);font-weight:500;border:none;border-radius:var(--radius-md);background:transparent;color:var(--muted);cursor:pointer;transition:background .12s,color .12s}.s-thread-compose-mode-btn[aria-pressed=true]{background:var(--surface);color:var(--ink);font-weight:600}.s-thread-compose-mode-detail{font-size:var(--text-xs);color:var(--dim);line-height:var(--leading-snug)}.s-thread-compose-input{display:block;flex:1;min-width:0;min-height:34px;max-height:160px;border:none;border-radius:0;background:transparent;padding:var(--space-sm) var(--space-2xs) var(--space-sm) var(--space-md);font-size:var(--text-lg);font-family:var(--font-sans);line-height:var(--leading-normal);color:var(--ink);resize:none;outline:none;cursor:text;user-select:text;-webkit-user-select:text}.s-thread-compose-input::placeholder{color:var(--dim)}.s-thread-compose-input:focus{box-shadow:none}.s-thread-compose-send{width:34px;height:34px;border-radius:50%;border:none;background:var(--ink);color:var(--bg);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;align-self:flex-end;transition:opacity .12s ease,transform .12s ease}.s-thread-compose-send:not(:disabled):hover{transform:scale(1.05)}.s-thread-compose-send:disabled{opacity:.25;cursor:default}.s-thread-compose-send--stop{background:var(--red)}.s-thread-compose-suggest{position:absolute;left:0;right:0;bottom:calc(100% + 6px);max-height:260px;overflow-y:auto;padding:var(--space-2xs);background:var(--surface);border:1px solid color-mix(in srgb,var(--border) 80%,transparent);border-radius:var(--radius-xl);box-shadow:0 12px 32px color-mix(in srgb,var(--ink) 22%,transparent);z-index:20}.s-thread-compose-suggest-label{padding:var(--space-xs) var(--space-md) var(--space-2xs);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-lg);text-transform:uppercase;color:var(--dim)}.s-thread-compose-suggest-item{display:flex;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-xs) var(--space-md);border:none;border-radius:var(--radius-lg);background:transparent;color:var(--ink);text-align:left;cursor:pointer;font-family:inherit}.s-thread-compose-suggest-item:hover,.s-thread-compose-suggest-item--active{background:color-mix(in srgb,var(--accent) 10%,transparent)}.s-thread-compose-suggest-cmd{font-family:var(--font-mono);font-size:var(--text-md);color:var(--ink)}.s-thread-compose-suggest-desc{flex:1;min-width:0;font-size:var(--text-sm);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-thread-compose-suggest-avatar{flex-shrink:0}.s-thread-sidebar{width:320px;flex-shrink:0;display:flex;flex-direction:column;gap:0;border-left:1px solid var(--border);background:var(--surface);overflow-y:auto}.s-thread-sidebar-section{padding:var(--space-2xl);border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent)}.s-thread-sidebar-section:last-child{border-bottom:none}.s-thread-sidebar-label{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-lg);text-transform:uppercase;color:var(--dim);margin-bottom:var(--space-lg)}.s-thread-sidebar-participant{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-xs) 0;width:100%;border:0;background:transparent;color:inherit;font:inherit;text-align:left;border-radius:var(--radius-lg)}button.s-thread-sidebar-participant{cursor:pointer}button.s-thread-sidebar-participant:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}button.s-thread-sidebar-participant:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 72%,transparent);outline-offset:2px}.s-thread-sidebar-participant-info{flex:1;min-width:0}.s-thread-sidebar-participant-name{display:block;font-size:var(--text-md);font-weight:600;color:var(--ink)}.s-thread-sidebar-participant-handle{display:block;font-size:var(--text-xs);color:var(--dim);font-family:var(--font-mono);margin-top:1px}.s-thread-sidebar-participant-detail{font-size:var(--text-xs);color:var(--dim)}.s-thread-sidebar-participant-activity{display:flex;align-items:center;gap:var(--space-2xs);flex-shrink:0}.s-thread-sidebar-activity-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.s-thread-sidebar-activity-dot--pulse{animation:s-thread-sidebar-pulse 1.5s ease-in-out infinite}@keyframes s-thread-sidebar-pulse{0%,to{opacity:1}50%{opacity:.3}}.s-thread-sidebar-activity-label{font-size:var(--text-xs);color:var(--muted);font-family:var(--font-mono);letter-spacing:var(--tracking-xs)}.s-thread-mini-mesh{display:flex;align-items:center;justify-content:center;padding:var(--space-sm) 0}.s-thread-mini-mesh svg{width:100%;max-width:260px;height:auto}.s-thread-mini-mesh-edge{stroke:color-mix(in srgb,var(--border) 80%,transparent);stroke-width:1;fill:none}.s-thread-mini-mesh-node{fill:var(--surface);stroke:var(--border);stroke-width:1}.s-thread-mini-mesh-node--center{fill:color-mix(in srgb,var(--accent) 10%,var(--surface));stroke:var(--accent)}.s-thread-mini-mesh-label{font-family:var(--font-mono);font-size:var(--text-3xs);letter-spacing:var(--tracking-md);text-transform:uppercase;fill:var(--dim);text-anchor:middle;dominant-baseline:central}.s-thread-mini-mesh-label--center{fill:var(--accent);font-weight:600}.s-thread-empty{align-self:center;width:min(100%,540px);padding:var(--space-6xl) var(--space-4xl);border:1px dashed color-mix(in srgb,var(--border) 84%,var(--surface));border-radius:var(--radius-2xl);background:var(--surface);text-align:center}.s-thread-empty p:first-child{font-size:var(--text-xl);font-weight:600;color:var(--muted)}.s-thread-empty p:last-child{font-size:var(--text-md);color:var(--dim);margin-top:var(--space-2xs)}.s-thread-empty-glyph{font-size:var(--text-6xl);font-weight:100;color:color-mix(in srgb,var(--border) 90%,var(--muted));line-height:var(--leading-none);margin-bottom:var(--space-lg);-webkit-user-select:none;user-select:none}.s-thread-empty-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-xs);margin-top:var(--space-lg)}.s-thread-empty-chip{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--dim);background:color-mix(in srgb,var(--border) 30%,transparent);border:1px solid color-mix(in srgb,var(--border) 50%,transparent);border-radius:var(--radius-sm);padding:var(--space-3xs) var(--space-sm);letter-spacing:var(--tracking-sm)}.s-thread-motion-panel{align-self:center;width:min(100%,640px);position:relative;display:grid;gap:var(--space-lg);padding:var(--space-3xl);overflow:hidden;border:1px solid color-mix(in srgb,var(--green) 24%,var(--border));border-radius:var(--radius-lg);background:linear-gradient(180deg,color-mix(in srgb,var(--green) 8%,transparent),transparent 58%),color-mix(in srgb,var(--surface) 92%,var(--bg));box-shadow:inset 0 1px color-mix(in srgb,white 5%,transparent),0 16px 44px color-mix(in srgb,black 18%,transparent)}.s-thread-motion-panel:before{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--green) 80%,white),transparent);background-size:180% 100%;animation:s-thread-motion-scan 1.7s ease-in-out infinite}.s-thread-motion-panel--pending{border-color:color-mix(in srgb,var(--accent) 26%,var(--border));background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 8%,transparent),transparent 58%),color-mix(in srgb,var(--surface) 92%,var(--bg))}.s-thread-motion-panel--pending:before{background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 82%,white),transparent)}.s-thread-motion-panel--quiet{border-color:color-mix(in srgb,var(--amber) 34%,var(--border));background:linear-gradient(180deg,color-mix(in srgb,var(--amber) 8%,transparent),transparent 58%),color-mix(in srgb,var(--surface) 92%,var(--bg))}.s-thread-motion-panel--quiet:before{background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--amber) 82%,white),transparent)}.s-thread-motion-head{min-width:0;display:grid;grid-template-columns:32px minmax(0,1fr);gap:var(--space-md);align-items:start}.s-thread-motion-beacon{position:relative;width:28px;height:28px;display:grid;place-items:center;color:var(--green)}.s-thread-motion-panel--pending .s-thread-motion-beacon{color:var(--accent)}.s-thread-motion-panel--quiet .s-thread-motion-beacon{color:var(--amber)}.s-thread-motion-beacon span{width:9px;height:9px;border-radius:var(--radius-pill);background:currentColor;box-shadow:0 0 0 5px color-mix(in srgb,currentColor 12%,transparent)}.s-thread-motion-beacon:after{content:"";position:absolute;inset:4px;border:1px solid currentColor;border-radius:var(--radius-pill);opacity:.45;animation:s-thread-motion-ping 1.8s ease-out infinite}.s-thread-motion-title-block{min-width:0}.s-thread-motion-kicker{margin-bottom:var(--space-2xs);color:var(--green);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700;letter-spacing:var(--tracking-xl);text-transform:uppercase}.s-thread-motion-panel--pending .s-thread-motion-kicker{color:var(--accent)}.s-thread-motion-panel--quiet .s-thread-motion-kicker{color:var(--amber)}.s-thread-motion-title-block h2{margin:0;color:var(--ink);font-size:var(--text-3xl);font-weight:700;letter-spacing:0;line-height:var(--leading-tight)}.s-thread-motion-title-block p{display:-webkit-box;margin:var(--space-2xs) 0 0;overflow:hidden;color:var(--muted);font-size:var(--text-md);line-height:var(--leading-snug);-webkit-box-orient:vertical;-webkit-line-clamp:2}.s-thread-motion-meter{height:52px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:var(--space-2xs);padding:var(--space-sm);border:1px solid color-mix(in srgb,var(--border) 44%,transparent);border-radius:var(--radius-md);background:linear-gradient(180deg,color-mix(in srgb,var(--ink) 4%,transparent),transparent),color-mix(in srgb,var(--bg) 64%,transparent)}.s-thread-motion-meter span{height:var(--bar-height);min-height:8px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--green) 76%,var(--ink));opacity:.54;animation:s-thread-motion-bar 1.18s ease-in-out infinite;animation-delay:var(--bar-delay)}.s-thread-motion-panel--pending .s-thread-motion-meter span{background:color-mix(in srgb,var(--accent) 82%,var(--ink))}.s-thread-motion-panel--quiet .s-thread-motion-meter span{background:color-mix(in srgb,var(--amber) 82%,var(--ink))}.s-thread-motion-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0;padding:var(--space-sm) 0 0;border-top:1px solid color-mix(in srgb,var(--border) 42%,transparent)}.s-thread-motion-stats div{min-width:0;padding-right:var(--space-md)}.s-thread-motion-stats div+div{padding-left:var(--space-md);border-left:1px solid color-mix(in srgb,var(--border) 46%,transparent)}.s-thread-motion-stats dt,.s-thread-motion-latest span,.s-thread-motion-event-kind,.s-thread-motion-waiting span{color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700;letter-spacing:var(--tracking-md);text-transform:uppercase}.s-thread-motion-stats dd{margin:var(--space-2xs) 0 0;overflow:hidden;color:var(--ink);font-size:var(--text-sm);font-weight:650;line-height:var(--leading-tight);text-overflow:ellipsis;white-space:nowrap}.s-thread-motion-latest{min-width:0;display:grid;gap:var(--space-2xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:color-mix(in srgb,var(--ink) 4%,transparent)}.s-thread-motion-latest strong{display:-webkit-box;min-width:0;overflow:hidden;color:var(--ink);font-size:var(--text-md);font-weight:550;line-height:var(--leading-snug);-webkit-box-orient:vertical;-webkit-line-clamp:2}.s-thread-motion-events{display:grid;gap:var(--space-2xs);margin:0;padding:0;list-style:none}.s-thread-motion-events li{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:baseline;gap:var(--space-xs);min-height:24px;padding:var(--space-2xs) 0;border-bottom:1px solid color-mix(in srgb,var(--border) 34%,transparent);animation:s-thread-motion-event-enter .56s cubic-bezier(.16,1,.3,1) both}.s-thread-motion-event-summary{min-width:0;overflow:hidden;color:var(--muted);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap}.s-thread-motion-events time{color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);white-space:nowrap}.s-thread-motion-events--compact{gap:0;padding-top:var(--space-xs);border-top:1px solid color-mix(in srgb,var(--border) 40%,transparent)}.s-thread-motion-events--compact li{grid-template-columns:52px minmax(0,1fr) auto;min-height:22px;padding:var(--space-3xs) 0}.s-thread-motion-waiting{min-width:0;display:grid;gap:var(--space-2xs);padding:var(--space-sm) var(--space-md);border:1px dashed color-mix(in srgb,var(--border) 58%,transparent);border-radius:var(--radius-md);color:var(--muted)}.s-thread-motion-waiting strong{color:var(--muted);font-size:var(--text-sm);font-weight:550}.s-thread-steps{min-width:0;display:flex;flex-direction:column;gap:var(--space-xs)}.s-thread-turn-phases-ribbon{display:flex;align-items:center;gap:var(--space-2xs);flex-wrap:wrap;padding-bottom:var(--space-2xs);border-bottom:1px solid color-mix(in srgb,var(--border) 40%,transparent)}.s-thread-turn-phase-chip{display:inline-flex;align-items:center;gap:var(--space-2xs);transition:all .14s ease}.s-thread-turn-phase-chip--active{background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:color-mix(in srgb,var(--accent) 40%,var(--border));color:var(--accent)}.s-thread-turn-phase-count{font-size:var(--text-3xs);opacity:.75}.s-thread-steps-elided{color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-sm);padding:0 var(--space-2xs)}.s-thread-steps-list{display:flex;flex-direction:column;gap:var(--space-2xs);margin:0;padding:0;list-style:none}.s-thread-step-card{display:flex;flex-direction:column;border:1px solid color-mix(in srgb,var(--border) 50%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 50%,var(--bg));padding:var(--space-2xs) var(--space-sm);transition:all .14s cubic-bezier(.16,1,.3,1);animation:s-thread-motion-event-enter .34s cubic-bezier(.16,1,.3,1) both}.s-thread-step-card:hover{background:color-mix(in srgb,var(--surface) 80%,var(--bg));border-color:color-mix(in srgb,var(--border) 80%,transparent)}.s-thread-step-card--latest{border-color:color-mix(in srgb,var(--accent) 30%,var(--border));background:color-mix(in srgb,var(--accent) 3%,var(--surface))}.s-thread-step-card--error{border-color:color-mix(in srgb,var(--red) 35%,var(--border));background:color-mix(in srgb,var(--red) 4%,var(--surface))}.s-thread-step-card--warning{border-color:color-mix(in srgb,var(--amber) 35%,var(--border));background:color-mix(in srgb,var(--amber) 4%,var(--surface))}.s-thread-step-header{display:flex;align-items:center;gap:var(--space-xs);min-height:24px}.s-thread-step-indicator{display:flex;align-items:center;justify-content:center;flex-shrink:0}.s-thread-step-kind{flex-shrink:0}.s-thread-step-body{flex:1;min-width:0;display:flex;align-items:baseline;gap:var(--space-2xs);overflow:hidden;white-space:nowrap}.s-thread-step-tool-arg{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-thread-step-arg-code{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink);background:color-mix(in srgb,var(--ink) 4%,transparent);padding:1px var(--space-3xs);border-radius:var(--radius-xs)}.s-thread-step-text{font-size:var(--text-sm);color:var(--muted);overflow:hidden;text-overflow:ellipsis}.s-thread-step-card[data-kind=think] .s-thread-step-text{color:var(--dim);font-style:italic}.s-thread-step-meta{margin-left:auto;display:flex;align-items:center;gap:var(--space-xs);flex-shrink:0}.s-thread-step-duration{color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs)}.s-thread-step-meta time{color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);white-space:nowrap}.s-thread-step-toggle{width:18px;height:18px;padding:0;color:var(--dim)}.s-thread-step-toggle:hover{color:var(--ink)}.s-thread-step-output{margin-top:var(--space-2xs);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--bg) 90%,transparent);border:1px solid color-mix(in srgb,var(--border) 40%,transparent)}.s-thread-step-output-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3xs)}.s-thread-step-output-code{margin:0;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted);white-space:pre-wrap;word-break:break-word;line-height:var(--leading-tight)}.s-thread-step-mark{width:6px;height:6px;align-self:center;border:1px solid currentColor;border-radius:1px;color:var(--dim)}.s-thread-steps-phase{min-width:0;display:flex;flex-direction:column;gap:var(--space-3xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 60%,var(--bg));border:1px solid color-mix(in srgb,var(--border) 40%,transparent)}.s-thread-steps-phase-header{display:flex;align-items:center;gap:var(--space-xs)}.s-thread-steps-phase-detail{font-size:var(--text-sm);font-weight:500;color:var(--muted)}.s-thread-steps--compact{padding-top:var(--space-xs);border-top:1px solid color-mix(in srgb,var(--border) 40%,transparent)}.s-thread-motion-panel .s-thread-steps--compact,.s-thread-motion-panel .s-thread-steps-phase{padding-top:0;border-top:none}@media(prefers-reduced-motion:reduce){.s-thread-step-card{animation:none}}.s-thread-motion-chips{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.s-thread-motion-chips span{min-width:0;max-width:220px;overflow:hidden;padding:var(--space-3xs) var(--space-sm);border:1px solid color-mix(in srgb,var(--border) 52%,transparent);border-radius:var(--radius-sm);color:var(--dim);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-sm);text-overflow:ellipsis;white-space:nowrap}@keyframes s-thread-motion-scan{0%{background-position:180% 0}to{background-position:-180% 0}}@keyframes s-thread-motion-ping{0%{opacity:.5;transform:scale(.72)}to{opacity:0;transform:scale(1.45)}}@keyframes s-thread-motion-bar{0%,to{opacity:.42;transform:scaleY(.72)}48%{opacity:1;transform:scaleY(1)}}@keyframes s-thread-motion-event-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.s-thread-motion-panel:before,.s-thread-motion-beacon:after,.s-thread-motion-meter span,.s-thread-motion-events li{animation:none}}.s-thread-error{margin:var(--space-xl) var(--space-3xl) 0;padding:var(--space-md) var(--space-xl);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--red) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--red) 20%,var(--border));font-size:var(--text-md);color:var(--red)}.s-thread-status{display:flex;align-items:center;gap:var(--space-sm);margin:var(--space-xs) var(--space-3xl) 0;padding:var(--space-xs) var(--space-lg);border:1px solid color-mix(in srgb,var(--border) 70%,transparent);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg) 80%,transparent)}.s-thread-status--pending{border-color:color-mix(in srgb,var(--accent) 18%,var(--border))}.s-thread-status--working{border-color:color-mix(in srgb,var(--green) 20%,var(--border))}.s-thread-status-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;animation:s-thread-sidebar-pulse 1.5s ease-in-out infinite}.s-thread-status-copy{flex:1;min-width:0;display:flex;align-items:baseline;gap:var(--space-sm);flex-wrap:wrap}.s-thread-status-label{font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--dim);font-family:var(--font-mono)}.s-thread-status-detail{font-size:var(--text-sm);color:var(--muted)}.s-thread-flight-outcome{display:flex;flex-direction:column;gap:var(--space-xs);margin:var(--space-xs) var(--space-3xl) 0;padding:var(--space-sm) var(--space-lg);border:1px solid color-mix(in srgb,var(--border) 70%,transparent);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg) 80%,transparent)}.s-thread-flight-outcome--failed{border-color:color-mix(in srgb,var(--red) 24%,var(--border))}.s-thread-flight-outcome--cancelled{border-color:color-mix(in srgb,var(--amber) 22%,var(--border))}.s-thread-flight-outcome--completed{border-color:color-mix(in srgb,var(--green) 20%,var(--border))}.s-thread-flight-outcome-head{display:flex;align-items:center;gap:var(--space-sm)}.s-thread-flight-outcome-mark{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;border-radius:50%;border:1px solid color-mix(in srgb,var(--dim) 44%,transparent);color:var(--dim)}.s-thread-flight-outcome--failed .s-thread-flight-outcome-mark{border-color:color-mix(in srgb,var(--red) 44%,transparent);color:color-mix(in srgb,var(--red) 80%,var(--ink))}.s-thread-flight-outcome--cancelled .s-thread-flight-outcome-mark{border-color:color-mix(in srgb,var(--amber) 44%,transparent);color:color-mix(in srgb,var(--amber) 84%,var(--ink))}.s-thread-flight-outcome--completed .s-thread-flight-outcome-mark{border-color:color-mix(in srgb,var(--green) 44%,transparent);color:color-mix(in srgb,var(--green) 84%,var(--ink))}.s-thread-flight-outcome-title{color:var(--ink)}.s-thread-flight-outcome-summary{margin:0;color:var(--muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.s-thread-flight-outcome-note{margin:0;font-size:var(--text-xs)}.s-thread-flight-outcome-actions{display:flex;justify-content:flex-end}.s-thread-kbd{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:16px;padding:0 var(--space-2xs);border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--border) 80%,transparent);background:color-mix(in srgb,var(--ink) 4%,transparent);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:500;color:var(--dim);line-height:var(--leading-none)}@media(max-width:1200px){.s-thread-sidebar{display:none}}@media(max-width:900px){.s-thread-rail{display:none}}@media(max-width:720px){.s-thread-center-header{padding:var(--space-lg) var(--space-2xl)}.s-thread-feed,.s-thread-compose{padding-inline:var(--space-2xl)}.s-thread-pinned-ask,.s-thread-status{margin-inline:var(--space-2xl)}}.s-thread-embed{display:flex;width:100vw;height:100vh;min-height:0;overflow:hidden}.s-thread-layout--embedded{border-top:none}.s-thread-layout--embedded .s-thread-center{padding:0}.s-thread-layout--embedded .s-thread-compose{padding:var(--space-sm) var(--space-2xl) var(--space-lg)}.s-thread-layout--embedded .s-thread-compose-shell{border-radius:var(--radius-xl)}.s-thread-layout--embedded .s-thread-compose-row{padding:var(--space-2xs) var(--space-xs) var(--space-2xs) var(--space-2xs);gap:var(--space-xs)}.s-thread-layout--embedded .s-thread-compose-input{min-height:28px;padding:var(--space-xs) var(--space-2xs) var(--space-xs) var(--space-sm);font-size:var(--text-md)}.s-thread-layout--embedded .s-thread-compose-send{width:28px;height:28px}.s-conv-board{flex:1;min-height:0;overflow-y:auto;padding:var(--space-3xl) clamp(var(--space-3xl),3vw,var(--space-6xl)) var(--space-6xl);background:var(--bg);font-family:var(--font-mono)}.s-conv-board-shortcuts{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-3xl);padding:var(--space-2xs) 0 var(--space-sm)}.s-conv-board-shortcut{padding:0;border:0;background:none;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-sm);cursor:pointer}.s-conv-board-shortcut:hover,.s-conv-board-shortcut:focus-visible{color:var(--accent);outline:none}.s-conv-board-section{min-width:0;width:min(100%,920px)}.s-conv-board-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-md);padding:var(--space-4xl) 0 var(--space-sm);border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700;letter-spacing:var(--tracking-xl);text-transform:uppercase;color:var(--dim)}.s-conv-board-count{color:color-mix(in srgb,var(--dim) 86%,transparent);font-variant-numeric:tabular-nums}.s-conv-board-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2xl);width:100%;padding:var(--space-md) 0;border:0;border-bottom:1px solid color-mix(in srgb,var(--border) 42%,transparent);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.s-conv-board-row:hover .s-conv-board-row-title,.s-conv-board-row:focus-visible .s-conv-board-row-title{color:var(--accent)}.s-conv-board-row:focus-visible{outline:none}.s-conv-board-row:hover .s-conv-board-arrow,.s-conv-board-row:focus-visible .s-conv-board-arrow{color:var(--accent)}.s-conv-board-row-main{min-width:0;display:flex;align-items:baseline;gap:var(--space-md);overflow:hidden}.s-conv-board-row-title{flex:none;max-width:48%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:var(--text-md);font-weight:550;transition:color .12s ease}.s-conv-board-preview{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dim);font-size:var(--text-xs);font-weight:400}.s-conv-board-meta{flex:none;display:flex;align-items:baseline;gap:var(--space-md);font-family:var(--font-mono);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;color:var(--dim)}.s-conv-board-new{font-style:normal;font-weight:650;color:var(--accent)}.s-conv-board-arrow{color:var(--dim);transition:color .12s ease}.s-conv-board-note{margin:var(--space-4xl) 0 0;max-width:920px;font-family:var(--font-mono);font-size:var(--text-xs);font-style:italic;color:var(--dim)}.s-conv-empty{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-5xl);background:var(--bg)}.s-conv-empty-inner{display:flex;flex-direction:column;align-items:center;text-align:center;width:min(100%,420px)}.s-conv-empty-mesh{width:72px;height:72px;margin-bottom:var(--space-4xl);color:var(--border)}.s-conv-empty-mesh-node{fill:currentColor}.s-conv-empty-mesh-node--accent{fill:var(--accent)}.s-conv-empty--offline .s-conv-empty-mesh-node--accent,.s-conv-empty--offline .s-conv-empty-ambient-dot{fill:var(--red);background:var(--red)}.s-conv-empty-mesh-link{stroke:currentColor;stroke-width:1;opacity:.7}.s-conv-empty-eyebrow{font-family:var(--font-mono);text-transform:uppercase;font-size:var(--text-2xs);letter-spacing:var(--tracking-xl);color:color-mix(in srgb,var(--accent) 70%,var(--muted));margin-bottom:var(--space-md)}.s-conv-empty-title{font-size:var(--text-2xl);font-weight:600;color:var(--muted);line-height:var(--leading-tight);margin:0}.s-conv-empty-detail{font-size:var(--text-md);line-height:var(--leading-normal);color:var(--dim);margin:var(--space-sm) 0 0}.s-conv-empty-hints{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-2xl);margin-top:var(--space-5xl)}.s-conv-empty-action{min-height:30px;margin-top:var(--space-5xl);padding:0 var(--space-lg);border:1px solid color-mix(in srgb,var(--red) 34%,var(--border));border-radius:var(--radius-sm);background:color-mix(in srgb,var(--red) 8%,transparent);color:color-mix(in srgb,var(--red) 86%,var(--ink));cursor:pointer;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-sm)}.s-conv-empty-action:hover{background:color-mix(in srgb,var(--red) 14%,transparent);color:var(--ink)}.s-conv-empty-new{align-self:center;margin-top:var(--space-3xl)}.s-conv-empty-hint{display:inline-flex;align-items:center;gap:var(--space-sm);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-sm);color:var(--dim)}.s-conv-empty-kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 var(--space-2xs);border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--border) 80%,transparent);background:color-mix(in srgb,var(--ink) 4%,transparent);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:500;color:var(--muted);line-height:var(--leading-none)}.s-conv-empty-ambient{display:inline-flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-5xl);font-family:var(--font-mono);text-transform:uppercase;font-size:var(--text-2xs);letter-spacing:var(--tracking-lg);color:var(--dim)}.s-conv-empty-ambient-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);flex-shrink:0}@keyframes s-thread-msg-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.s-thread-msg--enter{animation:s-thread-msg-enter .22s cubic-bezier(.2,.7,.3,1) backwards;will-change:opacity,transform}.s-thread-skeleton{display:flex;flex-direction:column;gap:var(--space-2xl);padding:var(--space-2xl) 0;max-width:min(100%,760px)}.s-thread-skeleton-intro{display:flex;align-items:center;gap:var(--space-md);min-height:32px}.s-thread-loader-mark{position:relative;width:28px;height:28px;flex:none}.s-thread-loader-orbit{position:absolute;inset:2px;border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);border-radius:50%}.s-thread-loader-orbit>span{position:absolute;top:-2px;left:50%;width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px color-mix(in srgb,var(--accent) 58%,transparent);transform:translate(-50%)}.s-thread-loader-core{position:absolute;inset:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px color-mix(in srgb,var(--accent) 42%,transparent)}.s-thread-skeleton-copy{display:flex;min-width:0;flex-direction:column;gap:2px;font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--dim)}.s-thread-skeleton-copy strong{color:var(--muted);font-size:var(--text-xs);font-weight:600}.s-thread-skeleton-copy>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-thread-skeleton-turns{display:flex;flex-direction:column;gap:var(--space-3xl)}.s-thread-skeleton-turn{display:flex;gap:var(--space-lg);align-items:flex-start}.s-thread-skeleton-lines{display:flex;flex-direction:column;gap:var(--space-sm);flex:1;min-width:0}.s-thread-skeleton-avatar,.s-thread-skeleton-line{background:linear-gradient(90deg,color-mix(in srgb,var(--ink) 5%,transparent),color-mix(in srgb,var(--ink) 9%,transparent),color-mix(in srgb,var(--ink) 5%,transparent) 80%);background-size:280% 100%;border-radius:var(--radius-sm);animation:s-thread-skeleton-sweep 1.6s ease-in-out infinite}.s-thread-skeleton-avatar{width:24px;height:24px;flex:none;border-radius:var(--radius-md)}.s-thread-skeleton-line{height:9px}.s-thread-skeleton-line--head{width:30%}.s-thread-skeleton-line--short{width:62%}.s-thread-skeleton-turn:nth-child(3) .s-thread-skeleton-line{animation-delay:.12s}.s-thread-skeleton-turn:nth-child(4) .s-thread-skeleton-line{animation-delay:.24s}@keyframes s-thread-skeleton-sweep{0%{background-position:140% 0}to{background-position:-40% 0}}@media(prefers-reduced-motion:reduce){.s-thread-msg--enter,.s-thread-skeleton-avatar,.s-thread-skeleton-line,.s-thread-history-spinner{animation:none}}.s-thread-layout[data-thread-treatment] .s-thread-feed-block,.s-thread-layout[data-thread-treatment] .s-thread-feed-block--you,.s-thread-layout[data-thread-treatment] .s-thread-feed-block--full-width .s-thread-msg{max-width:100%;align-self:stretch;align-items:stretch}.s-thread-layout[data-thread-treatment] .s-thread-msg-card,.s-thread-layout[data-thread-treatment] .s-thread-msg--you .s-thread-msg-card,.s-thread-layout[data-thread-treatment] .s-thread-msg--tool .s-thread-msg-card,.s-thread-layout[data-thread-treatment] .s-thread-msg[data-class=status] .s-thread-msg-card{border:none;border-radius:0;background:none}.s-thread-layout[data-thread-treatment=familiar] .s-thread-feed{gap:var(--space-2xl);padding:var(--space-3xl) var(--space-2xl) var(--space-2xl);align-items:center}.s-thread-layout[data-thread-treatment=familiar] .s-thread-feed-block,.s-thread-layout[data-thread-treatment=familiar] .s-thread-feed-block--full-width{width:min(100%,720px);max-width:720px;margin-inline:auto;align-self:center}.s-thread-layout[data-thread-treatment=familiar] .s-thread-msg{width:100%;max-width:100%}.s-thread-layout[data-thread-treatment=familiar] .s-thread-msg-card{padding:var(--space-sm) 0}.s-thread-layout[data-thread-treatment=familiar] .s-thread-feed-block--you{align-items:flex-end}.s-thread-layout[data-thread-treatment=familiar] .s-thread-feed-block--you .s-thread-msg{width:auto;max-width:min(72%,520px);align-self:flex-end}.s-thread-layout[data-thread-treatment=familiar] .s-thread-msg--you .s-thread-msg-card{padding:var(--space-md) var(--space-xl);border:1px solid color-mix(in srgb,var(--accent) 20%,var(--border));border-radius:var(--radius-2xl);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.s-thread-layout[data-thread-treatment=familiar] .s-thread-msg--you .s-thread-msg-meta{justify-content:flex-end}.s-thread-layout[data-thread-treatment=familiar] .s-thread-msg--you .s-thread-msg-avatar,.s-thread-layout[data-thread-treatment=familiar] .s-thread-msg--you .s-thread-msg-avatar--nav,.s-thread-layout[data-thread-treatment=familiar] .s-thread-msg--you .s-thread-msg-actor,.s-thread-layout[data-thread-treatment=familiar] .s-thread-msg--you .s-thread-msg-handle,.s-thread-layout[data-thread-treatment=familiar] .s-thread-msg--you .s-thread-msg-kind{display:none}.s-thread-layout[data-thread-treatment=familiar] .s-thread-msg--tool .s-thread-msg-card,.s-thread-layout[data-thread-treatment=familiar] .s-thread-msg[data-class=system] .s-thread-msg-card,.s-thread-layout[data-thread-treatment=familiar] .s-thread-msg[data-class=status] .s-thread-msg-card{padding:var(--space-md) var(--space-xl);border:1px solid color-mix(in srgb,var(--border) 70%,transparent);border-radius:var(--radius-xl);background:color-mix(in srgb,var(--surface) 72%,var(--bg))}.s-thread-layout[data-thread-treatment=ledger] .s-thread-feed{gap:0;padding:var(--space-sm) 0 var(--space-xl)}.s-thread-layout[data-thread-treatment=ledger] .s-thread-msg-card{position:relative;padding:5px calc(var(--space-xl) + 40px) 5px var(--space-xl);border-bottom:1px solid color-mix(in srgb,var(--border) 40%,transparent)}.s-thread-layout[data-thread-treatment=ledger] .s-thread-msg-card:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}.s-thread-layout[data-thread-treatment=ledger] .s-thread-msg-card-content{display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:var(--space-sm);row-gap:var(--space-sm);align-items:baseline}.s-thread-layout[data-thread-treatment=ledger] .s-thread-msg-card-content>*:not(.s-thread-msg-header):not(.s-thread-msg-actions){grid-column:2;min-width:0}.s-thread-layout[data-thread-treatment=ledger] .s-message-embeds>*{max-width:min(460px,100%)}.s-thread-layout[data-thread-treatment=ledger] .s-thread-msg-actions{position:absolute;inset-block-start:5px;inset-inline-end:var(--space-xl);z-index:1;display:flex;align-items:center;gap:var(--space-sm);pointer-events:none}.s-thread-layout[data-thread-treatment=ledger] .s-thread-msg-card:hover .s-thread-msg-actions,.s-thread-layout[data-thread-treatment=ledger] .s-thread-msg-actions:focus-within{pointer-events:auto}.s-thread-layout[data-thread-treatment=ledger] .s-thread-msg-header{grid-column:1;grid-row:1;align-items:baseline;gap:var(--space-sm)}.s-thread-layout[data-thread-treatment=ledger] .s-thread-msg-meta{flex:none;flex-wrap:nowrap;align-items:baseline;gap:var(--space-sm)}.s-thread-layout[data-thread-treatment=ledger] .s-thread-msg-avatar,.s-thread-layout[data-thread-treatment=ledger] .s-thread-msg-avatar--nav,.s-thread-layout[data-thread-treatment=ledger] .s-thread-msg-handle{display:none}.s-thread-layout[data-thread-treatment=ledger] .s-thread-msg-time{order:-1;flex:none;width:4.5ch;font-size:var(--text-2xs);color:var(--dim)}.s-thread-layout[data-thread-treatment=ledger] .s-thread-msg-actor{width:17ch;flex:none;font-size:var(--text-xs);font-weight:500;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-thread-layout[data-thread-treatment=ledger] .s-thread-msg-body{grid-column:2;min-width:0;font-size:var(--text-sm);line-height:1.5}.s-thread-layout[data-thread-treatment=rail] .s-thread-feed{--thread-rail-gutter: clamp(196px, 14vw, 240px);--thread-rail-measure: clamp(760px, 60vw, 1040px);--thread-rail-column: calc( var(--thread-rail-gutter) + var(--space-lg) + var(--thread-rail-measure) );gap:0;padding:var(--space-xl) var(--space-2xl) var(--space-xl)}.s-thread-layout[data-thread-treatment=rail] .s-thread-feed-block{width:min(100%,var(--thread-rail-column));margin-inline:0}.s-thread-layout[data-thread-treatment=rail] .s-thread-msg{max-width:100%}.s-thread-layout[data-thread-treatment=rail] .s-thread-feed-block+.s-thread-feed-block{border-top:1px solid color-mix(in srgb,var(--border) 45%,transparent)}.s-thread-layout[data-thread-treatment=rail] .s-thread-msg-card{position:relative;padding:var(--space-md) 0 var(--space-md) calc(var(--thread-rail-gutter) + var(--space-lg))}.s-thread-layout[data-thread-treatment=rail] .s-thread-msg-card:before{content:"";position:absolute;left:var(--thread-rail-gutter);top:0;bottom:0;width:1px;background:color-mix(in srgb,var(--border) 70%,transparent)}.s-thread-layout[data-thread-treatment=rail] .s-thread-msg-card-content{display:flow-root}.s-thread-layout[data-thread-treatment=rail] .s-thread-msg-card-content>*+*{margin-top:var(--space-sm)}.s-thread-layout[data-thread-treatment=rail] .s-thread-msg-header{float:left;display:flex;width:var(--thread-rail-gutter);margin-top:0;margin-left:calc(-1 * (var(--thread-rail-gutter) + var(--space-lg)));padding-right:var(--space-lg);flex-direction:row;flex-wrap:wrap;align-items:baseline;text-align:left;gap:var(--space-2xs) var(--space-sm);min-width:0}.s-thread-layout[data-thread-treatment=rail] .s-thread-msg-meta{flex:1 1 auto;flex-direction:row;align-items:baseline;gap:var(--space-2xs) var(--space-sm);width:auto}.s-thread-layout[data-thread-treatment=rail] .s-thread-msg-handle,.s-thread-layout[data-thread-treatment=rail] .s-thread-msg-time{font-size:var(--text-2xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.s-thread-layout[data-thread-treatment=rail] .s-thread-msg-body{max-width:var(--thread-rail-measure);font-size:var(--text-md);line-height:1.58}.s-thread-layout[data-thread-treatment=rail] .s-thread-reply-ctx{max-width:min(38ch,var(--thread-rail-measure));margin-bottom:var(--space-2xs);font-size:var(--text-2xs);opacity:.72}.s-thread-layout[data-thread-treatment=rail] .s-thread-reply-ctx:hover,.s-thread-layout[data-thread-treatment=rail] .s-thread-reply-ctx:focus-visible{opacity:1}.s-thread-layout[data-thread-treatment=rail] .s-thread-msg-card--avatar-row{display:grid;grid-template-columns:var(--thread-rail-gutter) minmax(0,1fr);column-gap:var(--space-lg);align-items:start;padding-left:0}.s-thread-layout[data-thread-treatment=rail] .s-thread-msg-card--avatar-row>.s-thread-msg-avatar{grid-column:1;justify-self:end;margin-right:var(--space-lg)}.s-thread-layout[data-thread-treatment=rail] .s-thread-msg-card--avatar-row>.s-thread-msg-card-content{grid-column:2}.s-thread-layout[data-thread-treatment=rail] .s-thread-msg-card--avatar-row .s-thread-msg-header{float:none;width:auto;margin-left:0;padding-right:0;flex-direction:row;align-items:baseline;text-align:left;gap:var(--space-sm)}.s-thread-layout[data-thread-treatment=rail] .s-thread-msg-card--avatar-row .s-thread-msg-meta{flex-direction:row;align-items:baseline;gap:var(--space-sm);width:auto}.s-thread-layout[data-thread-treatment=document] .s-thread-feed{gap:0;padding:var(--space-2xl) var(--space-3xl) var(--space-2xl)}.s-thread-layout[data-thread-treatment=document] .s-thread-feed-block+.s-thread-feed-block{border-top:1px solid color-mix(in srgb,var(--border) 40%,transparent)}.s-thread-layout[data-thread-treatment=document] .s-thread-msg-card{padding:var(--space-xl) 0}.s-thread-layout[data-thread-treatment=document] .s-thread-msg-avatar,.s-thread-layout[data-thread-treatment=document] .s-thread-msg-avatar--nav,.s-thread-layout[data-thread-treatment=document] .s-thread-msg-handle{display:none}.s-thread-layout[data-thread-treatment=document] .s-thread-msg-header{margin-bottom:var(--space-xs)}.s-thread-layout[data-thread-treatment=document] .s-thread-msg-actor{font-size:var(--text-2xs);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.s-thread-layout[data-thread-treatment=document] .s-thread-msg-time{font-size:var(--text-2xs);letter-spacing:.08em}.s-thread-layout[data-thread-treatment=document] .s-thread-msg-body{max-width:62ch;font-size:var(--text-lg);line-height:1.78}.s-thread-layout[data-thread-treatment=document] .s-thread-msg-body .s-inline-code{background:none;border-color:transparent;padding:0;color:var(--muted)}@media(max-width:560px){.s-thread-participants{--fp-coin: 40px;--fp-lap: 8px;--fp-sprite: 21px;--fp-badge: 13px;max-width:none}.s-thread-participant[data-compact-hidden=true],.s-thread-participant--desktop-overflow{display:none}.s-thread-participant--compact-overflow{display:inline-flex}.s-thread-participant-card{right:-4px}}@media(max-width:420px){.s-thread-participant[data-narrow-hidden=true],.s-thread-participant--compact-overflow{display:none}.s-thread-participant--narrow-overflow{display:inline-flex}}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as a,j as r}from"./index-EsrkGBcv.js";import{j as wt,w as ya,k as Zt,l as Ws,m as wa,o as Sa,q as va,s as Us,t as Ta,u as xa,v as Ca}from"./NewChatComposer-C97-iTMK.js";import{a as q}from"./api-DSqpVKC7.js";import{uploadMediaFiles as ba}from"./media-blobs-Bi8pxr1u.js";import"./runtime-picker-DXu2bOTh.js";import{d as _s,u as Ma}from"./router-DCtl8wqb.js";import{u as ka}from"./ComposerAttachments-DW0AIb8k.js";import"./index-724SdE6r.js";import{b as Ia}from"./machine-scope-DJt9RZ2w.js";import{d as Aa,b as Na,e as ja,l as J,q as Vs,u as Ra,v as Me,w as Ea,x as La,y as Fa,z as $a,s as Oa,c as Ks,S as Qs,A as Pa,B as qa,C as Da,D as Ba,g as zs,E as Ha,F as Wa,k as Ua,p as _a,r as es,G as Va,H as Ka,I as Qa,J as za,K as Ja,L as Js,M as Ga,N as Ya,O as Ge,P as Xa,Q as Za,R as Gs,T as er,U as tr,V as sr,W as nr,X as Ys,Y as ar,Z as Xs,_ as rr,a as or,$ as ir,a0 as lr}from"./conversation-model-FxDeWlle.js";import{u as cr}from"./sse-BCPRocpq.js";import{n as ts,t as St,f as Zs}from"./time-Dhsh_2EG.js";import{s as dr,h as ur,e as mr,T as en,b as hr,j as pr,k as fr,g as gr}from"./conversations-DoAAO6kA.js";import{M as yr}from"./message-markup-Zwo3t4cI.js";import{a as ss,i as ns,b as wr}from"./message-visibility-DwxgcgYK.js";import{d as Sr}from"./operator-attention-DBaRg5ep.js";import{f as as,a as vr}from"./scoutbot-Bk3nyrkj.js";import{s as Tr}from"./sessionRead-CvFz2RHv.js";import{u as xr,a as Cr}from"./Provider-C35yu29I.js";import{o as Ye}from"./openContent-C6XO6kr5.js";import{c as Xe}from"./clipboard-e3fSpeo7.js";import{M as br}from"./MessageEmbeds-ksPazAKH.js";import{A as rs}from"./AgentAvatar-CrP1eXxk.js";import{d as Mr}from"./types-B0PlfpKc.js";/* empty css */import{ConversationHeader as kr,ConversationIdentityRow as Ir,AddParticipantForm as Ar}from"./ConversationHeader-C-ZWscKj.js";import{CommsFlowPane as Nr}from"./CommsFlowGraph-DxoOaLF_.js";import{a as jr}from"./use-beside-DoRC1nt0.js";import{ConversationComposer as Rr}from"./ConversationComposer-CUQyArlk.js";import{FanOutRow as Er,ThreadDayDivider as Lr}from"./ConversationFeedRows-DWiOfT-y.js";import{T as Fr,t as tn,m as sn,a as $r,b as Or,o as Pr,d as qr,s as Dr,l as Br,c as Hr,e as Wr,W as Ur,f as _r,g as Vr}from"./ConversationPanels-D9oC0xG5.js";import{u as Kr}from"./tail-events-d0yAYxR0.js";import{PinnedAskCard as Qr,ConversationStatusStrip as zr,ConversationFlightOutcome as Jr}from"./ConversationStatus--IPm2nGh.js";import{S as Gr}from"./SessionContextStrip-CXfs9hUD.js";import"./createLucideIcon-zZ8Hx7er.js";import"./HarnessMark-C4naWc16.js";import"./colors-CFlbwC25.js";import"./agent-state-DDhnFEEP.js";import"./NewChatOrigin-DFbF_XvR.js";import"./keyboard-nav-DDHegDbx.js";import"./x-DAehov0E.js";import"./chevron-down-l1mrh5S9.js";import"./search-DT42oyRW.js";import"./loader-circle-OvccU82H.js";import"./file-text-CnISiiw6.js";import"./scout-voice-CZx60X6E.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./index-BWHgHrtv.js";import"./message-markup-BQW5jdJw.js";import"./mentions-ByUvhS-v.js";import"./AgentDetailCard-DtHT3sCo.js";import"./AgentLiveActions-CfTupTEl.js";import"./terminal-takeover-Ay5C2c-M.js";import"./eye-LrO-cXQt.js";import"./terminal-hQKQygcf.js";import"./theme-vars-DNK0nn3k.js";import"./provider-Dojd8quC.js";import"./surface-activity-B1rgWB1i.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-DJr0v0D_.js";import"./TextDocumentSurface-D52m7Vd8.js";import"./index-CHD0qcfL.js";import"./chevron-right-DrfqcerI.js";import"./folder-D5prSkzz.js";import"./chevron-up-CETZJzjV.js";import"./code-xml-BhcNbLWU.js";import"./arrow-left-MVUKauwQ.js";import"./arrow-right-Bp-FpE5V.js";import"./voice-turn-ledger-BMZxlSjg.js";import"./chunk-HRAB3GC3-DbVLgbWX.js";import"./SpriteAvatar-CpZWf54-.js";import"./CrewAvatar-kTznzqcO.js";import"./BackToPicker-CUkjnoVk.js";import"./AstronautSuit-Cchnc4Ug.js";import"./panel-right-Bv7sP_fc.js";import"./comms-gesture-_aGFo6g3.js";import"./CommsCanvas-THp0r_U8.js";import"./comms-deck-CBhsXnY-.js";import"./CommsFlowMap-Vi8ziCPg.js";import"./CommsSelection-BUoRbu9o.js";/* empty css */import"./use-conversation-list-CY4JciOV.js";import"./agent-master-model-Bk_yuUXJ.js";import"./zap-CEjZNZbI.js";import"./tail-display-DHSNmvor.js";import"./lane-edit-display-BjdT9oZl.js";import"./use-reduced-motion-3gMYZNIp.js";import"./proxy-AJsmwA6h.js";import"./activity-CIlFrfPJ.js";import"./message-circle-CxRVKNE-.js";import"./check-lrJ3a73a.js";import"./sparkles-BjHq_DNK.js";import"./triangle-alert-CHoRGdVO.js";const ln="scout:conversations:failure-dismissals:v1",Yr=64;let is={};function cn(){try{if(typeof localStorage<"u"){const o=JSON.parse(localStorage.getItem(ln)??"null");eo(o)&&(is=ls(o))}}catch{}return ls(is)}function Xr(o){is=ls(o);try{typeof localStorage<"u"&&localStorage.setItem(ln,JSON.stringify(o))}catch{}}function nn(o){return new Set(cn()[o]??[])}function Zr(o,m){const u=cn(),S=(u[o]??[]).filter(D=>D!==m);S.push(m),u[o]=S.slice(-100);const b=Object.keys(u);for(const D of b.slice(0,Math.max(0,b.length-Yr)))delete u[D];return Xr(u),new Set(u[o])}function ls(o){return Object.fromEntries(Object.entries(o).map(([m,u])=>[m,[...u]]))}function eo(o){return!o||typeof o!="object"||Array.isArray(o)?!1:Object.values(o).every(m=>Array.isArray(m)&&m.every(u=>typeof u=="string"&&u.length>0))}function to(o){const{sessionIds:m,active:u}=o,S=m.join("|"),b=u&&m.length>0,[D,ke]=a.useState([]);return a.useEffect(()=>{ke([])},[S]),a.useEffect(()=>{if(!b)return;let G=!1;const pe=new URLSearchParams({limit:String(Fr*3),transcripts:"true"});return q(`/api/tail/recent?${pe.toString()}`).then(O=>{if(G)return;const Ie=(O.events??[]).filter(B=>tn(B,m));Ie.length!==0&&ke(B=>sn(B,Ie))}).catch(()=>{}),()=>{G=!0}},[b,S]),Kr(G=>{b&&tn(G,m)&&ke(pe=>sn(pe,[G]))},b),a.useMemo(()=>b?$r(D):[],[b,D])}const so=3500;function an(o){const m=o?.trim().replace(/^#/,"");if(!m?.startsWith("msg-"))return null;const u=m.slice(4).trim();if(!u)return null;try{return decodeURIComponent(u)}catch{return u}}const no=64;function ao(o){const m=o?.clientMessageId;return typeof m=="string"&&m.trim()?m.trim():null}function rn(o){const m=o.body.replace(/\s+/gu," ").trim();if(m)return m.length>180?`${m.slice(0,179).trimEnd()}…`:m;const u=o.attachments?.length??0;return u===1?"Attachment":u>1?`${u} attachments`:"Message"}function on(o,m){const u=o.toLocaleLowerCase().indexOf(m.toLocaleLowerCase());if(u<0)return o;const S=o.slice(0,u),b=o.slice(u+m.length);return!S&&b.startsWith(" ")?b.slice(1):S.endsWith(" ")&&b.startsWith(" ")?`${S}${b.slice(1)}`:`${S}${b}`}function ro(o){return o instanceof TypeError||typeof DOMException<"u"&&o instanceof DOMException&&o.name==="AbortError"}function Ji({conversationId:o,initialDraft:m,navigate:u,embedded:S,showBackNav:b=!0,beside:D,backLabel:ke,treatment:G="standard"}){const{agents:pe,route:O,openContextCapture:Ie}=xr(),B=_s(O),T=a.useMemo(()=>Ia(pe,B),[pe,B]),[c,vt]=a.useState(null),cs=a.useRef(null);cs.current=c;const Ze=a.useMemo(()=>wt(o),[o]),[dn,un]=a.useState(()=>Ze?{[o]:Ze}:{}),y=dn[o]??Ze??[],[mn,ds]=a.useState(()=>Ze!==null),Ae=a.useRef(null),us=a.useMemo(()=>{const e=Ae.current;return e===null?null:new Set(y.filter(t=>!e.has(t.id)).map(t=>t.id))},[y]),et=Ae.current===null&&y.length>0;a.useEffect(()=>{if(y.length===0)return;const e=Ae.current??new Set;for(const t of y)e.add(t.id);Ae.current=e},[y]),a.useEffect(()=>{Ae.current=null,ds(wt(o)!==null)},[o]);const ms=!mn&&y.length===0,K=a.useCallback(e=>{un(t=>{const s=t[o]??wt(o)??[],n=typeof e=="function"?e(s):e,i=ya(o,n);return{...t,[o]:i}})},[o]),hn=Zt(o),[p,fe]=a.useState(hn),[Tt,xt]=a.useState(null),[Ne,je]=a.useState([]),[tt,Ct]=a.useState(null),[st,Re]=a.useState(null),[nt,pn]=a.useState(()=>typeof window>"u"?null:an(window.location.hash)),[hs,se]=a.useState(null),[bt,ps]=a.useState(()=>nn(o)),[ge,Mt]=a.useState(!1),[fn,Ee]=a.useState(!1),[kt,at]=a.useState(0),Le=a.useRef(null),Fe=a.useRef(null),gn=a.useRef(null),$e=a.useRef(!0),rt=a.useRef(!1),ye=a.useRef(null),M=a.useRef(null),Oe=a.useRef(new Set),Pe=a.useRef(null),fs=a.useRef(0),gs=a.useRef(null),qe=a.useRef(null),De=a.useRef(new Set),Y=a.useRef(o);Y.current=o;const ne=a.useRef(new Map),yn=Ws(o),ot=a.useRef(!1);a.useLayoutEffect(()=>{const e=Fe.current,t=Le.current;!e||!t||(t.scrollTop=e.scrollTop+(t.scrollHeight-e.scrollHeight),Fe.current=null,ot.current=!0)}),a.useEffect(()=>{Mt(!1),Fe.current=null,ot.current=!1,$e.current=!0,rt.current=!1,Ee(!1),at(0),Vt(new Set),ne.current.clear(),fe(Zt(o)),xt(null),ps(nn(o))},[o]);const it=a.useCallback(async e=>{let s=typeof e.metadata?.flightId=="string"?e.metadata.flightId.trim():"";if(!s&&e.replyToMessageId)try{s=(await q(`/api/flights?conversationId=${encodeURIComponent(o)}&active=false`)).find(i=>i.messageId===e.replyToMessageId)?.id??""}catch{}await Sr({...s?{flightId:s}:{},conversationId:o,messageId:e.replyToMessageId??e.id,itemUpdatedAt:ts(e.createdAt)??Date.now()})},[o]),ys=a.useCallback(e=>{const t=e.replyToMessageId??e.id;ps(Zr(o,e.id)),as({type:"dismiss-conversation-failure",conversationId:o,messageId:t,reason:"The operator cleared this delivery issue"});const s=`${o}:${e.id}`;De.current.add(s),it(e).catch(()=>{De.current.delete(s)})},[o,it]);a.useEffect(()=>{for(const e of y){if(!bt.has(e.id)||!ss(e))continue;const t=`${o}:${e.id}`;De.current.has(t)||(De.current.add(t),it(e).catch(()=>{De.current.delete(t)}))}},[o,bt,y,it]);const x=c?.agentId??null,C=c?.kind==="direct",lt=a.useMemo(()=>new Set([o,...c?.equivalentConversationIds??[]]),[o,c?.equivalentConversationIds]),_=a.useMemo(()=>x?T.find(e=>e.id===x)??null:null,[T,x]),ws=Aa(c),Ss=Na(c),wn=ja({resolvedAgentId:_?.id,sessionId:ws,machineId:B}),[It,vs]=a.useState(null);a.useEffect(()=>{q("/api/fleet").then(e=>{vs(t=>J(t,Vs(e.activeAsks,o,x)))}).catch(()=>{})},[o,x]);const R=a.useCallback(async(e={})=>{const t=e.messageMode??"none",s=e.includeMetadata??!0;se(null);try{const n=s?await q(`/api/session/${encodeURIComponent(o)}`).catch(()=>null):cs.current;if(Y.current!==o)return;vt(w=>J(w,n));const i=n?.agentId??null,l=n?.id&&n.id!==o?n.id:o;if(l!==o){u({view:"conversation",conversationId:l});return}const d=wt(l),A=wa(l),f=t==="initial"&&!A,h=t==="refresh"||t==="initial",g=Promise.all([q(`/api/flights?conversationId=${encodeURIComponent(l)}&active=false`).catch(()=>[]),q("/api/fleet?limit=24&activityLimit=160").catch(()=>Ra())]),W=await(f?Sa(l):h?va(l,{refresh:!0}):Promise.resolve(d));if(Y.current!==o)return;const j=Me(W??[]),he=j.filter(w=>!ns(w));W&&K(w=>J(w,Ea(w,he))),ds(!0),Tr(l);const N=j.at(-1);N&&qe.current!==N.id&&(qe.current=N.id,q(`/api/conversations/${encodeURIComponent(l)}/read-cursor`,{method:"POST",body:JSON.stringify({lastReadMessageId:N.id})}).catch(()=>{qe.current===N.id&&(qe.current=null)}));const[Q,V]=await g;if(Y.current!==o)return;const U=La(Q),z=Zt(l),be=U??z;Oe.current=new Set([...Q.map(w=>w.invocationId),...z?.invocationId?.startsWith("pending:")?[]:z?.invocationId?[z.invocationId]:[]]),U&&z?.id===U.id&&Us(l,U.id);const F=be?.agentId??i??null,Xt=Fa(V.activity,be,l,F),yt=$a(V.activeAsks,be,l,F);fe(w=>J(w,be)),xt(w=>J(w,Oa(Q))),je(w=>J(w,Xt)),Re(w=>J(w,yt)),vs(w=>J(w,Vs(V.activeAsks,l,i)))}catch(n){if(Y.current!==o)return;se(n instanceof Error?n.message:String(n))}},[o,u,K]);a.useEffect(()=>{R({messageMode:"initial"})},[R]),a.useEffect(()=>{qe.current=null},[o]),a.useEffect(()=>{Pe.current=p},[p]);const Sn=a.useCallback(async()=>{if(ge||!Ws(o))return;const e=Le.current,t=e?{scrollHeight:e.scrollHeight,scrollTop:e.scrollTop}:null;Mt(!0),se(null);try{const s=await Ta(o);if(Y.current!==o)return;t&&(Fe.current=t),K(Me(s).filter(n=>!ns(n)))}catch(s){Y.current===o&&se(s instanceof Error?s.message:String(s))}finally{Y.current===o&&Mt(!1)}},[o,ge,K]),[k,P]=a.useState(()=>m??""),[ae,re]=a.useState(null),[H,ct]=a.useState(!1),[v,vn]=a.useState("operator"),[oe,Be]=a.useState({open:!1,query:"",triggerStart:-1,index:0}),[ie,He]=a.useState({open:!1,query:"",triggerStart:-1,index:0}),[E,X]=a.useState(null),[At,dt]=a.useState(!1),[Nt,ut]=a.useState(""),[Tn,We]=a.useState(null),[xn,jt]=a.useState(!1);a.useEffect(()=>{dt(!1),ut(""),We(null),jt(!1)},[o]),a.useEffect(()=>{if(!m)return;const e=`${o}:${m}`;gs.current!==e&&(gs.current=e,P(m),requestAnimationFrame(()=>M.current?.focus()))},[o,m]);const Z=a.useMemo(()=>{const e=new Map;for(const t of c?.participants??[])e.set(t.actorId,t),t.agentId&&e.set(t.agentId,t);return e},[c]),Rt=a.useMemo(()=>{const e=new Set,t=[];for(const s of c?.participantIds??[]){if(s==="operator")continue;const n=Z.get(s),i=n?.scopedAlias?.trim().replace(/^@+/,"");if(!i)continue;const l=i.toLowerCase();e.has(l)||(e.add(l),t.push({id:s,label:n?.label??n?.displayName??i,name:n?.displayName??i,handle:i}))}for(const s of T){const n=s.handle?.trim().replace(/^@+/,"")??Ks(s.id)??s.id;if(!n)continue;const i=n.toLowerCase();e.has(i)||(e.add(i),t.push({id:s.id,label:n,name:s.name??n,handle:n}))}return t.sort((s,n)=>s.handle.localeCompare(n.handle))},[Z,T,c]),Cn=a.useMemo(()=>{if(!oe.open)return[];const e=oe.query.toLowerCase();return e?Qs.filter(t=>t.command.toLowerCase().startsWith("/"+e)||t.command.toLowerCase().includes(e)):Qs},[oe.open,oe.query]),bn=a.useMemo(()=>{if(!ie.open)return[];const e=ie.query.toLowerCase();return e?Rt.filter(t=>t.handle.toLowerCase().includes(e)||t.name.toLowerCase().includes(e)||t.label.toLowerCase().includes(e)).slice(0,8):Rt.slice(0,8)},[ie.open,ie.query,Rt]),Mn=a.useCallback(()=>{Be(e=>e.open?{...e,open:!1}:e),He(e=>e.open?{...e,open:!1}:e)},[]),kn=a.useCallback((e,t)=>{const s=Pa(e,t);Be(s?i=>({open:!0,query:s.query,triggerStart:s.start,index:i.open&&i.triggerStart===s.start?i.index:0}):i=>i.open?{...i,open:!1}:i);const n=qa(e,t);He(n?i=>({open:!0,query:n.query,triggerStart:n.start,index:i.open&&i.triggerStart===n.start?i.index:0}):i=>i.open?{...i,open:!1}:i)},[]),In=a.useCallback(e=>{const t=M.current,s=oe.triggerStart;if(s<0)return;const n=t?.selectionStart??k.length,i=k.slice(0,s),l=k.slice(n),d=e.insert,A=`${i}${d}${l}`;P(A),Be(f=>({...f,open:!1})),requestAnimationFrame(()=>{const f=M.current;if(!f)return;const h=i.length+d.length;f.focus(),f.setSelectionRange(h,h)})},[k,oe.triggerStart]),An=a.useCallback(e=>{const t=M.current,s=ie.triggerStart;if(s<0)return;const n=t?.selectionStart??k.length,i=k.slice(0,s),l=k.slice(n),d=l.length===0||!l.startsWith(" "),A=`@${e.handle}${d?" ":""}`,f=`${i}${A}${l}`;P(f),He(h=>({...h,open:!1})),requestAnimationFrame(()=>{const h=M.current;if(!h)return;const g=i.length+A.length;h.focus(),h.setSelectionRange(g,g)})},[k,ie.triggerStart]);a.useEffect(()=>{const e=M.current;if(!e)return;e.style.height="0px";const t=Math.min(Math.max(e.scrollHeight,40),160);e.style.height=`${t}px`,e.style.overflowY=e.scrollHeight>t?"auto":"hidden"},[k]),a.useEffect(()=>{q("/api/user").then(e=>vn(e.name)).catch(()=>{})},[]);const mt=a.useMemo(()=>Da(y,v),[y,v]);a.useEffect(()=>{E===null||mt===null||mt>=E&&X(null)},[E,mt]);const Nn=a.useMemo(()=>dr(p),[p]),we=Date.now(),jn=ur(p,mt,we),Et=Nn&&!mr(p)&&!jn,Ts=C&&(H||E!==null||Et),xs=C&&Ba({sending:H,awaitingResponse:E!==null,currentFlight:p}),L=zs({name:_?.name,agentName:c?.agentName,id:x,title:c?.title}),I=a.useMemo(()=>C?Ha({agentName:L,agentState:_?.state??null,sending:H,currentFlight:p,showWorkingTurn:Et,awaitingResponse:E!==null}):{label:"Open",detail:"",tone:"idle",showStrip:!1,showTyping:!1},[_?.state,L,E,p,we,C,H,Et]),Lt=p?.startedAt??st?.startedAt??E,Ft=ts(Lt),Cs=ar(Lt,we),[,Rn]=a.useState(0);a.useEffect(()=>{if(!I.showTyping||Ft===null)return;const e=Math.max(0,Date.now()-Ft),t=[Ys.sustained,Ys.long].find(n=>n>e);if(t===void 0)return;const s=window.setTimeout(()=>Rn(n=>n+1),t-e+50);return()=>window.clearTimeout(s)},[Ft,I.showTyping,Cs]);const En="Live",$t=a.useMemo(()=>Wa({currentFlight:p,presence:I,turnActivity:Ne,turnAsk:st,awaitingResponseSince:E,nowMs:we}),[E,p,we,I,Ne,st]),Ln="s-thread-msg-card s-thread-msg-working-card s-thread-msg-card--avatar-row",Fn="s-thread-msg-kind",$n="s-thread-turn-snapshot",On="s-thread-turn-snapshot-pulse",Pn="s-thread-presence-line",qn=["s-thread-presence-strip",`s-thread-presence-strip--${Cs}`].filter(Boolean).join(" "),Ot=c?Ua(c):L,Ue=c?.id??o,Dn=c?.alias?.trim()||null,ht=_a(c?.workspaceRoot),Bn=I.tone,Pt=y.length===0&&C&&(I.showTyping||p!==null||Ne.length>0||st!==null||E!==null),Se=Tt&&en.has(Tt.state)?Tt:null,Hn=!!(Se&&y.some(e=>ss(e)!==null&&e.metadata?.flightId===Se.id)),bs=Se?.sessions.at(-1)?.sessionId??Ss,Wn=Se&&bs?()=>{const e=or({sessionId:bs,machineId:B});e&&Ye(u,e,{returnTo:O})}:void 0,Ms=a.useMemo(()=>c?c.participantIds.includes("operator"):C,[C,c]),_e=p?.agentId??x,Ve=_e?es(T,[_e]):null,Ke=Ve?.id??_e,Qe=p?.sessions.at(-1)?.sessionId??Ve?.harnessSessionId??void 0,ks=p?.id?()=>{Ye(u,{view:"sessions",flightId:p.id,...Ke?{agentId:Ke}:{},...Qe?{sessionId:Qe}:{},...B?{machineId:B}:{}},{returnTo:O})}:void 0,Is=p?.id??null;a.useEffect(()=>{if(!Is||!Ke){Ct(null);return}let e=!1;const t=Qe?`?sessionId=${encodeURIComponent(Qe)}`:"",s=async()=>{try{const i=await q(`/api/agents/${encodeURIComponent(Ke)}/observe${t}`);if(e)return;Ct(l=>J(l,i))}catch{}};s();const n=window.setInterval(()=>{s()},so);return()=>{e=!0,window.clearInterval(n),Ct(null)}},[Is,Ke,Qe]);const qt=a.useMemo(()=>Or({flight:p,agent:Ve??_,sessionMeta:c,observeSessionId:tt?.sessionId}),[_,p,c,tt?.sessionId,Ve]),As=to({sessionIds:qt,active:I.showTyping||Pt}),Un=a.useMemo(()=>Pr({observe:tt,flight:p}),[p,tt]),ee=As.length>0?As:Un,Dt=a.useMemo(()=>ee.length>0?null:qr({flight:p,hasSessionScope:qt.length>0,awaitingResponse:E!==null}),[E,p,qt.length,ee.length]),Bt=Dr(ee),Ht=Br(ee),Ns=ee.at(-1)??null,Wt=Ns?St(Ns.ts,we):null,le=a.useMemo(()=>Ht?{...$t,latest:Ht,...Bt?{activityLabel:Bt}:{},...Wt?{lastActivityLabel:Wt}:{}}:$t,[Wt,Ht,$t,Bt]),_n=`${L}: ${le.latest}`,js=_e&&Va(Ve)?()=>{Ye(u,{view:"terminal",agentId:_e,mode:"takeover"},{returnTo:O})}:void 0,Ut=C?()=>{S&&as({type:"focus-composer",reason:"Steer the active conversation"})||requestAnimationFrame(()=>{M.current?.focus({preventScroll:!0}),M.current?.scrollIntoView({block:"nearest"})})}:void 0,[ve,Rs]=a.useState(()=>{if(S||typeof window>"u")return"thread";const e=new URLSearchParams(window.location.search).get("view");return e==="flow"||e==="map"||e==="canvas"?e:"thread"}),Vn=a.useCallback(e=>Rs(e),[]),Es=jr(u,_s(O)??void 0),Kn=a.useCallback(e=>{Rs("thread"),Es(e)},[Es]),Qn=Ma();a.useEffect(()=>{if(S||typeof window>"u")return;const e=new URL(window.location.href),t=ve==="thread"?"":ve;(e.searchParams.get("view")??"")!==t&&(t?e.searchParams.set("view",t):e.searchParams.delete("view"),window.history.replaceState(window.history.state,"",`${e.pathname}${e.search}${e.hash}`))},[S,ve,Qn.searchStr]);const zn=a.useMemo(()=>(c?c.participantIds.filter(t=>t!=="operator"):x?[x]:[]).map(t=>{const s=es(T,[t]),n=Z.get(t);return{id:t,name:n?.scopedAlias??s?.name??n?.displayName??Ks(t)??t,title:n?.label??s?.id??t,agent:s,sessionId:n?.sessionId??null,harness:s?.harness??n?.harness??null,model:s?.model??null,reasoningEffort:s?.reasoningEffort??null}}),[x,Z,T,c]),Jn=a.useMemo(()=>({name:v,active:Ms}),[Ms,v]),ce=a.useMemo(()=>new Map(y.map(e=>[e.id,e])),[y]),_t=a.useMemo(()=>T.find(e=>vr(e)&&!!e.conversationId?.trim())?.conversationId?.trim()??null,[T]),ze=a.useMemo(()=>Ka(y),[y]),[Gn,Vt]=a.useState(()=>new Set),Yn=a.useCallback(e=>{Vt(t=>{const s=new Set(t);return s.delete(e)||s.add(e),s})},[]),Ls=a.useMemo(()=>{const e=new Map;for(const t of ze)if(t.kind==="fanout")for(const s of t.messages)e.set(s.id,t.key);return e},[ze]),pt=a.useCallback(e=>{const t=Ls.get(e);t&&Vt(l=>l.has(t)?l:new Set(l).add(t));const s=document.getElementById(`msg-${e}`);if(!s)return;const n=s.closest(".s-thread-fanout")??s,i=n===s?"s-thread-msg--flash":"s-thread-fanout--flash";n.scrollIntoView({behavior:"smooth",block:"center"}),n.classList.add(i),window.setTimeout(()=>n.classList.remove(i),1200)},[Ls]);a.useEffect(()=>{const e=()=>pn(an(window.location.hash));return window.addEventListener("hashchange",e),()=>window.removeEventListener("hashchange",e)},[]),a.useEffect(()=>{if(!nt||!ce.has(nt))return;const e=window.setTimeout(()=>pt(nt),50);return()=>window.clearTimeout(e)},[nt,ce,pt]),cr(a.useCallback(e=>{if(e.kind==="message.posted"){const t=e.payload?.message;if(!t||!lt.has(t.conversationId))return;const s=t.actorId==="operator",n=C&&!s&&t.class==="agent",i={id:t.id,conversationId:t.conversationId,actorId:t.actorId,actorName:n?L:Qa(t.actorId,T,v),body:t.body,createdAt:t.createdAt,class:s?"operator":t.class,attachments:t.attachments,metadata:t.metadata,replyToMessageId:t.replyToMessageId??t.n??null};if(ns(i))return;if(K(l=>{const d=ao(t.metadata),A=d?ne.current.get(d):void 0;if(l.some(f=>f.id===t.id))return d&&ne.current.delete(d),l;if(s&&d){const f=za(l,d,A);if(f!==-1){const h=[...l];return h[f]=i,ne.current.delete(d),Me(h)}}return Me([...l,i])}),n){const l=ts(t.createdAt)??Date.now();X(d=>d===null||l<d||hr(Pe.current)?d:null),fe(d=>pr(d)?null:d)}return}if(e.kind==="invocation.requested"){const t=e.payload?.invocation;if(!Ja(t,lt))return;Oe.current.add(t.id),je([]),Re(null),X(s=>s??Date.now()),R({messageMode:"none",includeMetadata:!1});return}if(e.kind==="conversation.upserted"){const t=e.payload?.conversation;t?.id&<.has(t.id)&&R({messageMode:"none",includeMetadata:!1});return}if(e.kind==="flight.updated"){const t=e.payload?.flight;if(!t||!(Oe.current.has(t.invocationId)||Pe.current?.id===t.id))return;const n=Js(t,o,x??"",Pe.current);if(xt(l=>Ga(l,n)),en.has(t.state)){Us(o,t.id),fe(l=>l?.id===t.id?null:l),je([]),Re(null),X(null),R({messageMode:"refresh",includeMetadata:!1});return}Oe.current.add(t.invocationId);const i=Pe.current?.id===t.id;fr(n)&&X(null),fe(n),i||(je([]),Re(null));return}e.kind!=="agent.endpoint.upserted"&&e.kind==="unknown"&&R({messageMode:"refresh"})},[x,L,o,lt,C,R,v,T])),a.useEffect(()=>{if(!Ts)return;const e=setInterval(()=>{R({messageMode:"refresh",includeMetadata:!1})},5e3);return()=>clearInterval(e)},[Ts,R]),a.useEffect(()=>{const e=()=>{if(document.visibilityState!=="visible")return;const t=Date.now();t-fs.current<1e3||(fs.current=t,R({messageMode:"refresh"}))};return window.addEventListener("focus",e),document.addEventListener("visibilitychange",e),()=>{window.removeEventListener("focus",e),document.removeEventListener("visibilitychange",e)}},[R]);const Kt=a.useRef(null),Fs=a.useRef(!1),Qt=a.useRef(!1),zt=a.useCallback(e=>{const t=Le.current;t&&(rt.current=!0,ye.current!==null&&clearTimeout(ye.current),e==="instant"?t.scrollTop=t.scrollHeight:t.scrollTo({top:t.scrollHeight,behavior:"smooth"}),ye.current=setTimeout(()=>{rt.current=!1,ye.current=null},e==="smooth"?700:0))},[]);a.useEffect(()=>()=>{ye.current!==null&&clearTimeout(ye.current)},[]);const Xn=a.useCallback(()=>{const e=Le.current;if(!e||rt.current)return;const s=e.scrollHeight-e.clientHeight-e.scrollTop<=no;$e.current=s,s?(Ee(!1),at(0)):Ee(!0)},[]),Zn=a.useCallback(()=>{$e.current=!0,Ee(!1),at(0),zt("smooth")},[zt]);a.useEffect(()=>{const e=y.at(-1)?.id??null,t=!!(e&&e!==Kt.current),s=Ya({newestMessageId:e,previousNewestMessageId:Kt.current,showTyping:I.showTyping,previousShowTyping:Fs.current,historyRestorePending:ot.current||Fe.current!==null,initialScrollDone:Qt.current,nearBottom:$e.current});s!=="none"?(zt(s),Qt.current=!0):t&&Qt.current&&!$e.current&&(Ee(!0),at(n=>n+1)),ot.current=!1,Kt.current=e,Fs.current=I.showTyping});const[,ea]=a.useState(0);a.useEffect(()=>{const e=setInterval(()=>ea(t=>t+1),15e3);return()=>clearInterval(e)},[]);const de=ka(),[ue,te]=a.useState([]),[$s,ft]=a.useState("queue"),[Te,xe]=a.useState(null),Ce=async(e,t)=>{const s=e.trim(),n=t?.attachments??[],i=t?.replyTarget??null;if(!s&&n.length===0||H)return"failed";const d=t?.forceAction??Xs({isDm:C,hasOutstandingReply:xs}),A=Date.now(),f=Ca(),h={id:`optimistic-${f}`,conversationId:o,actorId:"operator",actorName:v,body:s,createdAt:A,class:"operator",...i?{replyToMessageId:i.messageId}:{},metadata:{clientMessageId:f,deliveryState:"sending"},...n.length>0?{attachments:n}:{}};ct(!0),d!=="message"&&X(A),se(null),ne.current.set(f,h.id),K(g=>Me([...g,h]));try{const g=await q(`/api/chats/${encodeURIComponent(o)}/messages`,{method:"POST",body:JSON.stringify({body:s,clientMessageId:f,...i?{replyToMessageId:i.messageId}:{},...n.length>0?{attachments:n}:{}})}),W=g.chatId?.trim()??g.conversationId?.trim();if(W&&W!==o)throw new Error(`Send returned a different Chat (${W}) instead of appending to ${o}.`);if(g.messageId?.trim()){const j=g.messageId.trim();K(he=>Me(he.map(N=>N.id===h.id?{...N,id:j,metadata:{clientMessageId:f}}:N))),ne.current.delete(f)}return g.flight?(Oe.current.add(g.flight.invocationId),fe(Js(g.flight,o,x??"")),je([]),Re(null)):d!=="message"&&X(null),"sent"}catch(g){return ro(g)?(K(W=>W.map(j=>j.id===h.id?{...j,metadata:{...j.metadata??{},deliveryState:"unknown"}}:j)),"unknown"):(K(W=>W.filter(j=>j.id!==h.id)),ne.current.delete(f),X(null),se(g instanceof Error?g.message:String(g)),"failed")}finally{ct(!1)}},ta=async e=>{const t=e.replyToMessageId?ce.get(e.replyToMessageId):null;if(!t||H)return;const s=[];for(const i of t.attachments??[]){if(!i.url){se("This request includes an attachment that can’t be reused. Add it again, then retry."),requestAnimationFrame(()=>M.current?.focus());return}s.push({id:i.id,mediaType:i.mediaType,...i.fileName?{fileName:i.fileName}:{},url:i.url})}await Ce(t.body,{forceAction:"invoke",attachments:s})!=="failed"&&ys(e)},sa=(e,t,s)=>{if(!_t)return;const n=e.replyToMessageId?ce.get(e.replyToMessageId)?.body.trim():"",i=n?`${n.slice(0,1200)}${n.length>1200?"…":""}`:"(The original request is no longer available in this transcript.)",l=[`Help me recover a failed request to ${t}.`,s,"","Original request:",i].join(`
|
|
2
|
+
`),d={view:"conversation",conversationId:_t,composeDraft:l};S&&as({type:"navigate",route:d,reason:"Ask @scoutbot to help recover a failed conversation request"})||u(d)},na=async()=>{const e=k.trim(),t=ae,s=de.files,n=Te?.attachments??[];if(!e&&s.length===0&&n.length===0)return null;let i=[];if(s.length>0){ct(!0);try{i=await ba(s)}catch(l){return de.setError(l instanceof Error?l.message:String(l)),null}finally{ct(!1)}}return P(""),re(null),de.clear(),xe(null),{body:e,attachments:[...n,...i],replyTarget:t}},aa=async()=>{const e=ir({isAgentBusy:me,intent:$s}),t=Te?.id??null,s=await na();if(!s)return;if(e==="queue"){te(l=>t?l.map(d=>d.id===t?{...d,body:s.body,attachments:s.attachments,replyTarget:s.replyTarget}:d):[...l,{id:`queued-${Date.now()}-${l.length}`,body:s.body,attachments:s.attachments,replyTarget:s.replyTarget,queuedAt:Date.now()}]);return}t&&te(l=>l.filter(d=>d.id!==t));const n=()=>{P(s.body),xe(s.attachments.length>0?{id:null,attachments:s.attachments}:null),re(s.replyTarget),requestAnimationFrame(()=>M.current?.focus())};if(e==="steer"){ft("queue"),await Gt(),await Ce(s.body,{forceAction:"steer",attachments:s.attachments,replyTarget:s.replyTarget})==="failed"&&n();return}await Ce(s.body,{attachments:s.attachments,replyTarget:s.replyTarget})==="failed"&&n()},ra=e=>{te(t=>t.filter(s=>s.id!==e)),xe(t=>t?.id===e?null:t)},oa=e=>{const t=ue.find(s=>s.id===e);t&&(P(t.body),re(t.replyTarget??null),xe({id:e,attachments:t.attachments}),requestAnimationFrame(()=>{const s=M.current;s&&(s.focus(),s.setSelectionRange(s.value.length,s.value.length))}))},ia=()=>{xe(null),P(""),re(null),de.clear()},la=async e=>{const t=ue.find(n=>n.id===e);if(!t)return;te(n=>n.filter(i=>i.id!==e)),await Gt(),await Ce(t.body,{forceAction:"steer",attachments:t.attachments,replyTarget:t.replyTarget??null})==="failed"&&te(n=>[t,...n])},gt=a.useCallback((e,t)=>{const s=t?.trim().replace(/^@+/,"")||null,n=s?`@${s}`:null,i=ae?.insertedMention?on(k,ae.insertedMention):k,l=!!(!C&&n&&!i.toLocaleLowerCase().includes(n.toLocaleLowerCase())),d=l&&n?i.trim()?`${i.trimEnd()} ${n} `:`${n} `:i;P(d),re({messageId:e.id,actorLabel:s?`@${s}`:e.actorName,preview:rn(e),insertedMention:l?n:null}),requestAnimationFrame(()=>M.current?.focus())},[k,C,ae?.insertedMention]),ca=a.useCallback(()=>{const e=ae?.insertedMention;re(null),e&&P(t=>on(t,e)),requestAnimationFrame(()=>M.current?.focus())},[ae]),Jt=a.useCallback(e=>{const t=new URL(window.location.href);O.view==="agents-v2"&&t.searchParams.set("tab","message"),t.hash=`msg-${e}`,Xe(t.toString())},[O.view]),Os=a.useCallback((e,t,s)=>{const n=xa({conversationId:o,selectedMessageId:e.id,messages:y.map(i=>({id:i.id,actorLabel:i.id===e.id?t:Ge(i,v)?v:i.actorName,body:i.body,attachmentCount:i.attachments?.length??0}))});Ie({intent:"forward-message",forwardContext:n,forwardContextMode:"selected-message",...s?{projectPath:s}:{}})},[o,y,Ie,v]),Gt=async()=>{if(x)try{await q("/api/agents/"+encodeURIComponent(x)+"/interrupt",{method:"POST",body:JSON.stringify({})})}catch{}},me=I.tone==="working"||I.tone==="pending",da=Xs({isDm:C,hasOutstandingReply:xs}),ua=C?`Message ${L} — type / to route or @ to mention an agent`:c?.kind==="channel"?`Comment in #${gr(c)} — mention @agent to request a reply`:`Comment in ${Ot} — mention @agent to request a reply`,Ps=Te?.attachments??[],ma=!k.trim()&&!de.hasFiles&&Ps.length===0&&me,Yt=a.useRef(!1);a.useEffect(()=>{const e=Te?.id??null,t=e?ue.filter(n=>n.id!==e):ue;if(!Xa({isAgentBusy:me,sending:H,queued:t})||Yt.current)return;const s=t[0];s&&(Yt.current=!0,te(n=>n.filter(i=>i.id!==s.id)),Ce(s.body,{attachments:s.attachments,replyTarget:s.replyTarget??null}).then(n=>{n==="failed"&&te(i=>[s,...i])}).finally(()=>{Yt.current=!1}))},[me,H,ue,Te]),a.useEffect(()=>{me||ft("queue")},[me]),a.useEffect(()=>{te([]),xe(null),re(null),ft("queue"),de.clear()},[o]);const ha=Za(ue),qs=Cr(),pa=a.useCallback((e,t)=>{const s=window.getSelection()?.toString().trim(),n=Ge(t,v),i=t.actorId?Z.get(t.actorId):null,l=n?null:Gs(t,T,x),d=(i?.scopedAlias?.trim()||l?.handle?.trim()||null)?.replace(/^@+/,"")??null,A=d?`@${d}`:t.actorName,f=(l?.id||i?.agentId||t.actorId||"").trim(),h=[];n||h.push({kind:"action",label:"Reply",onSelect:()=>gt(t,d)}),h.push({kind:"action",label:"Forward to new task…",onSelect:()=>Os(t,A,i?.workspaceRoot??l?.projectRoot??l?.cwd??void 0)}),h.push({kind:"separator"}),s&&h.push({kind:"action",label:"Copy Selection",shortcut:"⌘C",onSelect:()=>{Xe(s)}}),h.push({kind:"action",label:"Copy Message",onSelect:()=>{Xe(t.body)}}),h.push({kind:"action",label:"Copy Link",onSelect:()=>Jt(t.id)}),h.push({kind:"separator"}),!n&&f&&h.push({kind:"action",label:"Copy Agent ID",onSelect:()=>{Xe(f)}}),h.push({kind:"action",label:"Copy Message ID",onSelect:()=>{Xe(t.id)}}),qs(e,h)},[x,gt,Jt,Os,v,Z,T,qs]),fa=async(e,t)=>{const s=`@${t.agentId} `,n=k.trim();if(n){P(""),await Ce(`${s}${n}`,{forceAction:"invoke"});return}P(s),M.current?.focus()},Je=a.useMemo(()=>{if(!c)return[];const e=new Set(c.participantIds);return T.filter(t=>!e.has(t.id)&&!t.retiredFromFleet).sort((t,s)=>t.name.localeCompare(s.name))},[c,T]);a.useEffect(()=>{At&&ut(e=>e&&Je.some(t=>t.id===e)?e:Je[0]?.id??"")},[At,Je]);const Ds=!!(c&&["direct","group_direct","channel"].includes(c.kind)&&Je.length>0),ga=a.useCallback(async()=>{if(!c)return;const e=Nt.trim();if(e){jt(!0),We(null);try{const t=await q(`/api/conversations/${encodeURIComponent(c.id)}/members`,{method:"POST",body:JSON.stringify({actorId:e})});t.session?vt(t.session):vt(s=>s&&{...s,kind:t.kind,participantIds:t.participantIds}),dt(!1),ut(""),await R({messageMode:"none"})}catch(t){We(t instanceof Error?t.message:String(t))}finally{jt(!1)}}},[Nt,R,c]);return r.jsx("div",{className:`s-thread-layout${S?" s-thread-layout--embedded":""}`,"data-thread-treatment":G==="standard"?void 0:G,children:r.jsxs("div",{className:"s-thread-center",children:[!S&&r.jsx(kr,{showBackNav:b,backLabel:ke,beside:D&&Ue?{on:D.has(Ue),toggle:()=>D.toggle(Ue)}:void 0,isDm:C,navigate:u,route:O,canonicalConversationId:Ue,threadTitle:Ot,agentId:_?.id??null,sessionId:ws,detailRoute:wn,participants:zn,operator:Jn,canAddParticipants:Ds,view:ve,onChangeView:Vn,onToggleAddParticipant:()=>{We(null),dt(e=>!e)}}),!S&&c&&r.jsx(Ir,{canonicalConversationId:Ue,conversationAlias:Dn}),!S&&At&&Ds&&r.jsx(Ar,{agents:Je,addParticipantId:Nt,setAddParticipantId:ut,addingParticipant:xn,addParticipantError:Tn,onCancel:()=>{dt(!1),We(null)},onSubmit:()=>{ga()}}),It&&r.jsx(Qr,{pinnedAsk:It,onAnswer:()=>{const e=[...y].reverse().find(t=>t.actorId===It.agentId)??[...y].reverse().find(t=>!Ge(t,v)&&t.class!=="status"&&t.class!=="system");e?gt(e,e.actorId?Z.get(e.actorId)?.scopedAlias??null:null):M.current?.focus()},onSteer:Ut}),r.jsx(zr,{presence:I,agent:_}),c&&r.jsx(Gr,{harness:c.harness,model:c.model,hostName:c.executionNodeName,workspaceRoot:c.workspaceRoot,sessionId:Ss,machineId:B,navigate:u}),hs&&r.jsx("p",{className:"s-thread-error",children:hs}),ve!=="thread"?r.jsx(Nr,{messages:y,view:ve,participants:c?.participants,onStage:Kn,beside:D}):r.jsxs("div",{className:"s-thread-feed","data-conversation-id":o,ref:Le,onScroll:Xn,children:[!ms&&y.length>0&&yn&&r.jsx("div",{className:"s-thread-history-control",children:r.jsxs("button",{type:"button",className:"s-thread-history-button",disabled:ge,"aria-busy":ge,onClick:()=>{Sn()},children:[ge&&r.jsx("span",{className:"s-thread-history-spinner","aria-hidden":"true"}),ge?"Loading earlier messages…":"Load earlier messages"]})}),ms?r.jsx(Hr,{}):y.length===0?Pt?r.jsx(Wr,{agentName:L,title:I.label,detail:I.detail||le.latest,snapshot:le,events:Ne,steps:ee,phase:Dt,tone:Bn,workspaceName:ht,branch:c?.currentBranch,startedAt:Lt,onOpenTrace:ks,onOpenTerminal:js,onSteer:Ut}):r.jsxs("div",{className:"s-thread-empty",children:[r.jsx("div",{className:"s-thread-empty-glyph","aria-hidden":"true",children:C?"@":"#"}),r.jsx("p",{children:Ot}),r.jsx("p",{children:C?"No messages yet. Send a message to start working with this agent.":"No messages yet. Start the conversation below."}),(ht||c?.currentBranch)&&r.jsxs("div",{className:"s-thread-empty-chips",children:[ht&&r.jsx("span",{className:"s-thread-empty-chip",children:ht}),c?.currentBranch&&r.jsx("span",{className:"s-thread-empty-chip",children:c.currentBranch})]})]}):ze.map((e,t)=>{const s=er(e,t);if(e.kind==="fanout")return r.jsx(Er,{row:e,expanded:Gn.has(e.key),showDayDivider:s,onToggle:()=>Yn(e.key)},e.key);const n=e.message,i=Ge(n,v),l=tr(n),d=l?"scout.dispatch":n.class,A=rr(d),f=d==="status",h=Zs(n.createdAt),g=i?null:Gs(n,T,x),j=(n.actorId?Z.get(n.actorId):void 0)?.scopedAlias?.trim()||null,he=!i&&j?j:n.actorName,N=i?v.toLowerCase():j??g?.handle??null,Q=sr(n.body),V=Q?nr({flightId:Q.flightId,replyToMessageId:n.replyToMessageId,messagesById:ce,agents:T,operatorName:v}):null,U=!Q&&n.replyToMessageId?ce.get(n.replyToMessageId)??null:null,z=U?Ge(U,v)?v:U.actorName:null,be=Q?Q.body:n.body,F=ss(n);if(F&&bt.has(n.id))return null;const Xt=typeof n.metadata?.targetAgentId=="string"?n.metadata.targetAgentId:null,yt=F?es(T,[Xt,F.target]):null,w=F?zs({name:yt?.name,id:yt?.id,title:wr(F.target)}):null;return r.jsxs("div",{className:["s-thread-feed-block",i&&"s-thread-feed-block--you",s&&"s-thread-feed-block--full-width"].filter(Boolean).join(" "),children:[s&&r.jsx(Lr,{at:n.createdAt}),F&&w?r.jsxs("article",{id:`msg-${n.id}`,className:["s-thread-msg","s-thread-failure-notice",(et||us?.has(n.id))&&"s-thread-msg--enter"].filter(Boolean).join(" "),style:et?{animationDelay:`${Math.max(0,7-(ze.length-1-t))*26}ms`}:void 0,"data-class":d,"aria-label":"Delivery issue",children:[r.jsx("span",{className:"s-thread-failure-notice-mark","aria-hidden":"true",children:"!"}),r.jsxs("div",{className:"s-thread-failure-notice-content",children:[r.jsxs("p",{children:[r.jsxs("strong",{children:[w," couldn’t reply."]})," ",r.jsx("span",{children:F.explanation})]}),F.technicalDetail&&r.jsxs("details",{className:"s-thread-failure-notice-details",children:[r.jsx("summary",{children:"Technical details"}),r.jsx("pre",{children:F.technicalDetail})]}),r.jsxs("div",{className:"s-thread-failure-notice-actions",children:[n.replyToMessageId&&ce.has(n.replyToMessageId)&&r.jsx("button",{className:"s-thread-failure-notice-action s-thread-failure-notice-action--primary",type:"button",disabled:H,onClick:()=>{ta(n)},children:H?"Retrying…":"Retry"}),_t&&r.jsx("button",{className:"s-thread-failure-notice-action",type:"button",onClick:()=>sa(n,w,F.explanation),children:"Ask @scoutbot"}),r.jsx("button",{className:"s-thread-failure-notice-action s-thread-failure-notice-action--clear",type:"button",onClick:()=>ys(n),"aria-label":`Clear delivery issue for ${w}`,children:"Clear"})]})]}),r.jsx("span",{className:"s-thread-failure-notice-time",title:h,children:St(n.createdAt)})]}):r.jsx("article",{id:`msg-${n.id}`,className:["s-thread-msg",i&&"s-thread-msg--you",f&&"s-thread-msg--tool",(et||us?.has(n.id))&&"s-thread-msg--enter"].filter(Boolean).join(" "),style:et?{animationDelay:`${Math.max(0,7-(ze.length-1-t))*26}ms`}:void 0,"data-class":d,onContextMenu:$=>pa($,n),children:r.jsx("div",{className:"s-thread-msg-card",children:r.jsxs("div",{className:"s-thread-msg-card-content",children:[r.jsxs("div",{className:"s-thread-msg-header",children:[r.jsxs("div",{className:"s-thread-msg-meta",children:[(()=>{const $=!i&&g?()=>Ye(u,{view:"agents-v2",agentId:g.id},{returnTo:O}):null,Bs=i?v:he??"?",Hs=r.jsx(rs,{agent:g??void 0,name:Bs,placement:"turn",size:28,className:"s-thread-msg-avatar",title:Bs,gaze:"pointer"});return $?r.jsx("button",{type:"button",className:"s-thread-msg-avatar--nav",onClick:$,"aria-label":`View profile for ${n.actorName??"agent"}`,title:`View profile for ${n.actorName??"agent"}`,children:Hs}):Hs})(),!i&&g?r.jsx("button",{type:"button",className:"s-thread-msg-actor s-thread-msg-actor--nav",onClick:()=>Ye(u,{view:"agents-v2",agentId:g.id},{returnTo:O}),title:`View profile for ${n.actorName}`,children:he}):r.jsx("span",{className:"s-thread-msg-actor",children:i?v:he}),N&&r.jsxs("span",{className:"s-thread-msg-handle",children:["@",N]}),A&&r.jsx("span",{className:"s-thread-msg-kind",children:A})]}),r.jsx("span",{className:"s-thread-msg-time",title:h,children:St(n.createdAt)}),r.jsxs("span",{className:"s-thread-msg-actions",children:[!i&&N&&r.jsx("button",{type:"button",className:"s-thread-msg-permalink","aria-label":`Reply to @${N}`,title:`Reply to @${N}`,onClick:()=>gt(n,N),children:r.jsx(os,{})}),r.jsx("button",{type:"button",className:"s-thread-msg-permalink","aria-label":"Copy link to message",title:"Copy link to message",onClick:()=>Jt(n.id),children:r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[r.jsx("path",{d:"M6.5 9.5a2.5 2.5 0 0 0 3.54 0l2.12-2.12a2.5 2.5 0 0 0-3.54-3.54l-.7.7"}),r.jsx("path",{d:"M9.5 6.5a2.5 2.5 0 0 0-3.54 0L3.84 8.62a2.5 2.5 0 0 0 3.54 3.54l.7-.7"})]})})]})]}),V&&r.jsxs("button",{type:"button",className:"s-thread-reply-ctx",title:`Open the originating request${V.flightId?` · ${V.flightId}`:""}`,onClick:()=>pt(V.originatingMessageId),children:[r.jsx(os,{}),r.jsx("span",{className:"s-thread-reply-ctx-label",children:"reply to"}),r.jsx("span",{className:"s-thread-reply-ctx-title",children:V.title}),r.jsxs("span",{className:"s-thread-reply-ctx-from",children:["· ",V.from]}),r.jsx("span",{className:"s-thread-reply-ctx-status",children:"· done"})]}),U&&z&&r.jsxs("button",{type:"button",className:"s-thread-reply-ctx",title:`Open message from ${z}`,onClick:()=>pt(U.id),children:[r.jsx(os,{}),r.jsx("span",{className:"s-thread-reply-ctx-label",children:"reply to"}),r.jsx("span",{className:"s-thread-reply-ctx-title",children:rn(U)}),r.jsxs("span",{className:"s-thread-reply-ctx-from",children:["· ",z]})]}),r.jsx("div",{className:"s-thread-msg-body",children:r.jsx(yr,{text:be})}),r.jsx(br,{message:n}),l&&l.candidates.length>0&&r.jsx("div",{className:"s-thread-dispatch",children:l.candidates.map($=>r.jsxs("button",{type:"button",className:"s-thread-dispatch-tile",onClick:()=>{fa(l,$)},children:[r.jsxs("span",{className:"s-thread-dispatch-tile-id",children:["@",$.agentId]}),r.jsx("span",{className:"s-thread-dispatch-tile-state",children:$.endpointState}),r.jsx("span",{className:"s-thread-dispatch-tile-meta",children:[$.workspace,$.node,$.projectRoot].filter(Boolean).join(" · ")||$.displayName})]},$.agentId))})]})})})]},n.id)}),Se&&!Hn&&r.jsx("div",{className:"s-thread-feed-block",children:r.jsx(Jr,{flight:Se,onOpenSession:Wn})}),I.showTyping&&!Pt&&r.jsx("div",{className:"s-thread-feed-block",children:r.jsx("div",{className:"s-thread-msg","aria-live":"polite",children:r.jsxs("div",{className:Ln,children:[r.jsx(rs,{agent:_??void 0,name:L,placement:"turn",size:28,className:"s-thread-msg-avatar s-thread-msg-avatar--working",title:L,gaze:"pointer"}),r.jsxs("div",{className:"s-thread-msg-card-content",children:[r.jsxs("div",{className:"s-thread-msg-header",children:[r.jsxs("div",{className:"s-thread-msg-meta",children:[r.jsx("span",{className:"s-thread-msg-actor",children:L}),r.jsx("span",{className:Fn,children:En})]}),r.jsx("span",{className:"s-thread-msg-time",title:p?.startedAt?Zs(p.startedAt):"now",children:p?.startedAt?St(p.startedAt):"now"})]}),r.jsxs("div",{className:"s-thread-msg-working-body",children:[r.jsxs("div",{className:$n,children:[r.jsx("span",{className:On,"aria-hidden":"true"}),r.jsxs("div",{className:"s-thread-turn-snapshot-main",children:[r.jsx("span",{className:"s-thread-turn-snapshot-label",children:"Latest"}),r.jsx("span",{className:"s-thread-msg-working-copy",children:le.latest})]})]}),r.jsxs("dl",{className:"s-thread-turn-snapshot-stats",children:[r.jsxs("div",{className:"s-thread-turn-snapshot-stat",children:[r.jsx("dt",{children:"Activity"}),r.jsx("dd",{children:le.activityLabel})]}),r.jsxs("div",{className:"s-thread-turn-snapshot-stat",children:[r.jsx("dt",{children:"Elapsed"}),r.jsx("dd",{children:le.elapsedLabel})]}),r.jsxs("div",{className:"s-thread-turn-snapshot-stat",children:[r.jsx("dt",{children:"Last"}),r.jsx("dd",{children:le.lastActivityLabel})]})]}),ee.length>0||Dt?r.jsx(Ur,{steps:ee,phase:Dt,limit:5,compact:!0}):r.jsx(_r,{events:Ne,limit:4,compact:!0}),r.jsx(Vr,{onOpenTrace:ks,onOpenTerminal:js,onSteer:Ut,compact:!0})]})]})]})})}),fn&&kt>0&&r.jsxs("button",{type:"button",className:"s-thread-new-messages",onClick:Zn,children:[r.jsx("span",{"aria-hidden":"true",children:"↓"})," ",kt," new ",kt===1?"message":"messages"," · jump to latest"]}),r.jsx("div",{ref:gn})]}),I.showTyping&&r.jsxs("div",{className:Pn,children:[r.jsx("div",{className:"s-thread-presence-line-avatars",children:r.jsx(rs,{agent:_??void 0,name:L,placement:"turn",size:22,className:"s-thread-presence-line-avatar",title:L})}),r.jsx("span",{className:"s-thread-presence-line-label",children:_n}),r.jsx("div",{className:qn,"aria-hidden":"true"})]}),r.jsx(Rr,{composeRef:M,draft:k,setDraft:P,composePlaceholder:ua,slashState:oe,setSlashState:Be,filteredSlashCommands:Cn,applySlashCommand:In,mentionState:ie,setMentionState:He,filteredMentions:bn,applyMention:An,updateTriggersFromDraft:kn,closeSuggestions:Mn,replyTarget:ae,onCancelReply:ca,isStopMode:ma,sending:H,composeAction:da,onSend:()=>{aa()},onInterrupt:()=>{Gt()},attachments:de,isAgentBusy:me,busyIntent:$s,onBusyIntentChange:ft,queued:ue,queueNote:ha,onEditQueued:oa,editingQueuedId:Te?.id??null,editingAttachmentCount:Ps.length,onCancelEdit:ia,onUnqueue:ra,onSendQueuedNow:e=>{la(e)}})]})})}function os(){return r.jsxs("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[r.jsx("polyline",{points:"9 14 4 9 9 4"}),r.jsx("path",{d:"M20 20v-7a4 4 0 0 0-4-4H4"})]})}const Gi=Mr({id:"thread",label:"Thread",route:{view:"conversation",conversationId:""},webPath:"/chat",screen:"ConversationScreen",embed:{path:"/embed/thread",profile:"macos.thread",rootClassName:"s-thread-embed",chrome:{showSecondaryNav:!1,showPageStatusBar:!1},hosts:{macos:!0},resolveEmbedProps:lr}});export{Ji as ConversationScreen,Gi as scoutSurface};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as j,j as e}from"./index-EsrkGBcv.js";import{c as v}from"./conversation-model-FxDeWlle.js";import{A as y}from"./AgentAvatar-CrP1eXxk.js";import{C as b}from"./check-lrJ3a73a.js";import{C as w}from"./NewChatComposer-C97-iTMK.js";import{S as C}from"./sparkles-BjHq_DNK.js";import{X as f}from"./x-DAehov0E.js";import{T as I}from"./triangle-alert-CHoRGdVO.js";import{c as E}from"./createLucideIcon-zZ8Hx7er.js";import"./agent-state-DDhnFEEP.js";import"./time-Dhsh_2EG.js";import"./conversations-DoAAO6kA.js";import"./Provider-C35yu29I.js";import"./theme-vars-DNK0nn3k.js";import"./provider-Dojd8quC.js";import"./router-DCtl8wqb.js";import"./api-DSqpVKC7.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-3RfJpen8.js";import"./machine-scope-DJt9RZ2w.js";import"./sse-BCPRocpq.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-Bk3nyrkj.js";import"./model-CBkMvT1w.js";import"./DocumentFocusViewer-DJr0v0D_.js";import"./TextDocumentSurface-D52m7Vd8.js";import"./file-text-CnISiiw6.js";import"./index-CHD0qcfL.js";import"./chevron-right-DrfqcerI.js";import"./folder-D5prSkzz.js";import"./chevron-up-CETZJzjV.js";import"./code-xml-BhcNbLWU.js";import"./arrow-left-MVUKauwQ.js";import"./arrow-right-Bp-FpE5V.js";import"./scout-voice-CZx60X6E.js";import"./fx-z37u1o2z.js";import"./voice-turn-ledger-BMZxlSjg.js";import"./keyboard-nav-DDHegDbx.js";import"./media-blobs-Bi8pxr1u.js";import"./chunk-HRAB3GC3-DbVLgbWX.js";import"./SpriteAvatar-CpZWf54-.js";import"./CrewAvatar-kTznzqcO.js";import"./HarnessMark-C4naWc16.js";import"./runtime-picker-DXu2bOTh.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-OvccU82H.js";import"./colors-CFlbwC25.js";import"./index-724SdE6r.js";import"./NewChatOrigin-DFbF_XvR.js";import"./chevron-down-l1mrh5S9.js";import"./search-DT42oyRW.js";const z=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]],S=E("shield-alert",z);function L(t){const s=t.split(/\r?\n/).map(r=>r.trim()).find(Boolean)??"",a=110;return s.length>a?`${s.slice(0,a-1).trimEnd()}…`:s}function $e({pinnedAsk:t,onAnswer:s,onApprove:a,onReject:r,onSteer:n,enableKeyboard:d=!0}){const l=t.summary?.trim()||null,o=L(t.task),p=l&&l!==t.task.trim()?l:o,N=p!==o&&o.length>0,c=/\b(?:approve|approval|permission|allow|proceed|confirm|gate)\b/i.test(p),h=t.agentName??v(t.agentId)??t.agentId,g=c?`${h} needs approval`:`${h} asks`,u=j.useCallback(()=>{a?a():s()},[a,s]),x=j.useCallback(()=>{n?n():s()},[n,s]);return j.useEffect(()=>{if(!d)return;const k=i=>{const m=document.activeElement;m instanceof HTMLInputElement||m instanceof HTMLTextAreaElement||m instanceof HTMLElement&&m.isContentEditable||i.metaKey||i.ctrlKey||i.altKey||(i.key==="y"||i.key==="Y"?(i.preventDefault(),u()):i.key==="s"||i.key==="S"?(i.preventDefault(),x()):(i.key==="n"||i.key==="N")&&r&&(i.preventDefault(),r()))};return window.addEventListener("keydown",k),()=>window.removeEventListener("keydown",k)},[d,u,x,r]),e.jsxs("div",{className:`s-thread-pinned-ask surface-card ${c?"s-thread-pinned-ask--approval":"s-thread-pinned-ask--question"}`,role:"alert","aria-live":"assertive",children:[e.jsx(y,{agent:{id:t.agentId,name:h,harness:t.harness,state:"needs"},size:44,placement:"row",presence:!0,gaze:"up",className:"s-thread-pinned-ask-coin"}),e.jsxs("div",{className:"s-thread-pinned-ask-body",children:[e.jsx("span",{className:"s-thread-pinned-ask-eyebrow",children:g}),e.jsx("p",{className:"s-thread-pinned-ask-text",children:p}),N&&e.jsxs("p",{className:"s-thread-pinned-ask-context",children:["Re: ",o]})]}),e.jsxs("div",{className:"s-thread-pinned-ask-actions",children:[e.jsxs("button",{type:"button",className:"btn btn--primary s-thread-pinned-ask-btn",onClick:u,title:c?"Approve this gate [Y]":"Answer this question [Y]",children:[e.jsx("kbd",{className:"s-kbd",children:"[Y]"}),c?e.jsx(b,{size:13,strokeWidth:2.2}):e.jsx(w,{size:13}),e.jsx("span",{children:c?"Approve":"Answer"})]}),e.jsxs("button",{type:"button",className:"btn btn--ghost s-thread-pinned-ask-btn",onClick:x,title:"Provide guidance or steer [S]",children:[e.jsx("kbd",{className:"s-kbd",children:"[S]"}),e.jsx(C,{size:13,strokeWidth:1.9}),e.jsx("span",{children:"Steer"})]}),r&&e.jsxs("button",{type:"button",className:"btn btn--danger s-thread-pinned-ask-btn",onClick:r,title:"Reject or decline [N]",children:[e.jsx("kbd",{className:"s-kbd",children:"[N]"}),e.jsx(f,{size:13,strokeWidth:2.2}),e.jsx("span",{children:"Reject"})]})]})]})}function Ae({title:t,description:s,diff:a,command:r,risk:n="medium",onApprove:d,onReject:l,onSteer:o}){return e.jsxs("div",{className:"s-thread-approval-gate surface-card",role:"alert",children:[e.jsxs("div",{className:"s-thread-approval-gate-head",children:[e.jsxs("div",{className:"s-thread-approval-gate-title-wrap",children:[e.jsx(S,{size:16,className:"text-amber","aria-hidden":"true"}),e.jsx("span",{className:"label-sm text-amber",children:"Execution Approval Gate"}),n&&e.jsxs("span",{className:"chip chip--sm chip--mono chip--neutral",children:[n.toUpperCase()," RISK"]})]}),e.jsx("h3",{className:"s-thread-approval-gate-title",children:t}),s&&e.jsx("p",{className:"s-thread-approval-gate-desc",children:s})]}),r&&e.jsxs("div",{className:"s-thread-approval-gate-command surface-card surface-card--inset",children:[e.jsx("span",{className:"label-xs text-muted",children:"Command"}),e.jsx("code",{className:"s-thread-approval-gate-code",children:r})]}),a&&e.jsxs("div",{className:"s-thread-approval-gate-diff surface-card surface-card--inset",children:[e.jsx("span",{className:"label-xs text-muted",children:"Diff Preview"}),e.jsx("pre",{className:"s-thread-approval-gate-diff-pre",children:e.jsx("code",{children:a})})]}),e.jsxs("div",{className:"s-thread-approval-gate-actions",children:[e.jsxs("button",{type:"button",className:"btn btn--primary",onClick:d,children:[e.jsx("kbd",{className:"s-kbd",children:"[Y]"}),e.jsx(b,{size:13}),e.jsx("span",{children:"Approve Action"})]}),e.jsxs("button",{type:"button",className:"btn btn--danger",onClick:l,children:[e.jsx("kbd",{className:"s-kbd",children:"[N]"}),e.jsx(f,{size:13}),e.jsx("span",{children:"Reject"})]}),o&&e.jsxs("button",{type:"button",className:"btn btn--ghost",onClick:o,children:[e.jsx("kbd",{className:"s-kbd",children:"[S]"}),e.jsx("span",{children:"Steer…"})]})]})]})}function De({presence:t}){if(!t.showStrip)return null;const s=t.tone==="working";return e.jsxs("div",{className:`s-thread-status s-thread-status--${t.tone}`,"aria-live":"polite",children:[e.jsx("span",{className:"s-thread-status-dot-wrap","aria-hidden":"true",children:e.jsx("span",{className:`dot dot--sm ${s?"dot--working dot--pulse":"dot--neutral"}`})}),e.jsxs("div",{className:"s-thread-status-copy",children:[e.jsx("span",{className:"s-thread-status-label label-xs",children:t.label}),e.jsx("span",{className:"s-thread-status-detail",children:t.detail})]})]})}function T(t){switch(t){case"completed":return"Invocation completed";case"failed":return"Invocation failed";case"cancelled":return"Invocation cancelled";case"queued":return"Invocation queued";case"waking":return"Invocation waking";case"waiting":return"Invocation waiting";case"running":return"Invocation running";default:return`Invocation ${t.replace(/_/g," ")}`}}function $(t){switch(t){case"failed":return"failed";case"cancelled":return"cancelled";case"completed":return"completed";default:return"active"}}function Me({flight:t,onOpenSession:s}){const a=$(t.state),r=t.summary?.trim()||null,n=a==="failed"?I:a==="cancelled"?f:b;return e.jsxs("div",{className:`s-thread-flight-outcome s-thread-flight-outcome--${a}`,role:"status","aria-live":"polite",children:[e.jsxs("div",{className:"s-thread-flight-outcome-head",children:[e.jsx("span",{className:"s-thread-flight-outcome-mark","aria-hidden":"true",children:e.jsx(n,{size:12,strokeWidth:2.2})}),e.jsx("span",{className:"label-sm s-thread-flight-outcome-title",children:T(t.state)})]}),r&&e.jsx("p",{className:"s-thread-flight-outcome-summary",children:r}),e.jsx("p",{className:"s-thread-flight-outcome-note text-muted",children:"Broker outcome · observed turns are shown in the session when available."}),s&&e.jsx("div",{className:"s-thread-flight-outcome-actions",children:e.jsx("button",{type:"button",className:"btn btn--ghost",onClick:s,children:e.jsx("span",{children:"Open session"})})})]})}export{Ae as ApprovalGateCard,Me as ConversationFlightOutcome,De as ConversationStatusStrip,$e as PinnedAskCard};
|