@openscout/scout 0.2.78 → 0.2.80
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 +19 -0
- package/bin/scoutd +0 -0
- package/dist/build-manifest.json +3 -3
- package/dist/client/assets/ActivityScreen-BXm6nJ6L.js +1 -0
- package/dist/client/assets/{AddProjectForm-DMnobKch.js → AddProjectForm-CtEiLQnm.js} +1 -1
- package/dist/client/assets/{AgentAvatar-D90c1Rzk.js → AgentAvatar-CszU5eaU.js} +1 -1
- package/dist/client/assets/AgentConfigurationScreen-CfBXxrsD.js +1 -0
- package/dist/client/assets/AgentDefinitionsWorkspace-4Z0aN8AR.js +1 -0
- package/dist/client/assets/{AgentDetailCard-BcRBRp88.js → AgentDetailCard-sZuHl1de.js} +1 -1
- package/dist/client/assets/AgentFloorView-DMivAYHU.js +1 -0
- package/dist/client/assets/AgentInfoScreen-CPkLg1pK.js +1 -0
- package/dist/client/assets/{AgentLaneCard-RrNnDZu8.js → AgentLaneCard-nB68f2CI.js} +1 -1
- package/dist/client/assets/{AgentLaneChrome-D9ZwUKrl.js → AgentLaneChrome-O9Yf0uR-.js} +1 -1
- package/dist/client/assets/AgentLaneDetailSheet-BfhpaEQ3.js +4 -0
- package/dist/client/assets/{AgentLaneSummaryResize-BhFmGNzT.js → AgentLaneSummaryResize-Ct3b0TQR.js} +1 -1
- package/dist/client/assets/AgentLanesEmbedScreen-CjHMvy3v.js +1 -0
- package/dist/client/assets/{AgentLanesPreflight-eSAoDsPi.js → AgentLanesPreflight-DNGvZvjd.js} +1 -1
- package/dist/client/assets/AgentLanesView-DqRK5-d2.js +2 -0
- package/dist/client/assets/{AgentLiveActions-DBtnD0qE.js → AgentLiveActions-DI4ooSHW.js} +1 -1
- package/dist/client/assets/{AgentSessions-DyqOf4nG.js → AgentSessions-BxWIPkWh.js} +2 -2
- package/dist/client/assets/AgentsConsole-D6VHSCfZ.js +1 -0
- package/dist/client/assets/AgentsScreen-zR6b2bUL.js +1 -0
- package/dist/client/assets/AgentsSubnav-q0xcZi6C.js +1 -0
- package/dist/client/assets/{AtopView-BCkae3e1.js → AtopView-VZkk40v0.js} +1 -1
- package/dist/client/assets/BackToPicker-DZg_4nHL.js +1 -0
- package/dist/client/assets/{BriefingDetailScreen-BwFyysT8.js → BriefingDetailScreen-BZU4qMwE.js} +1 -1
- package/dist/client/assets/{BriefingsScreen-BQEevztH.js → BriefingsScreen-Bfc3tqPp.js} +1 -1
- package/dist/client/assets/{BrokerMetadataPanel-7UjcuNjd.js → BrokerMetadataPanel-CaFe6kdh.js} +1 -1
- package/dist/client/assets/BrokerScreen-Chh8sGen.js +5 -0
- package/dist/client/assets/{ChatCollapsedStrip-CQSYSd8s.js → ChatCollapsedStrip-Cov54p9V.js} +1 -1
- package/dist/client/assets/CodeDiffPane-C1ebFt-Y.js +1 -0
- package/dist/client/assets/{CodeProjectPicker-DqKFCpLU.js → CodeProjectPicker-tsCly-f3.js} +1 -1
- package/dist/client/assets/CodeScreen-D0hpZNLP.js +1 -0
- package/dist/client/assets/{ContextMenu-bARZqTzD.js → ContextMenu-N-Z6X0Z1.js} +1 -1
- package/dist/client/assets/ConversationComposer-CiEF7dhd.js +1 -0
- package/dist/client/assets/ConversationFeedRows-5it6QNBV.js +1 -0
- package/dist/client/assets/ConversationHeader-BGgbITvr.js +1 -0
- package/dist/client/assets/ConversationPanels-vI9YuQJh.js +2 -0
- package/dist/client/assets/ConversationScreen-C-PrCRz1.js +1 -0
- package/dist/client/assets/ConversationScreen-yIKEsm-8.css +1 -0
- package/dist/client/assets/ConversationStatus-COEj5loj.js +1 -0
- package/dist/client/assets/{DataTable-E8s_MmoA.js → DataTable-BoofV-_4.js} +1 -1
- package/dist/client/assets/{DispatchAftermath-Dpe88DFX.js → DispatchAftermath-OXYlMbT1.js} +1 -1
- package/dist/client/assets/{DocumentFocusViewer-BeVwwl26.js → DocumentFocusViewer-BCG2kOmd.js} +1 -1
- package/dist/client/assets/{EmbeddableSurfacesLab-BQqFQVnI.js → EmbeddableSurfacesLab-C2SZvrHJ.js} +1 -1
- package/dist/client/assets/{EmptyState-4F9XDFQm.js → EmptyState-DypEjx0V.js} +1 -1
- package/dist/client/assets/{FileViewerPane-CLgUhSm4.js → FileViewerPane-CXCq-oKj.js} +1 -1
- package/dist/client/assets/{FleetSearch-Dz5euQJe.js → FleetSearch-Dj7-CfNi.js} +1 -1
- package/dist/client/assets/FlightObserveScreen-Yq5NtQQJ.js +1 -0
- package/dist/client/assets/FollowScreen-DRgYuAvp.js +1 -0
- package/dist/client/assets/HarnessMark-BE-YSyci.js +1 -0
- package/dist/client/assets/HarnessesScreen-L-emPcXd.js +1 -0
- package/dist/client/assets/HerdrSession-DKFCJMst.js +4 -0
- package/dist/client/assets/{HomeHero-B3uYd-pP.js → HomeHero-CAEg8Yg5.js} +1 -1
- package/dist/client/assets/KnowledgeSearchInspector-C2EZsQ5i.js +1 -0
- package/dist/client/assets/KnowledgeSearchScreen-DvdOFh-b.js +1 -0
- package/dist/client/assets/{LaneToolHoverCard-Bla0gBdm.js → LaneToolHoverCard-DrPXYZvQ.js} +1 -1
- package/dist/client/assets/LaneTraceDetailSheet-Dl7foF88.js +1 -0
- package/dist/client/assets/{LaneTraceEventFocus-BF9ERP5O.js → LaneTraceEventFocus-X4-DDFEo.js} +1 -1
- package/dist/client/assets/{MeshCanvas-DFEPkpqY.js → MeshCanvas-rtCBD7s6.js} +2 -2
- package/dist/client/assets/{MeshCanvasMinimap-CyVFYixr.js → MeshCanvasMinimap-CuvXOkc7.js} +1 -1
- package/dist/client/assets/MeshScreen-D5zzTn0o.js +1 -0
- package/dist/client/assets/{MeshTopologyView-CalkZghg.js → MeshTopologyView-CeTShs-U.js} +2 -2
- package/dist/client/assets/{MessageComposerSuggestions-DpxN9WiB.js → MessageComposerSuggestions-Cs9u-F_3.js} +1 -1
- package/dist/client/assets/MessagesScreen-BhOJ7_tj.js +1 -0
- package/dist/client/assets/MissionContextRail-0O-Zu1Tn.js +1 -0
- package/dist/client/assets/MissionControlView-D2JO9u-y.js +1 -0
- package/dist/client/assets/{MissionFocusOverlay-wlCmWDCT.js → MissionFocusOverlay-LnjmqBiW.js} +1 -1
- package/dist/client/assets/MissionLeftAgentRow-nc1Jyq3D.js +1 -0
- package/dist/client/assets/MissionLogPane-lZ9vUftY.js +1 -0
- package/dist/client/assets/{NewAgentModal-Bg-eWHpY.js → NewAgentModal-K1cvdmZr.js} +1 -1
- package/dist/client/assets/NewChatComposer-C5LT7MF7.css +1 -0
- package/dist/client/assets/NewChatComposer-DXDxV2Mh.js +19 -0
- package/dist/client/assets/{NewChatOrigin-Bk2OyVjI.js → NewChatOrigin-CnjoswTG.js} +1 -1
- package/dist/client/assets/ObserveEmbedScreen-CRpzYf0Y.js +2 -0
- package/dist/client/assets/{ObserveTextFlow-rsFj_rVo.js → ObserveTextFlow-DJxQc2H6.js} +2 -2
- package/dist/client/assets/{ObservedTopologyPanel-DyUeV98H.js → ObservedTopologyPanel-C1AQM0Mq.js} +1 -1
- package/dist/client/assets/OpenScoutAppShell-DrHYD_pd.js +87 -0
- package/dist/client/assets/OpsAgentsView-BnMX0vEY.js +1 -0
- package/dist/client/assets/OpsScreen-BeC0lieE.js +1 -0
- package/dist/client/assets/OpsSubnav-D5Bpowtk.js +1 -0
- package/dist/client/assets/{PlanView-C1CjH3PG.js → PlanView-DDXdC19M.js} +1 -1
- package/dist/client/assets/ProjectAgentProfile-zE1cApxw.js +1 -0
- package/dist/client/assets/{ProjectAgentProfileBar-CtTpj6fU.js → ProjectAgentProfileBar-MODhG0P6.js} +1 -1
- package/dist/client/assets/ProjectAgentProfileHero-C1ImgGDu.js +1 -0
- package/dist/client/assets/ProjectsInbox-C3Jd6JTk.js +2 -0
- package/dist/client/assets/{ProjectsRail-BgiuV4LR.js → ProjectsRail-B1zrQLZe.js} +1 -1
- package/dist/client/assets/ProjectsScreen-PW_NH5VK.js +1 -0
- package/dist/client/assets/ProjectsThreadAside-DaCEUWN1.js +1 -0
- package/dist/client/assets/Provider-DSsb2gLR.js +1 -0
- package/dist/client/assets/{RailRow-BoGxAHNF.js → RailRow-DerXOXQS.js} +1 -1
- package/dist/client/assets/RawSessionsTable-LWEvXJzj.js +1 -0
- package/dist/client/assets/RealtimeVoiceScreen-XtxbCjOs.js +1 -0
- package/dist/client/assets/{RepoDiffEmbedScreen-C0rumUME.js → RepoDiffEmbedScreen-C9oLCcZX.js} +1 -1
- package/dist/client/assets/{RepoDiffPageScreen-DMv6DioL.js → RepoDiffPageScreen-CGEMAv2Z.js} +1 -1
- package/dist/client/assets/RepoDiffViewer-CB8PSVey.js +7 -0
- package/dist/client/assets/RepoDiffViewerLazy-DIxkiMto.js +2 -0
- package/dist/client/assets/{ReposScreen-CB_YBWYf.js → ReposScreen-BN1lVjOj.js} +2 -2
- package/dist/client/assets/{ScoutDeckSurface-CxIYFyWx.js → ScoutDeckSurface-BCpl0QCx.js} +1 -1
- package/dist/client/assets/{ScoutSurface-CYz_TcWC.js → ScoutSurface-BEnDlynn.js} +1 -1
- package/dist/client/assets/{ScoutbotBroadcastChip-L_R9atj0.js → ScoutbotBroadcastChip-z9R_pC_U.js} +1 -1
- package/dist/client/assets/{ScoutbotFxLab-CgiZMDMW.js → ScoutbotFxLab-fAROyIfz.js} +1 -1
- package/dist/client/assets/{ScoutbotRealtimeVoiceCall-FMQOr1Np.js → ScoutbotRealtimeVoiceCall-CDyFJX8m.js} +1 -1
- package/dist/client/assets/{SecondaryNav-B3-nh5dM.js → SecondaryNav-Hv5AJ3Fv.js} +1 -1
- package/dist/client/assets/SessionEmbedScreen-CDRpQc3g.js +1 -0
- package/dist/client/assets/SessionObserve-BmmJ8dEh.js +12 -0
- package/dist/client/assets/SessionObserve-CLrHfAKZ.css +1 -0
- package/dist/client/assets/SessionObserveEvidence-CEedIk2a.js +1 -0
- package/dist/client/assets/SessionRefScreen-Dk-O4OVt.js +1 -0
- package/dist/client/assets/SessionsScreen-BJEjuo2X.js +1 -0
- package/dist/client/assets/{SettingsDrawer-XfdAa_nD.js → SettingsDrawer-DL-SVLdd.js} +3 -3
- package/dist/client/assets/SettingsDrawer-UX7pFJU_.css +1 -0
- package/dist/client/assets/SettingsScreen-DJ-BhBwR.js +1 -0
- package/dist/client/assets/{ShikiPane-Ap1iPxYb.js → ShikiPane-B7O4if20.js} +1 -1
- package/dist/client/assets/{SlidePanel-COwtoJqR.js → SlidePanel-B3gc5HnM.js} +1 -1
- package/dist/client/assets/SpriteAvatar-BpQDpOkq.js +1 -0
- package/dist/client/assets/{StatusPill-DhBL__p8.js → StatusPill-B33sQinT.js} +1 -1
- package/dist/client/assets/{TailView-DGj_5HA9.js → TailView-DL3YZkzE.js} +2 -2
- package/dist/client/assets/Terminal-Dp1FSGIS.js +1 -0
- package/dist/client/assets/TerminalEmbedScreen-DP9IM4xf.js +1 -0
- package/dist/client/assets/{TextDocumentSurface-BpAw4eQS.js → TextDocumentSurface-DRjctOIt.js} +1 -1
- package/dist/client/assets/{TmuxPeek-m1osv33Q.js → TmuxPeek-DNC4uWky.js} +1 -1
- package/dist/client/assets/{VoicePermissionsPanel-DsK53ar4.js → VoicePermissionsPanel-WLN0V-Xv.js} +1 -1
- package/dist/client/assets/{WorkDetailScreen-Bx0JimPC.js → WorkDetailScreen-D2Yl0mYZ.js} +3 -3
- package/dist/client/assets/{WorkFilesViewer-Btl6C2Q1.js → WorkFilesViewer-BbVfcUN-.js} +1 -1
- package/dist/client/assets/{activity-CA8qS6PI.js → activity-BxwKkT8z.js} +1 -1
- package/dist/client/assets/{addon-fit-BZ-kXjeN.js → addon-fit-B9O2vJoh.js} +1 -1
- package/dist/client/assets/{addon-webgl-D9-EQVEK.js → addon-webgl-BhRZFDcn.js} +1 -1
- package/dist/client/assets/{agent-essentials-BSY1o46q.js → agent-essentials-SrzMYEXV.js} +1 -1
- package/dist/client/assets/agent-identity-BxCsXnDp.js +1 -0
- package/dist/client/assets/agent-lane-card-BkWVDYM8.css +1 -0
- package/dist/client/assets/{agent-lane-card-model-r2frk57c.js → agent-lane-card-model-DSWdGu-v.js} +1 -1
- package/dist/client/assets/agent-lane-detail-BNNm6FNu.js +2 -0
- package/dist/client/assets/{agent-lane-preview-CmHVe3dU.js → agent-lane-preview-C33Dwpn7.js} +1 -1
- package/dist/client/assets/{agent-lanes-model-B4YTt4OF.js → agent-lanes-model-CPgQRenB.js} +2 -2
- package/dist/client/assets/{arc.es-CQBb-dVu.js → arc.es-NlJw-19N.js} +1 -1
- package/dist/client/assets/{arrow-down-BPLe0am9.js → arrow-down-D3-IbArq.js} +1 -1
- package/dist/client/assets/{arrow-left-DEZzHiPS.js → arrow-left-_vS7itsV.js} +1 -1
- package/dist/client/assets/{arrow-up-right-ClxBnsi7.js → arrow-up-right-CcrWONpD.js} +1 -1
- package/dist/client/assets/{bot-eu8pBNvI.js → bot-BRINYlC6.js} +1 -1
- package/dist/client/assets/{check-DjgFiBxb.js → check-COxArFXG.js} +1 -1
- package/dist/client/assets/{chevron-down-BGk5qoEw.js → chevron-down-DRCbnzyY.js} +1 -1
- package/dist/client/assets/{chevron-right-XiIHsk4m.js → chevron-right-CNE6QAVr.js} +1 -1
- package/dist/client/assets/chunk-HRAB3GC3-CAeEKaf5.js +1 -0
- package/dist/client/assets/chunk-JTPDIGGW-s6WbxdjC.js +46 -0
- package/dist/client/assets/{chunk-T65CQEWV-CrzwSeEt.js → chunk-T65CQEWV-CiZ_ICHW.js} +1 -1
- package/dist/client/assets/chunk-YOZR3KYS-DLOc92uD.js +2 -0
- package/dist/client/assets/clock-CyfvRmj6.js +1 -0
- package/dist/client/assets/{code-xml-B6jOCM4V.js → code-xml--LjSM4Mv.js} +1 -1
- package/dist/client/assets/content-7ZeCPAEt.js +1 -0
- package/dist/client/assets/content-BHUcUCH5.js +1 -0
- package/dist/client/assets/content-BUhvLPkv.js +1 -0
- package/dist/client/assets/content-BomQ5YWo.js +1 -0
- package/dist/client/assets/content-C39ELNgC.js +1 -0
- package/dist/client/assets/content-C4RYKHut.js +1 -0
- package/dist/client/assets/content-CCiZfG4H.js +1 -0
- package/dist/client/assets/content-CDpDtVI-.js +1 -0
- package/dist/client/assets/content-CO-9CeFd.js +1 -0
- package/dist/client/assets/content-CuOLxp1x.js +1 -0
- package/dist/client/assets/content-CvtLIjXS.js +1 -0
- package/dist/client/assets/content-CzwTUb9n.js +1 -0
- package/dist/client/assets/content-DQXbo2RO.js +1 -0
- package/dist/client/assets/content-DRTQ9QQb.js +1 -0
- package/dist/client/assets/content-LCELs6zg.js +1 -0
- package/dist/client/assets/content-Uqt8AG-s.css +1 -0
- package/dist/client/assets/content-qsDjA4Au.js +1 -0
- package/dist/client/assets/{context-budget-CbB4BDcO.js → context-budget-DX_fwUs3.js} +1 -1
- package/dist/client/assets/{conversation-icons-IIG5ha6D.js → conversation-icons-c-hXv7hY.js} +1 -1
- package/dist/client/assets/conversation-model-CHwHZNw-.js +1 -0
- package/dist/client/assets/conversation-motion-features-T8vF9zED.js +1 -0
- package/dist/client/assets/{copy-CQGYbxdu.js → copy-4LfKIdQJ.js} +1 -1
- package/dist/client/assets/{createLucideIcon-OpA4Amw5.js → createLucideIcon-ClCdc3F9.js} +1 -1
- package/dist/client/assets/discover-7Ks00w-M.js +2 -0
- package/dist/client/assets/embed-entry-n2ThmSSX.js +2 -0
- package/dist/client/assets/{external-link-CXBytO9o.js → external-link-CnaI1QFS.js} +1 -1
- package/dist/client/assets/{eye-0PvebX_a.js → eye-BFlhMzQL.js} +1 -1
- package/dist/client/assets/{file-text-BODxCjcz.js → file-text-DG-pufl1.js} +1 -1
- package/dist/client/assets/{gestures-CcwOTu8C.js → gestures-CxG3Dphs.js} +1 -1
- package/dist/client/assets/home-live-action-BkqGLVRY.js +1 -0
- package/dist/client/assets/home-moving-signal-aNJusIzL.js +1 -0
- package/dist/client/assets/home-now-card-BQK4EFHx.js +1 -0
- package/dist/client/assets/{home-now-card-nano-BcjnOU9H.js → home-now-card-nano-CdtzqSIF.js} +1 -1
- package/dist/client/assets/hooks-Dst1TH7n.js +2 -0
- package/dist/client/assets/inbox-thread-redesign-B_1ocqaX.css +1 -0
- package/dist/client/assets/index-9as_JTUs.css +1 -0
- package/dist/client/assets/index-CU9dtwJk.js +1 -0
- package/dist/client/assets/{index-DMiGbrBt.js → index-CzVeWScw.js} +6 -6
- package/dist/client/assets/index-Dewd56RX.js +1 -0
- package/dist/client/assets/index-_YQXKEhb.js +1 -0
- package/dist/client/assets/{inspector-panel-DPoCWxKs.js → inspector-panel-DgOM8nCo.js} +2 -2
- package/dist/client/assets/keyboard-nav-BJnFoFDP.js +1 -0
- package/dist/client/assets/knowledge-search-D_bLoYtC.css +1 -0
- package/dist/client/assets/{lane-observe-D0rfKDnU.js → lane-observe-BA3g9aVd.js} +1 -1
- package/dist/client/assets/{lane-roster-store-D8x1jac2.js → lane-roster-store-pR4ZaYQm.js} +1 -1
- package/dist/client/assets/left-BhzPp-_E.js +1 -0
- package/dist/client/assets/left-CN1MABD0.js +2 -0
- package/dist/client/assets/left-DDgbsio7.js +1 -0
- package/dist/client/assets/left-Dpf2R9uD.js +1 -0
- package/dist/client/assets/left-HwwbMVtl.js +2 -0
- package/dist/client/assets/left-YfH0daht.js +1 -0
- package/dist/client/assets/left-agents-CYUwAy2Z.js +1 -0
- package/dist/client/assets/left-default-vEGZALPv.js +1 -0
- package/dist/client/assets/left-lanes-bphF-vlX.js +1 -0
- package/dist/client/assets/left-mission-B54-c3hq.js +1 -0
- package/dist/client/assets/left-np5USKqG.js +1 -0
- package/dist/client/assets/left-plan-BNBuDoPQ.js +2 -0
- package/dist/client/assets/library-DbCVJG_O.js +1 -0
- package/dist/client/assets/{loader-circle-CbHjZsz1.js → loader-circle-Byb9kSFx.js} +1 -1
- package/dist/client/assets/{local-agents--00gLMqr.js → local-agents-DBaUbP-_.js} +1 -1
- package/dist/client/assets/{mentions-jSuTGeet.js → mentions-fbQJ2mBI.js} +1 -1
- package/dist/client/assets/mesh-ops-B1kDjizF.css +1 -0
- package/dist/client/assets/mesh-ops-Cnw3vwAu.js +1 -0
- package/dist/client/assets/{mesh-view-store-CWidRbTE.js → mesh-view-store-Btlyc7rW.js} +1 -1
- package/dist/client/assets/{message-circle-CG-96zts.js → message-circle-aGOfQWm2.js} +1 -1
- package/dist/client/assets/{message-markup-3J9pi3nx.js → message-markup-mGF07emJ.js} +1 -1
- package/dist/client/assets/{message-square-DSaGpjFU.js → message-square-CIXda-Y7.js} +1 -1
- package/dist/client/assets/mission-control-m3BTDQ9l.css +1 -0
- package/dist/client/assets/{mission-control-store-BlnEhiCq.js → mission-control-store-CcoNeQHG.js} +1 -1
- package/dist/client/assets/mission-wall-CocIM1cF.js +1 -0
- package/dist/client/assets/{model-CpAxGuis.js → model-IGCUEsMy.js} +1 -1
- package/dist/client/assets/{observe-CuLGD9Zp.js → observe-BNFzh-7B.js} +1 -1
- package/dist/client/assets/openAgent-Dbv5wfuL.js +1 -0
- package/dist/client/assets/{page-status-DpkedE1F.js → page-status-DDvNdA8s.js} +1 -1
- package/dist/client/assets/paperclip-DfpJkR4s.js +1 -0
- package/dist/client/assets/{plus--b1raV_O.js → plus-CmFQp9Uj.js} +1 -1
- package/dist/client/assets/profile-s3KRbip1.js +1 -0
- package/dist/client/assets/{projects-inbox-CHyUFQ6w.js → projects-inbox-Diddml6e.js} +1 -1
- package/dist/client/assets/{radio-Bz8ZePxj.js → radio-PauJIekM.js} +1 -1
- package/dist/client/assets/{refresh-cw-BBmAnCB7.js → refresh-cw-4oeFn1Jn.js} +1 -1
- package/dist/client/assets/repo-diff-DyYmQMSA.css +1 -0
- package/dist/client/assets/resolve-panes-cp6eNewO.js +1 -0
- package/dist/client/assets/resolve-sidebar-context-Dbo-5PWx.js +1 -0
- package/dist/client/assets/right-09W2JJFg.js +1 -0
- package/dist/client/assets/right-B-MKhiJ6.js +1 -0
- package/dist/client/assets/right-B91Zl8lQ.js +1 -0
- package/dist/client/assets/{right-DjRXbnRP.js → right-BcFnuse9.js} +1 -1
- package/dist/client/assets/right-BdtMzn35.js +1 -0
- package/dist/client/assets/right-BqmKXLtf.js +1 -0
- package/dist/client/assets/right-BzeB-Dpt.js +1 -0
- package/dist/client/assets/right-CkGOs-sq.js +1 -0
- package/dist/client/assets/right-CzGiNBzB.js +1 -0
- package/dist/client/assets/right-Dc7uqv7l.js +1 -0
- package/dist/client/assets/{rocket-BSNS_rLs.js → rocket-C-AskjZH.js} +1 -1
- package/dist/client/assets/router-B-K15T7B.js +1 -0
- package/dist/client/assets/{runtime-picker-Bcl5iIX5.js → runtime-picker-BCQD7d4K.js} +1 -1
- package/dist/client/assets/{scope-views-U-ucT9m0.js → scope-views-BhkbIFPY.js} +1 -1
- package/dist/client/assets/{scout-voice-CU5c0LGi.js → scout-voice-S5_YZ2v8.js} +1 -1
- package/dist/client/assets/{scroll-text-D6Pdnar7.js → scroll-text-BV-BB7v-.js} +1 -1
- package/dist/client/assets/{search-CWfZtOt2.js → search-C3bSJluv.js} +1 -1
- package/dist/client/assets/secondaryNavConfig-Bg4Tc0gT.js +1 -0
- package/dist/client/assets/{selection-bridge-16pk1qyG.js → selection-bridge-B1dmkX3P.js} +1 -1
- package/dist/client/assets/{send-horizontal-Bg5-QggH.js → send-horizontal-CqogPmbY.js} +1 -1
- package/dist/client/assets/{server-CPp4ZJhZ.js → server-Brw5Y1Gh.js} +1 -1
- package/dist/client/assets/{session-catalog-BmoyVTJ_.js → session-catalog-9FqXmjBw.js} +1 -1
- package/dist/client/assets/session-table-1xdSxSXq.js +1 -0
- package/dist/client/assets/{sliders-horizontal-1oW76Xc9.js → sliders-horizontal-CUiOH26y.js} +1 -1
- package/dist/client/assets/sparkles-BjCA3Evu.js +1 -0
- package/dist/client/assets/{sse-CjIkKo46.js → sse-QcU9bikk.js} +1 -1
- package/dist/client/assets/synthetic-agent-routing-aduMYO7P.js +1 -0
- package/dist/client/assets/system-surfaces-redesign-B7GQhfpw.css +1 -0
- package/dist/client/assets/{tail-display-BdyoLvzY.js → tail-display-BRcJltQa.js} +2 -2
- package/dist/client/assets/{tail-events-D19uAGe3.js → tail-events-C6K7bCWB.js} +1 -1
- package/dist/client/assets/{terminal-B9AOZQKR.js → terminal-DrTkVXIj.js} +1 -1
- package/dist/client/assets/{terminal-relay-CWbJ1RCW.js → terminal-relay-BkXjjSkq.js} +1 -1
- package/dist/client/assets/{terminal-screen-19jAI0Cw.css → terminal-screen-BqVnCwl0.css} +1 -1
- package/dist/client/assets/terminal-sessions-C3qU8tnY.js +1 -0
- package/dist/client/assets/{terminal-takeover-B8UeD9OX.js → terminal-takeover-KvmTwABa.js} +1 -1
- package/dist/client/assets/{time-DltNTpLl.js → time-Dhsh_2EG.js} +1 -1
- package/dist/client/assets/{use-conversation-list-Byab41G6.js → use-conversation-list-C5sF6WBR.js} +1 -1
- package/dist/client/assets/{use-fleet-active-asks-BIbQx5AS.js → use-fleet-active-asks-BOMPW0nl.js} +1 -1
- package/dist/client/assets/use-mesh-ops-items-Co05vcTV.js +1 -0
- package/dist/client/assets/{use-reduced-motion-RRBkmVkk.js → use-reduced-motion-Dla-G_Jz.js} +1 -1
- package/dist/client/assets/use-scout-dev-flags-BOQF3fW2.js +1 -0
- package/dist/client/assets/{useAgentHoverCard-DMrbBif0.js → useAgentHoverCard-FtCmY-b9.js} +1 -1
- package/dist/client/assets/useContentSecondaryNav-BX7Sq7vy.js +1 -0
- package/dist/client/assets/usePierreRuntime-Bo4lD7Ui.js +50 -0
- package/dist/client/assets/{wrench-Bkc_0lKF.js → wrench-CeCdjiPF.js} +1 -1
- package/dist/client/assets/{x-D3GElQbe.js → x-D4X_y1j_.js} +1 -1
- package/dist/client/assets/{xterm-BKR8oAkR.js → xterm-D2a5wrkJ.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/drizzle/0007_lean_venus.sql +26 -0
- package/dist/drizzle/0008_luxuriant_ted_forrester.sql +1 -0
- package/dist/drizzle/meta/0007_snapshot.json +5767 -0
- package/dist/drizzle/meta/0008_snapshot.json +5774 -0
- package/dist/drizzle/meta/_journal.json +14 -0
- package/dist/main.mjs +29271 -4824
- package/dist/node/main.mjs +31635 -11915
- package/dist/openscout-terminal-relay.mjs +16 -4
- package/dist/pairing-runtime-controller.mjs +37812 -16924
- package/dist/runtime/base-daemon.mjs +109 -18
- package/dist/runtime/broker-daemon.mjs +22247 -2746
- package/dist/runtime/broker-process-manager.mjs +122 -12
- package/dist/runtime/mesh-discover.mjs +90 -13
- package/dist/scout-control-plane-web.mjs +23083 -3481
- package/dist/scout-web-server.mjs +23083 -3481
- package/dist/statusline.mjs +2 -0
- package/package.json +3 -1
- package/dist/client/assets/ActivityScreen-Cu_1V4bq.js +0 -1
- package/dist/client/assets/AgentConfigurationScreen-BqfOz90D.js +0 -1
- package/dist/client/assets/AgentDefinitionsWorkspace-CUpUrY57.js +0 -1
- package/dist/client/assets/AgentFloorView-8LoAEBwS.js +0 -1
- package/dist/client/assets/AgentInfoScreen-DZs2_ibL.js +0 -1
- package/dist/client/assets/AgentLaneDetailSheet-BXbPls9N.js +0 -5
- package/dist/client/assets/AgentLanesEmbedScreen-W3qs022h.js +0 -1
- package/dist/client/assets/AgentLanesView-B9vuEEmZ.js +0 -2
- package/dist/client/assets/AgentsConsole-BgiYP2wR.js +0 -1
- package/dist/client/assets/AgentsScreen-DBi8x4MB.js +0 -1
- package/dist/client/assets/AgentsSubnav-DIEO4NPx.js +0 -1
- package/dist/client/assets/BackToPicker-BRvfostO.js +0 -1
- package/dist/client/assets/BrokerScreen-7ekklu88.js +0 -5
- package/dist/client/assets/CodeDiffPane-DDPt6KPh.js +0 -1
- package/dist/client/assets/CodeScreen-BxCrpRHd.js +0 -1
- package/dist/client/assets/ConversationComposer-Bla3DDvM.js +0 -1
- package/dist/client/assets/ConversationFeedRows-B_gPxcqA.js +0 -1
- package/dist/client/assets/ConversationHeader-DE3FC0m-.js +0 -1
- package/dist/client/assets/ConversationPanels-DLek4H6A.js +0 -2
- package/dist/client/assets/ConversationScreen-BDRhx-RU.js +0 -1
- package/dist/client/assets/ConversationScreen-C9yMAMYF.css +0 -1
- package/dist/client/assets/ConversationStatus-BwVLiiO4.js +0 -1
- package/dist/client/assets/FlightObserveScreen-6RpZYwVz.js +0 -1
- package/dist/client/assets/FollowScreen-DZ4qfYOY.js +0 -1
- package/dist/client/assets/HarnessMark-Cbv3Ib0c.js +0 -1
- package/dist/client/assets/HarnessesScreen-CznAImej.js +0 -1
- package/dist/client/assets/KnowledgeSearchInspector-Dgdkfvvz.js +0 -1
- package/dist/client/assets/KnowledgeSearchScreen-DJDGGaqC.js +0 -1
- package/dist/client/assets/LaneTraceDetailSheet-D1CspRbl.js +0 -1
- package/dist/client/assets/MeshScreen-DFgevn8N.js +0 -1
- package/dist/client/assets/MessagesScreen-C8YKW10Y.js +0 -1
- package/dist/client/assets/MissionControlView-lUeAiSVg.js +0 -1
- package/dist/client/assets/MissionLeftAgentRow-BpZWntfl.js +0 -1
- package/dist/client/assets/MissionLogPane-__MVtEl9.js +0 -1
- package/dist/client/assets/NewChatComposer-Cs6OsxK6.js +0 -19
- package/dist/client/assets/NewChatComposer-W-t-L4oV.css +0 -1
- package/dist/client/assets/ObserveEmbedScreen-y2EpuqRZ.js +0 -2
- package/dist/client/assets/OpenScoutAppShell-C_URc8sV.js +0 -87
- package/dist/client/assets/OpsAgentsView-UN7iOscs.js +0 -1
- package/dist/client/assets/OpsScreen-Buf3LKjb.js +0 -1
- package/dist/client/assets/OpsSubnav-DsuXzHah.js +0 -1
- package/dist/client/assets/ProjectAgentProfile-DJusrAV-.js +0 -1
- package/dist/client/assets/ProjectAgentProfileHero-BFwNJo_N.js +0 -1
- package/dist/client/assets/ProjectsInbox-GhVMxOhw.js +0 -2
- package/dist/client/assets/ProjectsScreen-eNUBy4YU.js +0 -1
- package/dist/client/assets/ProjectsThreadAside-CoBgnHmr.js +0 -1
- package/dist/client/assets/Provider-C7UKGHQy.js +0 -1
- package/dist/client/assets/RawSessionsTable-DL8y_eEy.js +0 -1
- package/dist/client/assets/RealtimeVoiceScreen-ffS-39zy.js +0 -1
- package/dist/client/assets/RepoDiffViewer-D_exm6xK.js +0 -7
- package/dist/client/assets/RepoDiffViewerLazy-BPgF92Bg.js +0 -2
- package/dist/client/assets/SessionEmbedScreen-BVC7yvWF.js +0 -1
- package/dist/client/assets/SessionObserve-BpggNO_M.css +0 -1
- package/dist/client/assets/SessionObserve-yfXFafp8.js +0 -12
- package/dist/client/assets/SessionRefScreen-DRgJu7Jo.js +0 -1
- package/dist/client/assets/SessionsScreen-D6XUsZfA.js +0 -1
- package/dist/client/assets/SettingsDrawer-CmJt72ww.css +0 -1
- package/dist/client/assets/SettingsScreen-Cy8z-EuR.js +0 -1
- package/dist/client/assets/SpriteAvatar-DyaGuhik.js +0 -1
- package/dist/client/assets/Terminal-CqvGbjXU.js +0 -1
- package/dist/client/assets/TerminalEmbedScreen-DuZZFFzW.js +0 -1
- package/dist/client/assets/agent-chat-Bfjd9y6c.js +0 -1
- package/dist/client/assets/agent-lane-card-Dm7YWoew.css +0 -1
- package/dist/client/assets/agent-lane-detail-Djm3YJEa.js +0 -1
- package/dist/client/assets/chunk-YOZR3KYS-Bet8khjg.js +0 -47
- package/dist/client/assets/content-BDt9VBPk.js +0 -1
- package/dist/client/assets/content-BIXf4cKR.js +0 -1
- package/dist/client/assets/content-BLm0NBJM.js +0 -1
- package/dist/client/assets/content-C2EwTb2y.js +0 -1
- package/dist/client/assets/content-C5UbLsDF.js +0 -1
- package/dist/client/assets/content-CHU0wwA3.css +0 -1
- package/dist/client/assets/content-CR3vdrYY.js +0 -1
- package/dist/client/assets/content-CSPVmo2s.js +0 -1
- package/dist/client/assets/content-C_FGqx1X.js +0 -1
- package/dist/client/assets/content-CvlVUOG8.js +0 -1
- package/dist/client/assets/content-D5kJmfgl.js +0 -1
- package/dist/client/assets/content-DTpQsomG.js +0 -1
- package/dist/client/assets/content-DikVsqLf.js +0 -1
- package/dist/client/assets/content-DlUe5Ono.js +0 -1
- package/dist/client/assets/content-GIBv_55n.js +0 -1
- package/dist/client/assets/content-Q2oclDzi.js +0 -1
- package/dist/client/assets/conversation-model-B47vYmWN.js +0 -1
- package/dist/client/assets/conversation-motion-features-BdAONVls.js +0 -1
- package/dist/client/assets/discover-C1YwpBDE.js +0 -2
- package/dist/client/assets/embed-entry-BAcGL3g9.js +0 -2
- package/dist/client/assets/home-live-action-B22u89j7.js +0 -1
- package/dist/client/assets/home-moving-signal-CK147hxn.js +0 -1
- package/dist/client/assets/home-now-card-BgvNWuea.js +0 -1
- package/dist/client/assets/hooks-B6y_O2FB.js +0 -2
- package/dist/client/assets/inbox-thread-redesign-Bz4FjWzr.css +0 -1
- package/dist/client/assets/index-BcuhqXLe.js +0 -1
- package/dist/client/assets/index-CJXzfjo9.js +0 -1
- package/dist/client/assets/index-DQPvraRS.js +0 -1
- package/dist/client/assets/index-DxGoC5l5.css +0 -1
- package/dist/client/assets/keyboard-nav-2kv_tGUS.js +0 -1
- package/dist/client/assets/knowledge-search-CVxQwxPn.js +0 -1
- package/dist/client/assets/knowledge-search-DjrQdiiW.css +0 -1
- package/dist/client/assets/left-C--GiIh8.js +0 -2
- package/dist/client/assets/left-Cj7Rt89X.js +0 -1
- package/dist/client/assets/left-CpNEtFEg.js +0 -1
- package/dist/client/assets/left-CzXAuK_t.js +0 -2
- package/dist/client/assets/left-agents-Bo9sO1by.js +0 -1
- package/dist/client/assets/left-bN4PCAXa.js +0 -1
- package/dist/client/assets/left-default-DV9GdvYi.js +0 -1
- package/dist/client/assets/left-jYYGAOYD.js +0 -1
- package/dist/client/assets/left-lanes-D0l_Co7V.js +0 -1
- package/dist/client/assets/left-mission-Ci7zREkQ.js +0 -1
- package/dist/client/assets/left-plan-D4U1uflW.js +0 -2
- package/dist/client/assets/library-D-RxGiCw.js +0 -1
- package/dist/client/assets/mission-control-D3ikEPND.css +0 -1
- package/dist/client/assets/openAgent-Bjt57GdM.js +0 -1
- package/dist/client/assets/profile-CVRziEDA.js +0 -1
- package/dist/client/assets/repo-diff-C9Qs-bEn.css +0 -1
- package/dist/client/assets/resolve-panes-r9B3mpW7.js +0 -1
- package/dist/client/assets/resolve-sidebar-context-DcG8xGaB.js +0 -1
- package/dist/client/assets/right-BHeiIaty.js +0 -1
- package/dist/client/assets/right-BkgKo9VT.js +0 -1
- package/dist/client/assets/right-BpEU5jWE.js +0 -1
- package/dist/client/assets/right-CRZXoy-X.js +0 -1
- package/dist/client/assets/right-ChF_pbPy.js +0 -1
- package/dist/client/assets/right-DMoUT3KN.js +0 -1
- package/dist/client/assets/right-T4Ue6EqM.js +0 -1
- package/dist/client/assets/right-wzrLXKur.js +0 -1
- package/dist/client/assets/router-Bq5dwf78.js +0 -1
- package/dist/client/assets/secondaryNavConfig-DqUIp0Es.js +0 -1
- package/dist/client/assets/session-table-DZcrKoIH.js +0 -1
- package/dist/client/assets/sparkles-ClfRJQ6w.js +0 -1
- package/dist/client/assets/system-surfaces-redesign-CD26LFc0.css +0 -1
- package/dist/client/assets/terminal-sessions-D5CIR2OL.js +0 -1
- package/dist/client/assets/useContentSecondaryNav-DMl1WNm7.js +0 -1
- package/dist/client/assets/usePierreRuntime-wC-yMtBb.js +0 -50
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.s-thread-layout{display:flex;flex:1 1 0;height:100%;min-height:0;overflow:hidden;background:var(--bg)}.s-thread-rail{width:280px;flex-shrink:0;display:flex;flex-direction:column;background:color-mix(in srgb,var(--bg) 70%,black);border-right:1px solid var(--border);overflow:hidden}.s-thread-rail-scroll{flex:1;min-height:0;overflow-y:auto;padding-bottom:var(--space-2xl)}.s-thread-rail-section{padding:0}.s-thread-rail-section-label{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xl) var(--space-2xl) var(--space-xs);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-lg);text-transform:uppercase;color:var(--dim);-webkit-user-select:none;user-select:none}.s-thread-rail-section--needs-you .s-thread-rail-section-label{color:var(--amber)}.s-thread-rail-item{position:relative;display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-2xl) var(--space-sm) var(--space-xl);cursor:pointer;border:none;background:transparent;width:100%;text-align:left;transition:background .1s ease;border-left:2px solid transparent}.s-thread-rail-item:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}.s-thread-rail-item--active{background:color-mix(in srgb,var(--accent) 6%,transparent);border-left-color:var(--accent)}.s-thread-rail-item--needs-you{background:color-mix(in srgb,var(--amber) 4%,transparent)}.s-thread-rail-item--needs-you:hover{background:color-mix(in srgb,var(--amber) 8%,transparent)}.s-thread-rail-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:600;color:var(--scout-chrome-avatar-ink);flex-shrink:0}.s-thread-rail-avatar--channel{background:color-mix(in srgb,var(--border) 60%,transparent);color:var(--muted);font-size:var(--text-lg);font-weight:400}.s-thread-rail-body{flex:1;min-width:0}.s-thread-rail-name{display:block;font-size:var(--text-md);font-weight:550;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.005em}.s-thread-rail-item--active .s-thread-rail-name{color:var(--ink);font-weight:600}.s-thread-rail-sub{display:block;font-size:var(--text-xs);color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.s-thread-rail-trailing{display:flex;align-items:center;gap:var(--space-xs);flex-shrink:0}.s-thread-rail-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 var(--space-xs);border-radius:var(--radius-lg);background:var(--accent);color:var(--bg);font-size:var(--text-xs);font-weight:600;font-variant-numeric:tabular-nums}.s-thread-rail-badge--amber{background:var(--amber)}.s-thread-rail-presence-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.s-thread-center{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0;overflow:hidden;background:var(--bg)}.s-thread-center-header{display:flex;align-items:center;gap:var(--space-md);min-height:62px;padding:var(--space-md) var(--space-3xl);border-bottom:1px solid color-mix(in srgb,var(--border) 92%,var(--surface));background:var(--surface);flex-shrink:0}.s-thread-header-back{min-width:30px;height:30px;padding:0 var(--space-sm);border-color:color-mix(in srgb,var(--border) 34%,transparent);background:transparent;color:var(--muted);font-size:var(--text-xs);align-self:center}.s-thread-header-back:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}.s-thread-center-header-info{flex:1;min-width:0}.s-thread-center-header-name{display:block;font-size:var(--text-2xl);font-weight:650;letter-spacing:-.02em;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button.s-thread-center-header-name{appearance:none;width:100%;padding:0;border:0;background:none;font-family:inherit;text-align:left;cursor:pointer}.s-thread-center-header-right{display:flex;align-items:center;gap:var(--space-sm);min-width:0;flex-shrink:0}.s-thread-participants{display:flex;align-items:center;gap:var(--space-xs);min-width:0;max-width:min(48vw,520px)}.s-thread-participant-pill,.s-thread-participant-overflow{display:inline-flex;align-items:center;min-height:28px;border:1px solid color-mix(in srgb,var(--border) 58%,transparent);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--bg) 82%,transparent);color:var(--muted);font-size:var(--text-sm)}.s-thread-participant-pill{gap:var(--space-xs);max-width:200px;min-width:0;padding:2px var(--space-sm) 2px 3px}button.s-thread-participant-pill{font:inherit;cursor:pointer}button.s-thread-participant-pill:hover{border-color:color-mix(in srgb,var(--accent) 34%,var(--border));color:var(--ink)}.s-thread-participant-avatar{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex:0 0 auto;border-radius:var(--radius-pill);overflow:visible}.s-thread-participant-identity{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0;line-height:1.15}.s-thread-participant-name{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-thread-participant-model{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.01em}.s-thread-participant-pill--operator{color:var(--muted)}.s-thread-participant-avatar--operator{background:color-mix(in srgb,var(--surface) 70%,var(--bg));color:var(--muted);border:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.s-thread-participant-observer{display:inline-flex;align-items:center;gap:var(--space-2xs, 4px);min-height:28px;padding:0 var(--space-sm);border:1px dashed color-mix(in srgb,var(--border) 60%,transparent);border-radius:var(--radius-pill);background:transparent;color:var(--dim);font-size:var(--text-xs);white-space:nowrap}.s-thread-participant-observer svg{opacity:.85}.s-thread-participant-overflow{justify-content:center;min-width:28px;padding:0 var(--space-xs);color:var(--dim);font-family:var(--font-mono);font-size:var(--text-xs)}.s-thread-add-participant-trigger{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;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) 30%,var(--border));border-radius:var(--radius-xl);background:color-mix(in srgb,var(--amber) 3%,var(--surface));position:relative;overflow:hidden}.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-label{display:flex;align-items:center;gap:var(--space-sm);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-lg);text-transform:uppercase;color:var(--amber);margin-bottom:var(--space-sm)}.s-thread-pinned-ask-body{font-size:var(--text-2xl);font-weight:500;line-height:var(--leading-snug);letter-spacing:-.01em;color:var(--ink);margin-bottom:var(--space-md)}.s-thread-pinned-ask-routing{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--text-sm);color:var(--muted);margin-bottom:var(--space-lg)}.s-thread-pinned-ask-routing-arrow{color:var(--dim)}.s-thread-pinned-ask-actions{display:flex;align-items:center;gap:var(--space-sm)}.s-thread-pinned-ask-strip{height:2px;width:100%;margin-top:var(--space-md);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}@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: 24px;display:inline-flex;width:var(--size);height:var(--size);flex-shrink:0;margin-top:0}.s-thread-msg-avatar--working{--size: 28px}.s-thread-msg-avatar--nav{--size: 24px;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;transition:transform .1s ease,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-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:grid;gap:var(--space-3xs)}.s-thread-steps ol{display:grid;gap:0;margin:0;padding:0;list-style:none}.s-thread-steps li{display:grid;grid-template-columns:auto 54px minmax(0,1fr) auto;align-items:baseline;gap:var(--space-xs);min-height:22px;padding:var(--space-3xs) 0;border-bottom:1px solid color-mix(in srgb,var(--border) 30%,transparent);animation:s-thread-motion-event-enter .42s cubic-bezier(.16,1,.3,1) both}.s-thread-steps li:last-child{border-bottom:none}.s-thread-step-mark{width:6px;height:6px;align-self:center;border:1px solid currentColor;border-radius:1px;color:var(--dim)}.s-thread-steps li[data-kind=tool] .s-thread-step-mark{background:currentColor}.s-thread-steps li[data-kind=think] .s-thread-step-mark{border-radius:50%}.s-thread-steps li[data-kind=message] .s-thread-step-mark,.s-thread-steps li[data-kind=ask] .s-thread-step-mark{background:currentColor;border-radius:50%}.s-thread-steps li:last-child .s-thread-step-mark{color:var(--accent)}.s-thread-step-kind{color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-sm);text-transform:uppercase}.s-thread-step-body{min-width:0;display:flex;align-items:baseline;gap:var(--space-2xs);overflow:hidden;white-space:nowrap}.s-thread-step-text,.s-thread-step-arg{min-width:0;overflow:hidden;color:var(--muted);font-size:var(--text-sm);text-overflow:ellipsis}.s-thread-steps li[data-kind=think] .s-thread-step-text{color:var(--dim);font-style:italic}.s-thread-step-tool{flex:none;color:var(--fg);font-family:var(--font-mono);font-size:var(--text-xs)}.s-thread-step-arg{font-family:var(--font-mono);font-size:var(--text-xs)}.s-thread-step-repeat,.s-thread-step-outcome{flex:none;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs)}.s-thread-steps time{color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);white-space:nowrap}.s-thread-steps-elided{color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-sm)}.s-thread-steps--compact{padding-top:var(--space-xs);border-top:1px solid color-mix(in srgb,var(--border) 40%,transparent)}.s-thread-steps-phase{min-width:0;display:flex;align-items:baseline;gap:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid color-mix(in srgb,var(--border) 40%,transparent)}.s-thread-steps-phase span{flex:none;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-sm);text-transform:uppercase}.s-thread-steps-phase strong{min-width:0;overflow:hidden;color:var(--muted);font-size:var(--text-sm);font-weight:450;text-overflow:ellipsis;white-space:nowrap}.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-steps li{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)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as s}from"./index-CzVeWScw.js";import{c as e,h as n}from"./conversation-model-CHwHZNw-.js";import"./colors-BtO5_zlx.js";import"./time-Dhsh_2EG.js";function o({pinnedAsk:a,onAnswer:t}){return s.jsxs("div",{className:"s-thread-pinned-ask",children:[s.jsx("div",{className:"s-thread-pinned-ask-label",children:"Agent question · Awaiting operator"}),s.jsx("div",{className:"s-thread-pinned-ask-body",children:a.task}),s.jsxs("div",{className:"s-thread-pinned-ask-routing",children:[s.jsx("span",{children:a.agentName??e(a.agentId)??a.agentId}),s.jsx("span",{className:"s-thread-pinned-ask-routing-arrow",children:"→"}),s.jsx("span",{children:"You"})]}),s.jsx("div",{className:"s-thread-pinned-ask-actions",children:s.jsx("button",{type:"button",className:"s-ops-btn s-ops-btn--primary",onClick:t,children:"Answer"})}),s.jsx("div",{className:"s-thread-pinned-ask-strip"})]})}function c({presence:a,agent:t}){return a.showStrip?s.jsxs("div",{className:`s-thread-status s-thread-status--${a.tone}`,"aria-live":"polite",children:[s.jsx("span",{className:"s-thread-status-dot",style:{background:n(a,t?.state??null)}}),s.jsxs("div",{className:"s-thread-status-copy",children:[s.jsx("span",{className:"s-thread-status-label",children:a.label}),s.jsx("span",{className:"s-thread-status-detail",children:a.detail})]})]}):null}export{c as ConversationStatusStrip,o as PinnedAskCard};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as m,j as o}from"./index-
|
|
1
|
+
import{r as m,j as o}from"./index-CzVeWScw.js";/* empty css */const $=48,I=720;function _(e){if(!e||typeof window>"u")return null;try{const n=window.localStorage.getItem(e);if(!n)return null;const a=JSON.parse(n);if(!a||typeof a!="object")return null;const f={};for(const[c,d]of Object.entries(a))typeof d=="number"&&Number.isFinite(d)&&d>0&&(f[c]=d);return f}catch{return null}}function z(e,n){if(e&&!(typeof window>"u"))try{window.localStorage.setItem(e,JSON.stringify(n))}catch{}}function H({storageKey:e,columns:n}){const a=m.useMemo(()=>{const r=_(e)??{},s={};for(const p of n)s[p.key]=r[p.key]??p.defaultWidth;return s},[e,n]),[f,c]=m.useState(a);m.useEffect(()=>{c(r=>{let s=!1;const p={...r};for(const b of n)p[b.key]==null&&(p[b.key]=b.defaultWidth,s=!0);return s?p:r})},[n]);const d=m.useMemo(()=>{const r=new Map;for(const s of n)r.set(s.key,s);return r},[n]),N=m.useRef(null),x=m.useCallback(r=>{const s=N.current;if(!s)return;const p=r.clientX-s.startX,b=Math.min(s.max,Math.max(s.min,s.startWidth+p));c(u=>u[s.key]===b?u:{...u,[s.key]:b})},[]),y=m.useCallback(()=>{N.current&&(N.current=null,document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("pointermove",x),window.removeEventListener("pointerup",y),window.removeEventListener("pointercancel",y),c(r=>(z(e,r),r)))},[x,e]);m.useEffect(()=>()=>{window.removeEventListener("pointermove",x),window.removeEventListener("pointerup",y),window.removeEventListener("pointercancel",y)},[x,y]);const D=m.useCallback(r=>{const s=f[r],p=d.get(r),b=p?.minWidth??$,u=p?.maxWidth??I;return{style:{width:s,minWidth:b,maxWidth:u},"data-resize-key":r}},[f,d]),E=m.useCallback(r=>({onPointerDown:u=>{if(u.button!==0)return;u.preventDefault(),u.stopPropagation();const h=d.get(r),j=h?.minWidth??$,v=h?.maxWidth??I,S=f[r]??h?.defaultWidth??j;N.current={key:r,startX:u.clientX,startWidth:S,min:j,max:v},document.body.style.cursor="col-resize",document.body.style.userSelect="none",window.addEventListener("pointermove",x),window.addEventListener("pointerup",y),window.addEventListener("pointercancel",y)},onClick:u=>{u.stopPropagation()},onDoubleClick:u=>{u.preventDefault(),u.stopPropagation();const h=d.get(r);h&&c(j=>{const v={...j,[r]:h.defaultWidth};return z(e,v),v})},role:"separator","aria-orientation":"vertical","aria-label":"Resize column",className:"s-resize-handle"}),[f,d,x,y,e]),C=m.useCallback(()=>{c(()=>{const r={};for(const s of n)r[s.key]=s.defaultWidth;return z(e,r),r})},[n,e]);return{widths:f,getColumnProps:D,getResizeHandleProps:E,resetAll:C}}function J(e){return e==="number"||e==="time"?"right":"left"}function B(e){return e==="number"||e==="time"?-1:1}function T(e){return e==null||typeof e=="boolean"?"":typeof e=="string"||typeof e=="number"||typeof e=="bigint"?String(e):Array.isArray(e)?e.map(n=>T(n)).join(""):""}function F(e,n){if(e.sortValue)return e.sortValue(n);const a=e.render(n),f=T(a).trim();return f||null}function R(e){if(typeof e=="number")return e;const n=Date.parse(e);return Number.isFinite(n)?n:Number.NaN}function q(e,n,a,f){const c=F(a,e),d=F(a,n);return c==null&&d==null?0:c==null?1:d==null?-1:a.kind==="number"?((Number(c)||0)-(Number(d)||0))*f:a.kind==="time"?(R(c)-R(d))*f:String(c).localeCompare(String(d),void 0,{numeric:!0,sensitivity:"base"})*f}function G(e,n){return a=>{typeof e=="function"&&e(a),a.defaultPrevented||n?.(a)}}function K(e,n){return a=>{typeof e=="function"&&e(a),a.defaultPrevented||n?.(a)}}function Z({rows:e,columns:n,rowId:a,storageKey:f,initialSort:c,sort:d,onSortChange:N,secondarySort:x,onRowClick:y,rowBindings:D,rowState:E,empty:C={title:"No rows"},loading:r=!1,rowClassName:s,density:p="comfortable",className:b,ariaLabel:u="Data table"}){const h=m.useMemo(()=>n.map(t=>{const l=t.kind??"text";return{...t,kind:l,align:t.align??J(l),sortable:t.sortable??l!=="custom",resizable:t.resizable??!0}}),[n]),j=m.useMemo(()=>new Map(h.map(t=>[t.key,t])),[h]),[v,S]=m.useState(()=>{if(!c)return null;const l=n.find(i=>i.key===c.key)?.kind??"text";return{key:c.key,dir:c.dir??B(l)}}),k=d??v,{getColumnProps:X,getResizeHandleProps:O}=H({storageKey:f,columns:h.map(t=>({key:t.key,defaultWidth:t.defaultWidth,minWidth:t.minWidth,maxWidth:t.maxWidth}))}),M=m.useMemo(()=>{const t=e.map((i,w)=>({row:i,index:w}));if(!k)return t.map(i=>i.row);const l=j.get(k.key);return l?.sortable?t.slice().sort((i,w)=>{const W=q(i.row,w.row,l,k.dir);if(W!==0)return W;const P=x?.(i.row,w.row)??0;return P!==0?P:i.index-w.index}).map(i=>i.row):t.map(i=>i.row)},[e,k,j,x]),A=t=>{d==null&&S(t),N?.(t)};return o.jsx("div",{className:`dt-wrap dt-wrap--${p}${b?` ${b}`:""}`,children:o.jsxs("table",{className:"dt-table","aria-label":u,"aria-busy":r||void 0,children:[o.jsx("thead",{children:o.jsx("tr",{children:h.map(t=>{const l=k?.key===t.key,i=l?k.dir===1?"ascending":"descending":"none",w=["dt-th",`dt-align-${t.align}`,t.cls,l?"dt-th--sorted":""].filter(Boolean).join(" ");return o.jsxs("th",{className:w,title:t.tip,"aria-sort":i,...X(t.key),children:[t.sortable?o.jsxs("button",{type:"button",className:"dt-th-sort",onClick:()=>{if(k?.key===t.key){A({key:t.key,dir:k.dir===1?-1:1});return}A({key:t.key,dir:B(t.kind)})},children:[o.jsx("span",{className:"dt-th-label",children:t.label}),o.jsx("span",{className:`dt-th-arrow${l?" dt-th-arrow--active":""}`,"aria-hidden":"true",children:l?k?.dir===1?"↑":"↓":"↕"})]}):o.jsx("div",{className:"dt-th-static",children:o.jsx("span",{className:"dt-th-label",children:t.label})}),t.resizable?o.jsx("span",{...O(t.key)}):null]},t.key)})})}),o.jsx("tbody",{children:r&&M.length===0?o.jsx("tr",{className:"dt-loading-row",children:o.jsx("td",{colSpan:h.length,children:o.jsx("div",{className:"dt-loading",role:"status","aria-label":`Loading ${u.toLowerCase()}`,children:Array.from({length:7},(t,l)=>o.jsx("div",{className:"dt-loading-line","aria-hidden":"true",children:h.map(i=>o.jsx("span",{style:{width:`${Math.min(i.defaultWidth,220)}px`}},i.key))},l))})})}):M.length===0?o.jsx("tr",{className:"dt-empty-row",children:o.jsx("td",{colSpan:h.length,children:o.jsxs("div",{className:"dt-empty",children:[o.jsx("div",{className:"dt-empty-title",children:C.title}),C.body?o.jsx("div",{children:C.body}):null]})})}):M.map(t=>{const l=a(t),i=D?.(l)??{},w=E?.(l)??{isActive:!1,isPinned:!1},W=!!(y||D),P=["dt-row",W?"dt-row--interactive":"",w.isActive?"dt-row--active":"",w.isPinned?"dt-row--pinned":"",s?.(t),typeof i.className=="string"?i.className:""].filter(Boolean).join(" "),U=y?()=>y(t):void 0,V=W?K(i.onKeyDown,g=>{y&&(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),y(t))}):typeof i.onKeyDown=="function"?i.onKeyDown:void 0,L={...i,className:P,onClick:G(i.onClick,U),onKeyDown:V};return W&&L.tabIndex==null&&(L.tabIndex=0),o.jsx("tr",{...L,children:h.map(g=>o.jsx("td",{className:["dt-td",`dt-align-${g.align}`,g.cls].filter(Boolean).join(" "),children:g.render(t)},g.key))},l)})})]})})}export{Z as D};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as f,j as
|
|
1
|
+
import{r as f,j as r}from"./index-CzVeWScw.js";import{a as y}from"./api-h5zurxmi.js";import{i as j}from"./scoutbot-BTIErYHo.js";import{u as S}from"./sse-QcU9bikk.js";import{t as E}from"./time-Dhsh_2EG.js";import{o as M}from"./openContent-C6XO6kr5.js";import{e as k}from"./broker-display-pp33bLsu.js";import{r as R}from"./follow-route-BvcGtBIL.js";import{L as C}from"./loader-circle-Byb9kSFx.js";import{A as L}from"./arrow-up-right-CcrWONpD.js";import"./index-BWHgHrtv.js";import"./status-tone-BM_zuRy1.js";import"./createLucideIcon-ClCdc3F9.js";const _=3,$=80;function h(e){return Number(e.createdAt)||0}function F(e,s){if(!e.conversationId)return{status:"no-conversation"};const t=s.slice().sort((o,i)=>h(o)-h(i)),n=e.messageId?t.find(o=>o.id===e.messageId)??null:null;let l;if(n){const o=h(n);l=t.filter(i=>i.id!==n.id&&h(i)>=o)}else{const o=t[0];if(o&&h(o)>e.ts)return{status:"beyond-page"};l=t.filter(i=>h(i)>e.ts)}if(l.length===0)return{status:"no-reply"};const u=n?h(n):e.ts,d=l.slice(0,_).map(o=>({id:o.id,actorName:o.actorName||"Unknown",body:o.body??"",createdAt:h(o),afterMs:Math.max(0,h(o)-u),answersDispatch:!!(e.messageId&&o.replyToMessageId===e.messageId)}));return{status:"replies",replies:d,more:Math.max(0,l.length-d.length)}}function b(e,...s){const t=e.metadata??{},n=t.raw&&typeof t.raw=="object"&&!Array.isArray(t.raw)?t.raw:null;for(const l of s)for(const u of[t,n]){const d=u?.[l];if(typeof d=="string"&&d.trim())return d.trim()}return null}function D(e,s){const t=new URLSearchParams,n=e.invocationId??b(e,"invocationId"),l=b(e,"flightId"),u=b(e,"collaborationRecordId","workId","recordId");return l&&t.set("flightId",l),n&&t.set("invocationId",n),e.conversationId&&t.set("conversationId",e.conversationId),u&&t.set("workId",u),s&&t.set("targetAgentId",s),[...t.keys()].length>0?t:null}function H(e,s={}){const t=[];return e.conversationId&&t.push({key:"conversation",label:"Conversation",hint:"The thread this dispatch landed in",route:{view:"conversation",conversationId:e.conversationId}}),(e.flightId||e.sessionId)&&t.push({key:"trace",label:"Live trace",hint:"The session that ran the work",route:{view:"sessions",...e.flightId?{flightId:e.flightId}:{},...e.sessionId?{sessionId:e.sessionId}:{},...e.targetAgentId?{agentId:e.targetAgentId}:{}}}),e.workId&&!s.nativeHost&&t.push({key:"work",label:"Work item",hint:"The collaboration record it belongs to",route:{view:"work",workId:e.workId}}),e.targetAgentId&&t.push({key:"agent",label:"Recipient",hint:"The agent that received it",route:{view:"agents-v2",agentId:e.targetAgentId,tab:"observe"}}),t.length>0&&t.push({key:"tail",label:"Tail",hint:"Raw events for these ids",route:R(e,"tail")}),t}const P={queued:"Queued",dispatched:"Dispatched",running:"Running",succeeded:"Completed",completed:"Completed",failed:"Failed",errored:"Failed",cancelled:"Cancelled",canceled:"Cancelled",timed_out:"Timed out",expired:"Expired"},U=new Set(["failed","errored","timed_out","expired"]),v=new Set(["queued","dispatched","running"]),G=new Set(["succeeded","completed"]);function q(e){if(!e)return null;const s=e.state?.trim().toLowerCase()||"unknown",t=U.has(s)?"danger":v.has(s)?"working":G.has(s)?"success":"neutral",n=e.startedAt&&e.completedAt?Math.max(0,e.completedAt-e.startedAt):null;return{state:s,label:P[s]??s.replace(/_/g," "),tone:t,summary:e.summary?.trim()||null,durationMs:n,settled:!v.has(s)}}function O(e){if(e<1e3)return"instant";const s=Math.round(e/1e3);if(s<60)return`${s}s later`;const t=Math.round(s/60);if(t<60)return`${t}m later`;const n=Math.round(t/60);return n<48?`${n}h later`:`${Math.round(n/24)}d later`}function B(e){if(e<1e3)return`${e}ms`;const s=e/1e3;if(s<60)return`${s.toFixed(s<10?1:0)}s`;const t=Math.floor(s/60),n=Math.round(s%60);return t<60?n>0?`${t}m ${n}s`:`${t}m`:`${Math.floor(t/60)}h ${t%60}m`}const w=180,Q=250,W={loading:!0,target:null,targetUnknown:!1,flight:null,aftermath:{status:"no-conversation"}};function z(e,s){const[t,n]=f.useState(W),[l,u]=f.useState(0),d=f.useRef(0),o=e.conversationId,i=f.useMemo(()=>D(e,s)?.toString()??null,[e,s]);f.useEffect(()=>{const a=++d.current;n(p=>({...p,loading:!0}));const x=i?y(`/api/follow?${i}`).catch(()=>null):Promise.resolve(null),A=o?y(`/api/messages?conversationId=${encodeURIComponent(o)}&limit=${$}`).catch(()=>null):Promise.resolve(null);return(async()=>{const[p,g]=await Promise.all([x,A]);if(a!==d.current)return;const T=p?.flightId?await y(`/api/flights?active=false&flightId=${encodeURIComponent(p.flightId)}`).then(N=>N[0]??null).catch(()=>null):null;a===d.current&&n({loading:!1,target:p,targetUnknown:!!i&&!p,flight:T,aftermath:o?g?F(e,g):{status:"unavailable"}:{status:"no-conversation"}})})(),()=>{d.current+=1}},[e,o,i,l]);const c=f.useRef(null),m=f.useCallback(()=>{c.current||(c.current=setTimeout(()=>{c.current=null,u(a=>a+1)},Q))},[]);f.useEffect(()=>()=>{c.current&&clearTimeout(c.current)},[]);const I=t.flight?.id??t.target?.flightId??null;return S(a=>{switch(a.kind){case"message.posted":o&&a.payload.message.conversationId===o&&m();return;case"delivery.state.changed":e.messageId&&a.payload.delivery.messageId===e.messageId&&m();return;case"flight.updated":I&&a.payload.flight.id===I&&m();return}}),{...t,reload:m}}function ie({attempt:e,targetAgentId:s,navigate:t,returnTo:n}){const{loading:l,target:u,targetUnknown:d,flight:o,aftermath:i}=z(e,s),c=q(o),m=u?H(u,{nativeHost:j()}):[],I=f.useCallback(a=>M(t,a,{returnTo:n}),[t,n]);return r.jsxs("section",{className:"sys-broker-aftermath","aria-labelledby":"dispatch-aftermath-title",children:[r.jsxs("div",{className:"sys-broker-aftermath-head",children:[r.jsx("span",{id:"dispatch-aftermath-title",className:"sys-detail-label",children:"What happened next"}),l&&r.jsx(C,{className:"sys-broker-action-spinner",size:12,"aria-hidden":"true"})]}),c&&r.jsxs("div",{className:`sys-broker-aftermath-outcome sys-broker-aftermath-outcome--${c.tone}`,children:[r.jsx("span",{className:`sys-broker-dot sys-broker-dot--${c.tone}`,"aria-hidden":"true"}),r.jsx("strong",{children:c.label}),c.durationMs!==null&&r.jsxs("span",{className:"sys-broker-aftermath-duration",children:["ran ",B(c.durationMs)]}),c.summary&&r.jsx("p",{children:k(c.summary,w)})]}),i.status==="replies"?r.jsxs("ol",{className:"sys-broker-aftermath-replies",children:[i.replies.map(a=>r.jsx("li",{children:r.jsxs("button",{type:"button",className:"sys-broker-aftermath-reply",disabled:!e.conversationId,onClick:()=>e.conversationId&&I({view:"conversation",conversationId:e.conversationId}),children:[r.jsxs("span",{className:"sys-broker-aftermath-reply-head",children:[r.jsx("strong",{children:a.actorName}),a.answersDispatch&&r.jsx("span",{className:"sys-broker-aftermath-answer",children:"reply"}),r.jsx("span",{className:"sys-broker-aftermath-gap",children:O(a.afterMs)})]}),r.jsx("span",{className:"sys-broker-aftermath-reply-body",children:k(a.body,w)})]})},a.id)),i.more>0&&r.jsxs("li",{className:"sys-broker-aftermath-more",children:["+",i.more," more in the thread"]})]}):!l&&r.jsx("p",{className:"sys-broker-aftermath-empty",children:i.status==="no-conversation"?"No conversation followed this dispatch, so there is nothing to open.":i.status==="unavailable"?"The conversation could not be read, so what followed is unknown.":i.status==="beyond-page"?"This dispatch is older than the loaded transcript. Open the conversation to read it in place.":c&&!c.settled?"Still running. Nothing has come back yet.":"Nothing followed this dispatch in its conversation."}),m.length>0?r.jsx("div",{className:"sys-broker-aftermath-links",children:m.map(a=>r.jsxs("button",{type:"button",className:"sys-broker-aftermath-link",title:a.hint,onClick:()=>I(a.route),children:[a.label,r.jsx(L,{size:11,"aria-hidden":"true"})]},a.key))}):!l&&i.status!=="no-conversation"&&r.jsx("p",{className:"sys-broker-aftermath-empty",children:d?"Where this went could not be looked up, so there is nothing to link to yet.":"No session, work item, or recipient could be resolved from this row."}),o?.completedAt&&r.jsxs("div",{className:"sys-broker-aftermath-foot",children:["Settled ",E(o.completedAt)]})]})}export{ie as DispatchAftermath};
|
package/dist/client/assets/{DocumentFocusViewer-BeVwwl26.js → DocumentFocusViewer-BCG2kOmd.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as u}from"./createLucideIcon-
|
|
1
|
+
import{c as u}from"./createLucideIcon-ClCdc3F9.js";import{r,j as e}from"./index-CzVeWScw.js";import{T as H}from"./TextDocumentSurface-DRjctOIt.js";/* empty css */import{F as A}from"./file-text-DG-pufl1.js";import{X as R}from"./x-D4X_y1j_.js";const S=[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]],G=u("folder-open",S);const W=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],J=u("folder",W);const B=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]],T=u("maximize-2",B);const V=[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]],C=u("minimize-2",V);function P({open:a=!0,focusable:M=!0,kind:F,document:t,title:z,eyebrow:v,subtitle:w,meta:x=[],mode:$,actions:L=[],state:p,error:c,notice:j,body:d,onClose:o}){const[i,m]=r.useState(!1),[g,y]=r.useState({}),b=r.useRef(null);if(r.useEffect(()=>{a||m(!1)},[a]),r.useEffect(()=>{if(!a)return;let s=null;const l=b.current?.closest(".frame-scrollbar, .s-content")??null,N=()=>{if(!l){y({});return}const n=l.getBoundingClientRect();y({"--doc-focus-layer-top":`${Math.max(0,n.top)}px`,"--doc-focus-layer-right":`${Math.max(0,window.innerWidth-n.right)}px`,"--doc-focus-layer-bottom":`${Math.max(0,window.innerHeight-n.bottom)}px`,"--doc-focus-layer-left":`${Math.max(0,n.left)}px`})},h=()=>{s!==null&&cancelAnimationFrame(s),s=requestAnimationFrame(N)};N();const E=l?new ResizeObserver(h):null;return l&&E?.observe(l),window.addEventListener("resize",h),()=>{s!==null&&cancelAnimationFrame(s),E?.disconnect(),window.removeEventListener("resize",h)}},[a]),r.useEffect(()=>{if(!a)return;const s=f=>{f.key==="Escape"&&(f.preventDefault(),i?m(!1):o?.())};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[i,o,a]),!a)return null;const k=z??t?.title??"Document",D=$??(t?.kind==="markdown"?"preview":"read"),_=M&&!!(t||d);return e.jsxs("div",{ref:b,className:`s-doc-focus-layer${i?" s-doc-focus-layer-focused":""}`,style:g,children:[o&&e.jsx("button",{type:"button",className:"s-doc-focus-scrim","aria-label":"Dismiss document viewer",tabIndex:-1,onClick:o}),e.jsxs("section",{className:`s-doc-focus-viewer s-doc-focus-viewer-${F}${i?" s-doc-focus-viewer-focused":""}`,"aria-label":k,role:"dialog","aria-modal":"true",children:[e.jsxs("div",{className:"s-doc-focus-viewer-head",children:[e.jsxs("div",{className:"s-doc-focus-viewer-title-wrap",children:[e.jsx("div",{className:"s-doc-focus-viewer-icon","aria-hidden":"true",children:e.jsx(A,{size:15,strokeWidth:1.8})}),e.jsxs("div",{className:"s-doc-focus-viewer-title-main",children:[v&&e.jsx("div",{className:"s-doc-focus-viewer-eyebrow",children:v}),e.jsx("h3",{className:"s-doc-focus-viewer-title",children:k}),w&&e.jsx("div",{className:"s-doc-focus-viewer-subtitle",children:w})]})]}),e.jsxs("div",{className:"s-doc-focus-viewer-actions",children:[x.length>0&&e.jsx("div",{className:"s-doc-focus-viewer-meta","aria-label":"Document metadata",children:x.map(s=>e.jsx("span",{children:s},s))}),L.map(s=>e.jsxs("button",{type:"button",className:`s-doc-focus-viewer-action${s.hideLabel?" s-doc-focus-viewer-action-icon":""}`,onClick:s.onClick,title:s.title??s.label,disabled:s.disabled,"aria-label":s.hideLabel?s.label:void 0,children:[s.icon,!s.hideLabel&&e.jsx("span",{children:s.label})]},s.label)),_&&e.jsx("button",{type:"button",className:"s-doc-focus-viewer-close",onClick:()=>m(s=>!s),"aria-label":i?"Exit focus mode":"Enter focus mode",title:i?"Exit focus mode":"Focus",children:i?e.jsx(C,{"aria-hidden":"true",size:14,strokeWidth:1.8}):e.jsx(T,{"aria-hidden":"true",size:14,strokeWidth:1.8})}),o&&e.jsx("button",{type:"button",className:"s-doc-focus-viewer-close",onClick:o,"aria-label":"Close document viewer",title:"Close",children:e.jsx(R,{"aria-hidden":"true",size:14,strokeWidth:1.8})})]})]}),p&&!c&&!t&&!d&&e.jsx("div",{className:"s-doc-focus-viewer-state",children:p}),c&&e.jsx("div",{className:"s-doc-focus-viewer-state s-doc-focus-viewer-error",children:c}),!c&&d&&e.jsx("div",{className:"s-doc-focus-viewer-body",children:d}),!c&&!d&&t&&e.jsx(H,{document:t,mode:D,showHeader:!1,className:"s-doc-focus-document"}),!c&&j&&e.jsx("div",{className:"s-doc-focus-viewer-notice",children:j})]})]})}export{P as D,J as F,C as M,G as a,T as b};
|
package/dist/client/assets/{EmbeddableSurfacesLab-BQqFQVnI.js → EmbeddableSurfacesLab-C2SZvrHJ.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as l,j as e}from"./index-
|
|
1
|
+
import{r as l,j as e}from"./index-CzVeWScw.js";import{l as c}from"./discover-7Ks00w-M.js";import"./types-B0PlfpKc.js";function n(){const[r,a]=l.useState([]);return l.useEffect(()=>{let s=!1;return c().then(d=>{s||a(d)}),()=>{s=!0}},[]),e.jsxs("div",{className:"s-embeddable-surfaces-lab","data-scout-theme":!0,children:[e.jsxs("header",{className:"s-embeddable-surfaces-lab__header",children:[e.jsx("h1",{children:"Embeddable surfaces"}),e.jsxs("p",{children:["Screens that exported ",e.jsx("code",{children:"scoutSurface.embed"})," and were discovered from"," ",e.jsx("code",{children:"client/screens/**"}),". No separate embed registry file — parity comes from the screen declaration."]})]}),e.jsxs("table",{className:"s-embeddable-surfaces-lab__table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"ID"}),e.jsx("th",{children:"Label"}),e.jsx("th",{children:"Web"}),e.jsx("th",{children:"Embed"}),e.jsx("th",{children:"Profile"}),e.jsx("th",{children:"Module"})]})}),e.jsx("tbody",{children:r.map(s=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:s.id})}),e.jsx("td",{children:s.label}),e.jsx("td",{children:e.jsx("a",{href:s.webPath,children:s.webPath})}),e.jsxs("td",{children:[e.jsx("div",{children:e.jsx("a",{href:s.embedPath,children:s.embedPath})}),s.embedAliases.length>0&&e.jsx("div",{className:"s-embeddable-surfaces-lab__aliases",children:s.embedAliases.map(d=>e.jsx("a",{href:d,children:d},d))})]}),e.jsx("td",{children:e.jsx("code",{children:s.profile})}),e.jsx("td",{children:e.jsx("code",{children:s.modulePath.replace("../","")})})]},s.id))})]}),r.length===0&&e.jsx("p",{className:"s-embeddable-surfaces-lab__empty",children:"No embeddable screens discovered yet."})]})}export{n as EmbeddableSurfacesLab};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e}from"./index-
|
|
1
|
+
import{j as e}from"./index-CzVeWScw.js";function c({title:n,body:s,icon:i,action:t,className:a}){const l=a?`sys-panel sys-state-card ${a}`:"sys-panel sys-state-card";return e.jsxs("div",{className:l,children:[i,e.jsx("h3",{className:"sys-state-title",children:n}),s!=null&&(typeof s=="string"?e.jsx("p",{className:"sys-state-body",children:s}):s),t&&e.jsx("div",{className:"sys-inline-actions",children:t})]})}export{c as E};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{r as n,j as t}from"./index-
|
|
1
|
+
import{r as n,j as t}from"./index-CzVeWScw.js";import{T as b,c as j}from"./TextDocumentSurface-DRjctOIt.js";import{a as N}from"./api-h5zurxmi.js";function V(e,a,u){const o=e.relativePath.endsWith(".md")||e.relativePath.endsWith(".mdx"),s=e.relativePath.endsWith(".json");return j({id:e.absolutePath,title:e.relativePath,uri:e.absolutePath,filename:e.relativePath.split("/").pop(),kind:o?"markdown":"code",language:s?"json":o?"markdown":"plain",value:u?`${a}
|
|
2
2
|
|
|
3
3
|
— excerpt —`:a,readOnly:!0})}function y({artifact:e,onOpen:a,onReveal:u,onBrowse:o}){const[s,l]=n.useState(e.excerpt),[c,i]=n.useState(!0),[w,h]=n.useState(!1),[m,p]=n.useState(null);n.useEffect(()=>{l(e.excerpt),i(!0),p(null);let d=!1;return h(!0),N(`/api/file/preview?path=${encodeURIComponent(e.absolutePath)}`).then(r=>{if(!d)if(r.kind==="file"&&r.previewable){const x=r;l(x.content),i(x.truncated)}else e.excerpt?(l(e.excerpt),i(!0)):(l(null),p("Preview not available for this file type."))}).catch(r=>{d||(e.excerpt?(l(e.excerpt),i(!0)):p(r instanceof Error?r.message:"Could not load file."))}).finally(()=>{d||h(!1)}),()=>{d=!0}},[e.absolutePath,e.excerpt]);const v=n.useMemo(()=>s?V(e,s,c):null,[e,s,c]),P=e.relativePath.endsWith(".md")||e.relativePath.endsWith(".mdx");return t.jsxs(t.Fragment,{children:[t.jsxs("header",{className:"av2-repoViewerHead",children:[t.jsxs("div",{className:"av2-repoViewerPath",children:[t.jsx("span",{className:"av2-repoViewerPathFile",children:e.relativePath}),t.jsx("span",{className:"av2-repoViewerPathAbs",title:e.absolutePath,children:e.absolutePath})]}),t.jsxs("div",{className:"av2-repoViewerActs",children:[t.jsx("button",{type:"button",className:"av2-repoViewerAct","data-primary":!0,onClick:()=>a(e.absolutePath),children:"open"}),o?t.jsx("button",{type:"button",className:"av2-repoViewerAct",onClick:()=>o(e.absolutePath),children:"browse"}):null,t.jsx("button",{type:"button",className:"av2-repoViewerAct",onClick:()=>{u(e.absolutePath)},children:"reveal"})]})]}),t.jsxs("div",{className:"av2-repoViewerBody",children:[w&&!s?t.jsx("div",{className:"av2-repoViewerState",children:"Loading file…"}):m&&!s?t.jsx("div",{className:"av2-repoViewerState av2-repoViewerState--error",children:m}):v?t.jsx(b,{document:v,mode:P?"preview":"read",className:"av2-repoViewerDoc"}):t.jsx("div",{className:"av2-repoViewerState",children:"No content."}),c?t.jsx("div",{className:"av2-repoViewerNotice",children:"Showing excerpt — use open for the full file."}):null]})]})}export{y as FileViewerPane};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as s}from"./index-
|
|
1
|
+
import{j as s}from"./index-CzVeWScw.js";function f({value:e,onChange:a,placeholder:t="Search…",onKeyDown:r}){return s.jsx("input",{type:"search",className:"fleet-search",placeholder:t,value:e,onChange:o=>a(o.target.value),onKeyDown:r,spellCheck:!1,autoCorrect:"off",autoCapitalize:"off"})}export{f as F};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as c,j as s}from"./index-CzVeWScw.js";import{a as k}from"./api-h5zurxmi.js";import{u as R}from"./sse-QcU9bikk.js";import{d as $,t as F}from"./time-Dhsh_2EG.js";import{SessionRefScreen as j}from"./SessionRefScreen-Dk-O4OVt.js";/* empty css */import{c as E}from"./createLucideIcon-ClCdc3F9.js";import{X as A}from"./x-D4X_y1j_.js";import"./index-BWHgHrtv.js";import"./tail-events-C6K7bCWB.js";import"./BackToPicker-DZg_4nHL.js";import"./router-B-K15T7B.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-C3qU8tnY.js";import"./ConversationScreen-C-PrCRz1.js";import"./NewChatComposer-DXDxV2Mh.js";import"./runtime-picker-BCQD7d4K.js";import"./scout-voice-S5_YZ2v8.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-Byb9kSFx.js";import"./MessageComposerSuggestions-Cs9u-F_3.js";import"./index-Dewd56RX.js";import"./HarnessMark-BE-YSyci.js";import"./conversation-model-CHwHZNw-.js";import"./colors-BtO5_zlx.js";import"./NewChatOrigin-CnjoswTG.js";import"./keyboard-nav-BJnFoFDP.js";import"./model-Co0zkMIc.js";import"./text-DsBWV_4k.js";import"./chevron-down-DRCbnzyY.js";import"./search-C3bSJluv.js";import"./file-text-DG-pufl1.js";import"./ConversationComposer-CiEF7dhd.js";import"./Provider-DSsb2gLR.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-N-Z6X0Z1.js";import"./DocumentFocusViewer-BCG2kOmd.js";import"./TextDocumentSurface-DRjctOIt.js";/* empty css */import"./chevron-right-CNE6QAVr.js";import"./code-xml--LjSM4Mv.js";import"./arrow-left-_vS7itsV.js";import"./chunk-HRAB3GC3-CAeEKaf5.js";import"./message-markup-mGF07emJ.js";import"./mentions-fbQJ2mBI.js";import"./AgentDetailCard-sZuHl1de.js";import"./AgentLiveActions-DI4ooSHW.js";import"./terminal-takeover-KvmTwABa.js";import"./openContent-C6XO6kr5.js";import"./eye-BFlhMzQL.js";import"./terminal-DrTkVXIj.js";import"./message-visibility-kJM8XcSG.js";import"./sessionRead-CvFz2RHv.js";import"./clipboard-e3fSpeo7.js";import"./AgentAvatar-CszU5eaU.js";import"./SpriteAvatar-BpQDpOkq.js";import"./agent-identity-BxCsXnDp.js";import"./types-B0PlfpKc.js";/* empty css */import"./ConversationHeader-BGgbITvr.js";import"./ConversationFeedRows-5it6QNBV.js";import"./ConversationPanels-vI9YuQJh.js";import"./use-reduced-motion-Dla-G_Jz.js";import"./activity-BxwKkT8z.js";import"./message-circle-aGOfQWm2.js";import"./tail-display-BRcJltQa.js";import"./lane-edit-display-C_Aujldz.js";import"./ConversationStatus-COEj5loj.js";import"./SessionObserve-BmmJ8dEh.js";import"./bash-format-BRV5C6Gv.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-DrPXYZvQ.js";import"./lane-observe-BA3g9aVd.js";import"./lane-ask-display-B6iCAVcd.js";import"./ObservedTopologyPanel-C1AQM0Mq.js";import"./ObserveTextFlow-DJxQc2H6.js";import"./SessionObserveEvidence-CEedIk2a.js";import"./wrench-CeCdjiPF.js";import"./external-link-CnaI1QFS.js";/* empty css */const T=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 3v18",key:"108xh3"}]],L=E("columns-2",T);function S(t){const o=new Map;for(const r of t)o.delete(r.sessionId),o.set(r.sessionId,r);return[...o.values()]}function M(t,o){const r=S(t),p=o?.trim()||null;return r.find(n=>n.sessionId===p)?.sessionId??r.at(-1)?.sessionId??p}function O(t){return t.length<=34?t:`${t.slice(0,15)}…${t.slice(-14)}`}function q(t,o){return o===0?t.strategy||"dispatch":t.strategy?`switched via ${t.strategy}`:"session changed"}function y({label:t,sessions:o,value:r,onChange:p}){return s.jsxs("label",{className:"s-flight-observe-select-wrap",children:[s.jsx("span",{children:t}),s.jsx("select",{className:"s-flight-observe-select",value:r,onChange:n=>p(n.currentTarget.value),children:o.map(n=>s.jsxs("option",{value:n.sessionId,children:[n.harness?`${n.harness} · `:"",n.sessionId]},n.sessionId))})]})}function pe({route:t,navigate:o}){const[r,p]=c.useState(null),[n,I]=c.useState(!0),[h,N]=c.useState(null),u=c.useCallback(async()=>{try{const e=await k(`/api/flights?active=false&flightId=${encodeURIComponent(t.flightId)}`);p(e[0]??null),N(e.length===0?"This flight is not available on the connected broker.":null)}catch(e){N(e instanceof Error?e.message:String(e))}finally{I(!1)}},[t.flightId]);c.useEffect(()=>{I(!0),u()},[u]),R(()=>{u()});const v=r?.sessions??[],a=c.useMemo(()=>S(v),[v]),g=M(v,t.sessionId),i=a.find(e=>e.sessionId===g)??null,l=a.find(e=>e.sessionId===t.compareSessionId)??null,f=!!(i&&l&&i.sessionId!==l.sessionId),m=c.useCallback((e,d)=>{o({...t,sessionId:e,...d?{compareSessionId:d}:{compareSessionId:void 0}})},[o,t]),w=c.useCallback(()=>{if(!i||a.length<2)return;const e=[...a].reverse().find(d=>d.sessionId!==i.sessionId);e&&m(i.sessionId,e.sessionId)},[i,a,m]),C=c.useCallback(e=>{if(!f||!i||!l){m(e);return}m(e,e===l.sessionId?i.sessionId:l.sessionId)},[l,i,f,m]);return s.jsxs("div",{className:"s-flight-observe",children:[s.jsxs("header",{className:"s-flight-observe-header",children:[s.jsxs("div",{className:"s-flight-observe-heading",children:[s.jsx("div",{className:"s-flight-observe-eyebrow",children:"Flight observe"}),s.jsxs("div",{className:"s-flight-observe-title-row",children:[s.jsx("h2",{children:r?.agentName||r?.agentId||"Flight"}),s.jsx("span",{className:`s-flight-observe-state s-flight-observe-state--${r?.state??"loading"}`,children:r?.state??(n?"loading":"unknown")})]}),s.jsx("div",{className:"s-flight-observe-id",title:t.flightId,children:t.flightId}),r?.summary&&s.jsx("p",{children:r.summary})]}),s.jsxs("div",{className:"s-flight-observe-actions",children:[a.length>1&&!f&&s.jsxs("button",{type:"button",onClick:w,children:[s.jsx(L,{size:13})," Split view"]}),f&&i&&s.jsxs("button",{type:"button",onClick:()=>m(i.sessionId),children:[s.jsx(A,{size:13})," Close split"]})]})]}),v.length>0&&s.jsx("nav",{className:"s-flight-observe-trace","aria-label":"Flight session history",children:v.map((e,d)=>{const b=i?.sessionId===e.sessionId,x=l?.sessionId===e.sessionId;return s.jsxs("div",{className:"s-flight-observe-trace-step",children:[d>0&&s.jsx("span",{className:"s-flight-observe-trace-arrow","aria-hidden":"true",children:"→"}),s.jsxs("button",{type:"button",className:"s-flight-observe-session-chip","data-selected":b||x,"data-observe-role":b?"primary":x?"compare":"idle","aria-pressed":b||x,title:e.sessionId,onClick:()=>C(e.sessionId),children:[s.jsxs("span",{className:"s-flight-observe-session-chip-top",children:[s.jsx("span",{children:e.harness||e.transport||"session"}),s.jsx("time",{title:new Date(e.startedAt).toLocaleString(),children:$(e.startedAt)||F(e.startedAt)})]}),s.jsx("strong",{children:O(e.sessionId)}),s.jsx("small",{children:q(e,d)})]})]},`${e.sessionId}:${e.startedAt}:${d}`)})}),h&&!g&&s.jsx("div",{className:"s-flight-observe-message s-flight-observe-message--error",children:h}),h&&g&&s.jsxs("div",{className:"s-flight-observe-message",children:[s.jsx("strong",{children:"Flight record unavailable"}),s.jsx("span",{children:"Showing the concrete session captured by this link."})]}),!h&&n&&s.jsx("div",{className:"s-flight-observe-message",children:"Resolving the flight’s session trace…"}),!h&&!n&&a.length===0&&!g&&s.jsxs("div",{className:"s-flight-observe-message",children:[s.jsx("strong",{children:"Waiting for a session"}),s.jsx("span",{children:"The flight is stable here; its trace will appear as soon as a harness acknowledges dispatch."})]}),g&&!f&&s.jsx("main",{className:"s-flight-observe-single",children:s.jsx(j,{sessionRef:g,navigate:o})}),!h&&i&&l&&f&&s.jsxs("main",{className:"s-flight-observe-split",children:[s.jsxs("section",{className:"s-flight-observe-pane",children:[s.jsx(y,{label:"Primary session",sessions:a,value:i.sessionId,onChange:e=>m(e,e===l.sessionId?i.sessionId:l.sessionId)}),s.jsx("div",{className:"s-flight-observe-pane-content",children:s.jsx(j,{sessionRef:i.sessionId,navigate:o,showObserveRail:!1})})]}),s.jsxs("section",{className:"s-flight-observe-pane",children:[s.jsx(y,{label:"Compare session",sessions:a.filter(e=>e.sessionId!==i.sessionId),value:l.sessionId,onChange:e=>m(i.sessionId,e)}),s.jsx("div",{className:"s-flight-observe-pane-content",children:s.jsx(j,{sessionRef:l.sessionId,navigate:o,showObserveRail:!1})})]})]})]})}export{pe as FlightObserveScreen};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as o,j as r}from"./index-CzVeWScw.js";import{a as h}from"./api-h5zurxmi.js";import{t as p,r as c,m as g}from"./follow-route-BvcGtBIL.js";import{s as l}from"./router-B-K15T7B.js";/* empty css */import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-C3qU8tnY.js";function N({route:e,navigate:t}){const[d,m]=o.useState(null),i=o.useMemo(()=>p(e),[e]);return o.useEffect(()=>{let n=!1;const s=new URLSearchParams;return e.flightId&&s.set("flightId",e.flightId),e.invocationId&&s.set("invocationId",e.invocationId),e.conversationId&&s.set("conversationId",e.conversationId),e.workId&&s.set("workId",e.workId),e.sessionId&&s.set("sessionId",e.sessionId),e.targetAgentId&&s.set("targetAgentId",e.targetAgentId),(async()=>{try{const a=s.toString(),f=a?await h(`/api/follow?${a}`):i;if(n)return;t(l(c(g(f,i),e.preferredView),e.machineId??null))}catch(a){if(n)return;m(a instanceof Error?a.message:String(a)),t(l(c(i,e.preferredView),e.machineId??null))}})(),()=>{n=!0}},[i,t,e]),r.jsx("div",{className:"s-sessions-screen s-inbox-thread-redesign",children:r.jsx("section",{className:"s-thread-overview",children:r.jsxs("div",{className:"s-thread-overview-copy",children:[r.jsxs("div",{className:"s-sessions-header s-thread-overview-heading",children:[r.jsx("h2",{className:"s-page-title",children:"Follow"}),r.jsx("span",{className:"s-meta s-tabular",children:e.preferredView??"auto"})]}),r.jsx("p",{className:"s-thread-overview-summary",children:d?"Opening the closest available Scout view.":"Resolving Scout context..."})]})})})}export{N as FollowScreen};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as e}from"./index-CzVeWScw.js";function p(o){const i=o?.trim().toLowerCase();if(!i)return"unknown";const n=i.replace(/[\s(].*$/,"").replace(/[_-].*$/,""),l={anthropic:"claude",claude:"claude",claudecode:"claude",sonnet:"claude",opus:"claude",openai:"codex",codex:"codex",gpt:"codex",chatgpt:"codex",oai:"codex",xai:"grok",grok:"grok",kimi:"kimi",moonshot:"kimi",google:"gemini",gemini:"gemini",vertex:"gemini",cursor:"cursor",github:"github",opencode:"opencode",oc:"opencode",amp:"amp",sourcegraph:"amp",pi:"pi",inflection:"pi",omp:"pi","oh-my-pi":"pi",claw:"claw",native:"native",worker:"worker",quad:"quad"};return l[n]??l[i.replace(/[\s(].*$/,"")]??i}const m={claude:"Claude",codex:"Codex",grok:"Grok",kimi:"Kimi",gemini:"Gemini",cursor:"Cursor",github:"GitHub",opencode:"OpenCode",amp:"Amp",pi:"Pi",claw:"Claw",native:"Native",worker:"Worker",quad:"Quad"};function g(o){const i=p(o);return m[i]??(o?.trim()||"Unknown")}const c={fill:{fill:"currentColor"},line:{fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},t={claude:"m4.7144 15.9555 4.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608 1.5179.1032 2.2767.1578 1.6514.0972 2.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973 9.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686 1.9064 1.4754 2.4893 1.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335 6.6997 0l.9957.1336.419.3642.6192 1.4147 1.0018 2.2282 1.5543 3.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853 1.8517-.5586 2.9021-.3643 1.9429h.2125l.2429-.2429.9835-1.3053 1.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759 1.1293-.34 1.1657-1.0625 1.3478-.8804 1.1414-1.2628 1.7-.7893 1.36.0729.1093.1882-.0183 2.8535-.607 1.5421-.2794 1.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607 1.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929 1.0686 2.0035 1.8092 2.5075 2.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496 2.3436 3.5214.1214 1.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38 17.959l-1.1414-1.9428-.1397.079-.674 7.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328 1.9672-2.1796 2.9446-1.7243 1.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889 2.386-3.0357 1.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385 4.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429 1.9064-1.3114Z",gemini:"M11.04 19.32Q12 21.51 12 24q0-2.49.93-4.68.96-2.19 2.58-3.81t3.81-2.55Q21.51 12 24 12q-2.49 0-4.68-.93a12.3 12.3 0 0 1-3.81-2.58 12.3 12.3 0 0 1-2.58-3.81Q12 2.49 12 0q0 2.49-.96 4.68-.93 2.19-2.55 3.81a12.3 12.3 0 0 1-3.81 2.58Q2.49 12 0 12q2.49 0 4.68.96 2.19.93 3.81 2.55t2.55 3.81",cursor:"M11.503.131 1.891 5.678a.84.84 0 0 0-.42.726v11.188c0 .3.162.575.42.724l9.609 5.55a1 1 0 0 0 .998 0l9.61-5.55a.84.84 0 0 0 .42-.724V6.404a.84.84 0 0 0-.42-.726L12.497.131a1.01 1.01 0 0 0-.996 0M2.657 6.338h18.55c.263 0 .43.287.297.515L12.23 22.918c-.062.107-.229.064-.229-.06V12.335a.59.59 0 0 0-.295-.51l-9.11-5.257c-.109-.063-.064-.23.061-.23",github:"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12",opencode:"M22 24H2V0h20zM17 4.8H7v14.4h10z"},r=o=>e.jsx("path",{d:o,fill:"currentColor"}),k={amp:{viewBox:"0.6 1.4 8.8 8.8",paths:["M2.37694 9.23487L4.34679 7.23716L5.06365 9.95891L6.10505 9.67408L5.06749 5.72214L1.17831 4.6688L0.901367 5.73289L3.5775 6.45984L1.61584 8.45465L2.37694 9.23487Z","M8.05742 6.91898L9.09885 6.63416L8.0613 2.68224L4.17209 1.62891L3.89515 2.693L7.17936 3.58514L8.05742 6.91898Z","M6.56226 8.43797L7.60365 8.15314L6.5661 4.20121L2.67692 3.14787L2.39998 4.21196L5.68416 5.10411L6.56226 8.43797Z"]},grok:{viewBox:"0 0 34 33",paths:["M13.2371 21.0407L24.3186 12.8506C24.8619 12.4491 25.6384 12.6057 25.8973 13.2294C27.2597 16.5185 26.651 20.4712 23.9403 23.1851C21.2297 25.8989 17.4581 26.4941 14.0108 25.1386L10.2449 26.8843C15.6463 30.5806 22.2053 29.6665 26.304 25.5601C29.5551 22.3051 30.562 17.8683 29.6205 13.8673L29.629 13.8758C28.2637 7.99809 29.9647 5.64871 33.449 0.844576C33.5314 0.730667 33.6139 0.616757 33.6964 0.5L29.1113 5.09055V5.07631L13.2343 21.0436","M10.9503 23.0313C7.07343 19.3235 7.74185 13.5853 11.0498 10.2763C13.4959 7.82722 17.5036 6.82767 21.0021 8.2971L24.7595 6.55998C24.0826 6.07017 23.215 5.54334 22.2195 5.17313C17.7198 3.31926 12.3326 4.24192 8.67479 7.90126C5.15635 11.4239 4.0499 16.8403 5.94992 21.4622C7.36924 24.9165 5.04257 27.3598 2.69884 29.826C1.86829 30.7002 1.0349 31.5745 0.36364 32.5L10.9474 23.0341"]}},C=e.jsx("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M8.086.457a6.105 6.105 0 013.046-.415c1.333.153 2.521.72 3.564 1.7a.117.117 0 00.107.029c1.408-.346 2.762-.224 4.061.366l.063.03.154.076c1.357.703 2.33 1.77 2.918 3.198.278.679.418 1.388.421 2.126a5.655 5.655 0 01-.18 1.631.167.167 0 00.04.155 5.982 5.982 0 011.578 2.891c.385 1.901-.01 3.615-1.183 5.14l-.182.22a6.063 6.063 0 01-2.934 1.851.162.162 0 00-.108.102c-.255.736-.511 1.364-.987 1.992-1.199 1.582-2.962 2.462-4.948 2.451-1.583-.008-2.986-.587-4.21-1.736a.145.145 0 00-.14-.032c-.518.167-1.04.191-1.604.185a5.924 5.924 0 01-2.595-.622 6.058 6.058 0 01-2.146-1.781c-.203-.269-.404-.522-.551-.821a7.74 7.74 0 01-.495-1.283 6.11 6.11 0 01-.017-3.064.166.166 0 00.008-.074.115.115 0 00-.037-.064 5.958 5.958 0 01-1.38-2.202 5.196 5.196 0 01-.333-1.589 6.915 6.915 0 01.188-2.132c.45-1.484 1.309-2.648 2.577-3.493.282-.188.55-.334.802-.438.286-.12.573-.22.861-.304a.129.129 0 00.087-.087A6.016 6.016 0 015.635 2.31C6.315 1.464 7.132.846 8.086.457zm-.804 7.85a.848.848 0 00-1.473.842l1.694 2.965-1.688 2.848a.849.849 0 001.46.864l1.94-3.272a.849.849 0 00.007-.854l-1.94-3.393zm5.446 6.24a.849.849 0 000 1.695h4.848a.849.849 0 000-1.696h-4.848z"}),j=e.jsxs("g",{fill:"currentColor",children:[e.jsx("path",{d:"M4.5 3h3.4v7.4L14.7 3h4.5l-7.9 8.5L19.8 21h-4.6l-7.3-8.2V21H4.5Z"}),e.jsx("circle",{cx:"20.2",cy:"3.8",r:"1.8"})]}),v=e.jsxs("g",{...c.line,strokeWidth:2,children:[e.jsx("path",{d:"M6.5 8.5h11"}),e.jsx("path",{d:"M10 8.5 9 17M14.2 8.5 15.2 17"})]}),w=e.jsxs("g",{...c.line,children:[e.jsx("path",{d:"M6.5 8 11 12l-4.5 4"}),e.jsx("path",{d:"M12.5 16.5H18",strokeWidth:1.8})]}),M=e.jsxs("g",{...c.line,strokeWidth:1.8,children:[e.jsx("path",{d:"M12 4.5 18.5 8.2v7.6L12 19.5 5.5 15.8V8.2L12 4.5Z"}),e.jsx("circle",{cx:12,cy:12,r:2.7})]}),y=e.jsxs("g",{...c.fill,children:[e.jsx("rect",{x:5.5,y:5.5,width:5.4,height:5.4,rx:1.3}),e.jsx("rect",{x:13.1,y:5.5,width:5.4,height:5.4,rx:1.3}),e.jsx("rect",{x:5.5,y:13.1,width:5.4,height:5.4,rx:1.3}),e.jsx("rect",{x:13.1,y:13.1,width:5.4,height:5.4,rx:1.3})]}),f=e.jsxs("g",{...c.line,strokeWidth:2,children:[e.jsx("path",{d:"M7.5 6Q9.5 12 8.5 18"}),e.jsx("path",{d:"M12 5.5Q14 12 13 18.5"}),e.jsx("path",{d:"M16.5 6Q18.5 12 17.5 18"})]}),b={claude:r(t.claude),codex:C,kimi:j,gemini:r(t.gemini),cursor:r(t.cursor),github:r(t.github),opencode:r(t.opencode),pi:v,native:w,worker:M,quad:y,claw:f};function G({harness:o,size:i=14,className:n,style:l,title:d}){const a=p(o),s=k[a],x=b[a],h=d===null?void 0:d??g(o);return e.jsx("span",{className:n,style:l,title:h,"aria-hidden":h?void 0:!0,children:e.jsx("svg",{viewBox:s?.viewBox??"0 0 24 24",width:i,height:i,style:{display:"block"},role:"img","aria-label":h,children:s?s.paths.map((u,L)=>e.jsx("path",{d:u,fill:"currentColor"},L)):x??e.jsx("text",{x:"12",y:"12",textAnchor:"middle",dominantBaseline:"central",fontSize:"13",fontWeight:"600",fontFamily:"var(--font-mono)",fill:"currentColor",children:(a[0]??"?").toUpperCase()})})})}export{G as H,g as h};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as u,j as e}from"./index-CzVeWScw.js";import{H as R,h as q}from"./HarnessMark-BE-YSyci.js";import{a as M}from"./api-h5zurxmi.js";import{b as D}from"./router-B-K15T7B.js";import{t as O,n as S,f as L}from"./time-Dhsh_2EG.js";import{u as P}from"./Provider-DSsb2gLR.js";import{u as T}from"./useContentSecondaryNav-BX7Sq7vy.js";import{OpsSubnav as E}from"./OpsSubnav-D5Bpowtk.js";/* empty css */import{R as U}from"./refresh-cw-4oeFn1Jn.js";import{E as $}from"./external-link-CnaI1QFS.js";import{c as H}from"./createLucideIcon-ClCdc3F9.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-C3qU8tnY.js";import"./sse-QcU9bikk.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-N-Z6X0Z1.js";import"./DocumentFocusViewer-BCG2kOmd.js";import"./TextDocumentSurface-DRjctOIt.js";/* empty css */import"./file-text-DG-pufl1.js";import"./x-D4X_y1j_.js";import"./chevron-right-CNE6QAVr.js";import"./code-xml--LjSM4Mv.js";import"./arrow-left-_vS7itsV.js";import"./scout-voice-S5_YZ2v8.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BJnFoFDP.js";import"./MessageComposerSuggestions-Cs9u-F_3.js";import"./NewChatComposer-DXDxV2Mh.js";import"./runtime-picker-BCQD7d4K.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-Byb9kSFx.js";import"./index-Dewd56RX.js";import"./conversation-model-CHwHZNw-.js";import"./NewChatOrigin-CnjoswTG.js";import"./model-Co0zkMIc.js";import"./text-DsBWV_4k.js";import"./chevron-down-DRCbnzyY.js";import"./search-C3bSJluv.js";import"./chunk-HRAB3GC3-CAeEKaf5.js";import"./SecondaryNav-Hv5AJ3Fv.js";import"./secondaryNavConfig-Bg4Tc0gT.js";import"./message-square-CIXda-Y7.js";import"./terminal-DrTkVXIj.js";import"./scroll-text-BV-BB7v-.js";/* empty css */const _=[["path",{d:"M11 14h10",key:"1w8e9d"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v1.344",key:"1e62lh"}],["path",{d:"m17 18 4-4-4-4",key:"z2g111"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113",key:"bjbb7m"}],["rect",{x:"8",y:"2",width:"8",height:"4",rx:"1",key:"ublpy"}]],z=H("clipboard-paste",_),B={codex:"Codex",claude:"Claude",kimi:"Kimi",minimax:"MiniMax",cursor:"Cursor",native:"Native",worker:"Worker",bridge:"Bridge",http:"HTTP",pi:"Pi",flue:"Flue",github:"GitHub",unknown:"Unknown"},C=[{id:"claude",description:"Anthropic plan windows captured from Claude Code.",links:[{label:"Usage",href:"https://claude.ai/settings/usage"},{label:"Manage plan",href:"https://claude.ai/settings/billing"}]},{id:"codex",description:"OpenAI plan windows reported by local Codex sessions.",links:[{label:"Usage",href:"https://chatgpt.com/codex/settings/usage"},{label:"Open Codex",href:"https://chatgpt.com/codex"}]},{id:"kimi",description:"Kimi Code subscription windows and membership level.",links:[{label:"Kimi Code",href:"https://www.kimi.com/code"},{label:"Docs",href:"https://www.kimi.com/code/docs/en/"}]},{id:"grok",description:"SuperGrok quota reported by local Grok, with dashboard capture and local activity as fallbacks.",links:[{label:"Open Grok",href:"https://grok.com/"},{label:"Billing",href:"https://grok.com/?_s=billing"},{label:"Help",href:"https://docs.x.ai/grok/faq"}]},{id:"minimax",description:"MiniMax Token Plan 5-hour and weekly allowance.",links:[{label:"Usage",href:"https://platform.minimax.io/console/plan"},{label:"Docs",href:"https://platform.minimax.io/docs/token-plan/intro"}]},{id:"cursor",description:"Cursor membership detected locally, plus usage totals from an exported dashboard capture.",links:[{label:"Usage",href:"https://cursor.com/dashboard/usage"},{label:"Manage plan",href:"https://cursor.com/dashboard/billing"}]}],G={cloudflare:[{label:"Dashboard",href:"https://dash.cloudflare.com/"},{label:"Billing",href:"https://dash.cloudflare.com/?to=/:account/billing"}],vercel:[{label:"Dashboard",href:"https://vercel.com/dashboard"},{label:"Billing",href:"https://vercel.com/account/billing"}],exe:[{label:"VMs",href:"https://exe.dev/"},{label:"Billing",href:"https://exe.dev/user/billing"},{label:"Docs",href:"https://exe.dev/docs/what-is-exe"}]},V={exe:{category:"Agent compute",description:"Persistent VMs for remote Scout agents and isolated workloads."},cloudflare:{category:"Edge platform",description:"Workers, networking, and edge infrastructure available for deployment."},vercel:{category:"App hosting",description:"Projects, preview environments, and production deployments."}};function W({provider:s}){return e.jsx("span",{className:`hs-cloud-mark hs-cloud-mark--${s}`,"aria-hidden":"true",children:s==="exe"?e.jsx("img",{src:"https://exe.dev/apple-touch-icon.png",alt:"",loading:"lazy",decoding:"async",referrerPolicy:"no-referrer"}):e.jsx("svg",{viewBox:"0 0 24 24",focusable:"false",children:s==="cloudflare"?e.jsx("path",{d:"M16.5088 16.8447c.1475-.5068.0908-.9707-.1553-1.3154-.2246-.3164-.6045-.499-1.0615-.5205l-8.6592-.1123a.1559.1559 0 0 1-.1333-.0713c-.0283-.042-.0351-.0986-.021-.1553.0278-.084.1123-.1484.2036-.1562l8.7359-.1123c1.0351-.0489 2.1601-.8868 2.5537-1.9136l.499-1.3013c.0215-.0561.0293-.1128.0147-.168-.5625-2.5463-2.835-4.4453-5.5499-4.4453-2.5039 0-4.6284 1.6177-5.3876 3.8614-.4927-.3658-1.1187-.5625-1.794-.499-1.2026.119-2.1665 1.083-2.2861 2.2856-.0283.31-.0069.6128.0635.894C1.5683 13.171 0 14.7754 0 16.752c0 .1748.0142.3515.0352.5273.0141.083.0844.1475.1689.1475h15.9814c.0909 0 .1758-.0645.2032-.1553l.12-.4268Zm2.7568-5.5634c-.0771 0-.1611 0-.2383.0112-.0566 0-.1054.0415-.127.0976l-.3378 1.1744c-.1475.5068-.0918.9707.1543 1.3164.2256.3164.6055.498 1.0625.5195l1.8437.1133c.0557 0 .1055.0263.1329.0703.0283.043.0351.1074.0214.1562-.0283.084-.1132.1485-.204.1553l-1.921.1123c-1.041.0488-2.1582.8867-2.5527 1.914l-.1406.3585c-.0283.0713.0215.1416.0986.1416h6.5977c.0771 0 .1474-.0489.169-.126.1122-.4082.1757-.837.1757-1.2803 0-2.6025-2.125-4.727-4.7344-4.727"}):e.jsx("path",{d:"m12 1.608 12 20.784H0Z"})})})}function F(s){const t=(s??"").trim().toLowerCase();return t?t.includes("claude")?"claude":t.includes("codex")?"codex":t.includes("cursor")?"cursor":t.includes("kimi")||t.includes("moonshot")?"kimi":t.includes("minimax")?"minimax":t.includes("github")?"github":t.replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")||"unknown":"unknown"}function N(s){return B[s]??q(s)}function K(s){switch(s){case"weekly":return"7d";case"req/h":return"1h";default:return s||"quota"}}function v(s){return s.windows&&s.windows.length>0?s.windows:[{label:K(s.unitLabel),fill:s.fill,usedLabel:s.usedLabel,capLabel:s.capLabel,unitLabel:s.unitLabel,resetAt:s.resetAt}]}function Q(s){return s.capLabel==="100%"&&s.usedLabel.endsWith("%")?s.usedLabel:`${s.usedLabel}/${s.capLabel}`}function A(s){return s>=.9?"err":s>=.75?"warn":"ok"}function Z(s,t=30){const a=s??[];if(a.length<=t)return a;if(t<=1)return[a[a.length-1]];const r=(a.length-1)/(t-1);return Array.from({length:t},(n,o)=>a[Math.round(o*r)])}function I(s){const t=Math.floor((s-Date.now())/1e3),a=t<0,r=Math.abs(t);let n;if(r>=86400){const o=Math.floor(r/86400),c=Math.floor(r%86400/3600);n=c>0?`${o}d ${c}h`:`${o}d`}else if(r>=3600){const o=Math.floor(r/3600),c=Math.floor(r%3600/60);n=c>0?`${o}h ${c}m`:`${o}h`}else n=`${Math.max(1,Math.floor(r/60))}m`;return a?`stale ${n}`:n}function J(s){if(!s)return null;const t=S(s.capturedAt);if(t)return t;if(s.kind!=="quota")return null;const a=v(s).reduce((r,n)=>{const o=S(n.capturedAt);return Math.max(r??0,o??0)||r},null);return a||v(s).flatMap(r=>r.history??[]).reduce((r,n)=>{const o=S(n.capturedAt);return Math.max(r??0,o??0)||r},null)}function X({provider:s,onImported:t}){const[a,r]=u.useState(!1),[n,o]=u.useState(""),[c,b]=u.useState(!1),[i,d]=u.useState(null),l=`hs-${s}-dashboard-capture`,m=N(s);if(!a)return e.jsxs("button",{type:"button",className:"hs-dashboard-capture-trigger",onClick:()=>r(!0),children:[e.jsx(z,{size:12,"aria-hidden":"true"}),"Import dashboard"]});const x=async p=>{if(p.preventDefault(),!(!n.trim()||c)){b(!0),d(null);try{await M("/api/service-budgets/dashboard-import",{method:"POST",body:JSON.stringify({provider:s,text:n})}),o(""),d("Usage snapshot imported."),await t()}catch(h){d(h instanceof Error?h.message:String(h))}finally{b(!1)}}};return e.jsxs("form",{className:"hs-dashboard-capture",onSubmit:p=>{x(p)},children:[e.jsxs("label",{htmlFor:l,children:[m," usage snapshot"]}),e.jsxs("p",{children:[s==="cursor"?"Paste the exported Usage CSV or copied usage table.":"Copy the signed-in Usage panel and paste it here."," ","Scout keeps only normalized totals, not this text."]}),e.jsx("textarea",{id:l,value:n,onChange:p=>o(p.target.value),maxLength:128*1024,rows:5,placeholder:s==="cursor"?"Date (UTC),Type,Model,Tokens,Cost…":"Weekly SuperGrok… Limit · 12% used · Resets…","aria-describedby":i?`${l}-message`:void 0}),i?e.jsx("span",{id:`${l}-message`,className:"hs-dashboard-capture-message",role:"status",children:i}):null,e.jsxs("div",{className:"hs-dashboard-capture-actions",children:[e.jsx("button",{type:"button",onClick:()=>{r(!1),d(null)},disabled:c,children:"Cancel"}),e.jsx("button",{type:"submit",disabled:!n.trim()||c,children:c?"Importing…":"Use snapshot"})]})]})}function Y(s){const t=new Map(s.map(a=>[F(a.id),a]));return C.map(({id:a})=>({id:a,label:N(a),gauge:t.get(a)??null}))}function ee({points:s}){const t=Z(s);return t.length===0?e.jsx("span",{className:"hs-history hs-history-empty",children:"live"}):e.jsx("span",{className:"hs-history","aria-label":`${t.length} budget samples`,children:t.map((a,r)=>{const n=Math.max(.06,Math.min(1,a.fill));return e.jsx("span",{className:`hs-history-bar hs-history-bar--${A(a.fill)}`,style:{height:`${Math.round(n*100)}%`},title:`${L(a.capturedAt)||"unknown"} ${a.usedLabel}`},`${a.capturedAt}:${r}`)})})}function se({gauge:s,window:t}){const a=Math.max(0,Math.min(100,Math.round(t.fill*100))),r=100-a,n=A(t.fill),o=Number.isFinite(t.resetAt)?new Date(t.resetAt).toISOString():void 0;return e.jsxs("div",{className:"hs-subscription-window",children:[e.jsxs("div",{className:"hs-subscription-window-head",children:[e.jsxs("div",{children:[e.jsxs("span",{className:"hs-subscription-window-label",children:[t.label," window"]}),e.jsxs("strong",{className:`hs-subscription-usage hs-subscription-usage--${n}`,children:[a,"% used"]})]}),e.jsxs("div",{className:"hs-subscription-remaining",children:[e.jsxs("strong",{children:[r,"%"]}),e.jsx("span",{children:"available"})]})]}),e.jsx("div",{className:"hs-subscription-meter",role:"progressbar","aria-label":`${s.label} ${t.label} usage`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":a,children:e.jsx("span",{className:`hs-subscription-meter-fill hs-subscription-meter-fill--${n}`,style:{width:`${a}%`}})}),e.jsxs("div",{className:"hs-subscription-window-meta",children:[e.jsxs("span",{children:[Q(t)," ",t.unitLabel==="quota"?"quota":t.unitLabel]}),e.jsxs("span",{children:["resets in ",I(t.resetAt),o?e.jsx("time",{dateTime:o,title:L(t.resetAt)||void 0,children:` · ${L(t.resetAt)||""}`}):null]})]}),e.jsx(ee,{points:t.history})]})}function te(){return e.jsxs("div",{className:"hs-subscription-loading","aria-hidden":"true",children:[e.jsx("span",{className:"hs-loading-line hs-loading-line--label"}),e.jsx("span",{className:"hs-loading-line hs-loading-line--value"}),e.jsx("span",{className:"hs-loading-meter"}),e.jsx("span",{className:"hs-loading-line hs-loading-line--meta"}),e.jsx("span",{className:"hs-loading-history"})]})}function ae({rows:s,loading:t,onImported:a}){const r=C.map(i=>({provider:i,row:s.find(d=>d.id===i.id)??null})),n=r.filter(({row:i})=>i?.gauge).length,o=r.filter(({row:i})=>i?.gauge?.kind==="quota").length,c=r.filter(({row:i})=>i?.gauge?.kind==="quota"&&i.gauge.plan||i?.gauge?.kind==="status").length,b=r.flatMap(({row:i})=>i?.gauge?.kind==="quota"?v(i.gauge):[]).map(i=>i.resetAt).filter(i=>i>Date.now()).sort((i,d)=>i-d)[0];return e.jsxs("section",{className:"hs-subscriptions","aria-labelledby":"hs-subscriptions-title","aria-busy":t,children:[e.jsxs("div",{className:"hs-section-head hs-subscriptions-head",children:[e.jsxs("div",{children:[e.jsx("h3",{id:"hs-subscriptions-title",children:"Subscriptions"}),e.jsx("p",{children:"Plans, remaining allowance, reset windows, and the fastest path to each provider dashboard."})]}),e.jsxs("div",{className:"hs-subscription-summary","aria-label":"Subscription feed summary",children:[e.jsxs("span",{children:[e.jsx("strong",{children:t?"—":n})," detected"]}),e.jsxs("span",{children:[e.jsx("strong",{children:t?"—":o})," usage feeds"]}),e.jsxs("span",{children:[e.jsx("strong",{children:t?"—":c})," plans named"]}),e.jsxs("span",{children:[e.jsx("strong",{children:t?"—":b?I(b):"-"})," next reset"]})]})]}),e.jsx("div",{className:"hs-subscription-grid",children:r.map(({provider:i,row:d})=>{const l=d?.gauge??null,m=t&&!l,x=m?"loading":l?"connected":"missing",p=l?.kind==="quota"?l.plan:l?.kind==="status"?l.statusLabel:null,h=J(l),y=l?.kind==="quota"?"Usage connected":l?.kind==="status"?l.detailLabel||"Subscription detected":m?"Checking":"Not detected";return e.jsxs("article",{className:`hs-subscription-card hs-subscription-card--${x}`,children:[e.jsxs("header",{className:"hs-subscription-card-head",children:[e.jsxs("div",{className:"hs-subscription-provider",children:[e.jsx(R,{harness:i.id,size:18,title:null,className:"hs-subscription-mark"}),e.jsxs("div",{children:[e.jsx("h4",{children:N(i.id)}),e.jsx("span",{children:m?"Checking local plan…":p||"Plan not reported"})]})]}),e.jsx("span",{className:`hs-subscription-state hs-subscription-state--${x}`,children:y})]}),e.jsx("p",{className:"hs-subscription-description",children:i.description}),m?e.jsx(te,{}):l?.kind==="quota"?e.jsx("div",{className:"hs-subscription-windows",children:v(l).map(f=>e.jsx(se,{gauge:l,window:f},`${i.id}:${f.label}`))}):l?.kind==="status"?e.jsxs("div",{className:"hs-subscription-status-detail",children:[e.jsx("strong",{children:l.statusLabel}),e.jsx("span",{children:l.detailLabel||"Subscription detected locally. Open the provider dashboard for live usage."})]}):e.jsxs("div",{className:"hs-subscription-missing",children:[e.jsx("strong",{children:"No local subscription feed yet"}),e.jsx("span",{children:"Open the provider locally, then refresh Scout."})]}),i.id==="cursor"||i.id==="grok"&&l?.kind!=="quota"?e.jsx(X,{provider:i.id,onImported:a}):null,e.jsxs("footer",{className:"hs-subscription-footer",children:[e.jsxs("span",{children:[m?"checking local feed":h?`updated ${O(h)||"now"}`:l?"detected locally":"waiting for provider data",l?.source?` · ${l.source}`:""]}),e.jsx("nav",{"aria-label":`${N(i.id)} quick links`,children:i.links.map(f=>e.jsxs("a",{href:f.href,target:"_blank",rel:"noreferrer",children:[f.label,e.jsx($,{size:11,"aria-hidden":"true"})]},f.href))})]})]},i.id)})})]})}function re({accounts:s,loading:t}){return s.length===0&&!t?null:e.jsxs("section",{className:"hs-cloud-accounts","aria-labelledby":"hs-cloud-accounts-title","aria-busy":t,children:[e.jsxs("div",{className:"hs-section-head hs-cloud-accounts-head",children:[e.jsxs("div",{children:[e.jsx("h3",{id:"hs-cloud-accounts-title",children:"Cloud accounts"}),e.jsx("p",{children:"Infrastructure available to Scout for deployment and agent compute."})]}),e.jsx("span",{className:"hs-section-meta",children:t?"checking accounts":`${s.length} connected`})]}),e.jsxs("div",{className:"hs-cloud-grid",children:[t&&s.length===0?Array.from({length:3},(a,r)=>e.jsxs("article",{className:"hs-cloud-card hs-cloud-card--loading","aria-hidden":"true",children:[e.jsxs("header",{className:"hs-cloud-card-head",children:[e.jsx("span",{className:"hs-loading-mark"}),e.jsx("span",{className:"hs-loading-line hs-loading-line--cloud-title"})]}),e.jsx("span",{className:"hs-loading-line hs-loading-line--cloud-copy"}),e.jsxs("footer",{className:"hs-cloud-card-footer",children:[e.jsx("span",{className:"hs-loading-line hs-loading-line--cloud-meta"}),e.jsx("span",{className:"hs-loading-actions"})]})]},r)):null,s.map(a=>{const r=V[a.id];return e.jsxs("article",{className:"hs-cloud-card",children:[e.jsxs("header",{className:"hs-cloud-card-head",children:[e.jsxs("div",{className:"hs-cloud-identity",children:[e.jsx(W,{provider:a.id}),e.jsxs("div",{children:[e.jsx("span",{className:"hs-cloud-category",children:r.category}),e.jsx("h4",{children:a.label})]})]}),e.jsx("span",{className:"hs-subscription-state hs-subscription-state--connected",children:a.statusLabel})]}),e.jsx("p",{className:"hs-cloud-description",children:r.description}),e.jsxs("footer",{className:"hs-cloud-card-footer",children:[e.jsxs("span",{className:"hs-cloud-connection",children:[e.jsx("span",{className:"hs-cloud-dot","aria-hidden":"true"}),a.detailLabel]}),e.jsx("nav",{"aria-label":`${a.label} quick links`,children:G[a.id].map(n=>e.jsxs("a",{href:n.href,target:"_blank",rel:"noreferrer",children:[n.label,e.jsx($,{size:11,"aria-hidden":"true"})]},n.href))})]})]},a.id)})]})]})}function ss({navigate:s}){const{route:t}=P(),a=D(t),[r,n]=u.useState([]),[o,c]=u.useState([]),[b,i]=u.useState(!0),[d,l]=u.useState(!1),[m,x]=u.useState(null),p=u.useRef(0),h=u.useCallback(async(g=!1,k=!1)=>{const w=++p.current;k&&i(!0),l(!0),x(null);try{const j=await M(`/api/service-budgets${g?"?refresh=1":""}`);if(w!==p.current)return;n(j.gauges??[]),c(j.cloudAccounts??[])}catch(j){w===p.current&&x(j instanceof Error?j.message:String(j))}finally{w===p.current&&(i(!1),l(!1))}},[]);u.useEffect(()=>{let g=!1,k;return h(!1,!0).then(()=>{g||(k=window.setTimeout(()=>{h(!0)},600))}),()=>{g=!0,k!==void 0&&window.clearTimeout(k)}},[h]),u.useEffect(()=>{const g=window.setInterval(()=>{h(!1)},3e4);return()=>window.clearInterval(g)},[h]);const y=u.useMemo(()=>Y(r),[r]),f=T();return e.jsxs("div",{className:"s-ops",children:[f?e.jsx("div",{className:"s-ops-header",children:e.jsx(E,{activeRoute:{view:"harnesses",...a?{machineId:a}:{}},navigate:s})}):null,e.jsx("div",{className:"s-ops-body hs-body",children:e.jsxs("div",{className:"hs-page",children:[e.jsxs("header",{className:"hs-page-head",children:[e.jsxs("div",{className:"hs-title-group",children:[e.jsx("span",{className:"hs-kicker",children:"ops / provider central"}),e.jsx("h2",{children:"Agent Providers"}),e.jsx("p",{children:"See what you pay for, how much remains, and where to use it."})]}),e.jsxs("button",{type:"button",className:"hs-refresh",disabled:d,onClick:()=>{h(!0)},children:[e.jsx(U,{size:14,className:d?"hs-refresh-icon-spinning":"","aria-hidden":"true"}),e.jsx("span",{children:d?"Refreshing":"Refresh"})]})]}),m&&e.jsxs("div",{className:"hs-error",role:"status","aria-live":"polite",children:["refresh: ",m]}),e.jsx(ae,{rows:y,loading:b,onImported:()=>h(!1)}),e.jsx(re,{accounts:o,loading:b})]})})]})}export{ss as HarnessesScreen};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{r as d,j as e}from"./index-CzVeWScw.js";import{L as K,u as X}from"./chunk-YOZR3KYS-DLOc92uD.js";import{c as Q}from"./clipboard-e3fSpeo7.js";import{e as A}from"./terminal-sessions-C3qU8tnY.js";import{a as C}from"./api-h5zurxmi.js";import{H as D}from"./HarnessMark-BE-YSyci.js";import{T as H}from"./terminal-DrTkVXIj.js";import{R as V}from"./refresh-cw-4oeFn1Jn.js";import{C as Z}from"./check-COxArFXG.js";import{C as ee}from"./copy-4LfKIdQJ.js";import{E as G}from"./eye-BFlhMzQL.js";import{c as te}from"./createLucideIcon-ClCdc3F9.js";import{X as se}from"./x-D4X_y1j_.js";const ne=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"22",x2:"18",y1:"12",y2:"12",key:"l9bcsi"}],["line",{x1:"6",x2:"2",y1:"12",y2:"12",key:"13hhkx"}],["line",{x1:"12",x2:"12",y1:"6",y2:"2",key:"10w3f3"}],["line",{x1:"12",x2:"12",y1:"22",y2:"18",key:"15g9kq"}]],J=te("crosshair",ne);async function re(){return C("/api/terminal-hosts")}async function ae(t,s){return C(`/api/terminal-hosts/${encodeURIComponent(t)}/sessions`,{method:"POST",body:JSON.stringify(s)})}let $=null,O=null;function ie(){return $?Promise.resolve($):(O??=re().then(t=>($=t,t)).finally(()=>{O=null}),O)}function Ae(){const[t,s]=d.useState($);return d.useEffect(()=>{if(t)return;let n=!1;return ie().then(a=>{n||s(a)}).catch(()=>{}),()=>{n=!0}},[t]),{hosts:t?.hosts??[],preferredHostId:t?.preferredHostId??null,loaded:t!==null}}async function le(t){return(await C(`/api/terminal-hosts/herdr/sessions/${encodeURIComponent(t)}/topology`)).topology}async function F(t,s){await C(`/api/terminal-hosts/herdr/sessions/${encodeURIComponent(t)}/focus`,{method:"POST",body:JSON.stringify({target:s})})}async function Y(t,s,n=48){const a=new URLSearchParams({backend:"herdr",sessionName:t,paneId:s,lines:String(n)}),i=await C(`/api/terminal-sessions/peek?${a.toString()}`);return i.available?{body:i.body,reason:null}:{body:null,reason:i.reason??"No preview available."}}const oe=3e3;function ce(t,s,n={}){const a=n.enabled??!0,i=n.lines??48,c=n.pollMs??oe,[p,m]=d.useState(null),[u,o]=d.useState(0);return d.useEffect(()=>{if(!t||!s||!a)return;let l=!1;m(null);const b=()=>{Y(t,s,i).then(h=>{l||m(h)}).catch(h=>{if(l)return;const r=h instanceof Error?h.message:String(h);m(g=>({body:g?.body??null,reason:r}))})};b();const j=window.setInterval(()=>{document.visibilityState!=="hidden"&&b()},c);return()=>{l=!0,window.clearInterval(j)}},[t,s,i,a,c,u]),{body:p?.body??null,reason:p?.reason??null,loading:p===null,refresh:()=>o(l=>l+1)}}const de=15e3;function ue(t,s,n={}){const a=n.enabled??!0,i=n.lines??6,c=n.pollMs??de,[p,m]=d.useState({}),u=s.join(`
|
|
2
|
+
`);return d.useEffect(()=>{const o=u?u.split(`
|
|
3
|
+
`):[];if(!t||!a||o.length===0)return;let l=!1;const b=()=>{Promise.all(o.map(async h=>{try{const r=await Y(t,h,i);return[h,r.body]}catch{return[h,void 0]}})).then(h=>{l||m(r=>{const g={};for(const[S,k]of h)g[S]=k===void 0?r[S]??null:k;return g})})};b();const j=window.setInterval(()=>{document.visibilityState!=="hidden"&&b()},c);return()=>{l=!0,window.clearInterval(j)}},[t,u,i,a,c]),p}const he=3e3;function pe(t,s={}){const n=s.enabled??!0,a=s.pollMs??he,[i,c]=d.useState(null),[p,m]=d.useState(null),[u,o]=d.useState(0);return d.useEffect(()=>{if(!t||!n)return;let l=!1;const b=()=>{le(t).then(h=>{l||(c(h),m(null))}).catch(h=>{l||m(h instanceof Error?h.message:String(h))})};b();const j=window.setInterval(()=>{document.visibilityState!=="hidden"&&b()},a);return()=>{l=!0,window.clearInterval(j)}},[t,n,a,u]),{topology:i,error:p,refresh:()=>o(l=>l+1)}}const me={column:"status",direction:"desc"},z=[{id:"pane",label:"Pane",initialDirection:"asc"},{id:"harness",label:"Harness",initialDirection:"asc"},{id:"status",label:"Status",initialDirection:"desc"},{id:"directory",label:"Directory",initialDirection:"asc"},{id:"tab",label:"Tab",initialDirection:"asc"},{id:"drift",label:"Drift",initialDirection:"desc"},{id:"output",label:"Last output",initialDirection:"asc"}];function U(t){switch(t){case"working":return 4;case"blocked":return 3;case"idle":return 2;case"done":return 1;case"unknown":return 0}}function T(t){return t.label??t.paneId}function M(t){return t.foregroundCwd??t.cwd??""}function R(t){return t.scroll?.offsetFromBottom??null}function L(t){if(!t)return null;const n=t.replace(/\x1b\[[0-9;?]*[ -/]*[@-~]/g,"").split(`
|
|
4
|
+
`);for(let a=n.length-1;a>=0;a-=1){const i=n[a].trim();if(i)return i}return null}function N(t,s){return t.localeCompare(s,void 0,{numeric:!0,sensitivity:"base"})}function be(t,s){const n=s.direction==="asc"?1:-1;return[...t].sort((a,i)=>{const c=fe(a,i,s.column);if(c!==0)return c;const p=xe(a,i,s.column)*n;return p!==0?p:N(T(a.pane),T(i.pane))})}function fe(t,s,n){const a=p=>n==="drift"?R(p.pane):n==="output"?L(p.output):!0,i=a(t),c=a(s);return i===null&&c===null?0:i===null?1:c===null?-1:0}function xe(t,s,n){switch(n){case"pane":return N(T(t.pane),T(s.pane));case"harness":return N(t.pane.agent??"",s.pane.agent??"");case"status":return U(t.pane.agentStatus)-U(s.pane.agentStatus);case"directory":return N(M(t.pane),M(s.pane));case"tab":return N(t.tabLabel,s.tabLabel);case"drift":return B(R(t.pane),R(s.pane));case"output":return B(L(t.output),L(s.output))}}function B(t,s){return t===null&&s===null?0:t===null?-1:s===null?1:typeof t=="string"&&typeof s=="string"?N(t,s):Number(t)-Number(s)}function je(t,s){if(t.column===s)return{column:s,direction:t.direction==="asc"?"desc":"asc"};const n=z.find(a=>a.id===s)?.initialDirection??"asc";return{column:s,direction:n}}const ye="openscout.herdr.pane-table-sort.v1";function W(t){return{view:"terminal",terminalBackend:"herdr",terminalAgent:"shell",terminalTabId:`herdr-${t}`,terminalSessionName:t}}function ge({sessionName:t,navigate:s}){const{topology:n,error:a,refresh:i}=pe(t),[c,p]=d.useState(null),[m,u]=d.useState(null),[o,l]=d.useState("idle"),[b,j]=d.useState(null),h=t==="default"?"herdr":`herdr session attach ${t}`,r=n?.running??!1,g=d.useCallback(()=>{l("starting"),j(null),ae("herdr",{sessionName:t}).then(()=>{l("idle"),i()}).catch(y=>{l("failed"),j(y instanceof Error?y.message:String(y))})},[t,i]),S=d.useCallback(()=>{s(W(t))},[s,t]),k=d.useCallback(y=>{F(t,y.terminalId??y.paneId).catch(()=>{}),s(W(t))},[s,t]);return e.jsxs("div",{className:"s-term s-herdr",children:[e.jsxs("header",{className:"s-herdr-header",children:[e.jsxs("div",{className:"s-herdr-title",children:[e.jsx("span",{className:"s-herdr-mark",children:e.jsx(H,{size:16,strokeWidth:1.8})}),e.jsx("strong",{children:t}),e.jsx("span",{className:`s-herdr-state ${r?"s-herdr-state--live":""}`,children:n?r?"running":"stopped":"loading"})]}),e.jsxs("div",{className:"s-herdr-actions",children:[r&&e.jsxs("button",{type:"button",className:"s-term-workspace-action s-term-workspace-action--primary",onClick:S,title:"Open a live web terminal attached to this session",children:[e.jsx(K,{size:13,strokeWidth:1.8}),"Open terminal"]}),e.jsx(we,{command:h}),e.jsx("button",{type:"button",className:"s-term-icon-button",onClick:i,title:"Refresh","aria-label":"Refresh",children:e.jsx(V,{size:14,strokeWidth:1.8})})]})]}),a&&e.jsx("div",{className:"s-herdr-error",children:a}),n&&!r&&e.jsxs("div",{className:"s-herdr-empty",children:[e.jsx(H,{size:22,strokeWidth:1.5}),e.jsx("strong",{children:"This herdr session is stopped."}),e.jsx("span",{children:"The session still exists — herdr sessions are persistent. Start it and the projection fills in."}),e.jsx("button",{type:"button",className:"s-term-workspace-action s-term-workspace-action--primary",onClick:g,disabled:o==="starting",children:o==="starting"?"Starting…":"Start it"}),b&&e.jsx("code",{children:b})]}),n&&r&&n.workspaces.length===0&&e.jsxs("div",{className:"s-herdr-empty",children:[e.jsx(H,{size:22,strokeWidth:1.5}),e.jsx("strong",{children:"No workspaces yet."}),e.jsx("span",{children:"Open this session in herdr to create one — layout is herdr's job, Scout just watches."})]}),n&&r&&n.workspaces.length>0&&(()=>{const y=n.workspaces.flatMap(f=>f.tabs.map(x=>({workspace:f,tab:x})));if(y.length===0)return null;const v=n.workspaces.find(f=>f.focused)?.activeTabId??n.workspaces[0]?.activeTabId??null,E=y.find(f=>f.tab.tabId===c)??y.find(f=>f.tab.tabId===v)??y[0],{workspace:w,tab:I}=E,q=f=>{p(f),u(null)};return e.jsxs("section",{className:"s-herdr-workspace",children:[e.jsxs("div",{className:"s-herdr-workspace-head",children:[e.jsx("span",{className:"s-herdr-workspace-label",children:w.label??w.workspaceId}),e.jsx(_,{status:w.agentStatus})]}),e.jsx("div",{className:"s-herdr-tabs",role:"tablist",children:y.map(({workspace:f,tab:x})=>e.jsxs("button",{type:"button",role:"tab","aria-selected":x.tabId===I.tabId,className:`s-herdr-tab ${x.tabId===I.tabId?"s-herdr-tab--active":""}`,title:`${f.label??f.workspaceId} · ${x.label??x.tabId}`,onClick:()=>q(x.tabId),children:[e.jsx(P,{status:x.agentStatus}),e.jsx("span",{children:x.label??`Tab ${x.number??""}`}),e.jsx(Ne,{tab:x}),e.jsx("span",{className:"s-herdr-tab-count",children:x.panes.length})]},x.tabId))}),I.layout&&e.jsx(ke,{tab:I,diveInPaneId:m,onEnterPane:k,onToggleDiveIn:f=>u(x=>x===f?null:f)}),e.jsx(ve,{sessionName:t,tab:I,onEnterPane:k}),m&&(()=>{const f=I.panes.find(x=>x.paneId===m);return f?e.jsx(Se,{sessionName:t,pane:f,onClose:()=>u(null)}):null})()]})})()]})}function ke({tab:t,diveInPaneId:s,onEnterPane:n,onToggleDiveIn:a}){const i=t.layout;if(!i)return null;const{area:c}=i,p=new Map(t.panes.map(u=>[u.paneId,u])),m=`${c.width} / ${Math.max(c.height*2,1)}`;return e.jsxs("div",{className:"s-herdr-layout-window",children:[e.jsxs("div",{className:"s-herdr-layout-titlebar",children:[e.jsxs("span",{className:"s-herdr-layout-lights","aria-hidden":"true",children:[e.jsx("i",{}),e.jsx("i",{}),e.jsx("i",{})]}),e.jsxs("span",{className:"s-herdr-layout-title",children:[t.label??`Tab ${t.number??""}`," — ",i.panes.length," ",i.panes.length===1?"pane":"panes"]}),e.jsx("span",{className:"s-herdr-layout-hint",children:"click a pane to enter"})]}),e.jsx("div",{className:"s-herdr-layout",style:{aspectRatio:m},role:"group","aria-label":`Layout of ${t.label??t.tabId}`,children:i.panes.map(u=>{const o=p.get(u.paneId),{rect:l}=u,b={left:`${(l.x-c.x)/c.width*100}%`,top:`${(l.y-c.y)/c.height*100}%`,width:`${l.width/c.width*100}%`,height:`${l.height/c.height*100}%`},j=o?.paneId===s;return e.jsxs("div",{role:"button",tabIndex:0,className:`s-herdr-layout-pane ${u.focused?"s-herdr-layout-pane--focused":""}`,style:b,onClick:()=>o&&n(o),onKeyDown:h=>{o&&(h.key==="Enter"||h.key===" ")&&(h.preventDefault(),n(o))},title:o?`Enter ${o.label??o.paneId} — focus it and open the web terminal`:u.paneId,children:[e.jsxs("span",{className:"s-herdr-layout-pane-head",children:[o&&e.jsx(P,{status:o.agentStatus}),o?.agent&&e.jsx(D,{harness:o.agent,size:12,className:"s-herdr-agent-mark"}),e.jsx("strong",{className:"s-herdr-pane-label",children:o?.label??u.paneId})]}),o?.foregroundCwd&&e.jsx("span",{className:"s-herdr-cwd",children:A(o.foregroundCwd)}),o&&e.jsx("button",{type:"button",className:`s-herdr-layout-pane-peek ${j?"s-herdr-layout-pane-peek--active":""}`,onClick:h=>{h.stopPropagation(),a(o.paneId)},title:j?"Close the live view":"Watch this pane live","aria-label":j?"Close the live view":"Watch this pane live","aria-pressed":j,children:e.jsx(G,{size:13,strokeWidth:1.8})})]},u.paneId)})})]})}function ve({sessionName:t,tab:s,onEnterPane:n}){const[a,i]=X(ye,me),[c,p]=d.useState(null),[m,u]=d.useState(null),o=d.useMemo(()=>s.panes.map(r=>r.paneId),[s.panes]),l=ue(t,o,{lines:6}),b=s.label??`Tab ${s.number??""}`,j=d.useMemo(()=>be(s.panes.map(r=>({pane:r,tabLabel:b,output:l[r.paneId]??null})),a),[s.panes,b,l,a]),h=d.useCallback(r=>{u(null),F(t,r.terminalId??r.paneId).catch(g=>u(g instanceof Error?g.message:String(g)))},[t]);return e.jsxs("div",{className:"s-herdr-table-wrap",children:[e.jsxs("table",{className:"s-herdr-table","aria-label":`Panes of ${b}`,children:[e.jsx("thead",{children:e.jsxs("tr",{children:[z.map(r=>e.jsx("th",{scope:"col","aria-sort":a.column===r.id?a.direction==="asc"?"ascending":"descending":"none",children:e.jsxs("button",{type:"button",onClick:()=>i(je(a,r.id)),children:[e.jsx("span",{children:r.label}),e.jsx("em",{"aria-hidden":"true",children:a.column===r.id?a.direction==="asc"?"▲":"▼":"·"})]})},r.id)),e.jsx("th",{scope:"col","aria-label":"Actions"})]})}),e.jsx("tbody",{children:j.map(({pane:r,tabLabel:g,output:S})=>{const k=r.paneId===c,y=L(S),v=R(r),E=M(r);return e.jsxs(d.Fragment,{children:[e.jsxs("tr",{className:r.focused?"is-focused":void 0,onClick:()=>n(r),title:`Enter ${T(r)} — focus it and open the web terminal`,children:[e.jsxs("td",{className:"s-herdr-table-pane",children:[e.jsx(P,{status:r.agentStatus}),e.jsx("strong",{title:r.paneId,children:T(r)}),r.focused&&e.jsx("span",{className:"s-herdr-focused",children:"focused in herdr"})]}),e.jsx("td",{className:"s-herdr-table-harness",children:r.agent?e.jsx("span",{title:r.agent,className:"s-herdr-table-harness-mark",children:e.jsx(D,{harness:r.agent,size:13,className:"s-herdr-agent-mark"})}):e.jsx("span",{title:"shell — no agent running",className:"s-herdr-table-harness-mark",children:e.jsx(H,{size:12,strokeWidth:1.8})})}),e.jsx("td",{children:r.agentStatus==="unknown"?"—":e.jsx(_,{status:r.agentStatus})}),e.jsx("td",{className:"s-herdr-table-dir",title:E||void 0,children:E?A(E):"—"}),e.jsx("td",{children:g}),e.jsx("td",{className:"s-herdr-table-drift",title:v===null?void 0:v===0?"Pinned to live output":`Scrolled up ${v} ${v===1?"line":"lines"} from the live edge`,children:v===null?"—":v===0?"live":`↑${v}`}),e.jsx("td",{className:"s-herdr-table-output",title:y??void 0,children:y??"—"}),e.jsxs("td",{className:"s-herdr-table-actions",children:[e.jsx("button",{type:"button",className:`s-term-icon-button${k?" is-active":""}`,onClick:w=>{w.stopPropagation(),p(I=>I===r.paneId?null:r.paneId)},title:k?"Hide the pane's last lines":"Show the pane's last lines","aria-label":k?"Hide the pane's last lines":"Show the pane's last lines","aria-pressed":k,children:e.jsx(G,{size:13,strokeWidth:1.8})}),e.jsx("button",{type:"button",className:"s-term-icon-button",onClick:w=>{w.stopPropagation(),h(r)},title:"Focus this pane in the herdr client","aria-label":"Focus this pane in the herdr client",children:e.jsx(J,{size:13,strokeWidth:1.8})}),e.jsx("button",{type:"button",className:"s-term-icon-button",onClick:w=>{w.stopPropagation(),n(r)},title:"Enter — focus it and open the web terminal","aria-label":"Enter — focus it and open the web terminal",children:e.jsx(K,{size:13,strokeWidth:1.8})})]})]}),k&&e.jsx("tr",{className:"s-herdr-table-expand",children:e.jsx("td",{colSpan:z.length+1,children:S?e.jsx("pre",{children:S}):e.jsx("span",{className:"s-herdr-peek-reason",children:"No output captured yet."})})})]},r.paneId)})})]}),m&&e.jsx("div",{className:"s-herdr-error",children:m})]})}function we({command:t}){const[s,n]=d.useState(!1);return e.jsxs("button",{type:"button",className:"s-herdr-attach",title:"Copy attach command — open this session in the herdr client",onClick:()=>{Q(t).then(()=>{n(!0),window.setTimeout(()=>n(!1),1500)})},children:[s?e.jsx(Z,{size:13,strokeWidth:2}):e.jsx(ee,{size:13,strokeWidth:1.8}),e.jsx("code",{children:t})]})}function Se({sessionName:t,pane:s,onClose:n}){const{body:a,reason:i,loading:c,refresh:p}=ce(t,s.paneId,{lines:48}),[m,u]=d.useState(null);d.useEffect(()=>{const l=b=>{b.key==="Escape"&&n()};return window.addEventListener("keydown",l),()=>window.removeEventListener("keydown",l)},[n]);const o=d.useCallback(()=>{u(null),F(t,s.terminalId??s.paneId).catch(l=>u(l instanceof Error?l.message:String(l)))},[t,s.terminalId,s.paneId]);return e.jsx("div",{className:"s-herdr-lightbox",onClick:n,role:"presentation",children:e.jsxs("section",{className:"s-herdr-live","aria-label":`Live view of ${s.label??s.paneId}`,onClick:l=>l.stopPropagation(),children:[e.jsxs("div",{className:"s-herdr-live-head",children:[e.jsx(P,{status:s.agentStatus}),s.agent&&e.jsx(D,{harness:s.agent,size:13,className:"s-herdr-agent-mark"}),e.jsx("strong",{className:"s-herdr-pane-label",children:s.label??s.paneId}),e.jsx(_,{status:s.agentStatus}),s.foregroundCwd&&e.jsx("span",{className:"s-herdr-cwd",children:A(s.foregroundCwd)}),e.jsx("span",{className:"s-herdr-pane-spacer"}),e.jsx("button",{type:"button",className:"s-term-icon-button",onClick:o,title:"Focus this pane in the herdr client","aria-label":"Focus this pane in the herdr client",children:e.jsx(J,{size:14,strokeWidth:1.8})}),e.jsx("button",{type:"button",className:"s-term-icon-button",onClick:p,title:"Refresh now","aria-label":"Refresh now",children:e.jsx(V,{size:14,strokeWidth:1.8})}),e.jsx("button",{type:"button",className:"s-term-icon-button s-term-icon-button--danger",onClick:n,title:"Close the live view (Esc)","aria-label":"Close the live view",children:e.jsx(se,{size:14,strokeWidth:1.8})})]}),e.jsx("div",{className:"s-herdr-live-body",children:a!==null?e.jsx("pre",{children:a}):c?e.jsx("span",{className:"s-herdr-peek-reason",children:"Loading…"}):e.jsx("span",{className:"s-herdr-peek-reason",children:i??"No preview available."})}),m&&e.jsx("div",{className:"s-herdr-error",children:m})]})})}function Ie(t){return t}function P({status:t}){return e.jsx("span",{className:`s-herdr-dot s-herdr-dot--${t}`,"aria-hidden":"true"})}function _({status:t}){return t==="unknown"?null:e.jsx("span",{className:`s-herdr-badge s-herdr-badge--${t}`,children:t})}function Ne({tab:t}){const s=[...new Set(t.panes.map(n=>n.agent).filter(n=>!!n))].slice(0,4);return s.length===0?null:e.jsx("span",{className:"s-herdr-tab-marks",children:s.map(n=>e.jsx(D,{harness:n,size:11,className:"s-herdr-agent-mark"},n))})}function Te(t){return{label:t.label??`Tab ${t.number??""}`,statuses:t.panes.map(s=>s.agentStatus)}}const Fe=Object.freeze(Object.defineProperty({__proto__:null,AgentStatusBadge:_,AgentStatusDot:P,HerdrSessionScreen:ge,herdrAgentStatusLabel:Ie,herdrTabSummary:Te,herdrTerminalRoute:W},Symbol.toStringTag,{value:"Module"}));export{P as A,ge as H,pe as a,Te as b,ae as c,Fe as d,W as h,Ae as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as $,j as t}from"./index-DMiGbrBt.js";const F=3,H=2;function k(e){return e>=.9?"err":e>=.75?"warn":"ok"}const C=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function E(e,a){const s=e-a.getTime(),i=new Date(e).toDateString()===a.toDateString(),r=new Date(e),n=String(r.getHours()).padStart(2,"0"),l=String(r.getMinutes()).padStart(2,"0"),o=s>0&&s<6*3600*1e3;return i?{label:`${n}:${l}`,imminent:o}:{label:`${C[r.getDay()]} ${n}:${l}`,imminent:o}}function W(e,a){const s=Math.floor((e-a.getTime())/1e3),i=s<0,r=Math.abs(s);let n;if(r>=86400){const l=Math.floor(r/86400),o=Math.floor(r%86400/3600);n=o>0?`${l}d ${o}h`:`${l}d`}else if(r>=3600){const l=Math.floor(r/3600),o=Math.floor(r%3600/60);n=o>0?`${l}h ${o}m`:`${l}h`}else n=`${Math.max(1,Math.floor(r/60))}m`;return i?`stale ${n}`:n}function M(e){return e.windows&&e.windows.length>0?e.windows:[{label:_(e.unitLabel),fill:e.fill,usedLabel:e.usedLabel,capLabel:e.capLabel,unitLabel:e.unitLabel,resetAt:e.resetAt}]}function _(e){switch(e){case"weekly":return"7d";case"req/h":return"1h";default:return e||"quota"}}function S(e,a){return M(e).map(s=>{const i=E(s.resetAt,a),r=W(s.resetAt,a);return`${s.label}: ${s.usedLabel} / ${s.capLabel} ${s.unitLabel} · resets ${i.label} (in ${r})`}).join(" · ")}function L(e){const a=e.trim().match(/^(\d+(?:\.\d+)?)([mhd])$/i);if(!a)return null;const s=Number(a[1]);if(!Number.isFinite(s))return null;switch(a[2]?.toLowerCase()){case"m":return s;case"h":return s*60;case"d":return s*24*60;default:return null}}function I(e){const a=[...e].sort((r,n)=>(L(r.label)??Number.MAX_SAFE_INTEGER)-(L(n.label)??Number.MAX_SAFE_INTEGER)),s=a.find(r=>(L(r.label)??0)>=1440)??(a.length>1?a[a.length-1]:null);return{shortWindow:a.find(r=>r!==s)??null,longWindow:s}}function q(e){return e.capLabel==="100%"&&e.usedLabel.endsWith("%")?e.usedLabel:`${e.usedLabel}/${e.capLabel}`}function N(){return t.jsx("span",{className:"hd-gauge-cell hd-gauge-cell--empty",children:"—"})}function w({window:e}){if(!e)return t.jsx(N,{});const a=Math.round(e.fill*100),s=k(e.fill);return t.jsxs("span",{className:"hd-gauge-cell hd-gauge-cell--usage",children:[t.jsx("span",{className:"hd-gauge-window-name",children:e.label}),t.jsx("span",{className:"hd-gauge-bar","aria-hidden":"true",children:t.jsx("span",{className:`hd-gauge-bar-fill hd-gauge-bar-fill--${s}`,style:{width:`${a}%`}})}),t.jsx("span",{className:"hd-gauge-window-used",children:q(e)})]})}function T({window:e,now:a,featured:s=!1}){if(!e)return t.jsx(N,{});if(s){const n=O(e.resetAt,a);return t.jsxs("span",{className:`hd-gauge-cell hd-gauge-reset hd-gauge-reset--featured hd-gauge-reset--${n.tone}`,"aria-live":"off","aria-label":n.ariaLabel,children:[t.jsx("strong",{children:n.primary}),n.dateTime?t.jsx("time",{dateTime:n.dateTime,children:n.secondary}):t.jsx("span",{children:n.secondary})]})}const i=E(e.resetAt,a),r=W(e.resetAt,a);return t.jsxs("span",{className:`hd-gauge-cell hd-gauge-reset${i.imminent?" hd-gauge-reset--imminent":""}`,children:["↻ ",r]})}function O(e,a){if(!Number.isFinite(e))return{primary:"—",secondary:"unknown",ariaLabel:"Weekly reset time unknown",tone:"stale"};const s=e-a.getTime(),i=new Date(e);if(!Number.isFinite(i.getTime()))return{primary:"—",secondary:"unknown",ariaLabel:"Weekly reset time unknown",tone:"stale"};const r=i.toISOString();if(s<=0){const h=Math.abs(s);if(h<=9e4)return{primary:"reset due",secondary:"refreshing…",ariaLabel:"Weekly reset due; refreshing usage",tone:"due",dateTime:r};const p=Math.floor(h/6e4),y=p>=60?`+${Math.floor(p/60)}h ${p%60}m`:`+${Math.max(1,p)}m`;return{primary:h<=360*6e4?"reset due":"stale",secondary:y,ariaLabel:`Weekly reset data ${y} overdue`,tone:h<=360*6e4?"due":"stale",dateTime:r}}const n=Math.floor(s/1e3),l=Math.floor(n/86400),o=Math.floor(n%86400/3600),c=Math.floor(n%3600/60),u=n%60,d=[o,c,u].map(h=>String(h).padStart(2,"0")).join(":"),j=l>0?`${l}d ${d}`:d,f=i.toDateString()===a.toDateString(),m=i.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),x=f?`today ${m}`:`${i.toLocaleDateString([],{weekday:"short"})} ${m}`,g=l>0?`${l} ${l===1?"day":"days"} ${o} hours`:`${o} hours ${c} minutes`;return{primary:j,secondary:x,ariaLabel:`Weekly quota resets in ${g}; ${x}`,tone:s<360*6e4?"imminent":"normal",dateTime:r}}function P(e){if(e.length===0)return"";if(e.length===1)return`M ${e[0].x} ${e[0].y}`;const a=[`M ${e[0].x} ${e[0].y}`];for(let s=0;s<e.length-1;s++){const i=e[s-1]??e[s],r=e[s],n=e[s+1],l=e[s+2]??n,o=r.x+(n.x-i.x)/6,c=r.y+(n.y-i.y)/6,u=n.x-(l.x-r.x)/6,d=n.y-(l.y-r.y)/6;a.push(`C ${o} ${c}, ${u} ${d}, ${n.x} ${n.y}`)}return a.join(" ")}function B(e){const a=$.useRef(null),[s,i]=$.useState(e);return $.useLayoutEffect(()=>{const r=a.current;if(!r)return;const n=o=>{const c=Math.round(o);c>0&&i(u=>u===c?u:c)};n(r.getBoundingClientRect().width);const l=new ResizeObserver(o=>{n(o[0]?.contentRect.width??0)});return l.observe(r),()=>l.disconnect()},[]),[a,s]}function Q({buckets:e}){const[a,s]=B(372),i=70,r=6,n=56,l=67,o=e.length,c=o<2||e.every(g=>g.count===0),u=Math.max(1,s-3),d={viewBox:`0 0 ${s} ${i}`,style:{width:"100%",height:i,display:"block"}};if(c)return t.jsx("div",{ref:a,children:t.jsx("svg",{...d,children:t.jsx("line",{x1:"0",y1:n,x2:s,y2:n,stroke:"var(--border)"})})});const j=u/(o-1),f=e.map((g,h)=>({x:h*j,y:n-Math.max(0,Math.min(1,g.value))*(n-r)})),m=P(f),x=`${m} L ${u} ${n} L 0 ${n} Z`;return t.jsx("div",{ref:a,children:t.jsxs("svg",{...d,children:[t.jsx("defs",{children:t.jsxs("linearGradient",{id:"hrdFill",x1:"0",y1:"0",x2:"0",y2:"1",children:[t.jsx("stop",{offset:"0%",stopColor:"var(--accent)",stopOpacity:"0.22"}),t.jsx("stop",{offset:"100%",stopColor:"var(--accent)",stopOpacity:"0"})]})}),t.jsx("line",{x1:"0",y1:r,x2:s,y2:r,stroke:"var(--border)",opacity:"0.18"}),t.jsx("line",{x1:"0",y1:(r+n)/2,x2:s,y2:(r+n)/2,stroke:"var(--border)",opacity:"0.22"}),t.jsx("line",{x1:"0",y1:n,x2:s,y2:n,stroke:"var(--border)"}),t.jsx("path",{d:x,fill:"url(#hrdFill)"}),t.jsx("path",{d:m,fill:"none",stroke:"var(--accent)",strokeWidth:"1.5",strokeLinecap:"round"}),t.jsx("circle",{cx:f[o-1].x,cy:f[o-1].y,r:"2.5",fill:"var(--accent)"}),t.jsx("text",{x:"0",y:l,fill:"var(--dim)",fontSize:"9",fontFamily:"var(--font-mono)",children:"7d"}),t.jsx("text",{x:s/2,y:l,textAnchor:"middle",fill:"var(--dim)",fontSize:"9",fontFamily:"var(--font-mono)",children:"3d"}),t.jsx("text",{x:s,y:l,textAnchor:"end",fill:"var(--dim)",fontSize:"9",fontFamily:"var(--font-mono)",children:"now"})]})})}function V({gauge:e,now:a,onClick:s}){const i=s?"button":"span",r=s?{type:"button",onClick:s}:{};if(e.kind==="status")return t.jsxs(i,{className:`hd-gauge hd-gauge--status hd-gauge--${e.tone}${s?" hd-gauge--interactive":""}`,"aria-label":`${e.label} subscription usage`,...r,children:[t.jsxs("span",{className:"hd-gauge-head",children:[t.jsx("span",{className:"hd-gauge-label",children:e.label}),t.jsx("span",{className:`hd-gauge-dot hd-gauge-dot--${e.tone}`,"aria-hidden":"true"})]}),t.jsx(N,{}),t.jsx(N,{}),t.jsxs("span",{className:"hd-gauge-cell hd-gauge-cell--usage hd-gauge-cell--status",children:[t.jsx("span",{className:"hd-gauge-window-name",children:e.windowLabel??"usage"}),t.jsx("span",{className:"hd-gauge-status",children:e.statusLabel})]}),t.jsx("span",{className:"hd-gauge-cell hd-gauge-reset",children:e.detailLabel??"quota n/a"})]});const n=M(e),{shortWindow:l,longWindow:o}=I(n),c=k(Math.max(...n.map(d=>d.fill))),u=Math.round(Math.max(...n.map(d=>d.fill))*100);return t.jsxs(i,{className:`hd-gauge hd-gauge--${c}${s?" hd-gauge--interactive":""}`,title:S(e,a),"aria-label":`${e.label} subscription usage. ${S(e,a)}`,...r,children:[t.jsxs("span",{className:"hd-gauge-head",children:[t.jsx("span",{className:"hd-gauge-label",children:e.label}),t.jsxs("span",{className:`hd-gauge-pct hd-gauge-pct--${c}`,children:[u,"%"]})]}),t.jsx(w,{window:l}),t.jsx(T,{window:l,now:a}),t.jsx(w,{window:o}),t.jsx(T,{window:o,now:a,featured:!0})]})}function z(e){const a=e.trim().match(/^(\d+(?:\.\d+)?)([kKmM])?$/u);if(!a)return 0;const s=Number(a[1]);if(!Number.isFinite(s))return 0;switch(a[2]?.toLowerCase()){case"m":return s*1e6;case"k":return s*1e3;default:return s}}function U(e){return e.kind==="quota"?Math.max(e.fill,...M(e).map(a=>a.fill)):z(e.statusLabel)>0?.01:0}function X(e){return e.kind==="quota"}function K(e){return R(e).slice(0,H)}function R(e){return e.map((a,s)=>({gauge:a,index:s,score:U(a)})).sort((a,s)=>s.score-a.score||a.index-s.index).map(({gauge:a})=>a)}function Z(e){const{now:a,syncLabel:s,error:i,loading:r,refreshing:n,onRefresh:l,navigate:o,heartrate:c,heartrateWindow:u,heartrateBucketLabel:d,heartrateVisibleEventThreshold:j=F,serviceGauges:f}=e,[m,x]=$.useState(!1),g=i?"err":"ok",h=f.filter(X),p=R(h),y=K(h),v=m?p:y,G=h.length>y.length,A=c.reduce((b,D)=>b+D.count,0)>=j;return t.jsxs("section",{className:"hd",children:[t.jsxs("div",{className:`hd-topbar${v.length>0?"":" hd-topbar--bare"}`,children:[t.jsxs("div",{className:"hd-topbar-r",children:[t.jsx("span",{className:`hd-dot hd-dot--${g}`,"aria-hidden":"true"}),t.jsx("span",{className:`hd-meta hd-meta--${g}`,children:s}),t.jsx("span",{className:"hd-topbar-actions",children:t.jsxs("button",{type:"button",className:"hd-btn",disabled:r||n,onClick:l,children:["[",n?"refreshing":"r refresh","]"]})})]}),v.length>0&&t.jsxs("div",{className:"hd-topbar-c","aria-label":"subscription usage",children:[t.jsxs("div",{className:"hd-gauge-title-row",children:[t.jsx("span",{className:"hd-gauge-window",children:"SUBSCRIPTIONS"}),G&&t.jsxs("button",{type:"button",className:"hd-gauge-toggle","aria-expanded":m,onClick:()=>x(b=>!b),children:["[",m?"top 2":`all ${h.length}`,"]"]})]}),t.jsxs("div",{className:"hd-gauge-set",children:[t.jsxs("div",{className:"hd-gauge-table-head","aria-hidden":"true",children:[t.jsx("span",{children:"service"}),t.jsx("span",{children:"short window"}),t.jsx("span",{children:"resets"}),t.jsx("span",{children:"long window"}),t.jsx("span",{children:"resets in"})]}),v.map(b=>t.jsx("span",{className:"hd-gauge-wrap",children:t.jsx(V,{gauge:b,now:a,onClick:()=>o({view:"harnesses"})})},b.id))]})]})]}),A&&t.jsx("div",{className:"hd-grid hd-grid--single",children:t.jsxs("div",{className:"hd-panel hd-panel--hr",children:[t.jsxs("div",{className:"hd-panel-title",children:[t.jsx("span",{children:"HEART-RATE"}),t.jsx("span",{className:"hd-sep",children:"·"}),t.jsx("span",{children:u}),d?t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"hd-sep",children:"·"}),t.jsx("span",{children:d})]}):null]}),t.jsx(Q,{buckets:c})]})})]})}export{Z as default};
|
|
1
|
+
import{r as $,j as t}from"./index-CzVeWScw.js";const F=3,H=2;function k(e){return e>=.9?"err":e>=.75?"warn":"ok"}const C=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function E(e,a){const s=e-a.getTime(),i=new Date(e).toDateString()===a.toDateString(),r=new Date(e),n=String(r.getHours()).padStart(2,"0"),l=String(r.getMinutes()).padStart(2,"0"),o=s>0&&s<6*3600*1e3;return i?{label:`${n}:${l}`,imminent:o}:{label:`${C[r.getDay()]} ${n}:${l}`,imminent:o}}function W(e,a){const s=Math.floor((e-a.getTime())/1e3),i=s<0,r=Math.abs(s);let n;if(r>=86400){const l=Math.floor(r/86400),o=Math.floor(r%86400/3600);n=o>0?`${l}d ${o}h`:`${l}d`}else if(r>=3600){const l=Math.floor(r/3600),o=Math.floor(r%3600/60);n=o>0?`${l}h ${o}m`:`${l}h`}else n=`${Math.max(1,Math.floor(r/60))}m`;return i?`stale ${n}`:n}function M(e){return e.windows&&e.windows.length>0?e.windows:[{label:_(e.unitLabel),fill:e.fill,usedLabel:e.usedLabel,capLabel:e.capLabel,unitLabel:e.unitLabel,resetAt:e.resetAt}]}function _(e){switch(e){case"weekly":return"7d";case"req/h":return"1h";default:return e||"quota"}}function S(e,a){return M(e).map(s=>{const i=E(s.resetAt,a),r=W(s.resetAt,a);return`${s.label}: ${s.usedLabel} / ${s.capLabel} ${s.unitLabel} · resets ${i.label} (in ${r})`}).join(" · ")}function L(e){const a=e.trim().match(/^(\d+(?:\.\d+)?)([mhd])$/i);if(!a)return null;const s=Number(a[1]);if(!Number.isFinite(s))return null;switch(a[2]?.toLowerCase()){case"m":return s;case"h":return s*60;case"d":return s*24*60;default:return null}}function I(e){const a=[...e].sort((r,n)=>(L(r.label)??Number.MAX_SAFE_INTEGER)-(L(n.label)??Number.MAX_SAFE_INTEGER)),s=a.find(r=>(L(r.label)??0)>=1440)??(a.length>1?a[a.length-1]:null);return{shortWindow:a.find(r=>r!==s)??null,longWindow:s}}function q(e){return e.capLabel==="100%"&&e.usedLabel.endsWith("%")?e.usedLabel:`${e.usedLabel}/${e.capLabel}`}function N(){return t.jsx("span",{className:"hd-gauge-cell hd-gauge-cell--empty",children:"—"})}function w({window:e}){if(!e)return t.jsx(N,{});const a=Math.round(e.fill*100),s=k(e.fill);return t.jsxs("span",{className:"hd-gauge-cell hd-gauge-cell--usage",children:[t.jsx("span",{className:"hd-gauge-window-name",children:e.label}),t.jsx("span",{className:"hd-gauge-bar","aria-hidden":"true",children:t.jsx("span",{className:`hd-gauge-bar-fill hd-gauge-bar-fill--${s}`,style:{width:`${a}%`}})}),t.jsx("span",{className:"hd-gauge-window-used",children:q(e)})]})}function T({window:e,now:a,featured:s=!1}){if(!e)return t.jsx(N,{});if(s){const n=O(e.resetAt,a);return t.jsxs("span",{className:`hd-gauge-cell hd-gauge-reset hd-gauge-reset--featured hd-gauge-reset--${n.tone}`,"aria-live":"off","aria-label":n.ariaLabel,children:[t.jsx("strong",{children:n.primary}),n.dateTime?t.jsx("time",{dateTime:n.dateTime,children:n.secondary}):t.jsx("span",{children:n.secondary})]})}const i=E(e.resetAt,a),r=W(e.resetAt,a);return t.jsxs("span",{className:`hd-gauge-cell hd-gauge-reset${i.imminent?" hd-gauge-reset--imminent":""}`,children:["↻ ",r]})}function O(e,a){if(!Number.isFinite(e))return{primary:"—",secondary:"unknown",ariaLabel:"Weekly reset time unknown",tone:"stale"};const s=e-a.getTime(),i=new Date(e);if(!Number.isFinite(i.getTime()))return{primary:"—",secondary:"unknown",ariaLabel:"Weekly reset time unknown",tone:"stale"};const r=i.toISOString();if(s<=0){const h=Math.abs(s);if(h<=9e4)return{primary:"reset due",secondary:"refreshing…",ariaLabel:"Weekly reset due; refreshing usage",tone:"due",dateTime:r};const p=Math.floor(h/6e4),y=p>=60?`+${Math.floor(p/60)}h ${p%60}m`:`+${Math.max(1,p)}m`;return{primary:h<=360*6e4?"reset due":"stale",secondary:y,ariaLabel:`Weekly reset data ${y} overdue`,tone:h<=360*6e4?"due":"stale",dateTime:r}}const n=Math.floor(s/1e3),l=Math.floor(n/86400),o=Math.floor(n%86400/3600),c=Math.floor(n%3600/60),u=n%60,d=[o,c,u].map(h=>String(h).padStart(2,"0")).join(":"),j=l>0?`${l}d ${d}`:d,f=i.toDateString()===a.toDateString(),m=i.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),x=f?`today ${m}`:`${i.toLocaleDateString([],{weekday:"short"})} ${m}`,g=l>0?`${l} ${l===1?"day":"days"} ${o} hours`:`${o} hours ${c} minutes`;return{primary:j,secondary:x,ariaLabel:`Weekly quota resets in ${g}; ${x}`,tone:s<360*6e4?"imminent":"normal",dateTime:r}}function P(e){if(e.length===0)return"";if(e.length===1)return`M ${e[0].x} ${e[0].y}`;const a=[`M ${e[0].x} ${e[0].y}`];for(let s=0;s<e.length-1;s++){const i=e[s-1]??e[s],r=e[s],n=e[s+1],l=e[s+2]??n,o=r.x+(n.x-i.x)/6,c=r.y+(n.y-i.y)/6,u=n.x-(l.x-r.x)/6,d=n.y-(l.y-r.y)/6;a.push(`C ${o} ${c}, ${u} ${d}, ${n.x} ${n.y}`)}return a.join(" ")}function B(e){const a=$.useRef(null),[s,i]=$.useState(e);return $.useLayoutEffect(()=>{const r=a.current;if(!r)return;const n=o=>{const c=Math.round(o);c>0&&i(u=>u===c?u:c)};n(r.getBoundingClientRect().width);const l=new ResizeObserver(o=>{n(o[0]?.contentRect.width??0)});return l.observe(r),()=>l.disconnect()},[]),[a,s]}function Q({buckets:e}){const[a,s]=B(372),i=70,r=6,n=56,l=67,o=e.length,c=o<2||e.every(g=>g.count===0),u=Math.max(1,s-3),d={viewBox:`0 0 ${s} ${i}`,style:{width:"100%",height:i,display:"block"}};if(c)return t.jsx("div",{ref:a,children:t.jsx("svg",{...d,children:t.jsx("line",{x1:"0",y1:n,x2:s,y2:n,stroke:"var(--border)"})})});const j=u/(o-1),f=e.map((g,h)=>({x:h*j,y:n-Math.max(0,Math.min(1,g.value))*(n-r)})),m=P(f),x=`${m} L ${u} ${n} L 0 ${n} Z`;return t.jsx("div",{ref:a,children:t.jsxs("svg",{...d,children:[t.jsx("defs",{children:t.jsxs("linearGradient",{id:"hrdFill",x1:"0",y1:"0",x2:"0",y2:"1",children:[t.jsx("stop",{offset:"0%",stopColor:"var(--accent)",stopOpacity:"0.22"}),t.jsx("stop",{offset:"100%",stopColor:"var(--accent)",stopOpacity:"0"})]})}),t.jsx("line",{x1:"0",y1:r,x2:s,y2:r,stroke:"var(--border)",opacity:"0.18"}),t.jsx("line",{x1:"0",y1:(r+n)/2,x2:s,y2:(r+n)/2,stroke:"var(--border)",opacity:"0.22"}),t.jsx("line",{x1:"0",y1:n,x2:s,y2:n,stroke:"var(--border)"}),t.jsx("path",{d:x,fill:"url(#hrdFill)"}),t.jsx("path",{d:m,fill:"none",stroke:"var(--accent)",strokeWidth:"1.5",strokeLinecap:"round"}),t.jsx("circle",{cx:f[o-1].x,cy:f[o-1].y,r:"2.5",fill:"var(--accent)"}),t.jsx("text",{x:"0",y:l,fill:"var(--dim)",fontSize:"9",fontFamily:"var(--font-mono)",children:"7d"}),t.jsx("text",{x:s/2,y:l,textAnchor:"middle",fill:"var(--dim)",fontSize:"9",fontFamily:"var(--font-mono)",children:"3d"}),t.jsx("text",{x:s,y:l,textAnchor:"end",fill:"var(--dim)",fontSize:"9",fontFamily:"var(--font-mono)",children:"now"})]})})}function V({gauge:e,now:a,onClick:s}){const i=s?"button":"span",r=s?{type:"button",onClick:s}:{};if(e.kind==="status")return t.jsxs(i,{className:`hd-gauge hd-gauge--status hd-gauge--${e.tone}${s?" hd-gauge--interactive":""}`,"aria-label":`${e.label} subscription usage`,...r,children:[t.jsxs("span",{className:"hd-gauge-head",children:[t.jsx("span",{className:"hd-gauge-label",children:e.label}),t.jsx("span",{className:`hd-gauge-dot hd-gauge-dot--${e.tone}`,"aria-hidden":"true"})]}),t.jsx(N,{}),t.jsx(N,{}),t.jsxs("span",{className:"hd-gauge-cell hd-gauge-cell--usage hd-gauge-cell--status",children:[t.jsx("span",{className:"hd-gauge-window-name",children:e.windowLabel??"usage"}),t.jsx("span",{className:"hd-gauge-status",children:e.statusLabel})]}),t.jsx("span",{className:"hd-gauge-cell hd-gauge-reset",children:e.detailLabel??"quota n/a"})]});const n=M(e),{shortWindow:l,longWindow:o}=I(n),c=k(Math.max(...n.map(d=>d.fill))),u=Math.round(Math.max(...n.map(d=>d.fill))*100);return t.jsxs(i,{className:`hd-gauge hd-gauge--${c}${s?" hd-gauge--interactive":""}`,title:S(e,a),"aria-label":`${e.label} subscription usage. ${S(e,a)}`,...r,children:[t.jsxs("span",{className:"hd-gauge-head",children:[t.jsx("span",{className:"hd-gauge-label",children:e.label}),t.jsxs("span",{className:`hd-gauge-pct hd-gauge-pct--${c}`,children:[u,"%"]})]}),t.jsx(w,{window:l}),t.jsx(T,{window:l,now:a}),t.jsx(w,{window:o}),t.jsx(T,{window:o,now:a,featured:!0})]})}function z(e){const a=e.trim().match(/^(\d+(?:\.\d+)?)([kKmM])?$/u);if(!a)return 0;const s=Number(a[1]);if(!Number.isFinite(s))return 0;switch(a[2]?.toLowerCase()){case"m":return s*1e6;case"k":return s*1e3;default:return s}}function U(e){return e.kind==="quota"?Math.max(e.fill,...M(e).map(a=>a.fill)):z(e.statusLabel)>0?.01:0}function X(e){return e.kind==="quota"}function K(e){return R(e).slice(0,H)}function R(e){return e.map((a,s)=>({gauge:a,index:s,score:U(a)})).sort((a,s)=>s.score-a.score||a.index-s.index).map(({gauge:a})=>a)}function Z(e){const{now:a,syncLabel:s,error:i,loading:r,refreshing:n,onRefresh:l,navigate:o,heartrate:c,heartrateWindow:u,heartrateBucketLabel:d,heartrateVisibleEventThreshold:j=F,serviceGauges:f}=e,[m,x]=$.useState(!1),g=i?"err":"ok",h=f.filter(X),p=R(h),y=K(h),v=m?p:y,G=h.length>y.length,A=c.reduce((b,D)=>b+D.count,0)>=j;return t.jsxs("section",{className:"hd",children:[t.jsxs("div",{className:`hd-topbar${v.length>0?"":" hd-topbar--bare"}`,children:[t.jsxs("div",{className:"hd-topbar-r",children:[t.jsx("span",{className:`hd-dot hd-dot--${g}`,"aria-hidden":"true"}),t.jsx("span",{className:`hd-meta hd-meta--${g}`,children:s}),t.jsx("span",{className:"hd-topbar-actions",children:t.jsxs("button",{type:"button",className:"hd-btn",disabled:r||n,onClick:l,children:["[",n?"refreshing":"r refresh","]"]})})]}),v.length>0&&t.jsxs("div",{className:"hd-topbar-c","aria-label":"subscription usage",children:[t.jsxs("div",{className:"hd-gauge-title-row",children:[t.jsx("span",{className:"hd-gauge-window",children:"SUBSCRIPTIONS"}),G&&t.jsxs("button",{type:"button",className:"hd-gauge-toggle","aria-expanded":m,onClick:()=>x(b=>!b),children:["[",m?"top 2":`all ${h.length}`,"]"]})]}),t.jsxs("div",{className:"hd-gauge-set",children:[t.jsxs("div",{className:"hd-gauge-table-head","aria-hidden":"true",children:[t.jsx("span",{children:"service"}),t.jsx("span",{children:"short window"}),t.jsx("span",{children:"resets"}),t.jsx("span",{children:"long window"}),t.jsx("span",{children:"resets in"})]}),v.map(b=>t.jsx("span",{className:"hd-gauge-wrap",children:t.jsx(V,{gauge:b,now:a,onClick:()=>o({view:"harnesses"})})},b.id))]})]})]}),A&&t.jsx("div",{className:"hd-grid hd-grid--single",children:t.jsxs("div",{className:"hd-panel hd-panel--hr",children:[t.jsxs("div",{className:"hd-panel-title",children:[t.jsx("span",{children:"HEART-RATE"}),t.jsx("span",{className:"hd-sep",children:"·"}),t.jsx("span",{children:u}),d?t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"hd-sep",children:"·"}),t.jsx("span",{children:d})]}):null]}),t.jsx(Q,{buckets:c})]})})]})}export{Z as default};
|