@openscout/scout 0.2.79 → 0.2.82
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/bin/scoutd +0 -0
- package/dist/build-manifest.json +4 -4
- package/dist/client/assets/ActivityScreen-aewI4Ul1.js +1 -0
- package/dist/client/assets/{AddProjectForm-BoVtelSP.js → AddProjectForm-Czb5uwou.js} +1 -1
- package/dist/client/assets/{AgentAvatar-CufDA4A-.js → AgentAvatar-DMov24_o.js} +1 -1
- package/dist/client/assets/AgentConfigurationScreen-BjG6ECjl.js +1 -0
- package/dist/client/assets/AgentDefinitionsWorkspace-D4MbSMXp.js +1 -0
- package/dist/client/assets/{AgentDetailCard-DxxVkgT1.js → AgentDetailCard-Biq8b2gv.js} +1 -1
- package/dist/client/assets/AgentFloorView-h9KDJdw0.js +1 -0
- package/dist/client/assets/AgentInfoScreen-SjhK_SBh.js +1 -0
- package/dist/client/assets/{AgentLaneCard-DTUvE96I.js → AgentLaneCard-C4DMQR-c.js} +1 -1
- package/dist/client/assets/{AgentLaneChrome-BfVygkgL.js → AgentLaneChrome-D1xNNf7A.js} +1 -1
- package/dist/client/assets/AgentLaneDetailSheet-DnAKe4e3.js +4 -0
- package/dist/client/assets/{AgentLaneSummaryResize-CMgzYvAA.js → AgentLaneSummaryResize-C9loK-st.js} +1 -1
- package/dist/client/assets/AgentLanesEmbedScreen-BNOYF16R.js +1 -0
- package/dist/client/assets/{AgentLanesPreflight-KWfLcaNB.js → AgentLanesPreflight-M7iDXdP2.js} +1 -1
- package/dist/client/assets/{AgentLanesView-CxfbV8Kd.js → AgentLanesView-Ct-Gz5WD.js} +1 -1
- package/dist/client/assets/{AgentLiveActions-CZdAInEu.js → AgentLiveActions-0iy8QZ1T.js} +1 -1
- package/dist/client/assets/{AgentSessions-Bkr0lyry.js → AgentSessions-CDfSfNiE.js} +2 -2
- package/dist/client/assets/{AgentsConsole-WtFVqaPJ.js → AgentsConsole-BVxhBqRa.js} +1 -1
- package/dist/client/assets/AgentsScreen-Bww6HgFs.js +1 -0
- package/dist/client/assets/AgentsSubnav-CiIuzxnZ.js +1 -0
- package/dist/client/assets/{AtopView-_OKDlZ1h.js → AtopView-h_aFoNkP.js} +1 -1
- package/dist/client/assets/BackToPicker-BXp5E2ck.js +1 -0
- package/dist/client/assets/{BriefingDetailScreen-i54EtZKW.js → BriefingDetailScreen-C83o2YfN.js} +1 -1
- package/dist/client/assets/{BriefingsScreen-CBrHojlQ.js → BriefingsScreen-BTsvr5fv.js} +1 -1
- package/dist/client/assets/{BrokerMetadataPanel-opTLuZU6.js → BrokerMetadataPanel-jg7odHQp.js} +1 -1
- package/dist/client/assets/BrokerScreen-DplF8d_X.js +5 -0
- package/dist/client/assets/Canvas-BePL08RR.js +1 -0
- package/dist/client/assets/{ChatCollapsedStrip-Dr2vmKXQ.js → ChatCollapsedStrip-BRljIymi.js} +1 -1
- package/dist/client/assets/{CodeDiffPane-CLOGjwul.js → CodeDiffPane-86odpBSt.js} +1 -1
- package/dist/client/assets/{CodeProjectPicker-DTV8hR6A.js → CodeProjectPicker-8svr_S_A.js} +1 -1
- package/dist/client/assets/CodeScreen-CJ2RgB32.js +1 -0
- package/dist/client/assets/{ContextMenu-BlBQhpax.js → ContextMenu-CxkmFQcN.js} +1 -1
- package/dist/client/assets/ConversationComposer-CWohCCmn.js +1 -0
- package/dist/client/assets/ConversationFeedRows-IWh0JSIL.js +1 -0
- package/dist/client/assets/ConversationHeader-BxTzXl8e.js +1 -0
- package/dist/client/assets/ConversationPanels-D9UCwNkS.js +2 -0
- package/dist/client/assets/ConversationScreen-oZSitVtX.js +1 -0
- package/dist/client/assets/ConversationScreen-yIKEsm-8.css +1 -0
- package/dist/client/assets/{ConversationStatus-DSgdVofa.js → ConversationStatus-B6pAbo2w.js} +1 -1
- package/dist/client/assets/{DataTable-0DwuXyvW.js → DataTable-CGw5CECG.js} +1 -1
- package/dist/client/assets/{DispatchAftermath-BrreQifA.js → DispatchAftermath-DowTb7uO.js} +1 -1
- package/dist/client/assets/{DocumentFocusViewer-DU_9BHsD.js → DocumentFocusViewer-DRKjNG9s.js} +1 -1
- package/dist/client/assets/{EmbeddableSurfacesLab-DdaswbfI.js → EmbeddableSurfacesLab-CxfJXS2g.js} +1 -1
- package/dist/client/assets/{EmptyState-CoL-QuUO.js → EmptyState-BUvllvA6.js} +1 -1
- package/dist/client/assets/{FileViewerPane-C9Ly01Ef.js → FileViewerPane-BM4AD_bo.js} +1 -1
- package/dist/client/assets/{FleetSearch-DlWTLl-v.js → FleetSearch-CYeWn85V.js} +1 -1
- package/dist/client/assets/FlightObserveScreen-DYJJ3Z2B.js +1 -0
- package/dist/client/assets/FollowScreen-DG0osbUp.js +1 -0
- package/dist/client/assets/HarnessMark-MztYnrGK.js +1 -0
- package/dist/client/assets/HarnessesScreen-BWqirBjK.js +1 -0
- package/dist/client/assets/HerdrSession-6sFln7WX.js +4 -0
- package/dist/client/assets/{HomeHero-Cfsow7qL.js → HomeHero-BPBArHXa.js} +1 -1
- package/dist/client/assets/{KnowledgeSearchInspector-DKashKoH.js → KnowledgeSearchInspector-BOIhFWd2.js} +1 -1
- package/dist/client/assets/KnowledgeSearchScreen-BP8tD-Bh.js +1 -0
- package/dist/client/assets/{LaneToolHoverCard-BzehBmdi.js → LaneToolHoverCard-CcEiQC6B.js} +1 -1
- package/dist/client/assets/LaneTraceDetailSheet-B4i1Ut4R.js +1 -0
- package/dist/client/assets/{LaneTraceEventFocus-DYvHfs_3.js → LaneTraceEventFocus-Bl9L0EYb.js} +1 -1
- package/dist/client/assets/{MeshCanvas-DIjlrMPU.js → MeshCanvas-ZjIuMiRo.js} +1 -1
- package/dist/client/assets/{MeshCanvasMinimap-DEq-PkF0.js → MeshCanvasMinimap-C-LQtiX6.js} +1 -1
- package/dist/client/assets/MeshScreen-Bs3soujg.js +1 -0
- package/dist/client/assets/{MeshTopologyView-BMHpH5BU.js → MeshTopologyView-C0LUyT3K.js} +2 -2
- package/dist/client/assets/{MessageComposerSuggestions-zAUUcLOv.js → MessageComposerSuggestions-Dfc3PH2y.js} +1 -1
- package/dist/client/assets/MessagesScreen-TgSL5KMc.js +1 -0
- package/dist/client/assets/MissionContextRail-CjGAEGu8.js +1 -0
- package/dist/client/assets/MissionControlView-D629w2A8.js +1 -0
- package/dist/client/assets/{MissionFocusOverlay-C7cPt6eU.js → MissionFocusOverlay-Bubrr8Gc.js} +1 -1
- package/dist/client/assets/{MissionLeftAgentRow-CxlH3dON.js → MissionLeftAgentRow-DokImu4Y.js} +1 -1
- package/dist/client/assets/MissionLogPane-Cs0LuIkn.js +1 -0
- package/dist/client/assets/{NewAgentModal-DprvD4EK.js → NewAgentModal-D5e0YUAo.js} +1 -1
- package/dist/client/assets/NewChatComposer-C5LT7MF7.css +1 -0
- package/dist/client/assets/NewChatComposer-S08F6_La.js +19 -0
- package/dist/client/assets/{NewChatOrigin--pHWUb4V.js → NewChatOrigin-BEz6jyqf.js} +1 -1
- package/dist/client/assets/{ObserveEmbedScreen-CfvrnOiZ.js → ObserveEmbedScreen-CHx2sEAA.js} +2 -2
- package/dist/client/assets/ObserveTextFlow-_ApDwRCO.js +2 -0
- package/dist/client/assets/{ObservedTopologyPanel-Dv6fbHzW.js → ObservedTopologyPanel-ByW7Ar7p.js} +1 -1
- package/dist/client/assets/OpenScoutAppShell-DTmnbG-h.js +88 -0
- package/dist/client/assets/OpsAgentsView-DiFuHcJs.js +1 -0
- package/dist/client/assets/OpsScreen-CCR3U_9P.js +1 -0
- package/dist/client/assets/OpsSubnav-CZs_OL2N.js +1 -0
- package/dist/client/assets/{PlanView-DYtt8H37.js → PlanView-C54eAzig.js} +1 -1
- package/dist/client/assets/ProjectAgentProfile-BEfYOaxc.js +1 -0
- package/dist/client/assets/{ProjectAgentProfileBar-B3IvVbqS.js → ProjectAgentProfileBar-B1VpwzGD.js} +1 -1
- package/dist/client/assets/{ProjectAgentProfileHero-D5E8yvDj.js → ProjectAgentProfileHero-B4f_AoCr.js} +1 -1
- package/dist/client/assets/ProjectsInbox-DoPZ17FC.js +2 -0
- package/dist/client/assets/{ProjectsRail-DEDS-M1c.js → ProjectsRail-CWOkZjsY.js} +1 -1
- package/dist/client/assets/ProjectsScreen-Dse0Q6p6.js +1 -0
- package/dist/client/assets/ProjectsThreadAside-DMnfyPLE.js +1 -0
- package/dist/client/assets/Provider-DKZWuzSR.js +1 -0
- package/dist/client/assets/{RailRow-BTlVAnHS.js → RailRow-DIGd3MMM.js} +1 -1
- package/dist/client/assets/RawSessionsTable-Zkl4YDvz.js +1 -0
- package/dist/client/assets/RealtimeVoiceScreen-B_PMJxY_.js +1 -0
- package/dist/client/assets/{RepoDiffEmbedScreen-CtTdlQ2A.js → RepoDiffEmbedScreen-VLg4caej.js} +1 -1
- package/dist/client/assets/{RepoDiffPageScreen-BRvaVYoC.js → RepoDiffPageScreen-BelnvgnP.js} +1 -1
- package/dist/client/assets/{RepoDiffViewer-Bo0gREMj.js → RepoDiffViewer-VrUJw33u.js} +1 -1
- package/dist/client/assets/RepoDiffViewerLazy-BPg_JkYW.js +2 -0
- package/dist/client/assets/{ReposScreen-BBkJf8xT.js → ReposScreen-IINK-CFn.js} +2 -2
- package/dist/client/assets/ScoutDeckSurface-MbwGp6Ab.js +1 -0
- package/dist/client/assets/{ScoutSurface-DEQg_7Io.js → ScoutSurface-x_QbcRyk.js} +1 -1
- package/dist/client/assets/ScoutbotBroadcastChip-DAKQKB25.js +2 -0
- package/dist/client/assets/{ScoutbotFxLab-BgsuLDjo.js → ScoutbotFxLab-7t9JVvZg.js} +1 -1
- package/dist/client/assets/{ScoutbotRealtimeVoiceCall-Bzyl0BCS.js → ScoutbotRealtimeVoiceCall-Br4bYVAx.js} +1 -1
- package/dist/client/assets/{SecondaryNav-Bks0CO2h.js → SecondaryNav-Dj30epYF.js} +1 -1
- package/dist/client/assets/{SessionEmbedScreen-b0Zgmfx5.js → SessionEmbedScreen-s2mJ5Fg9.js} +1 -1
- package/dist/client/assets/{SessionObserve-Dlx5vDaV.js → SessionObserve-DaUrJCMq.js} +1 -1
- package/dist/client/assets/{SessionObserveEvidence-ChBD1d4c.js → SessionObserveEvidence-ClUW8jpV.js} +1 -1
- package/dist/client/assets/SessionRefScreen-DLZNFZFK.js +1 -0
- package/dist/client/assets/SessionsScreen-D-hN1n4k.js +1 -0
- package/dist/client/assets/{SettingsDrawer-C587L1i1.js → SettingsDrawer-BFsnww-k.js} +3 -3
- package/dist/client/assets/SettingsScreen-Bc3Xtv5V.js +1 -0
- package/dist/client/assets/{ShikiPane-I_OTW5NO.js → ShikiPane-Dkwyx--r.js} +1 -1
- package/dist/client/assets/{SlidePanel-FCqT1zO3.js → SlidePanel-CuTeirnk.js} +1 -1
- package/dist/client/assets/{SpriteAvatar-CQs-jC-v.js → SpriteAvatar-DQ3PTb8L.js} +1 -1
- package/dist/client/assets/{StatusPill-CbABggnQ.js → StatusPill-BJ1ierIR.js} +1 -1
- package/dist/client/assets/{TailView-C_MXVSum.js → TailView-CufWcrvf.js} +2 -2
- package/dist/client/assets/Terminal-D_OmdFmr.js +1 -0
- package/dist/client/assets/TerminalEmbedScreen-D21ytNXW.js +1 -0
- package/dist/client/assets/TerminalRelay-rvUzI9Ek.js +46 -0
- package/dist/client/assets/{TextDocumentSurface-C-9EtYqt.js → TextDocumentSurface-Bc-kHPgG.js} +1 -1
- package/dist/client/assets/{TmuxPeek-Dz1gJ2pU.js → TmuxPeek-DLyDkq_D.js} +1 -1
- package/dist/client/assets/{VoicePermissionsPanel-MfICy9kk.js → VoicePermissionsPanel-CD903y9K.js} +1 -1
- package/dist/client/assets/{WorkDetailScreen-Cs7kdllj.js → WorkDetailScreen-D51oI0dH.js} +2 -2
- package/dist/client/assets/{WorkFilesViewer-CF-nhtZ4.js → WorkFilesViewer-BDMNbxE4.js} +1 -1
- package/dist/client/assets/{activity-WhBf3FXP.js → activity-BvGruxWG.js} +1 -1
- package/dist/client/assets/{addon-fit-q-x_HytU.js → addon-fit-Cfq4Ayjd.js} +1 -1
- package/dist/client/assets/{addon-webgl-fhhvEA9h.js → addon-webgl-B8sIf9-s.js} +1 -1
- package/dist/client/assets/{agent-essentials-DyJiUGpZ.js → agent-essentials-yb4wIJlX.js} +1 -1
- package/dist/client/assets/agent-identity-BxCsXnDp.js +1 -0
- package/dist/client/assets/{agent-lane-card-model-BCIwPjEh.js → agent-lane-card-model-q4cwzLX4.js} +1 -1
- package/dist/client/assets/agent-lane-detail-BNNm6FNu.js +2 -0
- package/dist/client/assets/{agent-lane-preview-BtnfNyFR.js → agent-lane-preview-C33Dwpn7.js} +1 -1
- package/dist/client/assets/{agent-lanes-model-Bl6xfviL.js → agent-lanes-model-VYQ5a68i.js} +2 -2
- package/dist/client/assets/{arc.es-DPJ0xRV6.js → arc.es-BBTfhvLE.js} +1 -1
- package/dist/client/assets/{arrow-left-WjQIN9J6.js → arrow-left-BOht-YQu.js} +1 -1
- package/dist/client/assets/{arrow-up-right-CtTDrZJr.js → arrow-up-right-hoR8_oUz.js} +1 -1
- package/dist/client/assets/{bot-B_Uzf4_O.js → bot-BUK7dOPS.js} +1 -1
- package/dist/client/assets/{check-BbgHJX8u.js → check--esHw52j.js} +1 -1
- package/dist/client/assets/{chevron-down-BFai6ZfE.js → chevron-down-NAhBUkFd.js} +1 -1
- package/dist/client/assets/{chevron-right-CyUa1zXx.js → chevron-right-C10o7t_X.js} +1 -1
- package/dist/client/assets/{chunk-HRAB3GC3-CvwpNg-G.js → chunk-HRAB3GC3-DF8R9rPv.js} +1 -1
- package/dist/client/assets/{clock-DviOalxA.js → clock-of01sAB6.js} +1 -1
- package/dist/client/assets/{code-xml-05TD3uOC.js → code-xml-CLn3TDWF.js} +1 -1
- package/dist/client/assets/content-B-SUUhXj.js +1 -0
- package/dist/client/assets/content-BRY2vo1_.js +1 -0
- package/dist/client/assets/content-BTm0mVyD.js +1 -0
- package/dist/client/assets/content-BTqvyb5E.js +1 -0
- package/dist/client/assets/content-BjDaXmSD.js +1 -0
- package/dist/client/assets/content-BrR6deGh.js +1 -0
- package/dist/client/assets/content-C5yvBEMy.js +1 -0
- package/dist/client/assets/content-Cgj5AWqT.js +1 -0
- package/dist/client/assets/content-CkhG__-v.js +1 -0
- package/dist/client/assets/content-CudIBsiP.js +1 -0
- package/dist/client/assets/content-DBb7ppd5.js +1 -0
- package/dist/client/assets/content-DEw_kGyK.js +1 -0
- package/dist/client/assets/content-DIy0DCzK.js +1 -0
- package/dist/client/assets/content-THl9hRAo.js +1 -0
- package/dist/client/assets/content-Uqt8AG-s.css +1 -0
- package/dist/client/assets/content-vi9FbmV9.js +1 -0
- package/dist/client/assets/content-wcgPMGVf.js +1 -0
- package/dist/client/assets/{conversation-icons-DohQL6GI.js → conversation-icons-ClBJi21l.js} +1 -1
- package/dist/client/assets/conversation-model-CHwHZNw-.js +1 -0
- package/dist/client/assets/conversation-motion-features-zU0k3Agz.js +1 -0
- package/dist/client/assets/{copy-CwCAivnc.js → copy-Dty8ZYsM.js} +1 -1
- package/dist/client/assets/{createLucideIcon-DlxlBfLC.js → createLucideIcon-Bt67PWH-.js} +1 -1
- package/dist/client/assets/discover-NDAqNvKt.js +2 -0
- package/dist/client/assets/embed-entry-BVR09F6e.js +2 -0
- package/dist/client/assets/{external-link-CnjcXf32.js → external-link-Dem738OJ.js} +1 -1
- package/dist/client/assets/{eye-So8tNNK6.js → eye-B3lBIwJZ.js} +1 -1
- package/dist/client/assets/{file-text-i3xTDUjJ.js → file-text-iF0hyVyU.js} +1 -1
- package/dist/client/assets/home-live-action-BkqGLVRY.js +1 -0
- package/dist/client/assets/home-moving-signal-C8dTXieA.js +1 -0
- package/dist/client/assets/home-now-card-BgvVcE83.js +1 -0
- package/dist/client/assets/{home-now-card-nano-CkLHUQ4J.js → home-now-card-nano-hZl9klbP.js} +1 -1
- package/dist/client/assets/hooks-DBIezYS2.js +2 -0
- package/dist/client/assets/index-BMwKgdz_.js +1 -0
- package/dist/client/assets/index-Bu-fckyR.css +1 -0
- package/dist/client/assets/index-BxoufAPA.js +1 -0
- package/dist/client/assets/index-Cj7NnSxI.js +1 -0
- package/dist/client/assets/{index-sUomXsrf.js → index-o4FKpU7Z.js} +2 -2
- package/dist/client/assets/{inspector-panel-DhXd-YbT.js → inspector-panel-Dy2cVTCi.js} +2 -2
- package/dist/client/assets/keyboard-nav-Chf51dns.js +1 -0
- package/dist/client/assets/{lane-observe-DrhKkQ3A.js → lane-observe-BA3g9aVd.js} +1 -1
- package/dist/client/assets/{lane-roster-store-NE15Oe6M.js → lane-roster-store-BiIVlYmG.js} +1 -1
- package/dist/client/assets/left-BC7p5QbT.js +1 -0
- package/dist/client/assets/left-BCSGqccQ.js +1 -0
- package/dist/client/assets/left-BSyj8PuJ.js +2 -0
- package/dist/client/assets/left-DDnxNUxd.js +1 -0
- package/dist/client/assets/left-DLoDKxT5.js +2 -0
- package/dist/client/assets/left-O-TBH7JB.js +1 -0
- package/dist/client/assets/left-agents-Dk9Y89lb.js +1 -0
- package/dist/client/assets/left-default-B3JBRQNJ.js +1 -0
- package/dist/client/assets/left-lanes-30Oe_3RM.js +1 -0
- package/dist/client/assets/left-mission-DEl4-7xu.js +1 -0
- package/dist/client/assets/left-plan-B4qdm4Gn.js +2 -0
- package/dist/client/assets/left-rvUOB14X.js +1 -0
- package/dist/client/assets/library-DDKSLFJ_.js +1 -0
- package/dist/client/assets/{loader-circle-lWOOKezu.js → loader-circle-4LDsy4Ke.js} +1 -1
- package/dist/client/assets/{local-agents-C7fDHLVC.js → local-agents-DIi2EacM.js} +1 -1
- package/dist/client/assets/{mentions-CY_wPZc5.js → mentions-CvDaviLJ.js} +1 -1
- package/dist/client/assets/{mesh-ops-Kn8pCtyJ.js → mesh-ops-JZwGuAPn.js} +1 -1
- package/dist/client/assets/{mesh-view-store-D14ihwkF.js → mesh-view-store-Du7VqIT_.js} +1 -1
- package/dist/client/assets/{message-circle-C5UZ6fO7.js → message-circle-BM3XgevU.js} +1 -1
- package/dist/client/assets/{message-markup-C8Nx04sP.js → message-markup-BcY1lShv.js} +1 -1
- package/dist/client/assets/{message-square-BD-4UUdc.js → message-square-ER1_q2pe.js} +1 -1
- package/dist/client/assets/mission-control-m3BTDQ9l.css +1 -0
- package/dist/client/assets/{mission-control-store-xQHVQdm8.js → mission-control-store-C6w5iVfg.js} +1 -1
- package/dist/client/assets/mission-wall-CocIM1cF.js +1 -0
- package/dist/client/assets/{observe-uJfIlIUV.js → observe-3-jn4SXb.js} +1 -1
- package/dist/client/assets/openAgent-Dbv5wfuL.js +1 -0
- package/dist/client/assets/{page-status-BymFEFai.js → page-status-0LPfBC8S.js} +1 -1
- package/dist/client/assets/{plus-C9lTjsgd.js → plus-C-2gTcPK.js} +1 -1
- package/dist/client/assets/profile-DW80Gn5k.js +1 -0
- package/dist/client/assets/{projects-inbox-DfVmGFFk.js → projects-inbox-DCeD3FfV.js} +1 -1
- package/dist/client/assets/provider-BvAxRQfE.js +1 -0
- package/dist/client/assets/{radio-DedMyP8J.js → radio-v7UAMZGh.js} +1 -1
- package/dist/client/assets/{refresh-cw-D8PFyhUa.js → refresh-cw-B5To7b6B.js} +1 -1
- package/dist/client/assets/resolve-panes-BDi9Qx4R.js +1 -0
- package/dist/client/assets/resolve-sidebar-context-HE-5eZYa.js +1 -0
- package/dist/client/assets/right-BDf_yTv6.js +1 -0
- package/dist/client/assets/{right-C1sIsSHR.js → right-BvoGOUKH.js} +1 -1
- package/dist/client/assets/right-C-bgjYg-.js +1 -0
- package/dist/client/assets/right-C3JdEfYQ.js +1 -0
- package/dist/client/assets/right-CYIs2tEe.js +1 -0
- package/dist/client/assets/right-CyRCv6Up.js +1 -0
- package/dist/client/assets/right-DBYGtoRv.js +1 -0
- package/dist/client/assets/right-o3LHMiKa.js +1 -0
- package/dist/client/assets/right-oPrcx9MX.js +1 -0
- package/dist/client/assets/right-sSvBUK-j.js +1 -0
- package/dist/client/assets/{rocket-CriBwkHM.js → rocket-BQQQv2L5.js} +1 -1
- package/dist/client/assets/router-C65cZYPn.js +1 -0
- package/dist/client/assets/{runtime-picker-DOZpZOlt.js → runtime-picker-eDEvx2Mz.js} +1 -1
- package/dist/client/assets/{scope-views-BF_RvGKU.js → scope-views-BOOmgmwx.js} +1 -1
- package/dist/client/assets/{scout-voice-BZ4KqADJ.js → scout-voice-B7kXlkcl.js} +1 -1
- package/dist/client/assets/{scroll-text-BIYf6g6N.js → scroll-text-BuneRiAD.js} +1 -1
- package/dist/client/assets/{search-DCT_EvPr.js → search-7_n7CxWl.js} +1 -1
- package/dist/client/assets/{secondaryNavConfig-Drb7wPG4.js → secondaryNavConfig-CSFDCQAf.js} +1 -1
- package/dist/client/assets/{selection-bridge-CJOTyYQs.js → selection-bridge-SlGsgHw2.js} +1 -1
- package/dist/client/assets/{send-horizontal-DDwOgEs3.js → send-horizontal-DP16OOIW.js} +1 -1
- package/dist/client/assets/{server-CHZCp3cF.js → server-pYOMFjrT.js} +1 -1
- package/dist/client/assets/{session-catalog-XhGxCtP-.js → session-catalog-_QfQ7fhZ.js} +1 -1
- package/dist/client/assets/session-table-CYN8e4s3.js +1 -0
- package/dist/client/assets/{sliders-horizontal-B9Nj-Y4J.js → sliders-horizontal-D2Z8gz6J.js} +1 -1
- package/dist/client/assets/{sparkles-up7pVlX-.js → sparkles-Bth2iK7t.js} +1 -1
- package/dist/client/assets/{sse-CVoGDiKW.js → sse-CL6gctHY.js} +1 -1
- package/dist/client/assets/synthetic-agent-routing-aduMYO7P.js +1 -0
- package/dist/client/assets/system-surfaces-redesign-B7GQhfpw.css +1 -0
- package/dist/client/assets/{tail-display-BdyoLvzY.js → tail-display-BRcJltQa.js} +2 -2
- package/dist/client/assets/{tail-events-CTipUIli.js → tail-events-NLIWLq27.js} +1 -1
- package/dist/client/assets/{terminal-DXQISjZn.js → terminal-By1Lw2i2.js} +1 -1
- package/dist/client/assets/{terminal-relay-B5Sma7fK.js → terminal-relay-CjkI5aUy.js} +1 -1
- package/dist/client/assets/{terminal-screen-19jAI0Cw.css → terminal-screen-BqVnCwl0.css} +1 -1
- package/dist/client/assets/terminal-sessions-AmSgHklm.js +1 -0
- package/dist/client/assets/{terminal-takeover-X97KCSJk.js → terminal-takeover-7AvNpnkC.js} +1 -1
- package/dist/client/assets/{use-conversation-list-B1T6J_qE.js → use-conversation-list-BCzY032j.js} +1 -1
- package/dist/client/assets/{use-fleet-active-asks-DLofGhhK.js → use-fleet-active-asks-CJ6-oj5k.js} +1 -1
- package/dist/client/assets/{use-mesh-ops-items-ByGZk8rU.js → use-mesh-ops-items-D5L-CKe_.js} +1 -1
- package/dist/client/assets/use-reduced-motion-CqXpVXv-.js +1 -0
- package/dist/client/assets/use-scout-dev-flags-BohC8seq.js +1 -0
- package/dist/client/assets/{useAgentHoverCard-D5e8Qg1z.js → useAgentHoverCard-RsLUYyeh.js} +1 -1
- package/dist/client/assets/useContentSecondaryNav-DOr5yHbT.js +1 -0
- package/dist/client/assets/usePersistentState-D3M4m2Ou.js +1 -0
- package/dist/client/assets/{usePierreRuntime-DIVunfX0.js → usePierreRuntime-B4hbNWTz.js} +1 -1
- package/dist/client/assets/{wrench-pEVd8JnN.js → wrench-M4G7WtYB.js} +1 -1
- package/dist/client/assets/{x-0XjXwGqq.js → x-ynOfVadO.js} +1 -1
- package/dist/client/assets/{xterm-CRLlV1Xp.js → xterm-DZHyijPp.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/main.mjs +1444 -381
- package/dist/node/main.mjs +82 -20
- package/dist/openscout-terminal-relay.mjs +16 -4
- package/dist/pairing-runtime-controller.mjs +3030 -2948
- package/dist/runtime/broker-daemon.mjs +358 -136
- package/dist/scout-control-plane-web.mjs +5646 -5184
- package/dist/scout-web-server.mjs +5646 -5184
- package/package.json +4 -4
- package/dist/client/assets/ActivityScreen-DnqqRSlS.js +0 -1
- package/dist/client/assets/AgentConfigurationScreen-CJqoMA0J.js +0 -1
- package/dist/client/assets/AgentDefinitionsWorkspace-FpEkb-tu.js +0 -1
- package/dist/client/assets/AgentFloorView-CycUn0Lv.js +0 -1
- package/dist/client/assets/AgentInfoScreen-CAQAxpAK.js +0 -1
- package/dist/client/assets/AgentLaneDetailSheet-CWs9wKWk.js +0 -5
- package/dist/client/assets/AgentLanesEmbedScreen-BUCW4nUj.js +0 -1
- package/dist/client/assets/AgentsScreen-BMXvuiA2.js +0 -1
- package/dist/client/assets/AgentsSubnav-BTNjPYoA.js +0 -1
- package/dist/client/assets/BackToPicker-CkUmHuuo.js +0 -1
- package/dist/client/assets/BrokerScreen-CObCQvoy.js +0 -5
- package/dist/client/assets/CodeScreen-BXqi72NK.js +0 -1
- package/dist/client/assets/ConversationComposer-BBNPa5S9.js +0 -1
- package/dist/client/assets/ConversationFeedRows-BuejHMCY.js +0 -1
- package/dist/client/assets/ConversationHeader-DXMT-YXv.js +0 -1
- package/dist/client/assets/ConversationPanels-DHCtilQF.js +0 -2
- package/dist/client/assets/ConversationScreen-DSxIt9pq.css +0 -1
- package/dist/client/assets/ConversationScreen-Dz2d_Z_F.js +0 -1
- package/dist/client/assets/FlightObserveScreen-C-9S0nA5.js +0 -1
- package/dist/client/assets/FollowScreen--Q04xSSE.js +0 -1
- package/dist/client/assets/HarnessMark-Dm_qm1Ku.js +0 -1
- package/dist/client/assets/HarnessesScreen-Y54viPX8.js +0 -1
- package/dist/client/assets/KnowledgeSearchScreen-DsdDz8wY.js +0 -1
- package/dist/client/assets/LaneTraceDetailSheet-CBf_aNZx.js +0 -1
- package/dist/client/assets/MeshScreen-TgDtz-1l.js +0 -1
- package/dist/client/assets/MessagesScreen-BTQL0UcE.js +0 -1
- package/dist/client/assets/MissionControlView-D59SPnAm.js +0 -1
- package/dist/client/assets/MissionLogPane-Ye3YlF9s.js +0 -1
- package/dist/client/assets/NewChatComposer-B5FnPyzS.js +0 -19
- package/dist/client/assets/NewChatComposer-W-t-L4oV.css +0 -1
- package/dist/client/assets/ObserveTextFlow-CBitljxi.js +0 -2
- package/dist/client/assets/OpenScoutAppShell-BIp0WitK.js +0 -87
- package/dist/client/assets/OpsAgentsView-CoBfAigH.js +0 -1
- package/dist/client/assets/OpsScreen-Bbo0W64T.js +0 -1
- package/dist/client/assets/OpsSubnav-CoN8utF8.js +0 -1
- package/dist/client/assets/ProjectAgentProfile-FiiIcB5R.js +0 -1
- package/dist/client/assets/ProjectsInbox-BWiXjGi7.js +0 -2
- package/dist/client/assets/ProjectsScreen-Cxk4CuYn.js +0 -1
- package/dist/client/assets/ProjectsThreadAside-BF66ugT5.js +0 -1
- package/dist/client/assets/Provider-tFc3jqZ4.js +0 -1
- package/dist/client/assets/RawSessionsTable-BsGVgZB3.js +0 -1
- package/dist/client/assets/RealtimeVoiceScreen-B0Bem5Rc.js +0 -1
- package/dist/client/assets/RepoDiffViewerLazy-C8UPk4oo.js +0 -2
- package/dist/client/assets/ScoutDeckSurface-Bi9ov9Bm.js +0 -1
- package/dist/client/assets/ScoutbotBroadcastChip-DJXuyn73.js +0 -2
- package/dist/client/assets/SessionRefScreen-D7TfPYPN.js +0 -1
- package/dist/client/assets/SessionsScreen-BlknOWAd.js +0 -1
- package/dist/client/assets/SettingsScreen-BIlYxv_a.js +0 -1
- package/dist/client/assets/Terminal-DwZyo8kA.js +0 -1
- package/dist/client/assets/TerminalEmbedScreen-Czp3tQyd.js +0 -1
- package/dist/client/assets/agent-chat-Bfjd9y6c.js +0 -1
- package/dist/client/assets/agent-identity-xQHedtLl.js +0 -1
- package/dist/client/assets/agent-lane-detail-Cw4QVAgH.js +0 -1
- package/dist/client/assets/arrow-down-DsD-dYj-.js +0 -1
- package/dist/client/assets/chunk-T65CQEWV-DI4NKdNq.js +0 -1
- package/dist/client/assets/chunk-YOZR3KYS-BW85tiCr.js +0 -47
- package/dist/client/assets/content-2u_eV3fX.js +0 -1
- package/dist/client/assets/content-5irOghrY.js +0 -1
- package/dist/client/assets/content-8Z_0CwtD.js +0 -1
- package/dist/client/assets/content-B38YRDBu.js +0 -1
- package/dist/client/assets/content-BE3uK0LB.js +0 -1
- package/dist/client/assets/content-BtIxSqVY.js +0 -1
- package/dist/client/assets/content-CFsPAihU.js +0 -1
- package/dist/client/assets/content-CHU0wwA3.css +0 -1
- package/dist/client/assets/content-CKj5g5tu.js +0 -1
- package/dist/client/assets/content-CLDWXf9Z.js +0 -1
- package/dist/client/assets/content-CRr73E0r.js +0 -1
- package/dist/client/assets/content-CVR75_Uj.js +0 -1
- package/dist/client/assets/content-Czdp7_JQ.js +0 -1
- package/dist/client/assets/content-D0_EJ6nP.js +0 -1
- package/dist/client/assets/content-DNmxpNhD.js +0 -1
- package/dist/client/assets/content-XpbI9uxd.js +0 -1
- package/dist/client/assets/content-cyxWdgKQ.js +0 -1
- package/dist/client/assets/conversation-model-C4yb6_FA.js +0 -1
- package/dist/client/assets/conversation-motion-features-CifSdJtm.js +0 -1
- package/dist/client/assets/discover-DoiAJo4Z.js +0 -2
- package/dist/client/assets/embed-entry-D1Or9S4d.js +0 -2
- package/dist/client/assets/gestures-CgvAMd6F.js +0 -1
- package/dist/client/assets/home-live-action-B22u89j7.js +0 -1
- package/dist/client/assets/home-moving-signal-BdkERL6B.js +0 -1
- package/dist/client/assets/home-now-card-lLkv6nQs.js +0 -1
- package/dist/client/assets/hooks-BPLDD9yu.js +0 -2
- package/dist/client/assets/index-DGoLx89y.js +0 -1
- package/dist/client/assets/index-DITWsjFb.css +0 -1
- package/dist/client/assets/index-m6dFtY5f.js +0 -1
- package/dist/client/assets/index-pY8-Mz7y.js +0 -1
- package/dist/client/assets/keyboard-nav-BhZZ5HEq.js +0 -1
- package/dist/client/assets/left-B6eawimv.js +0 -1
- package/dist/client/assets/left-BL2uBHe0.js +0 -2
- package/dist/client/assets/left-BNJguPDG.js +0 -1
- package/dist/client/assets/left-BvCtvN0f.js +0 -1
- package/dist/client/assets/left-CfBb6bxM.js +0 -1
- package/dist/client/assets/left-DTrlBF0h.js +0 -2
- package/dist/client/assets/left-agents-DsOHgDCY.js +0 -1
- package/dist/client/assets/left-d4hlBBxY.js +0 -1
- package/dist/client/assets/left-default-BRCwoCJr.js +0 -1
- package/dist/client/assets/left-lanes-DNtoRzoV.js +0 -1
- package/dist/client/assets/left-mission-DsTu2X5Y.js +0 -1
- package/dist/client/assets/left-plan-CtySjsXC.js +0 -2
- package/dist/client/assets/library-CLpgWNJO.js +0 -1
- package/dist/client/assets/mission-control-D3ikEPND.css +0 -1
- package/dist/client/assets/openAgent-Bjt57GdM.js +0 -1
- package/dist/client/assets/paperclip-DL9BXPp2.js +0 -1
- package/dist/client/assets/profile-BqY5tesX.js +0 -1
- package/dist/client/assets/resolve-panes-1xeZMuaw.js +0 -1
- package/dist/client/assets/resolve-sidebar-context-PLr32WHN.js +0 -1
- package/dist/client/assets/right-1x7HzabC.js +0 -1
- package/dist/client/assets/right-CFzPUzlF.js +0 -1
- package/dist/client/assets/right-CRKyeJDk.js +0 -1
- package/dist/client/assets/right-CagzkLWg.js +0 -1
- package/dist/client/assets/right-CsV149pN.js +0 -1
- package/dist/client/assets/right-DITNyG2s.js +0 -1
- package/dist/client/assets/right-E3nNcLE3.js +0 -1
- package/dist/client/assets/right-eUQvSjd7.js +0 -1
- package/dist/client/assets/right-ozp4nM44.js +0 -1
- package/dist/client/assets/router-Dja9_ygK.js +0 -1
- package/dist/client/assets/session-table-sAVe44a4.js +0 -1
- package/dist/client/assets/system-surfaces-redesign-CD26LFc0.css +0 -1
- package/dist/client/assets/terminal-sessions-D5CIR2OL.js +0 -1
- package/dist/client/assets/use-reduced-motion-Cvk-HRKg.js +0 -1
- package/dist/client/assets/use-scout-dev-flags-BHvg3G2c.js +0 -1
- package/dist/client/assets/useContentSecondaryNav-ZfBNi3d4.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as r}from"./index-sUomXsrf.js";var o=r();export{o as r};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as e,r as n,z as no,A as ro,B as io,C as ao}from"./index-sUomXsrf.js";import{u as F,C as co,n as lo,a as uo,b as mo,o as ge,p as vt,s as po,i as ho,f as yt,j as fo}from"./Provider-tFc3jqZ4.js";import{resolveContentPane as go,resolveRightPane as xo,resolveLeftPane as bo}from"./resolve-panes-1xeZMuaw.js";import{S as vo}from"./ScoutSurface-DEQg_7Io.js";import{u as nt}from"./router-Dja9_ygK.js";import{a as $}from"./api-h5zurxmi.js";import{c as Ee}from"./clipboard-e3fSpeo7.js";import{u as yo}from"./ContextMenu-BlBQhpax.js";import{o as So,S as ko,V as jo,a as wo}from"./ScoutbotBroadcastChip-DJXuyn73.js";import{e as Co}from"./SettingsDrawer-C587L1i1.js";import{u as Xe,a as Pt,b as No}from"./content-BtIxSqVY.js";import{s as xe,e as To,S as St}from"./scoutbot-BTIErYHo.js";import{g as Eo,d as Ro,i as Oo,e as Ao,s as Io}from"./scout-voice-BZ4KqADJ.js";import{d as Po}from"./colors-BtO5_zlx.js";import{i as Mo,S as Mt,a as Lo}from"./runtime-picker-DOZpZOlt.js";import{d as zo,f as kt,n as ve}from"./time-Dhsh_2EG.js";import{S as _o}from"./BriefingDetailScreen-i54EtZKW.js";import{L as K}from"./loader-circle-lWOOKezu.js";import{P as Do}from"./plus-C9lTjsgd.js";import{H as Ho}from"./ScoutbotRealtimeVoiceCall-Bzyl0BCS.js";import{C as Qe}from"./chevron-down-BFai6ZfE.js";import{A as Bo}from"./ProjectsRail-DEDS-M1c.js";import{S as $o}from"./send-horizontal-DDwOgEs3.js";import{c as Vo}from"./createLucideIcon-DlxlBfLC.js";import{C as Uo}from"./copy-CwCAivnc.js";import{R as jt}from"./rocket-CriBwkHM.js";import{X as Fo}from"./x-0XjXwGqq.js";import{R as Wo}from"./refresh-cw-D8PFyhUa.js";import{S as Go,d as qo}from"./secondaryNavConfig-Drb7wPG4.js";import{V as wt}from"./fx-z37u1o2z.js";import{B as Yo}from"./bot-B_Uzf4_O.js";import{BrokerRight as Ko}from"./right-1x7HzabC.js";import{OpsRight as Jo}from"./inspector-panel-DhXd-YbT.js";import{M as Xo}from"./MeshCanvasMinimap-DEq-PkF0.js";import{u as Qo,T as Zo}from"./chunk-YOZR3KYS-BW85tiCr.js";import{u as es,a as ts,b as os,c as ss,d as ns,e as rs}from"./hooks-BPLDD9yu.js";import{T as is}from"./chunk-HRAB3GC3-CvwpNg-G.js";import"./sse-CVoGDiKW.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./DocumentFocusViewer-DU_9BHsD.js";import"./TextDocumentSurface-C-9EtYqt.js";/* empty css */import"./file-text-i3xTDUjJ.js";import"./chevron-right-CyUa1zXx.js";import"./code-xml-05TD3uOC.js";import"./arrow-left-WjQIN9J6.js";import"./keyboard-nav-BhZZ5HEq.js";import"./MessageComposerSuggestions-zAUUcLOv.js";import"./NewChatComposer-B5FnPyzS.js";import"./index-m6dFtY5f.js";import"./HarnessMark-Dm_qm1Ku.js";import"./conversation-model-C4yb6_FA.js";import"./NewChatOrigin--pHWUb4V.js";import"./agent-chat-Bfjd9y6c.js";import"./model-Co0zkMIc.js";import"./text-DsBWV_4k.js";import"./search-DCT_EvPr.js";import"./content-BE3uK0LB.js";import"./ActivityScreen-DnqqRSlS.js";import"./mentions-CY_wPZc5.js";import"./AgentDetailCard-DxxVkgT1.js";import"./AgentLiveActions-CZdAInEu.js";import"./terminal-takeover-X97KCSJk.js";import"./openContent-C6XO6kr5.js";import"./eye-So8tNNK6.js";import"./terminal-DXQISjZn.js";import"./EmptyState-CoL-QuUO.js";/* empty css */import"./voice-levels-Dcr3jglk.js";import"./terminal-sessions-D5CIR2OL.js";import"./left-BvCtvN0f.js";/* empty css */import"./AgentAvatar-CufDA4A-.js";import"./SpriteAvatar-CQs-jC-v.js";import"./agent-identity-xQHedtLl.js";import"./content-D0_EJ6nP.js";import"./AgentInfoScreen-CAQAxpAK.js";/* empty css */import"./BackToPicker-CkUmHuuo.js";import"./ObservedTopologyPanel-Dv6fbHzW.js";import"./AgentsScreen-BMXvuiA2.js";/* empty css */import"./AgentsSubnav-BTNjPYoA.js";import"./SecondaryNav-Bks0CO2h.js";import"./message-square-BD-4UUdc.js";import"./scroll-text-BIYf6g6N.js";import"./library-CLpgWNJO.js";/* empty css */import"./AgentSessions-Bkr0lyry.js";import"./agents-project-model-UYiamtrU.js";import"./profile-BqY5tesX.js";import"./context-budget-DX_fwUs3.js";import"./session-catalog-XhGxCtP-.js";import"./terminal-relay-B5Sma7fK.js";import"./ConversationScreen-Dz2d_Z_F.js";import"./ConversationComposer-BBNPa5S9.js";import"./message-markup-C8Nx04sP.js";import"./message-visibility-kJM8XcSG.js";import"./sessionRead-CvFz2RHv.js";import"./types-B0PlfpKc.js";/* empty css */import"./ConversationHeader-DXMT-YXv.js";import"./ConversationFeedRows-BuejHMCY.js";import"./ConversationPanels-DHCtilQF.js";import"./use-reduced-motion-Cvk-HRKg.js";import"./activity-WhBf3FXP.js";import"./message-circle-C5UZ6fO7.js";import"./tail-display-BdyoLvzY.js";import"./lane-edit-display-C_Aujldz.js";import"./tail-events-CTipUIli.js";import"./ConversationStatus-DSgdVofa.js";import"./conversation-icons-DohQL6GI.js";import"./SessionObserve-Dlx5vDaV.js";import"./bash-format-BRV5C6Gv.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-BzehBmdi.js";import"./lane-observe-DrhKkQ3A.js";import"./lane-ask-display-B6iCAVcd.js";import"./ObserveTextFlow-CBitljxi.js";import"./SessionObserveEvidence-ChBD1d4c.js";import"./wrench-pEVd8JnN.js";import"./external-link-CnjcXf32.js";import"./AgentDefinitionsWorkspace-FpEkb-tu.js";import"./project-overview-helpers-BQTc_Ous.js";import"./FileViewerPane-C9Ly01Ef.js";/* empty css */import"./agent-essentials-DyJiUGpZ.js";/* empty css *//* empty css */import"./right-DITNyG2s.js";import"./openAgent-Bjt57GdM.js";import"./TmuxPeek-Dz1gJ2pU.js";import"./ProjectsScreen-Cxk4CuYn.js";import"./ProjectsInbox-BWiXjGi7.js";import"./api-BkjHJfgJ.js";import"./ui-LM8pS8qE.js";import"./SessionRefScreen-D7TfPYPN.js";/* empty css */import"./AddProjectForm-BoVtelSP.js";import"./projects-inbox-DfVmGFFk.js";import"./model-IGCUEsMy.js";import"./cache-Dr0why2k.js";import"./arrow-up-right-CtTDrZJr.js";import"./ProjectAgentProfile-FiiIcB5R.js";import"./ProjectAgentProfileBar-B3IvVbqS.js";import"./ProjectsThreadAside-BF66ugT5.js";import"./content-CVR75_Uj.js";import"./BriefingsScreen-CBrHojlQ.js";/* empty css */import"./content-cyxWdgKQ.js";import"./BrokerScreen-CObCQvoy.js";import"./status-tone-BM_zuRy1.js";import"./broker-display-pp33bLsu.js";import"./BrokerMetadataPanel-opTLuZU6.js";import"./DispatchAftermath-BrreQifA.js";import"./follow-route-BvcGtBIL.js";import"./ShikiPane-I_OTW5NO.js";import"./arrow-down-DsD-dYj-.js";import"./check-BbgHJX8u.js";import"./sparkles-up7pVlX-.js";import"./paperclip-DL9BXPp2.js";import"./radio-DedMyP8J.js";import"./left-BL2uBHe0.js";import"./conversation-prefs-DNre-Lcx.js";import"./use-conversation-list-B1T6J_qE.js";import"./use-fleet-active-asks-DLofGhhK.js";import"./RailRow-BTlVAnHS.js";/* empty css */import"./content-DNmxpNhD.js";import"./MessagesScreen-BTQL0UcE.js";import"./right-CagzkLWg.js";import"./CodeScreen-BXqi72NK.js";import"./CodeDiffPane-CLOGjwul.js";import"./usePierreRuntime-DIVunfX0.js";/* empty css */import"./CodeProjectPicker-DTV8hR6A.js";/* empty css */import"./content-CLDWXf9Z.js";import"./FollowScreen--Q04xSSE.js";import"./content-CRr73E0r.js";import"./HarnessesScreen-Y54viPX8.js";import"./useContentSecondaryNav-ZfBNi3d4.js";import"./OpsSubnav-CoN8utF8.js";/* empty css */import"./left-DTrlBF0h.js";import"./operator-attention-BwSPeheT.js";import"./right-eUQvSjd7.js";import"./left-CfBb6bxM.js";import"./mesh-view-store-D14ihwkF.js";import"./mesh-buckets-CfAukILK.js";import"./FleetSearch-DlWTLl-v.js";import"./content-Czdp7_JQ.js";import"./MeshScreen-TgDtz-1l.js";import"./MeshCanvas-DIjlrMPU.js";import"./chunk-T65CQEWV-DI4NKdNq.js";import"./useAgentHoverCard-D5e8Qg1z.js";import"./local-agents-C7fDHLVC.js";/* empty css */import"./right-CsV149pN.js";import"./left-B6eawimv.js";import"./mesh-ops-Kn8pCtyJ.js";import"./use-mesh-ops-items-ByGZk8rU.js";import"./content-5irOghrY.js";import"./use-scout-dev-flags-BHvg3G2c.js";import"./right-CFzPUzlF.js";import"./left-BNJguPDG.js";import"./left-agents-DsOHgDCY.js";import"./left-default-BRCwoCJr.js";import"./left-lanes-DNtoRzoV.js";import"./agent-lanes-model-Bl6xfviL.js";import"./lane-roster-store-NE15Oe6M.js";import"./left-mission-DsTu2X5Y.js";import"./mission-control-store-xQHVQdm8.js";import"./MissionLeftAgentRow-CxlH3dON.js";import"./page-status-BymFEFai.js";import"./left-plan-CtySjsXC.js";import"./content-CFsPAihU.js";import"./OpsScreen-Bbo0W64T.js";/* empty css */import"./AgentLanesView-CxfbV8Kd.js";/* empty css */import"./observe-uJfIlIUV.js";import"./AgentFloorView-CycUn0Lv.js";/* empty css */import"./AgentLanesPreflight-KWfLcaNB.js";import"./AgentLaneChrome-BfVygkgL.js";import"./AgentLaneCard-DTUvE96I.js";/* empty css */import"./AgentLaneSummaryResize-CMgzYvAA.js";import"./agent-lane-card-model-BCIwPjEh.js";import"./agent-lane-preview-BtnfNyFR.js";import"./AgentLaneDetailSheet-CWs9wKWk.js";import"./SlidePanel-FCqT1zO3.js";import"./agent-lane-detail-Cw4QVAgH.js";import"./LaneTraceDetailSheet-CBf_aNZx.js";import"./LaneTraceEventFocus-DYvHfs_3.js";import"./MissionControlView-D59SPnAm.js";/* empty css */import"./MissionFocusOverlay-C7cPt6eU.js";import"./mission-control-model-C0fByIjm.js";import"./MissionLogPane-Ye3YlF9s.js";import"./OpsAgentsView-CoBfAigH.js";/* empty css */import"./DataTable-0DwuXyvW.js";/* empty css */import"./sliders-horizontal-B9Nj-Y4J.js";import"./PlanView-DYtt8H37.js";/* empty css */import"./AtopView-_OKDlZ1h.js";import"./TailView-C_MXVSum.js";import"./content-2u_eV3fX.js";import"./RepoDiffPageScreen-BRvaVYoC.js";import"./RepoDiffViewerLazy-C8UPk4oo.js";import"./ReposScreen-BBkJf8xT.js";/* empty css */import"./selection-bridge-CJOTyYQs.js";import"./right-C1sIsSHR.js";import"./content-B38YRDBu.js";import"./KnowledgeSearchScreen-DsdDz8wY.js";/* empty css */import"./clock-DviOalxA.js";import"./KnowledgeSearchInspector-DKashKoH.js";import"./content-8Z_0CwtD.js";import"./SessionsScreen-BlknOWAd.js";import"./RawSessionsTable-BsGVgZB3.js";import"./FlightObserveScreen-C-9S0nA5.js";/* empty css */import"./right-E3nNcLE3.js";import"./content-CKj5g5tu.js";import"./SettingsScreen-BIlYxv_a.js";import"./StatusPill-CbABggnQ.js";import"./AgentConfigurationScreen-CJqoMA0J.js";import"./server-CHZCp3cF.js";import"./VoicePermissionsPanel-MfICy9kk.js";import"./left-d4hlBBxY.js";import"./session-table-sAVe44a4.js";import"./Terminal-DwZyo8kA.js";/* empty css */import"./right-CRKyeJDk.js";import"./content-XpbI9uxd.js";import"./WorkDetailScreen-Cs7kdllj.js";import"./WorkFilesViewer-CF-nhtZ4.js";import"./right-ozp4nM44.js";import"./RealtimeVoiceScreen-B0Bem5Rc.js";import"./HomeHero-Cfsow7qL.js";import"./home-moving-signal-BdkERL6B.js";import"./home-live-action-B22u89j7.js";const as=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],cs=Vo("circle-check",as);function ls(){const{route:t,navigate:o,agents:s}=F();return e.jsx(vo,{children:go(t,o,s)})}const ds=new Set(["air-local","local","mini","node"]),us=new Set(["main","master","trunk"]);function ms(t){return t.replace(/```[\s\S]*?```/g," code omitted ").replace(/\*\*([^*\n]+)\*\*/g,"$1").replace(/(^|[\s(])\*([^\s*][^*\n]*?[^\s*]|[^\s*])\*(?=[\s)\].,!?;:]|$)/g,"$1$2").replace(/(^|[\s(])_([^\s_][^_\n]*?[^\s_]|[^\s_])_(?=[\s)\].,!?;:]|$)/g,"$1$2").replace(/^\s*[-*]\s+/gm,"").replace(/\bhttps?:\/\/[^\s)]+/gi,o=>ps(o)).replace(/\b(session|conversation|message|flight|invocation|work)(?:\s+(?:id|ref))?\s*[:#]?\s+([a-z0-9][a-z0-9._:-]{9,})\b/gi,(o,s,r)=>`${s.toLowerCase()} ending in ${Ze(r)}`).replace(/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi,o=>`ID ending in ${Ze(o)}`).replace(/@?([a-z][a-z0-9-]*(?:\.[a-z0-9][a-z0-9-]*){2,})\b/gi,(o,s)=>hs(o)?o:fs(s)).replace(/`([^`]+)`/g,(o,s)=>gs(s)).replace(/\s+/g," ").trim()}function ps(t){try{return new URL(t).hostname.replace(/^www\./,"").replace(/\./g," dot ")}catch{return"link"}}function hs(t){const o=t.replace(/^@/,"").toLowerCase();return/\.(com|app|dev|org|net|io|local)(?:\b|\/)/.test(o)&&!o.endsWith(".air-local")}function fs(t){const o=t.split(".").filter(Boolean);if(o.length<2)return t;const s=[...o];for(;s.length>1&&ds.has(s.at(-1).toLowerCase());)s.pop();const[r,...l]=s,a=l.filter(u=>!us.has(u.toLowerCase())).map(et).filter(Boolean);return[et(r),...a].filter(Boolean).join(", ")}function gs(t){return/^[a-z0-9][a-z0-9._:-]{12,}$/i.test(t)?`ID ending in ${Ze(t)}`:et(t)}function Ze(t){return(t.replace(/[^a-z0-9]/gi,"").slice(-4)||t.slice(-4)).split("").join(" ")}function et(t){return t.replace(/^@/,"").replace(/[_./:-]+/g," ").replace(/\s+/g," ").trim()}function rt(t){return t.handle??t.id}function xs(t,o){if(!o)return!0;const s=o.toLowerCase();return t.name.toLowerCase().includes(s)||rt(t).toLowerCase().includes(s)||t.id.toLowerCase().includes(s)}function bs({agents:t,query:o,excludeIds:s,maxResults:r=50}){const l=n.useMemo(()=>new Set(s??[]),[s]),a=n.useMemo(()=>t.filter(y=>!l.has(y.id)&&xs(y,o.trim())).slice(0,r),[t,l,o,r]),[u,d]=n.useState(0);n.useEffect(()=>{d(v=>a.length===0?0:Math.min(v,a.length-1))},[a]);const f=n.useCallback(v=>{d(y=>a.length===0?0:(y+v+a.length)%a.length)},[a.length]),b=n.useCallback(()=>d(0),[]);return{filtered:a,highlightedIndex:u,setHighlightedIndex:d,moveHighlight:f,resetHighlight:b}}function vs({agents:t,highlightedIndex:o,onSelect:s,onHover:r,emptyHint:l,pendingId:a,className:u,id:d}){return t.length===0?e.jsx("div",{className:`agent-autocomplete ${u??""}`,id:d,children:e.jsx("div",{className:"agent-autocomplete-empty",children:l??"No matches."})}):e.jsx("div",{className:`agent-autocomplete ${u??""}`,role:"listbox",id:d,children:t.map((f,b)=>{const v=rt(f),y=b===o;return e.jsxs("button",{type:"button",role:"option","aria-selected":y,className:`agent-autocomplete-item${y?" is-active":""}`,onMouseDown:S=>{S.preventDefault(),s(f)},onMouseEnter:()=>r?.(b),disabled:a===f.id,children:[e.jsx("div",{className:"agent-autocomplete-avatar",style:{background:Po(f.name)},children:f.name[0]?.toUpperCase()??"?"}),e.jsxs("div",{className:"agent-autocomplete-info",children:[e.jsx("span",{className:"agent-autocomplete-name",children:f.name}),e.jsxs("span",{className:"agent-autocomplete-handle",children:["@",v]})]})]},f.id)})})}const ys=/(^|\s)@([a-zA-Z0-9_.-]*)$/,Ne=4,Ss=254;function ks(t,o){if(o<=0)return null;const s=t.slice(0,o),r=ys.exec(s);if(!r)return null;r[1];const l=r[2]??"",a=s.length-l.length-1;return a<0?null:(t.slice(o,o+1),{start:a,end:o,query:l})}const js=["boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","tabSize","whiteSpace","wordWrap","wordBreak"];function ws(t,o){const s=document.createElement("div");document.body.appendChild(s);const r=s.style,l=window.getComputedStyle(t);r.position="absolute",r.visibility="hidden",r.whiteSpace="pre-wrap",r.wordWrap="break-word",r.top="0",r.left="-9999px";for(const b of js)r[b]=l[b];s.textContent=t.value.slice(0,o);const a=document.createElement("span");a.textContent=t.value.slice(o)||".",s.appendChild(a);const u=a.offsetTop,d=a.offsetLeft,f=parseInt(l.lineHeight,10)||a.offsetHeight;return document.body.removeChild(s),{top:u,left:d,height:f}}const Cs=n.forwardRef(function({agents:o,excludeIds:s,value:r,onChange:l,onSubmit:a,placeholder:u,rows:d=1,disabled:f,submitOnEnter:b=!1,className:v,textareaClassName:y,emptyHint:S,onMention:k},T){const j=n.useRef(null),I=n.useRef(null),[N,x]=n.useState(null),[h,C]=n.useState(null);n.useImperativeHandle(T,()=>({focus:()=>j.current?.focus(),blur:()=>j.current?.blur(),get textarea(){return j.current}}),[]);const O=N?.query??"",{filtered:P,highlightedIndex:L,setHighlightedIndex:V,moveHighlight:z}=bs({agents:o,query:O,excludeIds:s}),W=n.useCallback(()=>{const m=j.current;if(!m)return;const g=window.getComputedStyle(m),E=parseFloat(g.minHeight)||0,R=parseFloat(g.maxHeight);m.style.height="0px";const M=Math.max(m.scrollHeight,E),A=Number.isFinite(R)&&R>0?Math.min(M,R):M;m.style.height=`${A}px`,m.style.overflowY=M>A?"auto":"hidden"},[]);n.useLayoutEffect(()=>{W()},[W,r]);const J=n.useCallback(()=>{const m=j.current;if(!m)return;const g=ks(m.value,m.selectionStart??0);x(g)},[]);n.useLayoutEffect(()=>{const m=j.current;if(!m||!N){C(null);return}const{top:g,left:E,height:R}=ws(m,N.start),M=m.getBoundingClientRect(),A=m.parentElement?.getBoundingClientRect(),_=A?M.top-A.top:0,Z=A?M.left-A.left:0,ee=I.current?.offsetHeight||Ss,q=window.visualViewport,Me=q?.offsetTop??0,se=Me+(q?.height??window.innerHeight),le=M.top+g-m.scrollTop,D=le+R,X=se-D-Ne,de=le-Me-Ne,Le=X<ee&&de>X;C({top:Le?_+g-m.scrollTop-ee-Ne:_+g+R-m.scrollTop+Ne,left:Z+E-m.scrollLeft})},[N,r,P.length]);const G=n.useCallback(m=>{const g=j.current,E=N;if(!g||!E)return;const R=rt(m),M=r.slice(0,E.start),A=r.slice(E.end),_=`@${R} `,Z=`${M}${_}${A}`;l(Z),k?.(m),x(null);const ee=E.start+_.length;queueMicrotask(()=>{const q=j.current;q&&(q.focus(),q.setSelectionRange(ee,ee))})},[N,r,l,k]),ce=m=>{if(Mo(m)||b&&m.key==="Enter"&&!m.shiftKey&&!m.nativeEvent?.isComposing&&!(N&&P.length>0)){m.preventDefault(),a?.();return}if(N&&P.length>0){if(m.key==="ArrowDown"){m.preventDefault(),z(1);return}if(m.key==="ArrowUp"){m.preventDefault(),z(-1);return}if(m.key==="Enter"||m.key==="Tab"){if(m.key==="Enter"&&m.shiftKey)return;const E=P[L];if(E){m.preventDefault(),G(E);return}}if(m.key==="Escape"){m.preventDefault(),x(null);return}}};return e.jsxs("div",{className:`agent-mention-wrap ${v??""}`,children:[e.jsx("textarea",{ref:j,className:y,value:r,rows:d,placeholder:u,disabled:f,onChange:m=>{l(m.target.value),W(),queueMicrotask(J)},onKeyUp:J,onClick:J,onBlur:()=>x(null),onKeyDown:ce,"aria-autocomplete":"list"}),N&&e.jsx("div",{ref:I,className:"agent-mention-popover",style:{top:`${h?.top??0}px`,left:`${h?.left??0}px`,visibility:h?void 0:"hidden"},children:e.jsx(vs,{agents:P,highlightedIndex:L,onSelect:G,onHover:V,emptyHint:S??"No matches."})})]})});function Ns({state:t,chatExpanded:o,onToggleExpanded:s,sessionPickerOpen:r,onToggleSessionPicker:l,onStartNewChat:a,startingNewChat:u,onSwitchSession:d,switchingSessionId:f,sending:b,briefing:v,pendingAsk:y,onArchiveSession:S,archivingSessionId:k,onAssistantContextMenu:T,suggestedPrompts:j,onSelectPrompt:I}){const x=t.session.messages,h=o?x:x.slice(-4),C=o?0:Math.max(0,x.length-h.length),O=x.length,P=t.sessions.length,L=t.retention,V=x.length===0&&!y&&!b&&!v,z=u||b||v||!!f||!!k,W=t.session.createdAt?zo(t.session.createdAt):null,J=V?"Scout conversation":t.session.title&&t.session.title!=="New Scout Session"?t.session.title:`Session ${t.session.id.slice(0,8)}`,G=n.useRef(null),ce=x[x.length-1]?.id??null,m=x[x.length-1]?.body??"";return n.useEffect(()=>{const g=G.current;g&&(g.scrollTop=g.scrollHeight)},[ce,m,y,b,o,t.session.id]),e.jsxs("div",{className:"flex h-full min-h-0 flex-1 flex-col overflow-hidden rounded border border-[var(--scout-chrome-border-soft)] bg-black/10 font-mono text-xs text-[var(--scout-chrome-ink-faint)]",children:[e.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-2 border-b border-[var(--scout-chrome-border-soft)] px-2.5 py-1.5",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[e.jsx("span",{className:"min-w-0 truncate text-[var(--scout-chrome-ink)]",title:t.session.id,children:J}),W&&!V&&e.jsxs("span",{className:"shrink-0 text-[var(--scout-chrome-ink-ghost)]",children:["· ",W]}),!V&&e.jsxs("span",{className:"shrink-0 text-[var(--scout-chrome-ink-ghost)]",children:["· ",O," msg",O===1?"":"s"]})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[e.jsxs("button",{type:"button",title:"Start a new chat (keeps this chat in Chats)","aria-label":"Start new chat",onClick:a,disabled:z,className:"flex items-center gap-1 rounded border border-lime-300/30 bg-lime-300/[0.06] px-1.5 py-0.5 text-2xs uppercase tracking-[0.1em] text-lime-100 transition-colors hover:border-lime-300/50 hover:bg-lime-300/10 disabled:cursor-not-allowed disabled:opacity-40",children:[u?e.jsx(K,{size:10,className:"animate-spin"}):e.jsx(Do,{size:10}),e.jsx("span",{children:u?"Starting":"New chat"})]}),e.jsxs("button",{type:"button",title:`Switch chat (${P} total)`,"aria-label":"Switch chat",onClick:l,className:`flex items-center gap-1 rounded border px-1.5 py-0.5 text-2xs uppercase tracking-[0.1em] transition-colors ${r?"border-lime-300/40 bg-lime-300/10 text-lime-100":"border-[var(--scout-chrome-border-soft)] text-[var(--scout-chrome-ink-faint)] hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink)]"}`,children:[e.jsx(Ho,{size:10}),e.jsx("span",{children:"Chats"}),e.jsx("span",{className:"text-[var(--scout-chrome-ink-ghost)]",children:P}),e.jsx(Qe,{size:9,className:r?"rotate-180 transition-transform":"transition-transform"})]}),O>4&&e.jsxs("button",{type:"button",title:o?"Collapse chat":"View full session","aria-label":o?"Collapse chat":"View full session",onClick:s,className:"flex items-center gap-1 rounded border border-[var(--scout-chrome-border-soft)] px-1.5 py-0.5 text-2xs uppercase tracking-[0.1em] text-[var(--scout-chrome-ink-faint)] transition-colors hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink)]",children:[e.jsx("span",{children:o?"Collapse":"Full"}),o?e.jsx(co,{size:9}):e.jsx(Qe,{size:9})]})]})]}),r&&e.jsxs("div",{className:"shrink-0 border-b border-[var(--scout-chrome-border-soft)] px-2 py-1.5",children:[e.jsxs("div",{className:"mb-1 flex items-center justify-between gap-2 px-0.5 text-2xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-ghost)]",children:[e.jsx("span",{children:"Recent chats"}),L&&L.archivedCount>0&&e.jsxs("span",{children:[L.archivedCount," archived"]})]}),e.jsx("div",{className:"flex max-h-40 flex-col gap-0.5 overflow-y-auto pr-0.5",children:t.sessions.map(g=>{const E=g.id===t.session.id,R=f===g.id,M=k===g.id,A=kt(g.updatedAt)||"unknown",_=g.title&&g.title!=="New Scout Session"?g.title:`Session ${g.id.slice(0,8)}`;return e.jsxs("div",{className:`flex items-center gap-2 rounded border px-2 py-1 text-left transition-colors ${E?"border-lime-300/40 bg-lime-300/[0.06] text-lime-100":"border-transparent text-[var(--scout-chrome-ink-faint)] hover:border-[var(--scout-chrome-border-soft)] hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink)]"}`,children:[e.jsxs("button",{type:"button",onClick:()=>{E||d(g.id)},disabled:E||!!f||!!k,className:"flex min-w-0 flex-1 items-center gap-2 text-left disabled:cursor-not-allowed disabled:opacity-40",children:[e.jsx("span",{className:`h-1.5 w-1.5 shrink-0 rounded-full ${E?"bg-lime-300":"bg-[var(--scout-chrome-ink-ghost)]"}`}),e.jsx("span",{className:"min-w-0 flex-1 truncate text-xs text-[var(--scout-chrome-ink)]",children:_}),e.jsxs("span",{className:"shrink-0 text-2xs text-[var(--scout-chrome-ink-ghost)]",children:[g.messageCount," msg"]}),e.jsx("span",{className:"shrink-0 text-2xs text-[var(--scout-chrome-ink-ghost)]",children:A}),R&&e.jsx(K,{size:10,className:"shrink-0 animate-spin text-lime-200"})]}),e.jsx("button",{type:"button",title:"Archive chat","aria-label":`Archive chat ${_}`,onClick:()=>S(g.id),disabled:!!f||!!k,className:"flex h-5 w-5 shrink-0 items-center justify-center rounded border border-transparent text-[var(--scout-chrome-ink-ghost)] transition-colors hover:border-[var(--scout-chrome-border-soft)] hover:bg-black/20 hover:text-[var(--scout-chrome-ink)] disabled:cursor-not-allowed disabled:opacity-30",children:M?e.jsx(K,{size:10,className:"animate-spin"}):e.jsx(Bo,{size:10})})]},g.id)})})]}),e.jsxs("div",{ref:G,className:"flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto px-2.5 py-2",children:[C>0&&e.jsxs("button",{type:"button",onClick:s,className:"self-start text-2xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-ghost)] hover:text-[var(--scout-chrome-ink)]",children:["↑ ",C," earlier message",C===1?"":"s"]}),V&&e.jsx(Ts,{suggestedPrompts:j,onSelectPrompt:I}),h.map((g,E)=>{const R=Os(h[E-1],g),M=As(g.createdAt);return e.jsxs("div",{className:"flex flex-col gap-1",children:[R&&e.jsx("div",{className:"self-center rounded-full bg-white/[0.06] px-2.5 py-0.5 font-mono text-2xs font-medium text-[var(--scout-chrome-ink-ghost)]",title:kt(g.createdAt),"aria-label":M,children:M}),e.jsx(Ct,{role:g.role,body:g.body,onContextMenu:g.role==="assistant"&&T?A=>T(A,g.body):void 0})]},g.id)}),y&&e.jsx(Ct,{role:"user",body:y,pending:!0}),b&&!y&&e.jsx("p",{className:"text-[var(--scout-chrome-ink-ghost)]",children:"Reading the control plane…"}),v&&e.jsxs("div",{className:"flex items-center gap-2 rounded border border-lime-300/30 bg-lime-300/[0.06] px-2.5 py-2 font-mono text-xs leading-relaxed text-lime-100",children:[e.jsx(K,{size:12,className:"shrink-0 animate-spin text-lime-300","aria-hidden":"true"}),e.jsxs("div",{className:"min-w-0 flex flex-col gap-0.5",children:[e.jsx("span",{className:"text-xs uppercase tracking-[0.14em] text-lime-300",children:"Briefing"}),e.jsx("span",{className:"text-[var(--scout-chrome-ink)]",children:"Codex is reviewing the control-plane snapshot. Voice will pick up when it lands."})]})]})]})]})}function Ts({suggestedPrompts:t=[],onSelectPrompt:o}){return e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col justify-start gap-2 px-1 py-2.5",children:[t.length>0?e.jsx("div",{className:"grid gap-1",children:t.slice(0,3).map(s=>e.jsx("button",{type:"button",onClick:()=>o?.(s),className:"min-h-7 truncate rounded border border-[var(--scout-chrome-border-soft)] bg-black/10 px-2.5 text-left font-mono text-xs leading-snug text-[var(--scout-chrome-ink-faint)] transition-colors hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink)]",children:s},s))}):null,e.jsxs("div",{className:"max-w-[30rem]",children:[e.jsx("div",{className:"font-sans text-lg font-semibold leading-tight text-[var(--scout-chrome-ink)]",children:"Start with a question."}),e.jsx("p",{className:"mt-0.5 font-sans text-xs leading-snug text-[var(--scout-chrome-ink-faint)]",children:"Paste a failed result or ask about what you are seeing. Scout replies when you ask."})]})]})}function Es({agents:t,draft:o,onDraftChange:s,onSubmit:r,sending:l,recording:a,voiceLabel:u,voiceBusy:d,voiceUnavailable:f,voiceHeld:b=!1,onMicClick:v,prominent:y=!1,autoFocus:S,focusSignal:k}){const T=n.useRef(null),j=n.useCallback(()=>{const h=T.current;h&&(h.textarea?h.textarea.focus({preventScroll:!0}):h.focus())},[]);n.useEffect(()=>{S&&j()},[S,j]),n.useEffect(()=>{k&&j()},[k,j]);let I="Start talking";f&&(I="Set up Scout voice"),a&&(I="Stop talking"),(d||b)&&(I=u);const N=d||a||b,x=["w-full resize-none rounded border font-mono text-sm leading-relaxed text-[var(--scout-chrome-ink)] placeholder:text-[var(--scout-chrome-ink-ghost)]",y?"min-h-[88px] max-h-[170px] border-lime-300/30 bg-black/25 px-3 py-2 text-md":"min-h-[44px] max-h-[124px] border-[var(--scout-chrome-border-soft)] bg-black/20 px-2 py-1.5"].join(" ");return e.jsxs("form",{className:"flex flex-col gap-1.5",onSubmit:h=>{h.preventDefault(),r()},children:[e.jsx(Cs,{ref:T,agents:t,value:o,onChange:s,onSubmit:()=>{o.trim()&&!l&&r()},placeholder:b?"Type while live voice is on…":y?"Ask Scout about what you are seeing…":"Ask Scout…",rows:y?4:2,disabled:l,submitOnEnter:!0,className:"min-w-0",textareaClassName:x}),e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("button",{type:"button",title:I,"aria-label":I,onClick:v,disabled:l||d||b,className:`flex h-8 items-center justify-center rounded border transition-colors disabled:cursor-not-allowed disabled:opacity-40 ${a?"border-lime-300/50 bg-lime-300/10 text-lime-200":b?"border-lime-300/25 bg-lime-300/[0.05] text-lime-100/70":"border-[var(--scout-chrome-border-soft)] text-[var(--scout-chrome-ink-faint)] hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink)]"} ${N?"gap-1.5 px-3 font-mono text-xs uppercase tracking-[0.12em]":"w-9"}`,children:[d?e.jsx(K,{size:13,className:"animate-spin"}):a?e.jsx(Mt,{size:12,className:"fill-current"}):e.jsx(Lo,{size:13}),N&&e.jsx("span",{className:"truncate",children:u})]}),e.jsx("button",{type:"submit",title:"Send","aria-label":"Send",disabled:!o.trim()||l,className:"flex h-8 w-9 items-center justify-center rounded bg-lime-300/90 text-black transition-opacity disabled:cursor-not-allowed disabled:opacity-40",children:l?e.jsx(K,{size:13,className:"animate-spin"}):e.jsx($o,{size:13})})]})]})}function Ct({role:t,body:o,pending:s=!1,onContextMenu:r}){const l=t==="user",a=l?o:xe(o),[u,d]=n.useState(!1),f=n.useCallback(()=>{Ee(a).then(()=>{d(!0),window.setTimeout(()=>d(!1),1200)}).catch(()=>{})},[a]);return e.jsxs("div",{className:"group flex flex-col gap-0.5",onContextMenu:r,children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("span",{className:`text-2xs uppercase tracking-[0.12em] ${l?"text-[var(--scout-chrome-ink-ghost)]":"text-lime-300"}`,children:[l?"You":"Reply",s&&" · sending"]}),e.jsx("button",{type:"button",title:u?"Copied":"Copy message","aria-label":u?"Copied message":"Copy message",disabled:s||!a.trim(),onClick:f,className:"flex h-5 w-5 shrink-0 items-center justify-center rounded border border-[var(--scout-chrome-border-soft)] text-[var(--scout-chrome-ink-ghost)] opacity-70 transition hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink)] disabled:cursor-not-allowed disabled:opacity-20 group-hover:opacity-100",children:u?e.jsx(cs,{size:11}):e.jsx(Uo,{size:11})})]}),l?e.jsx("p",{className:`whitespace-pre-wrap break-words text-sm leading-relaxed text-[var(--scout-chrome-ink)] ${s?"opacity-60":""}`,children:a}):e.jsx("div",{className:s?"opacity-60":"",children:e.jsx(_o,{text:a})})]})}const Rs=5*6e4;function Os(t,o){if(!t||!tt(t.createdAt,o.createdAt))return!0;const s=ve(t.createdAt),r=ve(o.createdAt);return s===null||r===null?!0:Math.abs(r-s)>=Rs}function tt(t,o){const s=ve(t),r=ve(o);if(s===null||r===null)return!1;const l=new Date(s),a=new Date(r);return l.getFullYear()===a.getFullYear()&&l.getMonth()===a.getMonth()&&l.getDate()===a.getDate()}function As(t){const o=ve(t);if(o===null)return"";const s=new Date(o),r=new Date,l=new Date(r);l.setDate(r.getDate()-1);const a=s.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"});return tt(o,r.getTime())?`Today ${a}`:tt(o,l.getTime())?`Yesterday ${a}`:s.getFullYear()===r.getFullYear()?`${s.toLocaleDateString([],{month:"short",day:"numeric"})} ${a}`:`${s.toLocaleDateString([],{month:"short",day:"numeric",year:"numeric"})} ${a}`}function Nt({icon:t,title:o,onClick:s,disabled:r,active:l,badge:a}){return e.jsxs("button",{type:"button",title:o,"aria-label":o,onClick:s,disabled:r,className:`flex shrink-0 items-center gap-1 rounded border p-1 text-xs transition-colors disabled:cursor-not-allowed disabled:opacity-40 ${l?"border-lime-300/50 bg-lime-300/10 text-lime-200":"border-[var(--scout-chrome-border-soft)] text-[var(--scout-chrome-ink-faint)] hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink)]"}`,children:[t,a&&e.jsx("span",{className:"font-mono text-3xs tracking-tight",children:a})]})}function Is({issue:t,probeState:o,onLaunch:s,onRetry:r,onSettings:l,onDismiss:a}){const u=o==="probing"||o==="launching";return e.jsxs("div",{className:"rounded border border-[var(--scout-chrome-border-soft)] bg-black/15 px-2.5 py-2 font-mono text-xs text-[var(--scout-chrome-ink)]",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(jt,{size:13,className:"mt-0.5 shrink-0 text-[var(--scout-chrome-ink-faint)]"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"uppercase tracking-[0.14em] text-[var(--scout-chrome-ink-faint)]",children:"Scout Voice"}),e.jsx("p",{className:"mt-1 leading-relaxed text-[var(--scout-chrome-ink-ghost)]",children:"Open Scout Menu to use speech."}),t&&e.jsx("p",{className:"mt-2 break-words leading-relaxed text-[var(--scout-chrome-ink-ghost)]",children:t})]}),a?e.jsx("button",{type:"button",title:"Hide voice setup","aria-label":"Hide voice setup",onClick:a,className:"shrink-0 rounded border border-transparent p-1 text-[var(--scout-chrome-ink-ghost)] transition-colors hover:border-[var(--scout-chrome-border-soft)] hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink)]",children:e.jsx(Fo,{size:11})}):null]}),e.jsxs("div",{className:"mt-2 grid grid-cols-3 gap-1.5",children:[e.jsx(qe,{icon:o==="launching"?e.jsx(K,{size:12,className:"animate-spin"}):e.jsx(jt,{size:12}),label:o==="launching"?"Opening":"Open",onClick:s,disabled:o==="probing",title:"Open Scout services"}),e.jsx(qe,{icon:o==="probing"?e.jsx(K,{size:12,className:"animate-spin"}):e.jsx(Wo,{size:12}),label:"Retry",onClick:r,disabled:u,title:"Check Scout voice again"}),e.jsx(qe,{icon:e.jsx(Go,{size:12}),label:"Voice",onClick:l,disabled:o==="probing",title:"Open Scoutbot voice settings"})]})]})}function qe({icon:t,label:o,onClick:s,disabled:r,title:l}){return e.jsxs("button",{type:"button",title:l,onClick:s,disabled:r,className:"flex min-h-7 items-center justify-center gap-1.5 rounded border border-[var(--scout-chrome-border-soft)] px-2 text-2xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-faint)] transition-colors hover:bg-[var(--scout-chrome-hover)] hover:text-[var(--scout-chrome-ink)] disabled:cursor-not-allowed disabled:opacity-45",children:[t,o]})}function Ps({voicePresetId:t,onVoicePresetId:o,voiceDefaults:s,modelDraft:r,onModelDraft:l,promptDraft:a,onPromptDraft:u,configLoading:d,configSaving:f,configError:b,configStatus:v,onSave:y,onReload:S}){return e.jsx("div",{className:"rounded border border-[var(--scout-chrome-border-soft)] bg-black/10 p-3",children:e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("label",{className:"flex flex-col gap-1 font-mono text-xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-faint)]",children:["Voice FX",e.jsx("select",{value:t,onChange:k=>o(k.target.value),className:"rounded border border-[var(--scout-chrome-border-soft)] bg-black/20 px-2 py-1.5 font-mono text-sm normal-case tracking-normal text-[var(--scout-chrome-ink)]",children:wt.map(k=>e.jsxs("option",{value:k.id,children:[k.label," — ",k.family]},k.id))}),e.jsx("span",{className:"font-mono text-2xs normal-case leading-relaxed tracking-normal text-[var(--scout-chrome-ink-ghost)]",children:wt.find(k=>k.id===t)?.description??"Custom voice mood for spoken replies."})]}),e.jsxs("div",{className:"flex flex-col gap-1 font-mono text-xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-faint)]",children:["Scout Voice",e.jsx("div",{className:"rounded border border-[var(--scout-chrome-border-soft)] bg-black/20 px-2 py-1.5 font-mono text-sm normal-case tracking-normal text-[var(--scout-chrome-ink)]",children:s?`${s.modelId}${s.voiceId?` / ${s.voiceId}`:""}`:"Unavailable"})]}),e.jsxs("label",{className:"flex flex-col gap-1 font-mono text-xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-faint)]",children:["Preferred model",e.jsx("input",{value:r,onChange:k=>l(k.target.value),placeholder:"gpt-4.1-mini",className:"rounded border border-[var(--scout-chrome-border-soft)] bg-black/20 px-2 py-1.5 font-mono text-sm normal-case tracking-normal text-[var(--scout-chrome-ink)] placeholder:text-[var(--scout-chrome-ink-ghost)]",disabled:d||f})]}),e.jsxs("label",{className:"flex flex-col gap-1 font-mono text-xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-faint)]",children:["System Prompt",e.jsx("textarea",{value:a,onChange:k=>u(k.target.value),rows:6,className:"w-full resize-y rounded border border-[var(--scout-chrome-border-soft)] bg-black/20 px-2 py-1.5 font-mono text-xs normal-case leading-relaxed tracking-normal text-[var(--scout-chrome-ink)]",disabled:d||f})]}),b&&e.jsx("div",{className:"font-mono text-xs leading-relaxed text-red-300",children:b}),v&&e.jsx("div",{className:"font-mono text-xs leading-relaxed text-lime-200",children:v}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{type:"button",onClick:y,disabled:d||f||!a.trim(),className:"flex items-center justify-center gap-2 rounded bg-lime-300/90 px-2.5 py-2 font-mono text-xs font-bold uppercase tracking-[0.12em] text-black transition-opacity disabled:cursor-not-allowed disabled:opacity-40",children:[(d||f)&&e.jsx(K,{size:13,className:"animate-spin"}),f?"Saving":"Save"]}),e.jsx("button",{type:"button",onClick:S,disabled:d||f,className:"rounded border border-[var(--scout-chrome-border-soft)] px-2.5 py-2 font-mono text-xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-faint)] hover:bg-[var(--scout-chrome-hover)] disabled:cursor-not-allowed disabled:opacity-40",children:"Reload"})]})]})})}const Ms="chill-dispatcher",Ls=6e4,zs=2500,_s=1.2,Ds={lowCutHz:160,highCutHz:5200,bandQ:.35,saturationAmount:.035,bitcrushAmount:0,hissGain:0,hissCutoffHz:1800,presencePeakDb:1.5,presenceCenterHz:1500,presenceQ:.65,compressorThresholdDb:-15,compressorRatio:2.2,clickEnabled:!0,clickGain:.24,clickDurationMs:45,squelchTailEnabled:!0,squelchTailGain:.018,squelchTailDurationMs:95,outputGain:1,wetMix:.38};function Hs(t){const o=Math.min(1,t/8);return{saturationAmount:.035+o*.025,presencePeakDb:1.5+o*1.5}}function Bs(t,o){return{...t==="chill-dispatcher"?Ds:{},...Hs(o)}}function Lt(t,o,s){return new Promise((r,l)=>{const a=window.setTimeout(()=>l(new Error(s)),o);t.then(r,l).finally(()=>window.clearTimeout(a))})}async function Tt(t,o={}){!t.sessionId&&!o.allowCurrentSession||await Lt(t.cancel(),zs,"Timed out releasing Scout voice session.").catch(()=>{})}function $s(t){const o=t instanceof Error?t.message:String(t);return/session_cancelled|was cancelled|cancelled/i.test(o)}const Et=new RegExp("(?:^|(?<=[\\s(`'\"<>]))(?:~\\/|\\/(?:Users|home|opt|var|etc|tmp|private)\\/)[^\\s)`'\"<>]+\\.[A-Za-z0-9]{1,8}\\b","g");function Vs(t){const o=[],s=new Set;Et.lastIndex=0;let r;for(;(r=Et.exec(t))!==null;)s.has(r[0])||(s.add(r[0]),o.push(r[0]));return o}function Rt(t){const o=t.split("/").filter(Boolean);return o.length<=2?t:`…/${o.slice(-2).join("/")}`}function Us(){return{requesterName:"OpenScout",productName:"Scout Voice",headline:"Turn on local voice",body:"Scout voice handles local speech capture and spoken replies. Start Scout services, then return here to talk with your workspace.",actionLabel:"Return to OpenScout",logo:{url:new URL("/openscout-icon.png",window.location.href).toString(),symbolName:"sparkles"}}}const Fs=["Explain what went wrong here.","Help me rewrite this message.","What should I try next?"];function Ot({height:t,forceExpanded:o=!1,fill:s=!1}={}){const{applyScoutbotUiAction:r,agents:l,route:a,onlineCount:u}=F(),d=lo(),f=nt(uo,!1),b=mo(),v=f&&(b.state==="connecting"||b.state==="live"),[y,S]=Xe("openscout.scoutbot.collapsed",!0),[k,T]=n.useState(""),[j,I]=n.useState(!1),[N,x]=n.useState(null),[h,C]=n.useState(null),[O,P]=n.useState(null),[L,V]=n.useState("idle"),[z,W]=Xe("openscout.scoutbot.voiceReplies",!1),[J]=Pt("openscout.scoutbot.voiceSpeed",_s),[G,ce]=No("openscout.scoutbot.voicePresetId",Ms),[m,g]=n.useState(!1),[E,R]=n.useState(null),[M,A]=n.useState(""),[_,Z]=n.useState(!1),[ee,q]=n.useState(null),[Me,se]=n.useState(null),[le,D]=n.useState(null),[X,de]=n.useState(!1),[Le,ze]=n.useState(!1),[Y,ne]=n.useState(null),[ue,it]=n.useState(!1),[_e,at]=n.useState(null),[Dt,ct]=n.useState(!1),[Ht,lt]=n.useState(!1),[Bt,Se]=n.useState(null),[$t,De]=n.useState(null),[He,Be]=n.useState(""),[$e,Ve]=n.useState(""),[Vt,dt]=n.useState(null),[Ut,re]=n.useState(!1),[Ft,ie]=n.useState(0),[Wt,ke]=n.useState(!1),[Ue,ut]=n.useState(null),je=n.useRef(Eo()),te=n.useRef(null),me=n.useRef(null),pe=n.useRef(null),mt=n.useRef(z);mt.current=z;const B=n.useCallback(()=>{pe.current?.stop(),pe.current=null,Z(!1)},[]),we=n.useCallback(i=>{if(!i)return;B();const c=Ro(ms(i),{speed:J,presetId:G,params:Bs(G,u)});pe.current=c,Z(!0),c.promise.catch(p=>{Oo(p)||x(p instanceof Error?p.message:"Scout voice speech failed.")}).finally(()=>{pe.current===c&&(pe.current=null,Z(!1))})},[B,J,u,G]),pt=n.useCallback(i=>{mt.current&&we(i)},[we]),ht=n.useCallback(i=>{we(xe(i))},[we]),{openFilePreview:ft}=F(),gt=yo(),Gt=n.useCallback((i,c)=>{const p=window.getSelection()?.toString().trim(),w=xe(c),H=Vs(w),U=[];if(p&&(U.push({kind:"action",label:"Copy selection",shortcut:"⌘C",onSelect:()=>{Ee(p)}}),U.push({kind:"separator"})),U.push({kind:"action",label:"Copy message",onSelect:()=>{Ee(w)}}),H.length>0){U.push({kind:"separator"});for(const Q of H.slice(0,5)){const Ge=Rt(Q);U.push({kind:"action",label:`Preview ${Ge}`,onSelect:()=>ft(Q)})}for(const Q of H.slice(0,5)){const Ge=Rt(Q);U.push({kind:"action",label:`Open ${Ge} in OS`,onSelect:()=>{$("/api/file/reveal",{method:"POST",body:JSON.stringify({path:Q})}).catch(()=>{})}})}U.push({kind:"action",label:H.length===1?"Copy path":"Copy first path",onSelect:()=>{Ee(H[0])}})}U.push({kind:"separator"}),U.push({kind:"action",label:_?"Say again (stop current)":"Say",onSelect:()=>ht(c)}),gt(i,U)},[ft,ht,gt,_]);n.useEffect(()=>()=>{B()},[B]);const qt=Fs,ae=n.useCallback(i=>{const c=[...i.messages].reverse().find(w=>w.role==="user"),p=[...i.messages].reverse().find(w=>w.role==="assistant");q(c?.body??null),se(p?xe(p.body):null)},[]),he=n.useCallback(async()=>{try{const i=await $("/api/scoutbot/session");ne(i),ae(i.session)}catch{ne(null)}},[ae]);n.useEffect(()=>{he()},[he]);const Fe=n.useCallback(async()=>{ct(!0),Se(null);try{const i=await $("/api/scoutbot/config");Be(i.model),Ve(i.systemPrompt),De(null)}catch(i){Se(i instanceof Error?i.message:"Could not load settings.")}finally{ct(!1)}},[]);n.useEffect(()=>{X&&Fe()},[Fe,X]),n.useEffect(()=>{if(!X)return;let i=!1;return $("/api/voice/defaults").then(c=>{i||dt(c)}).catch(()=>{i||dt(null)}),()=>{i=!0}},[X]);const Yt=n.useCallback(async()=>{lt(!0),Se(null),De(null);try{const i=await $("/api/scoutbot/config",{method:"POST",body:JSON.stringify({model:He,systemPrompt:$e})});Be(i.config.model),Ve(i.config.systemPrompt),De("Saved")}catch(i){Se(i instanceof Error?i.message:"Could not save settings.")}finally{lt(!1)}},[He,$e]),Kt=n.useCallback(async i=>{if(!(!i||Ue)){ut(i),x(null),B();try{const c=await $("/api/scoutbot/session/switch",{method:"POST",body:JSON.stringify({id:i})});ne(c),ae(c.session),ke(!1),re(!1),window.dispatchEvent(new CustomEvent(ge,{detail:{id:c.session.id}}))}catch(c){x(c instanceof Error?c.message:"Could not switch session.")}finally{ut(null)}}},[B,Ue,ae]),We=n.useCallback(async()=>{if(!(ue||j)){if(Y?.session.messages.length===0){T(""),x(null),re(!1),ke(!1),D("New chat ready"),ie(i=>i+1);return}it(!0),x(null),D("Starting new chat"),B();try{const i=await $("/api/scoutbot/session/reset",{method:"POST"});ne(i),T(""),q(null),se(null),re(!1),ke(!1),D("New chat ready"),ie(c=>c+1),window.dispatchEvent(new CustomEvent(ge,{detail:{id:i.session.id}}))}catch(i){D(null),x(i instanceof Error?i.message:"Could not start a new chat.")}finally{it(!1)}}},[ue,j,Y,B]),Jt=n.useCallback(async i=>{if(!(!i||_e)){at(i),x(null),B();try{const c=await $("/api/scoutbot/session/archive",{method:"POST",body:JSON.stringify({id:i})});ne(c),ae(c.session),re(!1),D("session archived"),window.dispatchEvent(new CustomEvent(ge,{detail:{id:c.session.id}}))}catch(c){x(c instanceof Error?c.message:"Could not archive session.")}finally{at(null)}}},[_e,B,ae]),Ce=n.useCallback((i,c)=>{C(c),P(c?null:i.lastUnavailableReason??"Scout voice service is not reachable."),V("idle")},[]),oe=n.useCallback(async(i=!1)=>{const c=je.current;V(w=>w==="launching"?w:"probing");const p=await c.probe(i?{force:!0}:void 0);return Ce(c,p),p},[Ce]);n.useEffect(()=>{Ao();const i=je.current,c=Io(p=>{C(p.ok),P(p.ok?null:p.reason),V("idle")});return i.connectionState==="unknown"?oe():Ce(i,i.connectionState==="connected"),c},[Ce,oe]);const Xt=n.useCallback(()=>{const i=je.current;x(null),V("launching"),i.launch({source:"openscout",context:Us()}),window.setTimeout(()=>{oe(!0)},2400)},[oe]),xt=n.useCallback(i=>{const c=xe(i);se(c);for(const p of To(i))p.type==="ask-agent"?(D(`Sending to ${p.targetLabel}`),$("/api/scoutbot/actions/ask",{method:"POST",body:JSON.stringify({targetLabel:p.targetLabel,targetAgentId:p.targetAgentId,body:p.body,channel:p.channel})}).then(w=>{D(w.flightId?`Sent to ${w.targetAgentId??w.targetLabel} · run ${w.flightId}`:`Sent to ${w.targetAgentId??w.targetLabel}`)}).catch(w=>{D(null),x(w instanceof Error?w.message:"Could not send to agent.")})):p.type!=="reminder"&&r(p);pt(c)},[r,pt]);n.useEffect(()=>{const i=()=>{D("Scoutbot replied by voice"),he()},c=()=>{D("Scoutbot chat changed"),he()};return window.addEventListener(vt,i),window.addEventListener(ge,c),()=>{window.removeEventListener(vt,i),window.removeEventListener(ge,c)}},[he]);const fe=n.useCallback(async i=>{const c=i.trim();if(!(!c||j)){I(!0),x(null),q(c),se(null),D("Sending"),T(p=>p.trim()===c?"":p);try{await Co().catch(()=>null);const p=await $("/api/scoutbot/chat",{method:"POST",body:JSON.stringify({body:c,route:a,uiContext:po("web")})});ne({session:p.session,sessions:p.sessions,config:p.config}),D("Reply received"),xt(p.reply.body)}catch(p){D(null),x(p instanceof Error?p.message:"Could not send.")}finally{I(!1)}}},[xt,a,j]),Qt=n.useCallback(async()=>{if(m)return;const i=je.current;if(me.current=null,x(null),A(""),R("starting"),h!==!0&&!await oe(!0)){R(null);return}let c=null,p=!1;const w=async()=>{!c||p||(p=!0,await Tt(c,{allowCurrentSession:te.current===c}),te.current===c&&(te.current=null))};try{c=await i.startLive({onState:R,onPartial:A}),te.current=c,g(!0);const H=await c.result;if(await w(),g(!1),A(""),me.current)return;R("done"),H.text&&await fe(H.text)}catch(H){const U=me.current,Q=!!U||$s(H);if(await w(),g(!1),A(""),U==="stop-failed")return;R(Q?null:"error"),Q||x(H instanceof Error?H.message:"Scout voice recording failed.")}finally{await w(),me.current=null}},[fe,oe,m,h]),Zt=n.useCallback(async()=>{const i=te.current;if(i){R("processing");try{await Lt(i.stop(),Ls,"Scout voice did not finish processing the recording.")}catch(c){me.current="stop-failed",await Tt(i,{allowCurrentSession:!0}),te.current===i&&(te.current=null,g(!1),A(""),R("error")),x(c instanceof Error?`Scout voice recording did not finish: ${c.message}`:"Scout voice recording did not finish.")}}},[]);n.useEffect(()=>{const i=()=>S(!1);return window.addEventListener("scout:scoutbot-panel-open",i),()=>window.removeEventListener("scout:scoutbot-panel-open",i)},[S]),n.useEffect(()=>So(()=>S(!y)),[y,S]),n.useEffect(()=>{const i=c=>{const p=c.detail,w=p&&typeof p=="object"&&"body"in p?p.body:null;typeof w=="string"&&w.trim()&&(S(!1),fe(w))};return window.addEventListener(St,i),()=>window.removeEventListener(St,i)},[fe,S]),n.useEffect(()=>{const i=c=>{const p=c.detail,w=p&&typeof p=="object"&&"body"in p?p.body:null;typeof w=="string"&&w.trim()&&(S(!1),T(w),ie(H=>H+1))};return window.addEventListener("scout:scoutbot-compose",i),()=>window.removeEventListener("scout:scoutbot-compose",i)},[S]);const bt=n.useMemo(()=>{const i=_?"speaking":j?"thinking":m?"listening":"idle",c=Y?.session??null,p=c&&c.messages.length>0?c.messages[c.messages.length-1]:null;return{activity:i,brief:{lastDeliveredAt:null},reminders:{dueCount:0,upcomingCount:0,due:[],next:null},voice:{available:h,setupBlocked:h===!1,replies:z},error:N,session:{title:c?.title??null,lastActivityAt:p?.createdAt??c?.updatedAt??null},conversation:{messageCount:c?.messages.length??0,loading:Y===null}}},[_,j,m,h,z,N,Y]);n.useEffect(()=>{d?.publishState(bt)},[d,bt]),n.useEffect(()=>{if(!d)return;const i={focusScoutbot:()=>S(!1),triggerBrief:()=>{S(!1),ie(c=>c+1)},triggerAskState:()=>{S(!1),ie(c=>c+1)},toggleVoiceReplies:()=>{const c=!z;W(c),c||B()},openScoutbotSettings:()=>{S(!1),de(!0)},startNewChat:()=>{S(!1),ue||We()},dismissReminder:()=>{},askReminderStatus:()=>{S(!1),ie(c=>c+1)}};d.registerActions(i)},[d,S,z,W,B,de,ue,We]),n.useEffect(()=>{h===!0&&ze(!1)},[h]);const eo=v?"Live call":m?E==="processing"?"Sending":"Stop":L==="probing"?"Checking Voice":L==="launching"?"Opening Scout":h===!1?"Open Scout":"Start Talking",to=Y!==null&&Y.session.messages.length===0&&!j;if(y&&!o)return e.jsx("div",{className:"flex shrink-0 items-center border-t border-[var(--scout-chrome-border-soft)] px-3 py-1.5",children:e.jsx(ko,{})});const oo=s?"flex h-full min-h-0 flex-col overflow-hidden border-t border-[var(--scout-chrome-border-soft)]":t===void 0?"flex max-h-[60vh] shrink-0 flex-col overflow-hidden border-t border-[var(--scout-chrome-border-soft)]":"flex shrink-0 flex-col overflow-hidden border-t border-[var(--scout-chrome-border-soft)]",so=t===void 0||s?void 0:{height:`${t}px`};return e.jsxs("section",{className:oo,style:so,children:[e.jsxs("div",{className:"flex shrink-0 flex-col gap-2 px-3 pt-2.5 pb-1.5",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("div",{className:"flex min-w-0 items-center gap-2",children:e.jsx(Yo,{size:20,className:"shrink-0 text-lime-300","aria-hidden":"true"})}),e.jsxs("div",{className:"flex shrink-0 items-center gap-0.5",children:[e.jsx(Nt,{icon:z?e.jsx(jo,{size:11}):e.jsx(wo,{size:11}),title:v?z?"Voice replies on for typed chat (live call has its own audio)":"Voice replies off for typed chat (live call has its own audio)":z?"Voice replies on (click to mute)":"Voice replies off (click to enable)",onClick:()=>{const i=!z;W(i),i||B()},active:z}),!o&&e.jsx(Nt,{icon:e.jsx(Qe,{size:11}),title:"Minimize",onClick:()=>S(!0)})]})]}),X&&e.jsx(Ps,{voicePresetId:G,onVoicePresetId:ce,voiceDefaults:Vt,modelDraft:He,onModelDraft:Be,promptDraft:$e,onPromptDraft:Ve,configLoading:Dt,configSaving:Ht,configError:Bt,configStatus:$t,onSave:()=>{Yt()},onReload:()=>{Fe()}})]}),e.jsx("div",{className:"flex min-h-0 flex-1 flex-col px-3 pb-1.5",children:Y&&e.jsx(Ns,{state:Y,chatExpanded:Ut,onToggleExpanded:()=>re(i=>!i),sessionPickerOpen:Wt,onToggleSessionPicker:()=>ke(i=>!i),onStartNewChat:()=>{We()},startingNewChat:ue,onSwitchSession:i=>{Kt(i)},switchingSessionId:Ue,sending:j,briefing:!1,pendingAsk:j?ee:null,onArchiveSession:i=>{Jt(i)},archivingSessionId:_e,onAssistantContextMenu:Gt,suggestedPrompts:qt,onSelectPrompt:i=>{T(i),re(!1)}})}),e.jsxs("div",{className:"flex shrink-0 flex-col gap-1.5 border-t border-[var(--scout-chrome-border-soft)] bg-black/10 px-3 pt-2 pb-2.5",children:[h===!1&&Le&&!v&&e.jsx(Is,{issue:O,probeState:L,onLaunch:Xt,onRetry:()=>{oe(!0)},onSettings:()=>de(!0),onDismiss:()=>ze(!1)}),(M||_)&&!v&&e.jsxs("div",{className:"flex items-center justify-between gap-2 rounded border border-[var(--scout-chrome-border-soft)] bg-black/10 px-2.5 py-2 font-mono text-xs leading-relaxed text-[var(--scout-chrome-ink-faint)]",children:[e.jsx("span",{className:"min-w-0 truncate",children:_?"Speaking reply…":M}),_&&e.jsx("button",{type:"button",title:"Stop spoken reply",onClick:B,className:"shrink-0 rounded border border-[var(--scout-chrome-border-soft)] p-1 text-[var(--scout-chrome-ink)] hover:bg-[var(--scout-chrome-hover)]",children:e.jsx(Mt,{size:11,className:"fill-current"})})]}),le&&!j&&e.jsx("div",{className:"font-mono text-2xs uppercase tracking-[0.12em] text-[var(--scout-chrome-ink-ghost)]",children:le}),e.jsx(Es,{agents:l,draft:k,onDraftChange:T,onSubmit:()=>{fe(k)},sending:j,recording:m,voiceLabel:eo,voiceBusy:E==="processing"||L==="probing"||L==="launching",voiceUnavailable:h===!1,voiceHeld:v,onMicClick:()=>{if(!v){if(h===!1){ze(!0);return}m?Zt():Qt()}},prominent:to&&!v,autoFocus:o,focusSignal:Ft}),N&&e.jsx("div",{className:"rounded border border-red-400/30 bg-red-400/10 px-2.5 py-2 font-mono text-xs leading-relaxed text-red-200",children:N})]})]})}function Ws({onResizeStart:t}){const o=n.useCallback(s=>{s.preventDefault(),t(s)},[t]);return e.jsxs("div",{role:"separator","aria-orientation":"horizontal",onMouseDown:o,className:"group relative flex h-[7px] shrink-0 cursor-ns-resize items-center justify-center",children:[e.jsx("div",{className:"absolute inset-x-0 top-0 h-px bg-[var(--scout-chrome-border-soft)] transition-colors group-hover:bg-[var(--scout-chrome-ink-faint)]"}),e.jsxs("div",{className:"flex flex-row gap-[3px] opacity-0 transition-opacity group-hover:opacity-100",children:[e.jsx("div",{className:"h-[3px] w-[3px] rounded-full bg-[var(--scout-chrome-ink-faint)]"}),e.jsx("div",{className:"h-[3px] w-[3px] rounded-full bg-[var(--scout-chrome-ink-faint)]"}),e.jsx("div",{className:"h-[3px] w-[3px] rounded-full bg-[var(--scout-chrome-ink-faint)]"})]})]})}const At=260,Gs=.7,qs=260;function Ye(t,o){const s=Math.max(At,Math.floor(o*Gs));return Math.min(s,Math.max(At,Math.round(t)))}function Ys(){const t=nt("surface.scoutbot",!0),{route:o,navigate:s,agents:r,selectedBrokerAttempt:l,clearBrokerAttempt:a}=F(),[u]=Xe("openscout.scoutbot.collapsed",!0),[d,f]=Pt("openscout.scoutbot.height",qs),b=n.useRef(null),[v,y]=n.useState(0);n.useLayoutEffect(()=>{const N=b.current;if(!N)return;y(N.getBoundingClientRect().height);const x=new ResizeObserver(h=>{const C=h[0];C&&y(C.contentRect.height)});return x.observe(N),()=>x.disconnect()},[]),n.useEffect(()=>{if(v<=0)return;const N=Ye(d,v);N!==d&&f(N)},[v,d,f]);const S=n.useCallback(N=>{const x=N.clientY,h=d,C=b.current?.getBoundingClientRect().height??v,O=L=>{const V=L.clientY-x;f(Ye(h-V,C))},P=()=>{document.removeEventListener("mousemove",O),document.removeEventListener("mouseup",P),document.body.style.removeProperty("cursor"),document.body.style.removeProperty("user-select")};document.body.style.cursor="ns-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",O),document.addEventListener("mouseup",P)},[v,d,f]);let k=null;const T=t&&o.view==="ops"&&o.mode==="lanes";if(T)k=e.jsx(Ot,{forceExpanded:!0,fill:!0});else switch(o.view){case"ops":k=e.jsx(Jo,{mode:o.mode??"mission",agents:r,navigate:s,returnRoute:o});break;case"broker":k=e.jsx(Ko,{selectedAttempt:l,navigate:s,onClose:a});break;default:k=xo(o,s)}const j=v>0?Ye(d,v):d,I=t&&o.view!=="broker";return e.jsxs("div",{ref:b,className:"flex h-full flex-col overflow-hidden",children:[e.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:k}),I&&!T&&!u&&e.jsx(Ws,{onResizeStart:S}),I&&!T&&e.jsx(Ot,{height:u?void 0:j})]})}const zt="openscout.globalJumpDock.mode.v1";function Ks(){if(typeof window>"u")return null;try{const t=window.localStorage.getItem(zt);return t==="jump"||t==="minimap"?t:null}catch{return null}}function Js(t){try{window.localStorage.setItem(zt,t)}catch{}}function Xs(){const{route:t,navigate:o}=F(),s=t.view==="mesh",[r,l]=n.useState(()=>{const u=Ks();return u==="minimap"&&s?"minimap":u==="jump"?"jump":s?"minimap":"jump"});n.useEffect(()=>{r==="minimap"&&!s&&l("jump")},[r,s]);const a=u=>{l(u),Js(u)};return e.jsxs("div",{className:"gjd",children:[e.jsxs("div",{className:"gjd-head",children:[e.jsx("span",{className:"gjd-ear","aria-hidden":!0}),e.jsxs("div",{className:"gjd-mode",role:"group","aria-label":"Bottom dock mode",children:[e.jsx("button",{type:"button",className:`gjd-mode-btn${r==="jump"?" gjd-mode-btn--active":""}`,onClick:()=>a("jump"),"aria-pressed":r==="jump",children:"jump"}),s&&e.jsx("button",{type:"button",className:`gjd-mode-btn${r==="minimap"?" gjd-mode-btn--active":""}`,onClick:()=>a("minimap"),"aria-pressed":r==="minimap",children:"minimap"})]}),e.jsx("span",{className:"gjd-ear","aria-hidden":!0})]}),e.jsx("div",{className:"gjd-body",children:r==="minimap"&&s?e.jsx(Xo,{}):e.jsx(Zs,{navigate:o})})]})}const Qs=qo();function Zs({navigate:t}){const o=nt("ops.control",!0),s=Qs.filter(r=>!r.opsGated||o);return e.jsx("div",{className:"gjd-jumps",children:s.map(r=>{const l=r.icon;return e.jsxs("button",{type:"button",className:"gjd-jump",onClick:()=>t(r.route),children:[e.jsx("span",{className:"gjd-jump-icon",children:n.createElement(l,{size:13,strokeWidth:1.6})}),e.jsx("span",{className:"gjd-jump-label",children:r.label})]},r.id)})})}function en(){const{route:t,navigate:o}=F();return e.jsxs("div",{className:"scout-left-shell",children:[e.jsx("div",{className:"scout-left-shell-rail",children:bo(t,o)}),e.jsx(Xs,{})]})}function tn(){const t=no(),o=ro(),s=Qo({url:t,healthUrl:o,autoConnect:!0,sessionKey:"scout-terminal"});return e.jsx("div",{style:{height:"100%",background:"#0d0d0d",overflow:"hidden"},children:e.jsx(Zo,{relay:s,fontSize:13,configItems:[{label:"ws",value:t},{label:"health",value:o}]})})}const on="Scout's local server isn't responding. It may still be starting up — wait a moment and try again.",sn="Scout couldn't start its background service. Restart Scout from the menu bar icon, then try again.",nn="The broker isn't running yet. Start Scout's services from the menu bar icon, then run setup again.",rn="Starting the broker took too long. Try again — if it keeps happening, restart Scout.",an="Scout couldn't write its settings in your home folder (~/.openscout). Check the folder's permissions and try again.",cn="That folder doesn't exist on this Mac. Double-check the path — for example /Users/you/dev.";function ye(t,o){const s=o instanceof Error?o.message:String(o);return ho(yt(o))?on:/Unable to locate scoutd|Unable to locate Bun/i.test(s)?sn:/openscout-runtime broker/i.test(s)?nn:/timed out/i.test(s)?rn:/EACCES|EPERM|EROFS/i.test(s)?an:t==="project"&&/ENOENT|does not exist|doesn'?t exist/i.test(s)?/does not exist|doesn'?t exist/i.test(s)&&/[/~]/.test(s)?s:cn:yt(o)}const Oe=4;function ln(){const{onboarding:t}=F();return t?t.hasLocalConfig?t.hasOperatorName?t.hasProjectConfig?t.needed!==!1&&(!t.brokerReachable||!t.hasReadyRuntime)?e.jsx(Te,{children:e.jsx(pn,{step:4})}):null:e.jsx(Te,{children:e.jsx(mn,{step:3})}):e.jsx(Te,{children:e.jsx(un,{step:2})}):e.jsx(Te,{children:e.jsx(dn,{step:1})}):null}function Te({children:t}){return e.jsx("div",{style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",overflow:"auto",background:"var(--bg)",color:"var(--ink)"},children:e.jsx("div",{style:{width:"100%",maxWidth:720,padding:"80px 72px",display:"flex",flexDirection:"column",gap:40},children:t})})}function Ae({eyebrow:t,title:o,description:s}){return e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[e.jsx("div",{style:hn,children:t}),e.jsx("div",{style:fn,children:o}),e.jsx("div",{style:gn,children:s})]})}function Ie({primary:t,onPrimary:o,primaryDisabled:s,busy:r}){const{skipOnboarding:l}=F();return e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:10,paddingTop:8},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:24},children:[e.jsx("button",{type:"button",onClick:o,disabled:s||r,style:{...xn,opacity:s||r?.5:1,cursor:s||r?"default":"pointer"},children:r?"Working…":t}),e.jsx("button",{type:"button",onClick:l,style:bn,onMouseEnter:a=>{a.currentTarget.style.color="rgba(255,255,255,0.8)"},onMouseLeave:a=>{a.currentTarget.style.color="rgba(255,255,255,0.45)"},children:"Set up later"})]}),e.jsx("div",{style:{fontSize:11,color:"rgba(255,255,255,0.35)",lineHeight:1.5},children:"Scout stays limited until setup finishes."})]})}function Pe({message:t}){return t?e.jsx("div",{style:{borderRadius:8,border:"1px solid rgba(239,68,68,0.35)",backgroundColor:"rgba(239,68,68,0.08)",color:"rgba(252,165,165,0.95)",padding:"12px 16px",fontSize:12,lineHeight:1.5},children:t}):null}function dn({step:t}){const{onboarding:o,refreshOnboarding:s}=F(),[r,l]=n.useState(!1),[a,u]=n.useState(null),d=async()=>{l(!0),u(null);try{await $("/api/onboarding/init",{method:"POST",body:"{}"}),await s()}catch(f){u(ye("init",f))}finally{l(!1)}};return e.jsxs(e.Fragment,{children:[e.jsx(Ae,{eyebrow:`First-run setup · Step ${t} of ${Oe}`,title:"Welcome to Scout",description:e.jsxs(e.Fragment,{children:["Scout needs a local config before it can talk to the broker, the web app, and paired devices. This writes"," ",e.jsx("code",{style:st,children:"~/.openscout/config.json"})," with sensible defaults — you can edit it any time."]})}),e.jsxs("ul",{style:_t,children:[e.jsx(be,{label:"Local config (~/.openscout/config.json)",done:!1,hint:"missing"}),e.jsx(be,{label:".openscout/project.json in a repo",done:!!o?.hasProjectConfig,hint:o?.hasProjectConfig?o.projectRoot??void 0:"checked after setup"})]}),e.jsx(Pe,{message:a}),e.jsx(Ie,{primary:"Initialize Scout",onPrimary:()=>{d()},busy:r})]})}function un({step:t}){const{onboarding:o,refreshOnboarding:s}=F(),r=o?.operatorNameSuggestion??"",[l,a]=n.useState(r),[u,d]=n.useState(!1),[f,b]=n.useState(null);n.useEffect(()=>{!l&&r&&a(r)},[r,l]);const v=async()=>{const y=l.trim();if(!y){b("Name is required.");return}d(!0),b(null);try{await $("/api/user",{method:"POST",body:JSON.stringify({name:y})}),await s()}catch(S){b(ye("identity",S))}finally{d(!1)}};return e.jsxs(e.Fragment,{children:[e.jsx(Ae,{eyebrow:`Identity · Step ${t} of ${Oe}`,title:"What should we call you?",description:"Your name shows up on messages you send and in any agent that speaks for you. You can change it later in Settings."}),e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[e.jsx("label",{style:Re,children:"Your name"}),e.jsx("input",{autoFocus:!0,value:l,onChange:y=>{a(y.target.value),b(null)},onKeyDown:y=>{y.key==="Enter"&&v()},placeholder:r||"Operator",style:ot}),r?e.jsx("div",{style:{fontSize:11,color:"rgba(255,255,255,0.4)",fontFamily:"var(--hud-font-mono)"},children:"Prefilled from your machine."}):null]}),e.jsx(Pe,{message:f}),e.jsx(Ie,{primary:"Continue",onPrimary:()=>{v()},busy:u,primaryDisabled:!l.trim()})]})}function mn({step:t}){const{onboarding:o,refreshOnboarding:s}=F(),r=o?.currentDirectory??"",l=r||"~/dev",[a,u]=n.useState([l]),[d,f]=n.useState(r),[b,v]=n.useState("claude"),[y,S]=n.useState(!1),[k,T]=n.useState(null),j=(h,C)=>{u(O=>O.map((P,L)=>L===h?C:P))},I=()=>u(h=>[...h,""]),N=h=>u(C=>C.filter((O,P)=>P!==h)),x=async()=>{const h=a.map(O=>O.trim()).filter(Boolean),C=d.trim();if(!C){T("Pick where Scout should anchor this context.");return}S(!0),T(null);try{await $("/api/onboarding/project",{method:"POST",body:JSON.stringify({contextRoot:C,sourceRoots:h,defaultHarness:b})}),await s()}catch(O){T(ye("project",O))}finally{S(!1)}};return e.jsxs(e.Fragment,{children:[e.jsx(Ae,{eyebrow:`Project · Step ${t} of ${Oe}`,title:"Where do your repos live?",description:e.jsxs(e.Fragment,{children:["Scout scans these folders for projects and anchors this context at"," ",e.jsx("code",{style:st,children:"<context>/.openscout/project.json"}),"."]})}),e.jsxs("div",{style:Ke,children:[e.jsx("label",{style:Re,children:"Scan folders"}),e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[a.map((h,C)=>e.jsxs("div",{style:{display:"flex",gap:8},children:[e.jsx("input",{value:h,onChange:O=>j(C,O.target.value),placeholder:C===0?l:"Add another folder",style:{...ot,flex:1}}),e.jsx("button",{type:"button",onClick:()=>N(C),disabled:a.length<=1,style:{...It,opacity:a.length<=1?.4:1,cursor:a.length<=1?"default":"pointer"},"aria-label":`Remove folder ${C+1}`,children:"−"})]},C)),e.jsx("button",{type:"button",onClick:I,style:{...It,alignSelf:"flex-start"},children:"+ Add folder"})]})]}),e.jsxs("div",{style:Ke,children:[e.jsx("label",{style:Re,children:"Context root"}),e.jsx("input",{value:d,onChange:h=>f(h.target.value),placeholder:l,style:ot}),e.jsxs("div",{style:Je,children:["Scout writes ",e.jsx("code",{style:st,children:".openscout/project.json"})," ","inside this folder."]}),e.jsx("div",{style:Je,children:"Tip: ~ expands to your home folder."})]}),e.jsxs("div",{style:Ke,children:[e.jsx("label",{style:Re,children:"Default harness"}),e.jsx("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:12},children:["claude","codex"].map(h=>{const C=b===h;return e.jsxs("button",{type:"button",onClick:()=>v(h),style:{...vn,borderColor:C?"var(--accent, #2dd4bf)":"rgba(255,255,255,0.12)",backgroundColor:C?"rgba(45,212,191,0.08)":"rgba(255,255,255,0.02)"},children:[e.jsx("div",{style:{fontSize:15,fontWeight:600,textTransform:"capitalize"},children:h}),e.jsx("div",{style:{fontSize:12,color:"rgba(255,255,255,0.55)",marginTop:6,lineHeight:1.5},children:h==="claude"?"Anthropic Claude Code — local CLI agent.":"OpenAI Codex — cloud agentic sandbox."}),e.jsx("div",{style:{fontSize:11,fontFamily:"var(--hud-font-mono)",color:"rgba(255,255,255,0.4)",marginTop:8,lineHeight:1.5},children:h==="claude"?"Requires the Claude Code CLI, installed and signed in.":"Requires the Codex CLI, installed and signed in."})]},h)})}),e.jsx("div",{style:Je,children:"Not installed yet? Pick one anyway — the final step checks and tells you what's missing."})]}),e.jsx(Pe,{message:k}),e.jsx(Ie,{primary:"Create project",onPrimary:()=>{x()},busy:y,primaryDisabled:!d.trim()})]})}function pn({step:t}){const{onboarding:o,refreshOnboarding:s}=F(),[r,l]=n.useState(!1),[a,u]=n.useState(null),d=async()=>{l(!0),u(null);try{const f=await $("/api/onboarding/setup",{method:"POST",body:"{}"});await s(),f.brokerWarning?u(ye("setup",f.brokerWarning)):f.hasReadyRuntime===!1&&u("Setup finished, but Scout didn't find a coding agent it can use. Install Claude Code or Codex, sign in from a terminal, then choose Run setup again.")}catch(f){u(ye("setup",f))}finally{l(!1)}};return e.jsxs(e.Fragment,{children:[e.jsx(Ae,{eyebrow:`Setup · Step ${t} of ${Oe}`,title:"Finish setup",description:"Scout will install its harness skills, start the local broker, refresh discovery, and check for a ready agent runtime."}),e.jsxs("ul",{style:_t,children:[e.jsx(be,{label:".openscout/project.json",done:!!o?.hasProjectConfig,hint:o?.projectConfigPath??o?.projectRoot??void 0}),e.jsx(be,{label:"Broker reachable",done:!!o?.brokerReachable,hint:o?.brokerReachable?"ready":"will start during setup"}),e.jsx(be,{label:"Claude or Codex runtime",done:!!o?.hasReadyRuntime,hint:o?.hasReadyRuntime?"ready":"install Claude Code or Codex, then sign in"})]}),e.jsx(Pe,{message:a}),e.jsx(Ie,{primary:"Run setup",onPrimary:()=>{d()},busy:r})]})}function be({label:t,done:o,hint:s}){return e.jsxs("li",{style:{display:"flex",alignItems:"flex-start",gap:16},children:[e.jsx("span",{style:{marginTop:2,width:20,height:20,borderRadius:999,display:"flex",alignItems:"center",justifyContent:"center",fontSize:11,fontWeight:700,flexShrink:0,backgroundColor:o?"rgba(34,197,94,0.15)":"rgba(239,68,68,0.12)",color:o?"#4ade80":"#f87171"},children:o?"✓":"•"}),e.jsxs("div",{style:{minWidth:0},children:[e.jsx("div",{style:{fontSize:13,lineHeight:1.5,color:o?"rgba(255,255,255,0.75)":"rgba(255,255,255,0.9)"},children:t}),s?e.jsx("div",{style:{fontSize:11,fontFamily:"var(--hud-font-mono)",color:"rgba(255,255,255,0.35)",marginTop:4,wordBreak:"break-all"},children:s}):null]})]})}const hn={fontSize:11,fontFamily:"var(--hud-font-mono)",textTransform:"uppercase",letterSpacing:"0.18em",color:"rgba(255,255,255,0.4)"},fn={fontSize:36,fontWeight:600,letterSpacing:"-0.01em",lineHeight:1.15},gn={fontSize:15,lineHeight:1.75,color:"rgba(255,255,255,0.6)",maxWidth:580},Ke={display:"flex",flexDirection:"column",gap:10},Re={fontSize:11,fontFamily:"var(--hud-font-mono)",textTransform:"uppercase",letterSpacing:"0.15em",color:"rgba(255,255,255,0.5)"},ot={width:"100%",padding:"10px 14px",fontSize:14,fontFamily:"var(--hud-font-mono)",color:"rgba(255,255,255,0.92)",backgroundColor:"rgba(255,255,255,0.04)",border:"1px solid rgba(255,255,255,0.12)",borderRadius:8,outline:"none",boxSizing:"border-box"},Je={fontSize:12,color:"rgba(255,255,255,0.45)",lineHeight:1.6},st={fontFamily:"var(--hud-font-mono)",fontSize:12,padding:"2px 6px",borderRadius:4,backgroundColor:"rgba(255,255,255,0.06)"},xn={fontSize:13,fontWeight:600,padding:"12px 24px",borderRadius:10,backgroundColor:"var(--accent, #2dd4bf)",color:"#0b0d12",border:"none",transition:"opacity 0.15s ease"},It={fontSize:13,fontWeight:500,padding:"10px 14px",borderRadius:8,backgroundColor:"rgba(255,255,255,0.04)",border:"1px solid rgba(255,255,255,0.12)",color:"rgba(255,255,255,0.85)",transition:"all 0.15s ease"},bn={fontSize:12,color:"rgba(255,255,255,0.45)",textDecoration:"underline dotted rgba(255,255,255,0.25)",textUnderlineOffset:4,background:"none",border:"none",cursor:"pointer",padding:"4px 2px",transition:"color 0.15s ease"},_t={display:"flex",flexDirection:"column",gap:20,margin:0,padding:0,listStyle:"none"},vn={textAlign:"left",padding:"16px 18px",borderRadius:12,borderWidth:1,borderStyle:"solid",borderColor:"rgba(255,255,255,0.12)",color:"rgba(255,255,255,0.9)",cursor:"pointer",transition:"all 0.15s ease"},yn=[{commandId:"nav:home",title:"Go to Home",description:"Navigate to the home overview showing queue, threads, signal, and activity",category:"navigation",keywords:["home","inbox","dashboard"],shortcut:"Cmd+1"},{commandId:"nav:agents",title:"Go to Agents",description:"Navigate to the agents roster showing all registered agents",category:"navigation",keywords:["agents","roster","list"],shortcut:"Cmd+2"},{commandId:"nav:messages",title:"Go to Chat",description:"Navigate to the unified chat surface backed by the normalized conversations service",category:"navigation",keywords:["conversations","comms","chat","threads","channels","channel","group","broadcast"],shortcut:"Cmd+3"},{commandId:"nav:sessions",title:"Open Sessions",description:"Navigate to the sessions list showing all active conversations",category:"navigation",keywords:["sessions","conversations","threads"]},{commandId:"nav:search",title:"Go to Search",description:"Navigate to the session knowledge search surface for extraction, search, and raw-log drilldown planning",category:"navigation",keywords:["search","knowledge","qmd","history"],shortcut:"Cmd+4"},{commandId:"nav:activity",title:"Open Activity",description:"Navigate to the activity feed showing recent events",category:"navigation",keywords:["activity","feed","events","log"]},{commandId:"nav:mesh",title:"Open Mesh",description:"Navigate to the mesh network view showing nodes and topology",category:"navigation",keywords:["mesh","network","nodes","peers","topology"]},{commandId:"nav:dispatch",title:"Open Dispatch",description:"Navigate to the dispatch ledger for routing, delivery attempts, and failed queries",category:"navigation",keywords:["dispatch","broker","routing","delivery","messages"]},{commandId:"nav:repos",title:"Open Repos",description:"Navigate to the repos view for branches, diffs, and working-tree state",category:"navigation",keywords:["repos","repositories","git","branches","diffs"]},{commandId:"nav:harnesses",title:"Open Providers",description:"Open the central view for providers, harnesses, observed topology, and budget feeds",category:"navigation",keywords:["provider","providers","harness","harnesses","claude","codex","budget","usage","topology"]},{commandId:"nav:ops",title:"Go to Ops",description:"Navigate to the operator workspace for dispatch, mesh, tail, runtime, alerts, and agent operations",category:"navigation",keywords:["ops","operator","control","tail","runtime","services","atop","dispatch","mesh"],shortcut:"Cmd+5"},{commandId:"nav:ops-atop",title:"Open Runtime",description:"Open the live agent/process view with observed harness families",category:"navigation",keywords:["runtime","services","atop","process","session","agent","topology"]},{commandId:"nav:settings",title:"Open Settings",description:"Open the settings screen for pairing, identity, and relay config",category:"settings",keywords:["settings","preferences","config","pair"],shortcut:"Cmd+,"},{commandId:"nav:agent-config",title:"Open Agent Configuration",description:"Open the unified agent configuration surface for runtimes, agents, tools, delivery, and broker state",category:"settings",keywords:["agent config","runtimes","providers","mcp","tools"]},{commandId:"nav:pair",title:"Pair Device",description:"Open the device pairing flow to connect a mobile device",category:"settings",keywords:["pair","qr","device","phone","mobile"]},{commandId:"scout:reload",title:"Reload Agents",description:"Refresh the agent list and message state from the broker",category:"workspace",keywords:["reload","refresh","sync"]},{commandId:"scout:open:*",title:"Open Agent",description:"Open the agent's view (runtime, sessions, inspector) for one specific agent.",category:"navigation",keywords:["open","agent","view","inspect"],params:[{name:"agentId",description:"The agent identifier to open",type:"string"}]},{commandId:"scout:message:*",title:"Message Agent",description:"Open the DM conversation for one specific agent to message them. One agent maps to a DM; group work belongs in an explicit channel and broadcasts belong in the shared channel.",category:"workspace",keywords:["message","chat","conversation","dm","tell","ask","reply"],params:[{name:"agentId",description:"The agent identifier to message",type:"string"}]}];function Sn(t={}){const{initialTheme:o="dark"}=t,s=io();return{id:"openscout",name:"Scout",description:"All your agents, one message away. Scout is a control plane for managing coding agents: Send posts into a Chat, direct agent messages create or steer Runs, and shared work stays in explicit channels.",mode:"panel",icon:n.createElement("svg",{width:14,height:14,viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0},n.createElement("polygon",{points:"10,4.3 14.8,7.1 14.8,12.9 10,15.7 5.2,12.9 5.2,7.1",strokeWidth:1.9}),n.createElement("polygon",{points:"10,7 12.4,8.4 12.4,10.6 10,12 7.6,10.6 7.6,8.4",strokeWidth:1.32,opacity:.74})),Provider:({children:r})=>n.createElement(is,{defaultTheme:o,defaultTemplate:s,storageKey:ao,children:n.createElement(fo,{initialTheme:o,children:r})}),leftPanel:{title:"Navigation"},rightPanel:{title:"Context"},slots:{Content:ls,LeftPanel:en,Inspector:Ys,Takeover:ln,Terminal:tn},intents:yn,hooks:{useCommands:rs,useStatus:ns,useNavCenter:ss,useNavActions:os,useLayoutMode:ts,useTakeover:es}}}Sn();export{Sn as createScoutApp};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as l}from"./index-sUomXsrf.js";const d=["input","textarea","select","[contenteditable='']","[contenteditable='true']","[contenteditable='plaintext-only']","[role='combobox']","[role='searchbox']","[role='spinbutton']","[role='textbox']"].join(","),m=[".xterm",".xterm-helper-textarea","[data-scout-terminal-input='true']"].join(",");function y(t){const e=t;if(!e)return!1;const n=typeof e.tagName=="string"?e.tagName.toLowerCase():"";return n==="input"||n==="textarea"||n==="select"||e.isContentEditable===!0||typeof e.closest=="function"&&e.closest(d)?!0:typeof e.parentElement?.closest=="function"&&!!e.parentElement.closest(d)}function x(t){const e=t;return e?typeof e.closest=="function"&&e.closest(m)?!0:typeof e.parentElement?.closest=="function"&&!!e.parentElement.closest(m):!1}function k(){return!!(document.querySelector(".kb-help-backdrop")||document.querySelector("[data-command-palette-open='true']")||document.querySelector("[role='dialog'][aria-modal='true']"))}function g(t,e,n){return e<=0?-1:t<0?n>0?0:e-1:Math.max(0,Math.min(e-1,t+n))}const f=["a[href]","button:not([disabled])","textarea:not([disabled])","input:not([disabled])","select:not([disabled])","[tabindex]:not([tabindex='-1'])"].join(", ");function h(t=!0){const e=l.useRef(null),n=l.useRef(null);l.useEffect(()=>{if(!t)return;n.current=document.activeElement;const o=e.current;return o?((o.querySelector(f)??o).focus(),()=>{n.current?.focus?.()}):void 0},[t]);const r=l.useCallback(o=>{if(!t||o.key!=="Tab")return;const s=e.current;if(!s)return;const c=Array.from(s.querySelectorAll(f));if(c.length===0){o.preventDefault(),s.focus();return}const u=c[0],a=c[c.length-1],i=document.activeElement;o.shiftKey?(i===u||!s.contains(i))&&(o.preventDefault(),a.focus()):i===a&&(o.preventDefault(),u.focus())},[t]);return{ref:e,onKeyDown:r}}function p(t){return Array.from(t.querySelectorAll([":scope > button:not([disabled])",":scope > [role='button']:not([aria-disabled='true'])",":scope > * > button[data-list-primary]:not([disabled])"].join(", ")))}function b(t,e){t.forEach((n,r)=>{n.tabIndex=r===e?0:-1}),t[e]?.focus()}function w(){return l.useCallback(t=>{const e=t.key==="ArrowDown"||t.key==="j",n=t.key==="ArrowUp"||t.key==="k",r=t.key==="Home"||t.key==="g"&&!t.shiftKey&&!t.metaKey&&!t.ctrlKey,o=t.key==="End"||t.key==="G";if(!e&&!n&&!r&&!o)return;const s=p(t.currentTarget);if(s.length===0)return;const c=document.activeElement,u=s.findIndex(i=>i===c);let a;e?a=u<0?0:Math.min(s.length-1,u+1):n?a=u<0?s.length-1:Math.max(0,u-1):r?a=0:a=s.length-1,t.preventDefault(),b(s,a)},[])}function v(t,e,n){return t||!e&&n?0:-1}function S(){l.useEffect(()=>{const t=e=>{if(e.key!=="["&&e.key!=="]"||y(e.target))return;const n=e.target,r=["left","center","right"],o=e.key==="]"?1:-1,s=r.findIndex(u=>{const a=document.querySelector(`[data-pane="${u}"]`);return a?a.contains(n):!1}),c=s<0?o>0?-1:r.length:s;for(let u=c+o;u>=0&&u<r.length;u+=o){const a=document.querySelector(`[data-pane="${r[u]}"]`);if(!a)continue;const i=a.querySelector(f);if(i){e.preventDefault(),i.focus();return}}};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[])}function T(t){l.useEffect(()=>{const e=n=>{if(n.key!=="/"||y(n.target))return;const r=t();r&&(n.preventDefault(),r.focus(),r.select())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t])}function L(t){return e=>{if(e.key!=="ArrowDown")return;const n=t();if(!n)return;const r=p(n);if(r.length===0)return;const o=r.findIndex(c=>c.tabIndex===0),s=o>=0?o:0;e.preventDefault(),b(r,s)}}export{w as a,T as b,k as c,S as d,x as e,y as i,L as m,g as n,v as r,h as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as N,j as e}from"./index-sUomXsrf.js";import{a as I}from"./api-h5zurxmi.js";import{b as L,c as j,s as R}from"./router-Dja9_ygK.js";import{u as $,r as y,s as b,i as C}from"./mesh-ops-Kn8pCtyJ.js";import{u as E,s as T}from"./mesh-view-store-D14ihwkF.js";import{u as A}from"./Provider-tFc3jqZ4.js";import{R as h}from"./RailRow-BTlVAnHS.js";import{u as U}from"./use-mesh-ops-items-ByGZk8rU.js";/* empty css */import"./terminal-sessions-D5CIR2OL.js";import"./sse-CVoGDiKW.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-BlBQhpax.js";import"./DocumentFocusViewer-DU_9BHsD.js";import"./createLucideIcon-DlxlBfLC.js";import"./TextDocumentSurface-C-9EtYqt.js";/* empty css */import"./file-text-i3xTDUjJ.js";import"./x-0XjXwGqq.js";import"./chevron-right-CyUa1zXx.js";import"./code-xml-05TD3uOC.js";import"./arrow-left-WjQIN9J6.js";import"./scout-voice-BZ4KqADJ.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BhZZ5HEq.js";import"./MessageComposerSuggestions-zAUUcLOv.js";import"./NewChatComposer-B5FnPyzS.js";import"./runtime-picker-DOZpZOlt.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-lWOOKezu.js";import"./index-m6dFtY5f.js";import"./HarnessMark-Dm_qm1Ku.js";import"./conversation-model-C4yb6_FA.js";import"./time-Dhsh_2EG.js";import"./NewChatOrigin--pHWUb4V.js";import"./agent-chat-Bfjd9y6c.js";import"./model-Co0zkMIc.js";import"./text-DsBWV_4k.js";import"./chevron-down-BFai6ZfE.js";import"./search-DCT_EvPr.js";import"./chunk-HRAB3GC3-CvwpNg-G.js";import"./AgentAvatar-CufDA4A-.js";import"./SpriteAvatar-CQs-jC-v.js";import"./agent-identity-xQHedtLl.js";function S(s){return s.hostName?.split(".")[0]??s.name??s.id.slice(0,12)}function $t(){const{route:s,navigate:u}=A(),l=L(s),{items:i,unattributedOnly:m,lab:M,refreshToken:g}=$(),{meshSnapshot:r}=E();U(l);const[w]=N.useState(()=>y());N.useEffect(()=>{let t=!1;return I("/api/mesh").then(o=>{t||T(o)}).catch(()=>{}),()=>{t=!0}},[g]);const c=t=>{b(!1),u(t?R(s,t):j(s))},O=()=>{u(j(s)),b(!0)},p=r?.localNode??null,d=r?Object.values(r.nodes).filter(t=>t.id!==p?.id):[],a=t=>M.lastLook?t.filter(o=>C(o,w)).length:0,x=i.filter(t=>t.hostNodeId===null),f=t=>{const o=i.filter(k=>k.hostNodeId===t.id),n=a(o),v=l===t.id;return e.jsx(h,{name:S(t),meta:o.length>0?`${n>0?`${n}·`:""}${o.length}`:"—",tone:n>0?"needs_attention":"neutral",active:v,unread:n>0,onClick:()=>c(v?null:t.id),title:`Scope the list to ${S(t)}`},t.id)};return e.jsxs("div",{className:"ctx-panel mesh-ops-rail",children:[e.jsxs("div",{className:"ctx-panel-section",children:[e.jsx("div",{className:"ctx-panel-section-label",children:"Mesh"}),e.jsx(h,{name:"everywhere",meta:`${a(i)>0?`${a(i)}·`:""}${i.length}`,tone:a(i)>0?"needs_attention":"neutral",active:l===null&&!m,onClick:()=>c(null),title:"Show items across all hosts"})]}),p&&e.jsxs("div",{className:"ctx-panel-section",children:[e.jsx("div",{className:"ctx-panel-section-label",children:"This host"}),f(p)]}),d.length>0&&e.jsxs("div",{className:"ctx-panel-section",children:[e.jsx("div",{className:"ctx-panel-section-label",children:"Peers"}),d.map(t=>f(t))]}),e.jsxs("div",{className:"ctx-panel-section",children:[e.jsx("div",{className:"ctx-panel-section-label",children:"No venue"}),e.jsx(h,{name:"unattributed",meta:x.length>0?String(x.length):"—",tone:"neutral",active:m,onClick:()=>m?c(null):O(),title:"Items with no venue host"})]}),!r&&e.jsx("div",{className:"ctx-panel-empty",children:"Loading mesh…"})]})}export{$t as MeshOpsLeft};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as h,j as i}from"./index-sUomXsrf.js";/* empty css */import{u as Ot,m as Gt,g as _t,i as Dt}from"./Provider-tFc3jqZ4.js";import{a as Vt,b as Ft,m as Kt,r as qt}from"./keyboard-nav-BhZZ5HEq.js";import{n as ct,g as wt}from"./colors-BtO5_zlx.js";import{j as Ht,a as N,k as jt,l as lt,i as Mt,n as Qt}from"./conversation-model-C4yb6_FA.js";import{l as Wt,i as $,a as M,p as yt,t as Yt,b as zt}from"./conversation-prefs-DNre-Lcx.js";import{i as Jt,l as Xt,s as Zt}from"./sessionRead-CvFz2RHv.js";import{u as te}from"./ContextMenu-BlBQhpax.js";import{t as at}from"./time-Dhsh_2EG.js";import{u as ee}from"./use-conversation-list-B1T6J_qE.js";import{u as ne}from"./use-fleet-active-asks-DLofGhhK.js";import{b as oe}from"./router-Dja9_ygK.js";import{R as Nt}from"./RailRow-BTlVAnHS.js";import"./api-h5zurxmi.js";import"./sse-CVoGDiKW.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BTIErYHo.js";import"./DocumentFocusViewer-DU_9BHsD.js";import"./createLucideIcon-DlxlBfLC.js";import"./TextDocumentSurface-C-9EtYqt.js";/* empty css */import"./file-text-i3xTDUjJ.js";import"./x-0XjXwGqq.js";import"./chevron-right-CyUa1zXx.js";import"./code-xml-05TD3uOC.js";import"./arrow-left-WjQIN9J6.js";import"./scout-voice-BZ4KqADJ.js";import"./fx-z37u1o2z.js";import"./MessageComposerSuggestions-zAUUcLOv.js";import"./NewChatComposer-B5FnPyzS.js";import"./runtime-picker-DOZpZOlt.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-lWOOKezu.js";import"./index-m6dFtY5f.js";import"./HarnessMark-Dm_qm1Ku.js";import"./NewChatOrigin--pHWUb4V.js";import"./agent-chat-Bfjd9y6c.js";import"./model-Co0zkMIc.js";import"./text-DsBWV_4k.js";import"./chevron-down-BFai6ZfE.js";import"./search-DCT_EvPr.js";import"./chunk-HRAB3GC3-CvwpNg-G.js";import"./terminal-sessions-D5CIR2OL.js";import"./AgentAvatar-CufDA4A-.js";import"./SpriteAvatar-CQs-jC-v.js";import"./agent-identity-xQHedtLl.js";function Y(t){const n=t.split("/").filter(Boolean);return n[n.length-1]??t}function $t(t){const n=t.replace(/\/+$/,"").split("/");return n[n.length-1]??t}function se(t,n){const o=Y(n).toLowerCase(),r=t.filter(p=>!!p.projectRoot),c=r.filter(p=>$t(p.projectRoot).toLowerCase()===o),d=c.length>0?c:r,s=ie(d);return s?{label:(c.length>0?d.find(p=>p.projectRoot===s):[...d].sort((p,w)=>w.lastActivityAt-p.lastActivityAt)[0])?.project??Y(n),canonicalRoot:s}:{label:Y(n),canonicalRoot:null}}function ie(t){const n=new Map;for(const d of t){const s=n.get(d.projectRoot)??{count:0,latest:0};s.count+=1,s.latest=Math.max(s.latest,d.lastActivityAt),n.set(d.projectRoot,s)}let o=null,r=-1,c=-1;for(const[d,s]of n)(s.count>r||s.count===r&&s.latest>c)&&(o=d,r=s.count,c=s.latest);return o}function Ct(t,n,o,r){const c=new Map;for(const s of t){const f=Ht(s),p=s.agentId?n.get(s.agentId):void 0,w=p?.repoKey??null,u=p?.project??null,C=(s.agentName??N(s)).trim(),m=f?`channel:${s.id}`:w?`repo:${w.toLowerCase()}`:u?`project:${u.toLowerCase()}`:C?`name:${C.toLowerCase()}`:`dm:${s.id}`,y=f?N(s):w?Y(w):u??C??N(s);let j=c.get(m);if(j||(j={key:m,label:y,isChannel:f,conversations:[],bestState:"blocked",latestUpdate:0,unreadCount:0,canonicalRoot:null},c.set(m,j)),j.conversations.push(s),j.latestUpdate=Math.max(j.latestUpdate,s.lastMessageAt??0),Jt(s.lastMessageAt,s.id,o)&&(j.unreadCount+=1),!f&&p){const g=ct(p.state);wt(g)<wt(j.bestState)&&(j.bestState=g)}}for(const s of c.values()){if(s.key.startsWith("repo:")){const f=s.conversations.map(w=>{const u=w.agentId?n.get(w.agentId):void 0;return{project:u?.project??null,projectRoot:u?.projectRoot??null,lastActivityAt:w.lastMessageAt??0}}),p=se(f,s.key.slice(5));s.label=p.label,s.canonicalRoot=p.canonicalRoot}s.conversations.sort((f,p)=>(p.lastMessageAt??0)-(f.lastMessageAt??0))}const d=Array.from(c.values());return d.sort((s,f)=>f.latestUpdate-s.latestUpdate),d}const ae=12;function cn(){const{route:t,navigate:n,agents:o,apiConnection:r}=Ot(),{sessions:c,loading:d,loadError:s,reload:f}=ee(),[p,w]=h.useState(()=>Xt()),[u,C]=h.useState(()=>Wt()),[m,y]=h.useState(""),[j,g]=h.useState(()=>new Set),[b,l]=h.useState(!1),[R,L]=h.useState(!1),[q,J]=h.useState(!1),k=ne(),H=oe(t),O=h.useMemo(()=>Gt(o,H),[o,H]),I=h.useMemo(()=>{const e=new Map,a=O?o.filter(v=>O.has(v.id)):o;for(const v of a)e.set(v.id,v);return e},[o,O]),T=t.view==="messages"||t.view==="conversation"||t.view==="agent-info"||t.view==="agents-v2"?t.conversationId:void 0;h.useEffect(()=>{L(!1)},[m]);const G=h.useMemo(()=>_t(c,O,H),[c,O,H]),X=h.useMemo(()=>m?G.filter(e=>kt(e,m)):G,[G,m]),_=h.useMemo(()=>{const e=a=>(a.agentId?k.get(a.agentId)?.updatedAt:void 0)??0;return G.filter(a=>$(a.id,u)||!jt(a)?!1:(a.agentId?k.get(a.agentId):void 0)?.status==="needs_attention").sort((a,v)=>e(v)-e(a))},[G,u,k]),D=h.useMemo(()=>m?_.filter(e=>kt(e,m)):_,[_,m]),x=h.useMemo(()=>{const e=X.filter(A=>!$(A.id,u)),a=W(X.filter(A=>$(A.id,u))),v=e.filter(A=>M(A.id,u)).sort((A,xt)=>yt(xt.id,u)-yt(A.id,u)||(xt.lastMessageAt??0)-(A.lastMessageAt??0)),K=e.filter(A=>!M(A.id,u)),it=K.filter(lt),bt=K.filter(jt),Et=K.filter(Mt);return{pinned:v,channels:W(it),agents:Ct(W(bt),I,p),observed:Ct(W(Et),I,p),archived:a}},[X,I,p,u]),dt=te(),V=h.useCallback(e=>{C(a=>Yt(e,a))},[]),F=h.useCallback(e=>{C(a=>zt(e,a))},[]),S=h.useCallback(e=>{w(Zt(e.id)),n({view:"messages",conversationId:e.id})},[n]),P=h.useCallback((e,a)=>{const v=M(a.id,u),K=$(a.id,u),it=N(a);dt(e,[{kind:"action",label:"Open",onSelect:()=>S(a)},{kind:"separator"},{kind:"action",label:v?"Unpin":"Pin to top",onSelect:()=>V(a.id)},{kind:"action",label:K?"Unarchive":"Archive",onSelect:()=>F(a.id)},{kind:"separator"},{kind:"action",label:"Copy name",onSelect:()=>{navigator.clipboard?.writeText(it).catch(()=>{})}}])},[u,S,V,F,dt]),ut=e=>{g(a=>{const v=new Set(a);return v.has(e)?v.delete(e):v.add(e),v})},Tt=r.status==="offline"||Dt(s),pt=h.useRef(null),mt=h.useRef(null),Pt=Vt(),Ut=Kt(()=>pt.current);Ft(h.useCallback(()=>mt.current,[]));const Z=x.pinned.length,tt=x.channels.length,et=x.agents.reduce((e,a)=>e+a.conversations.length,0),nt=x.observed.reduce((e,a)=>e+a.conversations.length,0),Q=x.archived.length,ht=Z+tt+et+nt+Q,Bt=b||!!m,ot=h.useMemo(()=>{const e=[];for(const a of D)e.push({rowId:`ny-${a.id}`,id:a.id});for(const a of x.pinned)e.push({rowId:`pin-${a.id}`,id:a.id});for(const a of x.agents)for(const v of a.conversations)e.push({rowId:v.id,id:v.id});for(const a of x.channels)e.push({rowId:a.id,id:a.id});for(const a of x.observed)for(const v of a.conversations)e.push({rowId:v.id,id:v.id});for(const a of x.archived)e.push({rowId:`arch-${a.id}`,id:a.id});return e},[D,x]),U=h.useMemo(()=>({activeId:T,activeRowId:T?ot.find(e=>e.id===T)?.rowId:void 0,firstRowId:ot[0]?.rowId}),[T,ot]),vt=R||m?x.observed:x.observed.slice(0,ae),ft=Math.max(0,x.observed.length-vt.length),gt=e=>!!(m||j.has(e.key)||T&&e.conversations.some(a=>a.id===T)),st=e=>i.jsx(rt,{pinned:M(e.id,u),archived:$(e.id,u),onTogglePin:()=>V(e.id),onToggleArchive:()=>F(e.id)});return i.jsxs("div",{className:"ctx-panel",children:[i.jsxs("div",{className:"ctx-panel-toolbar",children:[i.jsx("input",{ref:mt,type:"text",className:"ctx-panel-search-input",placeholder:"Filter… (/)",value:m,onChange:e=>y(e.target.value),onKeyDown:Ut}),_.length>0&&i.jsx("span",{className:"ctx-panel-rail-stat",title:"Asks waiting on your reply",children:ce(_.length)})]}),i.jsx("div",{ref:pt,className:["ctx-panel-list","ctx-panel-list--scroll",ht===0&&"ctx-panel-list--empty"].filter(Boolean).join(" "),onKeyDown:Pt,children:ht===0?i.jsx(re,{query:m,loading:d,error:s,apiOffline:Tt,onRetry:()=>{f(!0)}}):i.jsxs(i.Fragment,{children:[D.length>0&&i.jsx(B,{label:"Needs you",count:D.length,hint:"Asks waiting on your reply",children:D.map(e=>i.jsx(E,{rowId:`ny-${e.id}`,session:e,nav:U,agentById:I,asksByAgent:k,onSelect:S,onContextMenu:P},`ny-${e.id}`))}),Z>0&&i.jsx(B,{label:"Pinned",count:Z,hint:"Pinned conversations",children:x.pinned.map(e=>i.jsx(E,{rowId:`pin-${e.id}`,session:e,nav:U,agentById:I,asksByAgent:k,pinned:!0,actions:st(e),onSelect:S,onContextMenu:P},`pin-${e.id}`))}),et>0&&i.jsx(B,{label:"Agents",count:et,children:x.agents.map(e=>i.jsx(At,{group:e,isOpen:gt(e),nav:U,agentById:I,asksByAgent:k,prefs:u,onToggle:()=>ut(e.key),onSelect:S,onTogglePin:V,onToggleArchive:F,onContextMenu:P},e.key))}),tt>0&&i.jsx(B,{label:"Channels",count:tt,children:x.channels.map(e=>i.jsx(E,{rowId:e.id,session:e,nav:U,agentById:I,asksByAgent:k,actions:st(e),onSelect:S,onContextMenu:P},e.id))}),nt>0&&i.jsxs(B,{label:"Observed",count:nt,hint:"Agent conversations you’re not in",open:Bt,onToggle:()=>l(e=>!e),children:[vt.map(e=>i.jsx(At,{group:e,isOpen:gt(e),nav:U,agentById:I,asksByAgent:k,prefs:u,observed:!0,onToggle:()=>ut(e.key),onSelect:S,onTogglePin:V,onToggleArchive:F,onContextMenu:P},e.key)),ft>0?i.jsxs("button",{type:"button",className:"ctx-panel-more",onClick:()=>L(!0),children:["+ ",ft," more observed"]}):null]}),Q>0&&i.jsxs(B,{label:"Archived",count:Q,hint:"Hidden from the main rail",children:[i.jsx("button",{type:"button",className:"ctx-panel-more",onClick:()=>J(e=>!e),children:q?"▾ hide archived":`› show ${Q} archived`}),q?x.archived.map(e=>i.jsx(E,{rowId:`arch-${e.id}`,session:e,nav:U,agentById:I,asksByAgent:k,actions:st(e),onSelect:S,onContextMenu:P},`arch-${e.id}`)):null]})]})})]})}function B({label:t,count:n,hint:o,open:r,onToggle:c,children:d}){return c?i.jsxs("section",{className:"ctx-panel-rail-section","aria-label":t,children:[i.jsxs("button",{type:"button",className:"ctx-panel-section-label ctx-panel-section-toggle",title:o,"aria-expanded":!!r,onClick:c,children:[i.jsxs("span",{className:"ctx-panel-section-toggle-label",children:[i.jsx("span",{className:"ctx-panel-section-chevron","aria-hidden":!0,children:r?"▾":"▸"}),t]}),i.jsx("span",{className:"ctx-panel-count",children:n})]}),r?i.jsx("div",{className:"ctx-panel-rail-section-body",children:d}):null]}):i.jsxs("section",{className:"ctx-panel-rail-section","aria-label":t,children:[i.jsxs("div",{className:"ctx-panel-section-label",title:o,children:[i.jsx("span",{children:t}),i.jsx("span",{className:"ctx-panel-count",children:n})]}),i.jsx("div",{className:"ctx-panel-rail-section-body",children:d})]})}function rt({pinned:t,archived:n,onTogglePin:o,onToggleArchive:r}){return i.jsxs(i.Fragment,{children:[i.jsx("button",{type:"button",className:["rr-row-action",t&&"rr-row-action--on"].filter(Boolean).join(" "),title:t?"Unpin":"Pin to top","aria-label":t?"Unpin":"Pin",onClick:c=>{c.stopPropagation(),o()},children:t?"Unpin":"Pin"}),i.jsx("button",{type:"button",className:["rr-row-action",n&&"rr-row-action--on"].filter(Boolean).join(" "),title:n?"Unarchive":"Archive","aria-label":n?"Unarchive":"Archive",onClick:c=>{c.stopPropagation(),r()},children:n?"Restore":"Archive"})]})}function E({session:t,rowId:n,nav:o,agentById:r,asksByAgent:c,pinned:d,depth:s,actions:f,worktreeLabel:p,onSelect:w,onContextMenu:u}){const C=t.id===o.activeId,m=N(t),y=lt(t),j=Mt(t),g=t.agentId?r.get(t.agentId):void 0,b=t.agentId?c.get(t.agentId):void 0,l=!y&&!j&&b?.status==="needs_attention",R=Rt(t,g),L=y?`${t.participantIds.length} members`:R.toLowerCase()===m.toLowerCase()?void 0:R,q=!y&&b?ue(t,g,b):L;return i.jsx(Nt,{depth:s,name:s===1?It(t,g,b):m,sub:s===1?Rt(t,g):q,meta:b?at(b.updatedAt):t.lastMessageAt?at(t.lastMessageAt):void 0,tone:y?"channel":b?de(g,b):g?ct(g.state):"dm",avatarName:s===1?g?.name??It(t,g,b):m,avatarKind:y?"channel":"user",active:C,unread:l,pinned:d,activityLabel:b?Lt(b):void 0,activityTone:b?le(b):void 0,worktreeLabel:p??void 0,title:s===1?pe(t,g,b):void 0,actions:f,tabIndex:qt(n===o.activeRowId,o.activeRowId!==void 0,n===o.firstRowId),onClick:()=>w(t),onContextMenu:u?J=>u(J,t):void 0})}function At({group:t,isOpen:n,nav:o,agentById:r,asksByAgent:c,prefs:d,observed:s,onToggle:f,onSelect:p,onTogglePin:w,onToggleArchive:u,onContextMenu:C}){if(t.conversations.length===1){const l=t.conversations[0];return i.jsx(E,{rowId:l.id,session:l,nav:o,agentById:r,asksByAgent:c,pinned:M(l.id,d),actions:i.jsx(rt,{pinned:M(l.id,d),archived:$(l.id,d),onTogglePin:()=>w(l.id),onToggleArchive:()=>u(l.id)}),onSelect:p,onContextMenu:C})}const m=t.conversations.map(l=>l.agentId?c.get(l.agentId):void 0).filter(l=>!!l),y=m.length,j=m.filter(l=>l.status==="working").length,g=m.filter(l=>l.status==="needs_attention").length,b=t.conversations.some(l=>l.id===o.activeId);return i.jsxs("div",{children:[i.jsx(Nt,{name:t.label,meta:y>0?`${y} active · ${St(t)}`:St(t),tone:j>0?"in_turn":t.bestState,caret:n?"open":"closed",active:b&&!n,unread:!s&&g>0&&!n,activityLabel:y>0?`${y} active`:void 0,activityTone:g>0?"attention":j>0?"working":"pending",onClick:f}),n&&t.conversations.map(l=>{const R=l.agentId?r.get(l.agentId):void 0,L=t.canonicalRoot&&R?.projectRoot&&R.projectRoot!==t.canonicalRoot?$t(R.projectRoot):null;return i.jsx(E,{rowId:l.id,session:l,depth:1,nav:o,agentById:r,asksByAgent:c,pinned:M(l.id,d),worktreeLabel:L,actions:i.jsx(rt,{pinned:M(l.id,d),archived:$(l.id,d),onTogglePin:()=>w(l.id),onToggleArchive:()=>u(l.id)}),onSelect:p,onContextMenu:C},l.id)})]},t.key)}function re({query:t,loading:n,error:o,apiOffline:r,onRetry:c}){const d=t.trim().length>0,s=n?"Loading conversations":r?"Scout server offline":o?"Couldn't load conversations":d?"No matching conversations":"No conversations yet",f=n?"Checking the broker for your conversations, channels, and observed threads.":r?"Start or restart Scout services, then retry.":o||(d?"Try a shorter filter.":"Your conversations, channels, and observed agent threads will show here.");return i.jsxs("div",{className:"ctx-panel-empty-card","data-tone":r||o?"error":"neutral",children:[i.jsx("div",{className:"ctx-panel-empty-card-title",children:s}),i.jsx("div",{className:"ctx-panel-empty-card-detail",children:f}),(r||o)&&i.jsx("button",{type:"button",className:"ctx-panel-empty-card-action",onClick:c,children:"Retry"})]})}function kt(t,n){const o=n.toLowerCase();return N(t).toLowerCase().includes(o)||t.id.toLowerCase().includes(o)||(t.preview??"").toLowerCase().includes(o)||(t.agentName??"").toLowerCase().includes(o)}function ce(t){return t===1?"1 needs a reply":`${t} need a reply`}function Lt(t){return t.status==="queued"?"Starting":t.status==="working"?"Working":t.status==="needs_attention"?"Needs you":t.statusLabel||t.status}function le(t){return t.status==="queued"?"pending":t.status==="needs_attention"?"attention":"working"}function de(t,n){return n.status==="working"?"in_turn":t?ct(t.state):"dm"}function ue(t,n,o){const r=Lt(o),c=z(o.task)??z(o.summary)??z(t.preview)??t.currentBranch??n?.branch??"";return c?`${r} · ${c}`:r}function W(t){return[...t].sort((n,o)=>(o.lastMessageAt??0)-(n.lastMessageAt??0))}function It(t,n,o){const r=o?.task??z(t.preview)??t.currentBranch??n?.branch??"",c=n?.name??t.agentName??N(t);return r?`${c} · ${r}`:c}function pe(t,n,o){const r=[];return o&&r.push(`task: ${o.task}`),t.preview&&r.push(`preview: ${t.preview}`),(t.currentBranch??n?.branch)&&r.push(`branch: ${t.currentBranch??n?.branch}`),n?.harness&&r.push(`harness: ${n.harness}`),r.length>0?r.join(`
|
|
2
|
-
`):void 0}function Rt(t,n){if(lt(t))return Qt(t);const o=n?.handle?.trim().replace(/^@+/,"");return o||(t.agentId?t.agentId.split(".")[0]??t.agentId:N(t))}function z(t){if(!t)return null;const n=t.replace(/\s+/g," ").trim();return n?n.length>60?`${n.slice(0,57)}…`:n:null}function St(t){const n=t.latestUpdate?at(t.latestUpdate):"",o=`${t.conversations.length}`;return n?`${o} · ${n}`:o}export{cn as ChatLeft};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as t}from"./index-sUomXsrf.js";import{u as o}from"./Provider-tFc3jqZ4.js";import{OpsAgentsLeft as m}from"./left-agents-DsOHgDCY.js";import{OpsDefaultLeft as p}from"./left-default-BRCwoCJr.js";import{OpsLanesLeft as i}from"./left-lanes-DNtoRzoV.js";import{OpsMissionLeft as s}from"./left-mission-DsTu2X5Y.js";import{OpsPlanLeft as e}from"./left-plan-CtySjsXC.js";import"./router-Dja9_ygK.js";import"./terminal-sessions-D5CIR2OL.js";import"./api-h5zurxmi.js";import"./sse-CVoGDiKW.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-BlBQhpax.js";import"./DocumentFocusViewer-DU_9BHsD.js";import"./createLucideIcon-DlxlBfLC.js";import"./TextDocumentSurface-C-9EtYqt.js";/* empty css */import"./file-text-i3xTDUjJ.js";import"./x-0XjXwGqq.js";import"./chevron-right-CyUa1zXx.js";import"./code-xml-05TD3uOC.js";import"./arrow-left-WjQIN9J6.js";import"./scout-voice-BZ4KqADJ.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BhZZ5HEq.js";import"./MessageComposerSuggestions-zAUUcLOv.js";import"./NewChatComposer-B5FnPyzS.js";import"./runtime-picker-DOZpZOlt.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-lWOOKezu.js";import"./index-m6dFtY5f.js";import"./HarnessMark-Dm_qm1Ku.js";import"./conversation-model-C4yb6_FA.js";import"./time-Dhsh_2EG.js";import"./NewChatOrigin--pHWUb4V.js";import"./agent-chat-Bfjd9y6c.js";import"./model-Co0zkMIc.js";import"./text-DsBWV_4k.js";import"./chevron-down-BFai6ZfE.js";import"./search-DCT_EvPr.js";import"./chunk-HRAB3GC3-CvwpNg-G.js";/* empty css */import"./use-fleet-active-asks-DLofGhhK.js";import"./RailRow-BTlVAnHS.js";import"./AgentAvatar-CufDA4A-.js";import"./SpriteAvatar-CQs-jC-v.js";import"./agent-identity-xQHedtLl.js";import"./operator-attention-BwSPeheT.js";import"./openContent-C6XO6kr5.js";import"./agent-lanes-model-Bl6xfviL.js";import"./context-budget-DX_fwUs3.js";import"./lane-observe-DrhKkQ3A.js";import"./tail-display-BdyoLvzY.js";import"./lane-edit-display-C_Aujldz.js";import"./lane-roster-store-NE15Oe6M.js";import"./mission-control-store-xQHVQdm8.js";import"./MissionLeftAgentRow-CxlH3dON.js";import"./page-status-BymFEFai.js";import"./FleetSearch-DlWTLl-v.js";function Lt(){const{route:r}=o();if(r.view!=="ops")return null;switch(r.mode){case"mission":return t.jsx(s,{});case"agents":return t.jsx(m,{});case"plan":return t.jsx(e,{});case"lanes":return t.jsx(i,{});default:return t.jsx(p,{})}}export{Lt as OpsLeft};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r,j as t}from"./index-sUomXsrf.js";/* empty css */import"./NewChatComposer-B5FnPyzS.js";import{u as k,e as w}from"./Provider-tFc3jqZ4.js";import{A as S}from"./AgentAvatar-CufDA4A-.js";import{a as g}from"./api-h5zurxmi.js";import{b as y}from"./router-Dja9_ygK.js";import{u as M}from"./sse-CVoGDiKW.js";import{o as A,i as j}from"./surface-activity-B1rgWB1i.js";import{d as N,c as b,e as I,f as C,g as B,h as P}from"./model-Co0zkMIc.js";import"./runtime-picker-DOZpZOlt.js";import"./scout-voice-BZ4KqADJ.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-lWOOKezu.js";import"./createLucideIcon-DlxlBfLC.js";import"./MessageComposerSuggestions-zAUUcLOv.js";import"./index-m6dFtY5f.js";import"./HarnessMark-Dm_qm1Ku.js";import"./conversation-model-C4yb6_FA.js";import"./colors-BtO5_zlx.js";import"./time-Dhsh_2EG.js";import"./NewChatOrigin--pHWUb4V.js";import"./keyboard-nav-BhZZ5HEq.js";import"./agent-chat-Bfjd9y6c.js";import"./x-0XjXwGqq.js";import"./chevron-down-BFai6ZfE.js";import"./search-DCT_EvPr.js";import"./file-text-i3xTDUjJ.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-BlBQhpax.js";import"./DocumentFocusViewer-DU_9BHsD.js";import"./TextDocumentSurface-C-9EtYqt.js";/* empty css */import"./chevron-right-CyUa1zXx.js";import"./code-xml-05TD3uOC.js";import"./arrow-left-WjQIN9J6.js";import"./chunk-HRAB3GC3-CvwpNg-G.js";import"./SpriteAvatar-CQs-jC-v.js";import"./agent-identity-xQHedtLl.js";import"./terminal-sessions-D5CIR2OL.js";import"./index-BWHgHrtv.js";import"./text-DsBWV_4k.js";function W(){const{agents:n,route:d}=k(),m=y(d),l=r.useMemo(()=>w(n,m),[n,m]),[u,h]=r.useState([]),[v,s]=r.useState(null),[a,p]=r.useState(null),c=r.useCallback(async()=>{const[e,i,o]=await Promise.allSettled([g("/api/conversations"),g("/api/fleet"),g("/api/tail/discover")]);e.status==="fulfilled"&&h(e.value),i.status==="fulfilled"&&s(i.value),o.status==="fulfilled"&&p(o.value)},[]);r.useEffect(()=>{c()},[c]),r.useEffect(()=>{const e=()=>{j()&&c()},i=window.setInterval(e,1e4),o=A(e);return()=>{window.clearInterval(i),o()}},[c]),M(()=>{j()&&c()});const x=r.useMemo(()=>{const e=new Map;for(const i of v?.activeAsks??[]){const o=e.get(i.agentId)??[];o.push(i),e.set(i.agentId,o)}return e},[v?.activeAsks]);return{projects:r.useMemo(()=>{const{sessionByAgentId:e}=N(u),i=l.map(f=>b(f,e.get(f.id)??null,x.get(f.id)??[])),o=I(a,Date.now());return C(i,u,o)},[l,u,x,a])}}function Nt(){const{route:n,navigate:d,openContextCapture:m}=k(),{projects:l}=W(),u=n.view==="agents-v2"?n.projectSlug:void 0,h=n.view==="agents-v2"?n.agentId:void 0,v=u??l[0]?.slice.slug;return t.jsxs("div",{className:"ctx-panel s-agents-rail",children:[t.jsx("div",{className:"s-agents-recent s-rail-projects",children:l.length===0?t.jsx("div",{className:"ctx-panel-empty",children:"No projects yet"}):l.map(s=>{const a=B(s),p=P(s),c=s.slice.slug===v&&!h;return t.jsxs("button",{type:"button",className:"s-rail-proj","data-selected":c||void 0,"data-live":a>0||void 0,"data-needs":p||void 0,title:s.slice.root??void 0,onClick:()=>d({view:"agents-v2",projectSlug:s.slice.slug}),children:[t.jsx(S,{name:s.slice.title,size:22,tile:!0,presence:!1}),t.jsxs("span",{className:"s-rail-proj-name","data-idle":a===0||void 0,children:[t.jsx("span",{"aria-hidden":!0,style:{opacity:.4},children:"/"}),s.slice.title]}),a>0?t.jsx("span",{className:"s-rail-proj-count","data-needs":p||void 0,title:p?"needs you":void 0,children:a}):null]},s.slice.key)})}),t.jsxs("div",{className:"s-agents-foot s-rail-foot-icons",children:[t.jsx("button",{type:"button",className:"s-rail-icon",title:"Search","aria-label":"Search",onClick:()=>d({view:"search"}),children:t.jsx(E,{})}),t.jsx("button",{type:"button",className:"s-rail-icon",title:"New chat (⌘⌥N)","aria-label":"New chat",onClick:()=>m(),children:t.jsx(L,{})}),t.jsx("button",{type:"button",className:"s-rail-icon s-rail-icon--end",title:"Settings","aria-label":"Settings",onClick:()=>d({view:"settings"}),children:t.jsx(D,{})})]})]})}function E(){return t.jsxs("svg",{width:"15",height:"15",viewBox:"0 0 16 16",fill:"none","aria-hidden":!0,children:[t.jsx("circle",{cx:"7",cy:"7",r:"4.25",stroke:"currentColor",strokeWidth:"1.4"}),t.jsx("path",{d:"M10.5 10.5 14 14",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})]})}function L(){return t.jsx("svg",{width:"15",height:"15",viewBox:"0 0 16 16",fill:"none","aria-hidden":!0,children:t.jsx("path",{d:"M8 3v10M3 8h10",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})}function D(){return t.jsxs("svg",{width:"15",height:"15",viewBox:"0 0 16 16",fill:"none","aria-hidden":!0,children:[t.jsx("circle",{cx:"8",cy:"8",r:"2.25",stroke:"currentColor",strokeWidth:"1.3"}),t.jsx("path",{d:"M8 1.5v1.6M8 12.9v1.6M14.5 8h-1.6M3.1 8H1.5M12.6 3.4l-1.1 1.1M4.5 11.5l-1.1 1.1M12.6 12.6l-1.1-1.1M4.5 4.5 3.4 3.4",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]})}export{Nt as AgentsLeft};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as e,r as A}from"./index-sUomXsrf.js";import{u as q,g as z,i as P,j as G,k as I,l as H,a as w,r as T}from"./mesh-view-store-D14ihwkF.js";import{u as Q}from"./Provider-tFc3jqZ4.js";import{n as b,a as V}from"./colors-BtO5_zlx.js";import{b as D}from"./mesh-buckets-CfAukILK.js";import{u as J}from"./use-fleet-active-asks-DLofGhhK.js";import{R as h}from"./RailRow-BTlVAnHS.js";import{F as U}from"./FleetSearch-DlWTLl-v.js";import{o as W}from"./openAgent-Bjt57GdM.js";/* empty css */import"./router-Dja9_ygK.js";import"./terminal-sessions-D5CIR2OL.js";import"./api-h5zurxmi.js";import"./sse-CVoGDiKW.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-BlBQhpax.js";import"./DocumentFocusViewer-DU_9BHsD.js";import"./createLucideIcon-DlxlBfLC.js";import"./TextDocumentSurface-C-9EtYqt.js";/* empty css */import"./file-text-i3xTDUjJ.js";import"./x-0XjXwGqq.js";import"./chevron-right-CyUa1zXx.js";import"./code-xml-05TD3uOC.js";import"./arrow-left-WjQIN9J6.js";import"./scout-voice-BZ4KqADJ.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BhZZ5HEq.js";import"./MessageComposerSuggestions-zAUUcLOv.js";import"./NewChatComposer-B5FnPyzS.js";import"./runtime-picker-DOZpZOlt.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-lWOOKezu.js";import"./index-m6dFtY5f.js";import"./HarnessMark-Dm_qm1Ku.js";import"./conversation-model-C4yb6_FA.js";import"./time-Dhsh_2EG.js";import"./NewChatOrigin--pHWUb4V.js";import"./agent-chat-Bfjd9y6c.js";import"./model-Co0zkMIc.js";import"./text-DsBWV_4k.js";import"./chevron-down-BFai6ZfE.js";import"./search-DCT_EvPr.js";import"./chunk-HRAB3GC3-CvwpNg-G.js";import"./AgentAvatar-CufDA4A-.js";import"./SpriteAvatar-CQs-jC-v.js";import"./agent-identity-xQHedtLl.js";import"./openContent-C6XO6kr5.js";const X=["needs_attention","in_turn","in_flight","callable","blocked"],Y={in_turn:"in turn",in_flight:"in flight",needs_attention:"needs attention",callable:"callable",blocked:"blocked"},Z={in_turn:"working",in_flight:"working",needs_attention:"working",callable:"available",blocked:"offline"};function ee({active:a,onToggle:p}){return e.jsx("div",{className:"fleet-pills",role:"group","aria-label":"State filters",children:X.map(o=>{const l=a.has(o);return e.jsx("button",{type:"button",className:`fleet-pill fleet-pill--${Z[o]}${l?" fleet-pill--on":""}`,onClick:()=>p(o),"aria-pressed":l,children:Y[o]},o)})})}const _=10;function te(a){return b(a.state)}function C(a){return a.updatedAt??a.createdAt??0}function Ye(){const{agents:a,navigate:p}=Q(),{meshSnapshot:o,selectedId:l,selectedType:S,query:d,agentStateFilters:u,hiddenMachineIds:g,treeFullMachineIds:F}=q(),L=J(),m=A.useMemo(()=>o?D(a,o):[],[a,o]),y=A.useMemo(()=>{const n=d.trim().toLowerCase();return m.filter(s=>!g.has(s.machineId)).map(s=>{const t=s.agents.filter(r=>u.has(te(r))?n?`${r.name??""} ${r.project??""} ${r.branch??""} ${r.harness??""}`.toLowerCase().includes(n):!0:!1);return{...s,agents:t}})},[m,d,u,g]),f=A.useMemo(()=>{const n=new Map([["this",[]],["peer",[]],["tailnet",[]]]);for(const s of y){const t=s.reachability==="this"?"this":s.reachability==="peer"?"peer":"tailnet";n.get(t)?.push(s)}return n},[y]);if(!o)return e.jsx("div",{className:"ctx-panel ctx-panel--empty",children:e.jsx("div",{className:"ctx-panel-empty-state",children:e.jsx("div",{className:"ctx-panel-empty-hint",children:"Loading mesh…"})})});const $=n=>{const s=m.map(t=>t.machineId);H(n,s),w(n,"node"),T(n)},v=g.size,x=m.length,E=n=>{w(n.id,"agent");const s=n.authorityNodeId??n.homeNodeId;s&&T(s),W(p,n,{returnTo:{view:"mesh"}})},j=(n,s)=>s.length===0?null:e.jsxs("section",{className:"mesh-nav-group",children:[e.jsx("div",{className:"mesh-nav-group-label",children:n}),s.map(t=>{const r=F.has(t.machineId),c=[...t.agents].sort((i,k)=>C(k)-C(i)),M=r?c:c.slice(0,_),N=c.length-M.length,B=l===t.machineId&&S==="node",R=t.agents.filter(i=>V(i.state)).length,K=t.agents.length>0?`${R}/${t.agents.length}`:t.online?"—":"not ready";return e.jsxs("div",{className:"mesh-nav-machine",children:[e.jsx(h,{name:t.machineLabel,meta:K,tone:"neutral",active:B,onClick:()=>$(t.machineId),title:`Focus ${t.machineLabel} on the map`}),M.map(i=>{const k=l===i.id&&S==="agent",O=L.has(i.id);return e.jsx(h,{name:i.name,tone:b(i.state),depth:1,active:k,unread:O,onClick:()=>E(i),title:i.name},i.id)}),!r&&N>0&&e.jsx(h,{name:`see ${N} more`,depth:1,tone:"neutral",onClick:()=>I(t.machineId),title:"Show all agents on this machine"}),r&&c.length>_&&e.jsx(h,{name:"see less",depth:1,tone:"neutral",onClick:()=>I(t.machineId),title:"Show recent agents only"})]},t.machineId)})]},n);return e.jsxs("div",{className:"ctx-panel mesh-nav",children:[e.jsxs("div",{className:"mesh-nav-head",children:[e.jsx(U,{value:d,onChange:z,placeholder:"Find machines or agents…"}),e.jsx(ee,{active:u,onToggle:P}),v>0&&v<x&&e.jsxs("button",{type:"button",className:"mesh-nav-focus-chip",onClick:G,title:"Show all machines",children:[e.jsxs("span",{className:"mesh-nav-focus-chip-label",children:["focused · ",x-v,"/",x]}),e.jsx("span",{className:"mesh-nav-focus-chip-clear","aria-hidden":!0,children:"×"})]})]}),e.jsxs("div",{className:"mesh-nav-tree",children:[j("this host",f.get("this")??[]),j("peers",f.get("peer")??[]),j("tailnet",f.get("tailnet")??[])]})]})}export{Ye as MeshLeft};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r,j as e}from"./index-sUomXsrf.js";/* empty css */import{n as k}from"./colors-BtO5_zlx.js";import{p as C,a as L}from"./api-h5zurxmi.js";import{u as F,m as $,e as D,h as H}from"./Provider-tFc3jqZ4.js";import{b as O}from"./router-Dja9_ygK.js";import{d as B,a as G}from"./operator-attention-BwSPeheT.js";import{u as K}from"./sse-CVoGDiKW.js";import{t as v}from"./time-Dhsh_2EG.js";import{o as P}from"./openAgent-Bjt57GdM.js";import{R as x}from"./RailRow-BTlVAnHS.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-BlBQhpax.js";import"./DocumentFocusViewer-DU_9BHsD.js";import"./createLucideIcon-DlxlBfLC.js";import"./TextDocumentSurface-C-9EtYqt.js";/* empty css */import"./file-text-i3xTDUjJ.js";import"./x-0XjXwGqq.js";import"./chevron-right-CyUa1zXx.js";import"./code-xml-05TD3uOC.js";import"./arrow-left-WjQIN9J6.js";import"./scout-voice-BZ4KqADJ.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BhZZ5HEq.js";import"./MessageComposerSuggestions-zAUUcLOv.js";import"./NewChatComposer-B5FnPyzS.js";import"./runtime-picker-DOZpZOlt.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-lWOOKezu.js";import"./index-m6dFtY5f.js";import"./HarnessMark-Dm_qm1Ku.js";import"./conversation-model-C4yb6_FA.js";import"./NewChatOrigin--pHWUb4V.js";import"./agent-chat-Bfjd9y6c.js";import"./model-Co0zkMIc.js";import"./text-DsBWV_4k.js";import"./chevron-down-BFai6ZfE.js";import"./search-DCT_EvPr.js";import"./chunk-HRAB3GC3-CvwpNg-G.js";import"./terminal-sessions-D5CIR2OL.js";import"./index-BWHgHrtv.js";import"./openContent-C6XO6kr5.js";import"./AgentAvatar-CufDA4A-.js";import"./SpriteAvatar-CQs-jC-v.js";import"./agent-identity-xQHedtLl.js";const U=new Set(["message.posted","flight.updated","collaboration.event.appended","agent.updated"]),V=4,z=4,Q=3,N="/api/fleet",X=3e4;function Xt({prepend:t}){const{agents:o,agentsLoaded:a,navigate:c,route:n}=F(),[i]=r.useState(()=>C(N,X)),[l,E]=r.useState(i),[A,T]=r.useState(i!==null),[j,b]=r.useState(()=>new Set),p=O(n),I=r.useMemo(()=>$(o,p),[o,p]),u=r.useMemo(()=>D(o,p),[o,p]),m=r.useMemo(()=>H(l,I),[l,I]),d=r.useCallback(async()=>{try{E(await L(N))}catch{}finally{T(!0)}},[]);r.useEffect(()=>{d()},[d]),K(s=>{U.has(s.kind)&&d()});const w=r.useMemo(()=>Z(u).slice(0,V),[u]),R=r.useMemo(()=>(m?.activity??[]).slice(0,z),[m]),_=r.useMemo(()=>(m?.needsAttention??[]).filter(s=>!j.has(s.recordId)).slice(0,Q),[m,j]),M=r.useCallback(async s=>{b(h=>new Set(h).add(s.recordId));try{await B({recordKind:s.kind,recordId:s.recordId,itemUpdatedAt:s.updatedAt})}catch{b(h=>{const S=new Set(h);return S.delete(s.recordId),S});return}d()},[d]);return e.jsxs("div",{className:"ctx-panel base-rail",children:[t?e.jsx("div",{className:"base-rail-prepend",children:t}):null,e.jsx(Y,{agents:w,totalCount:u.length,loading:!a,onSelect:s=>P(c,s,{returnTo:n}),onSeeAll:()=>c({view:"agents-v2"})}),e.jsx(J,{items:R,loading:!A,onSelect:s=>c(tt(s)),onSeeAll:()=>c({view:"activity"})}),e.jsx(W,{items:_,loading:!A,onSelect:s=>c(G(s)),onDismiss:s=>{M(s)}})]})}function Y({agents:t,totalCount:o,loading:a,onSelect:c,onSeeAll:n}){return e.jsxs("section",{className:"ctx-panel-section base-rail-section",children:[e.jsx(g,{title:"Recent agents",onSeeAll:o>0?n:void 0}),a?e.jsx(f,{}):t.length===0?e.jsx("div",{className:"ctx-panel-empty",children:"No agents yet"}):t.map(i=>e.jsx(x,{name:i.name||i.id,meta:i.updatedAt?v(i.updatedAt):void 0,tone:k(i.state),title:q(i),onClick:()=>c(i)},i.id))]})}function q(t){const o=[];return t.project&&o.push(`project: ${t.project}`),t.branch&&o.push(`branch: ${t.branch}`),t.harness&&o.push(`harness: ${t.harness}`),o.join(`
|
|
2
|
-
`)}function J({items:t,loading:o,onSelect:a,onSeeAll:c}){return e.jsxs("section",{className:"ctx-panel-section base-rail-section",children:[e.jsx(g,{title:"Recent activity",meta:(t.length>0,void 0),onSeeAll:t.length>0?c:void 0}),o?e.jsx(f,{}):t.length===0?e.jsx("div",{className:"ctx-panel-empty",children:"Quiet so far"}):t.map(n=>{const i=n.actorName??n.agentName??n.agentId??"system",l=n.title??n.summary??y(n.kind);return e.jsx(x,{name:l,meta:n.ts?v(n.ts):void 0,tone:"neutral",title:`${i} · ${y(n.kind)}`,onClick:()=>a(n)},n.id)})]})}function W({items:t,loading:o,onSelect:a,onDismiss:c}){return e.jsxs("section",{className:"ctx-panel-section base-rail-section",children:[e.jsx(g,{title:"Needs attention",meta:t.length>0?`${t.length}`:void 0}),o?e.jsx(f,{rows:2}):t.length===0?e.jsx("div",{className:"ctx-panel-empty",children:"All clear"}):t.map(n=>{const i=n.agentName??n.agentId??"operator";return e.jsx(x,{name:n.title,meta:v(n.updatedAt),tone:"in_turn",unread:!0,title:`${i} · ${n.kind}`,onClick:()=>a(n),actions:e.jsx("button",{type:"button",className:"rr-row-action",title:"Dismiss — stop asking until this changes","aria-label":"Dismiss",onClick:l=>{l.stopPropagation(),c(n)},children:"Dismiss"})},n.recordId)})]})}function f({rows:t=3}){return e.jsx("div",{className:"base-rail-loading",role:"status","aria-label":"Loading",children:Array.from({length:t},(o,a)=>e.jsx("span",{"aria-hidden":"true"},a))})}function g({title:t,meta:o,onSeeAll:a}){return e.jsxs("div",{className:"ctx-panel-section-label base-rail-section-label",children:[e.jsx("span",{children:t}),e.jsxs("span",{className:"base-rail-section-trailing",children:[o?e.jsx("span",{className:"ctx-panel-count",children:o}):null,a?e.jsx("button",{type:"button",className:"base-rail-see-all",onClick:a,children:"all"}):null]})]})}function Z(t){return[...t].sort((o,a)=>(a.updatedAt??0)-(o.updatedAt??0))}function y(t){switch(t){case"message":return"Message";case"invocation":return"Invocation";case"flight":return"Flight update";case"collaboration":return"Collaboration";default:return t.replace(/_/g," ")}}function tt(t){return t.conversationId?{view:"conversation",conversationId:t.conversationId}:t.agentId?{view:"agents-v2",agentId:t.agentId}:{view:"activity"}}export{Xt as HomeLeft};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r,j as o}from"./index-sUomXsrf.js";/* empty css */import{a as j}from"./api-h5zurxmi.js";import{u as v}from"./sse-CVoGDiKW.js";import{u as N}from"./Provider-tFc3jqZ4.js";import{u as g}from"./use-fleet-active-asks-DLofGhhK.js";import{i as w}from"./colors-BtO5_zlx.js";import{R as a}from"./RailRow-BTlVAnHS.js";import"./index-BWHgHrtv.js";import"./router-Dja9_ygK.js";import"./terminal-sessions-D5CIR2OL.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-BlBQhpax.js";import"./DocumentFocusViewer-DU_9BHsD.js";import"./createLucideIcon-DlxlBfLC.js";import"./TextDocumentSurface-C-9EtYqt.js";/* empty css */import"./file-text-i3xTDUjJ.js";import"./x-0XjXwGqq.js";import"./chevron-right-CyUa1zXx.js";import"./code-xml-05TD3uOC.js";import"./arrow-left-WjQIN9J6.js";import"./scout-voice-BZ4KqADJ.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BhZZ5HEq.js";import"./MessageComposerSuggestions-zAUUcLOv.js";import"./NewChatComposer-B5FnPyzS.js";import"./runtime-picker-DOZpZOlt.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-lWOOKezu.js";import"./index-m6dFtY5f.js";import"./HarnessMark-Dm_qm1Ku.js";import"./conversation-model-C4yb6_FA.js";import"./time-Dhsh_2EG.js";import"./NewChatOrigin--pHWUb4V.js";import"./agent-chat-Bfjd9y6c.js";import"./model-Co0zkMIc.js";import"./text-DsBWV_4k.js";import"./chevron-down-BFai6ZfE.js";import"./search-DCT_EvPr.js";import"./chunk-HRAB3GC3-CvwpNg-G.js";import"./AgentAvatar-CufDA4A-.js";import"./SpriteAvatar-CQs-jC-v.js";import"./agent-identity-xQHedtLl.js";const $=new Set(["message.posted","conversation.upserted","agent.updated"]);function k(e){const n=x(e.cwd),m=x(e.projectRoot);return e.authorityNodeName??e.homeNodeName??e.authorityNodeId??e.homeNodeId??e.transport??n??m??"local"}function b(e){return e.project??e.role??e.agentClass??"Unassigned"}function x(e){if(!e)return null;const n=e.split("/").filter(Boolean);return n[n.length-1]??null}function ht(){const{agents:e,navigate:n}=N(),[m,f]=r.useState([]),p=g(),c=r.useCallback(async()=>{const t=await j("/api/conversations").catch(()=>[]);f(t)},[]);r.useEffect(()=>{c()},[c]),v(t=>{$.has(t.kind)&&c()});const h=r.useMemo(()=>e.filter(t=>w(t.state)).length,[e]),l=r.useMemo(()=>{let t=0;for(const s of p.values())(s.status==="failed"||s.status==="needs_attention")&&(t+=1);return t},[p]),u=r.useMemo(()=>{const t=new Map;for(const s of e){const i=b(s);t.set(i,(t.get(i)??0)+1)}return[...t.entries()].sort((s,i)=>i[1]-s[1]).slice(0,8)},[e]),d=r.useMemo(()=>{const t=new Map;for(const s of e){const i=k(s);t.set(i,(t.get(i)??0)+1)}return[...t.entries()].sort((s,i)=>i[1]-s[1]).slice(0,8)},[e]);return o.jsxs("div",{className:"ctx-panel",children:[o.jsxs("section",{className:"ctx-panel-section",children:[o.jsx("div",{className:"ctx-panel-section-label",children:"Agents"}),o.jsx(a,{name:"Overview",meta:`${e.length}`,tone:"neutral",onClick:()=>n({view:"inbox"})}),o.jsx(a,{name:"Agents",meta:`${h}`,tone:"callable",active:!0,onClick:()=>n({view:"ops",mode:"agents"})}),o.jsx(a,{name:"Sessions",meta:`${m.length}`,tone:"neutral",onClick:()=>n({view:"sessions"})}),o.jsx(a,{name:"Alerts",meta:`${l}`,tone:l>0?"in_turn":"neutral",unread:l>0,onClick:()=>n({view:"activity"})})]}),o.jsxs("section",{className:"ctx-panel-section",children:[o.jsx("div",{className:"ctx-panel-section-label",children:"Projects"}),u.length===0?o.jsx("div",{className:"ctx-panel-empty",children:"No projects"}):u.map(([t,s])=>o.jsx(a,{name:t,meta:`${s}`,tone:"neutral",title:`${s} agent${s===1?"":"s"} on ${t}`},t))]}),o.jsxs("section",{className:"ctx-panel-section",children:[o.jsx("div",{className:"ctx-panel-section-label",children:"Machines"}),d.length===0?o.jsx("div",{className:"ctx-panel-empty",children:"No machines"}):d.map(([t,s])=>o.jsx(a,{name:t,meta:`${s}`,tone:"neutral",title:`${s} agent${s===1?"":"s"} on ${t}`},t))]})]})}export{ht as OpsAgentsLeft};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r,j as n}from"./index-sUomXsrf.js";import{f as ee,b as ne,c as ae,s as te}from"./terminal-sessions-D5CIR2OL.js";import{a as se,b as ie,r as O,m as re}from"./keyboard-nav-BhZZ5HEq.js";import{u as le}from"./Provider-tFc3jqZ4.js";import{c as oe}from"./colors-BtO5_zlx.js";import{r as M,c as ce}from"./terminal-relay-B5Sma7fK.js";import{s as me,t as f,L as _,P as de}from"./session-table-sAVe44a4.js";/* empty css */import{R as ve}from"./refresh-cw-D8PFyhUa.js";import{C as ue}from"./chevron-right-CyUa1zXx.js";import{E as B}from"./eye-So8tNNK6.js";import{T as he}from"./terminal-DXQISjZn.js";import"./api-h5zurxmi.js";import"./router-Dja9_ygK.js";import"./sse-CVoGDiKW.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-BlBQhpax.js";import"./DocumentFocusViewer-DU_9BHsD.js";import"./createLucideIcon-DlxlBfLC.js";import"./TextDocumentSurface-C-9EtYqt.js";/* empty css */import"./file-text-i3xTDUjJ.js";import"./x-0XjXwGqq.js";import"./code-xml-05TD3uOC.js";import"./arrow-left-WjQIN9J6.js";import"./scout-voice-BZ4KqADJ.js";import"./fx-z37u1o2z.js";import"./MessageComposerSuggestions-zAUUcLOv.js";import"./NewChatComposer-B5FnPyzS.js";import"./runtime-picker-DOZpZOlt.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-lWOOKezu.js";import"./index-m6dFtY5f.js";import"./HarnessMark-Dm_qm1Ku.js";import"./conversation-model-C4yb6_FA.js";import"./time-Dhsh_2EG.js";import"./NewChatOrigin--pHWUb4V.js";import"./agent-chat-Bfjd9y6c.js";import"./model-Co0zkMIc.js";import"./text-DsBWV_4k.js";import"./chevron-down-BFai6ZfE.js";import"./search-DCT_EvPr.js";import"./chunk-HRAB3GC3-CvwpNg-G.js";const pe=8e3,xe=[{id:"recent",label:"Recent"},{id:"name",label:"A–Z"}];function vn(){const{route:a,navigate:i,agents:o}=le(),[l,h]=r.useState({state:"loading",sessions:[]}),[y,q]=r.useState(""),[p,H]=r.useState("recent"),[P,Q]=r.useState(!1),[Z,C]=r.useState(null),[T,A]=r.useState(null),$=r.useRef(null),L=r.useRef(null),G=se(),J=re(()=>L.current);ie(r.useCallback(()=>$.current,[]));const x=r.useCallback((e={})=>{e.silent||h(t=>({state:"loading",sessions:t.sessions})),ee({includeDiscovered:!0}).then(t=>{h({state:"ready",sessions:t})}).catch(t=>{e.silent||h(s=>({state:"failed",sessions:s.sessions,error:t instanceof Error?t.message:String(t)}))})},[]);r.useEffect(()=>{x()},[x]),r.useEffect(()=>{const e=()=>{document.visibilityState==="visible"&&x({silent:!0})},t=window.setInterval(e,pe);return window.addEventListener("focus",e),document.addEventListener("visibilitychange",e),()=>{window.clearInterval(t),window.removeEventListener("focus",e),document.removeEventListener("visibilitychange",e)}},[x]);const c=r.useMemo(()=>me(ne(l.sessions),p==="recent"?{column:"activity",direction:"desc"}:{column:"name",direction:"asc"}),[p,l.sessions]),b=r.useMemo(()=>fe(o,p).filter(e=>{const t=M(e);return t?!c.some(s=>s.surface.backend===t.backend&&s.surface.sessionName===t.sessionName&&(t.paneId==null||s.surface.paneId===t.paneId)):!0}),[o,c,p]),m=y.trim().toLowerCase(),j=m?c.filter(e=>e.searchable.includes(m)):c,g=j.filter(e=>f(e)==="current"),w=j.filter(e=>f(e)==="inactive"),v=j.filter(e=>f(e)==="review"),z=m?w.length+v.length:c.filter(e=>f(e)!=="current").length,F=m?v.length:c.filter(e=>f(e)==="review").length,N=P||!!m,d=m?b.filter(e=>je(e).includes(m)):b,U=a.view==="terminal"?a.terminalSurfaceKey??null:null,K=a.view==="terminal"?a.terminalSessionId??null:null,k=e=>ae(e.key,U)&&(!K||e.session.id===K),S=a.view==="terminal"&&a.agentId?`agent:${a.agentId}`:null,D=!!(g.some(k)||N&&[...w,...v].some(k)||S!=null&&d.some(e=>`agent:${e.id}`===S)),W=g[0]?.id??(N?w[0]?.id??v[0]?.id:void 0)??(d[0]?`agent:${d[0].id}`:void 0),X=l.state==="loading"?"Syncing":m?`${j.length+d.length}/${c.length+b.length}`:`${c.length+b.length} targets`,I=(e,t)=>({view:"terminal",terminalSessionId:e.session.id,terminalSurfaceKey:te(e.surface),...t?{mode:t}:{}}),R=(e,t="takeover")=>({view:"terminal",agentId:e.id,mode:t}),Y=async e=>{if(e.surface.backend==="tmux"&&window.confirm(`Release inactive terminal ${e.surface.sessionName}? The tmux surface will stop, but any associated Scout agent remains available and can be started again.`)){C(e.id),A(null);try{await ce({backend:"tmux",sessionName:e.surface.sessionName,paneId:e.surface.paneId??null,socketDir:e.surface.socketDir??null},"release"),x({silent:!0})}catch(t){A(t instanceof Error?t.message:String(t))}finally{C(null)}}},E=e=>{const t=k(e),s=f(e),u=Z===e.id;return n.jsxs("div",{className:`terminal-nav-row${t?" terminal-nav-row--active":""}${s==="review"?" terminal-nav-row--review":""}`,title:e.surface.sessionName,children:[n.jsxs("button",{type:"button","data-list-primary":!0,className:"terminal-nav-row-select",tabIndex:O(t,D,e.id===W),onClick:()=>i(I(e)),children:[n.jsx(he,{className:"terminal-nav-row-icon",size:14,strokeWidth:1.7}),n.jsxs("span",{className:"terminal-nav-row-main",children:[n.jsx("span",{className:"terminal-nav-row-title",children:n.jsx("span",{children:e.title})}),n.jsx("span",{className:"terminal-nav-row-detail",children:e.detail||e.session.sourceSessionId})]}),n.jsxs("span",{className:"terminal-nav-badges",children:[n.jsx("span",{className:"terminal-nav-badge terminal-nav-badge--backend",children:e.surface.backend}),n.jsx("span",{className:`terminal-nav-badge${s==="review"?" terminal-nav-badge--review":""}`,children:s==="current"?e.condition:s})]})]}),n.jsxs("div",{className:"terminal-nav-row-actions",children:[n.jsxs("button",{type:"button",className:`terminal-nav-action${a.view==="terminal"&&t&&a.mode==="takeover"?" terminal-nav-action--selected":""}`,onClick:()=>i(I(e,"takeover")),title:"Enter this terminal","aria-label":"Enter this terminal",children:[n.jsx(_,{size:12,strokeWidth:1.8}),n.jsx("span",{children:"Enter"})]}),n.jsxs("button",{type:"button",className:`terminal-nav-action${a.view==="terminal"&&t&&a.mode==="observe"?" terminal-nav-action--selected":""}`,onClick:()=>i(I(e,"observe")),title:"Observe this terminal read-only","aria-label":"Observe this terminal read-only",children:[n.jsx(B,{size:12,strokeWidth:1.8}),n.jsx("span",{children:"Observe"})]}),s==="review"&&e.surface.backend==="tmux"&&n.jsxs("button",{type:"button",className:"terminal-nav-action terminal-nav-action--release",onClick:()=>{Y(e)},disabled:u,title:"Release this inactive tmux surface; keep the agent","aria-label":"Release this inactive tmux surface; keep the agent",children:[n.jsx(de,{size:12,strokeWidth:1.8}),n.jsx("span",{children:u?"Releasing":"Release"})]})]})]},e.id)};return n.jsxs("div",{className:"ctx-panel terminal-nav",children:[n.jsxs("div",{className:"terminal-nav-head",children:[n.jsxs("div",{children:[n.jsx("div",{className:"terminal-nav-title",children:"Terminals"}),n.jsx("div",{className:"terminal-nav-summary",children:X})]}),n.jsx("button",{type:"button",className:"terminal-nav-refresh",onClick:()=>x(),disabled:l.state==="loading",title:"Refresh terminals","aria-label":"Refresh terminals",children:n.jsx(ve,{size:14,strokeWidth:1.8})})]}),n.jsxs("div",{className:"ctx-panel-toolbar terminal-nav-toolbar",children:[n.jsx("input",{ref:$,type:"text",className:"ctx-panel-search-input",placeholder:"Search… (/)",value:y,onChange:e=>q(e.target.value),onKeyDown:J}),n.jsx("div",{className:"ctx-panel-sort",role:"group","aria-label":"Sort terminals",children:xe.map(e=>n.jsx("button",{type:"button",title:e.id==="recent"?"Sort by most recent":"Sort alphabetically","aria-pressed":p===e.id,className:`ctx-panel-sort-option${p===e.id?" ctx-panel-sort-option--active":""}`,onClick:()=>H(e.id),children:e.label},e.id))})]}),l.state==="failed"&&n.jsx("div",{className:"terminal-nav-error",children:l.error}),T&&n.jsx("div",{className:"terminal-nav-error",children:T}),n.jsx("div",{ref:L,className:"terminal-nav-list",onKeyDown:G,children:j.length===0&&d.length===0&&l.state!=="loading"?n.jsx("div",{className:"ctx-panel-empty",children:c.length+b.length===0?"No terminal targets":"No matches"}):n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"terminal-nav-section",children:[n.jsxs("div",{className:"terminal-nav-section-title",children:[n.jsx("span",{children:"Sessions"}),n.jsx("span",{children:g.length})]}),g.map(E),g.length===0&&l.state!=="loading"&&n.jsx("div",{className:"terminal-nav-empty",children:"No sessions"})]}),z>0&&n.jsxs("div",{className:"terminal-nav-section terminal-nav-section--inactive",children:[n.jsxs("button",{type:"button",className:"terminal-nav-inactive-toggle","aria-expanded":N,onClick:()=>Q(e=>!e),children:[n.jsx(ue,{size:13,strokeWidth:1.8}),n.jsx("span",{children:"Inactive"}),n.jsx("span",{children:z}),F>0&&n.jsxs("span",{className:"terminal-nav-review-count",children:[F," review"]})]}),N&&n.jsxs(n.Fragment,{children:[w.map(E),v.length>0&&n.jsxs("div",{className:"terminal-nav-section-title terminal-nav-section-title--review",children:[n.jsx("span",{children:"Review after 30 days"}),n.jsx("span",{children:v.length})]}),v.map(E)]})]}),n.jsxs("div",{className:"terminal-nav-section",children:[n.jsxs("div",{className:"terminal-nav-section-title",children:[n.jsx("span",{children:"Available agents"}),n.jsx("span",{children:d.length})]}),d.map(e=>{const t=`agent:${e.id}`,s=t===S,u=M(e);return n.jsxs("div",{className:`terminal-nav-row terminal-nav-row--agent${s?" terminal-nav-row--active":""}`,title:e.name,children:[n.jsxs("button",{type:"button","data-list-primary":!0,className:"terminal-nav-row-select",tabIndex:O(s,D,t===W),onClick:()=>i(R(e)),children:[n.jsx("span",{className:`terminal-nav-agent-dot${u?" terminal-nav-agent-dot--bound":""}`,"aria-hidden":!0}),n.jsxs("span",{className:"terminal-nav-row-main",children:[n.jsx("span",{className:"terminal-nav-row-title",children:n.jsx("span",{children:e.name})}),n.jsx("span",{className:"terminal-nav-row-detail",children:be(e)})]}),n.jsxs("span",{className:"terminal-nav-badges",children:[n.jsx("span",{className:"terminal-nav-badge terminal-nav-badge--backend",children:u?.backend??e.harness??"agent"}),n.jsx("span",{className:"terminal-nav-badge",children:u?"bound":oe(e.state)})]})]}),n.jsxs("div",{className:"terminal-nav-row-actions",children:[n.jsxs("button",{type:"button",className:`terminal-nav-action${a.view==="terminal"&&s&&a.mode==="takeover"?" terminal-nav-action--selected":""}`,onClick:()=>i(R(e,"takeover")),title:"Enter this agent terminal","aria-label":"Enter this agent terminal",children:[n.jsx(_,{size:12,strokeWidth:1.8}),n.jsx("span",{children:"Enter"})]}),u&&n.jsxs("button",{type:"button",className:`terminal-nav-action${a.view==="terminal"&&s&&a.mode==="observe"?" terminal-nav-action--selected":""}`,onClick:()=>i(R(e,"observe")),title:"Observe this agent terminal read-only","aria-label":"Observe this agent terminal read-only",children:[n.jsx(B,{size:12,strokeWidth:1.8}),n.jsx("span",{children:"Observe"})]})]})]},e.id)}),d.length===0&&n.jsx("div",{className:"terminal-nav-empty",children:"No agents"})]})]})})]})}function fe(a,i){return[...a].filter(o=>!o.retiredFromFleet&&!o.staleLocalRegistration).sort((o,l)=>{const h=o.name.localeCompare(l.name,void 0,{numeric:!0,sensitivity:"base"});return i==="name"?h||o.id.localeCompare(l.id):(l.updatedAt??0)-(o.updatedAt??0)||h||o.id.localeCompare(l.id)})}function be(a){const i=a.project??V(a.cwd)??V(a.projectRoot)??a.definitionId;return[a.handle?`@${a.handle}`:null,a.harness,i,a.branch].filter(Boolean).join(" · ")}function je(a){return[a.name,a.handle,a.harness,a.state,a.project,a.branch,a.cwd,a.projectRoot,a.definitionId].filter(Boolean).join(" ").toLowerCase()}function V(a){const i=a?.trim().replace(/\/+$/u,"");return i?i.split("/").pop()||i:null}export{vn as TerminalLeft};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r,j as o}from"./index-sUomXsrf.js";/* empty css */import{a as h}from"./api-h5zurxmi.js";import{n as f}from"./colors-BtO5_zlx.js";import{a as g,r as j}from"./operator-attention-BwSPeheT.js";import{u as N}from"./sse-CVoGDiKW.js";import{t as c}from"./time-Dhsh_2EG.js";import{u as A}from"./Provider-tFc3jqZ4.js";import{o as l}from"./openContent-C6XO6kr5.js";import{R as m}from"./RailRow-BTlVAnHS.js";import"./index-BWHgHrtv.js";import"./router-Dja9_ygK.js";import"./terminal-sessions-D5CIR2OL.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-BlBQhpax.js";import"./DocumentFocusViewer-DU_9BHsD.js";import"./createLucideIcon-DlxlBfLC.js";import"./TextDocumentSurface-C-9EtYqt.js";/* empty css */import"./file-text-i3xTDUjJ.js";import"./x-0XjXwGqq.js";import"./chevron-right-CyUa1zXx.js";import"./code-xml-05TD3uOC.js";import"./arrow-left-WjQIN9J6.js";import"./scout-voice-BZ4KqADJ.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BhZZ5HEq.js";import"./MessageComposerSuggestions-zAUUcLOv.js";import"./NewChatComposer-B5FnPyzS.js";import"./runtime-picker-DOZpZOlt.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-lWOOKezu.js";import"./index-m6dFtY5f.js";import"./HarnessMark-Dm_qm1Ku.js";import"./conversation-model-C4yb6_FA.js";import"./NewChatOrigin--pHWUb4V.js";import"./agent-chat-Bfjd9y6c.js";import"./model-Co0zkMIc.js";import"./text-DsBWV_4k.js";import"./chevron-down-BFai6ZfE.js";import"./search-DCT_EvPr.js";import"./chunk-HRAB3GC3-CvwpNg-G.js";import"./AgentAvatar-CufDA4A-.js";import"./SpriteAvatar-CQs-jC-v.js";import"./agent-identity-xQHedtLl.js";const w=[{name:"Control",route:{view:"ops",mode:"mission"},active:e=>e.view==="ops"&&(e.mode===void 0||e.mode==="mission")},{name:"Dispatch",route:{view:"broker"},active:e=>e.view==="broker"},{name:"Mesh",route:{view:"mesh"},active:e=>e.view==="mesh"},{name:"Tail",route:{view:"ops",mode:"tail"},active:e=>e.view==="ops"&&e.mode==="tail"},{name:"Runtime",route:{view:"ops",mode:"atop"},active:e=>e.view==="ops"&&e.mode==="atop"}];function xt(){const{navigate:e,route:n}=A(),[p,d]=r.useState(null),s=r.useCallback(async()=>{const t=await h("/api/fleet").catch(()=>null);d(t)},[]);r.useEffect(()=>{s()},[s]),N(t=>{(t.kind==="message.posted"||t.kind==="flight.updated"||t.kind==="collaboration.event.appended")&&s()});const i=p?.needsAttention??[],a=(p?.activeAsks??[]).filter(t=>t.status!=="needs_attention"),u=t=>{l(e,g(t),{returnTo:n})},v=t=>{l(e,j(t),{returnTo:n})};return o.jsxs("div",{className:"ctx-panel ctx-panel--ops",children:[o.jsxs("section",{className:"ctx-panel-section",children:[o.jsx("div",{className:"ctx-panel-section-label",children:"Surfaces"}),w.map(t=>o.jsx(m,{name:t.name,tone:"neutral",active:t.active(n),onClick:()=>e(t.route)},t.name))]}),o.jsxs("section",{className:"ctx-panel-section",children:[o.jsxs("div",{className:"ctx-panel-section-label",children:["Needs you",i.length>0&&o.jsx("span",{className:"ctx-panel-count",children:i.length})]}),i.length===0?o.jsx("div",{className:"ctx-panel-empty",children:"All clear"}):i.slice(0,4).map(t=>{const x=t.agentName??t.agentId??"operator";return o.jsx(m,{name:t.title,meta:c(t.updatedAt),tone:"in_turn",unread:!0,title:`${x} · ${t.kind}`,onClick:()=>u(t)},t.recordId)})]}),o.jsxs("section",{className:"ctx-panel-section",children:[o.jsxs("div",{className:"ctx-panel-section-label",children:["Active",a.length>0&&o.jsx("span",{className:"ctx-panel-count",children:a.length})]}),a.length===0?o.jsx("div",{className:"ctx-panel-empty",children:"No active requests"}):a.slice(0,10).map(t=>o.jsx(m,{name:t.task,meta:c(t.updatedAt),tone:f(t.agentState),title:`${t.agentName??t.agentId} · ${t.statusLabel}`,onClick:()=>v(t)},t.invocationId))]})]})}export{xt as OpsDefaultLeft};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as f,j as t}from"./index-sUomXsrf.js";/* empty css */import{t as x}from"./time-Dhsh_2EG.js";import{u as b}from"./Provider-tFc3jqZ4.js";import{R as g}from"./RailRow-BTlVAnHS.js";import{S as v}from"./SpriteAvatar-CQs-jC-v.js";import{n as L}from"./colors-BtO5_zlx.js";import{b as h,c as j,l as p,d as N}from"./agent-lanes-model-Bl6xfviL.js";import{u as _,b as A,g as n}from"./lane-roster-store-NE15Oe6M.js";import"./router-Dja9_ygK.js";import"./terminal-sessions-D5CIR2OL.js";import"./api-h5zurxmi.js";import"./sse-CVoGDiKW.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-BlBQhpax.js";import"./DocumentFocusViewer-DU_9BHsD.js";import"./createLucideIcon-DlxlBfLC.js";import"./TextDocumentSurface-C-9EtYqt.js";/* empty css */import"./file-text-i3xTDUjJ.js";import"./x-0XjXwGqq.js";import"./chevron-right-CyUa1zXx.js";import"./code-xml-05TD3uOC.js";import"./arrow-left-WjQIN9J6.js";import"./scout-voice-BZ4KqADJ.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BhZZ5HEq.js";import"./MessageComposerSuggestions-zAUUcLOv.js";import"./NewChatComposer-B5FnPyzS.js";import"./runtime-picker-DOZpZOlt.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-lWOOKezu.js";import"./index-m6dFtY5f.js";import"./HarnessMark-Dm_qm1Ku.js";import"./conversation-model-C4yb6_FA.js";import"./NewChatOrigin--pHWUb4V.js";import"./agent-chat-Bfjd9y6c.js";import"./model-Co0zkMIc.js";import"./text-DsBWV_4k.js";import"./chevron-down-BFai6ZfE.js";import"./search-DCT_EvPr.js";import"./chunk-HRAB3GC3-CvwpNg-G.js";import"./AgentAvatar-CufDA4A-.js";import"./agent-identity-xQHedtLl.js";import"./context-budget-DX_fwUs3.js";import"./lane-observe-DrhKkQ3A.js";import"./tail-display-BdyoLvzY.js";import"./lane-edit-display-C_Aujldz.js";function c(s,e,i){const a=`[data-lane-id="${s.replace(/["\\]/g,"\\$&")}"]`,r=typeof document<"u"?document.querySelector(a):null;if(r){r.scrollIntoView({behavior:"smooth",inline:"center",block:"nearest"}),r.focus();return}e&&i({view:"agents-v2",agentId:e,tab:"profile"})}function R(s){return s.filter(e=>!h(e)&&j(e)).sort((e,i)=>{const a=(i.updatedAt??0)-(e.updatedAt??0);return a!==0?a:p(e,"scout").localeCompare(p(i,"scout"))}).map(e=>({id:e.id,label:p(e,"scout"),statusLabel:N(e,"scout"),tone:L(e.state,e),agentId:e.id,updatedAt:e.updatedAt??void 0}))}function _o(){const{agents:s,navigate:e}=b(),i=_(),a=A(),r=f.useMemo(()=>R(s),[s]),l=i??r,d=l.some(o=>o.floor);return t.jsx("div",{className:"ctx-panel ctx-panel--ops",children:t.jsxs("section",{className:"ctx-panel-section",children:[t.jsxs("div",{className:"ctx-panel-section-label",children:[d?"Fleet":"Lanes",l.length>0&&t.jsx("span",{className:"ctx-panel-count",children:l.length})]}),l.length===0?t.jsx("div",{className:"ctx-panel-empty",children:"No active lanes"}):l.map(o=>o.floor?t.jsxs("button",{type:"button",className:`agent-floor__ledger-row is-rail${a===o.id?" is-focus":""}`,onClick:()=>{const m=n();m?m.onSelect(o.id):c(o.id,o.agentId,e)},onPointerEnter:()=>n()?.onHover(o.id),onPointerLeave:()=>n()?.onHover(null),children:[t.jsxs("span",{className:"agent-floor__ledger-id",children:[t.jsx(v,{name:o.label,size:16,tile:!0}),t.jsx("span",{className:"agent-floor__ledger-name",children:o.label}),t.jsx("span",{className:`agent-floor__card-dot${o.floor.live?" is-live":""}`})]}),t.jsx("span",{className:"agent-floor__ledger-strip",children:o.floor.strip.slice(-6).map((m,u)=>t.jsx("span",{className:`agent-floor__ledger-cell is-${m}`},u))})]},o.id):t.jsx(g,{name:o.label,sub:o.statusLabel||void 0,meta:o.updatedAt?x(o.updatedAt):void 0,tone:o.tone,title:o.statusLabel,onClick:()=>c(o.id,o.agentId,e)},o.id))]})})}export{_o as OpsLanesLeft};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as c,j as i}from"./index-sUomXsrf.js";/* empty css */import{n as S}from"./colors-BtO5_zlx.js";import{u as M,d as A,e as h,f as I,M as C,g as k,h as w,b as F,r as R,t as E}from"./mission-control-store-xQHVQdm8.js";import{u as K}from"./Provider-tFc3jqZ4.js";import{a as T,b as q,r as B,m as D}from"./keyboard-nav-BhZZ5HEq.js";import{MissionLeftAgentRow as L}from"./MissionLeftAgentRow-CxlH3dON.js";import"./router-Dja9_ygK.js";import"./terminal-sessions-D5CIR2OL.js";import"./api-h5zurxmi.js";import"./sse-CVoGDiKW.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-BlBQhpax.js";import"./DocumentFocusViewer-DU_9BHsD.js";import"./createLucideIcon-DlxlBfLC.js";import"./TextDocumentSurface-C-9EtYqt.js";/* empty css */import"./file-text-i3xTDUjJ.js";import"./x-0XjXwGqq.js";import"./chevron-right-CyUa1zXx.js";import"./code-xml-05TD3uOC.js";import"./arrow-left-WjQIN9J6.js";import"./scout-voice-BZ4KqADJ.js";import"./fx-z37u1o2z.js";import"./MessageComposerSuggestions-zAUUcLOv.js";import"./NewChatComposer-B5FnPyzS.js";import"./runtime-picker-DOZpZOlt.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-lWOOKezu.js";import"./index-m6dFtY5f.js";import"./HarnessMark-Dm_qm1Ku.js";import"./conversation-model-C4yb6_FA.js";import"./time-Dhsh_2EG.js";import"./NewChatOrigin--pHWUb4V.js";import"./agent-chat-Bfjd9y6c.js";import"./model-Co0zkMIc.js";import"./text-DsBWV_4k.js";import"./chevron-down-BFai6ZfE.js";import"./search-DCT_EvPr.js";import"./chunk-HRAB3GC3-CvwpNg-G.js";import"./page-status-BymFEFai.js";import"./RailRow-BTlVAnHS.js";import"./AgentAvatar-CufDA4A-.js";import"./SpriteAvatar-CQs-jC-v.js";import"./agent-identity-xQHedtLl.js";function Ee(){const{navigate:r}=K(),s=M(),o=s.visibleAgents,m=c.useRef(null),p=c.useRef(null),v=T(),x=D(()=>m.current);q(c.useCallback(()=>p.current,[]));const[d,y]=c.useState(null),u=s.activityFilter==="active",a=s.selectedIds.length,j=e=>{y(t=>t===e?null:e)},N=()=>{if(a===0)return;const t=o.filter(l=>s.selectedIds.includes(l.id)).map(l=>l.handle??l.name).filter(Boolean).join("|");t&&r({view:"ops",mode:"tail",tailQuery:t})};return i.jsxs("div",{className:"ctx-panel ml-panel",children:[i.jsxs("div",{className:"ml-section",children:[i.jsx("div",{className:"ml-section-label",children:"Source"}),i.jsx("div",{className:"ml-chips ml-chips--primary",children:["all","scout","native"].map(e=>i.jsx("button",{type:"button",className:["ml-chip",s.sourceFilter===e&&"ml-chip--active"].filter(Boolean).join(" "),onClick:()=>A(e),children:e==="all"?"All":e==="scout"?"Scout":"Native"},e))})]}),i.jsx("div",{className:"ctx-panel-search",children:i.jsx("input",{ref:p,type:"text",className:"ctx-panel-search-input",placeholder:"Filter agents… (press /)",value:s.query,onChange:e=>h(e.target.value),onKeyDown:e=>{x(e),e.key==="Escape"&&s.query&&h("")}})}),i.jsx("div",{className:"ml-section ml-section--secondary",children:i.jsxs("div",{className:"ml-chips ml-chips--secondary",children:[["active","live","all"].map(e=>i.jsx("button",{type:"button",className:["ml-chip ml-chip--ghost",s.activityFilter===e&&"ml-chip--ghost-active"].filter(Boolean).join(" "),onClick:()=>I(e),children:e==="active"?"Active":e==="live"?"Live":"Any"},e)),u&&i.jsx("span",{className:"ml-divider","aria-hidden":!0}),u&&C.map(e=>i.jsx("button",{type:"button",className:["ml-chip ml-chip--ghost",s.activityWindowMs===e.value&&"ml-chip--ghost-active"].filter(Boolean).join(" "),onClick:()=>k(e.value),children:e.label},e.value))]})}),i.jsxs("div",{className:"ml-section ml-section--grouping",children:[i.jsx("div",{className:"ml-section-label",children:"Order by"}),i.jsx("div",{className:"ml-chips ml-chips--grouping",children:[["activity","Activity"],["workspace","Project"],["harness","Harness"],["state","Status"],["source","Source"]].map(([e,t])=>i.jsx("button",{type:"button",className:["ml-chip","ml-chip--group",s.groupMode===e&&"ml-chip--group-active"].filter(Boolean).join(" "),"aria-pressed":s.groupMode===e,onClick:()=>w(e),children:t},e))})]}),a>0?i.jsxs("div",{className:"ml-selection",children:[i.jsxs("span",{className:"ml-selection-label",children:[a," selected"]}),i.jsxs("div",{className:"ml-selection-actions",children:[i.jsx("button",{type:"button",className:"ml-selection-btn ml-selection-btn--primary",onClick:N,children:"Tail ↗"}),i.jsx("button",{type:"button",className:"ml-selection-btn",onClick:F,children:"Clear"})]})]}):i.jsxs("div",{className:"ml-count",children:[o.length," visible",i.jsx("span",{className:"ml-count-hint",children:"⌘-click · ⌘A all"})]}),i.jsx("div",{ref:m,className:"ctx-panel-list ctx-panel-list--scroll",onKeyDown:v,children:o.length===0?i.jsx("div",{className:"ctx-panel-empty",children:s.query?"No match":"Nothing visible"}):o.map((e,t)=>{const l=e.id===d,b=o.some(n=>n.id===d),g=s.selectedIds.includes(e.id),f=S(e.state);return i.jsx(L,{agent:e,state:f,isExpanded:l,isSelected:g,tabIndex:B(l,b,t===0),onToggle:n=>{n.metaKey||n.ctrlKey||n.shiftKey?E(e.id):j(e.id)},onReveal:()=>R(e.id),onOpen:()=>r({view:"agents-v2",agentId:e.id})},e.id)})})]})}export{Ee as OpsMissionLeft};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as a,j as s}from"./index-sUomXsrf.js";/* empty css */import{a as k}from"./api-h5zurxmi.js";import{u as y}from"./sse-CVoGDiKW.js";import{t as S}from"./time-Dhsh_2EG.js";import{u as w}from"./Provider-tFc3jqZ4.js";import{F as C}from"./FleetSearch-DlWTLl-v.js";import"./index-BWHgHrtv.js";import"./router-Dja9_ygK.js";import"./terminal-sessions-D5CIR2OL.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-BlBQhpax.js";import"./DocumentFocusViewer-DU_9BHsD.js";import"./createLucideIcon-DlxlBfLC.js";import"./TextDocumentSurface-C-9EtYqt.js";/* empty css */import"./file-text-i3xTDUjJ.js";import"./x-0XjXwGqq.js";import"./chevron-right-CyUa1zXx.js";import"./code-xml-05TD3uOC.js";import"./arrow-left-WjQIN9J6.js";import"./scout-voice-BZ4KqADJ.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BhZZ5HEq.js";import"./MessageComposerSuggestions-zAUUcLOv.js";import"./NewChatComposer-B5FnPyzS.js";import"./runtime-picker-DOZpZOlt.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-lWOOKezu.js";import"./index-m6dFtY5f.js";import"./HarnessMark-Dm_qm1Ku.js";import"./conversation-model-C4yb6_FA.js";import"./NewChatOrigin--pHWUb4V.js";import"./agent-chat-Bfjd9y6c.js";import"./model-Co0zkMIc.js";import"./text-DsBWV_4k.js";import"./chevron-down-BFai6ZfE.js";import"./search-DCT_EvPr.js";import"./chunk-HRAB3GC3-CvwpNg-G.js";const u={all:"All",claude:"Claude",codex:"Codex",openscout:"OpenScout",workspace:"Workspace",unknown:"Other"},L={active:"Active",archived:"Archived",blocked:"Blocked",completed:"Complete",draft:"Draft",unknown:"Unknown"};function b(e){const o=e.replace(/\\/g,"/").replace(/\/+$/g,""),l=o.lastIndexOf("/");return l>=0?o.slice(l+1):o}function A(e){return e.steps.length===0?"No steps":`${e.steps.filter(l=>l.status==="completed").length}/${e.steps.length} steps`}function E(e){return[e.title,e.summary,e.source,e.documentKind,e.status,e.path,e.workspaceName,e.agentName,e.tags.join(" "),e.steps.map(o=>o.text).join(" ")].filter(Boolean).join(" ").toLowerCase()}function vt(){const{route:e,navigate:o}=w(),[l,f]=a.useState(null),[i,m]=a.useState(""),[r,h]=a.useState("all"),[x,v]=a.useState(!0),p=a.useCallback(async()=>{const t=await k("/api/plan-documents").catch(()=>null);f(t),v(!1)},[]);a.useEffect(()=>{p()},[p]),y(t=>{(t.kind==="message.posted"||t.kind==="flight.updated"||t.kind==="collaboration.event.appended")&&p()});const n=l?.documents??[],j=e.view==="ops"&&e.mode==="plan"?e.planDocumentId:void 0,c=i.trim().toLowerCase(),g=a.useMemo(()=>{const t={all:n.length,claude:0,codex:0,openscout:0,workspace:0,unknown:0};for(const N of n)t[N.source]+=1;return t},[n]),d=a.useMemo(()=>n.filter(t=>r==="all"||t.source===r).filter(t=>!c||E(t).includes(c)),[n,c,r]);return s.jsxs("div",{className:"s-plan-left-nav",children:[s.jsx("div",{className:"s-left-roster-search",children:s.jsx(C,{value:i,onChange:m,placeholder:"Search plan documents...",onKeyDown:t=>{t.key==="Escape"&&(i?m(""):t.target.blur())}})}),s.jsx("div",{className:"s-plan-left-source-grid",children:["all","claude","codex","openscout","workspace"].map(t=>s.jsxs("button",{type:"button",className:`s-plan-left-source${r===t?" s-plan-left-source--active":""}`,onClick:()=>h(t),children:[s.jsx("span",{children:u[t]}),s.jsx("strong",{children:g[t]})]},t))}),s.jsx("div",{className:"s-plan-left-list",children:x&&n.length===0?s.jsx("div",{className:"s-left-roster-empty",children:"Indexing plan documents..."}):d.length===0?s.jsx("div",{className:"s-left-roster-empty",children:n.length===0?"No plan documents found":"No plans match"}):d.map(t=>s.jsxs("button",{type:"button",className:`s-plan-left-document${t.id===j?" s-plan-left-document--active":""}`,onClick:()=>o({view:"ops",mode:"plan",planDocumentId:t.id}),title:`${t.path}
|
|
2
|
-
${t.summary??""}`,children:[s.jsxs("div",{className:"s-plan-left-document-top",children:[s.jsx("span",{className:`s-plan-left-status s-plan-left-status--${t.status}`,children:L[t.status]}),s.jsx("span",{children:u[t.source]}),s.jsx("time",{children:S(t.updatedAt)})]}),s.jsx("div",{className:"s-plan-left-document-title",children:t.title}),t.summary&&s.jsx("div",{className:"s-plan-left-document-summary",children:t.summary}),s.jsxs("div",{className:"s-plan-left-document-foot",children:[s.jsx("span",{children:A(t)}),s.jsx("span",{children:b(t.path)})]})]},t.id))})]})}export{vt as OpsPlanLeft};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as l,j as e}from"./index-sUomXsrf.js";/* empty css */import{t as O}from"./time-Dhsh_2EG.js";import{u as H}from"./Provider-tFc3jqZ4.js";import{S as $}from"./SpriteAvatar-CQs-jC-v.js";import{H as R}from"./HarnessMark-Dm_qm1Ku.js";import{AgentSessions as G}from"./AgentSessions-Bkr0lyry.js";import{a as T}from"./api-h5zurxmi.js";import{u as J}from"./ContextMenu-BlBQhpax.js";import{g as q,p as V,b as _}from"./agents-project-model-UYiamtrU.js";import{c as Q,e as X,f as Y,g as Z}from"./model-Co0zkMIc.js";import"./router-Dja9_ygK.js";import"./terminal-sessions-D5CIR2OL.js";import"./sse-CVoGDiKW.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-BTIErYHo.js";import"./DocumentFocusViewer-DU_9BHsD.js";import"./createLucideIcon-DlxlBfLC.js";import"./TextDocumentSurface-C-9EtYqt.js";/* empty css */import"./file-text-i3xTDUjJ.js";import"./x-0XjXwGqq.js";import"./chevron-right-CyUa1zXx.js";import"./code-xml-05TD3uOC.js";import"./arrow-left-WjQIN9J6.js";import"./scout-voice-BZ4KqADJ.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BhZZ5HEq.js";import"./MessageComposerSuggestions-zAUUcLOv.js";import"./NewChatComposer-B5FnPyzS.js";import"./runtime-picker-DOZpZOlt.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-lWOOKezu.js";import"./index-m6dFtY5f.js";import"./conversation-model-C4yb6_FA.js";import"./NewChatOrigin--pHWUb4V.js";import"./agent-chat-Bfjd9y6c.js";import"./chevron-down-BFai6ZfE.js";import"./search-DCT_EvPr.js";import"./chunk-HRAB3GC3-CvwpNg-G.js";import"./agent-identity-xQHedtLl.js";import"./openContent-C6XO6kr5.js";import"./clipboard-e3fSpeo7.js";import"./text-DsBWV_4k.js";const ee=30*6e4,D=a=>a==="pi"?"grok":a,K=a=>a?a.replace(/^claude-/,"").replace(/-\d{8}$/,""):null;function Xe({agents:a,fleet:d,sessionByAgentId:c,sessions:A,discovery:k,loading:C,navigate:x,selectedAgentId:S}){const{route:N,reload:p,openContextCapture:u}=H(),m=N.view==="agents-v2"?N.projectSlug:void 0,f=l.useMemo(()=>{const n=new Map;for(const b of d?.activeAsks??[]){const i=n.get(b.agentId)??[];i.push(b),n.set(b.agentId,i)}return n},[d?.activeAsks]),v=l.useMemo(()=>a.map(n=>Q(n,c.get(n.id)??null,f.get(n.id)??[])),[f,a,c]),g=l.useMemo(()=>X(k,Date.now()),[k]),h=l.useMemo(()=>Y(v,A,g),[v,A,g]),w=l.useMemo(()=>h.find(n=>n.slice.slug===m)??h[0]??null,[h,m]),r=w?.slice.slug,M={selectAgent:n=>x({view:"agents-v2",agentId:n.agent.id,...r?{projectSlug:r}:{}}),openAgentPage:n=>x({view:"agents-v2",agentId:n.agent.id,tab:"profile"}),startSession:n=>u({intent:"new-task",projectPath:n.agent.projectRoot??n.agent.cwd??void 0}),openSession:n=>x(n),configureAgent:n=>x({view:"agents-v2",agentId:n.agent.id,tab:"config"}),restartAgent:n=>{T(`/api/agents/${encodeURIComponent(n.agent.id)}/config`,{method:"POST",body:JSON.stringify({restart:!0})}).catch(()=>{})},stopAgent:n=>{T(`/api/agents/${encodeURIComponent(n.agent.id)}/interrupt`,{method:"POST",body:JSON.stringify({})}).catch(()=>{})},archiveAgent:n=>{T(`/api/agents/${encodeURIComponent(n.agent.id)}/archive`,{method:"POST",body:JSON.stringify({archived:!0})}).then(()=>p()).catch(()=>{})}};return!w&&C?e.jsx("div",{className:"s-aproj","aria-busy":"true",children:e.jsx("div",{className:"ap-loading",role:"status","aria-label":"Loading agents",children:Array.from({length:7},(n,b)=>e.jsx("span",{"aria-hidden":"true"},b))})}):w?e.jsx("div",{className:"s-aproj",children:e.jsx(te,{project:w,selectedAgentId:S,gestures:M,sessions:A})}):e.jsx("div",{className:"s-aproj",children:e.jsx("div",{className:"ap-empty",children:"No agents discovered yet — they appear here as harnesses register and work."})})}function se(){return e.jsxs("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none","aria-hidden":!0,children:[e.jsx("circle",{cx:"7",cy:"7",r:"4.2",stroke:"currentColor",strokeWidth:"1.3"}),e.jsx("path",{d:"m10.5 10.5 3 3",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]})}function ae({tone:a}){return a==="idle"?null:e.jsx("span",{className:"ap-dot","data-tone":a,"aria-hidden":!0})}function ne({g:a,gestures:d,sessions:c,selected:A,cursor:k,rowRef:C}){const x=J(),S=Date.now()-a.lastActivityAt<ee,N=a.needs?"needs":S?"live":"idle",p=a.nodes[0];if(!p)return null;const u=p.row.agent.handle?.trim()||a.name,m=a.branches.length>0?a.branches:["main"],f=m.length>1,v=f?`${m.length} branches`:m[0],g=[...new Set(a.nodes.map(r=>r.row.agent.model).filter(r=>!!r))],h=g.length>1,w=[{kind:"action",label:"Configure…",onSelect:()=>d.configureAgent(p.row)},{kind:"action",label:"Restart",onSelect:()=>d.restartAgent(p.row)},{kind:"separator"},{kind:"action",label:"Stop",onSelect:()=>d.stopAgent(p.row)},{kind:"action",label:"Archive",onSelect:()=>d.archiveAgent(p.row)}];return e.jsxs("div",{ref:C,tabIndex:-1,className:"ap-row","data-tone":N,"data-selected":A||void 0,"data-cursor":k||void 0,children:[e.jsxs("div",{className:"ap-rowMain",onClick:()=>d.selectAgent(p.row),children:[e.jsxs("div",{className:"ap-rowBody",children:[e.jsxs("div",{className:"ap-rowTop",children:[e.jsx(ae,{tone:N}),e.jsxs("span",{className:"ap-rowName","data-idle":N==="idle"||void 0,children:[e.jsx("span",{className:"ap-sigil","aria-hidden":!0,children:"@"}),u]}),e.jsx("span",{className:"ap-rowMark","aria-hidden":!0,children:e.jsx(R,{harness:D(a.harness),size:11})}),a.needs?e.jsx("span",{className:"ap-needsWord",children:"needs you"}):N==="live"?e.jsx("span",{className:"ap-rowState",children:"working"}):null]}),e.jsxs("div",{className:"ap-rowMeta",children:[e.jsx("span",{className:"ap-rowBranch","data-dim":!0,title:f?m.join(" · "):void 0,children:v}),h?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"ap-rowDivider","aria-hidden":!0}),e.jsxs("span",{className:"ap-rowDim",title:g.join(" · "),children:[g.length," models"]})]}):null,a.sessionCount?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"ap-rowDivider","aria-hidden":!0}),e.jsxs("span",{className:"ap-rowDim",children:[a.sessionCount," session",a.sessionCount===1?"":"s"]})]}):null]})]}),e.jsxs("div",{className:"ap-rowTailWrap",children:[e.jsxs("div",{className:"ap-rowTail",children:[e.jsxs("div",{className:"ap-tailMeta","aria-hidden":N==="needs"||void 0,children:[e.jsx("span",{className:"ap-rowAgo",children:a.lastActivityAt?O(a.lastActivityAt):"—"}),!h&&K(a.model)?e.jsx("span",{className:"ap-rowModel",children:K(a.model)}):null]}),e.jsxs("div",{className:"ap-rowActions",children:[e.jsx("button",{type:"button",className:"ap-act ap-actPrimary",onClick:r=>{r.stopPropagation(),d.openAgentPage(p.row)},children:"Open ↗"}),e.jsx("button",{type:"button",className:"ap-act",onClick:r=>{r.stopPropagation(),d.startSession(p.row)},children:"+ Session"})]})]}),e.jsx("button",{type:"button",className:"ap-rowMore","aria-label":"Agent actions",title:"Configure · restart · stop",onClick:r=>{r.stopPropagation(),x(r,w)},children:"⋯"})]})]}),e.jsx(G,{agentIds:a.nodes.map(r=>r.row.agent.id),sessions:c})]})}function te({project:a,selectedAgentId:d,gestures:c,sessions:A}){const[k,C]=l.useState(""),[x,S]=l.useState(null),[N,p]=l.useState(!1),[u,m]=l.useState(-1),f=l.useRef(null),v=l.useRef(new Map),g=l.useMemo(()=>q(a),[a]),{primary:h,ephemeral:w}=l.useMemo(()=>V(g),[g]),r=l.useMemo(()=>_(a),[a]),M=l.useMemo(()=>[...new Set(h.map(s=>D(s.harness)))],[h]),n=k.trim().toLowerCase(),b=s=>(!x||D(s.harness)===x)&&(!n||s.name.toLowerCase().includes(n)||s.branches.some(t=>t.toLowerCase().includes(n))||s.harness.includes(n)),i=h.filter(b),I=w.filter(b),E=!!(n||x),o=i.find(s=>s.needs)??i[0],U=i.some(s=>s.needs),B=h.length<=1;Z(a);const W=g.reduce((s,t)=>s+t.sessionCount,0),z=s=>!!(d&&s.nodes.some(t=>t.row.agent.id===d));return l.useEffect(()=>{function s(t){const y=document.activeElement,L=!!y&&(y.tagName==="INPUT"||y.tagName==="TEXTAREA"||y.isContentEditable);if(t.key.toLowerCase()==="k"&&(t.metaKey||t.ctrlKey)||t.key==="/"&&!L){t.preventDefault(),f.current?.focus(),f.current?.select();return}if(t.key==="Escape"){L&&y?.blur();return}if(L)return;const F=i.length;if(F){if(t.key==="ArrowDown"||t.key==="j")t.preventDefault(),m(j=>j<0?0:Math.min(F-1,j+1));else if(t.key==="ArrowUp"||t.key==="k")t.preventDefault(),m(j=>j<0?0:Math.max(0,j-1));else if(t.key==="Enter"&&(t.metaKey||t.ctrlKey)){const j=i.find(P=>P.needs)??i[0];j&&(t.preventDefault(),m(i.indexOf(j)),c.selectAgent(j.nodes[0].row))}else if(t.key==="Enter"){const j=u<0?0:u,P=i[j];P&&(t.preventDefault(),m(j),c.selectAgent(P.nodes[0].row))}}}return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[i,u,c]),l.useEffect(()=>{if(!(u<0)){if(u>=i.length){m(i.length-1);return}v.current.get(i[u]?.name??"")?.scrollIntoView({block:"nearest"})}},[u,i]),e.jsx("div",{className:"ap-view",children:e.jsxs("div",{className:"ap-content",children:[e.jsxs("header",{className:"ap-head",children:[e.jsx($,{name:a.slice.title,size:56,tile:!0}),e.jsxs("div",{className:"ap-headIdent",children:[e.jsx("div",{className:"ap-headTop",children:e.jsxs("h1",{className:"ap-headName",children:[e.jsx("span",{className:"ap-sigil","aria-hidden":!0,children:"/"}),a.slice.title]})}),a.slice.root?e.jsx("span",{className:"ap-headRoot",children:a.slice.root}):null]}),e.jsx("div",{className:"ap-headActions",children:e.jsx("button",{type:"button",className:"ap-headCta",disabled:!o,onClick:()=>o&&c.startSession(o.nodes[0].row),children:"+ New agent"})})]}),e.jsxs("div",{className:"ap-digest",children:[e.jsxs("span",{className:"ap-stat",children:[e.jsx("span",{className:"ap-statNum",children:h.length}),e.jsx("span",{className:"ap-statLbl",children:h.length===1?"agent":"agents"})]}),e.jsxs("span",{className:"ap-stat",children:[e.jsx("span",{className:"ap-statNum",children:W}),e.jsx("span",{className:"ap-statLbl",children:W===1?"session":"sessions"})]}),r.length>0?e.jsxs("span",{className:"ap-stat",children:[e.jsx("span",{className:"ap-statNum",children:r.length}),e.jsx("span",{className:"ap-statLbl",children:"in flight"})]}):null,e.jsx("span",{className:"ap-statMarks",children:M.map(s=>e.jsx("span",{title:s,"aria-hidden":!0,children:e.jsx(R,{harness:s,size:12})},s))})]}),o&&!E&&!B?e.jsxs("div",{className:"ap-resume","data-tone":o.needs?"needs":"live","aria-live":"polite",children:[e.jsx("span",{className:"ap-dot","data-tone":o.needs?"needs":"live","aria-hidden":!0}),e.jsx("span",{className:"ap-resumeLbl",children:o.needs?"Waiting on you":"Most recent"}),e.jsxs("span",{className:"ap-resumeWho",children:[e.jsx("span",{className:"ap-sigil","aria-hidden":!0,children:"@"}),o.nodes[0].row.agent.handle?.trim()||o.name]}),e.jsxs("span",{className:"ap-resumeMeta",children:[o.branches[0]??"main"," · ",o.lastActivityAt?O(o.lastActivityAt):"—"]}),e.jsxs("span",{className:"ap-resumeActions",children:[e.jsx("button",{type:"button",className:"ap-linkAccent",onClick:()=>c.selectAgent(o.nodes[0].row),children:o.needs?"Continue":"Resume"}),e.jsx("button",{type:"button",className:"ap-link",onClick:()=>c.openAgentPage(o.nodes[0].row),children:"Open ↗"})]})]}):null,B?null:e.jsxs("div",{className:"ap-find",children:[e.jsx("span",{className:"ap-findIco","aria-hidden":!0,children:e.jsx(se,{})}),e.jsx("input",{ref:f,className:"ap-findInput",placeholder:"Find an agent, branch, or harness… (⌘K)",value:k,onChange:s=>C(s.target.value)}),e.jsx("div",{className:"ap-findFilters",children:M.map(s=>e.jsxs("button",{type:"button",className:"ap-filter","data-on":x===s||void 0,onClick:()=>S(t=>t===s?null:s),children:[e.jsx(R,{harness:s,size:11}),s.charAt(0).toUpperCase()+s.slice(1)]},s))})]}),e.jsxs("div",{className:"ap-main",children:[e.jsxs("div",{className:"ap-sectionHead",children:[e.jsx("span",{className:"ap-sectionTitle",children:"Agents"}),e.jsxs("span",{className:"ap-sectionMeta",children:[i.length," shown",E?" · filtered":""]}),e.jsxs("span",{className:"ap-kbdHint","aria-hidden":!0,children:["↑↓ move · ↵ open",U?" · ⌘↵ needs":""]})]}),e.jsxs("div",{className:"ap-roster",children:[i.map((s,t)=>e.jsx(ne,{g:s,gestures:c,sessions:A,selected:z(s),cursor:u===t,rowRef:y=>{y?v.current.set(s.name,y):v.current.delete(s.name)}},s.name)),i.length===0?e.jsx("div",{className:"ap-empty",children:E?"No agents match.":I.length?"No primary agents — workflow & clone agents are in the fold below.":"No agents in this project yet."}):null]}),I.length?e.jsxs("div",{className:"ap-ephBlock",children:[e.jsxs("button",{type:"button",className:"ap-ephToggle",onClick:()=>p(s=>!s),children:[e.jsx("span",{className:"ap-ephCount",children:I.length})," ephemeral · workflow & clone agents",e.jsx("span",{className:"ap-ephCaret",children:N?"▴":"▾"})]}),N?e.jsx("div",{className:"ap-ephList",children:I.map(s=>e.jsxs("button",{type:"button",className:"ap-ephRow",onClick:()=>c.openAgentPage(s.nodes[0].row),children:[e.jsx("span",{className:"ap-ephMark","aria-hidden":!0,children:e.jsx(R,{harness:D(s.harness),size:10})}),e.jsx("span",{className:"ap-ephName",children:s.name}),e.jsx("span",{className:"ap-ephBranch",children:s.branches[0]??"main"}),e.jsx("span",{className:"ap-ephAgo",children:s.lastActivityAt?O(s.lastActivityAt):"—"})]},s.name))}):null]}):null,e.jsx("button",{type:"button",className:"ap-newAgent",disabled:!o,onClick:()=>o&&c.startSession(o.nodes[0].row),children:"+ New agent on this project"})]})]})})}export{Xe as AgentsLibrary};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.s-wall{position:relative;display:flex;flex-direction:column;height:100%;min-height:0;background:var(--bg);font-family:var(--font-mono);color:var(--ink);overflow:hidden}.s-wall-status{flex:none;display:flex;align-items:center;gap:var(--space-sm);min-height:26px;padding:0 var(--space-lg);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 18%,var(--bg));font-size:var(--text-2xs);letter-spacing:.04em}.s-wall-status-key{color:var(--dim);text-transform:lowercase}.s-wall-status-value{color:var(--muted);font-variant-numeric:tabular-nums;margin-right:var(--space-md)}.s-wall-status-hidden{color:var(--dim);font-variant-numeric:tabular-nums}.s-wall-status-pin{margin-left:auto;padding:0;border:0;background:none;color:var(--accent);font:inherit;letter-spacing:inherit;cursor:pointer}.s-wall-status-pin:hover{text-decoration:underline}.s-wall-grid{flex:1;min-height:0;display:grid;padding:var(--space-sm);overflow:hidden}.s-wall-pane{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;border:1px solid var(--border);border-radius:var(--radius-xs);background:color-mix(in srgb,var(--surface) 34%,var(--bg));overflow:hidden;cursor:pointer;transition:border-color .12s}.s-wall-pane:hover{border-color:color-mix(in srgb,var(--muted) 45%,var(--border))}.s-wall-pane--live{border-color:color-mix(in srgb,var(--green) 30%,var(--border))}.s-wall-pane--selected,.s-wall-pane--selected:hover{border-color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent)}.s-wall-pane--revealed{animation:s-wall-reveal 1.8s ease-out}@keyframes s-wall-reveal{0%,40%{box-shadow:inset 0 0 0 1px var(--accent);border-color:var(--accent)}to{box-shadow:inset 0 0 0 1px transparent}}@media(prefers-reduced-motion:reduce){.s-wall-pane--revealed{animation:none;border-color:var(--accent)}}.s-wall-pane-head{flex:none;display:flex;align-items:center;gap:var(--space-xs);min-height:22px;padding:0 var(--space-sm);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--ink) 3%,transparent);font-size:var(--text-2xs);letter-spacing:.02em;white-space:nowrap;overflow:hidden}.s-wall-pane-dot{flex:none;width:5px;height:5px;border-radius:50%}.s-wall-pane--live .s-wall-pane-dot{animation:s-ops-pulse 1.6s ease-in-out infinite}.s-wall-pane-title{flex:0 1 auto;min-width:0;padding:0;border:0;background:none;color:var(--ink);font:inherit;font-weight:600;letter-spacing:inherit;text-align:start;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.s-wall-pane-title:hover{color:var(--accent)}.s-wall-pane-title:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.s-wall-pane-where{flex:0 1 auto;min-width:0;color:var(--dim);overflow:hidden;text-overflow:ellipsis}.s-wall-pane-spacer{flex:1 1 auto}.s-wall-pane-live{flex:none;color:var(--green);text-transform:uppercase;letter-spacing:var(--tracking-md)}.s-wall-pane-file{flex:none;max-width:40%;padding:0;border:0;background:none;color:var(--dim);font:inherit;letter-spacing:inherit;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.s-wall-pane-file:hover{color:var(--accent);text-decoration:underline}.s-wall-pane-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:2px 0 4px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--border) 80%,transparent) transparent}.s-wall-pane-body::-webkit-scrollbar{width:5px}.s-wall-pane-body::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--border) 80%,transparent)}.s-wall-pane-idle{padding:var(--space-sm) var(--space-md);color:var(--dim);font-size:var(--text-2xs);letter-spacing:var(--tracking-sm)}.s-wall-line{display:grid;grid-template-columns:52px 8px minmax(0,1fr);align-items:baseline;gap:var(--space-xs);padding:0 var(--space-sm);font-size:var(--text-2xs);line-height:15px;color:var(--muted)}.s-wall-line:nth-child(2n){background:color-mix(in srgb,var(--ink) 2.5%,transparent)}.s-wall-line-time{color:var(--dim);font-variant-numeric:tabular-nums}.s-wall-line-glyph{color:var(--dim)}.s-wall-line-text{min-width:0;white-space:pre-wrap;overflow-wrap:anywhere}.s-wall-line-repeat{color:var(--dim);font-variant-numeric:tabular-nums}.s-wall-line--user .s-wall-line-text{color:var(--ink)}.s-wall-line--assistant .s-wall-line-text{color:color-mix(in srgb,var(--ink) 80%,transparent)}.s-wall-line--tool .s-wall-line-text{color:var(--accent)}.s-wall-line--system .s-wall-line-text,.s-wall-line--other .s-wall-line-text{color:var(--dim)}.s-wall-pane-body>.s-wall-line:last-child{animation:s-wall-line-in .22s cubic-bezier(.22,.61,.36,1) both}@keyframes s-wall-line-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.s-wall-pane-body>.s-wall-line:last-child{animation:none}}.s-wall-empty{grid-column:1 / -1;grid-row:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm)}.s-wall-empty-title{font-family:var(--font-accent-title);font-size:var(--text-4xl);color:var(--ink);letter-spacing:-.01em}.s-wall-empty-sub{font-size:var(--text-sm);color:var(--dim);letter-spacing:var(--tracking-sm)}.s-mission-overlay{position:absolute;inset:0;z-index:10;background:var(--scrim-soft);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);display:flex;align-items:stretch;justify-content:center;padding:var(--space-4xl);animation:s-mission-overlay-in .14s ease-out}@keyframes s-mission-overlay-in{0%{opacity:0}to{opacity:1}}.s-mission-overlay-dialog{display:flex;flex-direction:column;flex:1 1 auto;max-width:1180px;min-height:0;background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);border-radius:var(--radius-md);box-shadow:0 24px 80px -12px #000000b8,0 0 0 1px #ffffff0a;outline:none;overflow:hidden}.s-mission-overlay-header{display:flex;align-items:center;gap:var(--space-xl);padding:var(--space-lg) var(--space-xl) var(--space-md) var(--space-3xl);border-bottom:1px solid color-mix(in srgb,var(--ink) 9%,transparent);flex:none}.s-mission-overlay-identity{flex:1 1 auto;min-width:0}.s-mission-overlay-handle{color:var(--dim);font-size:var(--text-sm)}.s-mission-overlay-close{flex:0 0 auto;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0;background:transparent;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);color:var(--dim);font-family:var(--font-mono);font-size:var(--text-sm);cursor:pointer;border-radius:var(--radius-xs);transition:color .1s,background .1s,border-color .1s}.s-mission-overlay-close:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 6%,transparent)}.s-mission-overlay-tabs{display:flex;align-items:stretch;justify-content:space-between;gap:var(--space-lg);padding:0 var(--space-lg) 0 var(--space-3xl);border-bottom:1px solid color-mix(in srgb,var(--ink) 9%,transparent);flex:none}.s-mission-overlay-tabs-group{display:flex}.s-mission-overlay-tabs-action{display:flex;align-items:center}.s-mission-overlay-jump{padding:var(--space-2xs) var(--space-md);background:color-mix(in srgb,var(--accent) 14%,transparent);border:1px solid color-mix(in srgb,var(--accent) 32%,transparent);color:var(--accent);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-md);cursor:pointer;border-radius:var(--radius-xs);transition:background .12s,border-color .12s,color .12s}.s-mission-overlay-jump:hover{background:var(--accent);color:var(--bg)}.s-mission-overlay-jump:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.s-mission-overlay-tab{padding:var(--space-md) var(--space-xl);background:transparent;border:0;border-bottom:2px solid transparent;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;letter-spacing:var(--tracking-lg);text-transform:uppercase;cursor:pointer;transition:color .12s,border-color .12s;margin-bottom:-1px}.s-mission-overlay-tab:hover{color:var(--ink)}.s-mission-overlay-tab--active{color:var(--ink);border-bottom-color:var(--accent)}.s-mission-overlay-tab:focus-visible{outline:1px solid var(--accent);outline-offset:-2px}.s-focus-tab{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;padding:var(--space-3xl) var(--space-3xl);gap:var(--space-2xl)}.s-focus-tab--activity{padding:0;overflow:hidden}.s-focus-tab--activity-preview{gap:var(--space-xl)}.s-focus-stats{margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:color-mix(in srgb,var(--ink) 10%,transparent);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);border-radius:var(--radius-xs);overflow:hidden;flex:0 0 auto}.s-focus-stat{display:flex;flex-direction:column;gap:var(--space-3xs);padding:var(--space-sm) var(--space-lg);background:color-mix(in srgb,var(--surface) 90%,transparent);min-width:0}.s-focus-stat-label{margin:0;font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-xl);text-transform:uppercase;color:var(--dim)}.s-focus-stat-value{margin:0;font-family:var(--font-mono);font-size:var(--text-lg);font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}.s-focus-activity-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow-y:auto;border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);border-radius:var(--radius-xs);background:color-mix(in srgb,var(--bg) 50%,transparent)}.s-focus-activity-empty{flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:var(--space-4xl);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--dim);border:1px dashed color-mix(in srgb,var(--ink) 12%,transparent);border-radius:var(--radius-xs)}.s-focus-activity-empty--rich{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:var(--space-xl);padding:var(--space-2xl);background:color-mix(in srgb,var(--surface) 60%,transparent);border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);color:var(--ink)}.s-focus-activity-empty-head{display:flex;flex-direction:column;gap:var(--space-2xs)}.s-focus-activity-empty-eyebrow{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-xl);text-transform:uppercase;color:var(--dim)}.s-focus-activity-empty-title{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:500;color:var(--ink);letter-spacing:var(--tracking-sm)}.s-focus-activity-empty-facts{margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:color-mix(in srgb,var(--ink) 6%,transparent);border:1px solid color-mix(in srgb,var(--ink) 7%,transparent)}.s-focus-activity-empty-fact{display:flex;flex-direction:column;gap:var(--space-3xs);padding:var(--space-sm) var(--space-md);background:color-mix(in srgb,var(--surface) 92%,transparent);min-width:0}.s-focus-activity-empty-fact dt{margin:0;font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-xl);text-transform:uppercase;color:var(--dim)}.s-focus-activity-empty-fact dd{margin:0;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-focus-activity-empty-actions{display:flex;gap:var(--space-sm);margin-top:auto}.s-focus-activity-empty-btn{flex:1 1 auto;appearance:none;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);background:transparent;color:var(--ink);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-md);text-transform:uppercase;padding:var(--space-sm) var(--space-md);cursor:pointer;border-radius:var(--radius-xs);transition:background .12s ease,border-color .12s ease}.s-focus-activity-empty-btn:hover{background:color-mix(in srgb,var(--ink) 5%,transparent);border-color:color-mix(in srgb,var(--ink) 22%,transparent)}.s-focus-activity-empty-btn--primary{border-color:color-mix(in srgb,var(--accent) 50%,transparent);color:var(--accent)}.s-focus-activity-empty-btn--primary:hover{background:color-mix(in srgb,var(--accent) 10%,transparent);border-color:var(--accent)}.s-focus-activity-row{display:grid;grid-template-columns:36px 14px 44px 1fr;align-items:baseline;gap:var(--space-sm);padding:var(--space-xs) var(--space-lg);border-bottom:1px solid color-mix(in srgb,var(--ink) 5%,transparent);min-width:0}.s-focus-activity-row:last-child{border-bottom:0}.s-focus-activity-time{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--dim);font-variant-numeric:tabular-nums;text-align:right;letter-spacing:var(--tracking-md)}.s-focus-activity-glyph{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--dim);text-align:center;line-height:var(--leading-none)}.s-focus-activity-row--tool .s-focus-activity-glyph{color:var(--accent)}.s-focus-activity-row--think .s-focus-activity-glyph{color:var(--muted, var(--dim))}.s-focus-activity-row--ask .s-focus-activity-glyph{color:var(--amber)}.s-focus-activity-row--message .s-focus-activity-glyph{color:var(--ink)}.s-focus-activity-row--boot .s-focus-activity-glyph{color:var(--green)}.s-focus-activity-kind{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-lg);text-transform:uppercase;color:var(--dim)}.s-focus-activity-text{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.s-focus-spec{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-5xl);row-gap:var(--space-lg);flex:0 0 auto}.s-focus-spec-row{display:grid;grid-template-columns:64px 1fr;column-gap:var(--space-lg);align-items:baseline;margin:0;min-width:0}.s-focus-spec-label{margin:0;font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-xl);text-transform:uppercase;color:var(--dim);white-space:nowrap}.s-focus-spec-value{margin:0;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.s-focus-actions{display:flex;flex-direction:column;gap:var(--space-sm)}.s-focus-action{display:flex;flex-direction:column;gap:var(--space-2xs);padding:var(--space-lg) var(--space-xl);text-align:left;background:color-mix(in srgb,var(--surface) 60%,transparent);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);color:var(--ink);cursor:pointer;border-radius:var(--radius-sm);font-family:inherit;transition:background .12s,border-color .12s}.s-focus-action:hover{background:color-mix(in srgb,var(--accent) 6%,transparent);border-color:color-mix(in srgb,var(--accent) 32%,transparent)}.s-focus-action:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.s-focus-action-name{font-family:var(--font-mono);font-size:var(--text-md);font-weight:500;letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--ink)}.s-focus-action-desc{font-family:var(--font-sans);font-size:var(--text-sm);line-height:var(--leading-snug);color:var(--muted)}.s-focus-compose{display:flex;flex-direction:column;gap:var(--space-md);flex:1 1 auto;min-height:0}.s-focus-compose-label{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-xl);text-transform:uppercase;color:var(--dim)}.s-focus-compose-target{color:var(--accent);text-transform:none;letter-spacing:var(--tracking-xs);font-size:var(--text-sm);margin-left:var(--space-xs)}.s-focus-compose-input{flex:1 1 auto;min-height:120px;padding:var(--space-md) var(--space-lg);background:color-mix(in srgb,var(--bg) 60%,transparent);border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);border-radius:var(--radius-sm);color:var(--ink);font-family:var(--font-mono);font-size:var(--text-md);line-height:var(--leading-normal);resize:none;outline:none;transition:border-color .12s}.s-focus-compose-input::placeholder{color:var(--dim)}.s-focus-compose-input:focus{border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.s-focus-compose-input:disabled{opacity:.6}.s-focus-compose-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg)}.s-focus-compose-hint{flex:1 1 auto;font-family:var(--font-sans);font-size:var(--text-sm);color:var(--dim);line-height:var(--leading-snug);min-width:0}.s-focus-compose-hint strong{color:var(--ink);font-weight:500}.s-focus-compose-error{color:var(--red)}.s-focus-compose-ok{color:var(--green);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-md)}.s-focus-compose-link{background:transparent;border:0;padding:0;margin-left:var(--space-sm);color:var(--accent);font-family:inherit;font-size:inherit;letter-spacing:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.s-focus-compose-link:hover{color:var(--ink)}.s-focus-compose-actions{display:flex;gap:var(--space-sm);flex:0 0 auto}.s-mission-overlay-name{font-size:var(--text-xl);font-weight:500}.s-mission-overlay-meta{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--dim);letter-spacing:var(--tracking-sm)}.s-mission-overlay-actions{margin-left:auto;display:flex;gap:var(--space-xs)}.s-mission-overlay-body{flex:1;min-height:0;overflow:hidden}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i,a as u}from"./terminal-sessions-D5CIR2OL.js";import{o as f}from"./openContent-C6XO6kr5.js";function m(r,t,e={}){if(i(t.id)){const s=u(t);s&&f(r,{view:"sessions",sessionId:s},{returnTo:e.returnTo});return}const n=e.tab??(e.observe?"observe":void 0),o={view:"agents-v2",agentId:t.id,...n?{tab:n}:{}};if(e.returnTo){r(o,{returnTo:e.returnTo});return}r(o)}export{m as o};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c}from"./createLucideIcon-DlxlBfLC.js";const a=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],o=c("paperclip",a);export{o as P};
|