@openscout/scout 0.2.92 → 0.2.95
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +14 -0
- package/README.md +164 -348
- package/bin/scoutd +0 -0
- package/dist/build-manifest.json +3 -3
- package/dist/client/apple-touch-icon.png +0 -0
- package/dist/client/assets/ActivityScreen--eANwuxa.js +1 -0
- package/dist/client/assets/{AddProjectForm-CpyytDf2.js → AddProjectForm-CcD6qvV8.js} +1 -1
- package/dist/client/assets/AgentAvatar-CYhf6twS.js +1 -0
- package/dist/client/assets/AgentConfigurationScreen-BTI24HQX.js +1 -0
- package/dist/client/assets/AgentDefinitionsWorkspace-srmN6-vj.js +1 -0
- package/dist/client/assets/{AgentDetailCard-BTiOmh-a.js → AgentDetailCard-UqPNpcvB.js} +1 -1
- package/dist/client/assets/AgentFloorView-XXNgI5Cj.js +1 -0
- package/dist/client/assets/AgentInfoScreen-CimdOnZ9.js +1 -0
- package/dist/client/assets/{AgentLaneCard-lfRNb7JD.js → AgentLaneCard-Z-aOBR3W.js} +1 -1
- package/dist/client/assets/{AgentLaneChrome-Dlwrbq3g.js → AgentLaneChrome-CyhA1reW.js} +1 -1
- package/dist/client/assets/AgentLaneDetailSheet-BNzjMjIH.js +4 -0
- package/dist/client/assets/{AgentLaneSummaryResize-6SOEWUnr.js → AgentLaneSummaryResize-Box8-_rS.js} +1 -1
- package/dist/client/assets/AgentLanesEmbedScreen-BmLnN4on.js +1 -0
- package/dist/client/assets/{AgentLanesPreflight-C3uOiOzd.js → AgentLanesPreflight-5B6sXvRB.js} +1 -1
- package/dist/client/assets/AgentLanesView-DHyzVBk6.js +2 -0
- package/dist/client/assets/{AgentLiveActions-BJ5dIfL3.js → AgentLiveActions-BwuzOE8h.js} +1 -1
- package/dist/client/assets/AgentSessions-CsZwoukw.js +6 -0
- package/dist/client/assets/AgentsConsole-KCao4XmX.js +1 -0
- package/dist/client/assets/AgentsScreen-CtPAmwRX.js +1 -0
- package/dist/client/assets/AgentsSubnav-CDMjKeYC.js +1 -0
- package/dist/client/assets/AstronautSuit-Ckx7lu7G.js +1 -0
- package/dist/client/assets/AtopView-DYlpgEHf.js +1 -0
- package/dist/client/assets/{BackToPicker-D1LV6Cqp.js → BackToPicker-4JaeRvDm.js} +1 -1
- package/dist/client/assets/BriefingDetailScreen-D6-xqrpo.js +1 -0
- package/dist/client/assets/BriefingsScreen-DKxSDEmk.js +1 -0
- package/dist/client/assets/{BrokerMetadataPanel-BhjECqOK.js → BrokerMetadataPanel-BbREmsbK.js} +1 -1
- package/dist/client/assets/BrokerScreen-fbPIouMw.js +5 -0
- package/dist/client/assets/CastPicker-BcA2vDDV.js +1 -0
- package/dist/client/assets/CastPicker-zXsnkTIy.css +1 -0
- package/dist/client/assets/ChatCollapsedStrip-Ycm0ecaX.js +1 -0
- package/dist/client/assets/{CodeDiffPane-Bx_2VAzv.js → CodeDiffPane-Cn8Y9hAt.js} +1 -1
- package/dist/client/assets/{CodeProjectPicker-C1yOJKvs.js → CodeProjectPicker-nPFktrco.js} +1 -1
- package/dist/client/assets/CodeScreen-BlAxtxE5.js +1 -0
- package/dist/client/assets/ConversationComposer-2HjbGPL9.js +1 -0
- package/dist/client/assets/ConversationFeedRows-C6wUqJrx.js +1 -0
- package/dist/client/assets/ConversationHeader-C8vfXaTF.js +1 -0
- package/dist/client/assets/ConversationPanels-CNCIbpqU.js +6 -0
- package/dist/client/assets/ConversationScreen-BNULZAp2.js +2 -0
- package/dist/client/assets/ConversationScreen-CkWnKXt6.css +1 -0
- package/dist/client/assets/ConversationStatus-DZuyKsWN.js +1 -0
- package/dist/client/assets/CrewAvatar-CTIuxp4G.js +1 -0
- package/dist/client/assets/CrewAvatar-D0c9z5Qr.css +1 -0
- package/dist/client/assets/CrewWorkspaces-CJhBKVoZ.css +1 -0
- package/dist/client/assets/CrewWorkspaces-CkPYIA46.js +1 -0
- package/dist/client/assets/{DataTable-CJbbgBdA.js → DataTable-6IDhanr5.js} +1 -1
- package/dist/client/assets/DispatchAftermath-DC1u9itO.js +1 -0
- package/dist/client/assets/DocumentFocusViewer-DZVhS7as.js +1 -0
- package/dist/client/assets/{EmbeddableSurfacesLab-BdsYRDky.js → EmbeddableSurfacesLab-BKUFJMCV.js} +1 -1
- package/dist/client/assets/{EmptyState-BRY5jTpz.js → EmptyState-CeBl0iGd.js} +1 -1
- package/dist/client/assets/{FileViewerPane-9Bveqm9c.js → FileViewerPane-DQlpNt2S.js} +2 -2
- package/dist/client/assets/FlightObserveScreen-CDWGSKZg.js +1 -0
- package/dist/client/assets/FollowScreen-BXHOp3gb.js +1 -0
- package/dist/client/assets/{HarnessMark-BPAphNjx.js → HarnessMark-D5CA5uSp.js} +1 -1
- package/dist/client/assets/HarnessesScreen-DhFXq1qz.js +1 -0
- package/dist/client/assets/{HerdrSession-BujfGzrP.js → HerdrSession-BRhs5LIR.js} +1 -1
- package/dist/client/assets/HomeHero-7JwycwFY.css +1 -0
- package/dist/client/assets/HomeHero-DMABJuze.js +1 -0
- package/dist/client/assets/HostAdvisorView-RAociATV.js +1 -0
- package/dist/client/assets/{KnowledgeSearchInspector-B4ZY24xE.js → KnowledgeSearchInspector-CZPyVNSw.js} +1 -1
- package/dist/client/assets/KnowledgeSearchScreen-mGTKIg00.js +1 -0
- package/dist/client/assets/{LaneToolHoverCard-B7KdvQvf.js → LaneToolHoverCard-D_DMlBeT.js} +1 -1
- package/dist/client/assets/LaneTraceDetailSheet-BEHg3LmH.js +1 -0
- package/dist/client/assets/{LaneTraceEventFocus-mkMw2wJU.js → LaneTraceEventFocus-DVimcizS.js} +1 -1
- package/dist/client/assets/{MeshCanvas-CpKcWxKy.js → MeshCanvas-BOuZx4AM.js} +2 -2
- package/dist/client/assets/{MeshCanvasMinimap-C9IoGHbe.js → MeshCanvasMinimap-wL-1N94e.js} +1 -1
- package/dist/client/assets/MeshScreen-DMY9Bmh5.js +1 -0
- package/dist/client/assets/{MeshTopologyView-DFzr0IZM.js → MeshTopologyView-DiDcX5f4.js} +2 -2
- package/dist/client/assets/MessagesScreen-Eulveud3.js +1 -0
- package/dist/client/assets/{MissionContextRail-Y8QxUZGE.js → MissionContextRail-DrNKXG5u.js} +1 -1
- package/dist/client/assets/MissionControlView-ByBlHVN8.js +1 -0
- package/dist/client/assets/MissionFocusOverlay-D1i6R6Zt.js +1 -0
- package/dist/client/assets/MissionLeftAgentRow-DN9NcCML.js +1 -0
- package/dist/client/assets/MissionLogPane-DSeIv3Xo.js +1 -0
- package/dist/client/assets/NewAgentModal-V7yK6J6j.js +1 -0
- package/dist/client/assets/NewChatComposer-hlWT-nbR.js +19 -0
- package/dist/client/assets/{NewChatOrigin-DmuJ32wa.js → NewChatOrigin-DdpzE4kz.js} +1 -1
- package/dist/client/assets/ObserveEmbedScreen-l_Q3ts2q.js +2 -0
- package/dist/client/assets/ObserveTextFlow-BSEtYTxU.js +2 -0
- package/dist/client/assets/ObservedTopologyPanel-CdGUXxGR.js +2 -0
- package/dist/client/assets/OpenScoutAppShell-DN8dOSK4.js +79 -0
- package/dist/client/assets/OpsAgentsView-ntGr4pz4.js +1 -0
- package/dist/client/assets/OpsScreen-Ppen_Lmj.js +1 -0
- package/dist/client/assets/OpsSubnav-GAKsoSor.js +1 -0
- package/dist/client/assets/ProjectAgentProfile-BLlp2e6t.js +1 -0
- package/dist/client/assets/{ProjectAgentProfileBar-BLVg5EeA.js → ProjectAgentProfileBar-BQET-qrY.js} +1 -1
- package/dist/client/assets/ProjectAgentProfileHero-Ck8mThtx.js +1 -0
- package/dist/client/assets/ProjectsInbox-Dlt8OQ8O.js +2 -0
- package/dist/client/assets/ProjectsRail-DCfNMmnW.js +1 -0
- package/dist/client/assets/ProjectsScreen-BP-hmI1m.js +1 -0
- package/dist/client/assets/ProjectsThreadAside-CWpMjGIH.js +1 -0
- package/dist/client/assets/Provider-B2xuo3rf.js +1 -0
- package/dist/client/assets/RailRow-B-GycCBx.js +1 -0
- package/dist/client/assets/RailRow-B0sRaJc6.css +1 -0
- package/dist/client/assets/RawSessionsTable-AQThi6sm.js +1 -0
- package/dist/client/assets/RealtimeVoiceScreen-D7zZHK_t.js +1 -0
- package/dist/client/assets/{RepoDiffEmbedScreen-BCDXFE3D.js → RepoDiffEmbedScreen-DXWoRF_c.js} +1 -1
- package/dist/client/assets/{RepoDiffPageScreen-m62FiWXC.js → RepoDiffPageScreen-D_274ExO.js} +1 -1
- package/dist/client/assets/RepoDiffViewer-DbedmHDX.js +7 -0
- package/dist/client/assets/RepoDiffViewerLazy-C0--fPtk.js +2 -0
- package/dist/client/assets/ReposScreen-D39_YG4H.js +6 -0
- package/dist/client/assets/ScoutDeckSurface-CKT3qdqY.js +1 -0
- package/dist/client/assets/{ScoutSurface-CkgT7A-c.js → ScoutSurface-UsRy0t-I.js} +1 -1
- package/dist/client/assets/{ScoutbotFxLab-D-kV5j4T.js → ScoutbotFxLab-Fmdfboxs.js} +1 -1
- package/dist/client/assets/{SecondaryNav-_wyKjwNf.js → SecondaryNav-o2RL9H8H.js} +1 -1
- package/dist/client/assets/{SessionEmbedScreen-CJZmIBV7.js → SessionEmbedScreen-RD5XOx7R.js} +1 -1
- package/dist/client/assets/{SessionObserve-yYA8Gy5s.js → SessionObserve-Dsd0j05N.js} +9 -9
- package/dist/client/assets/{SessionObserveEvidence-cHdjYOJe.js → SessionObserveEvidence-DopQYDkD.js} +1 -1
- package/dist/client/assets/SessionRefScreen-B_cTv47v.js +1 -0
- package/dist/client/assets/SessionsScreen-Bq0Z77On.js +1 -0
- package/dist/client/assets/SettingsDrawer-R8a0TlJD.css +1 -0
- package/dist/client/assets/SettingsDrawer-_AwuopMS.js +3 -0
- package/dist/client/assets/SettingsScreen-Cw4DDfJP.js +1 -0
- package/dist/client/assets/{ShikiPane-dBS9hD-z.js → ShikiPane-BfHc_3pM.js} +1 -1
- package/dist/client/assets/{SlidePanel-CH-3-8_2.js → SlidePanel-C-q7XwTa.js} +1 -1
- package/dist/client/assets/SpriteAvatar-Bs68ZENy.js +1 -0
- package/dist/client/assets/{StatusPill-C8m9ZymF.js → StatusPill-ZZQwxB1a.js} +1 -1
- package/dist/client/assets/{TailView-B0BSopPs.js → TailView-Q4FVMsUH.js} +2 -2
- package/dist/client/assets/Terminal-D7zqHwHV.js +1 -0
- package/dist/client/assets/TerminalEmbedScreen-CXIJ7qv6.js +1 -0
- package/dist/client/assets/TerminalHeaderMount-BnBLOPbb.js +1 -0
- package/dist/client/assets/{TextDocumentSurface-BWJCGBZf.js → TextDocumentSurface-CKQP-cBT.js} +1 -1
- package/dist/client/assets/{TmuxPeek-B4QdHbGm.js → TmuxPeek-V9dGESfO.js} +1 -1
- package/dist/client/assets/{VoicePermissionsPanel-Dd4ITJy_.js → VoicePermissionsPanel-k7sbLXx2.js} +1 -1
- package/dist/client/assets/WorkDetailScreen-60p9litn.js +5 -0
- package/dist/client/assets/WorkFilesViewer-BjJS7GyM.js +1 -0
- package/dist/client/assets/{activity-CC8JzJNH.js → activity-Bj3Hnbj3.js} +1 -1
- package/dist/client/assets/{addon-fit-CaZ-uLrg.js → addon-fit-BL-NTWRU.js} +1 -1
- package/dist/client/assets/{addon-webgl-B8utL3bM.js → addon-webgl-CIMgmNjg.js} +1 -1
- package/dist/client/assets/{ScoutbotBroadcastChip-CxtYZWPZ.css → agent-autocomplete-C7xwIcwd.css} +1 -1
- package/dist/client/assets/agent-autocomplete-DXlvdc4b.js +10 -0
- package/dist/client/assets/{agent-essentials-B3wcxg_v.js → agent-essentials-BOMHR0_U.js} +1 -1
- package/dist/client/assets/{agent-lane-card-model-q4cwzLX4.js → agent-lane-card-model-CTLxf3R4.js} +1 -1
- package/dist/client/assets/agent-lane-detail-ppJId6Jc.js +2 -0
- package/dist/client/assets/{agent-lane-preview-C33Dwpn7.js → agent-lane-preview-BhplDYGf.js} +1 -1
- package/dist/client/assets/{agent-lanes-BDNktFBZ.css → agent-lanes-DlqcEf0l.css} +1 -1
- package/dist/client/assets/{agent-lanes-model-VYQ5a68i.js → agent-lanes-model-AfrjRNK5.js} +2 -2
- package/dist/client/assets/agent-specialization-BIPIBW8u.js +1 -0
- package/dist/client/assets/api-Co9aQ2Jw.js +1 -0
- package/dist/client/assets/{api-BkjHJfgJ.js → api-HFH8wFyb.js} +1 -1
- package/dist/client/assets/{arc.es-uFv9UrHn.js → arc.es-IR5r6sj_.js} +1 -1
- package/dist/client/assets/archive-BjcGiAy8.js +1 -0
- package/dist/client/assets/{arrow-down-w1HPzDSE.js → arrow-down-BydciYFZ.js} +1 -1
- package/dist/client/assets/{arrow-left-B-3GJ7ct.js → arrow-left-CghA0kTw.js} +1 -1
- package/dist/client/assets/arrow-right-iJFv3jNh.js +1 -0
- package/dist/client/assets/{arrow-up-right-G6bJXxhK.js → arrow-up-right-CCfZXPqD.js} +1 -1
- package/dist/client/assets/{bot-DzCOGKi6.js → bot-B5sub1-i.js} +1 -1
- package/dist/client/assets/broker-display-Q75fupqG.js +2 -0
- package/dist/client/assets/{cache-Dr0why2k.js → cache-CeWH_KzJ.js} +1 -1
- package/dist/client/assets/{check-BX8nRgop.js → check-C18YQC90.js} +1 -1
- package/dist/client/assets/{chevron-down-B3VVRJcV.js → chevron-down-Mp9mu_yd.js} +1 -1
- package/dist/client/assets/{chevron-right-BYMV1511.js → chevron-right-CzH-TaSF.js} +1 -1
- package/dist/client/assets/{chunk-HRAB3GC3-dRd2eQMJ.js → chunk-HRAB3GC3-swV8PA2k.js} +1 -1
- package/dist/client/assets/{chunk-JTPDIGGW-BjX67kHU.js → chunk-JTPDIGGW-BKXqcLKw.js} +3 -3
- package/dist/client/assets/{chunk-T65CQEWV-kP6nJjkU.js → chunk-T65CQEWV-vYbNJ8E6.js} +1 -1
- package/dist/client/assets/{chunk-YOZR3KYS-C13bZPVd.js → chunk-YOZR3KYS-U65yUmqt.js} +1 -1
- package/dist/client/assets/{clock-B9ukVaVn.js → clock-B4PTFi5m.js} +1 -1
- package/dist/client/assets/{code-xml-BFc3TMSm.js → code-xml-Jtxsp5d1.js} +1 -1
- package/dist/client/assets/collapsed-strip-raJWthAH.css +1 -0
- package/dist/client/assets/compass-0_54-vz3.js +1 -0
- package/dist/client/assets/content-6RvWTrtk.js +1 -0
- package/dist/client/assets/content-BCgwMUqz.js +1 -0
- package/dist/client/assets/content-Bf2VLhx0.js +1 -0
- package/dist/client/assets/content-BrU_38-m.js +1 -0
- package/dist/client/assets/content-BvvJN8rN.js +1 -0
- package/dist/client/assets/content-CAeEqYPw.js +1 -0
- package/dist/client/assets/content-CHghn-rT.js +1 -0
- package/dist/client/assets/{content-Uqt8AG-s.css → content-CINHz-rZ.css} +1 -1
- package/dist/client/assets/content-CI_Z9DXk.js +1 -0
- package/dist/client/assets/content-CbyKONhW.js +1 -0
- package/dist/client/assets/content-Czogvp43.js +1 -0
- package/dist/client/assets/content-DFk0zNzX.js +1 -0
- package/dist/client/assets/content-DHe4DgkA.js +1 -0
- package/dist/client/assets/content-DMbawvqU.js +1 -0
- package/dist/client/assets/content-DTz7cKjo.js +1 -0
- package/dist/client/assets/content-E3kudY-W.js +1 -0
- package/dist/client/assets/content-LpO0aO_U.js +1 -0
- package/dist/client/assets/{conversation-icons-gpsv650H.js → conversation-icons-BV10B2Me.js} +1 -1
- package/dist/client/assets/conversation-model-CwF6Y9gx.js +1 -0
- package/dist/client/assets/conversation-motion-features-BKkCRaWR.js +1 -0
- package/dist/client/assets/{copy-BFmOcWof.js → copy-Dtpx4FOE.js} +1 -1
- package/dist/client/assets/cpu-BjVis9mc.js +1 -0
- package/dist/client/assets/{createLucideIcon-CFBn0Sdk.js → createLucideIcon-DXpqZP7I.js} +1 -1
- package/dist/client/assets/credentials-BTce3VP1.js +1 -0
- package/dist/client/assets/ctx-panel-D_HJ3nhb.css +1 -0
- package/dist/client/assets/discover-CHbrEItO.js +2 -0
- package/dist/client/assets/embed-entry-vil28MyU.js +2 -0
- package/dist/client/assets/{external-link-B1TI5yIt.js → external-link-Ckiyzjwo.js} +1 -1
- package/dist/client/assets/{eye-1J4yOUoG.js → eye-CpfyvdLq.js} +1 -1
- package/dist/client/assets/file-code-corner-7mo7EviR.js +1 -0
- package/dist/client/assets/{file-text-DcYSrI4v.js → file-text-KijGBnME.js} +1 -1
- package/dist/client/assets/gauge-y-Xg8Mrv.js +1 -0
- package/dist/client/assets/gestures-Bq9XnSqY.js +1 -0
- package/dist/client/assets/git-branch-BQ_x8KZL.js +1 -0
- package/dist/client/assets/harnesses-screen-2z36fJKE.css +1 -0
- package/dist/client/assets/home-moving-signal-DMguaRWR.css +1 -0
- package/dist/client/assets/home-moving-signal-DtRpiNa0.js +1 -0
- package/dist/client/assets/home-now-card-DFb4GOgM.js +1 -0
- package/dist/client/assets/{home-now-card-nano-y1EhBvVL.js → home-now-card-nano-D--m9jpq.js} +1 -1
- package/dist/client/assets/hooks-9d1SoaQA.js +2 -0
- package/dist/client/assets/host-advisor-B2Fqs5Dd.css +1 -0
- package/dist/client/assets/index-BVlMw8x_.js +1 -0
- package/dist/client/assets/index-CZ-05hKz.js +10 -0
- package/dist/client/assets/index-Cn0GR-q1.js +1 -0
- package/dist/client/assets/index-DosI4AG9.js +1 -0
- package/dist/client/assets/index-i7TMxlwW.css +1 -0
- package/dist/client/assets/index-wLwc74Pu.css +1 -0
- package/dist/client/assets/inspector-panel-C-EhEDYy.js +2 -0
- package/dist/client/assets/{keyboard-nav-h1IdakpD.js → keyboard-nav-DFhAJkW3.js} +1 -1
- package/dist/client/assets/{lane-observe-BA3g9aVd.js → lane-observe-vfyACHi0.js} +1 -1
- package/dist/client/assets/{lane-roster-store-71vFgAem.js → lane-roster-store-gUBsydNf.js} +1 -1
- package/dist/client/assets/layers-CGou-LwV.js +1 -0
- package/dist/client/assets/layout-grid-BrZt31QH.js +1 -0
- package/dist/client/assets/left-B_o51JV6.js +1 -0
- package/dist/client/assets/left-BpgWnaah.js +1 -0
- package/dist/client/assets/left-CwHZCGO3.js +2 -0
- package/dist/client/assets/left-CwLs0okF.js +1 -0
- package/dist/client/assets/left-Cx0kv6pe.js +1 -0
- package/dist/client/assets/left-DA0amyfu.js +1 -0
- package/dist/client/assets/left-DH44V4I_.css +1 -0
- package/dist/client/assets/left-R2OOE7VG.css +1 -0
- package/dist/client/assets/left-advisor-DU3s01gk.js +1 -0
- package/dist/client/assets/left-agents-qL5PpUY-.js +1 -0
- package/dist/client/assets/left-default-uvuvDmt0.js +1 -0
- package/dist/client/assets/left-lanes-DnNLgec8.js +1 -0
- package/dist/client/assets/left-mission-DN3-NLPC.js +1 -0
- package/dist/client/assets/left-z-6CkuBe.js +2 -0
- package/dist/client/assets/library-DIo5NiGP.js +1 -0
- package/dist/client/assets/{loader-circle-d6PKL_KD.js → loader-circle-BiohlpM3.js} +1 -1
- package/dist/client/assets/{local-agents-B5pq17tZ.js → local-agents-wUIaBcEr.js} +1 -1
- package/dist/client/assets/{mentions-agCGDgyA.js → mentions-CcPFMbmZ.js} +1 -1
- package/dist/client/assets/mesh-buckets-ByyFXdKT.js +1 -0
- package/dist/client/assets/{mesh-ops-5pZCYptW.js → mesh-ops-CvGyjK84.js} +1 -1
- package/dist/client/assets/mesh-roster-n2nDpEmA.js +1 -0
- package/dist/client/assets/{mesh-screen-BSDUjrnV.css → mesh-screen-D1Yvo8fU.css} +1 -1
- package/dist/client/assets/{mesh-view-store-KJzABIkN.js → mesh-view-store-BpxGm71b.js} +1 -1
- package/dist/client/assets/{message-circle-CJO-pi7b.js → message-circle-B2ddzBrX.js} +1 -1
- package/dist/client/assets/{message-markup-CyRDLdOn.js → message-markup-RkfmDfME.js} +1 -1
- package/dist/client/assets/{message-square-D1hMsMj_.js → message-square-D9YYWE0x.js} +1 -1
- package/dist/client/assets/message-visibility-DwxgcgYK.js +1 -0
- package/dist/client/assets/mission-control-CnU7dNt1.css +1 -0
- package/dist/client/assets/{mission-control-store-Ce6dOvnZ.js → mission-control-store-Bf4b54MV.js} +1 -1
- package/dist/client/assets/{observe-BSWVM8YA.js → observe-CJRIvOCn.js} +1 -1
- package/dist/client/assets/{operator-attention-BwSPeheT.js → operator-attention-RqieiSY8.js} +1 -1
- package/dist/client/assets/{page-status-D2FQLJOX.js → page-status-BptpTdQ-.js} +1 -1
- package/dist/client/assets/{paperclip-iZmDMOS5.js → paperclip-B1UNGl5d.js} +1 -1
- package/dist/client/assets/perf-PX8Rx0EP.js +1 -0
- package/dist/client/assets/persistent-state-YI-WHSCF.js +1 -0
- package/dist/client/assets/{plus-gZ0T0eBI.js → plus-CuU_X0-8.js} +1 -1
- package/dist/client/assets/profile-rY8jO38P.js +1 -0
- package/dist/client/assets/projects-inbox-BBs1hG13.css +1 -0
- package/dist/client/assets/projects-inbox-D-zAb9Gp.js +1 -0
- package/dist/client/assets/proxy-DnLpZIi9.js +1 -0
- package/dist/client/assets/{radio-RMLfV4EO.js → radio-Dm1ItnA4.js} +1 -1
- package/dist/client/assets/{refresh-cw-C4x1x6b_.js → refresh-cw-BRn9Oxxl.js} +1 -1
- package/dist/client/assets/resolve-panes-DO6LkwhQ.js +1 -0
- package/dist/client/assets/resolve-sidebar-context-CIF288wY.js +1 -0
- package/dist/client/assets/right-BJltPRnd.js +1 -0
- package/dist/client/assets/right-BbyYdzHn.js +1 -0
- package/dist/client/assets/right-Beh3nCUB.js +1 -0
- package/dist/client/assets/right-C1yumXNx.js +1 -0
- package/dist/client/assets/{right-D-k9Z1Fe.js → right-CJnB_Bg7.js} +2 -2
- package/dist/client/assets/right-CPP7GyOm.js +1 -0
- package/dist/client/assets/right-D3aTKf1F.js +1 -0
- package/dist/client/assets/right-DI1B79nR.js +1 -0
- package/dist/client/assets/right-DtsRNX5b.js +1 -0
- package/dist/client/assets/right-Shpw_xDy.js +1 -0
- package/dist/client/assets/{rocket-CMM-IdLy.js → rocket-DOwXHKWA.js} +1 -1
- package/dist/client/assets/router-DJj2WbDg.js +1 -0
- package/dist/client/assets/{scope-views-BIfMTXU4.js → scope-views-A4_vP97W.js} +1 -1
- package/dist/client/assets/scout-voice-BhPzrc6P.js +1 -0
- package/dist/client/assets/{scoutbot-BTIErYHo.js → scoutbot-BJIamJOH.js} +2 -2
- package/dist/client/assets/scoutbot-markdown-jh7tzFB1.js +6 -0
- package/dist/client/assets/{scroll-text-DPPYrqB9.js → scroll-text-DO0GQzvN.js} +1 -1
- package/dist/client/assets/{search-DAyagUtF.js → search-D1tJSAWe.js} +1 -1
- package/dist/client/assets/secondaryNavConfig-B9IF8wXl.js +1 -0
- package/dist/client/assets/{selection-bridge-BXw09aRF.js → selection-bridge-i2S9zpf8.js} +1 -1
- package/dist/client/assets/{send-horizontal-IcG46D2M.js → send-horizontal-CgLppsIC.js} +1 -1
- package/dist/client/assets/{server-BySujhDV.js → server-Dymv5Emh.js} +1 -1
- package/dist/client/assets/{session-catalog-ClS9xf6i.js → session-catalog-DNaOEzoQ.js} +1 -1
- package/dist/client/assets/{session-table-BdpHs1GN.js → session-table-PTQVoTyc.js} +1 -1
- package/dist/client/assets/settings-2fC_G9nX.js +1 -0
- package/dist/client/assets/{sliders-horizontal-R5pWUUcH.js → sliders-horizontal-BPSMHhbm.js} +1 -1
- package/dist/client/assets/{sparkles-DJOBD_8l.js → sparkles-Dy8p5xN8.js} +1 -1
- package/dist/client/assets/sse-CiOSzE5n.js +1 -0
- package/dist/client/assets/system-surfaces-redesign-QVXNeGYw.css +1 -0
- package/dist/client/assets/{tail-display-BRcJltQa.js → tail-display-DcliDVkW.js} +1 -1
- package/dist/client/assets/{tail-events-BdvqZHLr.js → tail-events-BMQmSx1n.js} +1 -1
- package/dist/client/assets/{terminal-relay-TffuSPGs.js → terminal-relay-9lhzEp2V.js} +1 -1
- package/dist/client/assets/terminal-screen-BLk4PAYt.css +1 -0
- package/dist/client/assets/terminal-sessions-BQ6t92tJ.js +1 -0
- package/dist/client/assets/{terminal-takeover-BOFPRPjR.js → terminal-takeover-DANQfTcy.js} +1 -1
- package/dist/client/assets/{terminal-DJPUp_Qn.js → terminal-yN9xN-h9.js} +1 -1
- package/dist/client/assets/{runtime-picker--IW3cRry.js → text-CnZ0e1-V.js} +1 -1
- package/dist/client/assets/text-rLpBg4_z.css +1 -0
- package/dist/client/assets/use-conversation-list-D9BNLfnW.js +1 -0
- package/dist/client/assets/{use-fleet-active-asks-BHzeBZSW.js → use-fleet-active-asks-BeAdcl09.js} +1 -1
- package/dist/client/assets/{use-mesh-ops-items-KmaauBr_.js → use-mesh-ops-items-BIvIHlqe.js} +1 -1
- package/dist/client/assets/use-reduced-motion-CKkhq9c5.js +1 -0
- package/dist/client/assets/{use-scout-dev-flags-BJbw87PK.js → use-scout-dev-flags-B2KCzPxn.js} +1 -1
- package/dist/client/assets/{useAgentHoverCard-C6o0tlat.js → useAgentHoverCard-CHBsxcbp.js} +1 -1
- package/dist/client/assets/useContentSecondaryNav-D0mUhxTF.js +1 -0
- package/dist/client/assets/{usePierreRuntime-Cm7-qdm0.js → usePierreRuntime-DUuXH5yp.js} +1 -1
- package/dist/client/assets/{wrench-CvRjjByE.js → wrench-YcXMlsh2.js} +1 -1
- package/dist/client/assets/{x-C8ayPBtj.js → x-e3h2hDsp.js} +1 -1
- package/dist/client/assets/{xterm-B0ci4Q9a.js → xterm-Byp1Hep_.js} +1 -1
- package/dist/client/assets/zap-nMcjPoWB.js +1 -0
- package/dist/client/favicon-16.png +0 -0
- package/dist/client/favicon-32.png +0 -0
- package/dist/client/favicon.ico +0 -0
- package/dist/client/favicon.svg +20 -47
- package/dist/client/index.html +5 -5
- package/dist/client/openscout-icon.png +0 -0
- package/dist/client/site.webmanifest +2 -2
- package/dist/client/web-app-icon-192.png +0 -0
- package/dist/client/web-app-icon-512.png +0 -0
- package/dist/main.mjs +20095 -78203
- package/dist/node/main.mjs +322 -252
- package/dist/pairing-runtime-controller.mjs +1032 -804
- package/dist/runtime/base-daemon.mjs +49 -121
- package/dist/runtime/broker-daemon.mjs +1105 -281
- package/dist/runtime/broker-process-manager.mjs +6 -0
- package/dist/runtime/mesh-discover.mjs +6 -0
- package/dist/scout-control-plane-web.mjs +3326 -1912
- package/package.json +27 -5
- package/dist/client/assets/ActivityScreen-DkUP7V7M.js +0 -1
- package/dist/client/assets/AgentAvatar-D8ZtMluU.js +0 -1
- package/dist/client/assets/AgentConfigurationScreen-BlGI6fuM.js +0 -1
- package/dist/client/assets/AgentDefinitionsWorkspace-CfaDVCVt.js +0 -1
- package/dist/client/assets/AgentFloorView-DjNLILLt.js +0 -1
- package/dist/client/assets/AgentInfoScreen-DG5dlHb_.js +0 -1
- package/dist/client/assets/AgentLaneDetailSheet-BzYzBfcW.js +0 -4
- package/dist/client/assets/AgentLanesEmbedScreen-Crxx1srt.js +0 -1
- package/dist/client/assets/AgentLanesView-ChNlmY-F.js +0 -2
- package/dist/client/assets/AgentSessions-DpY0htZV.js +0 -6
- package/dist/client/assets/AgentsConsole-CHyXrjhm.js +0 -1
- package/dist/client/assets/AgentsScreen-BhCjX2lD.js +0 -1
- package/dist/client/assets/AgentsSubnav-az_VDkri.js +0 -1
- package/dist/client/assets/AtopView-BjjPM8OX.js +0 -1
- package/dist/client/assets/BriefingDetailScreen-B7qJ90Np.js +0 -6
- package/dist/client/assets/BriefingsScreen-CW6N829d.js +0 -1
- package/dist/client/assets/BrokerScreen-X3z50712.js +0 -5
- package/dist/client/assets/ChatCollapsedStrip-DNR9osDy.js +0 -1
- package/dist/client/assets/CodeScreen-CIKK1LcZ.js +0 -1
- package/dist/client/assets/ContextMenu-CHIuVKz7.js +0 -1
- package/dist/client/assets/ConversationComposer-Bf7Ga_49.js +0 -1
- package/dist/client/assets/ConversationFeedRows-Cm1Lgo43.js +0 -1
- package/dist/client/assets/ConversationHeader-B_GXrKR0.js +0 -1
- package/dist/client/assets/ConversationPanels-BTBbEvrP.js +0 -2
- package/dist/client/assets/ConversationScreen-B3l2m3JI.js +0 -1
- package/dist/client/assets/ConversationScreen-yIKEsm-8.css +0 -1
- package/dist/client/assets/ConversationStatus-BqhUHD85.js +0 -1
- package/dist/client/assets/DispatchAftermath-BDA9CrOd.js +0 -1
- package/dist/client/assets/DocumentFocusViewer-B9vodVmG.js +0 -1
- package/dist/client/assets/FleetSearch-Bj9SCl2f.js +0 -1
- package/dist/client/assets/FleetSearch-EXOe8ulE.css +0 -1
- package/dist/client/assets/FlightObserveScreen-BVMdsiCC.js +0 -1
- package/dist/client/assets/FollowScreen-BifwHWOV.js +0 -1
- package/dist/client/assets/HarnessesScreen-fMnbnrD4.js +0 -1
- package/dist/client/assets/HomeHero-BgM6S39l.js +0 -1
- package/dist/client/assets/HomeHero-DEl-WBsT.css +0 -1
- package/dist/client/assets/KnowledgeSearchScreen-Ch_WENUC.js +0 -1
- package/dist/client/assets/LaneTraceDetailSheet-H3AnN-vN.js +0 -1
- package/dist/client/assets/MeshScreen-48QkJSDI.js +0 -1
- package/dist/client/assets/MessageComposerSuggestions-FdVHnT_q.js +0 -1
- package/dist/client/assets/MessagesScreen-BMOOfbWX.js +0 -1
- package/dist/client/assets/MissionControlView-BpsHKu1F.js +0 -1
- package/dist/client/assets/MissionFocusOverlay-BPnAEA3F.js +0 -1
- package/dist/client/assets/MissionLeftAgentRow-iOZ6ds9L.js +0 -1
- package/dist/client/assets/MissionLogPane-B0csI89E.js +0 -1
- package/dist/client/assets/NewAgentModal-DBHJR9Qm.js +0 -1
- package/dist/client/assets/NewChatComposer-Hd7pI5Ac.js +0 -19
- package/dist/client/assets/ObserveEmbedScreen-DyArn7Id.js +0 -2
- package/dist/client/assets/ObserveTextFlow-CkMrtT8s.js +0 -2
- package/dist/client/assets/ObservedTopologyPanel-CaSZZP05.js +0 -2
- package/dist/client/assets/OpenScoutAppShell-BtlKkiuF.js +0 -87
- package/dist/client/assets/OpsAgentsView-CnqrwbC2.js +0 -1
- package/dist/client/assets/OpsScreen-DOlmlVkP.js +0 -1
- package/dist/client/assets/OpsSubnav-Dj3ShAKv.js +0 -1
- package/dist/client/assets/PlanView-BLGdWDx6.js +0 -1
- package/dist/client/assets/ProjectAgentProfile-Dv1sVnQl.js +0 -1
- package/dist/client/assets/ProjectAgentProfileHero-0-GDhsPT.js +0 -1
- package/dist/client/assets/ProjectsInbox-B3DpAI5b.js +0 -2
- package/dist/client/assets/ProjectsRail-BDl7U9Jq.js +0 -1
- package/dist/client/assets/ProjectsScreen-Dl2FcGrR.js +0 -1
- package/dist/client/assets/ProjectsThreadAside-BcGC5mHE.js +0 -1
- package/dist/client/assets/Provider-cJCdHAxu.js +0 -1
- package/dist/client/assets/RailRow-CLcVmywd.js +0 -1
- package/dist/client/assets/RailRow-Cf9LOiEj.css +0 -1
- package/dist/client/assets/RawSessionsTable-DBto4Ts-.js +0 -1
- package/dist/client/assets/RealtimeVoiceScreen-DXEU5v3g.js +0 -1
- package/dist/client/assets/RepoDiffViewer-PaNeZMhJ.js +0 -7
- package/dist/client/assets/RepoDiffViewerLazy-CWE5GxMP.js +0 -2
- package/dist/client/assets/ReposScreen-Cksv1cAD.js +0 -6
- package/dist/client/assets/ScoutDeckSurface-BCjPl7C4.js +0 -1
- package/dist/client/assets/ScoutbotBroadcastChip-DkiRCHuK.js +0 -2
- package/dist/client/assets/ScoutbotRealtimeVoiceCall-1ixiEn1L.js +0 -1
- package/dist/client/assets/SessionRefScreen-OkTY7Szg.js +0 -1
- package/dist/client/assets/SessionsScreen-B-GFjxIA.js +0 -1
- package/dist/client/assets/SettingsDrawer-Co11RFX0.js +0 -3
- package/dist/client/assets/SettingsDrawer-UX7pFJU_.css +0 -1
- package/dist/client/assets/SettingsScreen-Cn09nq5_.js +0 -1
- package/dist/client/assets/SpriteAvatar-DS6Tmyua.js +0 -1
- package/dist/client/assets/Terminal-U8gjIdm3.js +0 -1
- package/dist/client/assets/TerminalEmbedScreen-CTmdE7us.js +0 -1
- package/dist/client/assets/WorkDetailScreen-mJs0mb99.js +0 -5
- package/dist/client/assets/WorkFilesViewer-ODzLXKxj.js +0 -1
- package/dist/client/assets/agent-identity-BxCsXnDp.js +0 -1
- package/dist/client/assets/agent-lane-detail-BNNm6FNu.js +0 -2
- package/dist/client/assets/api-h5zurxmi.js +0 -1
- package/dist/client/assets/broker-display-pp33bLsu.js +0 -2
- package/dist/client/assets/collapsed-strip-Dz-of2SM.css +0 -1
- package/dist/client/assets/content-B8gahuBy.js +0 -1
- package/dist/client/assets/content-BIqX06OQ.js +0 -1
- package/dist/client/assets/content-BKDZ6Fxe.js +0 -1
- package/dist/client/assets/content-C15Ya-iu.js +0 -1
- package/dist/client/assets/content-CDE9tJDF.js +0 -1
- package/dist/client/assets/content-CSAfI-PX.js +0 -1
- package/dist/client/assets/content-CTF9D60D.js +0 -1
- package/dist/client/assets/content-CbAGkYQO.js +0 -1
- package/dist/client/assets/content-CtqLJOVp.js +0 -1
- package/dist/client/assets/content-Dvs1KRfo.js +0 -1
- package/dist/client/assets/content-DyJdVZjI.js +0 -1
- package/dist/client/assets/content-Ji7ATaf7.js +0 -1
- package/dist/client/assets/content-eqZXKWcP.js +0 -1
- package/dist/client/assets/content-iyyQKwvA.js +0 -1
- package/dist/client/assets/content-pDE7Fpb9.js +0 -1
- package/dist/client/assets/content-pPSd2dua.js +0 -1
- package/dist/client/assets/conversation-model-CHwHZNw-.js +0 -1
- package/dist/client/assets/conversation-motion-features-DXtKlmuM.js +0 -1
- package/dist/client/assets/ctx-panel-B4s49N9e.css +0 -1
- package/dist/client/assets/discover-DKf0aTr_.js +0 -2
- package/dist/client/assets/embed-entry-RlQUTtc4.js +0 -2
- package/dist/client/assets/gestures-CcEOV6Sr.js +0 -1
- package/dist/client/assets/harnesses-screen-DBZoTZz8.css +0 -1
- package/dist/client/assets/home-moving-signal-Bh2FugbH.js +0 -1
- package/dist/client/assets/home-moving-signal-CAa0V91u.css +0 -1
- package/dist/client/assets/home-now-card-ByRH5fFx.js +0 -1
- package/dist/client/assets/hooks-DUZwL3Aq.js +0 -2
- package/dist/client/assets/index-BBznYVWk.css +0 -1
- package/dist/client/assets/index-BTuq-8Iv.js +0 -1
- package/dist/client/assets/index-CmwGCxUk.js +0 -1
- package/dist/client/assets/index-CvF09yvf.css +0 -1
- package/dist/client/assets/index-DmFAhGPj.js +0 -10
- package/dist/client/assets/index-Dtaswdsh.js +0 -1
- package/dist/client/assets/inspector-panel-DzgS5_Mv.js +0 -2
- package/dist/client/assets/left-8NITBvFX.js +0 -1
- package/dist/client/assets/left-B2HEqrTM.js +0 -2
- package/dist/client/assets/left-Bk3XnxPD.css +0 -1
- package/dist/client/assets/left-CCoobxPS.css +0 -1
- package/dist/client/assets/left-CTYUvXbe.js +0 -1
- package/dist/client/assets/left-CwDRT50z.js +0 -2
- package/dist/client/assets/left-CxlDLJlw.js +0 -1
- package/dist/client/assets/left-XFXxNd4g.js +0 -1
- package/dist/client/assets/left-agents-Ck4Xn-R8.js +0 -1
- package/dist/client/assets/left-default-BeOyS0bR.js +0 -1
- package/dist/client/assets/left-lanes-DZp3jJMo.js +0 -1
- package/dist/client/assets/left-mission-CuKFQ5xL.js +0 -1
- package/dist/client/assets/left-p1hkO6P0.js +0 -1
- package/dist/client/assets/left-plan-3rrFENhp.js +0 -2
- package/dist/client/assets/library-E--gKzEZ.js +0 -1
- package/dist/client/assets/mesh-buckets-CfAukILK.js +0 -1
- package/dist/client/assets/message-visibility-kJM8XcSG.js +0 -1
- package/dist/client/assets/mission-control-m3BTDQ9l.css +0 -1
- package/dist/client/assets/model-Co0zkMIc.js +0 -1
- package/dist/client/assets/plan-view-D56fneVF.css +0 -1
- package/dist/client/assets/profile-Dxj3VVOM.js +0 -1
- package/dist/client/assets/projects-inbox-COZ23dLR.css +0 -1
- package/dist/client/assets/projects-inbox-Dzt_GQDv.js +0 -1
- package/dist/client/assets/resolve-panes-C9gF0w4e.js +0 -1
- package/dist/client/assets/resolve-sidebar-context-DxbY5RCH.js +0 -1
- package/dist/client/assets/right-5L7Tn0zG.js +0 -1
- package/dist/client/assets/right-CYtkMmRu.js +0 -1
- package/dist/client/assets/right-CreoQzPP.js +0 -1
- package/dist/client/assets/right-D9xFfy2b.js +0 -1
- package/dist/client/assets/right-DI7zHADe.js +0 -1
- package/dist/client/assets/right-DUbJ3WVc.js +0 -1
- package/dist/client/assets/right-DiybhsiK.js +0 -1
- package/dist/client/assets/right-Jh_1Q88s.js +0 -1
- package/dist/client/assets/right-udr1qTJG.js +0 -1
- package/dist/client/assets/router-Cn_s9IGH.js +0 -1
- package/dist/client/assets/runtime-picker-vhm0gtLs.css +0 -1
- package/dist/client/assets/scout-voice-CwbOz6EN.js +0 -1
- package/dist/client/assets/secondaryNavConfig-Dw3gS1jR.js +0 -1
- package/dist/client/assets/sse-CxXt4tqI.js +0 -1
- package/dist/client/assets/system-surfaces-redesign-B7GQhfpw.css +0 -1
- package/dist/client/assets/terminal-screen-BqVnCwl0.css +0 -1
- package/dist/client/assets/terminal-sessions-AmSgHklm.js +0 -1
- package/dist/client/assets/text-DsBWV_4k.js +0 -1
- package/dist/client/assets/use-conversation-list-C-dPcjQe.js +0 -1
- package/dist/client/assets/use-reduced-motion-CYqhYqHO.js +0 -1
- package/dist/client/assets/useContentSecondaryNav-DjHBrgnS.js +0 -1
- package/dist/highlights-eq9cgrbb.scm +0 -604
- package/dist/highlights-ghv9g403.scm +0 -205
- package/dist/highlights-hk7bwhj4.scm +0 -284
- package/dist/highlights-r812a2qc.scm +0 -150
- package/dist/highlights-x6tmsnaa.scm +0 -115
- package/dist/injections-73j83es3.scm +0 -27
- package/dist/tree-sitter-javascript-nd0q4pe9.wasm +0 -0
- package/dist/tree-sitter-markdown-411r6y9b.wasm +0 -0
- package/dist/tree-sitter-markdown_inline-j5349f42.wasm +0 -0
- package/dist/tree-sitter-typescript-zxjzwt75.wasm +0 -0
- package/dist/tree-sitter-zig-e78zbjpm.wasm +0 -0
- /package/dist/client/assets/{document-focus-viewer-BSC_JwVE.css → DocumentFocusViewer-BSC_JwVE.css} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as L,j as Nn,O as ce,P as Mn,Q as Ne,R as Me,A as Bn,T as zn,B as k,D as h,U as Wn,V as J,W as Kn,X as Gn}from"./index-CZ-05hKz.js";import{b as Hn}from"./perf-PX8Rx0EP.js";import{n as ue}from"./synthetic-agent-routing-aduMYO7P.js";import{o as Vn,q as Be,n as Yn,u as qn}from"./terminal-sessions-BQ6t92tJ.js";var ze=["local","url","sharedConfig","env"];function We(e){const n=Qn(e),t=e.audienceIncludes??Xn(e.audienceOrder),s=new Set;function o(a){!e.warnOnUnknown||s.has(a)||(s.add(a),typeof console<"u"&&typeof console.warn=="function"&&console.warn(`[hudsonkit/flags] Unknown feature flag "${a}" resolved false.`))}const r=e.registry;function i(a){const c=r[a];if(!c)return o(a),{key:a,enabled:!1,value:!1,layer:"default",audience:n,reason:"unknown-flag"};const d=Zn(e.layers,a);return d?{key:a,enabled:d.value,value:d.value,layer:d.layer,audience:n,requiredTier:c.tier,reason:"override",definition:c}:c.defaultEnabled?c.tier&&!t(n,c.tier)?{key:a,enabled:!1,value:!1,layer:"default",audience:n,requiredTier:c.tier,reason:"audience-denied",definition:c}:{key:a,enabled:!0,value:!0,layer:"default",audience:n,requiredTier:c.tier,reason:"default",definition:c}:{key:a,enabled:!1,value:!1,layer:"default",audience:n,requiredTier:c.tier,reason:"default",definition:c}}return{registry:e.registry,isEnabled:a=>i(String(a)).enabled,explain:a=>i(String(a)),all:()=>Object.keys(e.registry).sort().map(i),audience:()=>n}}function Qn(e){let n=e.audience.tier;for(const t of ze.slice().reverse()){const s=e.layers?.[t]?.audience;s&&(n=s)}return{...e.audience,tier:n}}function Xn(e){return(n,t)=>{if(n.tier===t)return!0;if(!e||e.length===0)return!1;const s=e.indexOf(n.tier),o=e.indexOf(t);return s<0||o<0?!1:s>=o}}function Zn(e,n){for(const t of ze){const s=Jn(e?.[t]?.flags?.[n]);if(s!==null)return{layer:t,value:s}}return null}function Jn(e){return e===!0||e==="on"?!0:e===!1||e==="off"?!1:null}function et(e){if(e===!0||e===!1)return e;if(typeof e=="number"){if(e===1)return!0;if(e===0)return!1}if(typeof e!="string")return;const n=e.trim().toLowerCase();if(["1","true","on","yes","enabled","enable"].includes(n))return!0;if(["0","false","off","no","disabled","disable"].includes(n))return!1;if(["default","null","unset","clear"].includes(n))return"default"}function nt(e,n={}){const t=n.paramPrefix??"ff.",s=n.audienceParam??"ffAudience",o=typeof e=="string"?new URL(e,"http://hudson.local"):e,r={};let i;for(const[a,c]of o.searchParams.entries()){if(a===s&&c.trim()&&(i=c.trim()),!a.startsWith(t))continue;const d=a.slice(t.length),f=et(c);d&&f!==void 0&&(r[d]=f)}return{flags:r,audience:i}}var D=1;function Ke(e){if(typeof window>"u")return{version:D};try{const n=window.localStorage?.getItem(e);return tt(n)}catch{return{version:D}}}function q(e,n){if(typeof window>"u")return;const t=Ge(n),s=JSON.stringify(t);try{window.localStorage?.setItem(e,s)}catch{}st(e,s)}function tt(e){if(!e)return{version:D};try{const n=JSON.parse(e);return!n||typeof n!="object"?{version:D}:Ge(n)}catch{return{version:D}}}function Ge(e){const n={version:D};if(e.audience&&(n.audience=e.audience),e.flags&&typeof e.flags=="object"){n.flags={};for(const[t,s]of Object.entries(e.flags))(s===!0||s===!1)&&(n.flags[t]=s);Object.keys(n.flags).length===0&&delete n.flags}return n}function st(e,n){if(!(typeof document>"u"))try{const t=encodeURIComponent(n);document.cookie=`${encodeURIComponent(e)}=${t}; Path=/; SameSite=Lax; Max-Age=31536000`}catch{}}var ot="hudson.flags",He=L.createContext(null);function js({registry:e,audience:n,audienceOrder:t,audienceIncludes:s,initialLayers:o,storageKey:r=ot,warnOnUnknown:i=!1,children:a}){const[c,d]=L.useState(()=>{const g=o?.local;return{version:1,audience:g?.audience??void 0,flags:rt(g)}});L.useEffect(()=>{const g=Ke(r);(g.audience||Object.keys(g.flags??{}).length>0)&&d(g)},[r]);const f=L.useMemo(()=>({...o,local:{...o?.local,audience:c.audience??o?.local?.audience,flags:{...o?.local?.flags??{},...c.flags??{}}}}),[o,c]),S=L.useMemo(()=>We({registry:e,audience:n,audienceOrder:t,audienceIncludes:s,layers:f,warnOnUnknown:i}),[e,n,t,s,f,i]),A=L.useMemo(()=>({...S,layers:f,storageKey:r,setLocalOverride:(g,w)=>{d(R=>{const U={...R.flags??{}};w===null?delete U[g]:U[g]=w;const _={...R,version:1,flags:U};return q(r,_),_})},setLocalAudienceOverride:g=>{d(w=>{const R={...w,version:1,audience:g??void 0};return q(r,R),R})},resetLocalOverrides:()=>{const g={version:1};q(r,g),d(g)}}),[S,f,r]);return Nn.jsx(He.Provider,{value:A,children:a})}function Ve(){return L.useContext(He)}function Ns(){const e=Ve();if(!e)throw new Error("useFeatureFlags must be used within FeatureFlagsProvider");return e}function Ms(e,n=!0){return Ve()?.isEnabled(e)??n}function rt(e){if(!e?.flags)return;const n={};for(const[t,s]of Object.entries(e.flags))(s===!0||s===!1)&&(n[t]=s);return Object.keys(n).length>0?n:void 0}const at=["ops.control","ops.mesh","ops.runtime","ops.plans","ops.terminal"],it=["surface.search","surface.sessions","surface.briefings","surface.work","surface.activity","surface.follow","surface.scoutbot","surface.workflows"];function ye(e,n){return Object.fromEntries(e.map(t=>[t,n]))}const Ye={label:"Surface · Scope",description:`Scope presentation on Scout infra — lean lanes/tail/sessions/agents at ${Mn}/*.`,defaultEnabled:!1,tier:"everyone",owner:"scout-web",tags:["surface","scope","observability"]},ct={...Ye,label:"Surface · Scope (legacy alias)",description:`Legacy alias for ${ce}. Prefer the primary flag; ${Ne} remains for old dev links.`},Bs=ce;function ut(){return{audience:"everyone",flags:{"ops.control":!0,"ops.lanes":!0,...ye(at,!1),...ye(it,!1)}}}const qe=["ffBundle","ffVariant","scoutBundle","scoutExperience","ab"],Qe=["ffGlobal","scoutGlobalBundle"],Xe=["ffPersist","persistBundle"],lt=new Set(["no-ops","ffAudience",...qe,...Qe,...Xe]);function zs(e){for(const n of[...e.searchParams.keys()])(lt.has(n)||n.startsWith("ff."))&&e.searchParams.delete(n);return e}const dt=["everyone","internal","power"],ft="openscout.flags",ee="openscout.flagBundle",mt={tier:"power"},Ee=["ops.control","ops.mesh","ops.runtime","ops.plans","ops.terminal","ops.lanes"],$e=["surface.search","surface.sessions","surface.briefings","surface.work","surface.activity","surface.follow","surface.mesh-ops","surface.scoutbot","surface.workflows"],pt={"nav.sidebar":{label:"Nav · Sidebar",description:"Classic sidebar chrome (8 primary areas + icon rail). Default on since sco-083 soak; opt out with ?ff.nav.sidebar=off. Not included in max-pro.",defaultEnabled:!0,tier:"everyone",owner:"scout-web",tags:["nav","chrome"]},"ops.control":{label:"Ops · Control",description:"Mission control, issues, and the Ops section shell.",defaultEnabled:!0,tier:"power",owner:"scout-web",tags:["ops","nav"]},"ops.mesh":{label:"Ops · Mesh",description:"Mesh topology and peer status.",defaultEnabled:!0,tier:"power",owner:"scout-web",tags:["ops"]},"ops.runtime":{label:"Ops · Runtime",description:"Runtime / atop process telemetry.",defaultEnabled:!0,tier:"power",owner:"scout-web",tags:["ops"]},"ops.plans":{label:"Ops · Plans",description:"Plan documents and plan-mode review.",defaultEnabled:!0,tier:"power",owner:"scout-web",tags:["ops"]},"ops.terminal":{label:"Ops · Terminal",description:"Observe / takeover terminal sessions.",defaultEnabled:!0,tier:"power",owner:"scout-web",tags:["ops"]},"ops.lanes":{label:"Ops · Agent Lanes",description:"One column per local agent — follow live harness work in power-user mode.",defaultEnabled:!0,tier:"power",owner:"scout-web",tags:["ops"]},"surface.search":{label:"Surface · Search",description:"Knowledge + indexer search as a top-level nav entry.",defaultEnabled:!1,tier:"everyone",owner:"scout-web",tags:["surface","nav"]},"surface.sessions":{label:"Surface · Sessions",description:"Standalone top-level Sessions entry (still reachable under Agents).",defaultEnabled:!1,tier:"everyone",owner:"scout-web",tags:["surface","nav"]},"surface.briefings":{label:"Surface · Briefings",description:"Briefings list + detail.",defaultEnabled:!1,tier:"everyone",owner:"scout-web",tags:["surface"]},"surface.work":{label:"Surface · Work",description:"Work item detail.",defaultEnabled:!1,tier:"everyone",owner:"scout-web",tags:["surface"]},"surface.activity":{label:"Surface · Activity",description:"Activity stream.",defaultEnabled:!1,tier:"everyone",owner:"scout-web",tags:["surface"]},"surface.follow":{label:"Surface · Follow",description:"Follow view.",defaultEnabled:!1,tier:"everyone",owner:"scout-web",tags:["surface"]},"surface.mesh-ops":{label:"Surface · Mesh Ops",description:"Mesh Ops — work-item triage over the mesh (hosts rail, item list, inspector).",defaultEnabled:!1,tier:"everyone",owner:"scout-web",tags:["surface","ops"]},"surface.scoutbot":{label:"Surface · Scoutbot",description:"Scoutbot assistant — the inspector panel, the status-bar broadcast chip, and the Message-Scout command-palette actions.",defaultEnabled:!0,tier:"everyone",owner:"scout-web",tags:["surface","assistant"]},"surface.realtime-voice":{label:"Surface · Realtime voice",description:"Live WebRTC voice conversations with Scoutbot through OpenAI Realtime. Operator enablement lives in Settings → Voice; this flag is a build-level kill switch.",defaultEnabled:!0,tier:"everyone",owner:"scout-web",tags:["surface","assistant","voice"]},"surface.workflows":{label:"Surface · Workflows",description:"Observed harness families / workflow topology telemetry on the Agents directory. Off in the lean view — the directory is just the project-grouped agent board.",defaultEnabled:!1,tier:"everyone",owner:"scout-web",tags:["surface","observability"]},[ce]:Ye,[Ne]:ct},gt={a:"light-prod",control:"light-prod",light:"light-prod","light-prod":"light-prod",prod:"light-prod",production:"light-prod",b:"max-pro",max:"max-pro","max-pro":"max-pro",pro:"max-pro",treatment:"max-pro",...zn},Re=new Set(["clear","default","none","reset","unset"]);function K(e,n){return Object.fromEntries(e.map(t=>[t,n]))}function Ze(...e){const n={};for(const t of e)t.audience&&(n.audience=t.audience),t.flags&&Object.keys(t.flags).length>0&&(n.flags={...n.flags??{},...t.flags});return n}function le(e){switch(e){case"light-prod":return{audience:"everyone",flags:{...K(Ee,!1),...K($e,!1)}};case"max-pro":return{audience:"power",flags:{...K(Ee,!0),...K($e,!0)}};case Bn:return ut()}}function j(e){return e?gt[e.trim().toLowerCase()]??null:null}function ne(e,n){for(const t of n){const s=e.get(t);if(s!==null)return s}return null}function Je(e){const n=ne(e,qe);return j(n)}function ht(e){const n=ne(e,Qe);if(n){const i=n.trim().toLowerCase();if(Re.has(i))return{action:"clear"};const a=j(n);return a?{action:"set",bundle:a}:null}const t=ne(e,Xe);if(!t)return null;const s=t.trim().toLowerCase();if(Re.has(s))return{action:"clear"};if(["0","false","no"].includes(s))return null;const o=j(t);if(o)return{action:"set",bundle:o};const r=Je(e);return r?{action:"set",bundle:r}:null}function en(){if(typeof window>"u")return null;try{return j(window.localStorage.getItem(ee))}catch{return null}}function wt(e){if(!(typeof window>"u"))try{e.action==="clear"?window.localStorage.removeItem(ee):window.localStorage.setItem(ee,e.bundle)}catch{}}function Ws(){return en()??j(Me())??tn}function nn(){const e=en();return e?le(e):{}}const tn="light-prod";function sn(){const e=j(Me())??tn;return le(e)}function It(e){const n=ht(e);n&&wt(n)}function on(e=new URLSearchParams(window.location.search)){const n=nt(window.location.href),t=Je(e),s=t?le(t):{},o={audience:n.audience??s.audience,flags:{...s.flags??{},...n.flags??{}}};return e.has("no-ops")&&(o.flags={...o.flags,"ops.control":!1}),o}function vt(){const e=Ke(ft);return{flags:e.flags,audience:e.audience??void 0}}function Ks(){if(typeof window>"u")return{};const e=new URLSearchParams(window.location.search);return It(e),{sharedConfig:Ze(sn(),nn()),url:on(e)}}function St(e){const n=typeof window>"u"?{}:{sharedConfig:Ze(sn(),nn()),url:on(),local:vt()};return We({registry:pt,audience:mt,audienceOrder:dt,layers:n,warnOnUnknown:!1}).isEnabled(e)}function rn(){return St("ops.control")}const te={sm:408,md:512,lg:616},an=240,cn=640,bt=24,un="openscout:lane-deck:v1",Lt=new Set(["web.ops","macos.lanes","hud.tail","web.embed"]),de=new Set(["sm","md","lg"]),ln={"web.ops":{defaultLaneWidth:"lg",showAutoLanes:!0},"macos.lanes":{defaultLaneWidth:"md",showAutoLanes:!0},"hud.tail":{defaultLaneWidth:"sm",showAutoLanes:!0,defaultHorizon:"30m"},"web.embed":{defaultLaneWidth:"md",showAutoLanes:!0}},yt=ln["web.ops"];function fe(e){return dn(e)?ln[e]:yt}const H={pinned_left:0,main:1,pinned_right:2};function dn(e){return Lt.has(e)}function Gs(e=window.location.search,n=window.location.pathname){const t=new URLSearchParams(e),s=t.get("profile")?.trim().toLowerCase();if(s&&dn(s))return s;const o=t.get("embed")?.trim().toLowerCase();return o==="hud"?"hud.tail":o==="app"?"macos.lanes":n.includes("/lanes/embed")?"web.embed":(n.includes("/ops/lanes"),"web.ops")}function Hs(e=window.location.search){const n=new URLSearchParams(e),t=(n.get("lanes")??n.get("size"))?.trim().toLowerCase();return t&&de.has(t)?t:"lg"}function Vs(e,n){if(typeof e=="number"&&Number.isFinite(e))return Math.min(cn,Math.max(an,Math.round(e)));const t=typeof e=="string"&&de.has(e)?e:n;return te[t]}function Ys(e){const n=Math.min(cn,Math.max(an,Math.round(e)));let t=null,s=Number.POSITIVE_INFINITY;for(const[o,r]of Object.entries(te)){const i=Math.abs(r-n);i<s&&(s=i,t=o)}return t&&s<=bt?{px:te[t],tier:t}:{px:n,tier:null}}function me(e,n,t){return{version:1,profileId:e,defaultLaneWidth:n??t.defaultLaneWidth,defaultHorizon:t.defaultHorizon,laneWidths:{},laneDefs:[],slots:[],showAutoLanes:t.showAutoLanes,updatedAt:Date.now()}}function Pe(e,n){const t=fe(e);return me(e,n,t)}function se(e){if(typeof e=="number"&&Number.isFinite(e)||typeof e=="string"&&de.has(e))return e}function Et(e){if(!e||typeof e!="object")return null;const n=e;return typeof n.id!="string"||!n.id.trim()||n.kind!=="session"&&n.kind!=="harness"&&n.kind!=="project"&&n.kind!=="attention"||typeof n.title!="string"||!n.title.trim()?null:{id:n.id.trim(),kind:n.kind,title:n.title.trim(),sessionId:typeof n.sessionId=="string"?n.sessionId.trim():void 0,harness:typeof n.harness=="string"?n.harness.trim():void 0,projectPath:typeof n.projectPath=="string"?n.projectPath.trim():void 0}}function $t(e){if(!e||typeof e!="object")return null;const n=e;return typeof n.id!="string"||!n.id.trim()||typeof n.laneDefId!="string"||!n.laneDefId.trim()||n.zone!=="pinned_left"&&n.zone!=="main"&&n.zone!=="pinned_right"||typeof n.position!="number"||!Number.isFinite(n.position)?null:{id:n.id.trim(),laneDefId:n.laneDefId.trim(),zone:n.zone,position:n.position,width:se(n.width)}}function fn(e,n,t,s){if(!e||typeof e!="object")return me(n,t,s);const o=e,r=Array.isArray(o.laneDefs)?o.laneDefs.map(Et).filter(d=>d!==null):[],i=Array.isArray(o.slots)?o.slots.map($t).filter(d=>d!==null):[],a={};if(o.laneWidths&&typeof o.laneWidths=="object")for(const[d,f]of Object.entries(o.laneWidths)){const S=se(f);S!==void 0&&(a[d]=S)}const c=se(o.defaultLaneWidth);return{version:1,profileId:n,defaultLaneWidth:(typeof c=="string"?c:void 0)??t??s.defaultLaneWidth,defaultHorizon:typeof o.defaultHorizon=="string"?o.defaultHorizon:s.defaultHorizon,laneWidths:a,laneDefs:r,slots:i,showAutoLanes:typeof o.showAutoLanes=="boolean"?o.showAutoLanes:s.showAutoLanes,updatedAt:typeof o.updatedAt=="number"?o.updatedAt:Date.now()}}function Rt(e,n,t){return fn(e,n,t,fe(n))}function qs(e,n){const t=fe(e),s=n??t.defaultLaneWidth;try{const o=localStorage.getItem(`${un}:${e}`);return o?Rt(JSON.parse(o),e,s):Pe(e,s)}catch{return Pe(e,s)}}function Pt(e){try{localStorage.setItem(`${un}:${e.profileId}`,JSON.stringify({...e,updatedAt:Date.now()}))}catch{}}function Qs(e){return[...e].sort((n,t)=>{const s=H[n.zone]-H[t.zone];return s!==0?s:n.position-t.position})}function Xs(e,n){return H[e]-H[n]}function mn(){return`slot:${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function pe(e){return e.trim().toLowerCase().replace(/['"]/gu,"").replace(/[^a-z0-9]+/gu,"-").replace(/^-+|-+$/gu,"")}function Y(e){return`session:${e}`}function Ct(e){return`harness:${pe(e)}`}function At(e){return`project:${pe(e)}`}const _t="attention:needs-input";function pn(e,n){const t=e.filter(s=>s.zone===n);return t.length===0?0:Math.max(...t.map(s=>s.position))+1}function gn(e,n){const t=e.laneDefs.some(s=>s.id===n.id);return{...e,laneDefs:t?e.laneDefs.map(s=>s.id===n.id?n:s):[...e.laneDefs,n]}}function hn(e,n){const t=e.slots.some(s=>s.id===n.id);return{...e,slots:t?e.slots.map(s=>s.id===n.id?n:s):[...e.slots,n]}}function wn(e,n){return{...e,slots:e.slots.filter(t=>t.laneDefId!==n)}}function Ut(e,n){const t=Y(n);return{...wn(e,t),laneDefs:e.laneDefs.filter(s=>s.id!==t)}}function Zs(e,n){const t=Y(n);return e.slots.some(s=>s.laneDefId===t&&s.zone!=="main")}function Js(e,n){const t=Y(n),s=e.slots.find(o=>o.laneDefId===t);return!s||s.zone==="main"?null:s.zone}function eo(e,n){const t=n.zone??"pinned_left",s=Y(n.laneId),o=Ut(e,n.laneId),r=gn(o,{id:s,kind:"session",title:n.title,sessionId:n.laneId});return hn(r,{id:mn(),laneDefId:s,zone:t,position:pn(r.slots,t),width:n.width})}function no(e,n){const t=n.zone??"pinned_left",s=n.kind==="attention"?_t:n.kind==="harness"&&n.harness?Ct(n.harness):n.kind==="project"&&n.projectPath?At(n.projectPath):`${n.kind}:${pe(n.title)}`,o=wn(e,s),r=gn(o,{id:s,kind:n.kind,title:n.title,harness:n.harness,projectPath:n.projectPath});return hn(r,{id:mn(),laneDefId:s,zone:t,position:pn(r.slots,t),width:n.width})}function to(e,n,t){return{...e,laneWidths:{...e.laneWidths,[n]:t},updatedAt:Date.now()}}function so(e,n){return{...e,defaultLaneWidth:n,updatedAt:Date.now()}}function oo(e){const n=new Set(e.slots.filter(t=>t.zone!=="main").map(t=>t.laneDefId));return{...e,slots:e.slots.filter(t=>t.zone==="main"),laneDefs:e.laneDefs.filter(t=>!n.has(t.id))}}const V="scope.lanes",oe={defaultLaneWidth:"md",showAutoLanes:!0,defaultHorizon:"30m"},Ft="openscout:lane-deck:v1";function Ce(e){return me(V,e,oe)}function ro(e){const n=e??oe.defaultLaneWidth;try{const t=localStorage.getItem(`${Ft}:${V}`);return t?fn(JSON.parse(t),V,n,oe):Ce(n)}catch{return Ce(n)}}function ao(e){Pt(e)}const Tt=[h.lanes,h.tail,h.sessions,h.agents];function kt(e){return Tt.includes(e)}function Ot(e){return e===Kn||e===Gn}function In(e){return Wn(e)}function Q(e,n={}){switch(e){case h.tail:{const t=new URLSearchParams;n.tailQuery&&t.set("q",n.tailQuery);const s=t.toString();return k(e,s?`?${s}`:"")}case h.sessions:return n.sessionId?k(e,`/${encodeURIComponent(n.sessionId)}`):k(e);case h.lanes:return k(J);case h.agents:return k(e);default:return k(J)}}function vn(e){switch(e.view){case"ops":return!e.mode||e.mode==="lanes"?h.lanes:e.mode==="tail"?h.tail:null;case"sessions":return e.agentId?null:h.sessions;case"agents-v2":return e.agentId||e.projectSlug||e.sessionId||e.conversationId?null:h.agents;default:return null}}function Dt(e){const n=vn(e);return n?n===h.tail&&e.view==="ops"?Q(n,{tailQuery:e.tailQuery}):n===h.sessions&&e.view==="sessions"?Q(n,{sessionId:e.sessionId}):Q(n):null}function xt(e,n,t){if(!Ot(e[0]))return null;const s=e[1]??J;if(!kt(s))return{view:"ops",mode:"lanes"};switch(s){case h.tail:{const o=n.searchParams.get("q")?.trim();return{view:"ops",mode:"tail",...o?{tailQuery:o}:{}}}case h.sessions:return e[2]?t({view:"sessions",sessionId:decodeURIComponent(e[2])}):t({view:"sessions"});case h.agents:return t({view:"agents-v2"});case h.lanes:default:return{view:"ops",mode:"lanes"}}}const jt=new Set(["no-ops","ffBundle","ffVariant","scoutBundle","scoutExperience","ab","ffGlobal","scoutGlobalBundle","ffPersist","persistBundle","ffAudience","studio","studioInjection","studioMode"]),Nt=["ff.","studio.","studioMode."];function Mt(e){return jt.has(e)||Nt.some(n=>e.startsWith(n))}function Sn(e,n=""){const t=new URL(e,"http://scout.local");new URLSearchParams(n).forEach((r,i)=>{Mt(i)&&(t.searchParams.has(i)||t.searchParams.set(i,r))});const o=t.searchParams.toString();return`${t.pathname}${o?`?${o}`:""}`}function io(e){switch(e){case h.tail:return{view:"ops",mode:"tail"};case h.sessions:return{view:"sessions"};case h.agents:return{view:"agents-v2"};case h.lanes:default:return{view:"ops",mode:"lanes"}}}function Bt(e=typeof window<"u"?window.location.pathname:""){return In(e)}function co(){return V}function uo(e=Bt()){return e?{"data-scope-presentation":!0}:void 0}function bn(e,n=typeof window<"u"?window.location.pathname:""){return In(n)?Dt(e):null}function zt(e,n=typeof window<"u"?window.location.pathname:""){return bn(e,n)!==null}function lo(e,n=typeof window<"u"?window.location.pathname:""){return zt(e,n)?vn(e):null}const fo={days:3,sessionLimit:200,hitLimit:60,debounceMs:180};function re(e){return e.root==="HOME"?`~/${e.relPath}`:e.root==="ABSOLUTE"?e.relPath:`$${e.root}/${e.relPath}`}function Ae(e){const n=e?.trim();if(!n)return null;const t=n.replace(/[\\/]+$/,""),s=t.split(/[\\/]/).filter(Boolean).at(-1)??t;return s.endsWith(".jsonl")?s.slice(0,-6):s}function T(e){return e.sourceRefs.find(n=>n.kind==="harness_transcript")??null}function Ln(e){return e.sourceRefs.find(n=>n.kind==="file")??null}function ge(e){return e?Ae(e.sessionId)??Ae(re(e.path)):null}function mo(e){const n=ge(e);if(!n)return null;const t=e?.recordRange;return t?`${n}|records ${t[0]}..${t[1]}`:n}function z(e,n){const t=e.facets[n];return Array.isArray(t)?t.filter(Boolean).join(", "):typeof t=="string"?t:""}function M(e){const n=new Set;return e.split(/[^A-Za-z0-9_./-]+/u).map(t=>t.trim()).filter(t=>t.length>1).filter(t=>{const s=t.toLowerCase();return n.has(s)?!1:(n.add(s),!0)}).slice(0,12)}const Wt=/^(events?\s+window(\s+\d+)?|files?\s+touched|tool\s+calls?|indexed\s+snippet|manifest|summary|decisions?|context\s+pack)\b/iu,_e=/^(claude|codex|kimi|cursor|gpt|gemini)\b/iu,Ue=/^(?:claude|codex|kimi|cursor|gpt|gemini)?\s*[a-z0-9._/-]*\s*(?:jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)[a-z]*\s+\d{1,2}(?:\s+at\s+\d{1,2}:\d{2}\s*(?:am|pm)?)?\s*[-–—:]\s*/iu;function yn(e){return Wt.test(e.replace(/\s+/g," ").trim())}function Kt(e){let n=e.replace(/\s+/g," ").trim();if(!n)return"";if(n=n.replace(/<[^>\n]+>/g," ").replace(/\s+/g," ").trim(),Ue.test(n))n=n.replace(Ue,"").trim();else{const t=n.match(/^(.{6,72}?)\s[-–—]\s+(.+)$/u);if(t){const s=t[1]??"",o=t[2]??"";(_e.test(s)||/\b(?:am|pm|\d{1,2}:\d{2}|plugin|session|openscout)\b/iu.test(s))&&(n=o.trim())}}return n=n.replace(_e,"").replace(/^\s*[-–—:]\s*/,"").trim(),n=n.replace(/\s{2,}/g," ").trim(),n.length>72&&(n=`${n.slice(0,69).replace(/\s+\S*$/u,"").trimEnd()}…`),n}function Gt(e){const n=z(e,"project"),t=e.title.replace(/\s+/g," ").trim();if(t&&!yn(t)){const o=Kt(t);if(o&&o.toLowerCase()!==n.toLowerCase()||o)return o}if(n)return n;const s=ge(T(e));return s?s.length>18?`${s.slice(0,16)}…`:s:"Session match"}function En(e){const n=B(e,"recordKind",8).map(s=>s.toLowerCase());if(n.length===0&&n.push(...B(e,"recordTag",8).map(s=>s.toLowerCase())),n.some(s=>s.includes("assistant")))return"assistant";if(n.some(s=>s.includes("user")))return"user";if(n.some(s=>s.includes("tool")||s.includes("command")||s.includes("response")))return"tool";const t=we(e);return t==="tool activity"?"tool":t==="overview"?"overview":""}function po(e,n){const t=Ie(e.snippet,n),s=En(e),o=he(e);let r="";if(t){const i=M(n).map(d=>d.toLowerCase()),a=t.split(new RegExp("(?<=[.!?])\\s+|\\s+[–—]\\s+|\\s+·\\s+","u")).map(d=>d.replace(/^…+|…+$/gu,"").trim()).filter(d=>d.length>12);r=((i.length>0?a.find(d=>i.some(f=>ae(d,f)>=0)):void 0)??a[0]??t).replace(/^…+|…+$/gu,"").trim()}return r?(r.length>78&&(r=`${r.slice(0,75).replace(/\s+\S*$/u,"").trimEnd()}…`),r):s&&o?`${s} · ${o}`:o||s||Gt(e)}function Ht(e){return e.freshness&&e.freshness!=="unknown"?e.freshness:e.title.replace(/\s+/g," ").trim().match(/\b((?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[a-z]*\s+\d{1,2}(?:\s+at\s+\d{1,2}:\d{2}\s*(?:AM|PM)?)?)\b/iu)?.[1]??""}function Fe(e){const n=e.trim().toLowerCase();return n?n==="events"||n.startsWith("events")?"conversation":n==="overview"||n==="summary"?"overview":n==="tool-calls"||n==="tools"?"tool activity":n==="files"||n==="files-touched"?"files touched":n==="manifest"?"session index":n.replace(/[-_]+/g," "):""}function Vt(e){const n=e.trim();return n?n.charAt(0).toUpperCase()+n.slice(1):""}function Yt(e){const n=z(e,"harness")||T(e)?.harness||"";if(!n)return"";const t=n.toLowerCase();return t==="claude"?"Claude":t==="codex"?"Codex":t==="kimi"?"Kimi":t==="cursor"?"Cursor":Vt(n)}function qt(e){const n=z(e,"sessionId").trim(),t=ge(T(e)),s=(n||t||"").trim();return s?s.length>14?s.slice(0,8):s:""}function he(e){const n=T(e)?.recordRange;if(n){const[s,o]=n;return s===o?`turn ${s}`:o-s<=1?`turns ${s}–${o}`:`turns ${s}–${o}`}const t=e.title.match(/events?\s+window\s+(\d+)/iu);return t?`window ${Number(t[1])}`:""}function Qt(e){const n=B(e,"recordKind",8).map(s=>s.toLowerCase());n.length===0&&n.push(...B(e,"recordTag",8).map(s=>s.toLowerCase()));const t=[];return n.some(s=>s.includes("user"))&&t.push("user"),n.some(s=>s.includes("assistant"))&&t.push("assistant"),n.some(s=>s.includes("tool")||s.includes("command")||s.includes("response"))&&t.push("tool"),t.length===0?"":t.join(" · ")}function we(e){const n=z(e,"documentKind");if(n){const s=n.split(",")[0]?.trim()??n;return Fe(s)}return yn(e.title)?Fe(e.title):Ln(e)?"file":T(e)?"conversation":""}function B(e,n,t=3){const s=e.facets[n];return(Array.isArray(s)?s:typeof s=="string"?s.split(","):[]).map(r=>r.trim()).filter(Boolean).slice(0,t)}function go(e){return{agent:Yt(e),project:z(e,"project"),session:qt(e),when:Ht(e),turn:he(e),role:Qt(e),where:we(e)}}function ho(e){const n=[],t=he(e);t&&n.push(t);const s=En(e);s&&n.push(s);const o=we(e);o&&o!=="conversation"&&n.push(o);const r=B(e,"toolName",2);r.length===1&&n.push(r[0]),r.length>1&&n.push(r.join(", "));const i=new Set;return n.filter(a=>{const c=a.toLowerCase();return i.has(c)?!1:(i.add(c),!0)})}function ae(e,n){return new RegExp(`(?<![A-Za-z0-9_./~-])${Pn(n)}(?![A-Za-z0-9_./~-])`,"iu").exec(e)?.index??-1}function Ie(e,n=""){let t=e.replace(/\s+/g," ").trim();if(!t)return"";if(t=t.replace(/\s*-\s*\[\d{3,}\]\s*`[^`]+`(?:\s*\([^)]*\))?\s*-\s*/gu," "),t=t.replace(/\[\d{3,}\]\s*`[^`]+`\s*/gu,""),t=t.replace(/\*\*/gu,""),t=t.replace(/\b(?:assistant_turn|user_turn|agent_reasoning|command_or_tool|response_item|system_record)\b/giu," "),t=t.replace(/(?:~\/|\.\.?\/|\/(?:Users|home|var|tmp|opt)\/)\S+/gu," "),t=t.replace(/https?:\/\/\S+/gu," "),t=t.replace(/\b[\w.-]+\.(?:com|net|org|io|dev|app)(?:\/\S*)?/giu," "),t=t.replace(/\{[^{}]{0,160}\}/gu," "),t=t.replace(/`[^`]{0,64}`/gu,r=>{const i=r.slice(1,-1);return M(n).some(a=>ae(i,a)>=0)||/^[A-Za-z][\w.-]{0,24}$/u.test(i)?i:" "}),t=t.replace(/\s{2,}/g," ").trim(),t=t.replace(/^[\s,;:.\-–—|/]+/u,"").trim(),t.includes("{")||t.includes("[")){const r=t.search(/[\[{]/u);if(r>18){const i=t.slice(0,r).trim().replace(/[-–—,:;]+$/u,"").trim();i&&(t=i)}}const s=M(n),o=200;if(s.length>0&&t.length>o){let r=-1;for(const i of s){const a=ae(t,i);a>=0&&(r<0||a<r)&&(r=a)}if(r<0)for(const i of s){if(i.length<4)continue;const a=t.toLowerCase().indexOf(i.toLowerCase());a>=0&&(r<0||a<r)&&(r=a)}if(r>=0){const a=Math.max(0,r-48),c=Math.min(t.length,a+o),d=t.slice(a,c).trim();t=`${a>0?"…":""}${d}${c<t.length?"…":""}`}else t=`${t.slice(0,o-1).replace(/\s+\S*$/u,"").trimEnd()}…`}else t.length>o&&(t=`${t.slice(0,o-1).replace(/\s+\S*$/u,"").trimEnd()}…`);return t.replace(/\s{2,}/g," ").trim()}function wo(e,n,t){const s=Ie(e.snippet,n);return s.length<=t?s:`${s.slice(0,t-1).replace(/\s+\S*$/u,"").trimEnd()}…`}function Xt(e,n){return M(n).filter(t=>{const s=t.toLowerCase();return e.title.toLowerCase().includes(s)||e.snippet.toLowerCase().includes(s)||Ie(e.snippet,n).toLowerCase().includes(s)})}function $n(e){const n=(e.kind||e.role||e.type||"record").toLowerCase();return n==="assistant_turn"||n==="assistant"?"assistant":n==="user_turn"||n==="user"?"user":n==="system_record"||n==="system"?"system":n==="command_or_tool"||n==="tool_use"?"tool":n==="response_item"?"tool output":n==="agent_reasoning"||n==="reasoning"?"reasoning":n.replace(/_/gu," ")}function Rn(e){const n=(e.kind||e.role||e.type||"").toLowerCase();return n==="assistant"||n==="assistant_turn"||n==="user"||n==="user_turn"||n==="last-prompt"||n==="ai-title"?0:n==="system"||n==="system_record"||n.includes("reasoning")?1:2}function Io(e){return e.scoreSource==="hybrid"?"Words and meaning":e.scoreSource==="vector"?"Similar in meaning":"Exact words"}function vo(e,n,t){const s=Xt(e,n),o=s.length===1?`Matched “${s[0]}”`:s.length>1?`Matched ${s.length} terms`:"Matched in this session";if(!t?.matched)return o;const r=[t.renderedText,t.summary].filter(Boolean).join(" ").toLowerCase(),i=s.filter(d=>r.includes(d.toLowerCase()));if(i.length===0)return o;const a=$n(t),c=a==="assistant"?"an assistant reply":a==="user"?"your message":a==="tool"?"a tool call":a==="tool output"?"tool output":a==="system"?"a system record":a==="reasoning"?"agent reasoning":`a ${a} record`;return i.length===1?`Matched “${i[0]}” in ${c}`:`Matched ${i.length} terms in ${c}`}function So(e){const n=T(e);if(n){const s=re(n.path),o=n.recordRange;return o?`${s}#R${o[0]}-R${o[1]}`:s}const t=Ln(e);if(t){const s=re(t.path),o=t.lineRange;return o?`${s}#L${o[0]}-L${o[1]}`:s}return e.id}function Zt(e){const n=e.filter(o=>Rn(o)===2).length,t=e.length-n,s=e.some(o=>o.matched)?" · match inside":"";return n>0&&t===0?`${n} tool step${n===1?"":"s"}${s}`:n===0?`${t} process step${t===1?"":"s"}${s}`:`${n} tool + ${t} process step${e.length===1?"":"s"}${s}`}function Jt(e){return`${e.length} more conversation turn${e.length===1?"":"s"}`}function bo(e,n={}){if(e.length===0)return[];const t=n.contextRadius??3,s=n.maxTurns??6,o=n.centerRecordIndex===void 0?-1:e.findIndex(w=>w.index===n.centerRecordIndex),r=e.findIndex(w=>w.matched),i=o>=0?o:r>=0?r:0,a=e.slice(Math.max(0,i-t),Math.min(e.length,i+t+1)),c=[];let d=[],f=[],S=0;const A=()=>{d.length!==0&&(c.push({kind:"folded",records:d,summary:Zt(d)}),d=[])},g=()=>{f.length!==0&&(c.push({kind:"folded",records:f,summary:Jt(f)}),f=[])};for(const w of a){if(Rn(w)>0){g(),d.push(w);continue}if(A(),S>=s){f.push(w);continue}c.push({kind:"turn",record:w,role:$n(w)}),S+=1}return A(),g(),c}function Te(e){const n=T(e)?.recordRange;return n?n[0]:Number.MAX_SAFE_INTEGER}function Lo(e){const n=[],t=new Map;for(const s of e){const o=s.collectionId||s.id,r=t.get(o);r?r.push(s):(n.push(o),t.set(o,[s]))}return n.map(s=>{const o=[...t.get(s)??[]].sort((i,a)=>{const c=Te(i)-Te(a);return c!==0?c:i.score-a.score}),r=t.get(s)?.[0]??o[0];return{collectionId:s,best:r,moments:o}})}function Pn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function yo(e,n){const t=M(n);if(t.length===0||e.length===0)return[{text:e,match:!1}];const s=t.map(a=>`(?<![A-Za-z0-9_./~-])${Pn(a)}(?![A-Za-z0-9_./~-])`),o=new RegExp(`(${s.join("|")})`,"giu"),r=[];let i=0;for(const a of e.matchAll(o)){const c=a.index??0;c>i&&r.push({text:e.slice(i,c),match:!1}),r.push({text:a[0],match:!0}),i=c+a[0].length}return i<e.length&&r.push({text:e.slice(i),match:!1}),r.length>0?r:[{text:e,match:!1}]}const Eo={sessions:"Sessions",skills:"Skills",mcp:"MCP",codebase:"Codebase",context_pack:"Context packs",mixed:"Mixed"},Cn=[{value:"1",label:"Last 24h"},{value:"3",label:"Last 3 days"},{value:"7",label:"Last 7 days"},{value:"30",label:"Last 30 days"}],$o=["sessions","skills","mcp","codebase","context_pack"];function Ro(){return{query:"",sourceKinds:[],harness:[],project:[],timeWindow:"all"}}function es(e){return e?Cn.some(n=>n.value===e):!1}function X(e){return e?e.split(",").map(n=>n.trim()).filter(n=>n.length>0):[]}function ns(e){const n=e==null?new URLSearchParams:typeof e=="string"?new URLSearchParams(e):e,t=n.get("time"),s=es(t)?t:"all";return{query:n.get("q")?.trim()??"",sourceKinds:X(n.get("source")),harness:X(n.get("harness")),project:X(n.get("project")),timeWindow:s}}function ts(e,n={}){const t=new URLSearchParams,s=e.query.trim();return s&&t.set("q",s),e.sourceKinds.length>0&&t.set("source",e.sourceKinds.join(",")),e.harness.length>0&&t.set("harness",e.harness.join(",")),e.project.length>0&&t.set("project",e.project.join(",")),e.timeWindow!=="all"&&t.set("time",e.timeWindow),n.hitId&&t.set("hit",n.hitId),t}function Po(e,n){return e.query.trim()===n.query.trim()&&e.timeWindow===n.timeWindow&&Z(e.sourceKinds,n.sourceKinds)&&Z(e.harness,n.harness)&&Z(e.project,n.project)}function Z(e,n){if(e.length!==n.length)return!1;const t=[...e].map(o=>o.trim().toLowerCase()).sort(),s=[...n].map(o=>o.trim().toLowerCase()).sort();return t.every((o,r)=>o===s[r])}function ss(e){return e.query.trim().length>0||e.sourceKinds.length>0||e.harness.length>0||e.project.length>0||e.timeWindow!=="all"}function Co(e){if(e==="all")return null;const n=Number.parseInt(e,10);return!Number.isFinite(n)||n<=0?null:Date.now()-n*24*60*60*1e3}function Ao(e){return e==="all"?"Any time":Cn.find(t=>t.value===e)?.label??e}const An=typeof window<"u"?window.location.href:"http://scout.local/";function os(e){const n=e.toString();return new URL(n,An)}function rs(e){switch(e){case"profile":case"config":case"definitions":return e==="definitions"?"config":e;case"observe":case"message":return e;default:return}}function as(e){const n=e.trim().replace(/^#/,"");if(!n.startsWith("msg-"))return null;const t=n.slice(4).trim();if(!t)return null;try{return decodeURIComponent(t)}catch{return t}}function is(e){switch(e){case"control":case"mission":case"command":case"warroom":case"conduct":case"conductor":return"mission";case"plan":case"advisor":return"advisor";case"issues":case"errors":case"warnings":return"issues";case"agents":case"tail":case"atop":case"lanes":return e;default:return}}function cs(e){return e==="delivered"||e==="failed"||e==="all"?e:void 0}function us(e){return e==="indexer"||e==="knowledge"?e:void 0}function ls(e){switch(e){case"pairing":case"agents":case"appearance":case"operator":case"comms":case"credentials":case"voice":case"devices":case"about":return e;case"communications":return"comms";default:return}}function ds(e){switch(e){case"tail":case"session":case"chat":case"work":return e;default:return}}function fs(e){const n=e?.trim().replace(/\.+$/u,"");return n==="observe"||n==="takeover"?n:void 0}function ms(e){const n=e?.trim().toLowerCase();return n==="pty"||n==="tmux"||n==="zellij"||n==="herdr"?n:void 0}function ps(e){const n=e?.trim().toLowerCase();return n==="shell"||n==="claude"||n==="codex"||n==="pi"?n:void 0}function gs(e){return e==="all"||e==="touched"?"all":e==="changed"?"changed":void 0}function ke(e){if(!e)return;const n=Number.parseInt(e,10);return Number.isSafeInteger(n)&&n>0?n:void 0}function Oe(e){return e==="mission"?"control":e}function hs(e){return e.searchParams.has("no-ops")?!1:typeof window>"u"?!0:rn()}function ws(e){return e==="tail"}function Is(e){return e==="lanes"}function _n(e){return ws(e)||Is(e)}const ve="machineId",Un=new Set(["inbox","conversation","agents-v2","messages","sessions","repos","harnesses","mesh","mesh-ops","activity","work","follow"]);function vs(e){return e.searchParams.get(ve)?.trim()||void 0}function Ss(e,n){return!n||!Un.has(e.view)?e:{...e,machineId:n}}function Se(e){return Un.has(e.view)}function bs(e){return"machineId"in e&&e.machineId?e.machineId:null}function De(e,n){if(!Se(e))return e;const t={...e},s=n?.trim();return s?t.machineId=s:delete t.machineId,t}function _o(e){return Se(e)?{...e,machineId:""}:e}function Ls(e,n){return Se(e)?"machineId"in e?De(e,e.machineId??null):De(e,bs(n)):e}function F(e,n){"machineId"in n&&n.machineId&&e.set(ve,n.machineId)}function v(e){const n=e.toString();return n?`?${n}`:""}function O(e,n){const t=new URLSearchParams;return F(t,n),`${e}${v(t)}`}function ys(e){return"machineId"in e&&e.machineId?`:machine:${e.machineId}`:""}function Fn(e){const n=os(e),t=n.pathname.replace(/^\/+/,"").split("/").filter(Boolean),s=vs(n),o=u=>Ss(u,s),r=xt(t,n,o);if(r)return r;const i=as(n.hash),a=rs(n.searchParams.get("tab"))??(i?"message":void 0),c=n.searchParams.get("project")?.trim()||void 0,d=n.searchParams.get("agentId")?.trim()||void 0;if(t[0]==="agent"&&t[1])return{view:"agent-info",conversationId:decodeURIComponent(t[1])};const f=n.searchParams.get("project")?.trim()||void 0,S=n.searchParams.get("harness")?.trim()||void 0,A=n.searchParams.get("node")?.trim()||void 0,g=n.searchParams.get("set")?.trim(),w=g==="live"||g==="ephemeral"||g==="archived"?g:void 0,R=n.searchParams.get("view")?.trim(),U=R==="sessions"||R==="agents"?R:void 0,_=n.searchParams.get("state")?.trim(),be=_==="needs"||_==="live"||_==="idle"?_:void 0,jn=n.searchParams.get("ephemeral")==="1",W=n.searchParams.get("session")?.trim()||void 0,y=n.searchParams.get("select")?.trim()||void 0,$={...S?{harness:S}:{},...A?{node:A}:{},...w?{set:w}:{},...U?{indexView:U}:{},...be?{stateFilter:be}:{},...jn?{showEphemeral:!0}:{}};if(t[0]==="projects"){const u=t[1]?decodeURIComponent(t[1]):void 0;if(!u)return o({view:"agents-v2",...y?{selectedAgentId:y}:{},...$});if(t[2]==="agents"){const l=t[3]?decodeURIComponent(t[3]):void 0;if(l){if(t[4]==="c"&&t[5])return o({view:"agents-v2",projectSlug:u,agentId:l,conversationId:decodeURIComponent(t[5]),tab:a??"message",...$});const m=t[4]==="sessions"&&t[5]?decodeURIComponent(t[5]):W;return o({view:"agents-v2",projectSlug:u,agentId:l,...m?{sessionId:m}:{},...a?{tab:a}:{},...$})}return o({view:"agents-v2",projectSlug:u,indexView:"agents",...y?{selectedAgentId:y}:{},...$})}return t[2]==="sessions"?o({view:"agents-v2",projectSlug:u,indexView:"sessions",...t[3]?{sessionId:decodeURIComponent(t[3])}:{},...y?{selectedAgentId:y}:{},...$}):o({view:"agents-v2",projectSlug:u,...y?{selectedAgentId:y}:{},...$})}if(t[0]==="agents-v2"&&t[1]==="sessions"&&t[2])return o({view:"agents-v2",sessionId:decodeURIComponent(t[2]),...y?{selectedAgentId:y}:{},...f?{projectSlug:f}:{},...$});if(t[0]==="agents-v2"&&t[1]){const u=decodeURIComponent(t[1]);return o({view:"agents-v2",agentId:u,...a?{tab:a}:{},...W?{sessionId:W}:{},...f?{projectSlug:f}:{},...$})}if(t[0]==="agents-v2")return o({view:"agents-v2",...y?{selectedAgentId:y}:{},...f?{projectSlug:f}:{},...$});if(t[0]==="agents"&&t[1]){const u=decodeURIComponent(t[1]),l=t[2]==="sessions"&&t[3]?decodeURIComponent(t[3]):W;return t[2]==="c"&&t[3]?o({view:"agents-v2",agentId:u,conversationId:decodeURIComponent(t[3]),tab:a??"message",...$}):o({view:"agents-v2",agentId:u,...l?{sessionId:l}:{},...a?{tab:a}:{},...$})}if(t[0]==="agents")return o({view:"agents-v2",...y?{selectedAgentId:y}:{},...f?{projectSlug:f}:{},...$});if(t[0]==="agents.deprecated"&&t[1]&&t[2]==="sessions"&&t[3])return o({view:"sessions",agentId:decodeURIComponent(t[1]),sessionId:decodeURIComponent(t[3])});if(t[0]==="agents.deprecated"&&t[1]&&t[2]==="c"&&t[3])return o({view:"agents-v2",agentId:decodeURIComponent(t[1]),conversationId:decodeURIComponent(t[3]),tab:a??"message"});if(t[0]==="agents.deprecated"&&t[1]){const u=decodeURIComponent(t[1]);return o({view:"agents-v2",agentId:u,...a?{tab:a}:{},...!a&&c?{projectSlug:c}:{}})}if(t[0]==="agents.deprecated")return o({view:"agents-v2",...c?{projectSlug:c}:{}});if(t[0]==="fleet")return o({view:"inbox"});if(t[0]==="c"&&t[1])return o({view:"conversation",conversationId:decodeURIComponent(t[1])});if(t[0]==="flights"&&t[1]&&t[2]==="observe"){const u=n.searchParams.get("session")?.trim()||void 0,l=n.searchParams.get("compare")?.trim()||void 0;return o({view:"sessions",flightId:decodeURIComponent(t[1]),...u?{sessionId:u}:{},...l?{compareSessionId:l}:{}})}if(t[0]==="sessions"&&t[1])return o({view:"sessions",sessionId:decodeURIComponent(t[1]),...d?{agentId:d}:{}});if(t[0]==="conversations")return o({view:"messages"});if(t[0]==="messages"){const u={view:"messages",...t[1]?{conversationId:decodeURIComponent(t[1])}:{}};return o(u)}if(t[0]==="sessions")return o({view:"sessions",...d?{agentId:d}:{}});if(t[0]==="repos"){const u=n.searchParams.get("root")?.trim()||void 0;return o({view:"repos",...u?{root:u}:{}})}if(t[0]==="providers"||t[0]==="harnesses")return o({view:"harnesses"});if(t[0]==="repo-diff"){const u=n.searchParams.get("path")?.trim();if(u){const l=n.searchParams.getAll("layer").filter(I=>I==="unstaged"||I==="staged"||I==="branch"),m=n.searchParams.getAll("file").map(I=>I.trim()).filter(Boolean),p=n.searchParams.get("sessionId")?.trim()||void 0,b=n.searchParams.get("agentId")?.trim()||void 0,E=gs(n.searchParams.get("include"));return{view:"repo-diff",path:u,...l.length>0?{layers:l}:{},...m.length>0?{files:m}:{},...p?{sessionId:p}:{},...b?{agentId:b}:{},...E?{include:E}:{}}}}if(t[0]==="search"){const u=us(t[1]),l=n.searchParams.get("hit")?.trim()||void 0,m=ns(n.searchParams);return{view:"search",...u&&u!=="knowledge"?{mode:u}:{},...l?{hitId:l}:{},...ss(m)?{filters:m}:{}}}if(t[0]==="channels"&&t[1])return o({view:"messages",conversationId:decodeURIComponent(t[1])});if(t[0]==="channels")return o({view:"messages"});if(t[0]==="mesh")return o({view:"mesh"});if(t[0]==="mesh-ops")return o({view:"mesh-ops",...t[1]?{itemId:decodeURIComponent(t[1])}:{}});if(t[0]==="dispatch"||t[0]==="broker"){const u=n.searchParams.get("attempt")?.trim()||void 0,l=cs(n.searchParams.get("filter"));return{view:"broker",...u?{attemptId:u}:{},...l&&l!=="all"?{filter:l}:{}}}if(t[0]==="code"){const u=n.searchParams.get("wt")?.trim()||void 0,l=n.searchParams.get("fromConversation")?.trim()||void 0,m=ke(n.searchParams.get("line")),p=ke(n.searchParams.get("endLine")),b=m&&p&&p>=m?p:void 0;if(t[1]){const C=decodeURIComponent(t[1]),P=t.length>2?t.slice(2).map(decodeURIComponent).join("/"):void 0;return{view:"code",project:C,...P?{path:P}:{},...u?{wt:u}:{},...m?{line:m}:{},...b?{endLine:b}:{},...l?{returnConversationId:l}:{}}}const E=n.searchParams.get("root")?.trim()||void 0,I=n.searchParams.get("file")?.trim()||void 0;return{view:"code",...E?{root:E}:{},...I?{file:I}:{},...u?{wt:u}:{},...m?{line:m}:{},...b?{endLine:b}:{},...l?{returnConversationId:l}:{}}}if(t[0]==="briefings"&&t[1])return{view:"briefings",briefingId:decodeURIComponent(t[1])};if(t[0]==="briefings")return{view:"briefings"};if(t[0]==="activity")return o({view:"activity"});if(t[0]==="voice")return{view:"voice"};if(t[0]==="work"&&t[1])return o({view:"work",workId:decodeURIComponent(t[1])});if(t[0]==="follow"){const u=ds(n.searchParams.get("view")),l={view:"follow",...u?{preferredView:u}:{}},m=t[1],p=t[2]?decodeURIComponent(t[2]):"";m==="flight"&&p&&(l.flightId=p),m==="invocation"&&p&&(l.invocationId=p),m==="conversation"&&p&&(l.conversationId=p),m==="work"&&p&&(l.workId=p),m==="session"&&p&&(l.sessionId=p),m==="agent"&&p&&(l.targetAgentId=p);const b=n.searchParams.get("flightId"),E=n.searchParams.get("invocationId"),I=n.searchParams.get("conversationId"),C=n.searchParams.get("workId"),P=n.searchParams.get("sessionId"),Le=n.searchParams.get("targetAgentId");return b&&(l.flightId=b),E&&(l.invocationId=E),I&&(l.conversationId=I),C&&(l.workId=C),P&&(l.sessionId=P),Le&&(l.targetAgentId=Le),o(l)}if(t[0]==="settings"){if(t[1]==="agents")return{view:"settings",section:"agents",...t[2]?{agentId:decodeURIComponent(t[2])}:{}};const u=ls(t[1]);return{view:"settings",...u?{section:u}:{}}}if(t[0]==="terminal"){const u=fs(n.searchParams.get("mode")),l=n.searchParams.get("session")?.trim()||void 0,m=Vn(n.searchParams.get("surface"))??void 0;if(t[1]==="new"){const b=ms(n.searchParams.get("backend"))??"pty",E=ps(n.searchParams.get("agent"))??"shell",I=n.searchParams.get("name")?.trim()||void 0,C=n.searchParams.get("tab")?.trim()||void 0,P=n.searchParams.get("socketDir")?.trim()||void 0;return{view:"terminal",terminalBackend:b,terminalAgent:E,...I?{terminalSessionName:I}:{},...C?{terminalTabId:C}:{},...P?{zellijSocketDir:P}:{}}}const p=t[1]==="s"&&t[2]?Be(decodeURIComponent(t.slice(2).join("/")))?decodeURIComponent(t.slice(2).join("/")):null:Yn(t[1]?decodeURIComponent(t[1]):void 0,t[2]?decodeURIComponent(t.slice(2).join("/")):void 0);return p?{view:"terminal",terminalSurfaceKey:p,...l?{terminalSessionId:l}:{},...u?{mode:u}:{}}:{view:"terminal",...t[1]?{agentId:decodeURIComponent(t[1])}:{},...u?{mode:u}:{},...!t[1]&&l?{terminalSessionId:l}:{},...!t[1]&&m?{terminalSurfaceKey:m}:{}}}if(t[0]==="ops"){const u=is(t[1])??"mission";if(!_n(u)&&!hs(n))return o({view:"inbox"});const l=u==="tail"?n.searchParams.get("q")?.trim():"",m=u==="advisor"?n.searchParams.get("plan")?.trim():"",p=n.searchParams.get("flightId")?.trim(),b=n.searchParams.get("invocationId")?.trim(),E=n.searchParams.get("conversationId")?.trim(),I=n.searchParams.get("workId")?.trim(),C=n.searchParams.get("sessionId")?.trim(),P=n.searchParams.get("targetAgentId")?.trim()??n.searchParams.get("agentId")?.trim();return{view:"ops",mode:u,...l?{tailQuery:l}:{},...m?{planDocumentId:m}:{},...p?{flightId:p}:{},...b?{invocationId:b}:{},...E?{conversationId:E}:{},...I?{workId:I}:{},...C?{sessionId:C}:{},...P?{targetAgentId:P}:{}}}return o({view:"inbox"})}function Tn(e,n){const t=e.view==="sessions"&&e.flightId?null:bn(e,n);if(t)return t;switch(e.view){case"inbox":return O("/",e);case"conversation":{const s=new URLSearchParams;return F(s,e),`/c/${encodeURIComponent(e.conversationId)}${v(s)}`}case"agent-info":return`/agent/${encodeURIComponent(e.conversationId)}`;case"agents-v2":{const s=new URLSearchParams;e.harness&&s.set("harness",e.harness),e.node&&s.set("node",e.node),e.set&&s.set("set",e.set),!e.projectSlug&&e.indexView&&e.indexView!=="agents"&&s.set("view",e.indexView),e.stateFilter&&s.set("state",e.stateFilter),e.showEphemeral&&s.set("ephemeral","1"),e.selectedAgentId&&!e.agentId&&!e.sessionId&&s.set("select",e.selectedAgentId);const o=e.conversationId?"message":"profile";e.agentId&&e.tab&&e.tab!==o&&s.set("tab",e.tab),F(s,e);const r=e.projectSlug?`/projects/${encodeURIComponent(e.projectSlug)}`:null;return`${r?e.agentId?e.conversationId?`${r}/agents/${encodeURIComponent(e.agentId)}/c/${encodeURIComponent(e.conversationId)}`:e.sessionId?`${r}/agents/${encodeURIComponent(e.agentId)}/sessions/${encodeURIComponent(e.sessionId)}`:`${r}/agents/${encodeURIComponent(e.agentId)}`:e.sessionId?`${r}/sessions/${encodeURIComponent(e.sessionId)}`:e.indexView==="sessions"?`${r}/sessions`:e.indexView==="agents"?`${r}/agents`:r:e.agentId?e.conversationId?`/agents/${encodeURIComponent(e.agentId)}/c/${encodeURIComponent(e.conversationId)}`:e.sessionId?`/agents/${encodeURIComponent(e.agentId)}/sessions/${encodeURIComponent(e.sessionId)}`:`/agents/${encodeURIComponent(e.agentId)}`:e.sessionId?`/sessions/${encodeURIComponent(e.sessionId)}`:"/projects"}${v(s)}`}case"messages":{const s=new URLSearchParams;return F(s,e),`${e.conversationId?`/messages/${encodeURIComponent(e.conversationId)}`:"/messages"}${v(s)}`}case"sessions":{const s=new URLSearchParams;return e.agentId&&s.set("agentId",e.agentId),e.flightId?(e.sessionId&&s.set("session",e.sessionId),e.compareSessionId&&s.set("compare",e.compareSessionId),F(s,e),`/flights/${encodeURIComponent(e.flightId)}/observe${v(s)}`):(F(s,e),`${e.sessionId?`/sessions/${encodeURIComponent(e.sessionId)}`:"/sessions"}${v(s)}`)}case"repos":{const s=new URLSearchParams;return e.root&&s.set("root",e.root),F(s,e),`/repos${v(s)}`}case"harnesses":return O("/providers",e);case"repo-diff":{const s=new URLSearchParams;s.set("path",e.path);for(const o of e.layers??[])s.append("layer",o);for(const o of e.files??[])s.append("file",o);return e.sessionId&&s.set("sessionId",e.sessionId),e.agentId&&s.set("agentId",e.agentId),e.include&&s.set("include",e.include),`/repo-diff${v(s)}`}case"search":{const s=e.mode==="indexer"?"/search/indexer":"/search",o=e.filters?ts(e.filters,{hitId:e.hitId??null}):new URLSearchParams;return!e.filters&&e.hitId&&o.set("hit",e.hitId),`${s}${v(o)}`}case"mesh":return O("/mesh",e);case"mesh-ops":return O(e.itemId?`/mesh-ops/${encodeURIComponent(e.itemId)}`:"/mesh-ops",e);case"broker":{const s=new URLSearchParams;return e.attemptId&&s.set("attempt",e.attemptId),e.filter&&e.filter!=="all"&&s.set("filter",e.filter),`/dispatch${v(s)}`}case"code":{const s=new URLSearchParams;if(e.wt&&s.set("wt",e.wt),e.line&&s.set("line",String(e.line)),e.line&&e.endLine&&e.endLine>=e.line&&s.set("endLine",String(e.endLine)),e.project){e.returnConversationId&&s.set("fromConversation",e.returnConversationId);const r=[encodeURIComponent(e.project)];return e.path&&r.push(...e.path.split("/").map(encodeURIComponent)),`${`/code/${r.join("/")}`}${v(s)}`}e.root&&s.set("root",e.root),e.file&&s.set("file",e.file),e.returnConversationId&&s.set("fromConversation",e.returnConversationId);const o=s.toString();return o?`/code?${o}`:"/code"}case"briefings":return e.briefingId?`/briefings/${encodeURIComponent(e.briefingId)}`:"/briefings";case"activity":return O("/activity",e);case"voice":return"/voice";case"work":return O(`/work/${encodeURIComponent(e.workId)}`,e);case"settings":return e.section==="agents"?e.agentId?`/settings/agents/${encodeURIComponent(e.agentId)}`:"/settings/agents":e.section?e.section==="pairing"?"/settings/pairing":e.section==="comms"?"/settings/comms":`/settings/${e.section}`:"/settings";case"ops":if(!e.mode)return"/ops";if(e.mode==="tail"||e.mode==="advisor"){const s=new URLSearchParams;return e.mode==="tail"&&e.tailQuery&&s.set("q",e.tailQuery),e.mode==="advisor"&&e.planDocumentId&&s.set("plan",e.planDocumentId),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),`/ops/${Oe(e.mode)}${v(s)}`}return`/ops/${Oe(e.mode)}`;case"follow":{const s=new URLSearchParams;e.preferredView&&s.set("view",e.preferredView),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),e.machineId&&s.set(ve,e.machineId);const o=s.toString();return`/follow${o?`?${o}`:""}`}case"terminal":if(e.agentId){const s=new URLSearchParams;return e.mode&&s.set("mode",e.mode),`/terminal/${encodeURIComponent(e.agentId)}${v(s)}`}{const s=new URLSearchParams;if(e.terminalBackend)return e.terminalBackend!=="pty"&&s.set("backend",e.terminalBackend),e.terminalAgent&&e.terminalAgent!=="shell"&&s.set("agent",e.terminalAgent),e.terminalSessionName&&s.set("name",e.terminalSessionName),e.terminalTabId&&s.set("tab",e.terminalTabId),e.zellijSocketDir&&s.set("socketDir",e.zellijSocketDir),`/terminal/new${v(s)}`;e.mode&&s.set("mode",e.mode);const o=qn(e.terminalSurfaceKey);return o?`/terminal/${encodeURIComponent(o.backend)}/${encodeURIComponent(o.sessionName)}${v(s)}`:Be(e.terminalSurfaceKey)?`/terminal/s/${encodeURIComponent(e.terminalSurfaceKey)}${v(s)}`:(e.terminalSessionId&&s.set("session",e.terminalSessionId),e.terminalSurfaceKey&&s.set("surface",e.terminalSurfaceKey),`/terminal${v(s)}`)}}}function N(e){const n=ys(e);switch(e.view){case"conversation":return`conv:${e.conversationId}${n}`;case"agent-info":return`agent-info:${e.conversationId}`;case"settings":return`settings:${e.section??"pairing"}:${e.agentId??""}`;case"agents-v2":return["agents-v2",e.projectSlug??"",e.harness??"",e.node??"",e.set??"",e.indexView??"agents",e.stateFilter??"",e.showEphemeral?"eph":"",e.agentId??"",e.sessionId??"",n].join(":");case"sessions":return e.flightId?`flight-observe:${e.flightId}:${e.sessionId??""}:${e.compareSessionId??""}${n}`:e.sessionId?`session:${e.agentId??""}:${e.sessionId}${n}`:`sessions${n}`;case"messages":return e.conversationId?`messages:${e.conversationId}${n}`:`messages${n}`;case"work":return`work:${e.workId}${n}`;case"ops":return`ops:${e.mode??"advisor"}:${e.tailQuery??""}:${e.planDocumentId??""}:${e.flightId??""}:${e.invocationId??""}:${e.workId??""}:${e.conversationId??""}:${e.sessionId??""}:${e.targetAgentId??""}`;case"search":return`search:${e.mode??"knowledge"}:${e.hitId??""}`;case"broker":return`broker:${e.attemptId??""}`;case"follow":return`follow:${e.flightId??e.invocationId??e.conversationId??e.workId??e.sessionId??e.targetAgentId??""}:${e.preferredView??""}${n}`;case"terminal":return`terminal:${e.agentId??""}:${e.terminalSessionId??""}:${e.terminalSurfaceKey??""}:${e.terminalBackend??""}:${e.terminalAgent??""}:${e.terminalSessionName??""}:${e.terminalTabId??""}:${e.mode??"detail"}`;case"repo-diff":return`repo-diff:${e.path}`;default:return`${e.view}${n}`}}function G(e,n){return ue(Fn(`${e}${n}`))}function kn(e){return e?`#${e}`:""}function Es(e){return e.startsWith("/embed/")||e==="/ops/lanes/embed"}function xe(){if(typeof window>"u"){const e=new URL(An);return{pathname:e.pathname,searchStr:e.search,hash:e.hash.replace(/^#/,""),state:null}}return{pathname:window.location.pathname,searchStr:window.location.search,hash:window.location.hash.replace(/^#/,""),state:window.history.state}}function $s(e,n){return e.pathname===n.pathname&&e.searchStr===n.searchStr&&e.hash===n.hash&&Object.is(e.state,n.state)}function Rs(e){let n=e.read();const t=new Set;let s=null;const o=()=>{const r=e.read();if(!$s(n,r)){n=r;for(const i of t)i()}};return{getSnapshot:()=>n,subscribe(r){return s||(s=e.observe(o)),t.add(r),()=>{t.delete(r)}},navigateTo(r,i={}){const a=n.pathname,c=i.state===void 0?n.state:i.state;i.replace?e.replace(r,c):e.push(r,c),o(),n.pathname!==a&&Hn(a,n.pathname)}}}function Ps(){return typeof window>"u"?{read:xe,push:()=>{},replace:()=>{},observe:()=>()=>{}}:{read:xe,push:(e,n)=>window.history.pushState(n,"",e),replace:(e,n)=>window.history.replaceState(n,"",e),observe:e=>(window.addEventListener("popstate",e),window.addEventListener("hashchange",e),()=>{window.removeEventListener("popstate",e),window.removeEventListener("hashchange",e)})}}const x=Rs(Ps());function Cs(){return L.useSyncExternalStore(x.subscribe,x.getSnapshot,x.getSnapshot)}function ie(e,n={}){x.navigateTo(e,n)}function On(){return typeof window>"u"?null:window.navigation??null}function Dn(){if(typeof window>"u")return!1;const e=On();return e?e.canGoBack:window.history.length>1}function As(){if(!Dn())return;const e=On();if(e){e.back();return}window.history.back()}function Uo(e){if(!e||typeof e!="object")return null;const n=e.returnTo;return!n||typeof n!="object"||typeof n.view!="string"?null:n}function Fo(e){return!e||typeof e!="object"?!1:e.returnUseHistory===!0}function je(e){if(!e||typeof e!="object")return e;const{returnTo:n,returnUseHistory:t,settingsEntry:s,...o}=e;return o}function _s(e,n){if(n.returnTo!==void 0){const t=n.state!==void 0?n.state:je(e),s=t&&typeof t=="object"?{...t}:{};return s.returnTo=n.returnTo,s.returnUseHistory=n.replace!==!0,s}return n.state!==void 0?n.state:n.replace?e:je(e)}function xn(e){return e?e.replace(/^#/,""):""}function Us(e,n,t={}){const s=G(e.pathname,e.searchStr),o=Ls(n,s),r=t.preserveSearch===!1?"":e.searchStr,i=Sn(Tn(o,e.pathname),r),a=xn(t.hash);return{route:o,href:`${i}${a?`#${a}`:""}`}}function Fs(e,n){const t=new URLSearchParams(e.searchStr);for(const[r,i]of Object.entries(n.searchPatch??{}))i===null?t.delete(r):t.set(r,i);const s=t.toString(),o=n.hash===void 0?e.hash:xn(n.hash);return`${e.pathname}${s?`?${s}`:""}${o?`#${o}`:""}`}function To(e){const n=x.getSnapshot(),t=Fs(n,e),s=`${n.pathname}${n.searchStr}${kn(n.hash)}`;t!==s&&ie(t,{replace:e.replace??!0,state:e.state})}function Ts(e,n,t){if(Es(e))return null;const s=`${e}${n}`,o=Fn(s),r=ue(o),i=Sn(Tn(r,e),n);return!(N(o)!==N(r)||r.view==="agents-v2"||s!==i)||s===i?null:`${i}${kn(t)}`}function ko(){const{pathname:e,searchStr:n,hash:t}=Cs(),s=`${e}${n}`,o=L.useMemo(()=>G(e,n),[e,n]),r=L.useRef({}),i=L.useRef(s);L.useEffect(()=>{const f=Ts(e,n,t);f&&ie(f,{replace:!0})},[e,n,t]),L.useEffect(()=>{if(i.current===s)return;const f=G(e,n);requestAnimationFrame(()=>{window.scrollTo(0,r.current[N(f)]??0)}),i.current=s},[s,e,n]);const a=L.useCallback((f,S={})=>{const A=ue(f.view==="ops"&&!rn()&&!_n(f.mode)?{view:"inbox"}:f),g=G(e,n),{route:w,href:R}=Us({pathname:e,searchStr:n},A,S);r.current[N(g)]=window.scrollY;const U=x.getSnapshot().state,_=_s(U,S);ie(R,{replace:S.replace,state:_}),requestAnimationFrame(()=>{window.scrollTo(0,r.current[N(w)]??0)})},[e,n]),c=L.useCallback(()=>As(),[]),d=Dn();return{route:o,navigate:a,navigateBack:c,canNavigateBack:d}}export{qs as $,Po as A,$o as B,Eo as C,Cn as D,go as E,js as F,Gt as G,ge as H,T as I,po as J,fo as K,wo as L,ho as M,Co as N,yo as O,Ao as P,To as Q,io as R,ft as S,vn as T,In as U,uo as V,Qs as W,Vs as X,Xs as Y,At as Z,_t as _,Tn as a,Pt as a0,eo as a1,Ut as a2,to as a3,so as a4,no as a5,oo as a6,Zs as a7,Js as a8,Ys as a9,So as aA,Rn as aB,bo as aC,re as aD,vo as aE,Io as aF,$n as aG,cn as aa,an as ab,Se as ac,ro as ad,ao as ae,V as af,te as ag,Bs as ah,oe as ai,Q as aj,Dt as ak,Bt as al,xt as am,Sn as an,zt as ao,ut as ap,co as aq,bn as ar,Ye as as,lo as at,ko as au,Ve as av,Jn as aw,Ln as ax,z as ay,mo as az,bs as b,_o as c,en as d,Ws as e,le as f,zs as g,Ms as h,Gs as i,Hs as j,Cs as k,Uo as l,Fo as m,dt as n,mt as o,pt as p,Ks as q,Fn as r,De as s,ts as t,Ns as u,Ro as v,wt as w,ns as x,Lo as y,ss as z};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{A as a,B as l,D as n,E as r,r as m}from"./index-CZ-05hKz.js";import{R as p,T as i,U as c,k as E,V as S}from"./router-DJj2WbDg.js";const A={path:l(n.lanes),bundle:`?ffBundle=${a}`,deploy:`OPENSCOUT_WEB_FLAG_BUNDLE=${a}`},o=[{key:"lanes",label:"Agent Lanes",segment:n.lanes},{key:"sessions",label:"Sessions",segment:n.sessions},{key:"tail",label:"Live Activity",segment:n.tail},{key:"agents",label:"Agents",segment:n.agents}],_=o.map(e=>({key:e.key,label:e.label,route:p(e.segment)}));function b(e){const t=i(e);return o.find(s=>s.segment===t)?.key??"lanes"}function d(e){const t=i(e);return o.find(s=>s.segment===t)?.label??r}function u(){const{pathname:e}=E();return c(e)}function P(){return S(u())}function T(e){const t=u();return m.useEffect(()=>(t?document.documentElement.setAttribute("data-scope-presentation",""):document.documentElement.removeAttribute("data-scope-presentation"),()=>document.documentElement.removeAttribute("data-scope-presentation")),[t]),{active:t,brandLabel:t?d(e.route):r}}function L(){return c(typeof window<"u"?window.location.pathname:"")}export{_ as S,u as a,A as b,d as c,T as d,L as i,b as s,P as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as x}from"./index-CZ-05hKz.js";import{b as k,p as A,V as q,D as N}from"./fx-z37u1o2z.js";function he(t){return t?t.hint?`${t.message} ${t.hint}`:t.message:"Scout voice is unavailable."}async function fe(t={}){const e=await fetch("/api/voice/engage",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(t)});if(e.status===404)return j(t);if(!e.ok){const n=await e.text().catch(()=>"");throw new Error(y(n,e.status))}return await e.json()}async function j(t={}){const e=await de(),n=e.settings,i=e.devices,r=i.length>0||(n.permissions?.length??0)>0,o=n.permissions?.find(w=>w.kind==="microphone")??null,a=n.permissions?.find(w=>w.kind==="speechRecognition")??null,u=U(n,i);if(t.requestPermissions&&(o&&!o.granted&&o.status!=="restricted"?await C("microphone").catch(()=>{}):(o?.granted??!1)&&a&&!a.granted&&a.status!=="restricted"&&await C("speechRecognition").catch(()=>{})),!r)return{ready:!1,issue:{code:"host_offline",title:"Scout Menu is not running",message:"Launch Scout Menu on this Mac to dictate in web chat.",hint:"Restart the web server if you just updated Scout — `scout server restart` or restart `bun run server/index.ts`.",action:"launch_host"},warnings:[],settings:n,devices:i,inputDevice:null,hostOnline:!1};const h=$(o);if(h)return{ready:!1,issue:h,warnings:[],settings:n,devices:i,inputDevice:u,hostOnline:r};if(!u)return{ready:!1,issue:{code:"no_input_device",title:"No microphone detected",message:"Scout Menu did not report any audio input devices.",hint:"Plug in a microphone, check Sound settings, then refresh Settings → Voice.",action:"open_voice_settings"},warnings:[],settings:n,devices:i,inputDevice:null,hostOnline:r};const d=F(a);return{ready:!0,issue:null,warnings:d?[d]:[],settings:n,devices:i,inputDevice:u,hostOnline:r}}function U(t,e){if(e.length===0)return null;const n=t.inputDeviceId?e.find(o=>o.id===t.inputDeviceId):null,i=e.find(o=>o.isDefault)??e[0]??null,r=n??i;return r?{id:r.id,name:r.name}:null}function $(t){return!t||t.granted?null:t.canRequest?{code:"microphone_not_requested",title:"Microphone access needed",message:"Scout Menu needs microphone access before dictation can start.",hint:"Request access or tap the mic again to show the macOS prompt.",action:"request_microphone"}:{code:"microphone_denied",title:"Microphone blocked",message:"Scout Menu cannot record because microphone access is off.",hint:"Scout is opening macOS Microphone settings and will detect the change automatically.",action:"open_microphone_settings"}}function F(t){return!t||t.granted?null:t.canRequest?{code:"speech_not_requested",title:"Speech recognition needed",message:"Scout Menu needs speech recognition for live partials.",hint:"Request access to show the macOS prompt.",action:"request_speech"}:{code:"speech_denied",title:"Speech recognition blocked",message:"Speech recognition is off for Scout Menu.",hint:"Choose Retry access to reopen macOS Speech Recognition settings.",action:"open_speech_settings"}}function H(t,e){switch(e){case"microphone_permission":return"Microphone access is off for Scout Menu. Tap the mic to retry; Scout will open macOS Microphone settings.";case"empty_transcript":return"No speech was detected. Check your microphone input in Settings → Voice.";default:return t}}const G=6e4,J=3e3,z=2e4,B=8e3,W=45e3;let M=null,E=null,l=null,_=!1;const R=new Set;function X(){return typeof window>"u"?!1:typeof fetch=="function"}function K(){return M||(M=new Q),M}function me(t){return R.add(t),l&&t(l),()=>{R.delete(t)}}function we(){if(_||!X())return;_=!0;const t=K();t.probe();const e=()=>{t.probeIfStale()};window.addEventListener("focus",e),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()})}function I(t){for(const e of R)e(t)}function O(t,e=Date.now()){const n=t.ok?z:B;return e-t.probedAt<n}class Q{state="unknown";unavailableReason=null;captureMode=null;hostReachable=!1;microphoneGranted=null;microphoneCanRequest=null;inputDeviceName=null;get connectionState(){return this.state}get lastUnavailableReason(){return this.unavailableReason}get preferredCaptureMode(){return this.captureMode}get isVoiceHostReachable(){return this.hostReachable}get activeInputDeviceName(){return this.inputDeviceName}get isMicrophoneGranted(){return this.microphoneGranted}get canRequestMicrophone(){return this.hostReachable&&this.microphoneGranted===!1&&this.microphoneCanRequest===!0}get isMicrophoneHardDenied(){return this.hostReachable&&this.microphoneGranted===!1&&this.microphoneCanRequest===!1}get isMicrophoneDenied(){return this.isMicrophoneHardDenied}async probeIfStale(){const e=Date.now();return l&&O(l,e)?(this.applyProbeSnapshot(l),l.ok):l&&l.ok&&e-l.probedAt<W?(this.applyProbeSnapshot(l),!0):l&&!l.ok?this.probe({force:!0}):this.probe()}async probe(e={}){const n=typeof e=="number"?{timeoutMs:e}:e,i=n.force??!1,r=n.timeoutMs??J,o=Date.now();return!i&&l&&O(l,o)?(this.applyProbeSnapshot(l),l.ok):E||(this.state="probing",E=this.fetchProbe(r).finally(()=>{E=null}),E)}async fetchProbe(e){const n=new AbortController,i=window.setTimeout(()=>n.abort(),e);try{const r=await fetch("/api/voice/health?quiet=1",{signal:n.signal}),o=await r.json().catch(()=>({})),a=!!o.host?.hostId,u=typeof o.microphoneGranted=="boolean"?o.microphoneGranted:null,h=typeof o.microphoneCanRequest=="boolean"?o.microphoneCanRequest:null,d=typeof o.inputDevice?.name=="string"&&o.inputDevice.name.trim()?o.inputDevice.name.trim():null,w=o.capture==="browser"?"browser":"native",S=r.ok&&o.ok===!0,v=S?null:o.detail??o.error??(a?"Scout voice is not ready.":"Scout voice service is unavailable."),f={ok:S,reason:v,captureMode:S?w:null,hostReachable:a,microphoneGranted:u,microphoneCanRequest:h,inputDeviceName:d,probedAt:Date.now()};return l=f,this.applyProbeSnapshot(f),I(f),S}catch(r){const a={ok:!1,reason:r instanceof Error&&r.name==="AbortError"?"Scout voice service did not respond.":"Scout voice service is unavailable.",captureMode:null,hostReachable:!1,microphoneGranted:null,microphoneCanRequest:null,inputDeviceName:null,probedAt:Date.now()};return l=a,this.applyProbeSnapshot(a),I(a),!1}finally{window.clearTimeout(i)}}applyProbeSnapshot(e){if(this.hostReachable=e.hostReachable,this.microphoneGranted=e.microphoneGranted,this.microphoneCanRequest=e.microphoneCanRequest,this.inputDeviceName=e.inputDeviceName,e.ok){this.unavailableReason=null,this.captureMode=e.captureMode,this.state="connected";return}this.unavailableReason=e.reason,this.captureMode=null,this.state="unavailable"}async launch(e={}){try{const i=await(await fetch("/api/scout-services/restart-link",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({target:"all"})})).json().catch(()=>({}));if(i.url?.startsWith("scout://services/restart/")){window.location.href=i.url;return}}catch{}window.location.href="scout://hud/show"}async startLive(e={},n={}){return this.captureMode!=="browser"?await Y(e,n):await Z(e)}}async function Y(t={},e={}){t.onState?.("starting");const n=await fetch("/api/voice/session",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({clientId:"openscout-web",surface:e.surface?.trim()||"chat-composer"})});if(!n.ok){const s=await n.text().catch(()=>"");throw new Error(y(s,n.status))}const r=(await n.json()).sessionId?.trim();if(!r)throw new Error("Scout voice did not return a session id.");let o=!1,a,u;const h=new Promise((s,p)=>{a=s,u=p});let d=null;const w=()=>{d&&window.clearTimeout(d),d=window.setTimeout(()=>{v(new Error("Scout voice transcription timed out. Try again or check voice settings."))},G)},S=()=>{d&&(window.clearTimeout(d),d=null)},v=(s,p="error")=>{o||(o=!0,S(),m.close(),t.onState?.(p),u(s))},f=s=>{o||(o=!0,S(),m.close(),t.onFinal?.(s),t.onState?.("done"),a(s))},m=new EventSource(`/api/voice/session/${encodeURIComponent(r)}/events`),c=s=>p=>{if(o)return;let g={};try{g=JSON.parse(p.data)}catch{return}if(s==="session.partial"){const b=typeof g.text=="string"?g.text:"";t.onPartial?.(b);return}if(s==="session.state"){const b=ee(g.state);b&&(t.onState?.(b),b==="processing"&&w());return}if(s==="session.final"){f({sessionId:r,text:typeof g.text=="string"?g.text.trim():"",durationMs:Number(g.durationMs??0)});return}if(s==="session.cancelled"){v(T(),"cancelled");return}if(s==="session.error"){const b=typeof g.message=="string"?g.message:"Scout voice session failed.",L=typeof g.code=="string"?g.code:null;v(new Error(H(b,L)))}};return m.addEventListener("session.started",()=>{t.onState?.("starting")}),m.addEventListener("session.state",c("session.state")),m.addEventListener("session.partial",c("session.partial")),m.addEventListener("session.final",c("session.final")),m.addEventListener("session.cancelled",c("session.cancelled")),m.addEventListener("session.error",c("session.error")),m.onerror=()=>{o||v(new Error("Scout voice event stream disconnected."))},{get sessionId(){return r},result:h,stop:async()=>{t.onState?.("processing"),w();const s=await fetch(`/api/voice/session/${encodeURIComponent(r)}/stop`,{method:"POST"});if(!s.ok){const p=await s.text().catch(()=>"");throw new Error(y(p,s.status))}},cancel:async()=>{o=!0,S(),m.close();const s=await fetch(`/api/voice/session/${encodeURIComponent(r)}/cancel`,{method:"POST"});if(!s.ok){const p=await s.text().catch(()=>"");throw new Error(y(p,s.status))}t.onState?.("cancelled"),u(T())}}}async function Z(t={}){if(typeof MediaRecorder>"u"||!navigator.mediaDevices?.getUserMedia)throw new Error("Scout voice capture is unavailable in this browser.");const{startStreamLevelMeter:e}=await x(async()=>{const{startStreamLevelMeter:c}=await import("./voice-levels-Dcr3jglk.js");return{startStreamLevelMeter:c}},[]),n=ue(),i=[];let r=null,o=null,a=null,u=!1,h=!1,d,w;const S=new Promise((c,s)=>{d=c,w=s}),v=()=>{a?.stop(),a=null;for(const c of r?.getTracks()??[])c.stop();r=null},f=(c,s="error")=>{h||(h=!0,v(),t.onState?.(s),w(c))},m=async()=>{if(h)return;if(v(),u){f(T(),"cancelled");return}t.onState?.("processing");const c=o?.mimeType||V()||"application/octet-stream",s=new Blob(i,{type:c});if(s.size===0){f(new Error("No voice audio was captured."));return}try{const p=await re(s,{sessionId:n});if(h)return;h=!0,t.onFinal?.(p),t.onState?.("done"),d(p)}catch(p){f(p instanceof Error?p:new Error(String(p)))}};try{t.onState?.("starting"),r=await navigator.mediaDevices.getUserMedia({audio:!0}),t.onLevel&&(a=e(r,t.onLevel));const c=V();o=new MediaRecorder(r,c?{mimeType:c}:void 0),o.addEventListener("dataavailable",s=>{s.data.size>0&&i.push(s.data)}),o.addEventListener("error",()=>{f(new Error("Scout voice recorder failed."))}),o.addEventListener("stop",()=>{m()},{once:!0}),o.start(),t.onPartial?.(""),t.onState?.("recording")}catch(c){const s=c instanceof Error?c:new Error(String(c));throw f(s),S.catch(()=>{}),s}return{get sessionId(){return n},result:S,stop:async()=>{!o||o.state==="inactive"||o.stop()},cancel:async()=>{if(u=!0,o&&o.state!=="inactive"){o.stop();return}f(T(),"cancelled")}}}function ee(t){return t==="starting"||t==="recording"||t==="processing"||t==="done"||t==="cancelled"||t==="error"?t:null}function y(t,e){try{return JSON.parse(t).error??`Scout voice returned HTTP ${e}`}catch{return t||`Scout voice returned HTTP ${e}`}}function Se(t){return t instanceof Error&&t.name==="AbortError"}async function D(t,e={}){const n={text:t,speed:ce(e.speed)};e.modelId&&(n.modelId=e.modelId),e.voiceId&&(n.voiceId=e.voiceId),e.originAppId&&(n.originAppId=e.originAppId),e.utteranceId&&(n.utteranceId=e.utteranceId),e.instructions&&(n.instructions=e.instructions),e.speechTiming?.enabled&&(n.speechTiming=e.speechTiming);const i=await fetch("/api/voice/speak",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(n),signal:e.signal});if(!i.ok){const r=await i.text().catch(()=>"");try{const o=JSON.parse(r);throw new Error(o.error??`Scout voice returned HTTP ${i.status}`)}catch(o){throw o instanceof SyntaxError?new Error(r||`Scout voice returned HTTP ${i.status}`):o}}return await i.json()}async function ge(t){const e=t?`?modelId=${encodeURIComponent(t)}`:"",n=await fetch(`/api/voice/catalog${e}`,{headers:{accept:"application/json"}});if(!n.ok)throw new Error(`Scout voice catalog returned HTTP ${n.status}`);return await n.json()}async function te(t,e={}){if(e.signal?.aborted)throw P();const n=new Audio(`data:${t.contentType};base64,${t.audioBase64}`),i=()=>{n.pause(),n.currentTime=0};e.signal?.addEventListener("abort",i,{once:!0}),await n.play(),e.onPlaybackStart?.();try{return await new Promise((r,o)=>{const a=()=>{n.removeEventListener("ended",u),n.removeEventListener("error",h),e.signal?.removeEventListener("abort",d)},u=()=>{a(),r()},h=()=>{a(),o(new Error("Scout voice playback failed."))},d=()=>{a(),o(P())};if(e.signal?.aborted){d();return}n.addEventListener("ended",u,{once:!0}),n.addEventListener("error",h,{once:!0}),e.signal?.addEventListener("abort",d,{once:!0})}),t}finally{e.signal?.removeEventListener("abort",i)}}async function ne(t,e={}){const n=await D(t,e);return await te(n,{signal:e.signal})}function ve(t,e={}){const n=new AbortController;return{promise:ne(t,{...e,signal:n.signal}),stop:()=>n.abort()}}async function oe(t,e={}){const n=await D(t,e);if(e.signal?.aborted)throw P();const i=await k(n.audioBase64,n.contentType),r=ae(e.presetId,e.params);return await A(i,{params:r,signal:e.signal}).promise,n}function ye(t,e={}){const n=new AbortController;return{promise:oe(t,{...e,signal:n.signal}),stop:()=>n.abort()}}async function re(t,e){const n=new FormData,i=ie(t.type);n.append("audio",t,`audio.${se(t.type)}`),n.append("sessionId",e.sessionId),i&&n.append("format",i);const r=await fetch("/api/voice/transcribe",{method:"POST",body:n});if(!r.ok){const a=await r.text().catch(()=>"");try{const u=JSON.parse(a);throw new Error(u.error??`Scout voice returned HTTP ${r.status}`)}catch(u){throw u instanceof SyntaxError?new Error(a||`Scout voice returned HTTP ${r.status}`):u}}const o=await r.json();return{sessionId:e.sessionId,text:o.text?.trim()??"",durationMs:Number(o.durationMs??0)}}function P(){const t=new Error("Speech stopped.");return t.name="AbortError",t}function T(){const t=new Error("Voice recording was cancelled.");return t.name="AbortError",t}function V(){return typeof MediaRecorder>"u"||typeof MediaRecorder.isTypeSupported!="function"?void 0:["audio/webm;codecs=opus","audio/ogg;codecs=opus","audio/mp4","audio/webm","audio/wav"].find(e=>{try{return MediaRecorder.isTypeSupported(e)}catch{return!1}})}function ie(t){const e=t.toLowerCase();if(e.includes("mp3")||e.includes("mpeg"))return"mp3";if(e.includes("wav"))return"wav";if(e.includes("aac")||e.includes("mp4"))return"aac";if(e.includes("opus")||e.includes("ogg")||e.includes("webm"))return"opus"}function se(t){const e=t.toLowerCase();return e.includes("webm")?"webm":e.includes("ogg")||e.includes("opus")?"opus":e.includes("mp4")||e.includes("aac")?"m4a":e.includes("wav")?"wav":e.includes("mp3")||e.includes("mpeg")?"mp3":"audio"}function ae(t,e){const n=t?q.find(i=>i.id===t)?.params:void 0;return{...N,...n??{},...e??{}}}function ce(t){if(!(t===void 0||!Number.isFinite(t)))return Math.min(2,Math.max(.5,Number(t.toFixed(2))))}function ue(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?`scout-voice:${crypto.randomUUID()}`:`scout-voice:${Date.now().toString(36)}:${Math.random().toString(36).slice(2)}`}async function de(){const t=await fetch("/api/voice/settings");if(!t.ok){const e=await t.text().catch(()=>"");throw new Error(y(e,t.status))}return await t.json()}async function be(t="microphone"){const e=await fetch("/api/voice/permissions/open",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({kind:t})});if(!e.ok){const n=await e.text().catch(()=>"");throw new Error(y(n,e.status))}}async function C(t="microphone"){const e=await fetch("/api/voice/permissions/request",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({kind:t})});if(!e.ok){const n=await e.text().catch(()=>"");throw new Error(y(n,e.status))}}async function Ee(t=12){const e=await fetch(`/api/voice/history?limit=${t}`);if(!e.ok){const i=await e.text().catch(()=>"");throw new Error(y(i,e.status))}return(await e.json()).sessions??[]}async function Te(t){const e=await fetch("/api/voice/settings",{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify(t)});if(!e.ok){const n=await e.text().catch(()=>"");throw new Error(y(n,e.status))}return await e.json()}export{fe as a,ve as b,ye as c,ge as d,we as e,he as f,K as g,te as h,Se as i,de as j,Ee as k,Te as l,be as o,D as p,C as r,me as s};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const g="scoutbot",O="scout:scoutbot-submit",h=new Set([g,"scoutbot","@scoutbot"]),S=new Set(["plan","conductor","conduct","warroom","command","mission","control","issues","errors","warnings","agents","tail","atop"]),_=new Set(["available","working","active","idle","waiting","registered"]);function U(t=globalThis.window){const e=t.webkit?.messageHandlers;return!!(e?.scoutNativeUI??e?.scoutRealtimeVoice)}function j(t,e=globalThis.window){const o=e.webkit?.messageHandlers,n=o?.scoutNativeUI??o?.scoutRealtimeVoice;if(!n)return!1;try{return n.postMessage({kind:"ui-action",action:t}),!0}catch{return!1}}function y(t){return[t.id,t.name,t.handle??"",t.selector??"",t.role??""].map(o=>o.trim().toLowerCase()).some(o=>h.has(o)||o==="scoutbot"||o.startsWith("scoutbot.")||o.includes(".scoutbot.")||o.includes(" scoutbot"))}function A(t){return _.has(t.state?.trim().toLowerCase()??"")}function m(t){if(!y(t))return Number.NEGATIVE_INFINITY;let e=0;return A(t)&&(e+=100),t.handle?.trim().toLowerCase()==="scoutbot"&&(e+=20),t.selector?.trim().toLowerCase()==="@scoutbot"&&(e+=20),t.role?.trim().toLowerCase()==="scoutbot"&&(e+=10),t.id===g&&(e+=1),e}function N(t){return t.filter(y).sort((e,o)=>{const n=m(o)-m(e);return n!==0?n:(o.updatedAt??0)-(e.updatedAt??0)})[0]??null}function C(t){return N(t)?.id??g}const T=new Set(["scout-ui","scout-ui-action","scoutbot-ui"]),b=/```([a-zA-Z0-9_-]*)\s*([\s\S]*?)```/g;function I(t){const e=[];let o="",n=0;b.lastIndex=0;let s;for(;(s=b.exec(t))!==null;){const[l,r,i]=s,a=(r??"").toLowerCase(),u=i??"";let d=[],f=!1;T.has(a)?(f=!0,d=w(u)):(a==="json"||a==="")&&(d=w(u),d.length>0&&(f=!0)),f&&(e.push(...d),o+=t.slice(n,s.index),n=s.index+l.length)}return o+=t.slice(n),{stripped:o.replace(/\n{3,}/g,`
|
|
1
|
+
const g="scoutbot",O="scout:scoutbot-submit",h=new Set([g,"scoutbot","@scoutbot"]),S=new Set(["advisor","plan","conductor","conduct","warroom","command","mission","control","issues","errors","warnings","agents","tail","atop"]),_=new Set(["available","working","active","idle","waiting","registered"]);function U(t=globalThis.window){const e=t.webkit?.messageHandlers;return!!(e?.scoutNativeUI??e?.scoutRealtimeVoice)}function j(t,e=globalThis.window){const o=e.webkit?.messageHandlers,n=o?.scoutNativeUI??o?.scoutRealtimeVoice;if(!n)return!1;try{return n.postMessage({kind:"ui-action",action:t}),!0}catch{return!1}}function y(t){return[t.id,t.name,t.handle??"",t.selector??"",t.role??""].map(o=>o.trim().toLowerCase()).some(o=>h.has(o)||o==="scoutbot"||o.startsWith("scoutbot.")||o.includes(".scoutbot.")||o.includes(" scoutbot"))}function A(t){return _.has(t.state?.trim().toLowerCase()??"")}function m(t){if(!y(t))return Number.NEGATIVE_INFINITY;let e=0;return A(t)&&(e+=100),t.handle?.trim().toLowerCase()==="scoutbot"&&(e+=20),t.selector?.trim().toLowerCase()==="@scoutbot"&&(e+=20),t.role?.trim().toLowerCase()==="scoutbot"&&(e+=10),t.id===g&&(e+=1),e}function N(t){return t.filter(y).sort((e,o)=>{const n=m(o)-m(e);return n!==0?n:(o.updatedAt??0)-(e.updatedAt??0)})[0]??null}function C(t){return N(t)?.id??g}const T=new Set(["scout-ui","scout-ui-action","scoutbot-ui"]),b=/```([a-zA-Z0-9_-]*)\s*([\s\S]*?)```/g;function I(t){const e=[];let o="",n=0;b.lastIndex=0;let s;for(;(s=b.exec(t))!==null;){const[l,r,i]=s,a=(r??"").toLowerCase(),u=i??"";let d=[],f=!1;T.has(a)?(f=!0,d=w(u)):(a==="json"||a==="")&&(d=w(u),d.length>0&&(f=!0)),f&&(e.push(...d),o+=t.slice(n,s.index),n=s.index+l.length)}return o+=t.slice(n),{stripped:o.replace(/\n{3,}/g,`
|
|
2
2
|
|
|
3
|
-
`).trim(),actions:e}}function x(t){return I(t).actions}function F(t){return I(t).stripped}function w(t){const e=t.trim();if(!e)return[];try{const o=JSON.parse(e);return(Array.isArray(o)?o:[o]).map(s=>v(s)).filter(s=>!!s)}catch{return[]}}function v(t){if(!t||typeof t!="object")return null;const e=t,o=e.scoutUi??e.scout_ui??e.scoutbotUi??e.scoutbot_ui;if(o)return v(o);const n=typeof e.type=="string"?e.type:typeof e.action=="string"?e.action:"",s=typeof e.reason=="string"?e.reason:void 0;if(n==="open-scoutbot"||n==="open_scoutbot"){const r=e.mode==="tell"?"tell":e.mode==="ask"?"ask":void 0;return{type:"open-scoutbot",...r?{mode:r}:{},...s?{reason:s}:{}}}if(n==="refresh")return{type:"refresh",...s?{reason:s}:{}};if(n==="ask-agent"||n==="ask_agent"||n==="scout-ask"||n==="scout_ask"){const r=c(e.targetLabel,e.target_label,e.target,e.to,e.agent,e.handle),i=c(e.targetAgentId,e.target_agent_id,e.agentId,e.agent_id),a=c(e.body,e.message,e.prompt,e.task,e.question),u=c(e.channel);return!a?.trim()||!r?.trim()&&!i?.trim()?null:{type:"ask-agent",targetLabel:(r??i??"").trim(),body:a.trim(),...i?.trim()?{targetAgentId:i.trim()}:{},...u?.trim()?{channel:u.trim()}:{},...s?{reason:s}:{}}}if(n==="view-file"||n==="view_file"||n==="open-file"||n==="open_file"){const r=c(e.path,e.file,e.target);return r?.trim()?{type:"view-file",path:r.trim(),...s?{reason:s}:{}}:null}if(n==="reminder"||n==="set-reminder"||n==="set_reminder"||n==="remind"){const r=c(e.body,e.text,e.prompt,e.message);if(!r?.trim())return null;const i=c(e.title,e.label),a=k(e.dueAt??e.due_at),u=p(e.delayMs??e.delay_ms),d=p(e.delayMinutes??e.delay_minutes);return{type:"reminder",body:r.trim(),...i?.trim()?{title:i.trim()}:{},...a!==null?{dueAt:a}:{},...u!==null?{delayMs:u}:{},...d!==null?{delayMinutes:d}:{},...s?{reason:s}:{}}}if(n!=="navigate"&&n!=="open")return null;const l=L(e.route??e);return l?{type:"navigate",route:l,...s?{reason:s}:{}}:null}function c(...t){for(const e of t)if(typeof e=="string"&&e.trim())return e;return null}function p(t){if(typeof t=="number"&&Number.isFinite(t))return t;if(typeof t!="string")return null;const e=Number(t.trim());return Number.isFinite(e)?e:null}function k(t){const e=p(t);if(e!==null)return e;if(typeof t!="string")return null;const o=Date.parse(t);return Number.isFinite(o)?o:null}function L(t){if(!t||typeof t!="object")return null;const e=t;switch(typeof e.view=="string"?e.view:""){case"home":case"inbox":return{view:"inbox"};case"fleet":return{view:"inbox"};case"agents":case"projects":case"agents-v2":return{view:"agents-v2",...typeof e.agentId=="string"?{agentId:e.agentId}:{},...typeof e.conversationId=="string"?{conversationId:e.conversationId}:{},...typeof e.sessionId=="string"?{sessionId:e.sessionId}:{},...typeof e.projectSlug=="string"?{projectSlug:e.projectSlug}:{},...e.tab==="profile"||e.tab==="observe"||e.tab==="message"?{tab:e.tab}:{}};case"chat":case"messages":return{view:"messages",...typeof e.conversationId=="string"?{conversationId:e.conversationId}:{}};case"sessions":return{view:"sessions",...typeof e.sessionId=="string"?{sessionId:e.sessionId}:{}};case"repos":return{view:"repos",...typeof e.root=="string"?{root:e.root}:{}};case"harnesses":return{view:"harnesses"};case"repo-diff":return typeof e.path=="string"?{view:"repo-diff",path:e.path,...typeof e.sessionId=="string"?{sessionId:e.sessionId}:{},...typeof e.agentId=="string"?{agentId:e.agentId}:{}}:null;case"search":return{view:"search",...e.mode==="knowledge"||e.mode==="indexer"?{mode:e.mode}:{},...typeof e.hitId=="string"?{hitId:e.hitId}:{}};case"channels":return{view:"messages",...typeof e.channelId=="string"?{conversationId:e.channelId}:{}};case"mesh":return{view:"mesh"};case"broker":return{view:"broker"};case"activity":return{view:"activity"};case"settings":return{view:"settings",...e.section==="pairing"||e.section==="agents"||e.section==="operator"||e.section==="comms"||e.section==="credentials"||e.section==="voice"||e.section==="devices"?{section:e.section}:{},...typeof e.agentId=="string"?{agentId:e.agentId}:{}};case"code":{const n=c(e.project,e.projectSlug,e.project_slug,e.projectName,e.project_name,e.repository,e.repo),s=c(e.path,e.relativePath,e.relative_path),l=c(e.wt,e.worktree,e.worktreeName,e.worktree_name),r=typeof e.line=="number"&&Number.isSafeInteger(e.line)&&e.line>0?e.line:void 0,i=typeof e.endLine=="number"&&Number.isSafeInteger(e.endLine)&&e.endLine>0?e.endLine:void 0,a=r&&i&&i>=r?i:void 0;return{view:"code",...typeof e.root=="string"?{root:e.root}:{},...typeof e.file=="string"?{file:e.file}:{},...n?{project:n}:{},...s?{path:s}:{},...l?{wt:l}:{},...r?{line:r}:{},...a?{endLine:a}:{}}}case"briefings":return{view:"briefings",...typeof e.briefingId=="string"?{briefingId:e.briefingId}:{}};case"terminal":return{view:"terminal",...typeof e.agentId=="string"?{agentId:e.agentId}:{}};case"work":return typeof e.workId=="string"?{view:"work",workId:e.workId}:null;case"conversation":return typeof e.conversationId=="string"?{view:"conversation",conversationId:e.conversationId}:null;case"ops":{const n=typeof e.mode=="string"&&S.has(e.mode)?E(e.mode):void 0;return{view:"ops",...n?{mode:n}:{}}}default:return null}}function E(t){switch(t){case"control":case"mission":case"command":case"warroom":case"conduct":case"conductor":return"mission";case"plan":return"
|
|
3
|
+
`).trim(),actions:e}}function x(t){return I(t).actions}function F(t){return I(t).stripped}function w(t){const e=t.trim();if(!e)return[];try{const o=JSON.parse(e);return(Array.isArray(o)?o:[o]).map(s=>v(s)).filter(s=>!!s)}catch{return[]}}function v(t){if(!t||typeof t!="object")return null;const e=t,o=e.scoutUi??e.scout_ui??e.scoutbotUi??e.scoutbot_ui;if(o)return v(o);const n=typeof e.type=="string"?e.type:typeof e.action=="string"?e.action:"",s=typeof e.reason=="string"?e.reason:void 0;if(n==="open-scoutbot"||n==="open_scoutbot"){const r=e.mode==="tell"?"tell":e.mode==="ask"?"ask":void 0;return{type:"open-scoutbot",...r?{mode:r}:{},...s?{reason:s}:{}}}if(n==="refresh")return{type:"refresh",...s?{reason:s}:{}};if(n==="ask-agent"||n==="ask_agent"||n==="scout-ask"||n==="scout_ask"){const r=c(e.targetLabel,e.target_label,e.target,e.to,e.agent,e.handle),i=c(e.targetAgentId,e.target_agent_id,e.agentId,e.agent_id),a=c(e.body,e.message,e.prompt,e.task,e.question),u=c(e.channel);return!a?.trim()||!r?.trim()&&!i?.trim()?null:{type:"ask-agent",targetLabel:(r??i??"").trim(),body:a.trim(),...i?.trim()?{targetAgentId:i.trim()}:{},...u?.trim()?{channel:u.trim()}:{},...s?{reason:s}:{}}}if(n==="view-file"||n==="view_file"||n==="open-file"||n==="open_file"){const r=c(e.path,e.file,e.target);return r?.trim()?{type:"view-file",path:r.trim(),...s?{reason:s}:{}}:null}if(n==="reminder"||n==="set-reminder"||n==="set_reminder"||n==="remind"){const r=c(e.body,e.text,e.prompt,e.message);if(!r?.trim())return null;const i=c(e.title,e.label),a=k(e.dueAt??e.due_at),u=p(e.delayMs??e.delay_ms),d=p(e.delayMinutes??e.delay_minutes);return{type:"reminder",body:r.trim(),...i?.trim()?{title:i.trim()}:{},...a!==null?{dueAt:a}:{},...u!==null?{delayMs:u}:{},...d!==null?{delayMinutes:d}:{},...s?{reason:s}:{}}}if(n!=="navigate"&&n!=="open")return null;const l=L(e.route??e);return l?{type:"navigate",route:l,...s?{reason:s}:{}}:null}function c(...t){for(const e of t)if(typeof e=="string"&&e.trim())return e;return null}function p(t){if(typeof t=="number"&&Number.isFinite(t))return t;if(typeof t!="string")return null;const e=Number(t.trim());return Number.isFinite(e)?e:null}function k(t){const e=p(t);if(e!==null)return e;if(typeof t!="string")return null;const o=Date.parse(t);return Number.isFinite(o)?o:null}function L(t){if(!t||typeof t!="object")return null;const e=t;switch(typeof e.view=="string"?e.view:""){case"home":case"inbox":return{view:"inbox"};case"fleet":return{view:"inbox"};case"agents":case"projects":case"agents-v2":return{view:"agents-v2",...typeof e.agentId=="string"?{agentId:e.agentId}:{},...typeof e.conversationId=="string"?{conversationId:e.conversationId}:{},...typeof e.sessionId=="string"?{sessionId:e.sessionId}:{},...typeof e.projectSlug=="string"?{projectSlug:e.projectSlug}:{},...e.tab==="profile"||e.tab==="observe"||e.tab==="message"?{tab:e.tab}:{}};case"chat":case"messages":return{view:"messages",...typeof e.conversationId=="string"?{conversationId:e.conversationId}:{}};case"sessions":return{view:"sessions",...typeof e.sessionId=="string"?{sessionId:e.sessionId}:{}};case"repos":return{view:"repos",...typeof e.root=="string"?{root:e.root}:{}};case"harnesses":return{view:"harnesses"};case"repo-diff":return typeof e.path=="string"?{view:"repo-diff",path:e.path,...typeof e.sessionId=="string"?{sessionId:e.sessionId}:{},...typeof e.agentId=="string"?{agentId:e.agentId}:{}}:null;case"search":return{view:"search",...e.mode==="knowledge"||e.mode==="indexer"?{mode:e.mode}:{},...typeof e.hitId=="string"?{hitId:e.hitId}:{}};case"channels":return{view:"messages",...typeof e.channelId=="string"?{conversationId:e.channelId}:{}};case"mesh":return{view:"mesh"};case"broker":return{view:"broker"};case"activity":return{view:"activity"};case"settings":return{view:"settings",...e.section==="pairing"||e.section==="agents"||e.section==="operator"||e.section==="comms"||e.section==="credentials"||e.section==="voice"||e.section==="devices"?{section:e.section}:{},...typeof e.agentId=="string"?{agentId:e.agentId}:{}};case"code":{const n=c(e.project,e.projectSlug,e.project_slug,e.projectName,e.project_name,e.repository,e.repo),s=c(e.path,e.relativePath,e.relative_path),l=c(e.wt,e.worktree,e.worktreeName,e.worktree_name),r=typeof e.line=="number"&&Number.isSafeInteger(e.line)&&e.line>0?e.line:void 0,i=typeof e.endLine=="number"&&Number.isSafeInteger(e.endLine)&&e.endLine>0?e.endLine:void 0,a=r&&i&&i>=r?i:void 0;return{view:"code",...typeof e.root=="string"?{root:e.root}:{},...typeof e.file=="string"?{file:e.file}:{},...n?{project:n}:{},...s?{path:s}:{},...l?{wt:l}:{},...r?{line:r}:{},...a?{endLine:a}:{}}}case"briefings":return{view:"briefings",...typeof e.briefingId=="string"?{briefingId:e.briefingId}:{}};case"terminal":return{view:"terminal",...typeof e.agentId=="string"?{agentId:e.agentId}:{}};case"work":return typeof e.workId=="string"?{view:"work",workId:e.workId}:null;case"conversation":return typeof e.conversationId=="string"?{view:"conversation",conversationId:e.conversationId}:null;case"ops":{const n=typeof e.mode=="string"&&S.has(e.mode)?E(e.mode):void 0;return{view:"ops",...n?{mode:n}:{}}}default:return null}}function E(t){switch(t){case"control":case"mission":case"command":case"warroom":case"conduct":case"conductor":return"mission";case"advisor":case"plan":return"advisor";case"issues":case"errors":case"warnings":return"issues";case"agents":case"tail":case"atop":case"lanes":return t;default:return}}export{O as S,y as a,C as b,x as e,j as f,U as i,N as r,F as s};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{j as i,r as p}from"./index-CZ-05hKz.js";import{u as m}from"./Provider-B2xuo3rf.js";import{a as x}from"./api-Co9aQ2Jw.js";import{E as g}from"./external-link-Ckiyzjwo.js";const h=new RegExp("(?:^|(?<=[\\s(`'\"<>]))(?:~\\/|\\/(?:Users|home|opt|var|etc|tmp|private)\\/)[^\\s)`'\"<>]+\\.[A-Za-z0-9]{1,8}\\b","g");function b(n){const e=n.replace(/\r\n?/g,`
|
|
2
|
+
`).split(`
|
|
3
|
+
`),t=[];let s=0;for(;s<e.length;){const r=e[s];if(r.trim()===""){s+=1;continue}if(r.startsWith("```")){const l=[];for(s+=1;s<e.length&&!e[s].startsWith("```");)l.push(e[s]),s+=1;s<e.length&&(s+=1),t.push({kind:"code",body:l.join(`
|
|
4
|
+
`)});continue}const c=r.match(/^(#{1,3})\s+(.*\S)\s*$/);if(c){const l=c[1].length;t.push({kind:"heading",level:l,tokens:d(c[2])}),s+=1;continue}if(u(r)){const l=[];for(;s<e.length&&u(e[s]);)l.push(d(k(e[s]))),s+=1;t.push({kind:"list",items:l});continue}const o=[];for(;s<e.length&&e[s].trim()!==""&&!e[s].startsWith("```")&&!u(e[s])&&!/^#{1,3}\s+\S/.test(e[s]);)o.push(d(e[s])),s+=1;t.push({kind:"paragraph",lines:o})}return t}const f=/^\s*[-*]\s+/;function u(n){return f.test(n)}function k(n){return n.replace(f,"")}function d(n){const e=[];let t=0,s="";const r=()=>{s&&(e.push({kind:"text",body:s}),s="")};for(;t<n.length;){const c=n[t];if(c==="`"){const o=n.indexOf("`",t+1);if(o!==-1&&o>t+1){r(),e.push({kind:"code",body:n.slice(t+1,o)}),t=o+1;continue}}else if(c==="*"&&n[t+1]==="*"){const o=n.indexOf("**",t+2);if(o!==-1&&o>t+2){r(),e.push({kind:"bold",body:n.slice(t+2,o)}),t=o+2;continue}}else if(c==="*"||c==="_"){const o=y(n,t+1,c);if(o!==-1){r(),e.push({kind:"italic",body:n.slice(t+1,o)}),t=o+1;continue}}s+=c,t+=1}return r(),j(e)}function j(n){const e=[];for(const t of n){if(t.kind!=="text"){e.push(t);continue}const s=v(t.body);s.length===1&&s[0].kind==="text"?e.push(t):e.push(...s)}return e}function v(n){if(!n)return[];const e=[];let t=0;h.lastIndex=0;let s;for(;(s=h.exec(n))!==null;){const r=s.index,c=r+s[0].length;r>t&&e.push({kind:"text",body:n.slice(t,r)}),e.push({kind:"file-path",body:s[0]}),t=c}return t===0?[{kind:"text",body:n}]:(t<n.length&&e.push({kind:"text",body:n.slice(t)}),e)}function y(n,e,t){if(n[e]===void 0||/\s/.test(n[e]))return-1;for(let s=e;s<n.length;s+=1){const r=n[s];if(r===t){const c=n[s-1];if(c&&!/\s/.test(c)&&n[s+1]!==t)return s}if(r===`
|
|
5
|
+
`)return-1}return-1}function I({text:n}){const e=b(n);return e.length===0?null:i.jsx("div",{className:"flex flex-col gap-1.5 text-sm leading-relaxed text-[var(--scout-chrome-ink)]",children:e.map((t,s)=>i.jsx(N,{block:t},s))})}function N({block:n}){switch(n.kind){case"paragraph":return i.jsx("p",{className:"whitespace-pre-wrap break-words",children:n.lines.map((e,t)=>i.jsxs(p.Fragment,{children:[t>0&&`
|
|
6
|
+
`,i.jsx(a,{tokens:e})]},t))});case"list":return i.jsx("ul",{className:"ml-3 flex list-disc flex-col gap-1 marker:text-[var(--scout-chrome-ink-ghost)]",children:n.items.map((e,t)=>i.jsx("li",{className:"break-words pl-0.5",children:i.jsx(a,{tokens:e})},t))});case"code":return i.jsx("pre",{className:"overflow-x-auto rounded border border-[var(--scout-chrome-border-soft)] bg-black/25 px-2 py-1.5 text-xs leading-relaxed text-lime-100/90",children:n.body});case"heading":{const e="font-mono text-[var(--scout-chrome-ink-strong)] mt-2 first:mt-0";return n.level===1?i.jsx("h2",{className:`${e} text-lg font-bold uppercase tracking-[0.12em]`,children:i.jsx(a,{tokens:n.tokens})}):n.level===2?i.jsx("h3",{className:`${e} text-sm font-bold uppercase tracking-[0.14em] text-[var(--scout-chrome-ink)]`,children:i.jsx(a,{tokens:n.tokens})}):i.jsx("h4",{className:`${e} text-xs font-bold uppercase tracking-[0.16em] text-[var(--scout-chrome-ink-faint)]`,children:i.jsx(a,{tokens:n.tokens})})}}}function a({tokens:n}){return i.jsx(i.Fragment,{children:n.map((e,t)=>{switch(e.kind){case"text":return i.jsx(p.Fragment,{children:e.body},t);case"code":return i.jsx("code",{className:"rounded bg-black/25 px-1 text-xs text-lime-100/90",children:e.body},t);case"bold":return i.jsx("strong",{className:"font-bold text-[var(--scout-chrome-ink-strong)]",children:e.body},t);case"italic":return i.jsx("em",{className:"italic",children:e.body},t);case"file-path":return i.jsx(w,{path:e.body},t)}})})}function w({path:n}){const{openFilePreview:e}=m(),t=P(n),s=r=>{r.stopPropagation(),x("/api/file/reveal",{method:"POST",body:JSON.stringify({path:n})}).catch(()=>{})};return i.jsxs("span",{className:"inline-flex items-center gap-1 align-baseline",children:[i.jsx("button",{type:"button",onClick:()=>e(n),title:`Preview ${n} in Scout`,className:"inline-flex items-center gap-1 rounded border border-lime-300/30 bg-lime-300/[0.05] px-1.5 py-[1px] font-mono text-xs text-lime-200 transition-colors hover:bg-lime-300/[0.12] hover:text-lime-100",children:i.jsx("span",{className:"truncate",children:t})}),i.jsx("button",{type:"button",onClick:s,title:`Open ${n} in your OS`,"aria-label":"Open in OS",className:"inline-flex items-center justify-center rounded border border-[var(--scout-chrome-border-soft)] p-[2px] text-[var(--scout-chrome-ink-faint)] transition-colors hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink)]",children:i.jsx(g,{size:10})})]})}function P(n){const e=n.split("/").filter(Boolean);return e.length<=3?n:`…/${e.slice(-2).join("/")}`}export{I as S};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as a}from"./createLucideIcon-
|
|
1
|
+
import{c as a}from"./createLucideIcon-DXpqZP7I.js";const t=[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]],c=a("scroll-text",t);export{c as S};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c}from"./createLucideIcon-
|
|
1
|
+
import{c}from"./createLucideIcon-DXpqZP7I.js";const e=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],o=c("search",e);export{o as S};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as n}from"./createLucideIcon-DXpqZP7I.js";import{M as f}from"./message-square-D9YYWE0x.js";import{F as l}from"./file-text-KijGBnME.js";import{S as c}from"./search-D1tJSAWe.js";import{C as p}from"./compass-0_54-vz3.js";import{S as g}from"./settings-2fC_G9nX.js";import{T as k}from"./terminal-yN9xN-h9.js";import{G as y}from"./git-branch-BQ_x8KZL.js";import{C as O}from"./code-xml-Jtxsp5d1.js";import{S}from"./scroll-text-DO0GQzvN.js";const A=[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]],C=n("folder-kanban",A);const _=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],v=n("house",_);const E=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],u=n("send",E),R=[{id:"home",label:"Home",icon:v,defaultRoute:{view:"inbox"},section:"navigate"},{id:"chat",label:"Messages",icon:f,defaultRoute:{view:"messages"},section:"navigate"},{id:"projects",label:"Crew",icon:C,defaultRoute:{view:"agents-v2"},section:"navigate"},{id:"sessions",label:"Sessions",icon:l,defaultRoute:{view:"sessions"},section:"navigate"},{id:"dispatch",label:"Dispatch",icon:u,defaultRoute:{view:"broker"},section:"navigate"},{id:"search",label:"Search",icon:c,defaultRoute:{view:"search"},section:"navigate"},{id:"ops",label:"Operations",icon:p,defaultRoute:{view:"ops",mode:"mission"},section:"system"},{id:"settings",label:"Settings",icon:g,defaultRoute:{view:"settings",section:"appearance"},section:"system"}],d={inbox:"home",activity:"home",briefings:"home","agents-v2":"projects","agent-info":"projects",repos:"projects","repo-diff":"projects",code:"projects",sessions:"sessions",terminal:"sessions",messages:"chat",conversation:"chat",broker:"dispatch",work:"dispatch",follow:"dispatch",search:"search",ops:"ops",mesh:"ops","mesh-ops":"ops",harnesses:"ops",settings:"settings",voice:"settings"},N=new Map(R.map(e=>[e.id,e]));function j(e){const i=N.get(e);if(!i)throw new Error(`Unknown primary area: ${e}`);return i}function se(e){if(e.view==="follow"&&e.preferredView)switch(e.preferredView){case"tail":return"ops";case"session":return"sessions";case"chat":return"chat";case"work":return"dispatch"}return d[e.view]}function ae(e,i){const t=j(e);return e==="ops"?i?.opsControlEnabled??!0?{view:"ops",mode:"mission"}:{view:"ops",mode:"tail"}:t.defaultRoute}function T(e){return e.view==="ops"&&(e.mode===void 0||e.mode==="mission"||e.mode==="issues")}const G=[{id:"home",label:"Home",route:{view:"inbox"},active:e=>e.view==="inbox"},{id:"projects",label:"Crew & Workspaces",route:{view:"agents-v2"},active:e=>e.view==="agents-v2"||e.view==="agent-info"},{id:"sessions",label:"Sessions",route:{view:"sessions"},active:e=>e.view==="sessions"},{id:"chat",label:"Messages",route:{view:"messages"},active:e=>e.view==="messages"||e.view==="conversation"},{id:"search",label:"Search",route:{view:"search"},active:e=>e.view==="search"},{id:"terminals",label:"Terminals",route:{view:"terminal"},active:e=>e.view==="terminal"},{id:"tail",label:"Live Activity",route:{view:"ops",mode:"tail"},active:e=>e.view==="ops"&&e.mode==="tail"},{id:"dispatch",label:"Dispatch",route:{view:"broker"},active:e=>e.view==="broker"},{id:"activity",label:"Activity Log",route:{view:"activity"},active:e=>e.view==="activity"},{id:"mesh",label:"Network",route:{view:"mesh"},active:e=>e.view==="mesh"},{id:"mesh-ops",label:"Mesh Ops",route:{view:"mesh-ops"},active:e=>e.view==="mesh-ops",capability:"surface.mesh-ops"},{id:"mission-control",label:"Mission Control",route:{view:"ops",mode:"mission"},active:T,capability:"ops.control"},{id:"lanes",label:"Agent Lanes",route:{view:"ops",mode:"lanes"},active:e=>e.view==="ops"&&e.mode==="lanes"},{id:"repos",label:"Repositories",route:{view:"repos"},active:e=>e.view==="repos"||e.view==="repo-diff"},{id:"code",label:"Code Browser",route:{view:"code"},active:e=>e.view==="code"},{id:"providers",label:"Agent Providers",route:{view:"harnesses"},active:e=>e.view==="harnesses"},{id:"runtime",label:"Runtime Monitor",route:{view:"ops",mode:"atop"},active:e=>e.view==="ops"&&e.mode==="atop",capability:"ops.control"},{id:"advisor",label:"Host Advisor",route:{view:"ops",mode:"advisor"},active:e=>e.view==="ops"&&e.mode==="advisor"},{id:"agent-config",label:"Agent Configuration",route:{view:"settings",section:"agents"},active:e=>e.view==="settings"&&e.section==="agents"}],M=new Map(G.map(e=>[e.id,e]));function s(e){const i=M.get(e);if(!i)throw new Error(`Unknown nav destination: ${e}`);return i}function a(e,i){const t=s(e);return{id:t.id,label:i?.label??t.label,route:i?.route??t.route,active:i?.active??t.active,capability:t.capability}}const P=[{destinationId:"home",key:"home"},{destinationId:"projects",key:"agents",label:"Crew"},{destinationId:"sessions",key:"sessions"},{destinationId:"chat",key:"chat",label:"Messages"}];function ne(){return P.map(e=>{const i=s(e.destinationId);return{key:e.key,label:e.label??i.label,route:i.route}})}const D=[{destinationId:"search",key:"search"},{destinationId:"terminals",key:"terminals"},{destinationId:"tail",key:"tail"},{destinationId:"dispatch",key:"dispatch"}],x=[{destinationId:"mission-control",key:"control"},{destinationId:"lanes",key:"lanes"},{destinationId:"providers",key:"providers"},{destinationId:"mesh",key:"mesh"},{destinationId:"mesh-ops",key:"mesh-ops"},{destinationId:"runtime",key:"runtime"},{destinationId:"advisor",key:"advisor"}];function m(e){const i=a(e.destinationId,{label:e.label});return{key:e.key,label:i.label,route:i.route,active:i.active,destinationId:i.id,capability:i.capability}}function de(){return D.map(m)}function re(){return x.map(m)}function b(e){return{items:e.map(i=>{const t=a(i.destinationId,{label:i.label,route:i.route,active:i.active});return{id:i.id,label:t.label,route:t.route,active:t.active}})}}function B(){return[b([{destinationId:"agent-config",id:"config",label:"Agent Configuration"}])]}function J(){return[b([{destinationId:"lanes",id:"lanes"},{destinationId:"mission-control",id:"control"},{destinationId:"providers",id:"harnesses",label:"Agent Providers"},{destinationId:"mesh",id:"mesh"},{destinationId:"tail",id:"tail"},{destinationId:"runtime",id:"runtime"},{destinationId:"advisor",id:"advisor"}])]}const V=[{key:"h",label:"Go home",destinationId:"home"},{key:"i",label:"Go to messages",destinationId:"chat"},{key:"c",label:"Go to messages",destinationId:"chat"},{key:"p",label:"Go to crew",destinationId:"projects"},{key:"s",label:"Go to sessions",destinationId:"sessions"},{key:"t",label:"Go to terminals",destinationId:"terminals"},{key:"r",label:"Go to repositories",destinationId:"repos"},{key:"b",label:"Go to code browser",destinationId:"code"},{key:"f",label:"Go to search",destinationId:"search"},{key:"l",label:"Go to live activity",destinationId:"tail"},{key:"o",label:"Go to operations",destinationId:"mission-control",route:{view:"ops"}},{key:"d",label:"Go to dispatch",destinationId:"dispatch"},{key:"m",label:"Go to network",destinationId:"mesh"},{key:"a",label:"Go to activity log",destinationId:"activity"}];function le(){return V.map(e=>{const i=s(e.destinationId);return{key:e.key,label:e.label,route:e.route??i.route,destinationId:e.destinationId}})}const U=[{destinationId:"sessions",id:"sessions",icon:l},{destinationId:"terminals",id:"terminals",icon:k},{destinationId:"repos",id:"repos",icon:y},{destinationId:"code",id:"code",icon:O},{destinationId:"search",id:"search",icon:c},{destinationId:"tail",id:"tail",icon:S},{destinationId:"mission-control",id:"ops",label:"Operations",icon:p,route:{view:"ops",mode:"mission"},opsGated:!0},{destinationId:"home",id:"home",icon:v},{destinationId:"dispatch",id:"dispatch",icon:u}];function ce(){return U.map(e=>{const i=s(e.destinationId);return{id:e.id,label:e.label??i.label,icon:e.icon,route:e.route??i.route,destinationId:e.destinationId,opsGated:e.opsGated??i.capability==="ops.control"}})}const F=[{id:"nav:home",label:"Go to Home",destinationId:"home",shortcut:"Cmd+1"},{id:"nav:agents",label:"Go to Crew",destinationId:"projects",shortcut:"Cmd+2"},{id:"nav:messages",label:"Go to Chat",destinationId:"chat",shortcut:"Cmd+3"},{id:"nav:sessions",label:"Open Sessions",destinationId:"sessions"},{id:"nav:terminals",label:"Open Terminals",destinationId:"terminals"},{id:"nav:search",label:"Go to Search",destinationId:"search",shortcut:"Cmd+4"},{id:"nav:activity",label:"Open Activity",destinationId:"activity"},{id:"nav:mesh",label:"Open Mesh",destinationId:"mesh"},{id:"nav:dispatch",label:"Open Dispatch",destinationId:"dispatch"},{id:"nav:repos",label:"Open Repositories",destinationId:"repos"},{id:"nav:code",label:"Open Code Browser",destinationId:"code"},{id:"nav:harnesses",label:"Open Providers",destinationId:"providers"},{id:"nav:ops-lanes",label:"Open Agent Lanes",destinationId:"lanes"},{id:"nav:ops",label:"Go to Ops",destinationId:"mission-control",route:{view:"ops"},shortcut:"Cmd+5",capability:"ops.control"},{id:"nav:ops-atop",label:"Open Runtime",destinationId:"runtime",capability:"ops.control"},{id:"nav:agent-config",label:"Open Agent Configuration",destinationId:"agent-config"}];function H(e){const i=e?.opsEnabled??!0;return F.filter(t=>!((t.capability??s(t.destinationId).capability)==="ops.control"&&!i)).map(t=>{const o=s(t.destinationId);return{id:t.id,label:t.label,destinationId:t.destinationId,route:t.route??o.route,shortcut:t.shortcut,capability:t.capability??o.capability}})}function pe(e,i){return H(i).map(t=>({id:t.id,label:t.label,action:()=>e(t.route),shortcut:t.shortcut}))}const h={projects:[{destinationId:"projects",id:"projects"},{destinationId:"repos",id:"repos"},{destinationId:"code",id:"code"}],sessions:[{destinationId:"sessions",id:"sessions"},{destinationId:"terminals",id:"terminals"}]};function Y(e){const i=a(e.destinationId,{label:e.label});return{id:e.id,label:i.label,route:i.route,active:i.active,destinationId:i.id}}function L(e){return h[e].map(Y)}function ve(e){const i=d[e.view];if(i!=="projects"&&i!=="sessions")return null;const t=i;return{areaId:t,items:L(t)}}const r={...h,dispatch:[{destinationId:"dispatch",id:"dispatch-all",label:"All Dispatches",route:{view:"broker"},active:e=>e.view==="broker"&&(e.filter===void 0||e.filter==="all")},{destinationId:"dispatch",id:"dispatch-delivered",label:"Delivered",route:{view:"broker",filter:"delivered"},active:e=>e.view==="broker"&&e.filter==="delivered"},{destinationId:"dispatch",id:"dispatch-failed",label:"Failed",route:{view:"broker",filter:"failed"},active:e=>e.view==="broker"&&e.filter==="failed"}],ops:[{destinationId:"lanes",id:"lanes",label:"Lanes"},{destinationId:"mission-control",id:"control"},{destinationId:"providers",id:"harnesses",label:"Providers"},{destinationId:"runtime",id:"runtime",label:"Runtime"},{destinationId:"mesh",id:"mesh"},{destinationId:"tail",id:"tail"},{destinationId:"advisor",id:"advisor"}]};function $(e){const i=a(e.destinationId,{label:e.label,route:e.route,active:e.active});return{id:e.id,label:i.label,route:i.route,active:i.active,destinationId:i.id}}function ue(e,i){const t=d[e.view];if(!(t in r))return null;const o=t,I=r[o].map($).filter(w=>s(w.destinationId).capability!=="ops.control"||i?.opsControlEnabled!==!1);return{areaId:o,items:I}}const me=B(),be=J();export{me as A,be as O,R as P,ne as a,de as b,re as c,pe as d,le as e,se as f,ae as g,j as h,ve as i,ce as p,ue as s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as r,r as o}from"./index-
|
|
1
|
+
import{j as r,r as o}from"./index-CZ-05hKz.js";import{j as l}from"./ui-LM8pS8qE.js";function p({branch:t,fallback:s}){const e=l(t,s);return e.detached?r.jsx("span",{className:"pre",children:e.sha??"detached"}):e.prefix?r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"pre",children:e.prefix}),e.leaf]}):r.jsx(r.Fragment,{children:e.leaf})}const a={worktree:null,project:null,generatedAt:0,tone:"warm"};let n=a;const c=new Set;function i(){for(const t of c)t()}function h(t){n=t,i()}function d(){n!==a&&(n=a,i())}function m(){const[t,s]=o.useState(()=>n);return o.useEffect(()=>{s(n);const e=()=>s(n);return c.add(e),()=>{c.delete(e)}},[]),t}export{p as B,d as c,h as p,m as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as a}from"./createLucideIcon-
|
|
1
|
+
import{c as a}from"./createLucideIcon-DXpqZP7I.js";const o=[["path",{d:"M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z",key:"117uat"}],["path",{d:"M6 12h16",key:"s4cdu5"}]],e=a("send-horizontal",o);export{e as S};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e}from"./createLucideIcon-
|
|
1
|
+
import{c as e}from"./createLucideIcon-DXpqZP7I.js";const r=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],i=e("server",r);export{i as S};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as d}from"./terminal-relay-
|
|
1
|
+
import{r as d}from"./terminal-relay-9lhzEp2V.js";function S(r,e){const s=d(r),n=s?r.harnessSessionId??s.sessionName:null;return e?.activeSessionId??n}function I(r,e){return[...r].sort((s,n)=>{const t=s.id===e?1:0,o=n.id===e?1:0;return t!==o?o-t:(n.endedAt??n.startedAt)-(s.endedAt??s.startedAt)})}function c(r){const e=r;return[e.id,e.surfaceSessionId,e.harnessSessionId,e.externalSessionId,e.threadId,e.runtimeSessionId,e.runtimeSessionRef,e.runtimeRef,e.sourceSessionId,e.sessionId,e.refId].flatMap(s=>{const n=s?.trim();return n?[n]:[]})}function u(r){const e=/^relay-(.+)-(claude|codex)$/iu.exec(r);return e?{scope:e[1].toLowerCase(),harness:e[2].toLowerCase()}:null}function l(r,e){const s=u(r),n=u(e);return!s||!n?!1:s.harness===n.harness&&(s.scope===n.scope||s.scope.startsWith(`${n.scope}-`))}function f(r,e){const s=r?.trim();if(!s)return null;const n=e.find(a=>c(a).some(i=>i===s));if(n)return n.id;const t=e.filter(a=>c(a).some(i=>l(i,s)));return new Set(t.map(a=>a.id)).size===1?t[0]?.id??null:null}function h(r,e,s,n,t){const o=f(t,n);return o||(s??n[0]?.id??null)}function A(r,e,s,n){const t=!!d(r),o=n&&(!!s.canObserve||t),a=n&&(!!s.canTakeover||t||!!e?.resumeCommand);return{canObserve:o,canTakeover:a}}export{h as a,f as b,A as c,S as r,I as s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as u}from"./createLucideIcon-
|
|
1
|
+
import{c as u}from"./createLucideIcon-DXpqZP7I.js";const l=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],b=u("power",l),d=10080*60*1e3,f=720*60*60*1e3,p={column:"state",direction:"desc"},S=[{id:"name",label:"Session",initialDirection:"asc"},{id:"host",label:"Host",initialDirection:"asc"},{id:"state",label:"State",initialDirection:"desc"},{id:"project",label:"Project",initialDirection:"asc"},{id:"activity",label:"Activity",initialDirection:"desc"}];function c(t){const e=typeof t.session.metadata?.attachedClients=="number"?t.session.metadata.attachedClients:0;return t.surface.state==="exited"?0:e>0?3:t.surface.state==="detached"?1:2}function y(t){const e=typeof t.session.metadata?.attachedClients=="number"?t.session.metadata.attachedClients:null;return t.surface.state==="exited"?"exited":e&&e>0?`${e} attached`:t.surface.state??"live"}function o(t){const e=t.session.metadata?.activityAt;if(typeof e=="number"&&Number.isFinite(e)&&e>0)return e;const n=t.session.metadata?.startedAt;return typeof n=="number"&&Number.isFinite(n)&&n>0?n:t.origin==="backend"?null:t.session.updatedAt||null}function v(t,e=Date.now()){const n=t.session.metadata?.activityAt,i=typeof n=="number"&&Number.isFinite(n)&&n>0?n:t.origin==="backend"?null:t.session.updatedAt||null;if(i===null)return"current";const a=Math.max(0,e-i);return a>=f?"review":a>=d?"inactive":"current"}function s(t,e){return t.localeCompare(e,void 0,{numeric:!0,sensitivity:"base"})}function _(t,e){const n=e.direction==="asc"?1:-1;return[...t].sort((i,a)=>{const r=m(i,a,e.column)*n;return r!==0?r:s(i.title,a.title)})}function m(t,e,n){switch(n){case"name":return s(t.title,e.title);case"host":return s(t.surface.backend,e.surface.backend);case"state":return c(t)-c(e);case"project":return s(t.project,e.project);case"activity":{const i=o(t),a=o(e);return i===null&&a===null?0:i===null?-1:a===null?1:i-a}}}function E(t,e){if(t.column===e)return{column:e,direction:t.direction==="asc"?"desc":"asc"};const n=S.find(i=>i.id===e)?.initialDirection??"asc";return{column:e,direction:n}}export{p as D,b as P,S as T,o as a,v as b,E as c,y as d,_ as s,c as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c}from"./createLucideIcon-DXpqZP7I.js";const e=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],o=c("settings",e);export{o as S};
|
package/dist/client/assets/{sliders-horizontal-R5pWUUcH.js → sliders-horizontal-BPSMHhbm.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as t}from"./createLucideIcon-
|
|
1
|
+
import{c as t}from"./createLucideIcon-DXpqZP7I.js";const a=[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]],h=t("sliders-horizontal",a);export{h as S};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as a}from"./createLucideIcon-
|
|
1
|
+
import{c as a}from"./createLucideIcon-DXpqZP7I.js";const e=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],l=a("sparkles",e);export{l as S};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as n,c as R}from"./index-CZ-05hKz.js";import{c as v,a as k,w as p}from"./index-BWHgHrtv.js";const u=new Set;let i=null,a=null,c=null,s=null;function b(e){for(const r of[...u])r(e)}function E(){s||u.size===0||(s=setTimeout(()=>{s=null,d()},2e3))}function d(){c||u.size===0||(i||(i=v({url:R()}),a=k({links:[p({client:i})]})),c=a.control.events.subscribe(void 0,{onData:e=>{const r=e.data;r&&b(r)},onError:()=>{c=null,E()}}),b({kind:"unknown",payload:{reason:"control_subscription_started"}}))}function w(){s&&(clearTimeout(s),s=null),c?.unsubscribe(),c=null}function S(e){return u.add(e),d(),()=>{u.delete(e),!(u.size>0)&&w()}}function T(e){const r=n.useRef(e);r.current=e,n.useEffect(()=>S(o=>{r.current(o)}),[])}function z(e,r,o=250){const l=n.useRef(e);l.current=e;const f=n.useRef(r);f.current=r;const t=n.useRef(null);T(m=>{l.current(m)&&(t.current||(t.current=setTimeout(()=>{t.current=null,f.current()},o)))}),n.useEffect(()=>()=>{t.current&&(clearTimeout(t.current),t.current=null)},[])}export{z as a,T as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[data-scout-theme-mode]{--sys-hairline: color-mix(in srgb, var(--ink) 7%, transparent);--sys-hairline-soft: color-mix(in srgb, var(--ink) 5%, transparent);--sys-head-tint: color-mix(in srgb, var(--ink) 3%, transparent);--sys-well: color-mix(in srgb, var(--bg) 84%, transparent);--sys-row-hover: color-mix(in srgb, var(--accent) 5%, transparent);--sys-row-selected: color-mix(in srgb, var(--accent) 9%, transparent)}[data-scout-theme-mode=light]{--sys-hairline: var(--border);--sys-hairline-soft: color-mix(in srgb, var(--border) 62%, transparent);--sys-head-tint: color-mix(in srgb, var(--ink) 3.5%, transparent);--sys-well: color-mix(in srgb, var(--ink) 4%, transparent);--sys-row-hover: color-mix(in srgb, var(--accent) 7%, transparent);--sys-row-selected: color-mix(in srgb, var(--accent) 12%, transparent)}.sys-surface-page{display:flex;flex-direction:column;gap:var(--space-5xl);padding:var(--space-4xl) var(--space-5xl) var(--space-5xl);max-width:820px!important}.sys-surface-page-wide{max-width:1080px!important}.sys-surface-page-fluid{width:100%;max-width:none!important}.sys-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2xl)}.sys-page-title-group{display:flex;flex-direction:column;gap:var(--space-3xs);min-width:0}.sys-page-kicker{display:none}.sys-page-title{font-family:var(--font-accent-title);font-size:var(--text-6xl);font-weight:500;line-height:var(--leading-none);letter-spacing:-.025em;color:var(--ink)}.sys-page-subtitle{max-width:520px;font-size:var(--text-md);color:var(--dim);line-height:var(--leading-snug)}.sys-page-actions{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;justify-content:flex-end;flex-shrink:0}.sys-sync-note{font-size:var(--text-sm);color:var(--muted)}.sys-panel{border:1px solid var(--sys-hairline);border-radius:var(--radius-xl);background:color-mix(in srgb,var(--surface) 96%,transparent);box-shadow:none;padding:var(--space-2xl)}.sys-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-2xl);margin-bottom:var(--space-lg)}.sys-section-title{font-family:var(--font-accent-title);font-size:var(--text-2xl);font-weight:500;color:var(--ink);letter-spacing:-.01em}.sys-section-subtitle{margin-top:var(--space-3xs);font-size:var(--text-sm);color:var(--dim)}.sys-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-sm)}.sys-stat-card{display:flex;flex-direction:column;gap:var(--space-2xs);min-width:0;border:1px solid var(--sys-hairline-soft);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 92%,transparent);padding:var(--space-lg) var(--space-xl)}.sys-stat-label{font-size:var(--text-sm);font-weight:500;letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--dim);opacity:.6}.sys-stat-value{font-size:var(--text-2xl);font-weight:600;line-height:var(--leading-tight);letter-spacing:-.02em;color:var(--ink);overflow-wrap:anywhere}.sys-stat-detail{font-size:var(--text-sm);color:var(--muted)}.sys-chip-row{display:flex;gap:var(--space-xs);flex-wrap:wrap;justify-content:center}.sys-chip{display:inline-flex;align-items:center;gap:var(--space-2xs);border-radius:var(--radius-md);padding:var(--space-2xs) var(--space-sm);border:1px solid transparent;font-size:var(--text-xs);font-weight:600;line-height:var(--leading-none)}.sys-chip-neutral{color:var(--muted);background:color-mix(in srgb,var(--muted) 12%,transparent);border-color:color-mix(in srgb,var(--muted) 18%,transparent)}.sys-chip-notice,.sys-chip-warning{color:var(--amber);background:color-mix(in srgb,var(--amber) 12%,transparent);border-color:color-mix(in srgb,var(--amber) 22%,transparent)}.sys-chip-working{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);border-color:color-mix(in srgb,var(--accent) 18%,transparent)}.sys-chip-success,.sys-chip-completed{color:var(--green);background:color-mix(in srgb,var(--green) 12%,transparent);border-color:color-mix(in srgb,var(--green) 20%,transparent)}.sys-chip-danger,.sys-chip-failed{color:var(--red);background:color-mix(in srgb,var(--red) 11%,transparent);border-color:color-mix(in srgb,var(--red) 18%,transparent)}.sys-banner{display:flex;align-items:flex-start;gap:var(--space-sm);border:1px solid color-mix(in srgb,var(--ink) 6%,transparent);border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-2xl);font-size:var(--text-lg)}.sys-banner strong{white-space:nowrap}.sys-banner-warning{background:color-mix(in srgb,var(--amber) 10%,transparent);border-color:color-mix(in srgb,var(--amber) 22%,transparent);color:var(--amber)}.sys-banner-info{background:color-mix(in srgb,var(--accent) 7%,transparent);border-color:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}.sys-banner-success{background:color-mix(in srgb,var(--green) 8%,transparent);border-color:color-mix(in srgb,var(--green) 20%,transparent);color:var(--green)}.sys-banner-error{background:color-mix(in srgb,var(--red) 8%,transparent);border-color:color-mix(in srgb,var(--red) 20%,transparent);color:var(--red)}.sys-banner-muted{background:color-mix(in srgb,var(--accent) 5%,transparent);border-color:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.sys-tab-row{display:flex;gap:var(--space-xs);flex-wrap:wrap;border-bottom:1px solid var(--sys-hairline)}.sys-tab{appearance:none;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-size:var(--text-sm);font-weight:600;line-height:var(--leading-none);padding:0 var(--space-md) var(--space-lg);cursor:pointer}.sys-tab:hover{color:var(--ink)}.sys-tab-active{color:var(--ink);border-bottom-color:var(--accent)}.sys-kicker{color:var(--accent);font-size:var(--text-xs);font-weight:700;letter-spacing:var(--tracking-lg);text-transform:uppercase}.sys-broker-page{gap:var(--space-lg);height:100%;min-height:0;padding:var(--space-lg) var(--space-3xl) var(--space-3xl);overflow:auto}.sys-broker-page .sys-ledger-toolbar{align-items:center;flex:0 0 auto;min-height:0;border-bottom:0}.sys-ledger-toolbar{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:var(--space-lg);min-height:38px;border-bottom:1px solid var(--sys-hairline)}.sys-ledger-toolbar .sys-tab-row{min-width:0;flex:1 1 420px;flex-wrap:nowrap;overflow-x:auto;border-bottom:0}.sys-broker-page .sys-tab-row--toolbar{flex:0 1 auto;width:fit-content;padding:3px;overflow:visible;border:1px solid var(--sys-hairline);border-radius:var(--radius-lg);background:var(--sys-well)}.sys-tab-row--toolbar .sys-tab{padding-bottom:var(--space-md)}.sys-broker-page .sys-tab-row--toolbar .sys-tab{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border:0;border-radius:calc(var(--radius-lg) - 2px);color:var(--dim);font-weight:550;transition:color .12s ease,background .12s ease,box-shadow .12s ease}.sys-broker-page .sys-tab-row--toolbar .sys-tab:hover{color:var(--ink)}.sys-broker-page .sys-tab-row--toolbar .sys-tab-active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px color-mix(in srgb,var(--bg) 32%,transparent)}.sys-tab-count{min-width:17px;padding:1px 5px;border-radius:999px;background:color-mix(in srgb,var(--ink) 6%,transparent);color:var(--muted);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;line-height:1.35;text-align:center}.sys-tab-active .sys-tab-count{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.sys-ledger-actions{margin-left:auto;padding-bottom:0}.sys-ledger-kicker{padding-bottom:var(--space-md);color:var(--dim);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;letter-spacing:var(--tracking-lg);text-transform:uppercase}.sys-ledger-footer{display:flex;justify-content:center;padding:var(--space-lg) 0 var(--space-sm)}.sys-broker-source-note{display:flex;align-items:center;gap:var(--space-sm);min-width:0;color:var(--muted);font-size:var(--text-sm);line-height:var(--leading-snug)}.sys-broker-source-note strong{color:var(--muted);font-weight:600}.sys-broker-source-note--warning strong{color:color-mix(in srgb,var(--amber) 84%,var(--ink))}.sys-broker-source-spinner{flex:0 0 auto;color:var(--muted);animation:sys-broker-source-spin .8s linear infinite}@keyframes sys-broker-source-spin{to{transform:rotate(360deg)}}.sys-broker-source-dot{flex:0 0 auto;width:6px;height:6px;border-radius:999px;background:var(--amber);box-shadow:0 0 0 3px color-mix(in srgb,var(--amber) 10%,transparent)}.sys-broker-wire{display:flex;flex-direction:column;gap:var(--space-md);background:transparent}.sys-broker-wire-head,.sys-broker-wire-row{display:grid;grid-template-columns:minmax(280px,420px) minmax(0,1fr) 60px;column-gap:var(--space-2xl);align-items:center}.sys-broker-wire-head{padding:0 var(--space-lg) var(--space-xs);border-left:2px solid transparent;border-bottom:1px solid var(--sys-hairline)}.sys-broker-wire-head .sys-broker-col{overflow:hidden;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-lg);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.sys-broker-wire-head .sys-broker-col--time{text-align:right}.sys-broker-wire-body{display:flex;flex-direction:column}.sys-broker-day{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}.sys-broker-day-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-lg);padding:0 var(--space-xs)}.sys-broker-day-head h2{margin:0;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:650;letter-spacing:var(--tracking-lg);text-transform:uppercase}.sys-broker-day-head span{color:var(--dim);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.sys-broker-wire-row{position:relative;box-sizing:border-box;width:100%;padding:var(--space-xs) var(--space-lg);border-bottom:1px solid var(--sys-hairline-soft);border-left:2px solid transparent;cursor:pointer;outline:none;transition:background .12s ease,border-color .12s ease}.sys-broker-wire-body .sys-broker-wire-row:last-child{border-bottom-color:transparent}.sys-broker-wire-row:hover,.sys-broker-wire-row:focus-visible{z-index:3;background:var(--sys-row-hover)}.sys-broker-wire-row--failure{border-left-color:var(--red);background:color-mix(in srgb,var(--red) 5%,transparent)}.sys-broker-wire-row--failure:hover{background:color-mix(in srgb,var(--red) 8%,transparent)}.sys-broker-wire-row--pending{border-left-color:var(--amber);background:color-mix(in srgb,var(--amber) 5%,transparent)}.sys-broker-wire-row--pending:hover{background:color-mix(in srgb,var(--amber) 8%,transparent)}.sys-broker-wire-row--selected{background:var(--sys-row-selected)}.sys-broker-wire-row--selected:not(.sys-broker-wire-row--failure):not(.sys-broker-wire-row--pending){border-left-color:var(--accent)}.sys-broker-wire-row--failure.sys-broker-wire-row--selected{background:color-mix(in srgb,var(--red) 10%,transparent)}.sys-broker-wire-row--pending.sys-broker-wire-row--selected{background:color-mix(in srgb,var(--amber) 10%,transparent)}.sys-broker-cell{display:flex;align-items:center;gap:var(--space-xs);min-width:0}.sys-broker-dot{flex:0 0 auto;width:7px;height:7px;border-radius:999px;background:var(--dim)}.sys-broker-dot--success{background:var(--green)}.sys-broker-dot--danger{background:var(--red)}.sys-broker-dot--working,.sys-broker-dot--warning{background:var(--amber)}.sys-broker-state{overflow:hidden;color:var(--muted);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap}.sys-broker-state--success{color:var(--dim)}.sys-broker-state--danger{color:var(--red);font-weight:560}.sys-broker-state--working,.sys-broker-state--warning{color:color-mix(in srgb,var(--amber) 86%,var(--ink))}.sys-broker-avatar{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--sys-hairline);border-radius:var(--radius-md);background:var(--sys-well);color:var(--muted);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.02em}.sys-broker-from-name,.sys-broker-endpoint-name{overflow:hidden;color:var(--ink);font-size:var(--text-sm);font-weight:560;text-overflow:ellipsis;white-space:nowrap}.sys-broker-endpoint-avatar{width:16px;height:16px;border-radius:var(--radius-sm);font-size:var(--text-3xs)}.sys-broker-endpoint-avatar svg{width:10px;height:10px}.sys-broker-endpoint-card{position:absolute;z-index:40;top:calc(100% + 8px);left:-8px;display:none;width:min(320px,70vw);overflow:hidden;flex-direction:column;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 96%,black 4%);box-shadow:0 22px 56px -18px #000000e0;color:var(--ink);pointer-events:none}.sys-broker-route:hover .sys-broker-endpoint-card,.sys-broker-route:focus .sys-broker-endpoint-card,.sys-broker-route:focus-within .sys-broker-endpoint-card{display:flex}.sys-broker-endpoint-card-head{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);border-bottom:1px solid var(--sys-hairline);background:color-mix(in srgb,var(--ink) 2.5%,transparent)}.sys-broker-endpoint-card-edge{display:flex;min-width:0;align-items:center;gap:var(--space-xs)}.sys-broker-endpoint-card-head strong{min-width:0;overflow:hidden;font-size:var(--text-sm);font-weight:620;text-overflow:ellipsis;white-space:nowrap}.sys-broker-endpoint-card-body{display:grid;grid-template-columns:78px minmax(0,1fr);gap:var(--space-xs) var(--space-md);padding:var(--space-md)}.sys-broker-endpoint-card-field{display:contents}.sys-broker-endpoint-card-field small{color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase}.sys-broker-endpoint-card-field code{overflow:hidden;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap}.sys-broker-route{position:relative;display:flex;min-width:0;max-width:100%;align-items:center;gap:var(--space-xs);border-radius:var(--radius-sm);outline:none}.sys-broker-route:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 28%,transparent)}.sys-broker-route-end{display:flex;min-width:0;align-items:center;gap:var(--space-xs)}.sys-broker-route-end--from{flex:0 1 auto;min-width:48px;opacity:.78}.sys-broker-route-end--from .sys-broker-endpoint-name{color:var(--muted);font-weight:500}.sys-broker-route-end--to{flex:1 1 auto}.sys-broker-route-arrow{flex:0 0 auto;color:var(--dim);opacity:.6}.sys-broker-route>.sys-broker-route-arrow{opacity:.45}.sys-broker-to-glyph{display:inline-flex;flex:0 0 auto;color:var(--dim)}.sys-broker-to-id{overflow:hidden;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap}.sys-broker-col--msg{gap:var(--space-sm)}.sys-broker-msg{overflow:hidden;color:var(--ink);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap}.sys-broker-msg-error{flex:0 0 auto;max-width:100%;overflow:hidden;padding:1px var(--space-xs);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-sm);text-overflow:ellipsis;white-space:nowrap}.sys-broker-msg-error--danger{background:color-mix(in srgb,var(--red) 14%,transparent);color:color-mix(in srgb,var(--red) 88%,var(--ink))}.sys-broker-msg-error--warning{background:color-mix(in srgb,var(--amber) 16%,transparent);color:color-mix(in srgb,var(--amber) 88%,var(--ink))}.sys-broker-col--time{justify-content:flex-end}.sys-broker-time-abs{color:var(--dim);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap}@media(max-width:760px){.sys-broker-wire-head{display:none}.sys-broker-wire-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"route time" "message message";align-items:start;column-gap:var(--space-sm);row-gap:var(--space-3xs)}.sys-broker-col--route{grid-area:route}.sys-broker-col--msg{grid-area:message}.sys-broker-col--time{grid-area:time;align-self:center}.sys-broker-route{flex-wrap:wrap;row-gap:var(--space-3xs)}.sys-broker-route-end--from{min-width:0}.sys-broker-source-note>span:last-child{display:none}}@media(max-width:520px){.sys-broker-page .sys-ledger-actions .sys-sync-note{display:none}}.sys-broker-inspector{display:flex;width:100%;height:100%;min-height:0;flex-direction:column;overflow:hidden;border:0;border-radius:0;background:transparent;box-shadow:none;padding:0}.sys-broker-inspector-head{flex:0 0 auto;min-width:0;border-bottom:1px solid var(--sys-hairline)}.sys-broker-inspector-status{display:flex;align-items:center;gap:var(--space-sm);min-width:0;min-height:48px;padding:var(--space-sm) var(--space-lg)}.sys-broker-inspector-status .sys-broker-state{flex:0 0 auto;font-weight:560}.sys-broker-inspector-status>code{min-width:0;overflow:hidden;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap}.sys-broker-inspector-copy{margin-left:auto}.sys-broker-inspector-close{flex:0 0 auto}.sys-broker-inspector-body{display:flex;min-height:0;flex:1;flex-direction:column;gap:var(--space-xl);overflow:auto;padding:var(--space-xl) var(--space-lg)}.sys-broker-inspector-body>*{flex:0 0 auto}.sys-broker-route-stack{display:flex;flex-direction:column;gap:var(--space-2xs)}.sys-broker-route-party{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:var(--space-sm);min-width:0}.sys-broker-route-avatar,.sys-broker-route-target-icon{width:30px;height:30px;border-radius:var(--radius-md)}.sys-broker-route-target-icon{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--sys-hairline);background:var(--sys-well);color:var(--muted)}.sys-broker-route-target-icon svg{width:14px;height:14px}.sys-broker-route-party-copy{display:flex;min-width:0;flex-direction:column;gap:2px}.sys-broker-route-party-copy strong,.sys-broker-route-party-copy code{overflow:hidden;color:var(--ink);font-size:var(--text-sm);font-weight:540;line-height:var(--leading-snug);text-overflow:ellipsis;white-space:nowrap}.sys-broker-route-party-copy code{color:var(--muted);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400}.sys-broker-route-down{margin-left:7px;color:var(--dim)}.sys-broker-route-button{display:inline-flex;align-items:center;gap:var(--space-2xs);padding:3px 7px;border:1px solid var(--sys-hairline);border-radius:var(--radius-md);background:transparent;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase;cursor:pointer}.sys-broker-route-button:hover,.sys-broker-route-button:focus-visible{border-color:color-mix(in srgb,var(--accent) 32%,var(--sys-hairline));color:var(--ink);outline:none}.sys-broker-delivery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;margin:0;border:1px solid var(--sys-hairline);border-radius:var(--radius-lg)}.sys-broker-delivery-grid>div{min-width:0;padding:var(--space-sm) var(--space-md)}.sys-broker-delivery-grid>div:nth-child(odd){border-right:1px solid var(--sys-hairline)}.sys-broker-delivery-grid>div:nth-child(-n+2){border-bottom:1px solid var(--sys-hairline)}.sys-broker-delivery-grid dt{margin-bottom:3px;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:650;letter-spacing:var(--tracking-md);text-transform:uppercase}.sys-broker-delivery-grid dd{margin:0;overflow:hidden;color:var(--ink);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}.sys-broker-delivery-grid .sys-broker-delivery-accent{color:var(--green)}.sys-broker-payload{display:flex;flex-direction:column;gap:var(--space-sm)}.sys-broker-route-failure{display:grid;grid-template-columns:28px minmax(0,1fr) 28px;align-items:start;gap:var(--space-md);padding:var(--space-lg);border:1px solid color-mix(in srgb,var(--red) 28%,var(--sys-hairline));border-radius:var(--radius-lg);background:color-mix(in srgb,var(--red) 6%,var(--sys-well))}.sys-broker-route-failure-mark{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:color-mix(in srgb,var(--red) 12%,transparent);color:var(--red)}.sys-broker-route-failure>div{display:flex;min-width:0;flex-direction:column;gap:3px}.sys-broker-route-failure strong{color:var(--ink);font-size:var(--text-sm);font-weight:620}.sys-broker-route-failure p{margin:2px 0 0;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-snug);overflow-wrap:anywhere}.sys-broker-payload-head,.sys-broker-payload-dialog-head,.sys-broker-payload-dialog-head>div{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.sys-broker-payload-head>.sys-detail-label,.sys-broker-payload-dialog-head>div{flex:1}.sys-broker-payload-meta{overflow:hidden;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}.sys-broker-payload-resizer{box-sizing:border-box;width:100%;height:clamp(220px,34vh,420px);min-height:160px;max-height:min(72vh,760px);resize:vertical;overflow:hidden;border:1px solid var(--sys-hairline);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg) 92%,black)}.sys-broker-payload-code,.sys-broker-payload-code .s-code-shiki{width:100%;height:100%;min-width:0;min-height:0}.sys-broker-payload-code{overflow:hidden;color:var(--ink);outline:none}.sys-broker-payload-code:focus-visible{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 52%,transparent)}.sys-broker-payload-code .s-code-shiki{overflow:auto}.sys-broker-payload-code .s-code-shiki pre{min-width:max-content;margin:0;padding:var(--space-lg) var(--space-xl) var(--space-3xl);background:transparent!important;color:var(--ink);font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.65;tab-size:2}.sys-broker-payload-code .s-code-shiki code{display:block}.sys-broker-payload-code .s-code-shiki .line{display:inline-block;min-width:100%}.sys-broker-payload-code[data-language=markdown] .s-code-shiki pre{min-width:0;white-space:pre-wrap;overflow-wrap:anywhere}.sys-broker-payload-code[data-language=markdown] .s-code-shiki .line{display:inline;min-width:0}.sys-broker-payload-code .s-code-shiki .shiki span{color:var(--shiki-dark);font-style:var(--shiki-dark-font-style, normal);font-weight:var(--shiki-dark-font-weight, inherit)}[data-scout-theme-mode=light] .sys-broker-payload-code .s-code-shiki .shiki span{color:var(--shiki-light);font-style:var(--shiki-light-font-style, normal);font-weight:var(--shiki-light-font-weight, inherit)}.sys-broker-payload-code .s-code-shiki .shiki ::selection{background:color-mix(in srgb,var(--accent) 20%,transparent)}.sys-broker-payload-expand{flex:0 0 auto}.sys-broker-payload-dialog{box-sizing:border-box;inset:0;width:min(1360px,calc(100vw - 48px));height:calc(100vh - 48px);max-width:none;max-height:none;margin:auto;padding:0;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--sys-hairline));border-radius:var(--radius-xl);background:var(--bg);color:var(--ink);box-shadow:0 28px 90px #00000094}.sys-broker-payload-dialog::backdrop{background:color-mix(in srgb,black 70%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.sys-broker-payload-dialog-head{min-height:48px;padding:0 var(--space-lg);border-bottom:1px solid var(--sys-hairline);background:color-mix(in srgb,var(--surface) 92%,transparent)}.sys-broker-payload-dialog-body{height:calc(100% - 49px);min-height:0;background:color-mix(in srgb,var(--bg) 94%,black)}.sys-broker-payload-dialog-body .sys-broker-payload-code .s-code-shiki pre{padding:var(--space-3xl) var(--space-4xl);font-size:var(--text-sm);line-height:1.7}.sys-broker-inspector-error{display:flex;align-items:baseline;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-md);background:color-mix(in srgb,var(--red) 10%,transparent)}.sys-broker-inspector-error-label{color:var(--red);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase}.sys-broker-inspector-error p{margin:0;color:var(--ink);font-size:var(--text-sm);line-height:var(--leading-snug);overflow-wrap:anywhere}.sys-broker-actions{display:flex;flex-direction:column}.sys-broker-action-row{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md) var(--space-2xs)}.sys-broker-action-row+.sys-broker-action-row{border-top:1px solid var(--sys-hairline)}.sys-broker-action-line{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.sys-broker-action-label{margin-right:auto;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:650;letter-spacing:var(--tracking-md);text-transform:uppercase}.sys-broker-redispatch-controls{display:grid;flex:1 1 240px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-sm);min-width:0}.sys-broker-redispatch-controls select{box-sizing:border-box;width:100%;min-width:0;height:34px;padding:0 30px 0 var(--space-sm);border:1px solid var(--sys-hairline);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 90%,transparent);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-xs);outline:none}.sys-broker-redispatch-controls select:focus-visible{border-color:color-mix(in srgb,var(--accent) 42%,var(--sys-hairline));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 8%,transparent)}.sys-broker-redispatch-send{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);min-width:104px;height:34px;padding:0 var(--space-md);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--sys-hairline));border-radius:var(--radius-md);background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--ink);font-size:var(--text-xs);font-weight:600;cursor:pointer}.sys-broker-redispatch-send:hover:not(:disabled),.sys-broker-redispatch-send:focus-visible{border-color:color-mix(in srgb,var(--accent) 55%,var(--sys-hairline));background:color-mix(in srgb,var(--accent) 16%,transparent);outline:none}.sys-broker-redispatch-send:disabled{cursor:default;opacity:.45}.sys-broker-report-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);min-height:34px;padding:0 var(--space-md);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--sys-hairline));border-radius:var(--radius-md);background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--ink);font-size:var(--text-xs);font-weight:600;cursor:pointer}.sys-broker-report-button:hover:not(:disabled),.sys-broker-report-button:focus-visible{border-color:color-mix(in srgb,var(--accent) 55%,var(--sys-hairline));background:color-mix(in srgb,var(--accent) 16%,transparent);outline:none}.sys-broker-report-button:disabled{cursor:default;opacity:.45}.sys-broker-action-target-meta{display:flex;min-width:0;flex-wrap:wrap;align-items:center;gap:var(--space-xs)}.sys-broker-action-target-meta span,.sys-broker-action-target-meta code{overflow:hidden;padding:3px 6px;border-radius:var(--radius-sm);background:var(--sys-well);color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);text-overflow:ellipsis;white-space:nowrap}.sys-broker-action-target-meta code{max-width:100%}.sys-broker-action-status{color:var(--muted);font-family:var(--font-mono);font-size:var(--text-2xs);line-height:var(--leading-snug)}.sys-broker-action-status--sent{color:var(--green)}.sys-broker-action-status--failed{color:var(--red)}.sys-broker-action-spinner{animation:sys-broker-source-spin .8s linear infinite}.sys-broker-forward-intro{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md) var(--space-lg) var(--space-sm)}.sys-broker-forward{display:flex;flex:0 0 auto;flex-direction:column;padding:0;border-top:1px solid var(--sys-hairline);background:linear-gradient(180deg,color-mix(in srgb,var(--ink) 1.5%,transparent),transparent 50%),color-mix(in srgb,var(--surface) 95%,transparent);box-shadow:0 -20px 48px -42px #000000e6;-webkit-backdrop-filter:blur(18px) saturate(130%);backdrop-filter:blur(18px) saturate(130%)}.sys-broker-forward-head{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg) 0}.sys-broker-forward #dispatch-forward-content{min-width:0}.sys-broker-forward .sys-broker-message-composer{border:0;border-top:1px solid var(--sys-hairline);border-radius:0;background:transparent;box-shadow:none}.sys-broker-forward .sys-broker-message-composer:focus-within{border-color:transparent;box-shadow:0 -1px color-mix(in srgb,var(--accent) 26%,transparent)}.sys-broker-forward .sys-broker-message-composer textarea{min-height:76px;max-height:180px;padding:var(--space-xs) var(--space-lg) var(--space-sm)}.sys-broker-forward>.sys-broker-action-status{padding:0 var(--space-lg) var(--space-sm)}.sys-broker-ask-prompts{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.sys-broker-ask-prompts button{display:inline-flex;align-items:center;gap:var(--space-2xs);padding:5px 9px;border:1px solid var(--sys-hairline);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 45%,transparent);color:var(--muted);font-size:var(--text-xs);cursor:pointer}.sys-broker-ask-prompts button:hover,.sys-broker-ask-prompts button:focus-visible{border-color:color-mix(in srgb,var(--accent) 34%,var(--sys-hairline));background:var(--sys-row-hover);color:var(--ink);outline:none}.sys-broker-ask-prompts button:disabled{cursor:wait;opacity:.55}.sys-broker-message-composer{display:flex;flex-direction:column;overflow:hidden;border:1px solid color-mix(in srgb,var(--ink) 11%,transparent);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:0 1px color-mix(in srgb,white 4%,transparent) inset,0 12px 32px -26px #000000e6;transition:border-color .14s ease,box-shadow .14s ease}.sys-broker-message-composer:focus-within{border-color:color-mix(in srgb,var(--accent) 42%,var(--sys-hairline));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 8%,transparent),0 16px 34px -26px #000000f2}.sys-broker-message-composer>label{padding:var(--space-sm) var(--space-lg) 0;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:650;letter-spacing:var(--tracking-md);text-transform:uppercase}.sys-broker-message-composer textarea{box-sizing:border-box;width:100%;min-height:76px;max-height:180px;resize:vertical;padding:var(--space-md) var(--space-md) var(--space-sm);border:0;background:transparent;color:var(--ink);font-family:var(--font-sans);font-size:var(--text-sm);line-height:1.5;outline:none}.sys-broker-message-composer textarea::placeholder{color:var(--dim)}.sys-broker-message-composer footer{display:flex;align-items:center;gap:var(--space-xs);min-height:40px;padding:0 var(--space-md) var(--space-md)}.sys-broker-composer-left,.sys-broker-composer-targets{display:flex;min-width:0;align-items:center;gap:var(--space-xs)}.sys-broker-composer-left{flex:0 1 auto}.sys-broker-composer-targets{margin-left:auto;overflow:hidden;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs)}.sys-broker-composer-route-label{flex:0 0 auto;color:var(--dim);font-weight:650;letter-spacing:var(--tracking-md);text-transform:uppercase}.sys-broker-composer-targets>label{display:inline-flex;min-width:0}.sys-broker-composer-targets>label>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.sys-broker-composer-targets select{max-width:74px;height:28px;padding:0 14px 0 2px;overflow:hidden;border:0;background:transparent;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-2xs);text-overflow:ellipsis;outline:none}.sys-broker-composer-targets label:nth-of-type(1) select{max-width:70px}.sys-broker-composer-targets label:nth-of-type(2) select{max-width:68px;color:var(--ink)}.sys-broker-composer-targets label:nth-of-type(3) select{max-width:82px}.sys-broker-composer-targets label:nth-of-type(4) select{max-width:66px}.sys-broker-composer-targets select:hover,.sys-broker-composer-targets select:focus-visible{color:var(--ink)}.sys-broker-composer-attach{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--sys-hairline);border-radius:var(--radius-md);background:transparent;color:var(--muted);cursor:pointer}.sys-broker-composer-attach:hover:not(:disabled),.sys-broker-composer-attach:focus-visible{border-color:color-mix(in srgb,var(--accent) 32%,var(--sys-hairline));color:var(--ink);outline:none}.sys-broker-message-attachment{display:inline-flex;min-width:0;align-items:center;gap:var(--space-2xs);color:var(--muted);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase}.sys-broker-message-hint{margin-left:auto;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs)}.sys-broker-composer-mic.s-dictation-mic{align-self:center;width:32px;height:32px;border-radius:var(--radius-md)}.sys-broker-composer-send{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:10px;background:var(--accent);color:var(--bg);cursor:pointer;transition:filter .12s ease,opacity .12s ease,transform .12s ease}.sys-broker-composer-send:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.sys-broker-composer-send:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 65%,white);outline-offset:2px}.sys-broker-composer-send:disabled,.sys-broker-composer-attach:disabled{cursor:default;opacity:.28}.sys-broker-composer-attachments{display:flex;min-width:0;flex-wrap:wrap;gap:var(--space-xs);padding:0 var(--space-lg) var(--space-sm)}.sys-broker-composer-attachments>span{display:inline-flex;min-width:0;max-width:180px;align-items:center;gap:4px;padding:4px 5px 4px 7px;border:1px solid var(--sys-hairline);border-radius:var(--radius-md);background:var(--sys-well);color:var(--muted);font-family:var(--font-mono);font-size:var(--text-2xs)}.sys-broker-composer-attachments>span>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sys-broker-composer-attachments button{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--dim);cursor:pointer}.sys-broker-composer-attachments button:hover{background:var(--sys-row-hover);color:var(--ink)}@media(max-width:620px){.sys-broker-message-attachment{display:none}.sys-broker-composer-targets{gap:2px}.sys-broker-composer-targets>span{display:none}}.sys-broker-technical{border-top:1px solid var(--sys-hairline)}.sys-broker-technical>summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-md) 0;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-md);text-transform:uppercase;cursor:pointer;list-style:none}.sys-broker-technical>summary::-webkit-details-marker{display:none}.sys-broker-technical>summary svg{transition:transform .14s ease}.sys-broker-technical[open]>summary svg{transform:rotate(180deg)}.sys-broker-inspector-rows{display:flex;min-width:0;flex-direction:column;padding:var(--space-xs) 0;border-radius:var(--radius-lg);background:var(--sys-well)}.sys-broker-inspector-row{display:grid;grid-template-columns:minmax(88px,110px) minmax(0,1fr) 20px;gap:var(--space-sm);align-items:start;padding:var(--space-2xs) var(--space-sm) var(--space-2xs) var(--space-md)}.sys-broker-inspector-row .sys-detail-value{font-family:var(--font-mono);font-size:var(--text-xs)}.sys-broker-inspector-row .sys-copy-btn{width:20px;height:20px;opacity:0}.sys-broker-inspector-row:hover .sys-copy-btn,.sys-broker-inspector-row .sys-copy-btn:focus-visible,.sys-broker-inspector-row .sys-copy-btn--copied,.sys-broker-inspector-row .sys-copy-btn--failed{opacity:1}.sys-broker-technical .sys-broker-metadata{margin-top:var(--space-lg)}.sys-broker-review-status{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);color:var(--muted);background:color-mix(in srgb,var(--surface) 88%,transparent);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-snug);overflow-wrap:anywhere}.sys-broker-review-status--sent{border-color:color-mix(in srgb,var(--green) 36%,var(--border));color:color-mix(in srgb,var(--green) 78%,var(--ink));background:color-mix(in srgb,var(--green) 9%,transparent)}.sys-broker-review-status--failed{border-color:color-mix(in srgb,var(--red) 36%,var(--border));color:color-mix(in srgb,var(--red) 78%,var(--ink));background:color-mix(in srgb,var(--red) 9%,transparent)}.sys-broker-metadata{display:flex;min-width:0;flex-direction:column;gap:var(--space-sm)}.sys-broker-metadata-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.sys-broker-metadata-copy{border:1px solid var(--sys-hairline);background:color-mix(in srgb,var(--surface) 92%,transparent)}.sys-broker-metadata-panel{display:flex;flex-direction:column;gap:var(--space-lg);min-width:0}.sys-broker-metadata-section{display:flex;flex-direction:column;gap:var(--space-sm);min-width:0}.sys-broker-metadata-section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.sys-broker-metadata-tree,.sys-broker-metadata-children{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}.sys-broker-metadata-group-toggle,.sys-broker-metadata-raw-toggle{display:inline-flex;align-items:center;gap:var(--space-xs);border:0;background:transparent;color:var(--muted);padding:0;font-family:var(--font-mono);font-size:var(--text-xs);cursor:pointer}.sys-broker-metadata-group-label,.sys-broker-metadata-raw-toggle{color:var(--ink)}.sys-broker-metadata-count{color:var(--dim)}.sys-broker-metadata-row{display:grid;grid-template-columns:minmax(88px,.35fr) minmax(0,1fr);gap:var(--space-sm);align-items:start;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);background:var(--sys-well)}.sys-broker-metadata-key{color:var(--muted);font-family:var(--font-mono);font-size:var(--text-xs);overflow-wrap:anywhere}.sys-broker-metadata-value{color:var(--ink);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-snug);overflow-wrap:anywhere;white-space:pre-wrap}.sys-broker-metadata-empty{color:var(--muted);font-size:var(--text-sm);line-height:var(--leading-snug)}.sys-broker-metadata-raw,.sys-broker-metadata pre{margin:0;max-height:360px;overflow:auto;border-radius:var(--radius-lg);border:1px solid var(--sys-hairline);background:var(--sys-well);color:var(--ink);padding:var(--space-lg);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-snug);white-space:pre}.sys-broker-right-empty{display:flex;height:100%;min-height:180px;flex-direction:column;justify-content:center;gap:var(--space-sm);padding:var(--space-3xl);color:var(--muted);font-size:var(--text-md);line-height:var(--leading-snug)}.sys-state-card{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.sys-state-card-error{background:color-mix(in srgb,var(--red) 4%,var(--surface));border-color:color-mix(in srgb,var(--red) 16%,transparent)}.sys-state-title{font-size:var(--text-2xl);font-weight:600;color:var(--ink)}.sys-state-body{max-width:520px;font-size:var(--text-md);color:var(--muted)}.sys-inline-actions{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.sys-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2xl)}.sys-detail-card{display:flex;flex-direction:column;gap:var(--space-2xs);min-width:0;border-radius:var(--radius-lg);border:none;background:var(--sys-well);padding:var(--space-md) var(--space-lg)}.sys-detail-label{font-size:var(--text-xs);font-weight:700;letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--dim)}.sys-detail-value{min-width:0;font-size:var(--text-md);line-height:var(--leading-snug);color:var(--ink);overflow-wrap:anywhere}.sys-code-inline{display:inline-flex;align-items:center;padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-md);background:color-mix(in srgb,var(--ink) 6%,transparent);color:var(--ink);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:-.01em}.sys-list-empty{border:1px dashed color-mix(in srgb,var(--ink) 8%,transparent);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg) 70%,transparent);padding:var(--space-3xl);font-family:var(--font-accent-title);font-style:italic;opacity:.5;font-size:var(--text-xl)}.sys-list-empty h3{font-size:var(--text-xl);font-weight:600;color:var(--ink)}.sys-list-empty p{margin-top:var(--space-xs);font-size:var(--text-lg);color:var(--muted)}.sys-list-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.sys-list-card{display:flex;flex-direction:column;gap:var(--space-sm);min-width:0;border-radius:var(--radius-lg);border:none;background:color-mix(in srgb,var(--bg) 80%,transparent);padding:var(--space-xl)}.sys-list-card-head{display:flex;justify-content:space-between;gap:var(--space-lg);align-items:flex-start}.sys-list-card-title{min-width:0;font-size:var(--text-lg);font-weight:700;color:var(--ink);overflow-wrap:anywhere}.sys-list-card-detail{display:flex;flex-direction:column;gap:var(--space-2xs);min-width:0}.agent-config-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-lg)}.agent-config-list{display:flex;flex-direction:column;gap:var(--space-xs)}.agent-config-list-scroll{max-height:520px;overflow-y:auto;padding-right:var(--space-3xs)}.agent-config-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-lg);width:100%;min-width:0;border:1px solid color-mix(in srgb,var(--ink) 5%,transparent);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg) 78%,transparent);padding:var(--space-lg) var(--space-lg);color:var(--ink);text-align:left}.agent-config-row-button{cursor:pointer}.agent-config-row-button:hover,.agent-config-row-selected{border-color:color-mix(in srgb,var(--accent) 20%,transparent);background:color-mix(in srgb,var(--accent) 5%,var(--bg))}.agent-config-row-main{display:flex;align-items:flex-start;gap:var(--space-md);min-width:0}.agent-config-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex:0 0 auto;border-radius:var(--radius-lg);background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--muted)}.agent-config-row-copy{min-width:0}.agent-config-row-title{color:var(--ink);font-size:var(--text-lg);font-weight:700;overflow-wrap:anywhere}.agent-config-row-detail,.agent-config-row-meta,.agent-config-copy{color:var(--muted);font-size:var(--text-sm);line-height:var(--leading-snug);overflow-wrap:anywhere}.agent-config-code{display:inline-flex;max-width:100%;margin:var(--space-2xs) 0;border-radius:var(--radius-md);background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--ink);padding:var(--space-2xs) var(--space-xs);font-size:var(--text-sm);line-height:var(--leading-tight);overflow-wrap:anywhere;white-space:normal}.agent-config-link{color:var(--accent);font-size:var(--text-sm);font-weight:700;text-decoration:none}.agent-config-link:hover{text-decoration:underline}.agent-config-row-side{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-xs);max-width:42%;min-width:0}.agent-config-detail-panel{display:flex;flex-direction:column;gap:var(--space-xl)}.agent-config-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-md)}.agent-config-detail-grid>div{display:flex;flex-direction:column;gap:var(--space-2xs);min-width:0;border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg) 78%,transparent);padding:var(--space-md);font-size:var(--text-md);color:var(--ink);overflow-wrap:anywhere}.agent-config-detail-grid strong,.agent-config-detail-grid code,.agent-config-selectable,.agent-config-inline-code{user-select:text;-webkit-user-select:text;cursor:text}.agent-config-detail-wide{grid-column:span 2}.agent-config-label{color:var(--dim);font-size:var(--text-xs);font-weight:700;letter-spacing:var(--tracking-md);text-transform:uppercase}.agent-config-chip-row,.agent-config-gap-list{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-lg)}.agent-config-edit{display:flex;flex-direction:column;gap:var(--space-lg);border:1px solid color-mix(in srgb,var(--ink) 6%,transparent);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg) 78%,transparent);padding:var(--space-lg)}.agent-config-edit-empty{color:var(--muted);font-size:var(--text-sm)}.agent-config-edit-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(120px,.6fr);gap:var(--space-md)}.agent-config-field{display:flex;flex-direction:column;gap:var(--space-2xs);min-width:0}.agent-config-field-wide{grid-column:1 / -1}.agent-config-field span,.agent-config-check span{color:var(--dim);font-size:var(--text-xs);font-weight:700;letter-spacing:var(--tracking-md);text-transform:uppercase}.agent-config-field input,.agent-config-field select{width:100%;min-width:0;border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 94%,transparent);color:var(--ink);padding:var(--space-sm) var(--space-md);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-snug)}.agent-config-field input:focus,.agent-config-field select:focus{outline:2px solid color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:2px;border-color:color-mix(in srgb,var(--accent) 35%,transparent)}.agent-config-field input:disabled,.agent-config-field select:disabled{opacity:.58;cursor:not-allowed}.agent-config-check{display:inline-flex;align-items:center;gap:var(--space-xs);min-width:0}.agent-config-check input{width:14px;height:14px;accent-color:var(--accent)}.agent-config-save-row{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.agent-config-save-note,.agent-config-save-error{font-size:var(--text-sm);line-height:var(--leading-snug)}.agent-config-save-note{color:var(--muted)}.agent-config-save-error{color:var(--red)}.agent-config-gap-list span{border-radius:var(--radius-lg);background:color-mix(in srgb,var(--amber) 10%,transparent);color:var(--ink);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm)}.sys-audit-list{display:flex;flex-direction:column;gap:var(--space-3xs)}.sys-audit-entry{position:relative;border:1px solid color-mix(in srgb,var(--ink) 5%,transparent);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 97%,transparent);box-shadow:none}.sys-audit-entry-expanded{border-color:color-mix(in srgb,var(--accent) 14%,transparent);background:color-mix(in srgb,var(--accent) 1.5%,var(--surface));box-shadow:none}.sys-audit-toggle{display:grid;grid-template-columns:76px 16px minmax(0,1fr) auto;align-items:flex-start;gap:var(--space-md);width:100%;padding:var(--space-md) var(--space-xl);border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.sys-audit-toggle:hover{background:color-mix(in srgb,var(--accent) 2%,transparent)}.sys-audit-stamp{display:flex;flex-direction:column;gap:var(--space-3xs);padding-top:var(--space-3xs)}.sys-audit-time{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;color:var(--ink)}.sys-audit-date{font-size:var(--text-2xs);color:color-mix(in srgb,var(--dim) 70%,transparent);letter-spacing:.01em}.sys-audit-marker{position:relative;display:flex;justify-content:center;min-height:100%}.sys-audit-marker:before{content:"";position:absolute;top:12px;bottom:-14px;width:1px;background:color-mix(in srgb,var(--ink) 6%,transparent)}.sys-audit-entry:last-child .sys-audit-marker:before{display:none}.sys-audit-marker span{position:relative;z-index:1;width:7px;height:7px;border-radius:var(--radius-pill);margin-top:var(--space-xs);border:2px solid var(--surface);box-shadow:none}.sys-audit-marker-notice span{background:var(--amber)}.sys-audit-marker-working span{background:var(--accent)}.sys-audit-marker-completed span{background:var(--green)}.sys-audit-marker-failed span{background:var(--red)}.sys-audit-body{display:flex;flex-direction:column;gap:var(--space-2xs);min-width:0}.sys-audit-topline{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center}.sys-audit-category{display:inline-flex;align-items:center;padding:var(--space-3xs) var(--space-sm);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--ink) 5%,transparent);font-size:var(--text-2xs);font-weight:700;letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--dim);line-height:var(--leading-none)}.sys-audit-kind{font-size:var(--text-sm);color:var(--muted)}.sys-audit-title{font-size:var(--text-lg);font-weight:500;line-height:var(--leading-snug);color:var(--ink)}.sys-audit-summary{font-size:var(--text-md);line-height:var(--leading-normal);color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sys-audit-meta{display:flex;flex-wrap:wrap;gap:var(--space-2xs) var(--space-lg);margin-top:var(--space-3xs)}.sys-audit-meta-item{display:inline-flex;align-items:center;gap:var(--space-2xs);min-width:0;font-size:var(--text-sm);color:var(--muted)}.sys-audit-meta-item+.sys-audit-meta-item:before{content:"";display:inline-block;width:3px;height:3px;border-radius:50%;background:color-mix(in srgb,var(--dim) 50%,transparent);margin-right:var(--space-2xs);flex-shrink:0}.sys-audit-avatar{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:var(--radius-pill);color:var(--bg);font-size:var(--text-2xs);font-weight:700}.sys-audit-expand{font-size:var(--text-xs);font-weight:600;color:var(--muted);padding-top:var(--space-2xs);white-space:nowrap;opacity:1;transition:color .12s ease}.sys-audit-toggle:hover .sys-audit-expand{opacity:1;color:var(--accent)}.sys-audit-jumps{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);margin-top:var(--space-2xs)}.sys-audit-jumps-label{font-size:var(--text-2xs);font-weight:700;letter-spacing:var(--tracking-md);text-transform:uppercase;color:color-mix(in srgb,var(--dim) 80%,transparent);margin-right:var(--space-3xs)}.sys-audit-jump{display:inline-flex;align-items:center;padding:var(--space-3xs) var(--space-sm);border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--ink) 9%,transparent);background:color-mix(in srgb,var(--surface) 94%,transparent);font-family:inherit;font-size:var(--text-sm);font-weight:600;color:var(--muted);cursor:pointer;line-height:var(--leading-normal);transition:color .12s ease,border-color .12s ease,background .12s ease}.sys-audit-jump:hover,.sys-audit-jump:focus-visible{border-color:color-mix(in srgb,var(--accent) 32%,transparent);background:color-mix(in srgb,var(--accent) 5%,transparent);color:var(--accent);outline:none}.sys-audit-details{display:flex;flex-direction:column;gap:var(--space-lg);padding:0 var(--space-xl) var(--space-xl) 116px}.sys-issue-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-sm)}.sys-issue-card{display:flex;flex-direction:column;gap:var(--space-sm);border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--ink) 5%,transparent);background:color-mix(in srgb,var(--surface) 92%,transparent);padding:var(--space-xl)}.sys-issue-card-notice{border-color:color-mix(in srgb,var(--amber) 16%,transparent);background:color-mix(in srgb,var(--amber) 4%,var(--surface))}.sys-issue-card-warning{border-color:color-mix(in srgb,var(--amber) 16%,transparent);background:color-mix(in srgb,var(--amber) 5%,var(--surface))}.sys-issue-card-error{border-color:color-mix(in srgb,var(--red) 12%,transparent);background:color-mix(in srgb,var(--red) 3%,var(--surface))}.sys-issue-head{display:flex;justify-content:space-between;gap:var(--space-md);align-items:flex-start}.sys-issue-title{font-size:var(--text-lg);font-weight:600;color:var(--ink)}.sys-issue-body{font-size:var(--text-md);color:var(--muted)}.sys-issue-action{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm);font-size:var(--text-sm);color:var(--ink)}.sys-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xl);align-items:start}.sys-settings-page{max-width:960px!important}.sys-settings-hero{display:flex;gap:var(--space-3xl);align-items:flex-start}.sys-settings-qr-col{flex-shrink:0}.sys-settings-qr-frame{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);border:1px solid color-mix(in srgb,var(--ink) 6%,transparent);border-radius:var(--radius-xl);background:color-mix(in srgb,var(--surface) 96%,transparent);padding:var(--space-2xl)}.sys-settings-qr-frame .s-qr{width:180px;height:180px;border:none;padding:0;background:transparent;border-radius:var(--radius-lg);overflow:hidden}.sys-settings-qr-frame .s-qr svg{width:100%;height:100%}.sys-settings-qr-expires{font-size:var(--text-sm);font-weight:600;color:var(--muted)}.sys-settings-qr-empty{display:flex;align-items:center;justify-content:center;width:212px;height:212px;border:1px dashed color-mix(in srgb,var(--ink) 8%,transparent);border-radius:var(--radius-xl);background:color-mix(in srgb,var(--bg) 70%,transparent)}.sys-settings-qr-empty-label{font-size:var(--text-md);color:var(--dim);text-align:center;padding:var(--space-2xl)}.sys-settings-info-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-xl)}.sys-settings-kv-list{display:flex;flex-direction:column;gap:var(--space-xs)}.sys-settings-kv{display:flex;align-items:center;gap:var(--space-md);min-height:28px;border-bottom:1px solid color-mix(in srgb,var(--ink) 4%,transparent)}.sys-settings-kv:last-child{border-bottom:none}.sys-settings-kv-label{flex-shrink:0;width:96px;font-size:var(--text-xs);font-weight:700;letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--dim)}.sys-settings-kv-value{display:flex;align-items:center;gap:var(--space-xs);min-width:0;font-size:var(--text-md);color:var(--ink)}.sys-settings-kv-value code{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sys-settings-link{min-width:0;color:inherit;text-decoration:none}.sys-settings-link:hover code{color:var(--accent)}.sys-settings-link-list{flex-wrap:wrap;gap:var(--space-sm)}.sys-settings-route-link{display:inline-flex;align-items:center;gap:2px;min-width:0}.sys-settings-kv-nowrap{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sys-settings-kv .sys-chip{margin:0}.sys-copy-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;color:var(--dim);border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0;transition:color .12s ease,background .12s ease}.sys-copy-btn:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 5%,transparent)}.sys-copy-btn--copied{color:var(--green);background:color-mix(in srgb,var(--green) 10%,transparent)}.sys-copy-btn--failed{color:var(--red);background:color-mix(in srgb,var(--red) 10%,transparent)}.sys-settings-controls{margin-top:var(--space-3xs)}.sys-settings-controls .s-btn:last-child{color:var(--red);border-color:color-mix(in srgb,var(--red) 25%,transparent)}.sys-settings-peers{border:1px solid color-mix(in srgb,var(--ink) 6%,transparent);border-radius:var(--radius-xl);background:color-mix(in srgb,var(--surface) 96%,transparent);padding:var(--space-2xl)}.sys-peers-table{width:100%;border-collapse:collapse;font-size:var(--text-md)}.sys-peers-table th{text-align:left;font-size:var(--text-xs);font-weight:700;letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--dim);padding:var(--space-xs) var(--space-md);border-bottom:1px solid color-mix(in srgb,var(--ink) 6%,transparent)}.sys-peers-table th:last-child{text-align:right;width:72px}.sys-peers-table td{padding:var(--space-md);color:var(--ink);border-bottom:1px solid color-mix(in srgb,var(--ink) 3%,transparent);vertical-align:middle}.sys-peers-table tr:last-child td{border-bottom:none}.sys-peers-row-connected td{background:color-mix(in srgb,var(--green) 3%,transparent)}.sys-peers-name{display:flex;align-items:center;gap:var(--space-sm);font-weight:600}.sys-peers-badge{font-size:var(--text-2xs);padding:var(--space-3xs) var(--space-xs)}.sys-peers-fp{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--muted);max-width:200px;overflow:hidden;text-overflow:ellipsis;display:inline-block;vertical-align:middle}.sys-peers-remove{border:none;background:transparent;font-size:var(--text-sm);font-weight:500;color:var(--dim);cursor:pointer;padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-sm);transition:color .12s ease,background .12s ease;float:right}.sys-peers-remove:hover{color:var(--red, #dc2626);background:color-mix(in srgb,var(--red, #dc2626) 6%,transparent)}.sys-peers-remove:disabled{opacity:.5;cursor:default}.sys-input-row{display:flex;align-items:center;gap:var(--space-md)}.sys-input{width:100%;min-width:0;height:38px;border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);background:var(--surface);padding:0 var(--space-lg);font-family:var(--font-sans);font-size:var(--text-lg);color:var(--ink)}.sys-input:focus{outline:none;border-color:color-mix(in srgb,var(--accent) 50%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}.sys-input-row .s-btn{border-radius:var(--radius-lg)}.sys-qr-stage{margin-bottom:var(--space-lg)}.sys-qr-block{display:flex;flex-direction:column;gap:var(--space-xl);align-items:center;min-width:0;border-radius:var(--radius-xl);border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);background:var(--bg);padding:var(--space-2xl);text-align:center}.sys-qr-meta{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);min-width:0}.sys-qr-meta h4{font-size:var(--text-xl);font-weight:600;color:var(--ink)}.sys-qr-meta p{font-size:var(--text-md);color:var(--muted)}.sys-trust-list{display:flex;flex-direction:column;gap:var(--space-sm)}.sys-trust-row{display:flex;flex-direction:column;gap:var(--space-sm);border-radius:var(--radius-lg);border:none;background:color-mix(in srgb,var(--bg) 80%,transparent);padding:var(--space-xl)}.sys-trust-main{display:flex;flex-direction:column;gap:var(--space-sm)}.sys-trust-meta{display:flex;justify-content:space-between;gap:var(--space-lg);flex-wrap:wrap;font-size:var(--text-sm);color:var(--muted)}@media(max-width:1024px){.sys-settings-grid,.sys-list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:780px){.sys-settings-hero{flex-direction:column;align-items:stretch}.sys-settings-qr-col{align-self:center}.sys-settings-qr-empty{width:100%;height:120px}.sys-peers-table th:nth-child(3),.sys-peers-table td:nth-child(3){display:none}.sys-surface-page{padding:var(--space-3xl) var(--space-2xl) var(--space-5xl)}.sys-page-head,.sys-page-actions{flex-direction:column;align-items:flex-start}.sys-page-actions{justify-content:flex-start}.sys-settings-grid,.sys-list-grid,.agent-config-layout,.agent-config-detail-grid,.agent-config-edit-grid{grid-template-columns:minmax(0,1fr)}.agent-config-detail-wide{grid-column:auto}.sys-audit-toggle{grid-template-columns:60px 16px minmax(0,1fr) auto}.sys-audit-details{padding:0 var(--space-xl) var(--space-xl) 96px}.sys-qr-block{grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center}.sys-trust-meta{flex-direction:column}}@media(max-width:560px){.sys-stat-grid,.sys-detail-grid,.sys-issue-grid{grid-template-columns:minmax(0,1fr)}.sys-section-head{flex-direction:column;align-items:flex-start}.agent-config-row{flex-direction:column}.agent-config-row-side{align-items:flex-start;max-width:none}.sys-audit-toggle{grid-template-columns:minmax(0,1fr);gap:var(--space-xs)}.sys-audit-stamp{flex-direction:row;align-items:center;gap:var(--space-sm);padding-top:0}.sys-audit-expand{padding-top:0}.sys-audit-marker{display:none}.sys-audit-details{padding:0 var(--space-xl) var(--space-xl)}.sys-peers-table th:nth-child(4),.sys-peers-table td:nth-child(4){display:none}.sys-settings-kv-label{width:64px;font-size:var(--text-2xs)}}.s-ops--embedded{display:flex;height:100vh;min-height:0;flex-direction:column}.s-ops--embedded>.s-ops-body{position:relative;display:flex;flex:1;min-height:0;flex-direction:column;overflow:hidden}.s-ops--embedded.s-ops--split>.s-ops-body{flex-direction:row}.s-ops--embedded.s-ops--split>.s-ops-body>.sys-broker-page{flex:1 1 auto;min-width:0}.s-broker-embed-detail{display:flex;flex:0 0 clamp(340px,34vw,520px);min-width:0;min-height:0;border-left:1px solid var(--sys-hairline);background:color-mix(in srgb,var(--surface) 42%,transparent)}@media(max-width:900px){.s-broker-embed-detail{position:absolute;inset:0;flex:1 1 auto;border-left:0;background:var(--bg)}}.sys-broker-aftermath{display:flex;flex-direction:column;gap:var(--space-sm)}.sys-broker-aftermath-head{display:flex;align-items:center;gap:var(--space-sm)}.sys-broker-aftermath-outcome{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--sys-hairline);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface) 55%,transparent)}.sys-broker-aftermath-outcome strong{font-size:var(--text-sm);font-weight:560}.sys-broker-aftermath-outcome--danger strong{color:var(--red)}.sys-broker-aftermath-outcome--success strong{color:var(--green)}.sys-broker-aftermath-duration{justify-self:start;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs)}.sys-broker-aftermath-outcome p{grid-column:1 / -1;margin:0;color:var(--muted);font-size:var(--text-xs);line-height:1.5}.sys-broker-aftermath-replies{display:flex;flex-direction:column;gap:var(--space-2xs);margin:0;padding:0;list-style:none}.sys-broker-aftermath-reply{display:flex;width:100%;flex-direction:column;gap:2px;padding:var(--space-sm) var(--space-md);border:1px solid var(--sys-hairline);border-radius:var(--radius-sm);background:transparent;text-align:left;transition:border-color .12s,background .12s}.sys-broker-aftermath-reply:hover:not(:disabled){border-color:color-mix(in srgb,var(--accent) 45%,var(--sys-hairline));background:color-mix(in srgb,var(--surface) 55%,transparent)}.sys-broker-aftermath-reply:disabled{cursor:default}.sys-broker-aftermath-reply-head{display:flex;align-items:baseline;gap:var(--space-sm);min-width:0}.sys-broker-aftermath-reply-head strong{overflow:hidden;color:var(--ink);font-size:var(--text-xs);font-weight:560;text-overflow:ellipsis;white-space:nowrap}.sys-broker-aftermath-answer{flex:0 0 auto;padding:0 4px;border-radius:var(--radius-2xs, 3px);background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent);font-family:var(--font-mono);font-size:var(--text-3xs);letter-spacing:var(--tracking-lg);text-transform:uppercase}.sys-broker-aftermath-gap{margin-left:auto;flex:0 0 auto;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs)}.sys-broker-aftermath-reply-body{overflow:hidden;color:var(--muted);font-size:var(--text-xs);line-height:1.5}.sys-broker-aftermath-more{color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs)}.sys-broker-aftermath-empty{margin:0;color:var(--dim);font-size:var(--text-xs);line-height:1.5}.sys-broker-aftermath-links{display:flex;flex-wrap:wrap;gap:var(--space-2xs)}.sys-broker-aftermath-link{display:inline-flex;align-items:center;gap:4px;padding:3px var(--space-sm);border:1px solid var(--sys-hairline);border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-size:var(--text-xs);transition:border-color .12s,color .12s}.sys-broker-aftermath-link:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--sys-hairline));color:var(--ink)}.sys-broker-aftermath-foot{color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs)}
|