@openscout/scout 0.2.86 → 0.2.90
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/README.md +10 -5
- package/bin/scoutd +0 -0
- package/dist/build-manifest.json +4 -4
- package/dist/client/assets/ActivityScreen-BUeb4ERK.js +1 -0
- package/dist/client/assets/{AddProjectForm-BNRpRPod.js → AddProjectForm-DtTfn4Zk.js} +1 -1
- package/dist/client/assets/AgentAvatar-CneOa70z.js +1 -0
- package/dist/client/assets/AgentConfigurationScreen-CkZ7EjZh.js +1 -0
- package/dist/client/assets/AgentDefinitionsWorkspace-0Y3kqMtv.js +1 -0
- package/dist/client/assets/{AgentDetailCard-FelCxQrT.js → AgentDetailCard-Dtc02KUO.js} +1 -1
- package/dist/client/assets/AgentFloorView-B5raPB_U.js +1 -0
- package/dist/client/assets/AgentInfoScreen-DFG4ElZD.js +1 -0
- package/dist/client/assets/{AgentLaneCard-CRDG74C1.js → AgentLaneCard-BRAkw8YJ.js} +1 -1
- package/dist/client/assets/{AgentLaneChrome-CWFqUdch.js → AgentLaneChrome-T8QE5742.js} +1 -1
- package/dist/client/assets/AgentLaneDetailSheet-C8RYotnv.js +4 -0
- package/dist/client/assets/{AgentLaneSummaryResize-yTM4GQAJ.js → AgentLaneSummaryResize-FyYweLo_.js} +1 -1
- package/dist/client/assets/AgentLanesEmbedScreen-Br7cmZVO.js +1 -0
- package/dist/client/assets/{AgentLanesPreflight-DJeDRTAN.js → AgentLanesPreflight-Cil3dNwu.js} +1 -1
- package/dist/client/assets/AgentLanesView-DPfO8MOo.js +2 -0
- package/dist/client/assets/{AgentLiveActions-Bn3zeZBN.js → AgentLiveActions-DwScaVRF.js} +1 -1
- package/dist/client/assets/AgentSessions-DKoWA0Lm.js +6 -0
- package/dist/client/assets/AgentsConsole-DoBIWGoq.js +1 -0
- package/dist/client/assets/AgentsScreen-JuUiSuwY.js +1 -0
- package/dist/client/assets/AgentsSubnav-BV0WAgzf.js +1 -0
- package/dist/client/assets/{AtopView-DymBCiXv.js → AtopView-ycxMrRwp.js} +1 -1
- package/dist/client/assets/BackToPicker-D6WgIDb-.js +1 -0
- package/dist/client/assets/BriefingDetailScreen-Zw-taW1s.js +6 -0
- package/dist/client/assets/{BriefingsScreen-CLvSOJjy.js → BriefingsScreen-BerYOoWS.js} +1 -1
- package/dist/client/assets/{BrokerMetadataPanel-DFAH-NO6.js → BrokerMetadataPanel-Cu93j-Ga.js} +1 -1
- package/dist/client/assets/BrokerScreen-CeN90URH.js +5 -0
- package/dist/client/assets/ChatCollapsedStrip-DdKyMSEM.js +1 -0
- package/dist/client/assets/{CodeDiffPane-C9HT1dCT.js → CodeDiffPane-BjCOBLze.js} +1 -1
- package/dist/client/assets/{CodeProjectPicker-5Y3GvXkM.js → CodeProjectPicker-NSGdCaK0.js} +1 -1
- package/dist/client/assets/{CodeScreen-DpN9kQvm.js → CodeScreen-CA9Sq6Dx.js} +1 -1
- package/dist/client/assets/ContextMenu-DnFcmfMR.js +1 -0
- package/dist/client/assets/ConversationComposer-CjRXFkvY.js +1 -0
- package/dist/client/assets/ConversationFeedRows-CgRTIpAv.js +1 -0
- package/dist/client/assets/ConversationHeader-CRmdtuL7.js +1 -0
- package/dist/client/assets/ConversationPanels-DCkcLIHk.js +2 -0
- package/dist/client/assets/ConversationScreen-Br0QQ3xo.js +1 -0
- package/dist/client/assets/ConversationScreen-yIKEsm-8.css +1 -0
- package/dist/client/assets/ConversationStatus-BJ1CMbAv.js +1 -0
- package/dist/client/assets/{DataTable-oJP339bX.js → DataTable-Dzqiaha4.js} +1 -1
- package/dist/client/assets/{DispatchAftermath-CH02HAVw.js → DispatchAftermath-B0WMg_z3.js} +1 -1
- package/dist/client/assets/DocumentFocusViewer-CZVVIAD5.js +1 -0
- package/dist/client/assets/{EmbeddableSurfacesLab-84b9I3fy.js → EmbeddableSurfacesLab-C3a7hJWO.js} +1 -1
- package/dist/client/assets/{EmptyState-BnDda92b.js → EmptyState-CYNJZMrZ.js} +1 -1
- package/dist/client/assets/{FileViewerPane-Dg7_88pv.js → FileViewerPane-Fwt8_KmD.js} +1 -1
- package/dist/client/assets/FleetSearch-Dsi_l2KW.js +1 -0
- package/dist/client/assets/FleetSearch-EXOe8ulE.css +1 -0
- package/dist/client/assets/FlightObserveScreen-g_tiGmvz.js +1 -0
- package/dist/client/assets/{FollowScreen-DcFBqr6l.js → FollowScreen-Bb_rcrzi.js} +1 -1
- package/dist/client/assets/{HarnessMark-DGZ6o6Ct.js → HarnessMark-DrE57dUq.js} +1 -1
- package/dist/client/assets/HarnessesScreen-CAsCJ_tG.js +1 -0
- package/dist/client/assets/{HerdrSession-DV2hD6Yh.js → HerdrSession-1eVu9Owj.js} +1 -1
- package/dist/client/assets/HomeHero-DEl-WBsT.css +1 -0
- package/dist/client/assets/HomeHero-W445QrG1.js +1 -0
- package/dist/client/assets/{KnowledgeSearchInspector-DNQjeWZO.js → KnowledgeSearchInspector-CbPVg3fr.js} +1 -1
- package/dist/client/assets/KnowledgeSearchScreen-C1lN1xJk.js +1 -0
- package/dist/client/assets/{LaneToolHoverCard-197xYmRp.js → LaneToolHoverCard-BkBcDYm-.js} +1 -1
- package/dist/client/assets/LaneTraceDetailSheet-CzTd44rf.js +1 -0
- package/dist/client/assets/{LaneTraceEventFocus-C9cmqxnK.js → LaneTraceEventFocus-BmMmPTyJ.js} +1 -1
- package/dist/client/assets/{MeshCanvas-C3_2p9B6.js → MeshCanvas-DwkjsiJ5.js} +2 -2
- package/dist/client/assets/{MeshCanvasMinimap-ZTjYWXTZ.js → MeshCanvasMinimap-vmCpU1sD.js} +1 -1
- package/dist/client/assets/MeshScreen-CkMepUpT.js +1 -0
- package/dist/client/assets/{MeshTopologyView-CBjHbAZw.js → MeshTopologyView-BD2xLE2C.js} +2 -2
- package/dist/client/assets/MessageComposerSuggestions-qbalTne_.js +1 -0
- package/dist/client/assets/MessagesScreen-C8UynyLC.js +1 -0
- package/dist/client/assets/{MissionContextRail-DXkrbcnZ.js → MissionContextRail-D5MEP2f4.js} +1 -1
- package/dist/client/assets/MissionControlView-K_I7eftL.js +1 -0
- package/dist/client/assets/MissionFocusOverlay-CWKLdUKG.js +1 -0
- package/dist/client/assets/MissionLeftAgentRow-ByGrNAcs.js +1 -0
- package/dist/client/assets/MissionLogPane-ZwHJ137T.js +1 -0
- package/dist/client/assets/{NewAgentModal-C18Ajovd.js → NewAgentModal-Do9aVvan.js} +1 -1
- package/dist/client/assets/NewChatComposer-DKlNX1UA.js +19 -0
- package/dist/client/assets/{NewChatOrigin-DpHS2Wmt.js → NewChatOrigin-DXPvX-hh.js} +1 -1
- package/dist/client/assets/ObserveEmbedScreen-Dghsq2on.js +2 -0
- package/dist/client/assets/ObserveTextFlow-DWNlmTVm.js +2 -0
- package/dist/client/assets/ObservedTopologyPanel-BlmGoxCE.js +2 -0
- package/dist/client/assets/OpenScoutAppShell-DDqQi-oe.js +87 -0
- package/dist/client/assets/OpsAgentsView-Bn_fGBdo.js +1 -0
- package/dist/client/assets/OpsScreen-DHnT-Q9R.js +1 -0
- package/dist/client/assets/OpsSubnav-CJRD7MjM.js +1 -0
- package/dist/client/assets/PlanView-B6gKo543.js +1 -0
- package/dist/client/assets/ProjectAgentProfile-Be1VOkI4.js +1 -0
- package/dist/client/assets/{ProjectAgentProfileBar-IDEpKZvI.js → ProjectAgentProfileBar-C5QWwZCn.js} +1 -1
- package/dist/client/assets/ProjectAgentProfileHero-DC7Dd8VL.js +1 -0
- package/dist/client/assets/ProjectsInbox-DCLrDmj1.js +2 -0
- package/dist/client/assets/ProjectsRail-C4hiXYSb.js +1 -0
- package/dist/client/assets/ProjectsScreen-jruZRjgD.js +1 -0
- package/dist/client/assets/ProjectsThreadAside-DYmL2dCY.js +1 -0
- package/dist/client/assets/Provider-p-xuaAoE.js +1 -0
- package/dist/client/assets/RailRow-Cf9LOiEj.css +1 -0
- package/dist/client/assets/RailRow-bRkkXIpR.js +1 -0
- package/dist/client/assets/RawSessionsTable-B7WKmXrk.js +1 -0
- package/dist/client/assets/RealtimeVoiceScreen-BzP3BQq9.js +1 -0
- package/dist/client/assets/{RepoDiffEmbedScreen-C97Euf4s.js → RepoDiffEmbedScreen-xjzjcJ_c.js} +1 -1
- package/dist/client/assets/{RepoDiffPageScreen-DUKLzkrW.js → RepoDiffPageScreen-DRzIY-dk.js} +1 -1
- package/dist/client/assets/RepoDiffViewer-CNDp01KM.js +7 -0
- package/dist/client/assets/RepoDiffViewerLazy-b6vjYxez.js +2 -0
- package/dist/client/assets/{ReposScreen-BR1LqTf1.js → ReposScreen-CpaLC_NU.js} +6 -6
- package/dist/client/assets/ScoutDeckSurface-DkpZ-0DH.js +1 -0
- package/dist/client/assets/{ScoutSurface-BMKW7hSu.js → ScoutSurface-BENBUt5-.js} +1 -1
- package/dist/client/assets/ScoutbotBroadcastChip-CGZyxS5H.js +2 -0
- package/dist/client/assets/{agent-autocomplete-C7xwIcwd.css → ScoutbotBroadcastChip-CxtYZWPZ.css} +1 -1
- package/dist/client/assets/{ScoutbotFxLab-0O2iDRrF.js → ScoutbotFxLab-Bk2ZsfPp.js} +1 -1
- package/dist/client/assets/ScoutbotRealtimeVoiceCall-n63LdBZs.js +1 -0
- package/dist/client/assets/{SecondaryNav-cYTw2p39.js → SecondaryNav-B4IsujYh.js} +1 -1
- package/dist/client/assets/{SessionEmbedScreen-mNjT0R6j.js → SessionEmbedScreen-CPfH-jqN.js} +1 -1
- package/dist/client/assets/{SessionObserve-zAlFbwFn.js → SessionObserve-B-SkP3tu.js} +1 -1
- package/dist/client/assets/{SessionObserveEvidence-BVawzqoE.js → SessionObserveEvidence-CF5jnH3-.js} +1 -1
- package/dist/client/assets/SessionRefScreen-C-4jjmVG.js +1 -0
- package/dist/client/assets/SessionsScreen-HAjFvmIq.js +1 -0
- package/dist/client/assets/SettingsDrawer-DATxwZrn.js +3 -0
- package/dist/client/assets/SettingsDrawer-UX7pFJU_.css +1 -0
- package/dist/client/assets/SettingsScreen-Bu53X7J_.js +1 -0
- package/dist/client/assets/{ShikiPane-DyEJdcvb.js → ShikiPane-DH8yYDks.js} +1 -1
- package/dist/client/assets/{SlidePanel-Dg8_styW.js → SlidePanel-RFXJpfUa.js} +1 -1
- package/dist/client/assets/{SpriteAvatar-DMrSssNZ.js → SpriteAvatar-CEYdCzem.js} +1 -1
- package/dist/client/assets/{StatusPill-NFFnphtx.js → StatusPill-9uy70ttd.js} +1 -1
- package/dist/client/assets/{TailView-BfObcZu3.js → TailView-6bIrgdxN.js} +2 -2
- package/dist/client/assets/Terminal-BI6km7H4.js +1 -0
- package/dist/client/assets/TerminalEmbedScreen-D4JOWwtm.js +1 -0
- package/dist/client/assets/{TextDocumentSurface-C7fGlzY8.js → TextDocumentSurface-BcP9vvji.js} +1 -1
- package/dist/client/assets/{TmuxPeek-BSeKIjnX.js → TmuxPeek-IaWqCgyJ.js} +1 -1
- package/dist/client/assets/{VoicePermissionsPanel-BkIGTzgw.js → VoicePermissionsPanel-C80iZxgy.js} +1 -1
- package/dist/client/assets/{WorkDetailScreen-Cwe-KWK4.js → WorkDetailScreen-CweZ6fEd.js} +3 -3
- package/dist/client/assets/WorkFilesViewer-Dy_-06iI.js +1 -0
- package/dist/client/assets/{activity-D4W2XZY2.js → activity-DS0u0Itf.js} +1 -1
- package/dist/client/assets/{addon-fit-Celjj2yn.js → addon-fit-CN888B3D.js} +1 -1
- package/dist/client/assets/{addon-webgl-Cu4tJ21-.js → addon-webgl-CoAnanQS.js} +1 -1
- package/dist/client/assets/{agent-essentials-CngjUhQj.js → agent-essentials-CuK4G_zS.js} +1 -1
- package/dist/client/assets/agent-identity-BxCsXnDp.js +1 -0
- package/dist/client/assets/{agent-lane-card-model-CSugZCdy.js → agent-lane-card-model-q4cwzLX4.js} +1 -1
- package/dist/client/assets/{agent-lane-detail-D5EIlX7_.js → agent-lane-detail-BNNm6FNu.js} +1 -1
- package/dist/client/assets/{agent-lane-preview-BhplDYGf.js → agent-lane-preview-C33Dwpn7.js} +1 -1
- package/dist/client/assets/{agent-lanes-DlqcEf0l.css → agent-lanes-BDNktFBZ.css} +1 -1
- package/dist/client/assets/{agent-lanes-model-BKOs_32K.js → agent-lanes-model-VYQ5a68i.js} +2 -2
- package/dist/client/assets/{api-BHHEUSS3.js → api-BkjHJfgJ.js} +1 -1
- package/dist/client/assets/api-h5zurxmi.js +1 -0
- package/dist/client/assets/{arc.es-DNT50Y-_.js → arc.es-BET9ev6q.js} +1 -1
- package/dist/client/assets/arrow-down-DxxPnPwh.js +1 -0
- package/dist/client/assets/{arrow-left-i-h6JAgs.js → arrow-left-CXDkJuCg.js} +1 -1
- package/dist/client/assets/{arrow-up-right-RBC6k8nn.js → arrow-up-right-Bj8RjSqW.js} +1 -1
- package/dist/client/assets/{bot-r2IuAuJd.js → bot-BSGSicKC.js} +1 -1
- package/dist/client/assets/broker-display-pp33bLsu.js +2 -0
- package/dist/client/assets/{cache-BO2Bd_LV.js → cache-Dr0why2k.js} +1 -1
- package/dist/client/assets/{check-Bfs7hMb1.js → check-BfA0T8UD.js} +1 -1
- package/dist/client/assets/{chevron-down-Da5tV19_.js → chevron-down-BVg09D6U.js} +1 -1
- package/dist/client/assets/{chevron-right-BMqtBds_.js → chevron-right-CaEwYkxE.js} +1 -1
- package/dist/client/assets/{chunk-HRAB3GC3-BUVYXXAp.js → chunk-HRAB3GC3-HhKwnZCi.js} +1 -1
- package/dist/client/assets/chunk-JTPDIGGW-DX2eTIQ_.js +46 -0
- package/dist/client/assets/chunk-T65CQEWV-D-bOfuCH.js +1 -0
- package/dist/client/assets/chunk-YOZR3KYS-oS9dlQCI.js +2 -0
- package/dist/client/assets/{clock-DaKLp6Xd.js → clock-C3TUL7D7.js} +1 -1
- package/dist/client/assets/{code-xml-ByQsfOI_.js → code-xml-Dbvjk9Kw.js} +1 -1
- package/dist/client/assets/collapsed-strip-Dz-of2SM.css +1 -0
- package/dist/client/assets/content-BQuEedeL.js +1 -0
- package/dist/client/assets/content-BUae-L_N.js +1 -0
- package/dist/client/assets/content-BfG98J1k.js +1 -0
- package/dist/client/assets/content-BkVTfkAC.js +1 -0
- package/dist/client/assets/content-BsNMos_d.js +1 -0
- package/dist/client/assets/content-C2TZOKSE.js +1 -0
- package/dist/client/assets/content-CCn98eSk.js +1 -0
- package/dist/client/assets/content-CJuH5cDP.js +1 -0
- package/dist/client/assets/content-CYnPp9yo.js +1 -0
- package/dist/client/assets/content-CcrUhm4P.js +1 -0
- package/dist/client/assets/content-CiOMtgQc.js +1 -0
- package/dist/client/assets/content-CxuVONeQ.js +1 -0
- package/dist/client/assets/content-Dmq9n1_L.js +1 -0
- package/dist/client/assets/content-DskHP2NI.js +1 -0
- package/dist/client/assets/content-DvvzL2HK.js +1 -0
- package/dist/client/assets/content-snCAUbwv.js +1 -0
- package/dist/client/assets/{conversation-icons-C4amK8Sa.js → conversation-icons-DmC_Ak3z.js} +1 -1
- package/dist/client/assets/conversation-model-CHwHZNw-.js +1 -0
- package/dist/client/assets/conversation-motion-features-DPiGTO21.js +1 -0
- package/dist/client/assets/{copy-De4s38o2.js → copy-C79v_7D-.js} +1 -1
- package/dist/client/assets/{createLucideIcon-DLlxGjKt.js → createLucideIcon-DCq_3fQn.js} +1 -1
- package/dist/client/assets/ctx-panel-B4s49N9e.css +1 -0
- package/dist/client/assets/discover-IEnbrH8_.js +2 -0
- package/dist/client/assets/embed-entry-XUPb-AzL.js +2 -0
- package/dist/client/assets/{external-link-BGHC_naA.js → external-link-Dd8xaveL.js} +1 -1
- package/dist/client/assets/{eye-BeCSqJn1.js → eye-DkU59kfl.js} +1 -1
- package/dist/client/assets/{file-text-BVhkMWyC.js → file-text-BITQqGtF.js} +1 -1
- package/dist/client/assets/gestures-B5rLNRpi.js +1 -0
- package/dist/client/assets/home-moving-signal-Bs635mVw.js +1 -0
- package/dist/client/assets/home-moving-signal-CAa0V91u.css +1 -0
- package/dist/client/assets/home-now-card-VxlLjg1A.js +1 -0
- package/dist/client/assets/{home-now-card-nano-Djhy6ax0.js → home-now-card-nano-C06GMiwD.js} +1 -1
- package/dist/client/assets/hooks-BWiLxTw1.js +2 -0
- package/dist/client/assets/index-9as_JTUs.css +1 -0
- package/dist/client/assets/index-BTj2MguM.js +1 -0
- package/dist/client/assets/index-BZovGpDk.js +10 -0
- package/dist/client/assets/index-CvF09yvf.css +1 -0
- package/dist/client/assets/index-DiiEQwdc.js +1 -0
- package/dist/client/assets/index-vbaJ8sin.js +1 -0
- package/dist/client/assets/inspector-panel-C96HcyK5.js +2 -0
- package/dist/client/assets/{keyboard-nav-7iEtvu9P.js → keyboard-nav-CHo_xmjw.js} +1 -1
- package/dist/client/assets/{lane-observe-vfyACHi0.js → lane-observe-BA3g9aVd.js} +1 -1
- package/dist/client/assets/{lane-roster-store-pHT3TAVs.js → lane-roster-store-B6ybJlHJ.js} +1 -1
- package/dist/client/assets/left-Bk3XnxPD.css +1 -0
- package/dist/client/assets/left-BuJ0wJW1.js +2 -0
- package/dist/client/assets/left-C6Zj3cR4.js +1 -0
- package/dist/client/assets/left-CCoobxPS.css +1 -0
- package/dist/client/assets/left-COMAiMfB.js +2 -0
- package/dist/client/assets/left-Ce4WKYPK.js +1 -0
- package/dist/client/assets/left-DMJkmJOF.js +1 -0
- package/dist/client/assets/left-DrCbY6ja.js +1 -0
- package/dist/client/assets/left-agents-BuSyVNGE.js +1 -0
- package/dist/client/assets/left-default-DRHywOKX.js +1 -0
- package/dist/client/assets/left-l92tw5Kc.js +1 -0
- package/dist/client/assets/left-lanes-4-aUyyrV.js +1 -0
- package/dist/client/assets/left-mission-e849d_Td.js +1 -0
- package/dist/client/assets/left-plan-MchYwAB_.js +2 -0
- package/dist/client/assets/library-DygjpA6u.js +1 -0
- package/dist/client/assets/{loader-circle-DoT8gpw6.js → loader-circle-B-l2Wj3-.js} +1 -1
- package/dist/client/assets/{local-agents-BMadXuP1.js → local-agents-Wof5knTJ.js} +1 -1
- package/dist/client/assets/{mentions-Cd6XticV.js → mentions-BjXfeF7t.js} +1 -1
- package/dist/client/assets/{mesh-ops-C0zCLTR8.js → mesh-ops-C1gq8zKf.js} +1 -1
- package/dist/client/assets/{mesh-view-store-Cpqil_2D.js → mesh-view-store-B56D3f77.js} +1 -1
- package/dist/client/assets/{message-circle-44KSmbvQ.js → message-circle-BwVx5X0q.js} +1 -1
- package/dist/client/assets/{message-markup-DAnnGpWr.js → message-markup-DlVX-iuc.js} +1 -1
- package/dist/client/assets/{message-square-DlY4EneU.js → message-square-BnkG6tae.js} +1 -1
- package/dist/client/assets/mission-control-m3BTDQ9l.css +1 -0
- package/dist/client/assets/{mission-control-store-DtjtRs9Z.js → mission-control-store-CMgIVjLJ.js} +1 -1
- package/dist/client/assets/model-Co0zkMIc.js +1 -0
- package/dist/client/assets/{observe-DL5_8-Zj.js → observe-DVHAcIrv.js} +1 -1
- package/dist/client/assets/{operator-attention-BqoWAlhp.js → operator-attention-BwSPeheT.js} +1 -1
- package/dist/client/assets/{page-status-CW8co39E.js → page-status-Bg2hd27j.js} +1 -1
- package/dist/client/assets/paperclip-DblaLD_N.js +1 -0
- package/dist/client/assets/plan-view-D56fneVF.css +1 -0
- package/dist/client/assets/{plus-64n9qucr.js → plus-BAI0t5g9.js} +1 -1
- package/dist/client/assets/profile-3Q4sUtvJ.js +1 -0
- package/dist/client/assets/projects-inbox-Da2hYEn6.js +1 -0
- package/dist/client/assets/{radio-BjpQTKT0.js → radio-BGtkyCG9.js} +1 -1
- package/dist/client/assets/{refresh-cw-IgN2fZLM.js → refresh-cw-DtF8xPqX.js} +1 -1
- package/dist/client/assets/resolve-panes-D4tlKNCT.js +1 -0
- package/dist/client/assets/resolve-sidebar-context-B27lj3Ci.js +1 -0
- package/dist/client/assets/right-B8qg3JdB.js +1 -0
- package/dist/client/assets/{right-B96CBzrV.js → right-BU_W1kSH.js} +1 -1
- package/dist/client/assets/right-BlR7h0US.js +1 -0
- package/dist/client/assets/right-BwgwTGGd.js +1 -0
- package/dist/client/assets/right-ByptvkVX.js +1 -0
- package/dist/client/assets/right-CUP-NIDG.js +1 -0
- package/dist/client/assets/right-Ch_jrNe2.js +1 -0
- package/dist/client/assets/right-Dd2DscRz.js +1 -0
- package/dist/client/assets/right-DmVHd8Xj.js +1 -0
- package/dist/client/assets/{right-DqiVyo8v.js → right-c4PAdFYZ.js} +1 -1
- package/dist/client/assets/{rocket-DnmN_YOD.js → rocket-BWh18pt_.js} +1 -1
- package/dist/client/assets/router-63XV_E7f.js +1 -0
- package/dist/client/assets/{text-BR9Bap0E.js → runtime-picker-BXKJbLot.js} +1 -1
- package/dist/client/assets/runtime-picker-vhm0gtLs.css +1 -0
- package/dist/client/assets/{scope-views-Z8aoAmtU.js → scope-views-Dm2_-NPi.js} +1 -1
- package/dist/client/assets/scout-voice-D8Q5sZOL.js +1 -0
- package/dist/client/assets/{scoutbot-D4vuKzOL.js → scoutbot-BTIErYHo.js} +2 -2
- package/dist/client/assets/{scroll-text-DRidbcse.js → scroll-text-DZb3mmYo.js} +1 -1
- package/dist/client/assets/{search-BbgsEMXa.js → search-1QMVOxF3.js} +1 -1
- package/dist/client/assets/secondaryNavConfig-c0cz3MkJ.js +1 -0
- package/dist/client/assets/{selection-bridge-CpzFGx3-.js → selection-bridge-O9C4kGfF.js} +1 -1
- package/dist/client/assets/{send-horizontal-BXo2uz3Z.js → send-horizontal-DbyEkGql.js} +1 -1
- package/dist/client/assets/{server-Dt3tpiBj.js → server-Bncn9S7r.js} +1 -1
- package/dist/client/assets/{session-catalog-CUQ8LUJY.js → session-catalog-DC6BlBBC.js} +1 -1
- package/dist/client/assets/{session-table-B4JOKevn.js → session-table-BUPq9Viy.js} +1 -1
- package/dist/client/assets/{sliders-horizontal-7V8B3xsf.js → sliders-horizontal-CMe8Bay1.js} +1 -1
- package/dist/client/assets/{sparkles-ytTwpCbZ.js → sparkles-_7cTZsIH.js} +1 -1
- package/dist/client/assets/{sse-CSozY6mp.js → sse-Bb0EOcU9.js} +1 -1
- package/dist/client/assets/system-surfaces-redesign-B7GQhfpw.css +1 -0
- package/dist/client/assets/{tail-display-DcliDVkW.js → tail-display-BRcJltQa.js} +1 -1
- package/dist/client/assets/{tail-events-CrN-Rmxj.js → tail-events-C12pfUax.js} +1 -1
- package/dist/client/assets/{terminal-relay-pSm7_An6.js → terminal-relay-BgfVJXIL.js} +1 -1
- package/dist/client/assets/{terminal-sessions-D4dHTRkt.js → terminal-sessions-AmSgHklm.js} +1 -1
- package/dist/client/assets/{terminal-takeover-CtA3wcXh.js → terminal-takeover--05EYhJm.js} +1 -1
- package/dist/client/assets/{terminal-BiNIXhna.js → terminal-xGf_F3y7.js} +1 -1
- package/dist/client/assets/text-DsBWV_4k.js +1 -0
- package/dist/client/assets/{use-conversation-list-C0bEXFeH.js → use-conversation-list-DWX02INv.js} +1 -1
- package/dist/client/assets/{use-fleet-active-asks-CK4aw-3G.js → use-fleet-active-asks-Cnwa4hTK.js} +1 -1
- package/dist/client/assets/{use-mesh-ops-items-QixBijmT.js → use-mesh-ops-items-BRFm37oY.js} +1 -1
- package/dist/client/assets/use-reduced-motion-C8cWvIZ3.js +1 -0
- package/dist/client/assets/use-scout-dev-flags-FkMreOOb.js +1 -0
- package/dist/client/assets/{useAgentHoverCard-6N8b7qsU.js → useAgentHoverCard-DvPZSJK3.js} +1 -1
- package/dist/client/assets/useContentSecondaryNav-CNlrhvvx.js +1 -0
- package/dist/client/assets/{usePierreRuntime-Bq6mXrgd.js → usePierreRuntime-C8WJ0X3F.js} +1 -1
- package/dist/client/assets/{wrench-CQvdf7KT.js → wrench-_tHBGTop.js} +1 -1
- package/dist/client/assets/{x-BJyPzFnn.js → x-CrGUKNRv.js} +1 -1
- package/dist/client/assets/{xterm-D6dE_wMr.js → xterm-Ks-VlLTq.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/main.mjs +38 -169
- package/dist/node/main.mjs +240 -272
- package/dist/pairing-runtime-controller.mjs +476 -394
- package/dist/runtime/base-daemon.mjs +121 -49
- package/dist/runtime/broker-daemon.mjs +60 -171
- package/dist/runtime/broker-process-manager.mjs +0 -6
- package/dist/runtime/mesh-discover.mjs +0 -6
- package/dist/scout-control-plane-web.mjs +477 -672
- package/dist/scout-web-server.mjs +477 -672
- package/package.json +7 -6
- package/dist/client/assets/ActivityScreen-C7AwUogt.js +0 -1
- package/dist/client/assets/AgentAvatar-B1xvQ7ej.js +0 -1
- package/dist/client/assets/AgentConfigurationScreen-BoBQpyz5.js +0 -1
- package/dist/client/assets/AgentDefinitionsWorkspace-rw3vh8Lm.js +0 -1
- package/dist/client/assets/AgentFloorView-Crdw8Uo5.js +0 -1
- package/dist/client/assets/AgentInfoScreen-Cge7HHbV.js +0 -1
- package/dist/client/assets/AgentLaneDetailSheet-DCIIg3Zp.js +0 -4
- package/dist/client/assets/AgentLanesEmbedScreen-BJLwXSNp.js +0 -1
- package/dist/client/assets/AgentLanesView-CbY9qD0z.js +0 -2
- package/dist/client/assets/AgentSessions-czl5zT7A.js +0 -6
- package/dist/client/assets/AgentsConsole-CoT2crwq.js +0 -1
- package/dist/client/assets/AgentsScreen-BcPM-z1T.js +0 -1
- package/dist/client/assets/AgentsSubnav-3_vpn2bT.js +0 -1
- package/dist/client/assets/AstronautSuit-BADl7m8x.js +0 -1
- package/dist/client/assets/BackToPicker-CqYhOaLB.js +0 -1
- package/dist/client/assets/BriefingDetailScreen-DDfZ8ci1.js +0 -1
- package/dist/client/assets/BrokerScreen-Bkvu92jk.js +0 -5
- package/dist/client/assets/Canvas-KyTsDJlB.js +0 -1
- package/dist/client/assets/ChatCollapsedStrip-Bjjqa30K.js +0 -1
- package/dist/client/assets/ConversationComposer-Ce7Byw48.js +0 -1
- package/dist/client/assets/ConversationFeedRows-DygDfQn_.js +0 -1
- package/dist/client/assets/ConversationHeader-C3sg0ULI.js +0 -1
- package/dist/client/assets/ConversationPanels-Dg4Y2GgX.js +0 -6
- package/dist/client/assets/ConversationScreen-BP5tdz2k.css +0 -1
- package/dist/client/assets/ConversationScreen-CjWWmuuh.js +0 -1
- package/dist/client/assets/ConversationStatus-BhVIYQza.js +0 -1
- package/dist/client/assets/CrewWorkspaces-B6YIyw1z.css +0 -1
- package/dist/client/assets/CrewWorkspaces-CDU-wy1Y.js +0 -1
- package/dist/client/assets/DocumentFocusViewer-DmtFisY9.js +0 -1
- package/dist/client/assets/FlightObserveScreen-DL3Xhl0h.js +0 -1
- package/dist/client/assets/HarnessesScreen-DTDL-XaA.js +0 -1
- package/dist/client/assets/HomeHero-7JwycwFY.css +0 -1
- package/dist/client/assets/HomeHero-CENwVZ45.js +0 -1
- package/dist/client/assets/HostAdvisorView-PgiZUkd_.js +0 -1
- package/dist/client/assets/KnowledgeSearchScreen-Bj80IgR0.js +0 -1
- package/dist/client/assets/LaneTraceDetailSheet-BztwvOv9.js +0 -1
- package/dist/client/assets/MeshScreen-lJKaOyGB.js +0 -1
- package/dist/client/assets/MessagesScreen-D6MVLvdg.js +0 -1
- package/dist/client/assets/MissionControlView-BCH-Zsp4.js +0 -1
- package/dist/client/assets/MissionFocusOverlay-DbAliOSF.js +0 -1
- package/dist/client/assets/MissionLeftAgentRow-Bx6Pg8_O.js +0 -1
- package/dist/client/assets/MissionLogPane-D06c29Y8.js +0 -1
- package/dist/client/assets/NewChatComposer-Bgqes0UQ.js +0 -19
- package/dist/client/assets/ObserveEmbedScreen-Cmhwai4X.js +0 -2
- package/dist/client/assets/ObserveTextFlow-C1f5oize.js +0 -2
- package/dist/client/assets/ObservedTopologyPanel-D85P6RAk.js +0 -2
- package/dist/client/assets/OpenScoutAppShell-IDI4fuUE.js +0 -88
- package/dist/client/assets/OpsAgentsView-yt0JavoB.js +0 -1
- package/dist/client/assets/OpsScreen-C3yNQqJE.js +0 -1
- package/dist/client/assets/OpsSubnav-BijKI3yG.js +0 -1
- package/dist/client/assets/ProjectAgentProfile-DnIeC16r.js +0 -1
- package/dist/client/assets/ProjectAgentProfileHero-Bh_aISs-.js +0 -1
- package/dist/client/assets/ProjectsInbox-B8Srlklk.js +0 -2
- package/dist/client/assets/ProjectsRail-DqAbdvCf.js +0 -1
- package/dist/client/assets/ProjectsScreen-DKHQ2iEv.js +0 -1
- package/dist/client/assets/ProjectsThreadAside-DpkjYLL2.js +0 -1
- package/dist/client/assets/Provider-Ve8yXaWR.js +0 -1
- package/dist/client/assets/RailRow-B0sRaJc6.css +0 -1
- package/dist/client/assets/RailRow-C4GNGR80.js +0 -1
- package/dist/client/assets/RawSessionsTable-Co3vzwsf.js +0 -1
- package/dist/client/assets/RealtimeVoiceScreen-DMd1CBAf.js +0 -9
- package/dist/client/assets/RepoDiffViewer-CovKjSgb.js +0 -7
- package/dist/client/assets/RepoDiffViewerLazy-zIiEmh-e.js +0 -2
- package/dist/client/assets/ScoutDeckSurface-BGsVicc2.js +0 -1
- package/dist/client/assets/SessionRefScreen-BmKhf29o.js +0 -1
- package/dist/client/assets/SessionsScreen-CsSqjIY2.js +0 -1
- package/dist/client/assets/SettingsDrawer-Dsj-On_x.css +0 -1
- package/dist/client/assets/SettingsDrawer-DwYQTGi8.js +0 -3
- package/dist/client/assets/SettingsScreen-Btaku7YM.js +0 -1
- package/dist/client/assets/Terminal-Dr-M9U4u.js +0 -1
- package/dist/client/assets/TerminalEmbedScreen-BmyZkonh.js +0 -1
- package/dist/client/assets/TerminalRelay-lJ2KdMCW.js +0 -46
- package/dist/client/assets/WorkFilesViewer-BBtKRBPv.js +0 -1
- package/dist/client/assets/agent-autocomplete-Dv-_9dAw.js +0 -2
- package/dist/client/assets/agent-identity-DzHGhLdJ.js +0 -1
- package/dist/client/assets/agent-specialization-CNrsRbKA.js +0 -1
- package/dist/client/assets/api-DEHEgJ9m.js +0 -1
- package/dist/client/assets/archive-DH49QqFG.js +0 -1
- package/dist/client/assets/arrow-right-B0Yi01Zr.js +0 -1
- package/dist/client/assets/broker-display-Q75fupqG.js +0 -2
- package/dist/client/assets/collapsed-strip-raJWthAH.css +0 -1
- package/dist/client/assets/compass-BepM5iWH.js +0 -1
- package/dist/client/assets/content-5hnDC9WE.js +0 -1
- package/dist/client/assets/content-BRFZ-a6m.js +0 -1
- package/dist/client/assets/content-BYykncDo.js +0 -1
- package/dist/client/assets/content-Be6yyWbJ.js +0 -1
- package/dist/client/assets/content-Bgl_X3ao.js +0 -1
- package/dist/client/assets/content-BopJW1Zx.js +0 -1
- package/dist/client/assets/content-Bv2sfg0w.js +0 -1
- package/dist/client/assets/content-CMBiIZTg.js +0 -1
- package/dist/client/assets/content-CPVqvf5o.js +0 -1
- package/dist/client/assets/content-CbwyFqdI.js +0 -1
- package/dist/client/assets/content-ClQjAWYi.js +0 -1
- package/dist/client/assets/content-Cv2tSAbv.js +0 -1
- package/dist/client/assets/content-DFFe3-Ot.js +0 -1
- package/dist/client/assets/content-DY5hwBmm.js +0 -1
- package/dist/client/assets/content-_IXoxGno.js +0 -1
- package/dist/client/assets/content-j_tewJdE.js +0 -1
- package/dist/client/assets/conversation-model-CigSPlKA.js +0 -1
- package/dist/client/assets/conversation-motion-features-_95aZx_1.js +0 -1
- package/dist/client/assets/cpu-Bc268H9Q.js +0 -1
- package/dist/client/assets/credentials-qwds23lv.js +0 -1
- package/dist/client/assets/ctx-panel-D_HJ3nhb.css +0 -1
- package/dist/client/assets/discover-DOlk1hG7.js +0 -2
- package/dist/client/assets/embed-entry-BqDJfa87.js +0 -2
- package/dist/client/assets/file-code-corner-CX53Cd9y.js +0 -1
- package/dist/client/assets/gauge-CPcEPmNt.js +0 -1
- package/dist/client/assets/gestures-BXIGYk_p.js +0 -1
- package/dist/client/assets/git-branch-q8Ayc8py.js +0 -1
- package/dist/client/assets/home-moving-signal-DMguaRWR.css +0 -1
- package/dist/client/assets/home-moving-signal-Dm2Z2x0p.js +0 -1
- package/dist/client/assets/home-now-card-xU5LGP7q.js +0 -1
- package/dist/client/assets/hooks-CdKx1CxP.js +0 -2
- package/dist/client/assets/host-advisor-B2Fqs5Dd.css +0 -1
- package/dist/client/assets/index-Bli6bTLU.js +0 -10
- package/dist/client/assets/index-D7UEHxaY.js +0 -1
- package/dist/client/assets/index-DFdlQs_c.js +0 -1
- package/dist/client/assets/index-DhfOMK0D.js +0 -1
- package/dist/client/assets/index-DzlEgstl.css +0 -1
- package/dist/client/assets/index-wLwc74Pu.css +0 -1
- package/dist/client/assets/inspector-panel-B8pigRsg.js +0 -2
- package/dist/client/assets/layers-BiZA-Clc.js +0 -1
- package/dist/client/assets/layout-grid-DMpv9CZM.js +0 -1
- package/dist/client/assets/left-BayK4ocL.js +0 -1
- package/dist/client/assets/left-BhZhSrS2.js +0 -1
- package/dist/client/assets/left-BhgU6NOA.js +0 -1
- package/dist/client/assets/left-CY_FGnN7.js +0 -1
- package/dist/client/assets/left-Cq8mjamr.js +0 -1
- package/dist/client/assets/left-DH44V4I_.css +0 -1
- package/dist/client/assets/left-Dnqla0b5.js +0 -2
- package/dist/client/assets/left-Dy403II2.js +0 -2
- package/dist/client/assets/left-R2OOE7VG.css +0 -1
- package/dist/client/assets/left-advisor-oOAtJ9YE.js +0 -1
- package/dist/client/assets/left-agents-TIKe8vW8.js +0 -1
- package/dist/client/assets/left-default-owH0Lwxo.js +0 -1
- package/dist/client/assets/left-lanes-BE_co2lP.js +0 -1
- package/dist/client/assets/left-mission-C_nWUtfA.js +0 -1
- package/dist/client/assets/library-BSVrjn_m.js +0 -1
- package/dist/client/assets/mission-control-CnU7dNt1.css +0 -1
- package/dist/client/assets/persistent-state-DYjP8lqN.js +0 -1
- package/dist/client/assets/profile-BkmuseW7.js +0 -1
- package/dist/client/assets/projects-inbox-C0umZMSY.js +0 -1
- package/dist/client/assets/provider-CX9EWecp.js +0 -1
- package/dist/client/assets/proxy-C35W-YHZ.js +0 -1
- package/dist/client/assets/resolve-panes-CCqRkQdM.js +0 -1
- package/dist/client/assets/resolve-sidebar-context-JkxY8qsV.js +0 -1
- package/dist/client/assets/right-B3PQUHd5.js +0 -1
- package/dist/client/assets/right-BPirlFC8.js +0 -1
- package/dist/client/assets/right-BUP2Ro_M.js +0 -1
- package/dist/client/assets/right-BVWYPIFX.js +0 -1
- package/dist/client/assets/right-BoAJxwA3.js +0 -1
- package/dist/client/assets/right-C2aOC2li.js +0 -1
- package/dist/client/assets/right-CtPJjgOV.js +0 -1
- package/dist/client/assets/right-SfSu0zHC.js +0 -1
- package/dist/client/assets/router-B0YclXYg.js +0 -1
- package/dist/client/assets/scout-voice-DvG_3stJ.js +0 -1
- package/dist/client/assets/scoutbot-markdown-BJJyaPu2.js +0 -6
- package/dist/client/assets/secondaryNavConfig-DyC_P9Wx.js +0 -1
- package/dist/client/assets/settings-BzWCF3NF.js +0 -1
- package/dist/client/assets/system-surfaces-redesign-QVXNeGYw.css +0 -1
- package/dist/client/assets/text-rLpBg4_z.css +0 -1
- package/dist/client/assets/use-reduced-motion-BLn59zLn.js +0 -1
- package/dist/client/assets/use-scout-dev-flags-JKb1EhFh.js +0 -1
- package/dist/client/assets/useContentSecondaryNav-D-hVKzM9.js +0 -1
- package/dist/client/assets/usePersistentState-DOEahRlt.js +0 -1
- package/dist/client/assets/zap-rw7uwZht.js +0 -1
- /package/dist/client/assets/{DocumentFocusViewer-BSC_JwVE.css → document-focus-viewer-BSC_JwVE.css} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as t}from"./index-Bli6bTLU.js";import{S as i}from"./SecondaryNav-cYTw2p39.js";import{A as m}from"./secondaryNavConfig-DyC_P9Wx.js";import"./createLucideIcon-DLlxGjKt.js";import"./message-square-DlY4EneU.js";import"./file-text-BVhkMWyC.js";import"./search-BbgsEMXa.js";import"./compass-BepM5iWH.js";import"./settings-BzWCF3NF.js";import"./terminal-BiNIXhna.js";import"./git-branch-q8Ayc8py.js";import"./code-xml-ByQsfOI_.js";import"./scroll-text-DRidbcse.js";function j({activeRoute:r,navigate:o}){return t.jsx(i,{ariaLabel:"Agents sections",activeRoute:r,groups:m,navigate:o})}export{j as AgentsSubnav};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as t}from"./index-Bli6bTLU.js";function r(){return t.jsxs("svg",{className:"s-thread-participant-suit",viewBox:"0 0 42 42","aria-hidden":"true",children:[t.jsx("path",{d:"M 21 30.5 C 31 30.5 40 34.5 41.5 42 L 0.5 42 C 2 34.5 11 30.5 21 30.5 Z",fill:"var(--fp-suit)"}),t.jsx("rect",{x:"15.5",y:"26.5",width:"11",height:"4",rx:"2",fill:"var(--fp-suit-light)"}),t.jsx("path",{d:"M 8.5 15 A 13 13 0 0 1 19 5.5",fill:"none",stroke:"var(--fp-visor)",strokeWidth:"2.4",strokeLinecap:"round"})]})}export{r as AstronautSuit};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as k,j as s}from"./index-Bli6bTLU.js";import{u as d,m as B,n as m}from"./router-B0YclXYg.js";function p(t){switch(t.view){case"mesh":return"Back to mesh";case"ops":return"Back to ops";case"agents-v2":return t.agentId?"Registry":"All agents";case"messages":return"Back to conversations";case"conversation":return"Back to conversation";case"inbox":return"Back to inbox";case"sessions":return"Back to sessions";case"terminal":return"Terminal Control";case"work":return"Back to work";case"broker":return"Back to broker";case"activity":return"Back to activity";default:return"Back"}}function w({slot:t,fallback:n,navigate:c,className:r,label:i}){const e=d(),o=k.useMemo(()=>B(e.state),[e.state]),a=o??n,u=i??p(a),l=m(e.state)&&!!o;return s.jsxs("button",{type:"button",className:`s-back-pill${r?` ${r}`:""}`,onClick:()=>{if(l&&typeof window<"u"&&window.history.length>1){window.history.back();return}c(a)},children:[s.jsx("span",{"aria-hidden":!0,className:"s-back-pill-glyph",children:"←"}),s.jsx("span",{children:u})]})}export{w as B};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as o,j as e}from"./index-Bli6bTLU.js";import{E as p}from"./EmptyState-BnDda92b.js";import{a as f}from"./api-DEHEgJ9m.js";import{S as b}from"./scoutbot-markdown-BJJyaPu2.js";import{b as h,t as u}from"./time-Dhsh_2EG.js";/* empty css *//* empty css */import"./Provider-Ve8yXaWR.js";import"./provider-CX9EWecp.js";import"./router-B0YclXYg.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-D4dHTRkt.js";import"./sse-CSozY6mp.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-D4vuKzOL.js";import"./DocumentFocusViewer-DmtFisY9.js";import"./createLucideIcon-DLlxGjKt.js";import"./TextDocumentSurface-C7fGlzY8.js";import"./file-text-BVhkMWyC.js";import"./x-BJyPzFnn.js";import"./chevron-right-BMqtBds_.js";import"./code-xml-ByQsfOI_.js";import"./arrow-left-i-h6JAgs.js";import"./arrow-right-B0Yi01Zr.js";import"./scout-voice-DvG_3stJ.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-7iEtvu9P.js";import"./NewChatComposer-Bgqes0UQ.js";import"./text-BR9Bap0E.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DoT8gpw6.js";import"./conversation-model-CigSPlKA.js";import"./index-DFdlQs_c.js";import"./HarnessMark-DGZ6o6Ct.js";import"./NewChatOrigin-DpHS2Wmt.js";import"./chevron-down-Da5tV19_.js";import"./search-BbgsEMXa.js";import"./chunk-HRAB3GC3-BUVYXXAp.js";import"./external-link-BGHC_naA.js";const g={"fleet-home":"fleet briefing",tour:"tour briefing"};function fe({briefingId:s,navigate:i}){const[r,n]=o.useState(null),[t,a]=o.useState(null),c=o.useCallback(async()=>{try{const d=await f(`/api/briefings/${encodeURIComponent(s)}`);n(d),a(null)}catch(d){a(d instanceof Error?d.message:"Failed to load briefing")}},[s]);return o.useEffect(()=>{c()},[c]),t?e.jsxs("div",{className:"sys-surface-page sys-surface-page-wide",children:[e.jsx("button",{type:"button",className:"briefing-detail-back",onClick:()=>i({view:"briefings"}),children:"← back to briefings"}),e.jsx(p,{title:"Couldn't load briefing",body:t})]}):r?e.jsxs("div",{className:"sys-surface-page sys-surface-page-wide briefing-detail",children:[e.jsx("button",{type:"button",className:"briefing-detail-back",onClick:()=>i({view:"briefings"}),children:"← back to briefings"}),e.jsxs("header",{className:"briefing-detail-header",children:[e.jsx("h2",{children:r.title}),e.jsxs("div",{className:"briefing-detail-header-meta",children:[e.jsx("span",{className:`briefing-kind briefing-kind-${r.kind}`,children:g[r.kind]}),e.jsx("span",{children:h(r.preparedAt)}),e.jsxs("span",{children:["· ",u(r.preparedAt)]})]}),e.jsx("p",{className:"briefing-detail-summary",children:r.summary}),r.recommendation?e.jsx("div",{className:"briefing-detail-recommendation",children:r.recommendation}):null]}),r.markdown?e.jsx(x,{markdown:r.markdown}):null,r.brief?.presented?e.jsx(y,{presented:r.brief.presented}):null,e.jsx(j,{call:r.call}),e.jsx(N,{brief:r.brief,navigate:i}),e.jsx(k,{observations:r.observations,navigate:i}),e.jsx(v,{snapshot:r.snapshot,call:r.call})]}):e.jsx("div",{className:"sys-surface-page sys-surface-page-wide",children:e.jsx("div",{className:"briefings-placeholder",children:"Loading briefing..."})})}function x({markdown:s}){return e.jsxs("section",{className:"briefing-layer briefing-layer-markdown",children:[e.jsx(l,{eyebrow:"Layer 0",title:"Brief (markdown)"}),e.jsx("div",{className:"briefing-markdown",children:e.jsx(b,{text:s})})]})}function j({call:s}){return!s||!s.telemetry&&!s.presenter?null:e.jsxs("section",{className:"briefing-layer briefing-layer-telemetry",children:[e.jsx(l,{eyebrow:"Telemetry",title:"Calls & usage"}),e.jsxs("dl",{className:"briefing-telemetry",children:[e.jsx(m,{label:"Analyst",model:s.model,responseId:s.responseId,telemetry:s.telemetry??null}),s.presenter?e.jsx(m,{label:"Presenter",model:s.presenter.model,responseId:s.presenter.responseId,telemetry:s.presenter,note:s.presenter.skipped==="rate-guard"?"skipped — rate-guard hit":s.presenter.skipped==="error"?`failed — ${s.presenter.errorMessage??"unknown"}`:null}):null]})]})}function m({label:s,model:i,responseId:r,telemetry:n,note:t}){const a=n?.usage??null;return e.jsxs("div",{className:"briefing-telemetry-row",children:[e.jsxs("div",{className:"briefing-telemetry-row-head",children:[e.jsx("span",{className:"briefing-telemetry-label",children:s}),e.jsx("span",{className:"briefing-telemetry-model",children:i}),t?e.jsx("span",{className:"briefing-telemetry-note",children:t}):null]}),e.jsxs("div",{className:"briefing-telemetry-stats",children:[e.jsx("span",{children:n&&n.elapsedMs>0?`${(n.elapsedMs/1e3).toFixed(2)}s`:"—"}),e.jsxs("span",{children:["in ",a?.inputTokens??"—"]}),e.jsxs("span",{children:["out ",a?.outputTokens??"—"]}),e.jsxs("span",{children:["total ",a?.totalTokens??"—"]}),r?e.jsx("span",{className:"briefing-telemetry-response",children:r}):null]})]})}function y({presented:s}){return e.jsxs("section",{className:"briefing-layer briefing-layer-presented",children:[e.jsx(l,{eyebrow:"Spoken",title:`Presented as · ${s.voiceSpec.persona}, ~${s.voiceSpec.targetWords} words`}),e.jsx("ol",{className:"briefing-presented-sentences",children:s.sentences.map((i,r)=>e.jsx("li",{className:"briefing-presented-sentence",children:i},r))}),e.jsxs("div",{className:"briefing-presented-meta",children:["model: ",s.model,s.responseId?` · response: ${s.responseId}`:""]})]})}function N({brief:s,navigate:i}){return s?e.jsxs("section",{className:"briefing-layer",children:[e.jsx(l,{eyebrow:"Layer 3",title:"Brief"}),s.steps.length>0?e.jsx("ol",{className:"briefing-steps",children:s.steps.map((r,n)=>e.jsxs("li",{className:"briefing-step",children:[e.jsxs("div",{className:"briefing-step-label",children:[n+1,". ",r.label]}),r.narration?e.jsx("p",{className:"briefing-step-narration",children:r.narration}):null]},r.id??n))}):null,s.actions.length>0?e.jsx("div",{className:"briefing-actions",children:s.actions.map((r,n)=>e.jsx("button",{type:"button",className:"s-btn",onClick:()=>{r.route&&i(r.route)},children:r.label},`${r.label}-${n}`))}):null]}):e.jsxs("section",{className:"briefing-layer",children:[e.jsx(l,{eyebrow:"Layer 3",title:"Brief & call"}),e.jsx("p",{className:"briefings-placeholder",children:"No brief body persisted."})]})}function k({observations:s,navigate:i}){return e.jsxs("section",{className:"briefing-layer",children:[e.jsx(l,{eyebrow:"Layer 2",title:`Observations (${s.length})`}),s.length===0?e.jsx("p",{className:"briefings-placeholder",children:"No observations on this brief."}):e.jsx("div",{className:"briefing-observations",children:s.map((r,n)=>{const t=r.tone==="warn"?"briefing-observation-warn":r.tone==="err"||r.tone==="error"?"briefing-observation-err":"";return e.jsxs("div",{className:`briefing-observation ${t}`.trim(),children:[e.jsx("div",{className:"briefing-observation-text",children:r.text}),r.references.length>0?e.jsx("div",{className:"briefing-observation-refs",children:r.references.map((a,c)=>e.jsx(w,{reference:a,navigate:i},`${a.label}-${c}`))}):null]},n)})})]})}function w({reference:s,navigate:i}){const r=!!s.route,n=s.detail?`${s.label} · ${s.detail}`:s.label;return r?e.jsx("button",{type:"button",className:"briefing-ref-chip",onClick:()=>i(s.route),children:n}):e.jsx("span",{className:"briefing-ref-chip briefing-ref-chip-static",children:n})}function v({snapshot:s,call:i}){const r=o.useMemo(()=>C(s),[s]),[n,t]=o.useState(!1);return e.jsxs("section",{className:"briefing-layer",children:[e.jsx(l,{eyebrow:"Layer 1",title:"Read snapshot"}),r.length>0?e.jsx("div",{className:"briefing-snapshot-counts",children:r.map(a=>e.jsxs("span",{className:"briefing-snapshot-count",children:[e.jsx("strong",{children:a.value})," ",a.label]},a.label))}):null,i?e.jsxs("details",{className:"briefing-snapshot-section",children:[e.jsx("summary",{className:"briefing-snapshot-section-head",children:"Call metadata"}),e.jsxs("dl",{className:"briefing-call-grid",children:[e.jsx("dt",{children:"Model"}),e.jsx("dd",{children:i.model}),e.jsx("dt",{children:"Response ID"}),e.jsx("dd",{children:i.responseId??"—"}),e.jsx("dt",{children:"System prompt"}),e.jsx("dd",{children:e.jsx("pre",{className:"briefing-call-prompt",children:i.systemPrompt})}),e.jsx("dt",{children:"Operator request"}),e.jsx("dd",{children:e.jsx("pre",{className:"briefing-call-prompt",children:i.operatorRequest})})]})]}):null,e.jsxs("div",{className:"briefing-snapshot-section",children:[e.jsx("button",{type:"button",className:"briefing-detail-back",onClick:()=>t(a=>!a),children:n?"Hide raw snapshot":"Show raw snapshot JSON"}),n?e.jsx("pre",{className:"briefing-snapshot-raw",children:JSON.stringify(s??{},null,2)}):null]})]})}function l({eyebrow:s,title:i}){return e.jsxs("div",{className:"briefing-layer-head",children:[e.jsx("span",{className:"briefing-layer-eyebrow",children:s}),e.jsx("span",{className:"briefing-layer-title",children:i})]})}function C(s){if(!s?.state)return[];const i=s.state,r=[],n=(t,a)=>{Array.isArray(a)&&r.push({label:t,value:a.length})};if(n("agents",i.agents),i.fleet&&typeof i.fleet=="object"){const t=i.fleet;n("active requests",t.activeAsks),n("attention",t.needsAttention),n("recent",t.recentCompleted)}if(i.broker&&typeof i.broker=="object"){const t=i.broker;n("broker msgs",t.recentMessages)}if(n("scout chatter",i.scoutChatter),n("tail events",i.agentLogMessages),i.operatorAttention&&typeof i.operatorAttention=="object"){const t=i.operatorAttention;n("operator items",t.items)}return r}export{fe as BriefingDetailScreen};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{r as a,j as e}from"./index-Bli6bTLU.js";import{r as us}from"./index-DFdlQs_c.js";import{D as hs}from"./text-BR9Bap0E.js";import{E as Ce}from"./EmptyState-BnDda92b.js";import{y as fs,C as ms,z as ps,R as bs,A as ys,B as gs}from"./NewChatComposer-Bgqes0UQ.js";import{a as ne}from"./api-DEHEgJ9m.js";import{c as xs}from"./clipboard-e3fSpeo7.js";import{u as js}from"./sse-CSozY6mp.js";import{b as Ee}from"./status-tone-BM_zuRy1.js";import{t as Ie,b as Ye,n as V}from"./time-Dhsh_2EG.js";import{u as Ge}from"./Provider-Ve8yXaWR.js";import{o as Oe}from"./openContent-C6XO6kr5.js";import{g as ks,b as oe,h as Xe,d as vs,i as ws,j as Ns,k as Ss,l as Rs}from"./broker-display-Q75fupqG.js";import{BrokerMetadataPanel as As}from"./BrokerMetadataPanel-DFAH-NO6.js";import{DispatchAftermath as Cs}from"./DispatchAftermath-CH02HAVw.js";import{i as Is,c as $s,n as _e}from"./keyboard-nav-7iEtvu9P.js";import{ShikiPane as Ds}from"./ShikiPane-DyEJdcvb.js";import{d as Es}from"./types-B0PlfpKc.js";/* empty css */import{L as ke}from"./loader-circle-DoT8gpw6.js";import{R as Fs}from"./refresh-cw-IgN2fZLM.js";import{X as $e}from"./x-BJyPzFnn.js";import{c as Ne}from"./createLucideIcon-DLlxGjKt.js";import{E as Ke}from"./external-link-BGHC_naA.js";import{C as Ms}from"./chevron-down-Da5tV19_.js";import{S as Ls}from"./sparkles-ytTwpCbZ.js";import{P as Ts}from"./plus-64n9qucr.js";import{S as Ps}from"./send-horizontal-BXo2uz3Z.js";import{A as Ue}from"./arrow-right-B0Yi01Zr.js";import{C as Bs}from"./check-Bfs7hMb1.js";import{C as zs}from"./copy-De4s38o2.js";import{M as qs}from"./message-square-DlY4EneU.js";import{R as Os}from"./radio-BjpQTKT0.js";import{M as _s,b as Ks}from"./DocumentFocusViewer-DmtFisY9.js";import{B as Us}from"./bot-r2IuAuJd.js";const Hs=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],Js=Ne("arrow-down",Hs);const Qs=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]],Ws=Ne("at-sign",Qs);const Vs=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],Ys=Ne("hash",Vs);const Gs=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],Xs=Ne("paperclip",Gs),Zs=160;function He(s){const t=new URLSearchParams({limit:String(Zs)});return s&&t.set("cursor",s),`/api/broker?${t.toString()}`}const Je={index:-1,request:0};function er(s,t){return{index:t,request:s.request+1}}function Ze(s,t){return t===s.index?s:{index:t,request:s.request}}function sr(s,t){return s.index<t?s:Ze(s,t>0?t-1:-1)}function rr(s,t){return s.request!==t}function tr({enabled:s,rowCount:t,onActivateRow:n,onClearSelection:o}){const[d,u]=a.useState(Je),b=d.index,f=a.useRef(new Map),c=a.useRef(Je.request),v=a.useCallback(y=>{u(m=>er(m,typeof y=="function"?y(m.index):y))},[]),j=a.useCallback(y=>{u(m=>Ze(m,typeof y=="function"?y(m.index):y))},[]);a.useEffect(()=>{if(!rr(d,c.current)||(c.current=d.request,d.index<0))return;const y=f.current.get(d.index);y?.scrollIntoView({block:"nearest"}),y?.focus()},[d]),a.useEffect(()=>{u(y=>sr(y,t))},[t]);const I=a.useCallback((y,m)=>{m?f.current.set(y,m):f.current.delete(y)},[]);a.useEffect(()=>{if(!s)return;const y=m=>{if(document.querySelector(".sys-broker-page")&&!(Is(m.target)||$s())&&t!==0){if(m.key==="Escape"){o&&(m.preventDefault(),o(),j(-1));return}if(m.key==="ArrowDown"||m.key==="j"){m.preventDefault(),v(N=>_e(N,t,1));return}if(m.key==="ArrowUp"||m.key==="k"){m.preventDefault(),v(N=>_e(N,t,-1));return}if(m.key==="Home"||m.key==="g"&&!m.shiftKey){m.preventDefault(),v(0);return}if(m.key==="End"||m.key==="G"){m.preventDefault(),v(t-1);return}if(m.key==="Enter"||m.key===" "){const N=b<0?0:b;m.preventDefault(),v(N),n(N)}}};return window.addEventListener("keydown",y),()=>window.removeEventListener("keydown",y)},[s,b,v,n,o,t,j]);const U=a.useCallback(y=>({tabIndex:b===y?0:-1,ref:m=>I(y,m),onFocus:()=>j(y)}),[b,I,j]);return{focusedIndex:b,setFocusedIndex:j,getRowFocusProps:U}}const be=["all","delivered","failed"],ar={all:"All",delivered:"Delivered",failed:"Failed"};function nr(s){switch(s){case"success":return"Success";case"failed_query":return"Query failure";case"failed_delivery":return"Delivery failure";default:return"Delivery attempt"}}function es(s){return s.messageId??s.deliveryId??s.invocationId??s.id}function ss(s){switch(Ee(s.kind,s.status)){case"success":return"Delivered";case"danger":return"Failed";case"working":return"Pending";case"warning":return"Held";default:return s.status?s.status.charAt(0).toUpperCase()+s.status.slice(1):"Queued"}}function ve(s){if(!s)return"··";const t=s.trim().split(/\s+/).filter(Boolean);if(t.length===0)return"··";const n=t[t.length-1];return/^\d+$/.test(n)?n.slice(-2):t.length>=2?(t[0][0]+t[1][0]).toUpperCase():s.trim().slice(0,2).toUpperCase()}function or(s){const t=V(s)??0;return new Date(t).toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"})}function Qe(s){const t=V(s);return t===null?"—":new Date(t).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function Se(s,t,n=0){if(!s||typeof s!="object"||Array.isArray(s)||n>3)return;const o=s;for(const d of t)if(o[d]!==void 0&&o[d]!==null)return o[d];for(const d of Object.values(o)){const u=Se(d,t,n+1);if(u!==void 0)return u}}function K(s,...t){const n=Se(s.metadata,t);return typeof n!="string"&&typeof n!="number"?null:String(n).trim()||null}function we(s,...t){const n=Se(s.metadata,t);return typeof n=="number"||typeof n=="string"?V(n):null}function rs(s){switch(s){case"dm":return"Direct · agent";case"channel":return"Channel";case"broadcast":return"Broadcast";case null:return"No route";default:return s.replaceAll("_"," ")}}function De(s,t){if(t==="to")return s.route==="channel"?"Channel":s.route==="broadcast"?"Broadcast":s.target?.toLowerCase().includes("operator")?"Operator":"Agent lane";const n=K(s,"class","actorClass")?.toLowerCase();return n==="operator"||n==="human"?"Operator":n==="agent"?"Agent":s.actorName?.toLowerCase().includes("operator")?"Operator":"Sender"}function ir(s){const t=Se(s.metadata,["latencyMs","durationMs"]);if(typeof t=="number"&&Number.isFinite(t)&&t>=0)return t<1e3?`${Math.round(t)}ms`:`${(t/1e3).toFixed(t<1e4?1:0)}s`;const n=we(s,"sentAt","createdAt")??V(s.ts),o=we(s,"deliveredAt","completedAt");if(n===null||o===null||o<n)return"—";const d=o-n;return d<1e3?`${d}ms`:`${(d/1e3).toFixed(d<1e4?1:0)}s`}function Fe({route:s}){switch(s){case"channel":return e.jsx(Ys,{size:12,"aria-hidden":"true"});case"broadcast":return e.jsx(Os,{size:12,"aria-hidden":"true"});case"dm":return e.jsx(Ws,{size:12,"aria-hidden":"true"});default:return e.jsx(qs,{size:12,"aria-hidden":"true"})}}function lr(s,t){if(!t)return null;const n=t.trim().replace(/^@/,"").toLowerCase();return s.find(o=>[o.id,o.name,o.handle,o.selector,o.defaultSelector,o.conversationId,o.harnessSessionId].some(d=>d?.trim().replace(/^@/,"").toLowerCase()===n))??null}function We(s,t,n){const o=n==="from"?s.actorName:s.target,d=lr(t,o),u=d?.name??o??(n==="from"?"Unknown":"No target"),b=d?"Agent":n==="to"&&s.conversationId?"Session route":De(s,n);return{label:u,kind:b,agent:d}}function cr(s,t,n){const o=n.agent??t.agent;return[{label:"From",value:t.kind},{label:"To",value:n.kind},{label:"Target",value:s.target??n.label},{label:"Channel",value:rs(s.route)},{label:"Project",value:o?.project??K(s,"project","projectName")},{label:"Branch",value:o?.branch??K(s,"branch")},{label:"Runtime",value:o?[o.harness,o.model,o.reasoningEffort].filter(Boolean).join(" · ")||null:[K(s,"harness"),K(s,"model")].filter(Boolean).join(" · ")||null},{label:"Machine",value:o?.authorityNodeName??o?.homeNodeName??o?.authorityNodeId??o?.homeNodeId??K(s,"machine","machineName","nodeName")}].filter(d=>!!d.value)}function Ve({party:s,route:t,side:n}){return e.jsxs("span",{className:`sys-broker-route-end sys-broker-route-end--${n}`,children:[e.jsx("span",{className:"sys-broker-avatar sys-broker-endpoint-avatar","aria-hidden":"true",children:s.agent||n==="from"?ve(s.label):e.jsx(Fe,{route:t})}),e.jsx("span",{className:"sys-broker-endpoint-name",title:s.label,children:s.label})]})}function dr({attempt:s,agents:t}){const n=We(s,t,"from"),o=We(s,t,"to"),d=cr(s,n,o),u=`dispatch-route-${s.id}`;return e.jsxs("span",{className:"sys-broker-route",tabIndex:0,"aria-describedby":u,children:[e.jsx(Ve,{party:n,route:s.route,side:"from"}),e.jsx(Ue,{className:"sys-broker-route-arrow",size:11,"aria-hidden":"true"}),e.jsx(Ve,{party:o,route:s.route,side:"to"}),e.jsxs("span",{className:"sys-broker-endpoint-card",id:u,role:"tooltip",children:[e.jsx("span",{className:"sys-broker-endpoint-card-head",children:e.jsxs("span",{className:"sys-broker-endpoint-card-edge",children:[e.jsx("span",{className:"sys-broker-avatar sys-broker-endpoint-avatar","aria-hidden":"true",children:ve(n.label)}),e.jsx("strong",{children:n.label}),e.jsx(Ue,{className:"sys-broker-route-arrow",size:11,"aria-hidden":"true"}),e.jsx("span",{className:"sys-broker-avatar sys-broker-endpoint-avatar","aria-hidden":"true",children:o.agent?ve(o.label):e.jsx(Fe,{route:s.route})}),e.jsx("strong",{children:o.label})]})}),e.jsx("span",{className:"sys-broker-endpoint-card-body",children:d.map(b=>e.jsxs("span",{className:"sys-broker-endpoint-card-field",children:[e.jsx("small",{children:b.label}),e.jsx("code",{title:b.value,children:b.value})]},b.label))})]})]})}function ye(s){const t=V(s)??0,n=new Date(t);return`${n.getFullYear()}-${n.getMonth()}-${n.getDate()}`}function ur(s,t=Date.now()){const n=V(s)??0,o=new Date(n),d=new Date(t),u=new Date(t);return u.setDate(u.getDate()-1),ye(s)===ye(d.getTime())?"Today":ye(s)===ye(u.getTime())?"Yesterday":o.toLocaleDateString(void 0,{month:"short",day:"numeric",year:o.getFullYear()===d.getFullYear()?void 0:"numeric"})}function hr(s,t,n){return{...t,source:s.source,attempts:[...s.attempts,...t.attempts],failedQueries:s.failedQueries,failedDeliveries:s.failedDeliveries,dialogue:s.dialogue,ledger:{...t.ledger,cursors:{...s.ledger.cursors,[n]:t.ledger.cursors[n]},hasMore:{...s.ledger.hasMore,[n]:t.ledger.hasMore[n]}}}}function fr({navigate:s,embedded:t=!1,initialAttemptId:n}){const{route:o,agents:d,selectedBrokerAttempt:u,inspectBrokerAttempt:b,clearBrokerAttempt:f}=Ge(),[c,v]=a.useState(null),j=o.view==="broker"?o.filter??"all":"all",[I,U]=a.useState(!0),[y,m]=a.useState(!1),[N,Y]=a.useState(!1),[ae,B]=a.useState(null),E=a.useRef(null),F=a.useRef(0),z=a.useRef(null),M=a.useCallback(async(i="initial")=>{const h=++F.current;!E.current&&i!=="background"?(U(!0),B(null)):m(!0);try{const x=await ne(He());if(h!==F.current)return;E.current=x,v(x),B(null)}catch(x){if(h!==F.current)return;B(x instanceof Error?x.message:String(x))}finally{h===F.current&&(U(!1),m(!1))}},[]),G=a.useCallback(async()=>{const i=E.current;if(!i||N)return;const h="attempts",x=i.ledger.cursors[h];if(!x||!i.ledger.hasMore[h])return;const T=++F.current;Y(!0),B(null);try{const P=await ne(He(x));if(T!==F.current)return;const se=E.current,ue=se?hr(se,P,h):P;E.current=ue,v(ue)}catch(P){if(T!==F.current)return;B(P instanceof Error?P.message:String(P))}finally{T===F.current&&Y(!1)}},[N]),le=a.useCallback(()=>{z.current||(z.current=setTimeout(()=>{z.current=null,M("background")},250))},[M]);a.useEffect(()=>(M("initial"),()=>{z.current&&clearTimeout(z.current)}),[M]),js(i=>{(i.kind==="message.posted"||i.kind==="delivery.planned"||i.kind==="delivery.attempted"||i.kind==="delivery.state.changed"||i.kind==="scout.dispatched")&&le()});const k=a.useMemo(()=>{if(!c)return[];const i=new Map(c.dialogue.map(h=>[h.id,h.body]));return ks(c.attempts).map(h=>{const x=h.messageId?i.get(h.messageId):null;return x&&x!==h.detail?{...h,detail:x}:h})},[c]),A=a.useMemo(()=>{switch(j){case"delivered":return k.filter(i=>!oe(i));case"failed":return k.filter(oe);default:return k}},[j,k]),ge=c?.ledger.hasMore.attempts??!1,X=a.useMemo(()=>({all:k.length,delivered:k.filter(i=>!oe(i)).length,failed:k.filter(oe).length}),[k]),$=a.useMemo(()=>{const i=o.view==="broker"?o.attemptId:void 0;return!c||!i?null:k.find(h=>h.id===i)??c.attempts.find(h=>h.id===i)??c.failedQueries.find(h=>h.id===i)??c.failedDeliveries.find(h=>h.id===i)??null},[c,k,o]),Z=$?`${$.id}\0${$.status}\0${$.ts}`:null,D=u?`${u.id}\0${u.status}\0${u.ts}`:null;a.useEffect(()=>{$&&Z!==D&&b($)},[D,b,$,Z]);const[C,S]=a.useState(null),q=a.useRef(!1),O=a.useCallback(i=>{if(t){q.current=!0,S(i);return}b(i)},[t,b]),H=a.useCallback(()=>{if(t){q.current=!0,S(null);return}f()},[f,t]),J=a.useCallback(i=>{const h=A[i];h&&(O(h),window.dispatchEvent(new CustomEvent("scout:set-inspector-width",{detail:{width:520}})))},[A,O]),{getRowFocusProps:ce,setFocusedIndex:xe}=tr({enabled:!!c&&A.length>0,rowCount:A.length,onActivateRow:J,onClearSelection:H}),de=C?.id??null,L=C?`${C.id} ${C.status} ${C.ts}`:null;a.useEffect(()=>{if(!t||!de)return;const i=k.find(h=>h.id===de);i&&`${i.id} ${i.status} ${i.ts}`!==L&&S(i)},[t,de,L,k]),a.useEffect(()=>{if(!t||!n||!c||q.current||C)return;const i=k.find(h=>h.id===n)??c.attempts.find(h=>h.id===n)??c.failedQueries.find(h=>h.id===n)??c.failedDeliveries.find(h=>h.id===n);i&&(q.current=!0,S(i))},[c,t,C,k,n]),a.useEffect(()=>{const i=o.view==="broker"?o.attemptId:void 0;if(!i)return;const h=A.findIndex(x=>x.id===i);h>=0&&xe(h)},[A,j,o,xe]);const ee=a.useCallback(i=>{const x=(be.indexOf(j)+i+be.length)%be.length,T=be[x];s({view:"broker",...T==="all"?{}:{filter:T}})},[j,s]),R=t?C:null;return e.jsx("div",{className:`s-ops${t?" s-ops--embedded":""}${R?" s-ops--split":""}`,children:e.jsxs("div",{className:"s-ops-body",children:[e.jsxs("div",{className:"sys-surface-page sys-surface-page-wide sys-surface-page-fluid sys-broker-page",children:[e.jsxs("div",{className:"sys-ledger-toolbar","aria-label":"Dispatch controls",children:[c?e.jsx("div",{className:"sys-tab-row sys-tab-row--toolbar",role:"tablist","aria-label":"Dispatch message filters",onKeyDown:i=>{i.key==="ArrowRight"?(i.preventDefault(),ee(1)):i.key==="ArrowLeft"&&(i.preventDefault(),ee(-1))},children:be.map(i=>e.jsxs("button",{type:"button",role:"tab","aria-selected":j===i,className:`sys-tab${j===i?" sys-tab-active":""}`,onClick:()=>s({view:"broker",...i==="all"?{}:{filter:i}}),children:[e.jsx("span",{children:ar[i]}),e.jsx("span",{className:"sys-tab-count",children:X[i]})]},i))}):e.jsx("div",{className:"sys-ledger-kicker",children:"Dispatch ledger"}),e.jsxs("div",{className:"sys-page-actions sys-ledger-actions",children:[e.jsx("div",{className:"sys-sync-note",children:I?"Loading dispatch ledger...":c?`Updated ${Ie(c.generatedAt)}${c.source?.latestMessageAt?` · latest message ${Ie(c.source.latestMessageAt)}`:""}`:"Waiting for dispatch data"}),e.jsx("button",{type:"button",className:"s-btn",disabled:I||y,onClick:()=>{M("manual")},children:y?"Refreshing...":"Refresh"})]})]}),ae&&e.jsxs("div",{className:"sys-banner sys-banner-warning",children:[e.jsx("strong",{children:"Refresh failed."}),e.jsx("span",{children:ae})]}),y&&c&&e.jsxs("div",{className:"sys-broker-source-note",role:"status","aria-live":"polite",children:[e.jsx(ke,{className:"sys-broker-source-spinner",size:12,"aria-hidden":"true"}),e.jsx("strong",{children:"Updating dispatches…"})]}),!y&&c?.source?.mode==="sqlite_projection"&&c.source.status==="degraded"&&c.source.detail&&e.jsxs("div",{className:"sys-broker-source-note sys-broker-source-note--warning",role:"status","aria-label":c.source.detail,title:c.source.detail,children:[e.jsx("span",{className:"sys-broker-source-dot","aria-hidden":"true"}),e.jsx("strong",{children:"Dispatch may be out of date"}),e.jsx("span",{children:"Live broker unavailable; showing saved dispatch history."})]}),I&&!c&&e.jsx(Ce,{title:"Loading dispatch",body:"Reading the dispatch database snapshot."}),!I&&!c&&!ae&&e.jsx(Ce,{title:"No dispatch data",body:"No dispatch rows are available yet."}),c&&e.jsxs(e.Fragment,{children:[e.jsx(mr,{attempts:A,agents:d,selectedAttemptId:t?C?.id??null:u?.id??(o.view==="broker"?o.attemptId??null:null),onInspect:O,getRowFocusProps:ce}),A.length>0&&ge&&e.jsx("div",{className:"sys-ledger-footer",children:e.jsx("button",{type:"button",className:"s-btn",disabled:N,onClick:()=>{G()},children:N?"Loading older...":"Load older"})})]})]}),R&&e.jsx("div",{className:"s-broker-embed-detail",children:e.jsx(ts,{attempt:R,navigate:s,onClose:H})})]})})}function mr({attempts:s,agents:t,selectedAttemptId:n,onInspect:o,getRowFocusProps:d}){if(s.length===0)return e.jsx(Ce,{title:"No dispatch rows",body:"No dispatch rows are available yet."});const u=s.reduce((b,f,c)=>{const v=ye(f.ts),j=b[b.length-1];return j?.key===v?j.attempts.push({attempt:f,index:c}):b.push({key:v,label:ur(f.ts),attempts:[{attempt:f,index:c}]}),b},[]);return e.jsxs("div",{className:"sys-broker-wire","aria-label":"Dispatch ledger",children:[e.jsxs("div",{className:"sys-broker-wire-head","aria-hidden":"true",children:[e.jsx("span",{className:"sys-broker-col sys-broker-col--route",children:"Route"}),e.jsx("span",{className:"sys-broker-col sys-broker-col--msg",children:"Message"}),e.jsx("span",{className:"sys-broker-col sys-broker-col--time",children:"Time"})]}),u.map(b=>e.jsxs("section",{className:"sys-broker-day","aria-labelledby":`dispatch-day-${b.key}`,children:[e.jsxs("header",{className:"sys-broker-day-head",children:[e.jsx("h2",{id:`dispatch-day-${b.key}`,children:b.label}),e.jsxs("span",{children:[b.attempts.length," ",b.attempts.length===1?"dispatch":"dispatches"]})]}),e.jsx("div",{className:"sys-broker-wire-body",role:"list",children:b.attempts.map(({attempt:f,index:c})=>{const v=Ee(f.kind,f.status),j=oe(f),I=!j&&(v==="working"||v==="warning"),U=Xe(f),y=ss(f),m=j?U:I?y:null,N=()=>{o(f),window.dispatchEvent(new CustomEvent("scout:set-inspector-width",{detail:{width:520}}))};return e.jsxs("div",{role:"listitem",className:`sys-broker-wire-row${j?" sys-broker-wire-row--failure":I?" sys-broker-wire-row--pending":""}${n===f.id?" sys-broker-wire-row--selected":""}`,"aria-label":`${y}. Inspect ${f.detail}`,onClick:N,...d(c),children:[e.jsx("div",{className:"sys-broker-cell sys-broker-col--route",children:e.jsx(dr,{attempt:f,agents:t})}),e.jsxs("div",{className:"sys-broker-cell sys-broker-col--msg",children:[e.jsx("span",{className:"sys-broker-msg",title:f.detail,children:f.detail}),m&&e.jsx("span",{className:`sys-broker-msg-error sys-broker-msg-error--${j?"danger":"warning"}`,title:m,children:m})]}),e.jsx("div",{className:"sys-broker-cell sys-broker-col--time",children:e.jsx("time",{className:"sys-broker-time-abs",title:`${Ie(f.ts)} · ${Ye(f.ts)}`,children:or(f.ts)})})]},f.id)})})]},b.key))]})}function pr(s){const t=es(s);return[{label:"Kind",value:nr(s.kind)},{label:"Time",value:Ye(s.ts)},{label:"Actor",value:s.actorName},{label:"Target",value:s.target},{label:"Route",value:s.route},{label:"Conversation",value:s.conversationId},{label:"Reference",value:t},{label:"Message",value:s.messageId===t?null:s.messageId},{label:"Delivery",value:s.deliveryId===t?null:s.deliveryId},{label:"Invocation",value:s.invocationId===t?null:s.invocationId}].filter(n=>!!n.value)}function ie({value:s,subject:t,className:n}){const[o,d]=a.useState("idle"),u=a.useRef(null);a.useEffect(()=>{d("idle")},[s]),a.useEffect(()=>()=>{u.current&&clearTimeout(u.current)},[]);const b=a.useCallback(async()=>{const v=await xs(s);u.current&&clearTimeout(u.current),d(v?"copied":"failed"),u.current=setTimeout(()=>{d("idle"),u.current=null},1500)},[s]),f=o==="copied",c=o==="failed";return e.jsx("button",{type:"button",className:`sys-copy-btn${n?` ${n}`:""}${f?" sys-copy-btn--copied":""}${c?" sys-copy-btn--failed":""}`,onClick:()=>{b()},title:f?`Copied ${t}`:c?"Copy failed":`Copy ${t}`,"aria-label":f?`Copied ${t}`:c?`Copy ${t} failed`:`Copy ${t}`,children:f?e.jsx(Bs,{size:14,"aria-hidden":"true"}):e.jsx(zs,{size:14,"aria-hidden":"true"})})}function br(s){const t=s.trim();if(t.startsWith("{")||t.startsWith("["))try{return{code:JSON.stringify(JSON.parse(t),null,2),path:"payload.json",language:"JSON"}}catch{}return{code:s,path:"payload.md",language:"Text · Markdown"}}function yr({payload:s}){const t=a.useMemo(()=>br(s),[s]),[n,o]=a.useState(!1),d=a.useRef(null),u=t.code.split(`
|
|
2
|
-
`).length;a.useEffect(()=>{const f=d.current;!f||!n||f.open||f.showModal()},[n]),a.useEffect(()=>{o(!1)},[s]);const b=e.jsx("div",{className:"sys-broker-payload-code","data-language":t.path==="payload.json"?"json":"markdown",role:"region","aria-label":`Dispatch payload, ${t.language}`,tabIndex:0,children:e.jsx(Ds,{code:t.code,path:t.path})});return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"sys-broker-payload-head",children:[e.jsx("span",{className:"sys-detail-label",children:"Payload"}),e.jsxs("span",{className:"sys-broker-payload-meta",children:[t.language," · ",u," ",u===1?"line":"lines"]}),e.jsx(ie,{value:s,subject:"payload"}),e.jsx("button",{type:"button",className:"sys-copy-btn sys-broker-payload-expand",onClick:()=>o(!0),title:"Expand payload","aria-label":"Expand payload",children:e.jsx(_s,{size:14,"aria-hidden":"true"})})]}),e.jsx("div",{className:"sys-broker-payload-resizer",children:b}),n&&us.createPortal(e.jsxs("dialog",{ref:d,className:"sys-broker-payload-dialog","aria-label":"Expanded dispatch payload",onCancel:f=>{f.preventDefault(),o(!1)},onClose:()=>o(!1),children:[e.jsxs("header",{className:"sys-broker-payload-dialog-head",children:[e.jsxs("div",{children:[e.jsx("span",{className:"sys-detail-label",children:"Dispatch payload"}),e.jsxs("span",{className:"sys-broker-payload-meta",children:[t.language," · ",u," ",u===1?"line":"lines"]})]}),e.jsx(ie,{value:s,subject:"payload"}),e.jsx("button",{type:"button",className:"sys-copy-btn",onClick:()=>o(!1),title:"Return payload to inspector","aria-label":"Return payload to inspector",children:e.jsx(Ks,{size:14,"aria-hidden":"true"})})]}),e.jsx("div",{className:"sys-broker-payload-dialog-body",children:b})]}),document.body)]})}function gr({attempt:s}){const t=Rs(s);return e.jsxs("div",{className:"sys-broker-route-failure",role:"status",children:[e.jsx("span",{className:"sys-broker-route-failure-mark","aria-hidden":"true",children:e.jsx($e,{size:14})}),e.jsxs("div",{children:[e.jsx("span",{className:"sys-detail-label",children:"Routing stopped"}),e.jsx("strong",{children:t}),e.jsx("p",{children:s.detail})]}),e.jsx(ie,{value:s.detail,subject:"failure detail"})]})}function ts({attempt:s,navigate:t,onClose:n}){const{route:o,agents:d,scoutbotAgentId:u}=Ge(),b=pr(s),f=vs(s.metadata),c=oe(s),v=s.kind==="failed_query",j=Xe(s),I=Ee(s.kind,s.status),U=we(s,"sentAt","createdAt")??V(s.ts),y=we(s,"deliveredAt","completedAt")??V(s.ts),m=es(s),[N,Y]=a.useState("idle"),[ae,B]=a.useState(null),[E,F]=a.useState(null),[z,M]=a.useState(""),[G,le]=a.useState(""),[k,A]=a.useState("idle"),[ge,X]=a.useState(null),[$,Z]=a.useState(""),[D,C]=a.useState(""),[S,q]=a.useState(""),[O,H]=a.useState(""),[J,ce]=a.useState("medium"),[xe,de]=a.useState(null),[L,ee]=a.useState([]),[R,i]=a.useState("idle"),[h,x]=a.useState(null),T=K(s,"harness"),P=K(s,"model"),se=K(s,"reasoningEffort","effort"),ue=a.useRef(null),Me=a.useRef(null),Re=a.useMemo(()=>ws(s),[s]),w=a.useMemo(()=>d.filter(r=>!r.retiredFromFleet&&!r.staleLocalRegistration).slice().sort((r,l)=>r.id===u?-1:l.id===u?1:(l.updatedAt??0)-(r.updatedAt??0)||r.name.localeCompare(l.name)),[d,u]),he=a.useMemo(()=>Ns(s,w)?.id??"",[s,w]),fe=w.some(r=>r.id===u)?u:w[0]?.id??"",je=w[0]?.id??"",re=w.find(r=>r.id===fe)??null,as=a.useMemo(()=>{const r=new Map;for(const l of w){const p=l.projectRoot?.trim()||l.cwd?.trim();if(!p)continue;const g=p.split("/").filter(Boolean).at(-1)??p;r.set(p,l.project?.trim()||g)}return[...r.entries()].map(([l,p])=>({path:l,label:p}))},[w]),Le=a.useRef({originalTargetAgentId:he,firstRoutableAgentId:je,defaultForwardAgentId:fe,defaultForwardAgent:re,effort:"medium"});Le.current={originalTargetAgentId:he,firstRoutableAgentId:je,defaultForwardAgentId:fe,defaultForwardAgent:re,effort:K(s,"reasoningEffort","effort")||"medium"};const me=a.useRef(!1);a.useEffect(()=>{const r=Le.current;me.current=!1,Y("idle"),B(null),F(null),M(""),le(r.originalTargetAgentId||r.firstRoutableAgentId),A("idle"),X(null),Z(r.defaultForwardAgentId),C(r.defaultForwardAgent?.projectRoot?.trim()||r.defaultForwardAgent?.cwd?.trim()||""),q(r.defaultForwardAgent?.harness?.trim()||""),H(r.defaultForwardAgent?.model?.trim()||""),ce(r.effort),ee([]),i("idle"),x(null)},[s.id]),a.useEffect(()=>{me.current||(le(r=>r||he||je),Z(r=>r||fe),C(r=>r||re?.projectRoot?.trim()||re?.cwd?.trim()||""),q(r=>r||re?.harness?.trim()||""),H(r=>r||re?.model?.trim()||""))},[re,fe,je,he]),a.useEffect(()=>{const r=new URLSearchParams({scope:"global+project"});D&&r.set("projectRoot",D);let l=!1;return ne(`/api/runner/options?${r.toString()}`).then(p=>{!l&&p.schemaVersion==="openscout.runtime-capabilities.v1"&&de(p)}).catch(()=>{}),()=>{l=!0}},[D]);const ns=a.useCallback(r=>{M(r),window.requestAnimationFrame(()=>ue.current?.focus())},[]),os=a.useCallback(async()=>{const r=w.find(l=>l.id===G);if(!(!r||k==="sending")){A("sending"),X(null);try{const l=await ne("/api/ask",{method:"POST",body:JSON.stringify({body:s.detail,targetAgentId:r.id,targetLabel:r.name,...T||P||se?{execution:{...T?{harness:T}:{},...P?{model:P}:{},...se?{reasoningEffort:se}:{},session:"new"}}:{},metadata:{source:"scout-dispatch-redispatch",originalDispatchId:s.id,...s.messageId?{originalMessageId:s.messageId}:{},...s.conversationId?{originalConversationId:s.conversationId}:{}}})}),p=l.flightId??l.flight?.id;A("sent"),X(`New dispatch sent to ${r.name}${p?` · ${p}`:""}`)}catch(l){A("failed"),X(`Retry failed. ${l instanceof Error?l.message:String(l)}`)}}},[s,G,k,se,T,P,w]),Te=a.useCallback(async()=>{const r=z.trim(),l=w.find(p=>p.id===$);if(!(!r||!l||R==="sending")){i("sending"),x(L.length>0?`Uploading ${L.length} ${L.length===1?"attachment":"attachments"}…`:null);try{const p=L.length>0?await fs(L):[],g=await ne("/api/ask",{method:"POST",body:JSON.stringify({body:`${r}
|
|
3
|
-
|
|
4
|
-
Attached dispatch context:
|
|
5
|
-
${Re}`,targetAgentId:l.id,targetLabel:l.name,...p.length>0?{attachments:p}:{},execution:{...S?{harness:S}:{},...O?{model:O}:{},...J?{reasoningEffort:J}:{}},metadata:{source:"scout-dispatch-forward",originalDispatchId:s.id,...D?{targetProjectPath:D}:{},...s.messageId?{originalMessageId:s.messageId}:{},...s.conversationId?{originalConversationId:s.conversationId}:{}}})}),Q=g.flightId??g.flight?.id;i("sent"),x(`Request sent to ${l.name}${Q?` · ${Q}`:""}`),M(""),ee([])}catch(p){i("failed"),x(`Request wasn't sent. ${p instanceof Error?p.message:String(p)}`)}}},[s,Re,$,J,L,S,O,D,R,z,w]),is=a.useCallback(r=>{const l=r.filter(ms),p=r.length-l.length;l.length>0&&(ee(g=>[...g,...l]),i("idle"),x(null)),p>0&&(i("failed"),x("Attach markdown, code, an image, or a video clip."))},[]),ls=c?["Get a second opinion","Propose a recovery plan","Draft a follow-up"]:["Summarize this dispatch","Draft a follow-up","What changed?"],_=w.find(r=>r.id===G)??null,te=w.find(r=>r.id===$)??null,pe=w.filter(r=>D?(r.projectRoot?.trim()||r.cwd?.trim())===D:!0),Pe=xe??bs,Ae=a.useMemo(()=>{const r=ps(Pe),l=[O,te?.harness===S?te.model:null,...pe.filter(g=>g.harness===S).map(g=>g.model)].map(g=>g?.trim()).filter(g=>!!g);let p=r.harnesses;return p.some(g=>g.value===S)||(p=[{value:S,label:S||"default",models:[]},...p]),p=p.map(g=>{if(g.value!==S)return g;const Q=g.models.some(W=>W.value==="")?g.models:[{value:"",label:"Default",note:"harness picks"},...g.models],ds=new Set(Q.map(W=>W.value)),qe=l.filter(W=>!ds.has(W)).map(W=>({value:W,label:W,note:"observed"}));return qe.length===0&&Q===g.models?g:{...g,models:[...Q,...qe]}}),{...r,harnesses:p}},[Pe,te,S,O,pe]);a.useEffect(()=>{const r=ys(Ae,S);!r||r.some(l=>l.value===J)||ce(r.find(l=>l.value==="medium")?.value??r[0]?.value??"")},[Ae,S,J]);const cs=a.useCallback(async()=>{Y("running"),B(null);try{const r=await ne("/api/broker/dispatch-review",{method:"POST",body:JSON.stringify(Ss(s))});Y("sent"),F(r.conversationId),B(r.conversationId?`Report started${r.targetLabel?` with ${r.targetLabel}`:""}. Open the conversation to follow it.`:`Report started${r.targetLabel?` with ${r.targetLabel}`:""}${r.flightId?` · ${r.flightId}`:""}.`)}catch(r){Y("failed"),B(`Couldn't start the report. ${r instanceof Error?r.message:String(r)}`)}},[s]),Be=c?e.jsxs("div",{className:"sys-broker-action-row",children:[e.jsxs("div",{className:"sys-broker-action-line",children:[e.jsx("span",{className:"sys-broker-action-label",id:"dispatch-report-title",children:"Failure report"}),e.jsxs("button",{type:"button",className:"sys-broker-report-button",disabled:N==="running"||N==="sent"&&!E,onClick:()=>{if(E){Oe(t,{view:"conversation",conversationId:E},{returnTo:o});return}cs()},children:[N==="running"?e.jsx(ke,{size:13,className:"sys-broker-action-spinner","aria-hidden":"true"}):E?e.jsx(Ke,{size:13,"aria-hidden":"true"}):e.jsx(Us,{size:13,"aria-hidden":"true"}),N==="running"?"Starting report…":E?"Open report conversation":"Start failure report"]})]}),ae&&e.jsx("div",{className:`sys-broker-review-status sys-broker-review-status--${N}`,role:"status",children:ae})]}):null,ze=e.jsxs("div",{className:"sys-broker-action-row",children:[e.jsxs("div",{className:"sys-broker-action-line",children:[e.jsx("span",{className:"sys-broker-action-label",id:"dispatch-redispatch-title",children:"Retry"}),e.jsxs("div",{className:"sys-broker-redispatch-controls",children:[e.jsx("select",{"aria-label":"Retry destination",value:G,disabled:k==="sending"||w.length===0,onChange:r=>{le(r.target.value),A("idle"),X(null)},children:w.length===0?e.jsx("option",{value:"",children:"No agents available"}):e.jsxs(e.Fragment,{children:[!G&&e.jsx("option",{value:"",children:"Original destination unavailable"}),w.map(r=>e.jsxs("option",{value:r.id,children:[r.id===u?"Scout":r.name,r.project?` · ${r.project}`:""]},r.id))]})}),e.jsxs("button",{type:"button",className:"sys-broker-redispatch-send",disabled:!_||k==="sending",onClick:()=>{os()},children:[k==="sending"?e.jsx(ke,{size:13,className:"sys-broker-action-spinner","aria-hidden":"true"}):e.jsx(Fs,{size:13,"aria-hidden":"true"}),k==="sending"?"Retrying…":"Retry dispatch"]})]})]}),_&&e.jsxs("div",{className:"sys-broker-action-target-meta",children:[_.harness&&e.jsx("span",{children:_.harness}),_.model&&e.jsx("span",{children:_.model}),(_.cwd??_.projectRoot)&&e.jsx("code",{children:_.cwd??_.projectRoot})]}),ge&&e.jsx("div",{className:`sys-broker-action-status sys-broker-action-status--${k}`,role:"status",children:ge})]});return e.jsxs("aside",{className:"sys-panel sys-broker-inspector","aria-label":"Dispatch route inspector",children:[e.jsx("header",{className:"sys-broker-inspector-head",children:e.jsxs("div",{className:"sys-broker-inspector-status",children:[e.jsx("span",{className:`sys-broker-dot sys-broker-dot--${I}`,"aria-hidden":"true"}),e.jsx("strong",{className:`sys-broker-state sys-broker-state--${I}`,children:ss(s)}),e.jsx("code",{title:m,children:m}),e.jsx(ie,{value:Re,subject:"dispatch context",className:"sys-broker-inspector-copy"}),e.jsx("button",{type:"button",className:"sys-copy-btn sys-broker-inspector-close",onClick:n,title:"Close inspector","aria-label":"Close inspector",children:e.jsx($e,{size:14,"aria-hidden":"true"})})]})}),e.jsxs("div",{className:"sys-broker-inspector-body",children:[e.jsxs("section",{className:"sys-broker-route-stack","aria-label":"Dispatch route",children:[e.jsxs("div",{className:"sys-broker-route-party",children:[e.jsx("span",{className:"sys-broker-avatar sys-broker-route-avatar","aria-hidden":"true",children:ve(s.actorName)}),e.jsxs("div",{className:"sys-broker-route-party-copy",children:[e.jsxs("span",{className:"sys-detail-label",children:["From · ",De(s,"from")]}),e.jsx("strong",{children:s.actorName??"Unknown sender"})]})]}),e.jsx(Js,{className:"sys-broker-route-down",size:17,"aria-hidden":"true"}),e.jsxs("div",{className:"sys-broker-route-party",children:[e.jsx("span",{className:"sys-broker-route-target-icon","aria-hidden":"true",children:e.jsx(Fe,{route:s.route})}),e.jsxs("div",{className:"sys-broker-route-party-copy",children:[e.jsxs("span",{className:"sys-detail-label",children:["To · ",De(s,"to")]}),e.jsx("code",{title:s.target??"No target",children:s.target??"No target"})]}),s.conversationId&&e.jsxs("button",{type:"button",className:"sys-broker-route-button",onClick:()=>Oe(t,{view:"conversation",conversationId:s.conversationId},{returnTo:o}),children:[e.jsx(Ke,{size:11,"aria-hidden":"true"}),"Route"]})]})]}),e.jsxs("dl",{className:"sys-broker-delivery-grid",children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Channel"}),e.jsx("dd",{children:rs(s.route)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Latency"}),e.jsx("dd",{className:"sys-broker-delivery-accent",children:ir(s)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Sent"}),e.jsx("dd",{children:Qe(U)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:c?"Failed":"Delivered"}),e.jsx("dd",{children:Qe(y)})]})]}),e.jsxs("section",{className:"sys-broker-payload",children:[v?e.jsx(gr,{attempt:s}):e.jsx(yr,{payload:s.detail}),c&&!v&&j&&e.jsxs("div",{className:"sys-broker-inspector-error",role:"status",children:[e.jsx("span",{className:"sys-broker-inspector-error-label",children:"Error"}),e.jsx("p",{children:j})]})]}),e.jsx(Cs,{attempt:s,targetAgentId:he||null,navigate:t,returnTo:o}),e.jsx("section",{className:"sys-broker-actions","aria-label":"Dispatch actions",children:v?e.jsxs(e.Fragment,{children:[Be,ze]}):e.jsxs(e.Fragment,{children:[ze,Be]})}),e.jsxs("details",{className:"sys-broker-technical",children:[e.jsxs("summary",{children:[e.jsx("span",{children:"Technical details"}),e.jsx(Ms,{size:13,"aria-hidden":"true"})]}),e.jsx("div",{className:"sys-broker-inspector-rows",children:b.map(r=>e.jsxs("div",{className:"sys-broker-inspector-row",children:[e.jsx("span",{className:"sys-detail-label",children:r.label}),e.jsx("code",{className:"sys-detail-value",children:r.value}),e.jsx(ie,{value:r.value,subject:r.label.toLowerCase()})]},r.label))}),e.jsxs("div",{className:"sys-broker-metadata",children:[e.jsxs("div",{className:"sys-broker-metadata-head",children:[e.jsx("span",{className:"sys-detail-label",children:"Metadata"}),e.jsx(ie,{value:f,subject:"metadata",className:"sys-broker-metadata-copy"})]}),e.jsx(As,{metadata:s.metadata,rawJson:f})]})]})]}),e.jsxs("section",{className:"sys-broker-forward","aria-labelledby":"dispatch-forward-title",children:[e.jsx("div",{className:"sys-broker-forward-head",children:e.jsx("span",{id:"dispatch-forward-title",className:"sys-broker-action-label",children:"Follow up"})}),e.jsxs("div",{id:"dispatch-forward-content",children:[e.jsx("div",{className:"sys-broker-forward-intro",children:e.jsx("div",{className:"sys-broker-ask-prompts","aria-label":"Suggested requests",children:ls.map(r=>e.jsxs("button",{type:"button",onClick:()=>ns(r),children:[e.jsx(Ls,{size:11,"aria-hidden":"true"}),r]},r))})}),e.jsxs("form",{className:"sys-broker-message-composer",onSubmit:r=>{r.preventDefault(),Te()},children:[e.jsx("label",{htmlFor:"dispatch-message-input",children:"Request"}),e.jsx("textarea",{ref:ue,id:"dispatch-message-input",value:z,rows:3,placeholder:`What should ${te?.id===u?"Scout":te?.name??"this agent"} investigate or do?`,disabled:R==="sending",onChange:r=>{M(r.target.value),R!=="idle"&&(i("idle"),x(null))},onKeyDown:r=>{r.key==="Enter"&&(r.metaKey||r.ctrlKey)&&(r.preventDefault(),Te())}}),L.length>0&&e.jsx("div",{className:"sys-broker-composer-attachments","aria-label":"Attachments",children:L.map((r,l)=>e.jsxs("span",{children:[e.jsx(Xs,{size:10,"aria-hidden":"true"}),e.jsx("span",{title:r.name,children:r.name}),e.jsx("button",{type:"button",onClick:()=>ee(p=>p.filter((g,Q)=>Q!==l)),"aria-label":`Remove ${r.name}`,children:e.jsx($e,{size:10,"aria-hidden":"true"})})]},`${r.name}:${r.size}:${l}`))}),e.jsxs("footer",{children:[e.jsxs("div",{className:"sys-broker-composer-left",children:[e.jsx("input",{ref:Me,type:"file",multiple:!0,hidden:!0,disabled:R==="sending",onChange:r=>{is([...r.target.files??[]]),r.target.value=""}}),e.jsx("button",{type:"button",className:"sys-broker-composer-attach",disabled:R==="sending",onClick:()=>Me.current?.click(),"aria-label":"Attach files",title:"Attach files",children:e.jsx(Ts,{size:16,"aria-hidden":"true"})}),e.jsx("span",{className:"sys-broker-message-attachment",title:m,children:"Dispatch context included"})]}),e.jsxs("div",{className:"sys-broker-composer-targets",children:[e.jsx("span",{className:"sys-broker-composer-route-label",children:"Send to"}),e.jsxs("label",{title:"Project target",children:[e.jsx("span",{children:"Project"}),e.jsxs("select",{"aria-label":"Project target",value:D,disabled:R==="sending",onChange:r=>{const l=r.target.value,p=w.find(g=>!l||(g.projectRoot?.trim()||g.cwd?.trim())===l)??null;me.current=!0,C(l),p&&(Z(p.id),q(p.harness?.trim()||""),H(p.model?.trim()||""))},children:[e.jsx("option",{value:"",children:"Any project"}),as.map(r=>e.jsx("option",{value:r.path,children:r.label},r.path))]})]}),e.jsxs("label",{title:"Agent target",children:[e.jsx("span",{children:"Agent"}),e.jsx("select",{"aria-label":"Agent target",value:$,disabled:R==="sending"||pe.length===0,onChange:r=>{const l=w.find(p=>p.id===r.target.value)??null;me.current=!0,Z(r.target.value),l&&(C(l.projectRoot?.trim()||l.cwd?.trim()||""),q(l.harness?.trim()||""),H(l.model?.trim()||"")),i("idle"),x(null)},children:pe.length===0?e.jsx("option",{value:"",children:"No agents"}):pe.map(r=>e.jsx("option",{value:r.id,children:r.id===u?"Scout":r.name},r.id))})]}),e.jsx(gs,{catalog:Ae,value:{harness:S,model:O,effort:J},onChange:r=>{me.current=!0,q(r.harness),H(r.model),ce(r.effort)},disabled:R==="sending"}),e.jsx(hs,{className:"sys-broker-composer-mic",disabled:R==="sending",onAppend:r=>M(l=>l.trim()?`${l.trimEnd()} ${r}`:r),onError:r=>{i("failed"),x(r)}})]}),e.jsx("button",{type:"submit",className:"sys-broker-composer-send",disabled:!z.trim()||!te||R==="sending","aria-label":`Ask ${te?.name??"recipient"} about this dispatch`,children:R==="sending"?e.jsx(ke,{size:14,className:"sys-broker-action-spinner","aria-hidden":"true"}):e.jsx(Ps,{size:14,"aria-hidden":"true"})})]})]}),h&&e.jsx("div",{className:`sys-broker-action-status sys-broker-action-status--${R}`,role:"status",children:h})]})]})]})}const xr=Es({id:"dispatch",label:"Dispatch",route:{view:"broker"},webPath:"/dispatch",screen:"BrokerScreen",embed:{path:"/embed/dispatch",profile:"macos.dispatch",rootClassName:"s-broker-embed",chrome:{showSecondaryNav:!1,showPageStatusBar:!1},ownsInternalRoutes:!0,resolveEmbedProps:s=>{const t=s.get("attempt")?.trim();return t?{initialAttemptId:t}:{}},hosts:{macos:!0}}}),st=Object.freeze(Object.defineProperty({__proto__:null,BrokerAttemptInspector:ts,BrokerScreen:fr,scoutSurface:xr},Symbol.toStringTag,{value:"Module"}));export{ts as B,fr as a,He as b,st as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as n,j as i}from"./index-Bli6bTLU.js";const _=({panOffset:h,scale:a,onPan:R,onPanStart:E,onPanEnd:u,isPanLocked:d=!1,onClick:k,showGuides:g=!1,onGuidesChange:$,gridOpacity:C=1})=>{const[B,X]=n.useState(g),[G,K]=n.useState(!1),o=n.useRef(!1),v=n.useRef({x:0,y:0}),r=n.useRef({active:!1,startX:0,startY:0}),j=n.useRef(null),x=n.useRef(null),y=n.useRef(null),A=4,H=n.useRef({x:0,y:0}),w=n.useRef(0),b=n.useRef(!1);n.useEffect(()=>{X(g)},[g]);const Y=n.useCallback(e=>{const s=e;return s?s.tagName==="INPUT"||s.tagName==="TEXTAREA"||s.isContentEditable:!1},[]),z=n.useCallback(e=>{const s=e;return s?!!s.closest('button, [role="button"], a, input, textarea, select, [data-interactive="true"]'):!1},[]),c=n.useCallback(e=>{o.current=e,K(e)},[]);n.useEffect(()=>{const e=t=>{if(w.current=t.buttons,r.current.active&&(t.buttons&1)!==1&&(r.current.active=!1),o.current&&(t.buttons&1)!==1){c(!1),r.current.active=!1,u?.(),document.body.style.cursor="";return}if(d&&o.current){c(!1),r.current.active=!1,u?.(),document.body.style.cursor="";return}const l=j.current?.getBoundingClientRect(),f=l?t.clientX-l.left:t.clientX,V=l?t.clientY-l.top:t.clientY;if(H.current={x:f,y:V},x.current&&(x.current.style.left=`${f}px`),y.current&&(y.current.style.top=`${V}px`),r.current.active&&!o.current){const P=t.clientX-r.current.startX,Q=t.clientY-r.current.startY;Math.hypot(P,Q)>=A&&(r.current.active=!1,c(!0),b.current=!0,E?.(),v.current={x:t.clientX,y:t.clientY},document.body.style.cursor="grabbing")}o.current&&(R({x:(t.clientX-v.current.x)/a,y:(t.clientY-v.current.y)/a}),v.current={x:t.clientX,y:t.clientY})},s=t=>{w.current=t.buttons,r.current.active=!1,o.current&&(c(!1),u?.(),document.body.style.cursor="")},I=t=>{(t.metaKey||t.ctrlKey)&&t.key==="\\"&&(t.preventDefault(),X(l=>{const f=!l;return $?.(f),f}))},m=()=>{r.current.active=!1,s(new MouseEvent("mouseup"))};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",s),window.addEventListener("keydown",I),window.addEventListener("blur",m),document.addEventListener("visibilitychange",m),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",s),window.removeEventListener("keydown",I),window.removeEventListener("blur",m),document.removeEventListener("visibilitychange",m)}},[R,u,E,a,Y,z,d,c,$]),n.useEffect(()=>{!d||!o.current||(c(!1),u?.(),document.body.style.cursor="")},[d,u,c]);const U=e=>{b.current=!1,!(d||e.button!==0)&&(Y(e.target)||z(e.target)||(w.current=e.buttons,r.current={active:!0,startX:e.clientX,startY:e.clientY},e.preventDefault()))},F=e=>{!b.current&&k&&k(e),b.current=!1},[M,W]=n.useState({w:0,h:0});n.useEffect(()=>{const e=()=>W({w:window.innerWidth,h:window.innerHeight});return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);const S=Math.max(.4,Math.min(2,a)),p=100*S,L=20*S,q="var(--hud-canvas-dot-minor)",J="var(--hud-canvas-dot-major)",N="color-mix(in srgb, oklch(var(--accent)) 18%, transparent)",T=(M.w/2+h.x*a)%p,D=(M.h/2+h.y*a)%p;return i.jsxs("div",{ref:j,className:`absolute inset-0 z-0 overflow-hidden bg-background ${G?"cursor-grabbing":"cursor-grab"}`,onMouseDown:U,onClick:F,children:[i.jsx("div",{className:"absolute pointer-events-none",style:{inset:"-100px",opacity:.8*C,transition:"opacity 1s ease",backgroundImage:`radial-gradient(circle, ${q} 1px, transparent 1px)`,backgroundSize:`${L}px ${L}px`,backgroundPosition:`${T+100}px ${D+100}px`}}),i.jsx("div",{className:"absolute pointer-events-none",style:{inset:"-100px",opacity:.45*C,transition:"opacity 1s ease",backgroundImage:`radial-gradient(circle, ${J} 1.5px, transparent 1.5px)`,backgroundSize:`${p}px ${p}px`,backgroundPosition:`${T+100}px ${D+100}px`}}),B&&i.jsxs(i.Fragment,{children:[i.jsx("div",{ref:x,className:"absolute top-0 bottom-0 w-px pointer-events-none",style:{left:0,backgroundColor:N}}),i.jsx("div",{ref:y,className:"absolute left-0 right-0 h-px pointer-events-none",style:{top:0,backgroundColor:N}})]})]})};export{_ as C};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as s,r as j}from"./index-Bli6bTLU.js";import{i as $,d as B,e as w,a as W}from"./conversation-model-CigSPlKA.js";import{l as O,i as q,a as E,p as T}from"./conversation-prefs-DNre-Lcx.js";import{u as G,m as J,e as K}from"./Provider-Ve8yXaWR.js";import{d as Q}from"./router-B0YclXYg.js";import{l as D,i as C,s as X}from"./sessionRead-CvFz2RHv.js";import{u as Y}from"./use-conversation-list-C0bEXFeH.js";import{u as Z}from"./use-fleet-active-asks-CK4aw-3G.js";import{i as ee}from"./colors-BtO5_zlx.js";import{A as se}from"./AgentAvatar-B1xvQ7ej.js";/* empty css */function te({children:n,count:t,tone:a="default",title:l,onClick:i}){const d=["collapsed-strip-label",a!=="default"&&`collapsed-strip-label--${a}`,t!=null&&"collapsed-strip-label--has-count",i&&"collapsed-strip-label--button"].filter(Boolean).join(" "),o=s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"collapsed-strip-label-mark","aria-hidden":!0}),i?s.jsx("span",{className:"collapsed-strip-label-expand","aria-hidden":!0,children:"›"}):null,s.jsx("span",{className:"collapsed-strip-label-text",children:n}),t!=null?s.jsx("span",{className:"collapsed-strip-label-count",children:t}):null]});return i?s.jsx("button",{type:"button",className:d,title:l??n,"aria-label":l??n,onClick:i,children:o}):s.jsx("div",{className:d,title:l??n,children:o})}function ae({label:n,emptyMark:t="·",showLabel:a=!0,labelTone:l="default",labelCount:i,onLabelClick:d,children:o}){const v=!o||Array.isArray(o)&&o.length===0,p=a?s.jsx(te,{tone:l,count:i,onClick:d,title:d?`Expand ${n}`:void 0,children:n}):null;return v?s.jsxs("div",{className:"collapsed-strip collapsed-strip--empty","aria-hidden":!0,children:[p,s.jsx("span",{className:"collapsed-strip-empty-mark",children:t})]}):s.jsxs("div",{className:"collapsed-strip",role:"list","aria-label":n,children:[p,o]})}function Ce(){return s.jsx("div",{className:"collapsed-strip-rule","aria-hidden":!0})}function ne({title:n,active:t,tone:a="default",ava:l,avaColor:i,glyph:d,avatarNode:o,dot:v,pinned:p,onClick:b}){const m=["collapsed-chip",a==="channel"&&"collapsed-chip--channel",a==="neutral"&&"collapsed-chip--neutral",a==="attention"&&"collapsed-chip--attention",a==="unread"&&"collapsed-chip--unread",t&&"collapsed-chip--active",p&&"collapsed-chip--pinned"].filter(Boolean).join(" ");return s.jsxs("button",{type:"button",role:"listitem",className:m,title:n,"aria-label":n,"aria-current":t?"page":void 0,onClick:b,children:[o?s.jsx("span",{className:"collapsed-chip-avatar-wrap",children:o}):l?s.jsx("span",{className:"collapsed-chip-ava",style:i?{"--ava-color":i}:void 0,children:l}):s.jsx("span",{className:`collapsed-chip-glyph${typeof d=="string"&&d.length>1?" collapsed-chip-glyph--long":""}`,children:d}),v?s.jsx("span",{className:["collapsed-chip-dot",v==="attention"&&"collapsed-chip-dot--attention",v==="live"&&"collapsed-chip-dot--live"].filter(Boolean).join(" "),"aria-hidden":!0}):null,p?s.jsx("span",{className:"collapsed-chip-pin","aria-hidden":!0}):null]})}function Ie(n){const t=n.trim(),a=t.split(/[\s/_-]+/).filter(Boolean);if(a.length>=2){const l=a[a.length-1];return/^\d+$/.test(l)&&a.length>=3?(a[a.length-2][0]??"?").toUpperCase():(l[0]??"?").toUpperCase()}return(t[0]??"?").toUpperCase()}const le=3,ie=3,oe=4,re=3;function y(n,t){return[...n].sort((a,l)=>{const i=C(a.lastMessageAt,a.id,t)?0:1,d=C(l.lastMessageAt,l.id,t)?0:1;return i!==d?i-d:(l.lastMessageAt??0)-(a.lastMessageAt??0)})}function ce({onExpand:n}){const{route:t,navigate:a,agents:l}=G(),{sessions:i}=Y(),d=Z(),[o,v]=j.useState(()=>O()),[p,b]=j.useState(()=>D()),m=Q(t),S=j.useMemo(()=>J(l,m),[l,m]),P=j.useMemo(()=>{const e=new Map;for(const f of l)e.set(f.id,f);return e},[l]),R=t.view==="messages"||t.view==="conversation"?t.conversationId:void 0;j.useEffect(()=>{v(O()),b(D())},[]);const r=j.useMemo(()=>{const e=K(i,S,m).filter(c=>!q(c.id,o)),f=e.filter(c=>E(c.id,o)).sort((c,x)=>T(x.id,o)-T(c.id,o)||(x.lastMessageAt??0)-(c.lastMessageAt??0)).slice(0,le),g=new Set(f.map(c=>c.id)),h=e.filter(c=>!g.has(c.id));return{pinned:f,channels:y(h.filter(w),p).slice(0,ie),dms:y(h.filter(B),p).slice(0,oe),observed:y(h.filter($),p).slice(0,re),totals:{channels:h.filter(w).length,dms:h.filter(B).length,observed:h.filter($).length,pinned:e.filter(c=>E(c.id,o)).length}}},[i,S,m,o,p]),U=e=>{b(X(e.id)),a({view:"messages",conversationId:e.id,...m?{machineId:m}:{}})},k=[...r.pinned,...r.channels,...r.dms,...r.observed],I=k.filter(e=>C(e.lastMessageAt,e.id,p)).length,M=(e,f=!1)=>{const g=W(e),h=w(e),c=C(e.lastMessageAt,e.id,p),x=h?void 0:pe(e,g),V=x??g,A=e.agentId?P.get(e.agentId):void 0,L=e.agentId?d.get(e.agentId):void 0,_=L?.status==="needs_attention",z=L?.status==="working",F=A?ee(A.state):!1,H=_?"attention":c?"unread":z||F?"live":null;return s.jsx(ne,{title:f?`${g} · pinned`:x?`${g} · ${x}`:g,active:e.id===R,tone:h?"channel":_?"attention":c?"unread":"default",avatarNode:h?void 0:s.jsx(se,{agent:A,name:V,size:28,tile:!0,presence:!1}),glyph:h?de(g):void 0,dot:H,pinned:f,onClick:()=>U(e)},e.id)},u=[];return r.pinned.length&&u.push(s.jsx(N,{mark:"Pin",count:r.totals.pinned,showMark:u.length>0,children:r.pinned.map(e=>M(e,!0))},"pin")),r.channels.length&&u.push(s.jsx(N,{mark:"#",count:r.totals.channels,showMark:u.length>0,children:r.channels.map(e=>M(e))},"ch")),r.dms.length&&u.push(s.jsx(N,{mark:"DM",count:r.totals.dms,showMark:u.length>0,children:r.dms.map(e=>M(e))},"dm")),r.observed.length&&u.push(s.jsx(N,{mark:"Obs",count:r.totals.observed,showMark:u.length>0,children:r.observed.map(e=>M(e))},"obs")),s.jsx(ae,{label:"Chat",emptyMark:"#",labelTone:I>0?"accent":"default",labelCount:I>0?I:k.length||void 0,onLabelClick:n,children:u})}function de(n){const a=n.replace(/^#+/,"").match(/[a-z0-9]/i)?.[0]?.toLowerCase()??"?";return s.jsxs("span",{className:"collapsed-chip-channel-badge",children:[s.jsx("span",{className:"collapsed-chip-channel-hash","aria-hidden":!0,children:"#"}),s.jsx("span",{className:"collapsed-chip-channel-text",children:a})]})}function pe(n,t){const a=t.toLowerCase();for(const l of n.participants??[]){const i=l.displayName||l.label;if(i&&i.toLowerCase()!==a)return i}}function N({mark:n,count:t,showMark:a=!0,children:l}){return s.jsxs("div",{className:"collapsed-strip-section",role:"group","aria-label":n,children:[a?s.jsxs("div",{className:"collapsed-strip-section-mark",title:t!=null?`${n} · ${t}`:n,children:[s.jsx("span",{className:"collapsed-strip-section-mark-text",children:n}),t!=null&&t>0?s.jsx("span",{className:"collapsed-strip-section-mark-count",children:t>99?"99+":t}):null]}):null,l]})}const Ae=Object.freeze(Object.defineProperty({__proto__:null,ChatCollapsedStrip:ce},Symbol.toStringTag,{value:"Module"}));export{ae as C,ce as a,ne as b,Ie as c,Ce as d,Ae as e};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as h,j as e}from"./index-Bli6bTLU.js";import{A as G}from"./AgentAvatar-B1xvQ7ej.js";import{M as J}from"./text-BR9Bap0E.js";import{C as Y,D as ee,E as O,F as se,M as _}from"./NewChatComposer-Bgqes0UQ.js";import{F as te}from"./file-text-BVhkMWyC.js";import"./index-DFdlQs_c.js";import{c as I}from"./createLucideIcon-DLlxGjKt.js";import{Z as ae}from"./zap-rw7uwZht.js";import{X as ne}from"./x-BJyPzFnn.js";const re=[["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"}]],oe=I("pencil",re);const ce=[["path",{d:"M20 18v-2a4 4 0 0 0-4-4H4",key:"5vmcpk"}],["path",{d:"m9 17-5-5 5-5",key:"nvlc11"}]],ie=I("reply",ce),U="Only markdown, code, images, and video clips can be attached.";function Ce(){const[t,c]=h.useState([]),[g,x]=h.useState(null),[d,p]=h.useState(null),[i,j]=h.useState(0),n=h.useRef(null),f=h.useCallback((r,l="Attached")=>{const m=r.filter(Y);return m.length===0?(r.length>0&&p(U),0):(p(null),c(v=>{const z=new Set(v.map(u=>`${u.name}:${u.size}:${u.lastModified}`)),R=m.filter(u=>!z.has(`${u.name}:${u.size}:${u.lastModified}`));return R.length>0?[...v,...R]:v}),x(m.length===1?`${l} ${m[0]?.name??"1 attachment"}.`:`${l} ${m.length} attachments.`),m.length)},[]),b=h.useCallback(r=>{c(l=>l.filter(m=>m!==r)),x(null)},[]),$=h.useCallback(()=>{c([]),x(null),p(null),j(0)},[]),y=h.useCallback(()=>{n.current?.click()},[]),E=h.useCallback(r=>{const l=ee(r.clipboardData);l.length!==0&&(r.preventDefault(),f(l,"Pasted"))},[f]),k=h.useMemo(()=>({onDragOver:r=>{O(r.dataTransfer)&&(r.preventDefault(),j(l=>l===0?1:l))},onDragLeave:r=>{r.currentTarget.contains(r.relatedTarget)||j(0)},onDrop:r=>{if(!O(r.dataTransfer))return;r.preventDefault(),j(0);const l=se(r.dataTransfer);if(l.length===0){p(U);return}f(l,"Dropped")}}),[f]);return{files:t,hasFiles:t.length>0,feedback:g,error:d,dragActive:i>0,stage:f,remove:b,clear:$,setError:p,openPicker:y,dropHandlers:k,onPaste:E,inputRef:n}}function le(t){if(t<1024)return`${t} B`;const c=t/1024;return c<1024?`${c.toFixed(0)} KB`:`${(c/1024).toFixed(1)} MB`}function de(t){return(t.split(".").pop()?.toUpperCase()??"FILE").slice(0,4)}function me({file:t,onRemove:c}){const g=h.useMemo(()=>URL.createObjectURL(t),[t]);h.useEffect(()=>()=>URL.revokeObjectURL(g),[g]);const x=t.type.startsWith("video/"),d=t.type.startsWith("image/"),p=de(t.name),i=le(t.size);return e.jsxs("div",{className:"s-msg-compose-attachment surface-card surface-card--inset",children:[x?e.jsx("video",{src:g,muted:!0,playsInline:!0}):d?e.jsx("img",{src:g,alt:t.name}):e.jsxs("div",{className:"s-msg-compose-attachment-file",title:`${t.name} (${i})`,children:[e.jsxs("div",{className:"s-msg-compose-attachment-file-icon",children:[e.jsx(te,{size:16,"aria-hidden":"true"}),e.jsx("span",{className:"s-msg-compose-attachment-ext label-xs",children:p})]}),e.jsx("span",{className:"s-msg-compose-attachment-name",children:t.name}),e.jsx("span",{className:"s-msg-compose-attachment-size label-xs text-dim",children:i})]}),e.jsx("button",{type:"button",className:"s-msg-compose-attachment-remove btn btn--ghost btn--icon","aria-label":`Remove ${t.name}`,title:`Remove ${t.name}`,onClick:c,children:"×"})]})}function ue({attachments:t,accept:c="image/*,video/*,text/markdown,.md,.markdown,text/plain,.txt"}){const{files:g,feedback:x,error:d,remove:p,stage:i,inputRef:j}=t;return e.jsxs(e.Fragment,{children:[e.jsx("input",{ref:j,type:"file",multiple:!0,accept:c,className:"s-msg-compose-file-input",onChange:n=>{i([...n.target.files??[]]),n.target.value=""}}),g.length>0?e.jsx("div",{className:"s-msg-compose-attachments","aria-label":"Staged attachments",children:g.map(n=>e.jsx(me,{file:n,onRemove:()=>p(n)},`${n.name}:${n.size}:${n.lastModified}`))}):null,d?e.jsx("div",{className:"s-msg-compose-attach-note","data-tone":"error",role:"alert",children:d}):x?e.jsx("div",{className:"s-msg-compose-attach-note","data-tone":"muted",role:"status",children:x}):null]})}function pe({composeRef:t,draft:c,setDraft:g,composePlaceholder:x,slashState:d,setSlashState:p,filteredSlashCommands:i,applySlashCommand:j,mentionState:n,setMentionState:f,filteredMentions:b,applyMention:$,updateTriggersFromDraft:y,closeSuggestions:E,replyTarget:k,onCancelReply:r,isStopMode:l,sending:m,composeAction:v,onSend:z,onInterrupt:R,attachments:u,isAgentBusy:H,busyIntent:D,onBusyIntentChange:L,queued:N,queueNote:K,onEditQueued:B,editingQueuedId:C,editingAttachmentCount:A,onCancelEdit:W,onUnqueue:S,onSendQueuedNow:Q}){const Z=e.jsxs(e.Fragment,{children:[d.open?e.jsx(_,{label:"Slash commands",items:i.map(s=>({id:s.command,token:s.label,description:s.description})),activeIndex:d.index,onPick:s=>{const a=i[s];a&&j(a)},onActiveIndexChange:s=>p(a=>({...a,index:s}))}):null,n.open?e.jsx(_,{label:"Mention agent",items:b.map(s=>({id:s.id,token:`@${s.handle}`,description:s.name,avatarNode:e.jsx(G,{name:s.name,size:20,tile:!0,presence:!1})})),activeIndex:n.index,onPick:s=>{const a=b[s];a&&$(a)},onActiveIndexChange:s=>f(a=>({...a,index:s}))}):null]}),V=c.trim().length>0,q=C!==null,P=V||u.hasFiles||A>0,F=H&&P,w=F&&D==="steer",T=q?N.findIndex(s=>s.id===C)+1:0,M=F?e.jsxs("div",{className:"s-msg-compose-mode",role:"group","aria-label":"What Send does while this turn is running",children:[e.jsx("button",{type:"button",className:"s-msg-compose-mode-btn","data-mode":"queue","aria-pressed":D==="queue",title:"Hold this draft until the running turn lands",disabled:m,onClick:()=>L("queue"),children:"Queue"}),e.jsx("button",{type:"button",className:"s-msg-compose-mode-btn","data-mode":"steer","aria-pressed":D==="steer",title:"Interrupt the running turn and deliver this now",disabled:m,onClick:()=>L("steer"),children:"Steer"})]}):null,X=N.length>0||M?e.jsxs("div",{className:"s-msg-compose-queue",role:"group","aria-label":"Queued messages",children:[e.jsxs("div",{className:"s-msg-compose-queue-head",children:[e.jsx("span",{className:"s-msg-compose-queue-kicker",children:N.length>0?`Queue · ${N.length}`:"Queues next"}),e.jsx("span",{className:"s-msg-compose-queue-hint",children:q?w?`Rewriting ${T} — send interrupts this turn`:`Rewriting ${T} — send returns it to its place`:N.length>0?w?"Send interrupts this turn":K??"":w?"Interrupts this turn on send":"Sends when this turn lands"}),M]}),N.map((s,a)=>e.jsxs("div",{className:"s-msg-compose-queue-row","data-editing":s.id===C?"true":void 0,children:[e.jsx("span",{className:"s-msg-compose-queue-index",children:a+1}),e.jsx("span",{className:"s-msg-compose-queue-body",children:s.body.trim()||"Attachments only"}),s.attachments.length>0?e.jsxs("span",{className:"s-msg-compose-queue-clip",children:[s.attachments.length," file",s.attachments.length===1?"":"s"]}):null,s.id===C?e.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 ${a+1}`,onClick:W,children:"Cancel edit"}):e.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 ${a+1}`,disabled:m||q,onClick:()=>B(s.id),children:[e.jsx(oe,{size:11,"aria-hidden":"true"}),e.jsx("span",{children:"Edit"})]}),e.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 ${a+1} now`,disabled:m||s.id===C,onClick:()=>Q(s.id),children:[e.jsx(ae,{size:11,"aria-hidden":"true"}),e.jsx("span",{children:"Send now"})]}),e.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 ${a+1}`,onClick:()=>S(s.id),children:"×"})]},s.id))]}):null;return e.jsx(J,{density:"thread",value:c,onChange:(s,a)=>{g(s),y(s,a?.caret??s.length)},onSend:z,placeholder:x,sending:m,stopMode:l,onStop:R,canSend:P,sendTitle:w?"Steer — interrupt this turn and send now (Cmd+Enter)":F?"Queue for the next turn (Cmd+Enter)":"Send (Cmd+Enter)",sendAriaLabel:w?"Steer — interrupt this turn and send now (Cmd+Enter)":F?"Queue message for the next turn (Cmd+Enter)":v==="steer"?"Send follow-up (Cmd+Enter)":"Send message (Cmd+Enter)",showAttach:!0,onAttach:u.openPicker,onPaste:u.onPaste,dropHandlers:u.dropHandlers,dragActive:u.dragActive,textareaRef:t,overlay:Z,above:X,aboveAttached:!0,header:e.jsxs(e.Fragment,{children:[k?e.jsxs("div",{className:"s-thread-compose-reply surface-card surface-card--inset",role:"status",children:[e.jsx(ie,{className:"s-thread-compose-reply-icon text-muted",size:13,strokeWidth:1.8,"aria-hidden":"true"}),e.jsx("span",{className:"s-thread-compose-reply-label label-xs text-muted",children:"Replying to"}),e.jsx("span",{className:"s-thread-compose-reply-actor chip chip--sm chip--mono chip--neutral",children:k.actorLabel}),e.jsx("span",{className:"s-thread-compose-reply-preview text-muted",title:k.preview,children:k.preview}),e.jsx("button",{type:"button",className:"s-thread-compose-reply-cancel btn btn--ghost btn--icon","aria-label":"Cancel reply",title:"Cancel reply",onClick:r,children:e.jsx(ne,{size:13,strokeWidth:1.8,"aria-hidden":"true"})})]}):null,q&&A>0?e.jsxs("div",{className:"s-msg-compose-carried",role:"status",children:[A," file",A===1?"":"s"," stay attached to this draft"]}):null,e.jsx(ue,{attachments:u})]}),tools:e.jsxs("span",{className:"s-thread-compose-hint s-msg-compose-tools-hint",children:[e.jsx("kbd",{className:"s-kbd",children:"/"})," commands"," · ",e.jsx("kbd",{className:"s-kbd",children:"@"})," agents"]}),onSelect:s=>{const a=s.currentTarget;y(a.value,a.selectionStart)},onBlur:()=>{setTimeout(E,120)},onKeyDown:s=>{if(!(d.open&&i.length>0||n.open&&b.length>0))return!1;if(s.key==="ArrowDown")return d.open?p(o=>({...o,index:(o.index+1)%i.length})):n.open&&f(o=>({...o,index:(o.index+1)%b.length})),!0;if(s.key==="ArrowUp")return d.open?p(o=>({...o,index:(o.index-1+i.length)%i.length})):n.open&&f(o=>({...o,index:(o.index-1+b.length)%b.length})),!0;if(s.key==="Escape")return E(),!0;if((s.key==="Enter"||s.key==="Tab")&&!s.shiftKey&&!s.metaKey&&!s.ctrlKey&&!s.altKey){if(d.open){const o=i[d.index]??i[0];o&&j(o)}else if(n.open){const o=b[n.index]??b[0];o&&$(o)}return!0}return!1}})}const we=Object.freeze(Object.defineProperty({__proto__:null,ConversationComposer:pe},Symbol.toStringTag,{value:"Module"}));export{pe as C,we as a,Ce as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as t}from"./index-Bli6bTLU.js";import{M as p}from"./message-markup-DAnnGpWr.js";import{f as d}from"./conversation-model-CigSPlKA.js";import{t as n}from"./time-Dhsh_2EG.js";import"./mentions-Cd6XticV.js";import"./colors-BtO5_zlx.js";import"./index-DFdlQs_c.js";import"./api-DEHEgJ9m.js";import"./Provider-Ve8yXaWR.js";import"./provider-CX9EWecp.js";import"./router-B0YclXYg.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-D4dHTRkt.js";import"./sse-CSozY6mp.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D4vuKzOL.js";import"./DocumentFocusViewer-DmtFisY9.js";import"./createLucideIcon-DLlxGjKt.js";import"./TextDocumentSurface-C7fGlzY8.js";import"./file-text-BVhkMWyC.js";import"./x-BJyPzFnn.js";import"./chevron-right-BMqtBds_.js";import"./code-xml-ByQsfOI_.js";import"./arrow-left-i-h6JAgs.js";import"./arrow-right-B0Yi01Zr.js";import"./scout-voice-DvG_3stJ.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-7iEtvu9P.js";import"./NewChatComposer-Bgqes0UQ.js";import"./text-BR9Bap0E.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DoT8gpw6.js";import"./HarnessMark-DGZ6o6Ct.js";import"./NewChatOrigin-DpHS2Wmt.js";import"./chevron-down-Da5tV19_.js";import"./search-BbgsEMXa.js";import"./chunk-HRAB3GC3-BUVYXXAp.js";import"./AgentDetailCard-FelCxQrT.js";import"./AgentLiveActions-Bn3zeZBN.js";import"./terminal-takeover-CtA3wcXh.js";import"./openContent-C6XO6kr5.js";import"./eye-BeCSqJn1.js";import"./terminal-BiNIXhna.js";function l({at:a}){const i=d(a);return t.jsxs("div",{className:"s-thread-day-divider","aria-label":i,children:[t.jsx("span",{className:"s-thread-day-line","aria-hidden":"true"}),t.jsx("span",{className:"s-thread-day-label",children:i}),t.jsx("span",{className:"s-thread-day-line","aria-hidden":"true"})]})}function it({row:a,expanded:i,showDayDivider:e,onToggle:s}){const m=`${a.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:a.createdAt}),a.messages.map(r=>t.jsx("span",{id:`msg-${r.id}`,className:"s-thread-fanout-anchor","aria-hidden":"true"},r.id)),t.jsxs("button",{type:"button",className:"s-thread-fanout-summary","aria-expanded":i,onClick:s,title:a.recipients.join(", "),children:[t.jsx("span",{className:"s-thread-fanout-caret","aria-hidden":"true",children:i?"▾":"▸"}),t.jsx("span",{className:"s-thread-fanout-label",children:m}),t.jsx("span",{className:"s-thread-fanout-time",children:n(a.createdAt)})]}),i&&t.jsxs("div",{className:"s-thread-fanout-detail",children:[t.jsx("ul",{className:"s-thread-fanout-recipients",children:a.messages.map((r,o)=>t.jsx("li",{className:"s-thread-fanout-recipient",children:a.recipients[o]},r.id))}),t.jsx("div",{className:"s-thread-fanout-body",children:t.jsx(p,{text:a.messages[0].body})})]})]})}export{it as FanOutRow,l as ThreadDayDivider};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as k,j as e}from"./index-Bli6bTLU.js";import{c as A}from"./clipboard-e3fSpeo7.js";import{d as G}from"./router-B0YclXYg.js";import{A as M}from"./AgentAvatar-B1xvQ7ej.js";import{H as K}from"./HarnessMark-DGZ6o6Ct.js";import{a as J}from"./Provider-Ve8yXaWR.js";import{H as Q}from"./agent-identity-DzHGhLdJ.js";import{n as Z,c as ee}from"./colors-BtO5_zlx.js";import{B as te}from"./BackToPicker-CqYhOaLB.js";import{o as P}from"./openContent-C6XO6kr5.js";import{AstronautSuit as se}from"./AstronautSuit-BADl7m8x.js";import{w as ne,x as ae}from"./conversation-model-CigSPlKA.js";import{E as re}from"./eye-BeCSqJn1.js";import{c as oe}from"./createLucideIcon-DLlxGjKt.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-D4dHTRkt.js";import"./api-DEHEgJ9m.js";import"./SpriteAvatar-DMrSssNZ.js";import"./provider-CX9EWecp.js";import"./sse-CSozY6mp.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-D4vuKzOL.js";import"./DocumentFocusViewer-DmtFisY9.js";import"./TextDocumentSurface-C7fGlzY8.js";import"./file-text-BVhkMWyC.js";import"./x-BJyPzFnn.js";import"./chevron-right-BMqtBds_.js";import"./code-xml-ByQsfOI_.js";import"./arrow-left-i-h6JAgs.js";import"./arrow-right-B0Yi01Zr.js";import"./scout-voice-DvG_3stJ.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-7iEtvu9P.js";import"./NewChatComposer-Bgqes0UQ.js";import"./text-BR9Bap0E.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-DoT8gpw6.js";import"./index-DFdlQs_c.js";import"./NewChatOrigin-DpHS2Wmt.js";import"./chevron-down-Da5tV19_.js";import"./search-BbgsEMXa.js";import"./chunk-HRAB3GC3-BUVYXXAp.js";import"./time-Dhsh_2EG.js";const ie=[["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"}]],le=oe("user-plus",ie),X=150,_=320,ce=1.4,de=1.1,V=5,me=22,W=5200,he=1,pe=1200;function ue(n){k.useEffect(()=>{const s=n.current;if(!s||window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)return;let i=[],r=[],x=-9999,m=-9999,u=0;const c=()=>{i=[],r=[],s.querySelectorAll(".sprite-cell--eye circle").forEach(o=>{const a=o.getBoundingClientRect();if(!a.width)return;const h=o.closest("[data-state]");i.push({el:o,cx:a.left+a.width/2,cy:a.top+a.height/2,working:h?.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})})},y=o=>o<X?1:o>_?0:(_-o)/(_-X),f=o=>{for(const a of i){const h=x-a.cx,N=m-a.cy,b=Math.hypot(h,N),p=y(b),v=b<1?1:b;let j=h/v*ce*p;const w=N/v*de*p;if(a.working&&p<1){const S=o%W/W;j+=Math.sin(S*Math.PI*2)*he*(1-p)}a.el.style.transform=`translate(${j.toFixed(2)}px, ${w.toFixed(2)}px)`}for(const a of r){const h=x-a.cx,N=Math.hypot(h,m-a.cy),b=y(N),p=Math.max(-V,Math.min(V,h/me))*b;a.el.style.transform=p===0?"":`rotate(${p.toFixed(2)}deg)`}u=requestAnimationFrame(f)},d=o=>{x=o.clientX,m=o.clientY};c();const L=window.setInterval(c,pe);return u=requestAnimationFrame(f),window.addEventListener("resize",c),document.addEventListener("pointermove",d,{passive:!0}),()=>{cancelAnimationFrame(u),window.clearInterval(L),window.removeEventListener("resize",c),document.removeEventListener("pointermove",d);for(const o of i)o.el.style.transform="";for(const o of r)o.el.style.transform=""}},[n])}function E(n,s,i){const r=i?Q[i.trim().toLowerCase()]:void 0;return{"--fp-z":String(n-s),"--fp-i":String(s),...r==null?{}:{"--fp-suit-hue":String(r)}}}function xe(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 O({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 R({count:n,className:s,style:i,rosterId:r,expanded:x,onClick:m}){const u=`${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":`${u}; open participant list`,"aria-haspopup":"dialog","aria-controls":r,"aria-expanded":x,onClick:m,children:e.jsxs("span",{className:"s-thread-participant-face s-thread-participant-face--overflow",children:["+",xe(n)]})})}function ot({showBackNav:n,isDm:s,navigate:i,route:r,canonicalConversationId:x,threadTitle:m,agentId:u,sessionId:c,detailRoute:y,participants:f,operator:d,canAddParticipants:L,onToggleAddParticipant:o}){const a=J(),h=G(r),N=k.useRef(null),b=k.useRef(null),p=k.useId(),[v,j]=k.useState(!1);ue(N);const w=f.slice(0,4),S=Math.max(f.length-w.length,0),z=Math.max(f.length-2,0),B=Math.max(f.length-1,0),C=w.length+(S>0?1:0)+(d.active?1:0);k.useEffect(()=>{if(!v)return;const t=g=>{b.current?.contains(g.target)||j(!1)},l=g=>{g.key==="Escape"&&j(!1)};return document.addEventListener("mousedown",t),document.addEventListener("keydown",l),()=>{document.removeEventListener("mousedown",t),document.removeEventListener("keydown",l)}},[v]);const $=t=>t.agent?{view:"agents-v2",agentId:t.agent.id,...h?{machineId:h}:{}}:t.sessionId?{view:"sessions",sessionId:t.sessionId,...h?{machineId:h}:{}}:null,H=t=>{const l=$(t);l&&(j(!1),P(i,l,{returnTo:r}))};return e.jsxs("div",{className:"s-thread-center-header",onClick:t=>{t.target?.closest("button,a,input,select,textarea")||!s||!y||P(i,y,{returnTo:r})},style:s&&y?{cursor:"pointer"}:void 0,onContextMenu:t=>{const l=[{kind:"action",label:"Copy Title",onSelect:()=>{A(m)}}];u&&l.push({kind:"action",label:"Copy Agent ID",onSelect:()=>{A(u)}}),!u&&c&&l.push({kind:"action",label:"Copy Session ID",onSelect:()=>{A(c)}}),l.push({kind:"action",label:"Copy Conversation ID",onSelect:()=>{A(x)}}),a(t,l)},children:[n&&e.jsx(te,{slot:"conversation",fallback:{view:"inbox"},navigate:i,label:"Back",className:"s-thread-header-back"}),e.jsx("div",{className:"s-thread-center-header-info",children:s&&y?e.jsx("button",{type:"button",className:"s-thread-center-header-name",title:`Open ${m} details`,onClick:()=>P(i,y,{returnTo:r}),children:m}):e.jsx("span",{className:"s-thread-center-header-name",children:m})}),e.jsxs("div",{className:"s-thread-center-header-right",children:[f.length>0&&e.jsxs("div",{className:"s-thread-participants",ref:t=>{N.current=t,b.current=t},"aria-label":"Conversation participants",children:[w.map((t,l)=>{const g=[t.harness,t.model,t.reasoningEffort].filter(Boolean).join(" · ")||null,I=t.agent?Z(t.agent.state??null,t.agent):null,U=t.agent?ee(t.agent.state??null,t.agent):"Session participant",q=$(t),T=q?t.agent?"Open profile":"Open session":null,Y=[t.name,g,U,T].filter(Boolean).join(", "),D=e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"s-thread-participant-face",children:[e.jsx(se,{}),e.jsx(M,{agent:t.agent??void 0,name:t.name,placement:"turn",size:28,className:"s-thread-participant-avatar"})]}),t.harness?e.jsx(K,{harness:t.harness,size:9,className:"s-thread-participant-harness",title:null}):null,e.jsx(O,{name:t.name,runtime:g,state:U,action:T})]}),F={className:"s-thread-participant",style:E(C,l,t.harness),"data-state":I??void 0,"data-compact-hidden":l>=2?"true":void 0,"data-narrow-hidden":l>=1?"true":void 0,"aria-label":Y};return q?e.jsx("button",{type:"button",...F,className:`${F.className} s-thread-participant--button`,onClick:()=>H(t),children:D},t.id):e.jsx("span",{...F,role:"group",tabIndex:0,children:D},t.id)}),S>0?e.jsx(R,{count:S,className:"s-thread-participant--desktop-overflow",style:E(C,w.length),rosterId:p,expanded:v,onClick:()=>j(t=>!t)}):null,z>0?e.jsx(R,{count:z,className:"s-thread-participant--compact-overflow",style:E(C,2),rosterId:p,expanded:v,onClick:()=>j(t=>!t)}):null,B>0?e.jsx(R,{count:B,className:"s-thread-participant--narrow-overflow",style:E(C,1),rosterId:p,expanded:v,onClick:()=>j(t=>!t)}):null,d.active?e.jsxs("span",{className:"s-thread-participant s-thread-participant--operator",style:E(C,C-1),role:"group",tabIndex:0,"aria-label":`${d.name}, you, in this conversation`,children:[e.jsx("span",{className:"s-thread-participant-face",children:e.jsx(M,{name:d.name,placement:"turn",size:28,className:"s-thread-participant-avatar"})}),e.jsx(O,{name:`${d.name} (you)`,runtime:null,state:"In this conversation",action:null})]}):e.jsxs("span",{className:"s-thread-participant-observer",role:"group",tabIndex:0,"aria-label":`${d.name}, observing, not in this conversation`,children:[e.jsx(re,{size:15,strokeWidth:1.9,"aria-hidden":"true"}),e.jsx(O,{name:d.name,runtime:null,state:"Observing, not in this conversation",action:null})]}),v?e.jsxs("div",{id:p,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=$(t),g=[t.harness,t.model].filter(Boolean).join(" · "),I=e.jsxs(e.Fragment,{children:[e.jsx(M,{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:()=>H(t),children:I},t.id):e.jsx("div",{className:"s-thread-participant-roster-row",children:I},t.id)}),d.active?e.jsxs("div",{className:"s-thread-participant-roster-row",children:[e.jsx(M,{name:d.name,placement:"turn",size:24,className:"s-thread-participant-roster-avatar"}),e.jsxs("span",{children:[e.jsxs("strong",{children:[d.name," (you)"]}),e.jsx("small",{children:"Operator"})]})]}):null]})]}):null]}),L&&e.jsx("button",{type:"button",className:"s-thread-add-participant-trigger",onClick:o,title:"Add participant","aria-label":"Add participant",children:e.jsx(le,{size:14,strokeWidth:1.9,"aria-hidden":"true"})})]})]})}function it({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:()=>{A(n)},children:[e.jsx("span",{children:ne()}),e.jsx("strong",{children:ae(n)})]}),s&&e.jsxs("span",{className:"s-thread-identity-chip",title:s,children:[e.jsx("span",{children:"Alias"}),e.jsx("strong",{children:s})]})]})}function lt({agents:n,addParticipantId:s,setAddParticipantId:i,addingParticipant:r,addParticipantError:x,onCancel:m,onSubmit:u}){return e.jsxs("form",{className:"s-thread-add-participant",onSubmit:c=>{c.preventDefault(),u()},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:m,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"})]})]}),x&&e.jsx("div",{className:"s-thread-add-participant-error",children:x})]})}export{lt as AddParticipantForm,ot as ConversationHeader,it as ConversationIdentityRow};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/conversation-motion-features-_95aZx_1.js","assets/gestures-BXIGYk_p.js","assets/index-Bli6bTLU.js","assets/index-DzlEgstl.css","assets/use-reduced-motion-BLn59zLn.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{j as e,r as g,_ as z}from"./index-Bli6bTLU.js";import{n as W,t as B,o as O,r as D,p as U,m as F,c as K,q as H,s as q}from"./conversation-model-CigSPlKA.js";import{n as G,d as L,f as V,s as J}from"./colors-BtO5_zlx.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-Ve8yXaWR.js";import{o as E}from"./openContent-C6XO6kr5.js";import{g as Y,c as Z,b as ee,e as te,f as se}from"./tail-display-DcliDVkW.js";import{u as ae}from"./use-reduced-motion-BLn59zLn.js";import{L as ie,m as f}from"./proxy-C35W-YHZ.js";import{C as ne}from"./chevron-down-Da5tV19_.js";import{C as re}from"./chevron-right-BMqtBds_.js";import{A as oe}from"./activity-D4W2XZY2.js";import{T as ce}from"./terminal-BiNIXhna.js";import{M as le}from"./message-circle-44KSmbvQ.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 De(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 Ue(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 Fe(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 Ke(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 He(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 qe(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 Ge(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 Ve(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-_95aZx_1.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
|
-
`:"",a.arg?`args: ${a.arg}
|
|
4
|
-
`:"",a.outcome?`outcome: ${a.outcome}
|
|
5
|
-
`:"",a.text?`text: ${a.text}
|
|
6
|
-
`:"",`timestamp: ${b(a.ts)}`]})})]})]},a.id)})})]})}function R({events:s,limit:t=3,compact:o=!1}){const r=s.slice(0,t);return r.length===0?null:e.jsx("ol",{className:`s-thread-motion-events${o?" s-thread-motion-events--compact":""}`,"aria-label":"Latest run activity",children:r.map((i,c)=>e.jsxs("li",{className:"s-thread-motion-event-card",children:[e.jsx("span",{className:"s-thread-motion-event-dot",children:e.jsx("span",{className:`dot dot--sm ${c===0?"dot--working dot--pulse dot--glow":"dot--neutral"}`})}),e.jsx("span",{className:"s-thread-motion-event-kind chip chip--sm chip--mono chip--ghost",children:W(i.kind)}),e.jsx("span",{className:"s-thread-motion-event-summary",children:B(i)??"Activity recorded"}),e.jsx("time",{className:"label-xs",title:b(i.ts),children:w(i.ts)})]},i.id))})}function be(){const s=ae();return e.jsx(ie,{features:je,strict:!0,children:e.jsxs(f.section,{className:"s-thread-skeleton","aria-busy":"true","aria-live":"polite",initial:s?!1:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:.2,ease:[.2,.7,.3,1]},children:[e.jsxs("div",{className:"s-thread-skeleton-intro",role:"status",children:[e.jsxs("div",{className:"s-thread-loader-mark","aria-hidden":"true",children:[e.jsx(f.span,{className:"s-thread-loader-orbit",animate:s?void 0:{rotate:360},transition:{duration:3.2,ease:"linear",repeat:1/0},children:e.jsx("span",{})}),e.jsx(f.span,{className:"s-thread-loader-core",animate:s?void 0:{scale:[.88,1,.88],opacity:[.58,1,.58]},transition:{duration:1.8,ease:"easeInOut",repeat:1/0}})]}),e.jsxs("span",{className:"s-thread-skeleton-copy",children:[e.jsx("strong",{children:"Composer ready"}),e.jsx("span",{children:"Gathering the conversation…"})]})]}),e.jsx("div",{className:"s-thread-skeleton-turns","aria-hidden":"true",children:fe.map((t,o)=>e.jsxs(f.div,{className:"s-thread-skeleton-turn",initial:s?!1:{opacity:0,y:7},animate:{opacity:1,y:0},transition:{delay:s?0:.05+o*.055,duration:.24,ease:[.2,.7,.3,1]},children:[e.jsx("span",{className:"s-thread-skeleton-avatar"}),e.jsxs("div",{className:"s-thread-skeleton-lines",children:[e.jsx("span",{className:"s-thread-skeleton-line s-thread-skeleton-line--head",style:{width:t.head}}),e.jsx("span",{className:"s-thread-skeleton-line",style:{width:t.body}}),e.jsx("span",{className:"s-thread-skeleton-line s-thread-skeleton-line--short",style:{width:t.short}})]})]},`${t.head}-${t.body}`))})]})})}function Ne({sessions:s,activeConversationId:t,needsYouIds:o,lastViewed:r,navigate:i}){const c=s.filter(d=>o.has(d.id)||d.agentId&&o.has(d.agentId)),l=g.useMemo(()=>O(s),[s]);return e.jsx("aside",{className:"s-thread-rail",children:e.jsxs("div",{className:"s-thread-rail-scroll",children:[c.length>0&&e.jsxs("div",{className:"s-thread-rail-section s-thread-rail-section--needs-you",children:[e.jsx("div",{className:"s-thread-rail-section-label",children:"Needs you"}),c.map(d=>e.jsx(_,{session:d,active:d.id===t,unread:C(d.lastMessageAt,d.id,r),needsYou:!0,navigate:i},`needs-${d.id}`))]}),l.map(d=>e.jsxs("div",{className:"s-thread-rail-section",children:[e.jsx("div",{className:"s-thread-rail-section-label",children:d.workspace}),d.sessions.map(n=>e.jsx(_,{session:n,active:n.id===t,unread:C(n.lastMessageAt,n.id,r),needsYou:!1,navigate:i},n.id))]},d.workspace))]})})}function ye({sessionMeta:s,agents:t,flights:o,conversationId:r,navigate:i,route:c}){const l=g.useMemo(()=>s?s.participantIds.filter(a=>a!=="operator").map(a=>D(t,[a])).filter(a=>a!==null):[],[s,t]),d={id:"operator",name:"You",handle:"operator",activity:null,state:"ready",agent:null},n=g.useMemo(()=>l.map(a=>({id:a.id,name:a.name,handle:F(a)??K(a.id)??a.id,activity:U(a,o,r),state:G(a.state),agent:a})),[l,o,r]),h=[d,...n];return e.jsxs("aside",{className:"s-thread-sidebar",children:[e.jsxs("div",{className:"s-thread-sidebar-section",children:[e.jsx("div",{className:"s-thread-sidebar-label",children:"In this conversation"}),h.map(a=>{const p=e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"s-ops-avatar",style:{"--size":"28px",background:L(a.name)},children:a.name[0]?.toUpperCase()??"?"}),e.jsxs("div",{className:"s-thread-sidebar-participant-info",children:[e.jsx("span",{className:"s-thread-sidebar-participant-name",children:a.name}),e.jsxs("span",{className:"s-thread-sidebar-participant-handle",children:["@",a.handle]})]}),e.jsx("div",{className:"s-thread-sidebar-participant-activity",children:a.activity?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"s-thread-sidebar-activity-dot s-thread-sidebar-activity-dot--pulse",style:{background:"var(--green)"}}),e.jsx("span",{className:"s-thread-sidebar-activity-label",children:a.activity})]}):V(a.state)||a.id==="operator"?e.jsx("span",{className:"s-thread-sidebar-activity-dot",style:{background:J(a.state)}}):e.jsx("span",{className:"s-thread-sidebar-activity-dot",style:{background:"var(--dim)"}})})]});return a.agent?e.jsx("button",{type:"button",className:"s-thread-sidebar-participant s-thread-sidebar-participant--clickable",onClick:()=>E(i,{view:"agents-v2",agentId:a.agent.id},{returnTo:c}),title:`Open ${a.name} profile`,children:p},a.id):e.jsx("div",{className:"s-thread-sidebar-participant",children:p},a.id)})]}),n.length>0&&e.jsxs("div",{className:"s-thread-sidebar-section",children:[e.jsx("div",{className:"s-thread-sidebar-label",children:"Conversation mesh"}),e.jsx(we,{participants:n})]})]})}function ke({agentName:s,title:t,detail:o,snapshot:r,events:i,steps:c,phase:l,tone:d,workspaceName:n,branch:h,startedAt:a,onOpenTrace:p,onOpenTerminal:u,onSteer:m}){const x=a?w(a):"now";return e.jsxs("section",{className:`s-thread-motion-panel s-thread-motion-panel--${d}`,"aria-live":"polite",children:[e.jsxs("div",{className:"s-thread-motion-head",children:[e.jsx("div",{className:"s-thread-motion-beacon","aria-hidden":"true",children:e.jsx("span",{})}),e.jsxs("div",{className:"s-thread-motion-title-block",children:[e.jsx("div",{className:"s-thread-motion-kicker",children:"Currently working"}),e.jsx("h2",{children:t}),e.jsx("p",{children:o})]})]}),e.jsx("div",{className:"s-thread-motion-meter","aria-hidden":"true",children:Se.map((S,T)=>e.jsx("span",{style:{"--bar-height":`${S}%`,"--bar-delay":`${T*74}ms`}},`${S}-${T}`))}),e.jsxs("dl",{className:"s-thread-motion-stats",children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Session"}),e.jsx("dd",{children:x})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Activity"}),e.jsx("dd",{children:r.activityLabel})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Last"}),e.jsx("dd",{children:r.lastActivityLabel})]})]}),e.jsxs("div",{className:"s-thread-motion-latest",children:[e.jsx("span",{children:s}),e.jsx("strong",{children:r.latest})]}),c.length>0?e.jsx(k,{steps:c,phase:null,limit:6}):i.length>0?e.jsx(R,{events:i,limit:4}):l?e.jsx(k,{steps:c,phase:l,limit:6}):e.jsxs("div",{className:"s-thread-motion-waiting",children:[e.jsx("span",{children:"Session created"}),e.jsx("strong",{children:"waiting for the first trace event"})]}),(n||h)&&e.jsxs("div",{className:"s-thread-motion-chips",children:[n&&e.jsx("span",{children:n}),h&&e.jsx("span",{children:h})]}),e.jsx(P,{onOpenTrace:p,onOpenTerminal:u,onSteer:m})]})}function _({session:s,active:t,unread:o,needsYou:r,navigate:i}){const{route:c}=X(),l=H(s),d=(s.agentName??l)[0]?.toUpperCase()??"?",n=s.kind==="direct",h=q(s.workspaceRoot)??s.kind;return e.jsxs("button",{type:"button",className:["s-thread-rail-item",t&&"s-thread-rail-item--active",r&&"s-thread-rail-item--needs-you"].filter(Boolean).join(" "),onClick:()=>E(i,{view:"conversation",conversationId:s.id},{returnTo:c}),children:[n?e.jsx("div",{className:"s-thread-rail-avatar",style:{background:L(s.agentName??l)},children:d}):e.jsx("div",{className:"s-thread-rail-avatar s-thread-rail-avatar--channel",children:"#"}),e.jsxs("div",{className:"s-thread-rail-body",children:[e.jsx("span",{className:"s-thread-rail-name",children:l}),e.jsx("span",{className:"s-thread-rail-sub",children:h})]}),e.jsxs("div",{className:"s-thread-rail-trailing",children:[o&&!r&&e.jsx("span",{className:"s-thread-rail-presence-dot",style:{background:"var(--accent)"}}),r&&e.jsx("span",{className:"s-thread-rail-badge s-thread-rail-badge--amber",children:"!"})]})]})}function we({participants:s}){const c=s.map((l,d)=>{const n=2*Math.PI*d/s.length-Math.PI/2;return{...l,x:130+55*Math.cos(n),y:80+55*Math.sin(n)}});return e.jsx("div",{className:"s-thread-mini-mesh",children:e.jsxs("svg",{viewBox:"0 0 260 160","aria-label":"Conversation participant mesh",children:[c.map(l=>e.jsx("line",{x1:130,y1:80,x2:l.x,y2:l.y,className:"s-thread-mini-mesh-edge"},`edge-${l.id}`)),e.jsx("circle",{cx:130,cy:80,r:16,className:"s-thread-mini-mesh-node s-thread-mini-mesh-node--center"}),e.jsx("text",{x:130,y:80,className:"s-thread-mini-mesh-label s-thread-mini-mesh-label--center",children:"OP"}),c.map(l=>e.jsxs("g",{children:[e.jsx("circle",{cx:l.x,cy:l.y,r:16,className:"s-thread-mini-mesh-node",style:l.state==="in_turn"||l.state==="in_flight"?{stroke:"var(--green)"}:void 0}),e.jsx("text",{x:l.x,y:l.y,className:"s-thread-mini-mesh-label",children:l.name.slice(0,3).toUpperCase()})]},`node-${l.id}`))]})})}const Se=[42,76,54,88,34,66,92,48,72,38,84,58],Je=Object.freeze(Object.defineProperty({__proto__:null,ChannelRail:Ne,PresenceSidebar:ye,ThreadLoadingSkeleton:be,ThreadMotionPanel:ke,WorkingTurnActions:P,WorkingTurnActivityPreview:R,WorkingTurnSteps:k},Symbol.toStringTag,{value:"Module"}));export{Je as C,M as T,k as W,Ke as a,De as b,be as c,Ve as d,ke as e,R as f,P as g,qe as l,Fe as m,He as o,Ge as s,Ue as t};
|
|
@@ -1 +0,0 @@
|
|
|
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}.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-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-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(--amber) 4%,var(--surface));box-shadow:0 0 16px color-mix(in srgb,var(--amber) 12%,transparent);position:relative;overflow:hidden;transition:all .18s cubic-bezier(.16,1,.3,1)}.s-thread-pinned-ask:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--amber);border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.s-thread-pinned-ask--approval{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 4%,var(--surface));box-shadow:0 0 16px color-mix(in srgb,var(--accent) 14%,transparent)}.s-thread-pinned-ask--approval:before{background:var(--accent)}.s-thread-pinned-ask-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap}.s-thread-pinned-ask-beacon{display:flex;align-items:center;justify-content:center}.s-thread-pinned-ask-kicker{display:flex;align-items:center;gap:var(--space-xs)}.s-thread-pinned-ask-eyebrow{color:var(--amber);font-weight:700}.s-thread-pinned-ask--approval .s-thread-pinned-ask-eyebrow{color:var(--accent)}.s-thread-pinned-ask-routing{margin-left:auto;display:flex;align-items:center;gap:var(--space-2xs)}.s-thread-pinned-ask-routing-arrow{color:var(--dim);font-size:var(--text-xs);padding:0 2px}.s-thread-pinned-ask-body{margin-bottom:var(--space-lg)}.s-thread-pinned-ask-text{font-size:var(--text-xl);font-weight:550;line-height:var(--leading-snug);letter-spacing:-.01em;color:var(--ink);margin:0}.s-thread-pinned-ask-summary{font-size:var(--text-md);line-height:var(--leading-normal);margin:var(--space-xs) 0 0}.s-thread-pinned-ask-actions{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.s-thread-pinned-ask-btn{display:inline-flex;align-items:center;gap:var(--space-xs);font-weight:600;letter-spacing:.01em}.s-thread-pinned-ask-strip{height:2px;width:100%;margin-top:var(--space-lg);border-radius:1px;background:linear-gradient(90deg,transparent 0%,var(--amber) 40%,var(--amber) 60%,transparent 100%);background-size:200% 100%;animation:s-thread-thinking-strip 2s ease-in-out infinite}.s-thread-pinned-ask--approval .s-thread-pinned-ask-strip{background:linear-gradient(90deg,transparent 0%,var(--accent) 40%,var(--accent) 60%,transparent 100%);background-size:200% 100%}.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-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-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}}
|