@openscout/scout 0.2.78 → 0.2.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -0
- package/bin/scoutd +0 -0
- package/dist/build-manifest.json +3 -3
- package/dist/client/assets/ActivityScreen-BXm6nJ6L.js +1 -0
- package/dist/client/assets/{AddProjectForm-DMnobKch.js → AddProjectForm-CtEiLQnm.js} +1 -1
- package/dist/client/assets/{AgentAvatar-D90c1Rzk.js → AgentAvatar-CszU5eaU.js} +1 -1
- package/dist/client/assets/AgentConfigurationScreen-CfBXxrsD.js +1 -0
- package/dist/client/assets/AgentDefinitionsWorkspace-4Z0aN8AR.js +1 -0
- package/dist/client/assets/{AgentDetailCard-BcRBRp88.js → AgentDetailCard-sZuHl1de.js} +1 -1
- package/dist/client/assets/AgentFloorView-DMivAYHU.js +1 -0
- package/dist/client/assets/AgentInfoScreen-CPkLg1pK.js +1 -0
- package/dist/client/assets/{AgentLaneCard-RrNnDZu8.js → AgentLaneCard-nB68f2CI.js} +1 -1
- package/dist/client/assets/{AgentLaneChrome-D9ZwUKrl.js → AgentLaneChrome-O9Yf0uR-.js} +1 -1
- package/dist/client/assets/AgentLaneDetailSheet-BfhpaEQ3.js +4 -0
- package/dist/client/assets/{AgentLaneSummaryResize-BhFmGNzT.js → AgentLaneSummaryResize-Ct3b0TQR.js} +1 -1
- package/dist/client/assets/AgentLanesEmbedScreen-CjHMvy3v.js +1 -0
- package/dist/client/assets/{AgentLanesPreflight-eSAoDsPi.js → AgentLanesPreflight-DNGvZvjd.js} +1 -1
- package/dist/client/assets/AgentLanesView-DqRK5-d2.js +2 -0
- package/dist/client/assets/{AgentLiveActions-DBtnD0qE.js → AgentLiveActions-DI4ooSHW.js} +1 -1
- package/dist/client/assets/{AgentSessions-DyqOf4nG.js → AgentSessions-BxWIPkWh.js} +2 -2
- package/dist/client/assets/AgentsConsole-D6VHSCfZ.js +1 -0
- package/dist/client/assets/AgentsScreen-zR6b2bUL.js +1 -0
- package/dist/client/assets/AgentsSubnav-q0xcZi6C.js +1 -0
- package/dist/client/assets/{AtopView-BCkae3e1.js → AtopView-VZkk40v0.js} +1 -1
- package/dist/client/assets/BackToPicker-DZg_4nHL.js +1 -0
- package/dist/client/assets/{BriefingDetailScreen-BwFyysT8.js → BriefingDetailScreen-BZU4qMwE.js} +1 -1
- package/dist/client/assets/{BriefingsScreen-BQEevztH.js → BriefingsScreen-Bfc3tqPp.js} +1 -1
- package/dist/client/assets/{BrokerMetadataPanel-7UjcuNjd.js → BrokerMetadataPanel-CaFe6kdh.js} +1 -1
- package/dist/client/assets/BrokerScreen-Chh8sGen.js +5 -0
- package/dist/client/assets/{ChatCollapsedStrip-CQSYSd8s.js → ChatCollapsedStrip-Cov54p9V.js} +1 -1
- package/dist/client/assets/CodeDiffPane-C1ebFt-Y.js +1 -0
- package/dist/client/assets/{CodeProjectPicker-DqKFCpLU.js → CodeProjectPicker-tsCly-f3.js} +1 -1
- package/dist/client/assets/CodeScreen-D0hpZNLP.js +1 -0
- package/dist/client/assets/{ContextMenu-bARZqTzD.js → ContextMenu-N-Z6X0Z1.js} +1 -1
- package/dist/client/assets/ConversationComposer-CiEF7dhd.js +1 -0
- package/dist/client/assets/ConversationFeedRows-5it6QNBV.js +1 -0
- package/dist/client/assets/ConversationHeader-BGgbITvr.js +1 -0
- package/dist/client/assets/ConversationPanels-vI9YuQJh.js +2 -0
- package/dist/client/assets/ConversationScreen-C-PrCRz1.js +1 -0
- package/dist/client/assets/ConversationScreen-yIKEsm-8.css +1 -0
- package/dist/client/assets/ConversationStatus-COEj5loj.js +1 -0
- package/dist/client/assets/{DataTable-E8s_MmoA.js → DataTable-BoofV-_4.js} +1 -1
- package/dist/client/assets/{DispatchAftermath-Dpe88DFX.js → DispatchAftermath-OXYlMbT1.js} +1 -1
- package/dist/client/assets/{DocumentFocusViewer-BeVwwl26.js → DocumentFocusViewer-BCG2kOmd.js} +1 -1
- package/dist/client/assets/{EmbeddableSurfacesLab-BQqFQVnI.js → EmbeddableSurfacesLab-C2SZvrHJ.js} +1 -1
- package/dist/client/assets/{EmptyState-4F9XDFQm.js → EmptyState-DypEjx0V.js} +1 -1
- package/dist/client/assets/{FileViewerPane-CLgUhSm4.js → FileViewerPane-CXCq-oKj.js} +1 -1
- package/dist/client/assets/{FleetSearch-Dz5euQJe.js → FleetSearch-Dj7-CfNi.js} +1 -1
- package/dist/client/assets/FlightObserveScreen-Yq5NtQQJ.js +1 -0
- package/dist/client/assets/FollowScreen-DRgYuAvp.js +1 -0
- package/dist/client/assets/HarnessMark-BE-YSyci.js +1 -0
- package/dist/client/assets/HarnessesScreen-L-emPcXd.js +1 -0
- package/dist/client/assets/HerdrSession-DKFCJMst.js +4 -0
- package/dist/client/assets/{HomeHero-B3uYd-pP.js → HomeHero-CAEg8Yg5.js} +1 -1
- package/dist/client/assets/KnowledgeSearchInspector-C2EZsQ5i.js +1 -0
- package/dist/client/assets/KnowledgeSearchScreen-DvdOFh-b.js +1 -0
- package/dist/client/assets/{LaneToolHoverCard-Bla0gBdm.js → LaneToolHoverCard-DrPXYZvQ.js} +1 -1
- package/dist/client/assets/LaneTraceDetailSheet-Dl7foF88.js +1 -0
- package/dist/client/assets/{LaneTraceEventFocus-BF9ERP5O.js → LaneTraceEventFocus-X4-DDFEo.js} +1 -1
- package/dist/client/assets/{MeshCanvas-DFEPkpqY.js → MeshCanvas-rtCBD7s6.js} +2 -2
- package/dist/client/assets/{MeshCanvasMinimap-CyVFYixr.js → MeshCanvasMinimap-CuvXOkc7.js} +1 -1
- package/dist/client/assets/MeshScreen-D5zzTn0o.js +1 -0
- package/dist/client/assets/{MeshTopologyView-CalkZghg.js → MeshTopologyView-CeTShs-U.js} +2 -2
- package/dist/client/assets/{MessageComposerSuggestions-DpxN9WiB.js → MessageComposerSuggestions-Cs9u-F_3.js} +1 -1
- package/dist/client/assets/MessagesScreen-BhOJ7_tj.js +1 -0
- package/dist/client/assets/MissionContextRail-0O-Zu1Tn.js +1 -0
- package/dist/client/assets/MissionControlView-D2JO9u-y.js +1 -0
- package/dist/client/assets/{MissionFocusOverlay-wlCmWDCT.js → MissionFocusOverlay-LnjmqBiW.js} +1 -1
- package/dist/client/assets/MissionLeftAgentRow-nc1Jyq3D.js +1 -0
- package/dist/client/assets/MissionLogPane-lZ9vUftY.js +1 -0
- package/dist/client/assets/{NewAgentModal-Bg-eWHpY.js → NewAgentModal-K1cvdmZr.js} +1 -1
- package/dist/client/assets/NewChatComposer-C5LT7MF7.css +1 -0
- package/dist/client/assets/NewChatComposer-DXDxV2Mh.js +19 -0
- package/dist/client/assets/{NewChatOrigin-Bk2OyVjI.js → NewChatOrigin-CnjoswTG.js} +1 -1
- package/dist/client/assets/ObserveEmbedScreen-CRpzYf0Y.js +2 -0
- package/dist/client/assets/{ObserveTextFlow-rsFj_rVo.js → ObserveTextFlow-DJxQc2H6.js} +2 -2
- package/dist/client/assets/{ObservedTopologyPanel-DyUeV98H.js → ObservedTopologyPanel-C1AQM0Mq.js} +1 -1
- package/dist/client/assets/OpenScoutAppShell-DrHYD_pd.js +87 -0
- package/dist/client/assets/OpsAgentsView-BnMX0vEY.js +1 -0
- package/dist/client/assets/OpsScreen-BeC0lieE.js +1 -0
- package/dist/client/assets/OpsSubnav-D5Bpowtk.js +1 -0
- package/dist/client/assets/{PlanView-C1CjH3PG.js → PlanView-DDXdC19M.js} +1 -1
- package/dist/client/assets/ProjectAgentProfile-zE1cApxw.js +1 -0
- package/dist/client/assets/{ProjectAgentProfileBar-CtTpj6fU.js → ProjectAgentProfileBar-MODhG0P6.js} +1 -1
- package/dist/client/assets/ProjectAgentProfileHero-C1ImgGDu.js +1 -0
- package/dist/client/assets/ProjectsInbox-C3Jd6JTk.js +2 -0
- package/dist/client/assets/{ProjectsRail-BgiuV4LR.js → ProjectsRail-B1zrQLZe.js} +1 -1
- package/dist/client/assets/ProjectsScreen-PW_NH5VK.js +1 -0
- package/dist/client/assets/ProjectsThreadAside-DaCEUWN1.js +1 -0
- package/dist/client/assets/Provider-DSsb2gLR.js +1 -0
- package/dist/client/assets/{RailRow-BoGxAHNF.js → RailRow-DerXOXQS.js} +1 -1
- package/dist/client/assets/RawSessionsTable-LWEvXJzj.js +1 -0
- package/dist/client/assets/RealtimeVoiceScreen-XtxbCjOs.js +1 -0
- package/dist/client/assets/{RepoDiffEmbedScreen-C0rumUME.js → RepoDiffEmbedScreen-C9oLCcZX.js} +1 -1
- package/dist/client/assets/{RepoDiffPageScreen-DMv6DioL.js → RepoDiffPageScreen-CGEMAv2Z.js} +1 -1
- package/dist/client/assets/RepoDiffViewer-CB8PSVey.js +7 -0
- package/dist/client/assets/RepoDiffViewerLazy-DIxkiMto.js +2 -0
- package/dist/client/assets/{ReposScreen-CB_YBWYf.js → ReposScreen-BN1lVjOj.js} +2 -2
- package/dist/client/assets/{ScoutDeckSurface-CxIYFyWx.js → ScoutDeckSurface-BCpl0QCx.js} +1 -1
- package/dist/client/assets/{ScoutSurface-CYz_TcWC.js → ScoutSurface-BEnDlynn.js} +1 -1
- package/dist/client/assets/{ScoutbotBroadcastChip-L_R9atj0.js → ScoutbotBroadcastChip-z9R_pC_U.js} +1 -1
- package/dist/client/assets/{ScoutbotFxLab-CgiZMDMW.js → ScoutbotFxLab-fAROyIfz.js} +1 -1
- package/dist/client/assets/{ScoutbotRealtimeVoiceCall-FMQOr1Np.js → ScoutbotRealtimeVoiceCall-CDyFJX8m.js} +1 -1
- package/dist/client/assets/{SecondaryNav-B3-nh5dM.js → SecondaryNav-Hv5AJ3Fv.js} +1 -1
- package/dist/client/assets/SessionEmbedScreen-CDRpQc3g.js +1 -0
- package/dist/client/assets/SessionObserve-BmmJ8dEh.js +12 -0
- package/dist/client/assets/SessionObserve-CLrHfAKZ.css +1 -0
- package/dist/client/assets/SessionObserveEvidence-CEedIk2a.js +1 -0
- package/dist/client/assets/SessionRefScreen-Dk-O4OVt.js +1 -0
- package/dist/client/assets/SessionsScreen-BJEjuo2X.js +1 -0
- package/dist/client/assets/{SettingsDrawer-XfdAa_nD.js → SettingsDrawer-DL-SVLdd.js} +3 -3
- package/dist/client/assets/SettingsDrawer-UX7pFJU_.css +1 -0
- package/dist/client/assets/SettingsScreen-DJ-BhBwR.js +1 -0
- package/dist/client/assets/{ShikiPane-Ap1iPxYb.js → ShikiPane-B7O4if20.js} +1 -1
- package/dist/client/assets/{SlidePanel-COwtoJqR.js → SlidePanel-B3gc5HnM.js} +1 -1
- package/dist/client/assets/SpriteAvatar-BpQDpOkq.js +1 -0
- package/dist/client/assets/{StatusPill-DhBL__p8.js → StatusPill-B33sQinT.js} +1 -1
- package/dist/client/assets/{TailView-DGj_5HA9.js → TailView-DL3YZkzE.js} +2 -2
- package/dist/client/assets/Terminal-Dp1FSGIS.js +1 -0
- package/dist/client/assets/TerminalEmbedScreen-DP9IM4xf.js +1 -0
- package/dist/client/assets/{TextDocumentSurface-BpAw4eQS.js → TextDocumentSurface-DRjctOIt.js} +1 -1
- package/dist/client/assets/{TmuxPeek-m1osv33Q.js → TmuxPeek-DNC4uWky.js} +1 -1
- package/dist/client/assets/{VoicePermissionsPanel-DsK53ar4.js → VoicePermissionsPanel-WLN0V-Xv.js} +1 -1
- package/dist/client/assets/{WorkDetailScreen-Bx0JimPC.js → WorkDetailScreen-D2Yl0mYZ.js} +3 -3
- package/dist/client/assets/{WorkFilesViewer-Btl6C2Q1.js → WorkFilesViewer-BbVfcUN-.js} +1 -1
- package/dist/client/assets/{activity-CA8qS6PI.js → activity-BxwKkT8z.js} +1 -1
- package/dist/client/assets/{addon-fit-BZ-kXjeN.js → addon-fit-B9O2vJoh.js} +1 -1
- package/dist/client/assets/{addon-webgl-D9-EQVEK.js → addon-webgl-BhRZFDcn.js} +1 -1
- package/dist/client/assets/{agent-essentials-BSY1o46q.js → agent-essentials-SrzMYEXV.js} +1 -1
- package/dist/client/assets/agent-identity-BxCsXnDp.js +1 -0
- package/dist/client/assets/agent-lane-card-BkWVDYM8.css +1 -0
- package/dist/client/assets/{agent-lane-card-model-r2frk57c.js → agent-lane-card-model-DSWdGu-v.js} +1 -1
- package/dist/client/assets/agent-lane-detail-BNNm6FNu.js +2 -0
- package/dist/client/assets/{agent-lane-preview-CmHVe3dU.js → agent-lane-preview-C33Dwpn7.js} +1 -1
- package/dist/client/assets/{agent-lanes-model-B4YTt4OF.js → agent-lanes-model-CPgQRenB.js} +2 -2
- package/dist/client/assets/{arc.es-CQBb-dVu.js → arc.es-NlJw-19N.js} +1 -1
- package/dist/client/assets/{arrow-down-BPLe0am9.js → arrow-down-D3-IbArq.js} +1 -1
- package/dist/client/assets/{arrow-left-DEZzHiPS.js → arrow-left-_vS7itsV.js} +1 -1
- package/dist/client/assets/{arrow-up-right-ClxBnsi7.js → arrow-up-right-CcrWONpD.js} +1 -1
- package/dist/client/assets/{bot-eu8pBNvI.js → bot-BRINYlC6.js} +1 -1
- package/dist/client/assets/{check-DjgFiBxb.js → check-COxArFXG.js} +1 -1
- package/dist/client/assets/{chevron-down-BGk5qoEw.js → chevron-down-DRCbnzyY.js} +1 -1
- package/dist/client/assets/{chevron-right-XiIHsk4m.js → chevron-right-CNE6QAVr.js} +1 -1
- package/dist/client/assets/chunk-HRAB3GC3-CAeEKaf5.js +1 -0
- package/dist/client/assets/chunk-JTPDIGGW-s6WbxdjC.js +46 -0
- package/dist/client/assets/{chunk-T65CQEWV-CrzwSeEt.js → chunk-T65CQEWV-CiZ_ICHW.js} +1 -1
- package/dist/client/assets/chunk-YOZR3KYS-DLOc92uD.js +2 -0
- package/dist/client/assets/clock-CyfvRmj6.js +1 -0
- package/dist/client/assets/{code-xml-B6jOCM4V.js → code-xml--LjSM4Mv.js} +1 -1
- package/dist/client/assets/content-7ZeCPAEt.js +1 -0
- package/dist/client/assets/content-BHUcUCH5.js +1 -0
- package/dist/client/assets/content-BUhvLPkv.js +1 -0
- package/dist/client/assets/content-BomQ5YWo.js +1 -0
- package/dist/client/assets/content-C39ELNgC.js +1 -0
- package/dist/client/assets/content-C4RYKHut.js +1 -0
- package/dist/client/assets/content-CCiZfG4H.js +1 -0
- package/dist/client/assets/content-CDpDtVI-.js +1 -0
- package/dist/client/assets/content-CO-9CeFd.js +1 -0
- package/dist/client/assets/content-CuOLxp1x.js +1 -0
- package/dist/client/assets/content-CvtLIjXS.js +1 -0
- package/dist/client/assets/content-CzwTUb9n.js +1 -0
- package/dist/client/assets/content-DQXbo2RO.js +1 -0
- package/dist/client/assets/content-DRTQ9QQb.js +1 -0
- package/dist/client/assets/content-LCELs6zg.js +1 -0
- package/dist/client/assets/content-Uqt8AG-s.css +1 -0
- package/dist/client/assets/content-qsDjA4Au.js +1 -0
- package/dist/client/assets/{context-budget-CbB4BDcO.js → context-budget-DX_fwUs3.js} +1 -1
- package/dist/client/assets/{conversation-icons-IIG5ha6D.js → conversation-icons-c-hXv7hY.js} +1 -1
- package/dist/client/assets/conversation-model-CHwHZNw-.js +1 -0
- package/dist/client/assets/conversation-motion-features-T8vF9zED.js +1 -0
- package/dist/client/assets/{copy-CQGYbxdu.js → copy-4LfKIdQJ.js} +1 -1
- package/dist/client/assets/{createLucideIcon-OpA4Amw5.js → createLucideIcon-ClCdc3F9.js} +1 -1
- package/dist/client/assets/discover-7Ks00w-M.js +2 -0
- package/dist/client/assets/embed-entry-n2ThmSSX.js +2 -0
- package/dist/client/assets/{external-link-CXBytO9o.js → external-link-CnaI1QFS.js} +1 -1
- package/dist/client/assets/{eye-0PvebX_a.js → eye-BFlhMzQL.js} +1 -1
- package/dist/client/assets/{file-text-BODxCjcz.js → file-text-DG-pufl1.js} +1 -1
- package/dist/client/assets/{gestures-CcwOTu8C.js → gestures-CxG3Dphs.js} +1 -1
- package/dist/client/assets/home-live-action-BkqGLVRY.js +1 -0
- package/dist/client/assets/home-moving-signal-aNJusIzL.js +1 -0
- package/dist/client/assets/home-now-card-BQK4EFHx.js +1 -0
- package/dist/client/assets/{home-now-card-nano-BcjnOU9H.js → home-now-card-nano-CdtzqSIF.js} +1 -1
- package/dist/client/assets/hooks-Dst1TH7n.js +2 -0
- package/dist/client/assets/inbox-thread-redesign-B_1ocqaX.css +1 -0
- package/dist/client/assets/index-9as_JTUs.css +1 -0
- package/dist/client/assets/index-CU9dtwJk.js +1 -0
- package/dist/client/assets/{index-DMiGbrBt.js → index-CzVeWScw.js} +6 -6
- package/dist/client/assets/index-Dewd56RX.js +1 -0
- package/dist/client/assets/index-_YQXKEhb.js +1 -0
- package/dist/client/assets/{inspector-panel-DPoCWxKs.js → inspector-panel-DgOM8nCo.js} +2 -2
- package/dist/client/assets/keyboard-nav-BJnFoFDP.js +1 -0
- package/dist/client/assets/knowledge-search-D_bLoYtC.css +1 -0
- package/dist/client/assets/{lane-observe-D0rfKDnU.js → lane-observe-BA3g9aVd.js} +1 -1
- package/dist/client/assets/{lane-roster-store-D8x1jac2.js → lane-roster-store-pR4ZaYQm.js} +1 -1
- package/dist/client/assets/left-BhzPp-_E.js +1 -0
- package/dist/client/assets/left-CN1MABD0.js +2 -0
- package/dist/client/assets/left-DDgbsio7.js +1 -0
- package/dist/client/assets/left-Dpf2R9uD.js +1 -0
- package/dist/client/assets/left-HwwbMVtl.js +2 -0
- package/dist/client/assets/left-YfH0daht.js +1 -0
- package/dist/client/assets/left-agents-CYUwAy2Z.js +1 -0
- package/dist/client/assets/left-default-vEGZALPv.js +1 -0
- package/dist/client/assets/left-lanes-bphF-vlX.js +1 -0
- package/dist/client/assets/left-mission-B54-c3hq.js +1 -0
- package/dist/client/assets/left-np5USKqG.js +1 -0
- package/dist/client/assets/left-plan-BNBuDoPQ.js +2 -0
- package/dist/client/assets/library-DbCVJG_O.js +1 -0
- package/dist/client/assets/{loader-circle-CbHjZsz1.js → loader-circle-Byb9kSFx.js} +1 -1
- package/dist/client/assets/{local-agents--00gLMqr.js → local-agents-DBaUbP-_.js} +1 -1
- package/dist/client/assets/{mentions-jSuTGeet.js → mentions-fbQJ2mBI.js} +1 -1
- package/dist/client/assets/mesh-ops-B1kDjizF.css +1 -0
- package/dist/client/assets/mesh-ops-Cnw3vwAu.js +1 -0
- package/dist/client/assets/{mesh-view-store-CWidRbTE.js → mesh-view-store-Btlyc7rW.js} +1 -1
- package/dist/client/assets/{message-circle-CG-96zts.js → message-circle-aGOfQWm2.js} +1 -1
- package/dist/client/assets/{message-markup-3J9pi3nx.js → message-markup-mGF07emJ.js} +1 -1
- package/dist/client/assets/{message-square-DSaGpjFU.js → message-square-CIXda-Y7.js} +1 -1
- package/dist/client/assets/mission-control-m3BTDQ9l.css +1 -0
- package/dist/client/assets/{mission-control-store-BlnEhiCq.js → mission-control-store-CcoNeQHG.js} +1 -1
- package/dist/client/assets/mission-wall-CocIM1cF.js +1 -0
- package/dist/client/assets/{model-CpAxGuis.js → model-IGCUEsMy.js} +1 -1
- package/dist/client/assets/{observe-CuLGD9Zp.js → observe-BNFzh-7B.js} +1 -1
- package/dist/client/assets/openAgent-Dbv5wfuL.js +1 -0
- package/dist/client/assets/{page-status-DpkedE1F.js → page-status-DDvNdA8s.js} +1 -1
- package/dist/client/assets/paperclip-DfpJkR4s.js +1 -0
- package/dist/client/assets/{plus--b1raV_O.js → plus-CmFQp9Uj.js} +1 -1
- package/dist/client/assets/profile-s3KRbip1.js +1 -0
- package/dist/client/assets/{projects-inbox-CHyUFQ6w.js → projects-inbox-Diddml6e.js} +1 -1
- package/dist/client/assets/{radio-Bz8ZePxj.js → radio-PauJIekM.js} +1 -1
- package/dist/client/assets/{refresh-cw-BBmAnCB7.js → refresh-cw-4oeFn1Jn.js} +1 -1
- package/dist/client/assets/repo-diff-DyYmQMSA.css +1 -0
- package/dist/client/assets/resolve-panes-cp6eNewO.js +1 -0
- package/dist/client/assets/resolve-sidebar-context-Dbo-5PWx.js +1 -0
- package/dist/client/assets/right-09W2JJFg.js +1 -0
- package/dist/client/assets/right-B-MKhiJ6.js +1 -0
- package/dist/client/assets/right-B91Zl8lQ.js +1 -0
- package/dist/client/assets/{right-DjRXbnRP.js → right-BcFnuse9.js} +1 -1
- package/dist/client/assets/right-BdtMzn35.js +1 -0
- package/dist/client/assets/right-BqmKXLtf.js +1 -0
- package/dist/client/assets/right-BzeB-Dpt.js +1 -0
- package/dist/client/assets/right-CkGOs-sq.js +1 -0
- package/dist/client/assets/right-CzGiNBzB.js +1 -0
- package/dist/client/assets/right-Dc7uqv7l.js +1 -0
- package/dist/client/assets/{rocket-BSNS_rLs.js → rocket-C-AskjZH.js} +1 -1
- package/dist/client/assets/router-B-K15T7B.js +1 -0
- package/dist/client/assets/{runtime-picker-Bcl5iIX5.js → runtime-picker-BCQD7d4K.js} +1 -1
- package/dist/client/assets/{scope-views-U-ucT9m0.js → scope-views-BhkbIFPY.js} +1 -1
- package/dist/client/assets/{scout-voice-CU5c0LGi.js → scout-voice-S5_YZ2v8.js} +1 -1
- package/dist/client/assets/{scroll-text-D6Pdnar7.js → scroll-text-BV-BB7v-.js} +1 -1
- package/dist/client/assets/{search-CWfZtOt2.js → search-C3bSJluv.js} +1 -1
- package/dist/client/assets/secondaryNavConfig-Bg4Tc0gT.js +1 -0
- package/dist/client/assets/{selection-bridge-16pk1qyG.js → selection-bridge-B1dmkX3P.js} +1 -1
- package/dist/client/assets/{send-horizontal-Bg5-QggH.js → send-horizontal-CqogPmbY.js} +1 -1
- package/dist/client/assets/{server-CPp4ZJhZ.js → server-Brw5Y1Gh.js} +1 -1
- package/dist/client/assets/{session-catalog-BmoyVTJ_.js → session-catalog-9FqXmjBw.js} +1 -1
- package/dist/client/assets/session-table-1xdSxSXq.js +1 -0
- package/dist/client/assets/{sliders-horizontal-1oW76Xc9.js → sliders-horizontal-CUiOH26y.js} +1 -1
- package/dist/client/assets/sparkles-BjCA3Evu.js +1 -0
- package/dist/client/assets/{sse-CjIkKo46.js → sse-QcU9bikk.js} +1 -1
- package/dist/client/assets/synthetic-agent-routing-aduMYO7P.js +1 -0
- package/dist/client/assets/system-surfaces-redesign-B7GQhfpw.css +1 -0
- package/dist/client/assets/{tail-display-BdyoLvzY.js → tail-display-BRcJltQa.js} +2 -2
- package/dist/client/assets/{tail-events-D19uAGe3.js → tail-events-C6K7bCWB.js} +1 -1
- package/dist/client/assets/{terminal-B9AOZQKR.js → terminal-DrTkVXIj.js} +1 -1
- package/dist/client/assets/{terminal-relay-CWbJ1RCW.js → terminal-relay-BkXjjSkq.js} +1 -1
- package/dist/client/assets/{terminal-screen-19jAI0Cw.css → terminal-screen-BqVnCwl0.css} +1 -1
- package/dist/client/assets/terminal-sessions-C3qU8tnY.js +1 -0
- package/dist/client/assets/{terminal-takeover-B8UeD9OX.js → terminal-takeover-KvmTwABa.js} +1 -1
- package/dist/client/assets/{time-DltNTpLl.js → time-Dhsh_2EG.js} +1 -1
- package/dist/client/assets/{use-conversation-list-Byab41G6.js → use-conversation-list-C5sF6WBR.js} +1 -1
- package/dist/client/assets/{use-fleet-active-asks-BIbQx5AS.js → use-fleet-active-asks-BOMPW0nl.js} +1 -1
- package/dist/client/assets/use-mesh-ops-items-Co05vcTV.js +1 -0
- package/dist/client/assets/{use-reduced-motion-RRBkmVkk.js → use-reduced-motion-Dla-G_Jz.js} +1 -1
- package/dist/client/assets/use-scout-dev-flags-BOQF3fW2.js +1 -0
- package/dist/client/assets/{useAgentHoverCard-DMrbBif0.js → useAgentHoverCard-FtCmY-b9.js} +1 -1
- package/dist/client/assets/useContentSecondaryNav-BX7Sq7vy.js +1 -0
- package/dist/client/assets/usePierreRuntime-Bo4lD7Ui.js +50 -0
- package/dist/client/assets/{wrench-Bkc_0lKF.js → wrench-CeCdjiPF.js} +1 -1
- package/dist/client/assets/{x-D3GElQbe.js → x-D4X_y1j_.js} +1 -1
- package/dist/client/assets/{xterm-BKR8oAkR.js → xterm-D2a5wrkJ.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/drizzle/0007_lean_venus.sql +26 -0
- package/dist/drizzle/0008_luxuriant_ted_forrester.sql +1 -0
- package/dist/drizzle/meta/0007_snapshot.json +5767 -0
- package/dist/drizzle/meta/0008_snapshot.json +5774 -0
- package/dist/drizzle/meta/_journal.json +14 -0
- package/dist/main.mjs +29271 -4824
- package/dist/node/main.mjs +31635 -11915
- package/dist/openscout-terminal-relay.mjs +16 -4
- package/dist/pairing-runtime-controller.mjs +37812 -16924
- package/dist/runtime/base-daemon.mjs +109 -18
- package/dist/runtime/broker-daemon.mjs +22247 -2746
- package/dist/runtime/broker-process-manager.mjs +122 -12
- package/dist/runtime/mesh-discover.mjs +90 -13
- package/dist/scout-control-plane-web.mjs +23083 -3481
- package/dist/scout-web-server.mjs +23083 -3481
- package/dist/statusline.mjs +2 -0
- package/package.json +3 -1
- package/dist/client/assets/ActivityScreen-Cu_1V4bq.js +0 -1
- package/dist/client/assets/AgentConfigurationScreen-BqfOz90D.js +0 -1
- package/dist/client/assets/AgentDefinitionsWorkspace-CUpUrY57.js +0 -1
- package/dist/client/assets/AgentFloorView-8LoAEBwS.js +0 -1
- package/dist/client/assets/AgentInfoScreen-DZs2_ibL.js +0 -1
- package/dist/client/assets/AgentLaneDetailSheet-BXbPls9N.js +0 -5
- package/dist/client/assets/AgentLanesEmbedScreen-W3qs022h.js +0 -1
- package/dist/client/assets/AgentLanesView-B9vuEEmZ.js +0 -2
- package/dist/client/assets/AgentsConsole-BgiYP2wR.js +0 -1
- package/dist/client/assets/AgentsScreen-DBi8x4MB.js +0 -1
- package/dist/client/assets/AgentsSubnav-DIEO4NPx.js +0 -1
- package/dist/client/assets/BackToPicker-BRvfostO.js +0 -1
- package/dist/client/assets/BrokerScreen-7ekklu88.js +0 -5
- package/dist/client/assets/CodeDiffPane-DDPt6KPh.js +0 -1
- package/dist/client/assets/CodeScreen-BxCrpRHd.js +0 -1
- package/dist/client/assets/ConversationComposer-Bla3DDvM.js +0 -1
- package/dist/client/assets/ConversationFeedRows-B_gPxcqA.js +0 -1
- package/dist/client/assets/ConversationHeader-DE3FC0m-.js +0 -1
- package/dist/client/assets/ConversationPanels-DLek4H6A.js +0 -2
- package/dist/client/assets/ConversationScreen-BDRhx-RU.js +0 -1
- package/dist/client/assets/ConversationScreen-C9yMAMYF.css +0 -1
- package/dist/client/assets/ConversationStatus-BwVLiiO4.js +0 -1
- package/dist/client/assets/FlightObserveScreen-6RpZYwVz.js +0 -1
- package/dist/client/assets/FollowScreen-DZ4qfYOY.js +0 -1
- package/dist/client/assets/HarnessMark-Cbv3Ib0c.js +0 -1
- package/dist/client/assets/HarnessesScreen-CznAImej.js +0 -1
- package/dist/client/assets/KnowledgeSearchInspector-Dgdkfvvz.js +0 -1
- package/dist/client/assets/KnowledgeSearchScreen-DJDGGaqC.js +0 -1
- package/dist/client/assets/LaneTraceDetailSheet-D1CspRbl.js +0 -1
- package/dist/client/assets/MeshScreen-DFgevn8N.js +0 -1
- package/dist/client/assets/MessagesScreen-C8YKW10Y.js +0 -1
- package/dist/client/assets/MissionControlView-lUeAiSVg.js +0 -1
- package/dist/client/assets/MissionLeftAgentRow-BpZWntfl.js +0 -1
- package/dist/client/assets/MissionLogPane-__MVtEl9.js +0 -1
- package/dist/client/assets/NewChatComposer-Cs6OsxK6.js +0 -19
- package/dist/client/assets/NewChatComposer-W-t-L4oV.css +0 -1
- package/dist/client/assets/ObserveEmbedScreen-y2EpuqRZ.js +0 -2
- package/dist/client/assets/OpenScoutAppShell-C_URc8sV.js +0 -87
- package/dist/client/assets/OpsAgentsView-UN7iOscs.js +0 -1
- package/dist/client/assets/OpsScreen-Buf3LKjb.js +0 -1
- package/dist/client/assets/OpsSubnav-DsuXzHah.js +0 -1
- package/dist/client/assets/ProjectAgentProfile-DJusrAV-.js +0 -1
- package/dist/client/assets/ProjectAgentProfileHero-BFwNJo_N.js +0 -1
- package/dist/client/assets/ProjectsInbox-GhVMxOhw.js +0 -2
- package/dist/client/assets/ProjectsScreen-eNUBy4YU.js +0 -1
- package/dist/client/assets/ProjectsThreadAside-CoBgnHmr.js +0 -1
- package/dist/client/assets/Provider-C7UKGHQy.js +0 -1
- package/dist/client/assets/RawSessionsTable-DL8y_eEy.js +0 -1
- package/dist/client/assets/RealtimeVoiceScreen-ffS-39zy.js +0 -1
- package/dist/client/assets/RepoDiffViewer-D_exm6xK.js +0 -7
- package/dist/client/assets/RepoDiffViewerLazy-BPgF92Bg.js +0 -2
- package/dist/client/assets/SessionEmbedScreen-BVC7yvWF.js +0 -1
- package/dist/client/assets/SessionObserve-BpggNO_M.css +0 -1
- package/dist/client/assets/SessionObserve-yfXFafp8.js +0 -12
- package/dist/client/assets/SessionRefScreen-DRgJu7Jo.js +0 -1
- package/dist/client/assets/SessionsScreen-D6XUsZfA.js +0 -1
- package/dist/client/assets/SettingsDrawer-CmJt72ww.css +0 -1
- package/dist/client/assets/SettingsScreen-Cy8z-EuR.js +0 -1
- package/dist/client/assets/SpriteAvatar-DyaGuhik.js +0 -1
- package/dist/client/assets/Terminal-CqvGbjXU.js +0 -1
- package/dist/client/assets/TerminalEmbedScreen-DuZZFFzW.js +0 -1
- package/dist/client/assets/agent-chat-Bfjd9y6c.js +0 -1
- package/dist/client/assets/agent-lane-card-Dm7YWoew.css +0 -1
- package/dist/client/assets/agent-lane-detail-Djm3YJEa.js +0 -1
- package/dist/client/assets/chunk-YOZR3KYS-Bet8khjg.js +0 -47
- package/dist/client/assets/content-BDt9VBPk.js +0 -1
- package/dist/client/assets/content-BIXf4cKR.js +0 -1
- package/dist/client/assets/content-BLm0NBJM.js +0 -1
- package/dist/client/assets/content-C2EwTb2y.js +0 -1
- package/dist/client/assets/content-C5UbLsDF.js +0 -1
- package/dist/client/assets/content-CHU0wwA3.css +0 -1
- package/dist/client/assets/content-CR3vdrYY.js +0 -1
- package/dist/client/assets/content-CSPVmo2s.js +0 -1
- package/dist/client/assets/content-C_FGqx1X.js +0 -1
- package/dist/client/assets/content-CvlVUOG8.js +0 -1
- package/dist/client/assets/content-D5kJmfgl.js +0 -1
- package/dist/client/assets/content-DTpQsomG.js +0 -1
- package/dist/client/assets/content-DikVsqLf.js +0 -1
- package/dist/client/assets/content-DlUe5Ono.js +0 -1
- package/dist/client/assets/content-GIBv_55n.js +0 -1
- package/dist/client/assets/content-Q2oclDzi.js +0 -1
- package/dist/client/assets/conversation-model-B47vYmWN.js +0 -1
- package/dist/client/assets/conversation-motion-features-BdAONVls.js +0 -1
- package/dist/client/assets/discover-C1YwpBDE.js +0 -2
- package/dist/client/assets/embed-entry-BAcGL3g9.js +0 -2
- package/dist/client/assets/home-live-action-B22u89j7.js +0 -1
- package/dist/client/assets/home-moving-signal-CK147hxn.js +0 -1
- package/dist/client/assets/home-now-card-BgvNWuea.js +0 -1
- package/dist/client/assets/hooks-B6y_O2FB.js +0 -2
- package/dist/client/assets/inbox-thread-redesign-Bz4FjWzr.css +0 -1
- package/dist/client/assets/index-BcuhqXLe.js +0 -1
- package/dist/client/assets/index-CJXzfjo9.js +0 -1
- package/dist/client/assets/index-DQPvraRS.js +0 -1
- package/dist/client/assets/index-DxGoC5l5.css +0 -1
- package/dist/client/assets/keyboard-nav-2kv_tGUS.js +0 -1
- package/dist/client/assets/knowledge-search-CVxQwxPn.js +0 -1
- package/dist/client/assets/knowledge-search-DjrQdiiW.css +0 -1
- package/dist/client/assets/left-C--GiIh8.js +0 -2
- package/dist/client/assets/left-Cj7Rt89X.js +0 -1
- package/dist/client/assets/left-CpNEtFEg.js +0 -1
- package/dist/client/assets/left-CzXAuK_t.js +0 -2
- package/dist/client/assets/left-agents-Bo9sO1by.js +0 -1
- package/dist/client/assets/left-bN4PCAXa.js +0 -1
- package/dist/client/assets/left-default-DV9GdvYi.js +0 -1
- package/dist/client/assets/left-jYYGAOYD.js +0 -1
- package/dist/client/assets/left-lanes-D0l_Co7V.js +0 -1
- package/dist/client/assets/left-mission-Ci7zREkQ.js +0 -1
- package/dist/client/assets/left-plan-D4U1uflW.js +0 -2
- package/dist/client/assets/library-D-RxGiCw.js +0 -1
- package/dist/client/assets/mission-control-D3ikEPND.css +0 -1
- package/dist/client/assets/openAgent-Bjt57GdM.js +0 -1
- package/dist/client/assets/profile-CVRziEDA.js +0 -1
- package/dist/client/assets/repo-diff-C9Qs-bEn.css +0 -1
- package/dist/client/assets/resolve-panes-r9B3mpW7.js +0 -1
- package/dist/client/assets/resolve-sidebar-context-DcG8xGaB.js +0 -1
- package/dist/client/assets/right-BHeiIaty.js +0 -1
- package/dist/client/assets/right-BkgKo9VT.js +0 -1
- package/dist/client/assets/right-BpEU5jWE.js +0 -1
- package/dist/client/assets/right-CRZXoy-X.js +0 -1
- package/dist/client/assets/right-ChF_pbPy.js +0 -1
- package/dist/client/assets/right-DMoUT3KN.js +0 -1
- package/dist/client/assets/right-T4Ue6EqM.js +0 -1
- package/dist/client/assets/right-wzrLXKur.js +0 -1
- package/dist/client/assets/router-Bq5dwf78.js +0 -1
- package/dist/client/assets/secondaryNavConfig-DqUIp0Es.js +0 -1
- package/dist/client/assets/session-table-DZcrKoIH.js +0 -1
- package/dist/client/assets/sparkles-ClfRJQ6w.js +0 -1
- package/dist/client/assets/system-surfaces-redesign-CD26LFc0.css +0 -1
- package/dist/client/assets/terminal-sessions-D5CIR2OL.js +0 -1
- package/dist/client/assets/useContentSecondaryNav-DMl1WNm7.js +0 -1
- package/dist/client/assets/usePierreRuntime-wC-yMtBb.js +0 -50
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r,j as e}from"./index-DMiGbrBt.js";import{r as se}from"./index-CJXzfjo9.js";import{a as U}from"./api-h5zurxmi.js";import{u as ne}from"./keyboard-nav-2kv_tGUS.js";import{o as te}from"./openContent-C6XO6kr5.js";import{s as A,w as le}from"./project-overview-helpers-BQTc_Ous.js";import{X as ie}from"./x-D3GElQbe.js";import{R as re}from"./rocket-BSNS_rLs.js";import"./createLucideIcon-OpA4Amw5.js";const V=[{value:"codex",label:"Codex",runtimeId:"codex"},{value:"claude",label:"Claude",runtimeId:"claude"},{value:"pi",label:"Grok",runtimeId:"pi"}];function w(t){return t.trim().toLowerCase().replace(/^@+/,"").replace(/[^a-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||void 0}function oe(t){const n=new Set;for(const o of t){if(!o)continue;const s=w(o);s&&n.add(s)}return n}function ce(t,n,o){const s=t.trim();if(!s)return{status:"auto",normalized:void 0,rewritten:!1,message:o==="sticky"?"Scout will assign a reusable handle from the name pool.":"Scout will assign a disposable handle from the name pool.",tone:"ok"};const l=w(s);return l?n.has(l)?{status:"conflict",normalized:l,rewritten:l!==s.toLowerCase().replace(/^@+/,""),message:`@${l} already exists here. Pick another handle or leave it blank for auto.`,tone:"warn"}:{status:"ok",normalized:l,rewritten:l!==s.toLowerCase().replace(/^@+/,""),message:null,tone:"ok"}:{status:"invalid",normalized:void 0,rewritten:!1,message:"Use letters, numbers, dot, or dash.",tone:"warn"}}function S(t){return t==="pi"?"grok":t}function de(t,n,o,s=3){const l=w(t)??"agent",m=[l,`${l}-${S(n)}`,`${l}-dev`,`${l}-2`,`${l}-${S(n)}-2`],u=[];for(const v of m){const x=w(v);if(!(!x||o.has(x)||u.includes(x))&&(u.push(x),u.length>=s))break}return u}function ue(t){const{handle:n,persistence:o,harness:s,projectRootLabel:l}=t,m="A card starts a fresh session for each request. Use session:<id> only to continue an exact run.";return o==="one_time"?{disposable:!0,card:null,cli:`scout ask --project ${l} --harness ${s} "…"`,resolves:"Disposable session — Scout assigns a provisional handle that may be recycled. Not addressable later.",note:m}:n?{disposable:!1,card:`@${n}`,cli:`scout ask @${n} "…"`,resolves:`Reusable ${S(s)} session on this project — @${n} routes here from any surface.`,note:m}:{disposable:!1,card:"@auto",cli:'scout ask @<assigned-handle> "…"',resolves:`Scout assigns a reusable ${S(s)} handle from the name pool.`,note:m}}const me={ready:"ready",configured:"configured",installed:"login needed",missing:"not found"},q={ready:"ok",configured:"ok",installed:"warn",missing:"off"};function ke({open:t,onClose:n,projectTitle:o,projectRoot:s,primaryWt:l,worktreeCount:m,branches:u,existingAgents:v,agentCount:x,sessionCount:H,route:D,navigate:C}){const{ref:J,onKeyDown:W}=ne(t),[h,G]=r.useState("codex"),[M,X]=r.useState(""),[d,E]=r.useState("sticky"),[$,P]=r.useState(""),[R,Q]=r.useState(""),[L,I]=r.useState("idle"),[_,j]=r.useState(null),[K,Y]=r.useState(null);r.useEffect(()=>{t&&(j(null),I("idle"))},[t]),r.useEffect(()=>{if(!t)return;let a=!1;return(async()=>{const c=await U("/api/agent-config/snapshot").catch(()=>null);if(a||!c)return;const f=new Map;for(const g of c.runtimes)f.set(g.id,{state:g.state,detail:g.detail,loginCommand:g.loginCommand});Y(f)})(),()=>{a=!0}},[t]),r.useEffect(()=>{if(!t)return;const a=c=>{c.key==="Escape"&&(c.preventDefault(),n())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[t,n]);const k=r.useMemo(()=>oe(v.flatMap(a=>[a.name,a.handle])),[v]),i=r.useMemo(()=>ce($,k,d),[$,k,d]),z=r.useMemo(()=>de(o,h,k,3),[o,h,k]),T=s?A(s):"<no-root>",p=r.useMemo(()=>ue({handle:i.normalized,persistence:d,harness:h,projectRootLabel:T}),[i.normalized,d,h,T]),N=K?.get(V.find(a=>a.value===h)?.runtimeId??h);if(!t)return null;const Z=!!s&&L!=="starting"&&i.status!=="invalid"&&i.status!=="conflict",ee=L==="starting"?"Starting…":d==="one_time"?"Dispatch one-off":i.status==="conflict"?"Handle exists":i.normalized?`Create @${i.normalized}`:"Create with auto handle",O=async()=>{if(!(!s||L==="starting")){I("starting"),j(null);try{const a=M.trim(),c=R.trim(),f=i.normalized,g=await U("/api/sessions",{method:"POST",body:JSON.stringify({target:{projectPath:s},execution:{session:"new",harness:h,...a?{model:a}:{}},agent:{persistence:d,...f?{handle:f}:{}},...c?{seed:{instructions:c}}:{}})}),B=g.agentId?.trim(),F=g.sessionId?.trim(),y=g.conversationId?.trim();if(F){n(),te(C,{view:"sessions",sessionId:F},{returnTo:D});return}if(B){n(),C({...D,view:"agents-v2",agentId:B,selectedAgentId:void 0,sessionId:void 0,...y?{conversationId:y,tab:"message"}:{tab:"profile"}});return}if(y){n(),C({view:"conversation",conversationId:y});return}j("Agent start was accepted, but no target came back.")}catch(a){j(a instanceof Error?a.message:"Could not start an agent.")}finally{I("idle")}}},ae=a=>{if((a.metaKey||a.ctrlKey)&&a.key==="Enter"){a.preventDefault(),O();return}W(a)},b=[];return b.push({label:"root",value:s?A(s):"no project root",title:s??void 0}),l?b.push({label:"branch",value:le(l),title:l.path}):u.length>0&&b.push({label:"branch",value:u.length===1?u[0]:`${u.length} branches`}),m>1&&b.push({label:"worktrees",value:String(m)}),b.push({label:"existing",value:`${x} agent${x===1?"":"s"} · ${H} session${H===1?"":"s"}`}),se.createPortal(e.jsx("div",{className:"na-backdrop",role:"presentation",onClick:n,children:e.jsxs("div",{ref:J,className:"na-panel",role:"dialog","aria-modal":"true","aria-labelledby":"na-title",tabIndex:-1,onClick:a=>a.stopPropagation(),onKeyDown:ae,children:[e.jsxs("header",{className:"na-head",children:[e.jsxs("div",{className:"na-headIdent",children:[e.jsx("h2",{id:"na-title",className:"na-title",children:"New agent"}),e.jsxs("span",{className:"na-scope",children:["/",o]})]}),e.jsx("button",{type:"button",className:"na-close",onClick:n,"aria-label":"Close (Esc)",children:e.jsx(ie,{size:14,strokeWidth:2,"aria-hidden":!0})})]}),e.jsx("div",{className:"na-context",children:b.map(a=>e.jsxs("span",{className:"na-contextChip",title:a.title,children:[e.jsx("span",{className:"na-contextLabel",children:a.label}),e.jsx("span",{className:"na-contextValue",children:a.value})]},a.label))}),e.jsxs("div",{className:"na-body",children:[e.jsxs("section",{className:"na-section na-modeSection",children:[e.jsx("span",{className:"na-sectionLabel",children:"What are you creating?"}),e.jsxs("div",{className:"na-modeChoice",role:"radiogroup","aria-label":"Agent kind",children:[e.jsxs("button",{type:"button",role:"radio","aria-checked":d==="one_time",className:"na-modeCard","data-active":d==="one_time"||void 0,onClick:()=>E("one_time"),children:[e.jsx("span",{className:"na-modeTitle",children:"One-off run"}),e.jsx("span",{className:"na-modeSub",children:"Disposable session · not addressable later"})]}),e.jsxs("button",{type:"button",role:"radio","aria-checked":d==="sticky",className:"na-modeCard","data-active":d==="sticky"||void 0,onClick:()=>E("sticky"),children:[e.jsx("span",{className:"na-modeTitle",children:"Named agent"}),e.jsx("span",{className:"na-modeSub",children:"Reusable card · addressable by handle"})]})]})]}),e.jsxs("section",{className:"na-section",children:[e.jsx("span",{className:"na-sectionLabel",children:"Runtime"}),e.jsx("div",{className:"na-harnessRow",role:"radiogroup","aria-label":"Harness",children:V.map(a=>{const c=K?.get(a.runtimeId),f=h===a.value;return e.jsxs("button",{type:"button",role:"radio","aria-checked":f,className:"na-harness","data-active":f||void 0,onClick:()=>G(a.value),children:[e.jsx("span",{className:"na-harnessName",children:a.label}),c?e.jsxs("span",{className:"na-harnessState","data-tone":q[c.state],children:[e.jsx("span",{className:"na-dot","aria-hidden":!0}),me[c.state]]}):e.jsx("span",{className:"na-harnessState","data-tone":"off",children:"…"})]},a.value)})}),N&&N.state!=="ready"?e.jsxs("p",{className:"na-readinessNote","data-tone":q[N.state],children:[N.detail,N.loginCommand?e.jsxs("code",{className:"na-code",children:[" ",N.loginCommand]}):null]}):null,e.jsxs("label",{className:"na-field",children:[e.jsx("span",{children:"Model / profile"}),e.jsx("input",{value:M,placeholder:"default",onChange:a=>X(a.currentTarget.value)})]})]}),d==="sticky"?e.jsxs("section",{className:"na-section",children:[e.jsx("span",{className:"na-sectionLabel",children:"Handle (optional)"}),e.jsxs("label",{className:"na-field",children:[e.jsx("span",{children:"Address"}),e.jsxs("div",{className:"na-handleWrap","data-tone":i.tone,children:[e.jsx("span",{className:"na-handleAt",children:"@"}),e.jsx("input",{value:$,placeholder:z[0]??"auto","aria-invalid":i.tone==="warn",autoFocus:!0,onChange:a=>P(a.currentTarget.value)})]})]}),z.length>0?e.jsxs("div",{className:"na-suggestRow",children:[e.jsx("span",{className:"na-suggestLabel",children:"suggest"}),z.map(a=>e.jsxs("button",{type:"button",className:"na-suggest",onClick:()=>P(a),children:["@",a]},a))]}):null,i.message?e.jsx("p",{className:"na-validation","data-tone":i.tone,children:i.message}):i.rewritten&&i.normalized?e.jsxs("p",{className:"na-validation","data-tone":"ok",children:["Saved as ",e.jsxs("code",{className:"na-code",children:["@",i.normalized]})]}):null]}):null,e.jsxs("section",{className:"na-section",children:[e.jsx("span",{className:"na-sectionLabel",children:"First instruction"}),e.jsx("textarea",{className:"na-prompt",value:R,rows:3,placeholder:`Start in /${o}…`,onChange:a=>Q(a.currentTarget.value)})]}),e.jsxs("section",{className:"na-section na-routing",children:[e.jsx("span",{className:"na-sectionLabel",children:p.disposable?"Dispatch preview":"Routing preview"}),p.disposable?e.jsxs("div",{className:"na-routingBody","data-disposable":!0,children:[e.jsx("p",{className:"na-routingResolves",children:p.resolves}),e.jsx("button",{type:"button",className:"na-promote",onClick:()=>E("sticky"),children:"Name it to keep it →"})]}):e.jsxs("div",{className:"na-routingBody",children:[p.card?e.jsxs("div",{className:"na-routingLine",children:[e.jsx("span",{className:"na-routingKey",children:"address"}),e.jsx("code",{className:"na-routingValue na-routingCard",children:p.card})]}):null,e.jsxs("div",{className:"na-routingLine",children:[e.jsx("span",{className:"na-routingKey",children:"cli"}),e.jsx("code",{className:"na-routingValue",children:p.cli})]}),e.jsx("p",{className:"na-routingResolves",children:p.resolves}),e.jsx("p",{className:"na-routingNote",children:p.note})]})]})]}),_?e.jsx("div",{className:"na-error",children:_}):null,e.jsxs("footer",{className:"na-foot",children:[e.jsx("span",{className:"na-footRoot",title:s??void 0,children:s?A(s):"No project root — cannot create."}),e.jsxs("div",{className:"na-footActions",children:[e.jsx("button",{type:"button",className:"na-cancel",onClick:n,children:"Cancel"}),e.jsxs("button",{type:"button",className:"na-create",disabled:!Z,onClick:()=>{O()},children:[e.jsx(re,{size:12,strokeWidth:2,"aria-hidden":!0}),ee]})]})]})]})}),document.body)}export{ke as NewAgentModal};
|
|
1
|
+
import{r,j as e}from"./index-CzVeWScw.js";import{r as se}from"./index-Dewd56RX.js";import{a as U}from"./api-h5zurxmi.js";import{u as ne}from"./keyboard-nav-BJnFoFDP.js";import{o as te}from"./openContent-C6XO6kr5.js";import{s as A,w as le}from"./project-overview-helpers-BQTc_Ous.js";import{X as ie}from"./x-D4X_y1j_.js";import{R as re}from"./rocket-C-AskjZH.js";import"./createLucideIcon-ClCdc3F9.js";const V=[{value:"codex",label:"Codex",runtimeId:"codex"},{value:"claude",label:"Claude",runtimeId:"claude"},{value:"pi",label:"Grok",runtimeId:"pi"}];function w(t){return t.trim().toLowerCase().replace(/^@+/,"").replace(/[^a-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||void 0}function oe(t){const n=new Set;for(const o of t){if(!o)continue;const s=w(o);s&&n.add(s)}return n}function ce(t,n,o){const s=t.trim();if(!s)return{status:"auto",normalized:void 0,rewritten:!1,message:o==="sticky"?"Scout will assign a reusable handle from the name pool.":"Scout will assign a disposable handle from the name pool.",tone:"ok"};const l=w(s);return l?n.has(l)?{status:"conflict",normalized:l,rewritten:l!==s.toLowerCase().replace(/^@+/,""),message:`@${l} already exists here. Pick another handle or leave it blank for auto.`,tone:"warn"}:{status:"ok",normalized:l,rewritten:l!==s.toLowerCase().replace(/^@+/,""),message:null,tone:"ok"}:{status:"invalid",normalized:void 0,rewritten:!1,message:"Use letters, numbers, dot, or dash.",tone:"warn"}}function S(t){return t==="pi"?"grok":t}function de(t,n,o,s=3){const l=w(t)??"agent",m=[l,`${l}-${S(n)}`,`${l}-dev`,`${l}-2`,`${l}-${S(n)}-2`],u=[];for(const v of m){const x=w(v);if(!(!x||o.has(x)||u.includes(x))&&(u.push(x),u.length>=s))break}return u}function ue(t){const{handle:n,persistence:o,harness:s,projectRootLabel:l}=t,m="A card starts a fresh session for each request. Use session:<id> only to continue an exact run.";return o==="one_time"?{disposable:!0,card:null,cli:`scout ask --project ${l} --harness ${s} "…"`,resolves:"Disposable session — Scout assigns a provisional handle that may be recycled. Not addressable later.",note:m}:n?{disposable:!1,card:`@${n}`,cli:`scout ask @${n} "…"`,resolves:`Reusable ${S(s)} session on this project — @${n} routes here from any surface.`,note:m}:{disposable:!1,card:"@auto",cli:'scout ask @<assigned-handle> "…"',resolves:`Scout assigns a reusable ${S(s)} handle from the name pool.`,note:m}}const me={ready:"ready",configured:"configured",installed:"login needed",missing:"not found"},q={ready:"ok",configured:"ok",installed:"warn",missing:"off"};function ke({open:t,onClose:n,projectTitle:o,projectRoot:s,primaryWt:l,worktreeCount:m,branches:u,existingAgents:v,agentCount:x,sessionCount:H,route:D,navigate:C}){const{ref:J,onKeyDown:W}=ne(t),[h,G]=r.useState("codex"),[M,X]=r.useState(""),[d,E]=r.useState("sticky"),[$,P]=r.useState(""),[R,Q]=r.useState(""),[L,I]=r.useState("idle"),[_,j]=r.useState(null),[K,Y]=r.useState(null);r.useEffect(()=>{t&&(j(null),I("idle"))},[t]),r.useEffect(()=>{if(!t)return;let a=!1;return(async()=>{const c=await U("/api/agent-config/snapshot").catch(()=>null);if(a||!c)return;const f=new Map;for(const g of c.runtimes)f.set(g.id,{state:g.state,detail:g.detail,loginCommand:g.loginCommand});Y(f)})(),()=>{a=!0}},[t]),r.useEffect(()=>{if(!t)return;const a=c=>{c.key==="Escape"&&(c.preventDefault(),n())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[t,n]);const k=r.useMemo(()=>oe(v.flatMap(a=>[a.name,a.handle])),[v]),i=r.useMemo(()=>ce($,k,d),[$,k,d]),z=r.useMemo(()=>de(o,h,k,3),[o,h,k]),T=s?A(s):"<no-root>",p=r.useMemo(()=>ue({handle:i.normalized,persistence:d,harness:h,projectRootLabel:T}),[i.normalized,d,h,T]),N=K?.get(V.find(a=>a.value===h)?.runtimeId??h);if(!t)return null;const Z=!!s&&L!=="starting"&&i.status!=="invalid"&&i.status!=="conflict",ee=L==="starting"?"Starting…":d==="one_time"?"Dispatch one-off":i.status==="conflict"?"Handle exists":i.normalized?`Create @${i.normalized}`:"Create with auto handle",O=async()=>{if(!(!s||L==="starting")){I("starting"),j(null);try{const a=M.trim(),c=R.trim(),f=i.normalized,g=await U("/api/sessions",{method:"POST",body:JSON.stringify({target:{projectPath:s},execution:{session:"new",harness:h,...a?{model:a}:{}},agent:{persistence:d,...f?{handle:f}:{}},...c?{seed:{instructions:c}}:{}})}),B=g.agentId?.trim(),F=g.sessionId?.trim(),y=g.conversationId?.trim();if(F){n(),te(C,{view:"sessions",sessionId:F},{returnTo:D});return}if(B){n(),C({...D,view:"agents-v2",agentId:B,selectedAgentId:void 0,sessionId:void 0,...y?{conversationId:y,tab:"message"}:{tab:"profile"}});return}if(y){n(),C({view:"conversation",conversationId:y});return}j("Agent start was accepted, but no target came back.")}catch(a){j(a instanceof Error?a.message:"Could not start an agent.")}finally{I("idle")}}},ae=a=>{if((a.metaKey||a.ctrlKey)&&a.key==="Enter"){a.preventDefault(),O();return}W(a)},b=[];return b.push({label:"root",value:s?A(s):"no project root",title:s??void 0}),l?b.push({label:"branch",value:le(l),title:l.path}):u.length>0&&b.push({label:"branch",value:u.length===1?u[0]:`${u.length} branches`}),m>1&&b.push({label:"worktrees",value:String(m)}),b.push({label:"existing",value:`${x} agent${x===1?"":"s"} · ${H} session${H===1?"":"s"}`}),se.createPortal(e.jsx("div",{className:"na-backdrop",role:"presentation",onClick:n,children:e.jsxs("div",{ref:J,className:"na-panel",role:"dialog","aria-modal":"true","aria-labelledby":"na-title",tabIndex:-1,onClick:a=>a.stopPropagation(),onKeyDown:ae,children:[e.jsxs("header",{className:"na-head",children:[e.jsxs("div",{className:"na-headIdent",children:[e.jsx("h2",{id:"na-title",className:"na-title",children:"New agent"}),e.jsxs("span",{className:"na-scope",children:["/",o]})]}),e.jsx("button",{type:"button",className:"na-close",onClick:n,"aria-label":"Close (Esc)",children:e.jsx(ie,{size:14,strokeWidth:2,"aria-hidden":!0})})]}),e.jsx("div",{className:"na-context",children:b.map(a=>e.jsxs("span",{className:"na-contextChip",title:a.title,children:[e.jsx("span",{className:"na-contextLabel",children:a.label}),e.jsx("span",{className:"na-contextValue",children:a.value})]},a.label))}),e.jsxs("div",{className:"na-body",children:[e.jsxs("section",{className:"na-section na-modeSection",children:[e.jsx("span",{className:"na-sectionLabel",children:"What are you creating?"}),e.jsxs("div",{className:"na-modeChoice",role:"radiogroup","aria-label":"Agent kind",children:[e.jsxs("button",{type:"button",role:"radio","aria-checked":d==="one_time",className:"na-modeCard","data-active":d==="one_time"||void 0,onClick:()=>E("one_time"),children:[e.jsx("span",{className:"na-modeTitle",children:"One-off run"}),e.jsx("span",{className:"na-modeSub",children:"Disposable session · not addressable later"})]}),e.jsxs("button",{type:"button",role:"radio","aria-checked":d==="sticky",className:"na-modeCard","data-active":d==="sticky"||void 0,onClick:()=>E("sticky"),children:[e.jsx("span",{className:"na-modeTitle",children:"Named agent"}),e.jsx("span",{className:"na-modeSub",children:"Reusable card · addressable by handle"})]})]})]}),e.jsxs("section",{className:"na-section",children:[e.jsx("span",{className:"na-sectionLabel",children:"Runtime"}),e.jsx("div",{className:"na-harnessRow",role:"radiogroup","aria-label":"Harness",children:V.map(a=>{const c=K?.get(a.runtimeId),f=h===a.value;return e.jsxs("button",{type:"button",role:"radio","aria-checked":f,className:"na-harness","data-active":f||void 0,onClick:()=>G(a.value),children:[e.jsx("span",{className:"na-harnessName",children:a.label}),c?e.jsxs("span",{className:"na-harnessState","data-tone":q[c.state],children:[e.jsx("span",{className:"na-dot","aria-hidden":!0}),me[c.state]]}):e.jsx("span",{className:"na-harnessState","data-tone":"off",children:"…"})]},a.value)})}),N&&N.state!=="ready"?e.jsxs("p",{className:"na-readinessNote","data-tone":q[N.state],children:[N.detail,N.loginCommand?e.jsxs("code",{className:"na-code",children:[" ",N.loginCommand]}):null]}):null,e.jsxs("label",{className:"na-field",children:[e.jsx("span",{children:"Model / profile"}),e.jsx("input",{value:M,placeholder:"default",onChange:a=>X(a.currentTarget.value)})]})]}),d==="sticky"?e.jsxs("section",{className:"na-section",children:[e.jsx("span",{className:"na-sectionLabel",children:"Handle (optional)"}),e.jsxs("label",{className:"na-field",children:[e.jsx("span",{children:"Address"}),e.jsxs("div",{className:"na-handleWrap","data-tone":i.tone,children:[e.jsx("span",{className:"na-handleAt",children:"@"}),e.jsx("input",{value:$,placeholder:z[0]??"auto","aria-invalid":i.tone==="warn",autoFocus:!0,onChange:a=>P(a.currentTarget.value)})]})]}),z.length>0?e.jsxs("div",{className:"na-suggestRow",children:[e.jsx("span",{className:"na-suggestLabel",children:"suggest"}),z.map(a=>e.jsxs("button",{type:"button",className:"na-suggest",onClick:()=>P(a),children:["@",a]},a))]}):null,i.message?e.jsx("p",{className:"na-validation","data-tone":i.tone,children:i.message}):i.rewritten&&i.normalized?e.jsxs("p",{className:"na-validation","data-tone":"ok",children:["Saved as ",e.jsxs("code",{className:"na-code",children:["@",i.normalized]})]}):null]}):null,e.jsxs("section",{className:"na-section",children:[e.jsx("span",{className:"na-sectionLabel",children:"First instruction"}),e.jsx("textarea",{className:"na-prompt",value:R,rows:3,placeholder:`Start in /${o}…`,onChange:a=>Q(a.currentTarget.value)})]}),e.jsxs("section",{className:"na-section na-routing",children:[e.jsx("span",{className:"na-sectionLabel",children:p.disposable?"Dispatch preview":"Routing preview"}),p.disposable?e.jsxs("div",{className:"na-routingBody","data-disposable":!0,children:[e.jsx("p",{className:"na-routingResolves",children:p.resolves}),e.jsx("button",{type:"button",className:"na-promote",onClick:()=>E("sticky"),children:"Name it to keep it →"})]}):e.jsxs("div",{className:"na-routingBody",children:[p.card?e.jsxs("div",{className:"na-routingLine",children:[e.jsx("span",{className:"na-routingKey",children:"address"}),e.jsx("code",{className:"na-routingValue na-routingCard",children:p.card})]}):null,e.jsxs("div",{className:"na-routingLine",children:[e.jsx("span",{className:"na-routingKey",children:"cli"}),e.jsx("code",{className:"na-routingValue",children:p.cli})]}),e.jsx("p",{className:"na-routingResolves",children:p.resolves}),e.jsx("p",{className:"na-routingNote",children:p.note})]})]})]}),_?e.jsx("div",{className:"na-error",children:_}):null,e.jsxs("footer",{className:"na-foot",children:[e.jsx("span",{className:"na-footRoot",title:s??void 0,children:s?A(s):"No project root — cannot create."}),e.jsxs("div",{className:"na-footActions",children:[e.jsx("button",{type:"button",className:"na-cancel",onClick:n,children:"Cancel"}),e.jsxs("button",{type:"button",className:"na-create",disabled:!Z,onClick:()=>{O()},children:[e.jsx(re,{size:12,strokeWidth:2,"aria-hidden":!0}),ee]})]})]})]})}),document.body)}export{ke as NewAgentModal};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.s-agents-actions{display:flex;flex-direction:column;gap:var(--space-3xs);padding:var(--space-md) var(--space-md) var(--space-sm);border-bottom:1px solid color-mix(in srgb,var(--border) 40%,transparent);flex-shrink:0}.s-rail-action{display:flex;align-items:center;gap:var(--space-sm);width:100%;text-align:left;cursor:pointer;padding:var(--space-sm);border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--muted);font-family:var(--font-sans);font-size:var(--text-md);font-weight:500;transition:background .1s,color .1s,border-color .1s}.s-rail-action:hover{background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--ink)}.s-rail-action--primary{border-color:color-mix(in srgb,var(--border) 50%,transparent)}.s-rail-action-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex:none;color:var(--dim)}.s-rail-action:hover .s-rail-action-icon{color:var(--accent)}.s-rail-action-label{flex:1;min-width:0}.s-agents-recent{flex:1;min-height:0;overflow-y:auto;padding:14px 0}.s-rail-see-all{border:none;background:transparent;color:var(--muted);cursor:pointer;font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-sm);text-transform:lowercase}.s-rail-see-all:hover{color:var(--accent)}.s-agents-foot{flex-shrink:0;margin-top:auto;padding:var(--space-sm) var(--space-md) var(--space-md);border-top:1px solid color-mix(in srgb,var(--border) 40%,transparent)}.s-rail-foot-icons{display:flex;align-items:center;gap:var(--space-2xs)}.s-rail-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--dim);cursor:pointer;transition:background .1s,color .1s}.s-rail-icon:hover{background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--ink)}.s-rail-icon--end{margin-left:auto}.s-newchat-backdrop{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-start;justify-content:center;padding-top:8vh;background:color-mix(in srgb,var(--bg) 76%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.s-newchat-panel{position:relative;display:flex;width:560px;max-height:84vh;flex-direction:column;max-width:calc(100vw - 48px);background:color-mix(in srgb,var(--surface) 96%,var(--bg));border:1px solid color-mix(in srgb,var(--ink) 15%,transparent);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 24px 60px -28px #0009}.s-newchat-panel--starting{box-shadow:0 24px 60px -28px #0009,0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent)}.s-newchat-panel--dragging{border-color:color-mix(in srgb,var(--accent) 72%,var(--border));box-shadow:0 24px 60px -28px #0009,0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}.s-newchat-panel[data-framed=true]{position:absolute;margin:0}.s-newchat-panel[data-gesture]{-webkit-user-select:none;user-select:none}.s-newchat-panel[data-gesture=move] .s-newchat-head{cursor:grabbing}.s-newchat-panel[data-framed=true] .s-msg-compose-input{min-height:var(--s-newchat-input-min, 154px);max-height:none}.s-newchat-resize{position:absolute;z-index:1;touch-action:none}.s-newchat-resize--e{top:0;right:0;width:6px;height:100%;cursor:ew-resize}.s-newchat-resize--s{bottom:0;left:0;width:100%;height:6px;cursor:ns-resize}.s-newchat-resize--se{right:0;bottom:0;width:16px;height:16px;cursor:nwse-resize}.s-newchat-head{display:flex;align-items:center;justify-content:space-between;cursor:grab;touch-action:none;padding:var(--space-md) var(--space-lg);border-bottom:1px solid color-mix(in srgb,var(--ink) 10%,transparent);background:color-mix(in srgb,var(--bg) 46%,var(--surface))}.s-newchat-title{flex:0 0 auto;font-size:var(--text-md);font-weight:600;color:var(--ink)}.s-newchat-head-status{display:grid;min-width:0;flex:1;padding:0 var(--space-md);color:color-mix(in srgb,var(--ink) 72%,transparent);font-size:var(--text-xs);line-height:var(--leading-normal);text-align:right}.s-newchat-head-status>span{grid-area:1 / 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-newchat-head-status [role=alert]{color:var(--accent);font-weight:600}.s-newchat-drop-prompt{padding:var(--space-sm) var(--space-lg);border-bottom:1px solid color-mix(in srgb,var(--accent) 30%,transparent);background:color-mix(in srgb,var(--accent) 10%,var(--bg));color:var(--accent);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;text-align:center}.s-newchat-close{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer;line-height:1}.s-newchat-close:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}.s-newchat-close:hover{color:var(--ink)}.s-newchat-close:disabled{cursor:default;opacity:.35}.s-newchat-body{display:flex;min-height:0;flex-direction:column;gap:var(--space-3xl);padding:var(--space-lg);overflow-y:auto}.s-newchat-lead{display:flex;min-width:0;flex-direction:column;gap:var(--space-sm)}.s-newchat-project-bar{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;min-width:0;padding:0 0 var(--space-xs);border-bottom:1px solid color-mix(in srgb,var(--ink) 8%,transparent)}.s-newchat-project-label{color:var(--dim)}.s-newchat-project-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:var(--space-sm);min-width:0;min-height:30px;padding:var(--space-2xs) var(--space-xs);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--ink);cursor:pointer;text-align:left}.s-newchat-project-summary:hover,.s-newchat-project-summary:focus-visible{outline:none;background:color-mix(in srgb,var(--ink) 5%,transparent)}.s-newchat-project-summary:disabled{cursor:default;opacity:.55}.s-newchat-project-summary-title,.s-newchat-project-summary-path{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-newchat-project-summary-title{font-size:var(--text-sm);font-weight:600}.s-newchat-project-summary[data-empty=true] .s-newchat-project-summary-title{color:var(--muted);font-weight:500}.s-newchat-project-summary-path{color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs);text-align:right}.s-newchat-project-summary svg{align-self:center;color:var(--dim);transition:transform .12s ease}.s-newchat-project-summary[aria-expanded=true] svg{transform:rotate(180deg)}.s-newchat-project-reminder{margin:calc(var(--space-2xs) * -1) 0 0 58px;color:var(--red);font-size:var(--text-xs)}.s-newchat-project-panel{display:flex;min-width:0;flex-direction:column;gap:var(--space-2xs);padding-left:58px}.s-newchat-project-panel-foot{display:flex;min-height:22px;align-items:center;justify-content:space-between;gap:var(--space-sm)}.s-newchat-project-clear{flex:0 0 auto;padding:var(--space-2xs) var(--space-xs);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--dim);font-size:var(--text-xs);cursor:pointer}.s-newchat-project-clear:hover,.s-newchat-project-clear:focus-visible{outline:none;background:color-mix(in srgb,var(--ink) 6%,transparent);color:var(--ink)}.s-newchat-config{display:flex;min-width:0;flex-direction:column;gap:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid color-mix(in srgb,var(--ink) 8%,transparent)}.s-newchat-field{display:flex;flex-direction:column;gap:var(--space-2xs)}.s-newchat-field-label{color:var(--muted)}.s-newchat-forward-intro{max-width:68ch;margin:0 0 var(--space-xs);color:var(--muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.s-newchat-forward-config{display:flex;min-width:0;flex-direction:column;gap:var(--space-lg);padding:var(--space-sm) 0 var(--space-md)}.s-newchat-forward-runtime{display:flex;min-height:34px;align-items:center;padding:0 var(--space-xs);border-bottom:1px solid color-mix(in srgb,var(--ink) 10%,transparent)}.s-newchat-forward-runtime .s-rt-chip{min-height:28px;max-width:100%;border-radius:var(--radius-sm)}.s-newchat-context-options{display:flex;flex-direction:column;border-top:1px solid color-mix(in srgb,var(--ink) 10%,transparent);border-bottom:1px solid color-mix(in srgb,var(--ink) 10%,transparent)}.s-newchat-context-option{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(0,1.35fr);align-items:baseline;gap:var(--space-md);min-height:42px;padding:var(--space-xs) var(--space-sm);border:none;border-bottom:1px solid color-mix(in srgb,var(--ink) 7%,transparent);background:transparent;color:var(--ink);cursor:pointer;text-align:left}.s-newchat-context-option:last-child{border-bottom:none}.s-newchat-context-option:hover,.s-newchat-context-option:focus-visible{outline:none;background:color-mix(in srgb,var(--ink) 5%,transparent)}.s-newchat-context-option[aria-checked=true]{background:color-mix(in srgb,var(--accent) 8%,transparent)}.s-newchat-context-option[aria-checked=true] .s-newchat-context-option-title{color:var(--accent)}.s-newchat-context-option:disabled{cursor:default;opacity:.45}.s-newchat-context-option-title{font-size:var(--text-sm);font-weight:600}.s-newchat-context-option-copy,.s-newchat-context-note{color:var(--dim);font-size:var(--text-xs);line-height:var(--leading-normal)}.s-newchat-context-note{margin:var(--space-2xs) 0 0}.s-newchat-project-picker{position:relative}.s-newchat-project-search-icon{position:absolute;z-index:1;top:50%;left:var(--space-sm);color:var(--muted);pointer-events:none;transform:translateY(-50%)}.s-newchat-project-search{width:100%;box-sizing:border-box;min-height:36px;padding:var(--space-xs) var(--space-md) var(--space-xs) 30px;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);border-radius:var(--radius-md);outline:none;background:color-mix(in srgb,var(--bg) 72%,var(--surface));color:var(--ink);font-family:var(--font-sans);font-size:var(--text-sm)}.s-newchat-project-search:focus{border-color:color-mix(in srgb,var(--accent) 54%,var(--border));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 10%,transparent)}.s-newchat-project-search::-webkit-search-cancel-button{opacity:.55}.s-newchat-project-results{display:flex;flex-direction:column;gap:1px;margin-top:var(--space-2xs)}.s-newchat-project-option{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:baseline;gap:var(--space-sm);width:100%;padding:var(--space-xs) var(--space-sm);border:none;border-left:2px solid transparent;border-radius:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.s-newchat-project-option:hover,.s-newchat-project-option[data-active=true]{background:color-mix(in srgb,var(--ink) 6%,transparent)}.s-newchat-project-option[aria-selected=true]{border-left-color:color-mix(in srgb,var(--accent) 60%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.s-newchat-project-option[aria-selected=true] .s-newchat-project-option-title{color:var(--accent)}.s-newchat-project-option[aria-disabled=true]{cursor:default;opacity:.55}.s-newchat-project-option--path{border-top:1px solid color-mix(in srgb,var(--border) 38%,transparent)}.s-newchat-project-option-title,.s-newchat-project-option-path{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-newchat-project-option-title{font-size:var(--text-sm);font-weight:600}.s-newchat-project-option-path{color:var(--muted);font-family:var(--font-mono);font-size:var(--text-2xs)}.s-newchat-project-empty{margin:0;padding:var(--space-md) var(--space-sm);color:var(--muted);font-size:var(--text-xs);line-height:var(--leading-normal)}.s-newchat-project-foot{margin:0;padding-left:var(--space-sm);color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs)}.s-newchat-target{margin:0;overflow:hidden;color:var(--dim);text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:var(--text-2xs)}.s-newchat-runtime-note{display:flex;align-items:center;gap:var(--space-xs);margin:0;color:var(--amber);font-size:var(--text-xs);line-height:var(--leading-normal)}.s-newchat-runtime-note[data-pending=true]{color:var(--muted)}.s-newchat-runtime-note-spinner{flex:0 0 auto;animation:s-spin .9s linear infinite}.s-newchat-panel .s-msg-compose-shell{border-color:color-mix(in srgb,var(--ink) 16%,transparent);background:color-mix(in srgb,var(--bg) 64%,var(--surface))}.s-newchat-panel .s-msg-compose-input{min-height:154px}.s-newchat-panel .s-msg-compose-shell:focus-within{border-color:color-mix(in srgb,var(--accent) 24%,var(--border))}.s-newchat-panel .s-msg-compose-input::placeholder{color:var(--muted)}.s-newchat-panel .s-msg-compose-toolbar{border-top-color:color-mix(in srgb,var(--ink) 10%,transparent)}.s-newchat-compose-triggers{display:inline-flex;align-items:center;gap:var(--space-2xs);color:var(--dim)}.s-newchat-command-trigger{padding:var(--space-2xs) var(--space-xs);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-xs);cursor:pointer}.s-newchat-command-trigger:hover,.s-newchat-command-trigger:focus-visible{outline:none;background:color-mix(in srgb,var(--ink) 6%,transparent);color:var(--ink)}.s-newchat-command-trigger:disabled{cursor:default;opacity:.45}.s-newchat-error{font-size:var(--text-sm);color:var(--red)}.s-newchat-attachment-feedback{margin-top:calc(var(--space-sm) * -1);color:var(--muted);font-family:var(--font-mono);font-size:var(--text-2xs)}.s-newchat-progress{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--ink)}.s-newchat-progress-spinner,.s-newchat-start-spinner{flex:0 0 auto;animation:s-spin .9s linear infinite}.s-newchat-progress-copy{display:flex;min-width:0;flex-direction:column;gap:var(--space-2xs)}.s-newchat-progress-title{color:var(--accent)}.s-newchat-progress-detail,.s-newchat-progress-message{font-size:var(--text-xs);line-height:var(--leading-normal)}.s-newchat-progress-detail{color:var(--muted)}.s-newchat-progress-message{display:-webkit-box;overflow:hidden;color:var(--ink);-webkit-box-orient:vertical;-webkit-line-clamp:3}@media(max-width:620px){.s-newchat-backdrop{padding-top:12px}.s-newchat-panel{width:calc(100vw - 24px);max-width:none;max-height:calc(100vh - 24px)}.s-newchat-resize{display:none}.s-newchat-head{cursor:default}.s-newchat-body{padding:var(--space-md)}.s-newchat-project-bar{grid-template-columns:52px minmax(0,1fr)}.s-newchat-project-panel{padding-left:0}.s-newchat-project-reminder{margin-left:52px}.s-newchat-project-summary-path{display:none}.s-newchat-context-option{grid-template-columns:1fr;gap:var(--space-2xs)}.s-newchat-panel .s-msg-compose-input{min-height:120px}}@keyframes s-spin{to{transform:rotate(360deg)}}.s-rail-projects{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;display:flex;flex-direction:column;gap:1px}.s-rail-projects:before{content:"Projects";display:block;flex:none;font-size:var(--text-2xs);font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:2px 8px 10px}.s-rail-projects .ctx-panel-section-label{display:flex;align-items:center;justify-content:space-between}.s-rail-proj-total{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--dim)}.s-rail-proj{display:flex;align-items:center;gap:9px;width:100%;text-align:left;background:none;border:1px solid transparent;cursor:pointer;padding:6px 8px;border-radius:var(--radius-md);transition:background .12s ease,border-color .12s ease}.s-rail-proj-count{flex:none;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;color:var(--dim)}.s-rail-proj-count[data-needs]{color:var(--accent)}.s-rail-proj:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}.s-rail-proj[data-selected]{background:color-mix(in srgb,var(--ink) 8%,transparent)}.s-rail-proj-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.s-rail-proj-top{display:flex;align-items:center;gap:var(--space-sm)}.s-rail-proj-name{flex:1;min-width:0;font-size:var(--text-md);font-weight:540;line-height:1.2;letter-spacing:-.01em;text-transform:lowercase;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-rail-proj-name[data-idle]{color:var(--dim);font-weight:480}.s-rail-proj[data-selected] .s-rail-proj-name,.s-rail-proj:hover .s-rail-proj-name{color:var(--ink)}.s-rail-proj-sub{display:flex;align-items:center;gap:7px}.s-rail-proj-dots{display:inline-flex;align-items:center;gap:3px;flex:none}.s-rail-proj-dots span{width:5px;height:5px;border-radius:999px;opacity:.9}.s-rail-proj-meta{flex:1;min-width:0;font-size:var(--text-xs);font-family:var(--font-mono);color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-rail-proj-ago{flex:none;font-size:var(--text-xs);font-family:var(--font-mono);color:var(--dim)}.s-rail-proj-live{flex:none;display:inline-flex;align-items:center;gap:5px;font-size:var(--text-sm);font-weight:600;font-family:var(--font-mono);color:var(--accent)}.s-rail-proj-livepip{width:5px;height:5px;border-radius:999px;background:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.s-rail-proj-needs{flex:none;font-size:var(--text-3xs);font-weight:650;letter-spacing:var(--tracking-sm);text-transform:uppercase;color:var(--bg);background:var(--accent);padding:2px 7px;border-radius:999px}.s-newchat-origin{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-xs) var(--space-sm);margin:0 0 var(--space-xs)}.s-newchat-origin-label{color:var(--muted)}.s-newchat-origin-facts{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-md);margin:0;min-width:0}.s-newchat-origin-fact{display:flex;align-items:baseline;gap:var(--space-3xs);min-width:0}.s-newchat-origin-fact dt{color:var(--muted);font-size:var(--text-xs)}.s-newchat-origin-fact dd{margin:0;max-width:42ch;overflow:hidden;color:var(--ink);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap}.s-newchat-origin-attach{padding:2px var(--space-xs);border:1px solid var(--border);border-radius:5px;background:transparent;color:var(--muted);font-size:var(--text-xs);cursor:pointer}.s-newchat-origin-attach:hover,.s-newchat-origin-attach:focus-visible{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));color:var(--ink)}.s-newchat-origin-attach[aria-pressed=true]{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--ink)}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import{r as c,j as o}from"./index-CzVeWScw.js";import{M as ms}from"./runtime-picker-BCQD7d4K.js";import{i as sn,b as hs,d as rt,M as rn,u as ps}from"./MessageComposerSuggestions-Cs9u-F_3.js";import{r as gs}from"./index-Dewd56RX.js";import{H as on}from"./HarnessMark-BE-YSyci.js";import{c as bs,S as an,F as ws,G as xs}from"./conversation-model-CHwHZNw-.js";import{a as z}from"./api-h5zurxmi.js";import{d as ys}from"./colors-BtO5_zlx.js";import{NewChatOrigin as vs}from"./NewChatOrigin-CnjoswTG.js";import{u as js}from"./keyboard-nav-BJnFoFDP.js";import{n as Cs}from"./model-Co0zkMIc.js";import{X as Ms}from"./x-D4X_y1j_.js";import{C as Ss}from"./chevron-down-DRCbnzyY.js";import{S as Es}from"./search-C3bSJluv.js";import{L as jt}from"./loader-circle-Byb9kSFx.js";import{F as Is}from"./file-text-DG-pufl1.js";const Ns={schemaVersion:"openscout.runtime-catalog.v1",revision:"2026-08-18.1",harnesses:[{id:"claude",label:"Claude Code",enabled:!0,default:!0,reasoningEfforts:["low","medium","high","xhigh","max"],defaultReasoningEffort:"medium",models:[{id:"claude-opus-5",label:"Opus 5",enabled:!0,default:!0,family:"Opus",version:"5"},{id:"claude-sonnet-4-6",label:"Sonnet 4.6",enabled:!0,family:"Sonnet",version:"4.6"},{id:"claude-haiku-4-5",label:"Haiku 4.5",enabled:!0,family:"Haiku",version:"4.5"},{id:"claude-opus-4-8",label:"Opus 4.8",enabled:!0,family:"Opus",version:"4.8"},{id:"claude-opus-4-7",label:"Opus 4.7",enabled:!0,family:"Opus",version:"4.7"},{id:"claude-sonnet-4-5",label:"Sonnet 4.5",enabled:!0,family:"Sonnet",version:"4.5"}]},{id:"codex",label:"Codex",enabled:!0,reasoningEfforts:["low","medium","high","xhigh"],defaultReasoningEffort:"medium",models:[{id:"gpt-5.6-sol",label:"5.6 Sol",enabled:!0,default:!0,family:"GPT",version:"5.6 Sol",reasoningEfforts:["low","medium","high","xhigh","ultra"]},{id:"gpt-5.6-terra",label:"5.6 Terra",enabled:!0,family:"GPT",version:"5.6 Terra",reasoningEfforts:["low","medium","high","xhigh","ultra"]},{id:"gpt-5.6-luna",label:"5.6 Luna",enabled:!0,family:"GPT",version:"5.6 Luna"},{id:"gpt-5.5",label:"5.5",enabled:!0,family:"GPT",version:"5.5"},{id:"gpt-5.5-mini",label:"5.5 mini",enabled:!0,family:"GPT",version:"5.5 mini"}]},{id:"grok",label:"Grok CLI",enabled:!0,listed:!1,reasoningEfforts:["low","medium","high","xhigh"],defaultReasoningEffort:"medium",models:[{id:"grok-4.6",label:"Grok 4.6",enabled:!0,default:!0,family:"Grok",version:"4.6",contextWindowTokens:5e5},{id:"grok-4.5",label:"Grok 4.5",enabled:!0,family:"Grok",version:"4.5"},{id:"grok-4.3",label:"Grok 4.3",enabled:!0,family:"Grok",version:"4.3"}]},{id:"grok-acp",label:"Grok",enabled:!0,reasoningEfforts:null,models:[{id:"grok-4.6",label:"Grok 4.6",enabled:!0,default:!0,family:"Grok",version:"4.6",contextWindowTokens:5e5},{id:"grok-4.5",label:"Grok 4.5",enabled:!0,family:"Grok",version:"4.5"},{id:"grok-4.3",label:"Grok 4.3",enabled:!0,family:"Grok",version:"4.3"}]},{id:"kimi",label:"Kimi Code",enabled:!0,reasoningEfforts:null,models:[]},{id:"flue",label:"Flue",enabled:!0,reasoningEfforts:null,models:[]},{id:"cursor",label:"Cursor CLI",enabled:!0,reasoningEfforts:null,models:[]},{id:"opencode",label:"OpenCode",enabled:!0,reasoningEfforts:null,models:[{id:"opencode-go/glm-5.2",label:"GLM-5.2",enabled:!0,default:!0,family:"GLM",version:"5.2"},{id:"opencode-go/glm-5.1",label:"GLM-5.1",enabled:!0,family:"GLM",version:"5.1"},{id:"opencode-go/kimi-k3",label:"Kimi K3",enabled:!0,family:"Kimi",version:"K3"},{id:"opencode-go/qwen3.8-max",label:"Qwen3.8 Max",enabled:!0,family:"Qwen",version:"3.8 Max"},{id:"opencode-go/minimax-m3",label:"MiniMax M3",enabled:!0,family:"MiniMax",version:"M3"},{id:"opencode-go/deepseek-v4-pro",label:"DeepSeek V4 Pro",enabled:!0,family:"DeepSeek",version:"V4 Pro"},{id:"opencode-go/grok-4.5",label:"Grok 4.5",enabled:!0,family:"Grok",version:"4.5"},{id:"opencode/nemotron-3-ultra-free",label:"Nemotron 3 Ultra (free)",enabled:!0,family:"Nemotron",version:"3 Ultra Free"},{id:"opencode/laguna-s-2.1-free",label:"Laguna S 2.1 (free)",enabled:!0,family:"Laguna",version:"S 2.1 Free"}]},{id:"pi",label:"Pi",enabled:!0,reasoningEfforts:null,models:[]}]},Tt=["none","minimal","low","medium","high","xhigh","max","ultra"],Cn={none:"None",minimal:"Minimal",low:"Light",medium:"Medium",high:"High",xhigh:"Extra High",max:"Max",ultra:"Ultra"},W=Ns;function Lt(e,t=W){return t.harnesses.find(s=>s.id===e)}function ks(e=W){return e.harnesses.find(t=>t.enabled&&t.default)?.id??e.harnesses.find(t=>t.enabled)?.id??null}function Mn(e,t=W){const s=Lt(e,t);return s?.models.find(n=>n.enabled&&n.default)?.id??s?.models.find(n=>n.enabled)?.id??null}function Rs(e,t,s=W){const n=Lt(e,s);if(!n||!n.enabled)return null;const a=t?n.models.find(i=>i.enabled&&i.id===t):void 0;return a?.reasoningEfforts===null?null:a?.reasoningEfforts??n.reasoningEfforts}function Sn(e,t,s=W){const n=Lt(e,s),a=t?n?.models.find(y=>y.enabled&&y.id===t):void 0,i=Rs(e,t,s),f=a?.defaultReasoningEffort??n?.defaultReasoningEffort??null;return f&&i?.includes(f)?f:i?.[0]??null}function As(e=W){return Object.fromEntries(e.harnesses.filter(t=>t.enabled).map(t=>{const s=Mn(t.id,e);return[t.id,{model:s,reasoningEffort:Sn(t.id,s,e)}]}))}const Ts=As();Object.fromEntries(W.harnesses.filter(e=>e.enabled).map(e=>{const t=Tt.filter(s=>e.reasoningEfforts?.includes(s)||e.models.some(n=>n.enabled&&n.reasoningEfforts?.includes(s)));return[e.id,t]}));function Ls(e=W){const t=new Map;for(const s of e.harnesses)if(s.enabled)for(const n of s.models){if(!n.enabled)continue;const a=t.get(n.id);if(a){a.harnesses.includes(s.id)||a.harnesses.push(s.id);continue}t.set(n.id,{id:n.id,label:n.label,...n.description?{description:n.description}:{},harnesses:[s.id],source:"default",...n.family?{family:n.family}:{},...n.version?{version:n.version}:{}})}return Array.from(t.values())}const Ds=Ls(),Ps={none:"No extra thinking",minimal:"Smallest reasoning budget",low:"Fast responses with lighter reasoning",medium:"Balanced speed and reasoning depth",high:"Greater reasoning depth for complex work",xhigh:"Extra high reasoning depth",max:"Maximum reasoning depth",ultra:"Maximum reasoning with delegation"};function Os(e=W){return Tt.flatMap(t=>{const s=[],n=[];for(const a of e.harnesses){if(!a.enabled)continue;const i=a.models.filter(b=>b.enabled),f=i.filter(b=>(b.reasoningEfforts??a.reasoningEfforts)?.includes(t)),y=i.length===0&&a.reasoningEfforts?.includes(t);f.length===0&&!y||(s.push(a.id),i.length>0&&f.length<i.length&&n.push(...f.map(b=>b.id)))}return s.length===0?[]:[{id:t,label:Cn[t],description:Ps[t],harnesses:s,...n.length>0?{models:n}:{}}]})}const _s=Os();function $s(e,t){const s=t?.trim();return s?e.find(n=>n.id===s)??null:null}function Fs(e,t){if(e.view==="conversation"&&e.conversationId)return{agentId:null,conversationId:e.conversationId,label:"Current chat",canUseExistingChat:!0};if(e.view==="messages"&&e.conversationId)return{agentId:null,conversationId:e.conversationId,label:"Current chat",canUseExistingChat:!0};if(e.view==="agents-v2"&&e.agentId){const s=$s(t,e.agentId),n=e.conversationId??s?.conversationId??null;return{agentId:e.agentId,conversationId:n,label:s?.name??e.agentId,canUseExistingChat:!!n}}return{agentId:null,conversationId:null,label:"Pick a project",canUseExistingChat:!1}}const G="",Hs={none:"no reasoning",minimal:"lightest",low:"triage",medium:"default",high:"deep",xhigh:"exhaustive",max:"fullest",ultra:"beyond max"},Us=Tt.map(e=>({value:e,label:Cn[e],note:Hs[e]}));function Le(e,t){return e.harnesses.find(s=>s.value===t)}function Dt(e,t){return Le(e,t)?.models??[]}function Se(e,t,s){const n=Le(e,t),a=n?n.efforts===null?null:n.efforts??e.efforts:e.efforts;if(!a||!s)return a;const i=new Set((n?.models??[]).map(f=>f.value));return i.has(s)?a.filter(f=>{if(!f.models||f.models.length===0)return!0;const y=f.models.filter(b=>i.has(b));return y.length===0||y.includes(s)}):a}function En(e,t){const n=Dt(e,t.harness).find(a=>a.value===t.model);return n||(t.model.trim()?{value:t.model,label:t.model,note:"custom"}:{value:G,label:"Default",note:"harness picks"})}function Gs(e,t){const s=Le(e,t.harness),n=s?.label??t.harness??"Default",a=En(e,t),i=Se(e,t.harness,t.model),f=i?.find($=>$.value===t.effort),y=f?.label??t.effort,b=i?`Runtime: ${n}, model ${a.label}, effort ${y}`:`Runtime: ${n}, model ${a.label}`;return{harness:s,harnessLabel:n,model:a,modelLabel:a.label,effort:f,effortLabel:y,supportsEffort:i!==null,summary:b}}function Bs(e,t,s){const n={...t,...s};if(!(s.harness!==void 0&&s.harness!==t.harness)){if(s.model===void 0||s.model===t.model)return n;const T=Se(e,n.harness,n.model);if(!T||n.effort===G||T.some(V=>V.value===n.effort))return n;const de=(Se(e,t.harness,t.model)??e.efforts).findIndex(V=>V.value===t.effort),J=Math.min(Math.max(de,0),T.length-1);return n.effort=T[J]?.value??T[0]?.value??G,n}const i=Le(e,n.harness);n.model=s.model??i?.defaultModel??G,s.effort===void 0&&i?.defaultEffort&&(n.effort=i.defaultEffort);const f=Se(e,n.harness,n.model);if(!f)return n.effort=G,n;if(f.some(T=>T.value===n.effort))return n;const b=(Se(e,t.harness,t.model)??e.efforts).findIndex(T=>T.value===t.effort),$=Math.min(Math.max(b,0),f.length-1);return n.effort=f[$]?.value??f[0]?.value??G,n}function qs(e,t){const s=t?.harness??e.harnesses.find(i=>!i.disabled)?.value??"",n=Se(e,s),a=n?.find(i=>i.note==="default")?.value??n?.[Math.floor((n.length-1)/2)]?.value??G;return{harness:s,model:t?.model??Le(e,s)?.defaultModel??Dt(e,s)[1]?.value??G,effort:n?t?.effort??Le(e,s)?.defaultEffort??a:G}}function Ks(e,t){const s=t.trim().toLowerCase();return s?e.filter(n=>`${n.label} ${n.value} ${n.note??""}`.toLowerCase().includes(s)):e}function Ge(...e){for(const t of e){const s=t?.trim();if(s)return s}}function In(e){const t=e.harnesses.map(n=>{const a=e.defaultsByHarness?.[n.id],i=n.ready!==!1,f=[{value:G,label:"Default",note:"harness picks"},...e.models.filter(b=>b.harnesses.includes(n.id)).map(b=>({value:b.id,label:b.label,note:Ge(b.description)}))],y=e.efforts.filter(b=>b.harnesses.includes(n.id));return{value:n.id,label:n.label,note:i?Ge(n.description):Ge(n.detail,n.state,"unavailable"),disabled:!i,defaultModel:a?.model??G,defaultEffort:a?.reasoningEffort??G,models:f,efforts:y.length===0?null:y.map(b=>({value:b.id,label:b.label,note:Ge(b.description),...b.models?.length?{models:[...b.models]}:{}}))}}),s=e.efforts.map(n=>({value:n.id,label:n.label,note:Ge(n.description)}));return{harnesses:t,efforts:s.length>0?s:Us}}const zs=6,Ct=34,Mt=460,Ws=14,Js=300,Be=8,St=["harness","model","effort"],Vs={harness:"vertical",model:"vertical",effort:"horizontal"};function Xs(){return o.jsx("svg",{className:"s-rt-chip-chevron",width:"8",height:"5",viewBox:"0 0 8 5",fill:"none","aria-hidden":"true",children:o.jsx("path",{d:"M1 1.2 4 4 7 1.2",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})})}function Ys({ctx:e}){const{efforts:t,value:s,set:n}=e;if(!t)return null;const a=Math.max(0,t.findIndex(i=>i.value===s.effort));return o.jsx("div",{className:"s-rt-ladder",role:"radiogroup","aria-label":"Reasoning effort",children:t.map((i,f)=>{const y=f===a;return o.jsxs("button",{type:"button",role:"radio","aria-checked":y,title:i.note,onClick:()=>n({effort:i.value}),...e.cell("effort",f),className:"s-rt-step",children:[o.jsx("span",{className:"s-rt-step-bar","data-state":y?"current":f<a?"filled":"empty"}),o.jsx("span",{className:"s-rt-step-label",children:i.label})]},i.value)})})}function Qs({harnessLabel:e}){return o.jsxs("p",{className:"s-rt-effort-absent",children:[e," has no effort control."]})}function Zs({option:e,selected:t,index:s,ctx:n}){const a=e.disabled??!1;return o.jsxs("button",{type:"button",role:"option","aria-selected":t,"aria-disabled":a||void 0,onClick:()=>{a||n.set({model:e.value})},"data-on":t||void 0,"data-disabled":a||void 0,...n.cell("model",s),style:{animationDelay:`${Math.min(s,6)*16}ms`},className:"s-rt-row s-rt-model-row",children:[o.jsx("span",{"aria-hidden":!0,className:"s-rt-dot"}),o.jsx("span",{className:"s-rt-row-label",children:e.label}),e.note?o.jsx("span",{className:"s-rt-note",children:e.note}):null]})}function er({ctx:e}){return o.jsxs("div",{className:"s-rt-search",children:[o.jsxs("svg",{width:"11",height:"11",viewBox:"0 0 12 12","aria-hidden":"true",className:"s-rt-search-icon",children:[o.jsx("circle",{cx:"5",cy:"5",r:"3.4",fill:"none",stroke:"currentColor",strokeWidth:"1.3"}),o.jsx("path",{d:"M7.6 7.6 10.5 10.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),o.jsx("input",{ref:e.searchRef,type:"text",value:e.query,onChange:t=>e.setQuery(t.target.value),onKeyDown:e.onSearchKeyDown,placeholder:"Filter models","aria-label":"Filter models",spellCheck:!1,autoComplete:"off",className:"s-rt-search-input"}),e.query?o.jsx("button",{type:"button",onClick:()=>{e.setQuery(""),e.searchRef.current?.focus()},"aria-label":"Clear filter",className:"s-rt-search-clear",children:"clear"}):null]})}function tr({ctx:e}){return e.status==="loading"?o.jsxs("div",{className:"s-rt-status","aria-busy":!0,role:"status",children:[o.jsx("span",{className:"s-rt-sr",children:"Loading models"}),[0,1,2].map(t=>o.jsx("span",{"aria-hidden":!0,className:"s-rt-skel",style:{animationDelay:`${t*90}ms`}},t))]}):e.status==="error"?o.jsxs("div",{role:"alert",className:"s-rt-status s-rt-status--error",children:[o.jsx("span",{className:"s-rt-status-message",children:e.statusMessage??"Model catalog unavailable."}),e.onRetry?o.jsx("button",{type:"button",onClick:e.onRetry,className:"s-rt-retry",children:"Retry"}):null]}):o.jsx("p",{className:"s-rt-empty",children:e.query.trim()?`No model matches “${e.query.trim()}”.`:"No models listed."})}function nr({ctx:e}){return e.status!=="ready"||e.models.length===0?o.jsx(tr,{ctx:e}):o.jsx("div",{role:"listbox","aria-label":"Model",className:"s-rt-models",children:e.models.map((t,s)=>o.jsx(Zs,{option:t,index:s,selected:t.value===e.value.model,ctx:e},t.value||"default"))},e.value.harness)}function ln({value:e,defaultValue:t,onChange:s,catalog:n,status:a="ready",statusMessage:i,onRetry:f,disabled:y=!1,showEffort:b,searchable:$="auto",className:T}){const[v,de]=c.useState(!1),[J,V]=c.useState(""),[ze,We]=c.useState(()=>qs(n,t)),j=e??ze,C=c.useRef(null),ue=c.useRef(null),fe=c.useRef(null),me=c.useRef(null),S=c.useId(),je=c.useCallback(d=>{const h=Bs(n,j,d);e===void 0&&We(h),s?.(h),d.harness!==void 0&&d.harness!==j.harness&&V("")},[n,e,s,j]),L=n.harnesses,De=c.useMemo(()=>Dt(n,j.harness),[n,j.harness]),P=c.useMemo(()=>{const d=En(n,j);return d.note!=="custom"?De:[...De,d]},[De,n,j]),ne=c.useMemo(()=>Ks(P,J),[P,J]),Pe=Se(n,j.harness,j.model),X=b===!1?null:b===!0?Pe??n.efforts:Pe,D=$==="auto"?P.length>zs:$,Y=Gs(n,j),I=c.useRef(new Map),[he,k]=c.useState({group:"model",index:0}),R=c.useMemo(()=>({harness:L.length,model:a==="ready"?ne.length:0,effort:X?.length??0}),[X?.length,L.length,ne.length,a]),se=c.useCallback(d=>d==="harness"?Math.max(0,L.findIndex(h=>h.value===j.harness)):d==="model"?Math.max(0,ne.findIndex(h=>h.value===j.model)):Math.max(0,X?.findIndex(h=>h.value===j.effort)??0),[X,L,ne,j]),N=c.useCallback((d,h)=>{k({group:d,index:h}),I.current.get(`${d}:${h}`)?.focus()},[]),pe=c.useCallback((d,h)=>{const w=St.indexOf(d);for(let g=w+h;g>=0&&g<St.length;g+=h){const A=St[g];if(R[A]>0)return N(A,Math.min(se(A),R[A]-1)),!0}return!1},[R,N,se]),Je=c.useCallback((d,h)=>({ref:w=>{const g=`${d}:${h}`;w?I.current.set(g,w):I.current.delete(g)},tabIndex:he.group===d&&he.index===h?0:-1,onFocus:()=>k({group:d,index:h}),onKeyDown:w=>{const g=Vs[d]==="vertical",A=g?"ArrowDown":"ArrowRight",U=g?"ArrowUp":"ArrowLeft",_e=g?"ArrowRight":"ArrowDown",re=g?"ArrowLeft":"ArrowUp",we=R[d];if(we!==0)if(w.key===A)w.preventDefault(),N(d,(h+1)%we);else if(w.key===U){if(w.preventDefault(),d==="model"&&h===0&&D){k({group:d,index:0}),me.current?.focus();return}N(d,(h-1+we)%we)}else w.key===_e?(w.preventDefault(),pe(d,1)):w.key===re?(w.preventDefault(),pe(d,-1)):w.key==="Home"?(w.preventDefault(),N(d,0)):w.key==="End"&&(w.preventDefault(),N(d,we-1))}}),[R,he,N,pe,D]),ke=c.useCallback(d=>{if(d.key==="ArrowDown"&&R.model>0)d.preventDefault(),N("model",0);else if(d.key==="Enter"&&R.model===1){d.preventDefault();const h=ne[0];h.disabled||je({model:h.value})}else d.key==="Escape"&&J&&(d.preventDefault(),d.stopPropagation(),V(""))},[R.model,N,ne,J,je]),[F,Oe]=c.useState(null),ge=c.useCallback(()=>{const d=ue.current;if(!d)return;const h=d.getBoundingClientRect(),w=h.top,g=window.innerHeight-h.bottom,A=w>=Js||w>=g?"up":"down",U=Math.min(Math.max(Be,h.right-Mt),Math.max(Be,window.innerWidth-Mt-Be));Oe({left:U,top:A==="up"?h.top-Be:h.bottom+Be,placement:A})},[]);c.useLayoutEffect(()=>{if(!v)return;ge();const d=()=>ge();return window.addEventListener("scroll",d,!0),window.addEventListener("resize",d),()=>{window.removeEventListener("scroll",d,!0),window.removeEventListener("resize",d)}},[v,ge]);const E=c.useCallback(d=>{de(!1),d&&ue.current?.focus()},[]);c.useEffect(()=>{if(!v)return;const d=w=>{const g=w.target;C.current?.contains(g)||fe.current?.contains(g)||de(!1)},h=w=>{w.key==="Escape"&&(w.stopPropagation(),E(!0))};return document.addEventListener("pointerdown",d),document.addEventListener("keydown",h),()=>{document.removeEventListener("pointerdown",d),document.removeEventListener("keydown",h)}},[v,E]),c.useEffect(()=>{if(!v)return;const d=R.model>0?"model":"harness",h=Math.min(se(d),Math.max(0,R[d]-1));k({group:d,index:h});const w=requestAnimationFrame(()=>{const g=I.current.get(`${d}:${h}`);g?g.focus():fe.current?.focus()});return()=>cancelAnimationFrame(w)},[v]),c.useEffect(()=>{v||V("")},[v]),c.useEffect(()=>{y&&de(!1)},[y]);const be=Math.max(0,L.findIndex(d=>d.value===j.harness)),H={value:j,set:je,status:a,statusMessage:i,onRetry:f,harnesses:L,models:ne,efforts:X,harnessLabel:Y.harnessLabel,searchable:D,query:J,setQuery:V,searchRef:me,cell:Je,onSearchKeyDown:ke};return o.jsxs("div",{ref:C,className:T?`s-rt-root ${T}`:"s-rt-root",style:{position:"relative",display:"inline-flex"},children:[o.jsxs("button",{ref:ue,type:"button",className:`s-rt-chip${y?" s-rt-chip--disabled":""}`,"aria-haspopup":"dialog","aria-expanded":v,"aria-controls":v?S:void 0,"aria-label":Y.summary,disabled:y,onClick:()=>de(d=>!d),children:[o.jsx(on,{harness:j.harness||"unknown",size:12,className:"s-rt-chip-mark",title:null}),o.jsxs("span",{className:"s-rt-chip-type",children:[o.jsx("span",{className:"s-rt-chip-model",style:{maxWidth:`${Ws}ch`},children:o.jsx("span",{className:"s-rt-chip-model-text",children:Y.modelLabel},Y.modelLabel)}),X&&Y.effortLabel?o.jsxs(o.Fragment,{children:[o.jsx("span",{"aria-hidden":!0,className:"s-rt-chip-divider"}),o.jsx("span",{className:"s-rt-chip-effort","data-effort":j.effort,children:Y.effortLabel})]}):null]}),o.jsx(Xs,{})]}),v&&F?gs.createPortal(o.jsx("div",{ref:fe,id:S,role:"dialog","aria-label":"Runtime",tabIndex:-1,"data-placement":F.placement,className:"s-rt-panel",style:{left:F.left,width:Mt,...F.placement==="up"?{bottom:window.innerHeight-F.top}:{top:F.top}},children:o.jsxs("div",{className:"s-rt-rail",children:[o.jsxs("div",{className:"s-rt-rail-main",children:[o.jsxs("div",{className:"s-rt-harnesses",role:"radiogroup","aria-label":"Harness",children:[o.jsx("span",{"aria-hidden":!0,className:"s-rt-marker",style:{height:Ct-10,transform:`translateY(${be*Ct+5}px)`}}),L.map((d,h)=>{const w=d.value===j.harness,g=d.disabled??!1;return o.jsxs("button",{type:"button",role:"radio","aria-checked":w,"aria-disabled":g||void 0,onClick:()=>{g||H.set({harness:d.value})},style:{height:Ct},"data-on":w||void 0,"data-disabled":g||void 0,title:g?d.note:void 0,...H.cell("harness",h),className:"s-rt-harness",children:[o.jsx(on,{harness:d.value||"unknown",size:14,className:"s-rt-opt-mark",title:null}),o.jsx("span",{className:"s-rt-harness-label",children:d.label})]},d.value||"default")})]}),o.jsxs("div",{className:"s-rt-models-col",children:[D?o.jsx(er,{ctx:H}):null,o.jsx(nr,{ctx:H})]})]}),o.jsx("div",{className:"s-rt-effort-foot",children:X?o.jsx(Ys,{ctx:H}):o.jsx(Qs,{harnessLabel:Y.harnessLabel})})]})}),document.body):null]})}const Nt="scout:newchat:frame:v1",sr=620,cn=420,dn=300,it=12,rr=210,or=154;function Nn(e){return e>sr}function un(e,t,s){if(!Nn(s.width))return null;const n=e??t;return n?lt(n,s):null}function ar(e){return e?Math.max(or,Math.round(e.height-rr)):null}function fn(e,t,s){const n=s-t-it;return Math.round(Math.max(it,Math.min(e,n)))}function lt(e,t){const s=Math.round(Math.max(cn,Math.min(e.width,Math.max(cn,t.width-it*2)))),n=Math.round(Math.max(dn,Math.min(e.height,Math.max(dn,t.height-it*2))));return{x:fn(e.x,s,t.width),y:fn(e.y,n,t.height),width:s,height:n}}function ir(e,t,s,n){return lt({...e,x:e.x+t,y:e.y+s},n)}function lr(e,t,s,n,a){const i=n==="s"?e.width:e.width+t,f=n==="e"?e.height:e.height+s;return lt({...e,width:i,height:f},a)}function cr(e){if(!e||typeof e!="object")return!1;const t=e;return["x","y","width","height"].every(s=>typeof t[s]=="number"&&Number.isFinite(t[s]))}function dr(e){if(!e)return null;try{const t=JSON.parse(e);return cr(t)?{x:t.x,y:t.y,width:t.width,height:t.height}:null}catch{return null}}function mn(){try{return typeof localStorage>"u"?null:dr(localStorage.getItem(Nt))}catch{return null}}function hn(e){try{if(typeof localStorage>"u")return;if(!e){localStorage.removeItem(Nt);return}localStorage.setItem(Nt,JSON.stringify(e))}catch{}}const kt=ks()??"",pn=Mn(kt),Ee={schemaVersion:"openscout.runtime-capabilities.v1",catalogVersion:W.schemaVersion,defaults:{harness:kt,model:pn,reasoningEffort:Sn(kt,pn)},defaultsByHarness:Ts,harnesses:W.harnesses.filter(e=>e.enabled&&e.listed!==!1).map(e=>({id:e.id,label:e.label})),models:Ds.map(e=>({id:e.id,label:e.label,...e.description?{description:e.description}:{},harnesses:[...e.harnesses]})),efforts:_s.map(e=>({id:e.id,label:e.label,...e.description?{description:e.description}:{},harnesses:[...e.harnesses],...e.models?{models:[...e.models]}:{}}))};function wo(e){return In({defaultsByHarness:e.defaultsByHarness,harnesses:e.harnesses.map(t=>({id:t.id,label:t.label??t.id})),models:e.models.map(t=>({id:t.id,label:t.label??t.id,description:t.description,harnesses:t.harnesses})),efforts:e.efforts.map(t=>({id:t.id,label:t.label,description:t.description,harnesses:t.harnesses,...t.models?.length?{models:[...t.models]}:{}}))})}const ur="|";function gn(e){return e<55296?e:e<57344?e+8192:e-2048}function fr(e,t){if(e===t)return 0;const s=Math.min(e.length,t.length);for(let n=0;n<s;n+=1){const a=e.charCodeAt(n),i=t.charCodeAt(n);if(a!==i)return gn(a)<gn(i)?-1:1}return e.length===t.length?0:e.length<t.length?-1:1}function bn(e){return Number.isFinite(e)?e:0}function mr(e,t){const s=bn(e.createdAt),n=bn(t.createdAt);return s!==n?s<n?-1:1:fr(e.id,t.id)}function hr(e){return`${Number.isFinite(e.createdAt)?Math.max(0,Math.trunc(e.createdAt)):0}${ur}${e.id}`}const pr=10,gr=80,wn=300,xn=100,kn=2e3,br=pr,ve=new Map,ce=new Map;let Rn=0;function Ne(e){return e.trim()}function wr(e){const t=new Map;for(const s of e)t.set(s.id,s);return[...t.values()].sort(mr)}function xr(){if(ve.size<=br)return;let e=null,t=Number.POSITIVE_INFINITY;for(const[s,n]of ve)n.touchedAt<t&&(e=s,t=n.touchedAt);e&&ve.delete(e)}function Ie(e){const t=Ne(e),s=ve.get(t);return s?(s.touchedAt=++Rn,s.messages):null}function Pt(e,t,s={}){const n=Ne(e);if(!n)return[];const a=ve.get(n),i=wr(t).slice(-kn);return ve.set(n,{messages:i,historyLoaded:s.historyLoaded??a?.historyLoaded??!1,historyExhausted:s.historyExhausted??a?.historyExhausted??!1,touchedAt:++Rn}),xr(),i}function An(e,t){const s=Ie(e)??[];return Pt(e,[...s,...t])}function Tn(e){return ve.get(Ne(e))?.historyLoaded??!1}function yr(e){const t=ve.get(Ne(e));return!!(t&&t.historyLoaded&&!t.historyExhausted&&t.messages.length>0&&t.messages.length<kn)}async function xo(e,t={}){const s=Ne(e);if(!s)return[];const n=Ie(s);if(n&&!t.refresh)return n;const a=ce.get(s);if(a)return a;const i=z(`/api/messages?conversationId=${encodeURIComponent(s)}&limit=${gr}`).then(f=>An(s,f));ce.set(s,i);try{return await i}finally{ce.delete(s)}}async function vr(e){const t=Ne(e);if(!t)return[];if(Tn(t))return Ie(t)??[];const s=`${t}:history`,n=ce.get(s);if(n)return n;const a=z(`/api/messages?conversationId=${encodeURIComponent(t)}&limit=${wn}`).then(i=>Pt(t,[...Ie(t)??[],...i],{historyLoaded:!0,historyExhausted:i.length<wn}));ce.set(s,a);try{return await a}finally{ce.delete(s)}}async function yo(e){const t=Ne(e);if(!t)return[];if(!Tn(t))return vr(t);if(!yr(t))return Ie(t)??[];const s=Ie(t)??[],n=s[0];if(!n)return s;const a=hr(n),i=`${t}:before:${a}`,f=ce.get(i);if(f)return f;const y=z(`/api/messages?conversationId=${encodeURIComponent(t)}&limit=${xn}&beforeMessageId=${encodeURIComponent(a)}`).then(b=>Pt(t,[...b,...Ie(t)??[]],{historyLoaded:!0,historyExhausted:b.length<xn}));ce.set(i,y);try{return await y}finally{ce.delete(i)}}const jr=12e4,Ke=new Map;function Cr(){const e=globalThis.crypto?.randomUUID?.();return e?`web-${e}`:`web-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function Mr(e){const t=e.conversationId.trim(),s=e.messageId.trim();if(!t||!s)return;An(t,[{id:s,conversationId:t,actorId:"operator",actorName:"operator",body:e.body,createdAt:e.createdAt,class:"operator",...e.attachments?.length?{attachments:e.attachments}:{},metadata:{clientMessageId:e.clientMessageId}}]);const n=e.flightId?.trim(),a=e.agentId?.trim();!n||!a||Ke.set(t,{flight:{id:n,invocationId:e.invocationId?.trim()||`pending:${n}`,agentId:a,agentName:null,conversationId:t,collaborationRecordId:null,state:"queued",summary:"Request accepted; waiting for worker activity.",startedAt:e.createdAt,completedAt:null,sessions:[]},expiresAt:Date.now()+jr})}function vo(e,t=Date.now()){const s=e.trim(),n=Ke.get(s);return n?n.expiresAt<=t?(Ke.delete(s),null):n.flight:null}function jo(e,t){const s=e.trim(),n=Ke.get(s);n&&(!t||n.flight.id===t)&&Ke.delete(s)}const Sr=1200,Er=new Set(["Page","URL"]);function Ln(e){return e.trim().slice(0,Sr)}function Ir(e){const t=[{label:"Page",value:e.pageTitle??""},{label:"URL",value:e.pageUrl??""}];return e.selection?.trim()&&t.push({label:"Selection",value:Ln(e.selection)}),(e.notes??[]).forEach((s,n)=>{t.push({label:`Note ${n+1}`,value:s})}),t.filter(s=>s.value.trim())}function Nr(e,t){const s=[];for(const a of t){const i=a.value.trim();i&&(Er.has(a.label)?s.push(`${a.label}: ${i}`):s.push(`${a.label}:
|
|
2
|
+
${i.split(`
|
|
3
|
+
`).map(f=>`> ${f}`).join(`
|
|
4
|
+
`)}`))}const n=e.trim();return n&&s.push(n),s.join(`
|
|
5
|
+
|
|
6
|
+
`)}const kr=6,yn=1600;function Rr(e){return e===0?"":e===1?"[1 attachment remains on the source Scout message; not copied]":`[${e} attachments remain on the source Scout message; not copied]`}function Dn(e){const t=e.body.trim(),s=Rr(e.attachmentCount??0),n=[t,s].filter(Boolean).join(`
|
|
7
|
+
`)||"(message has no text)";return n.length<=yn?n:`${n.slice(0,yn-1).trimEnd()}…`}function Ar(e){const t=Dn(e).split(/\r?\n/gu).map(s=>`> ${s}`).join(`
|
|
8
|
+
`);return`Forwarded from ${e.actorLabel} in Scout
|
|
9
|
+
|
|
10
|
+
${t}`}function Co(e){const t=e.messages.findIndex(i=>i.id===e.selectedMessageId);if(t<0)throw new Error("The selected message is no longer available in this conversation.");const s=e.messages[t],n=e.messages.slice(Math.max(0,t-kr),t).filter(i=>i.body.trim()||(i.attachmentCount??0)>0),a=n.map(i=>`${i.actorLabel}:
|
|
11
|
+
${Dn(i)}`).join(`
|
|
12
|
+
|
|
13
|
+
`).slice(-8e3).trim();return{selectedMessage:Ar(s),selectedMessageId:s.id,sourceConversationId:e.conversationId,...a?{recentContext:a}:{},recentMessageCount:n.length}}function Tr(e,t,s){const n=s.trim(),a=t==="instructions-only"?"":t==="recent-context"&&e.recentContext?[`Recent Scout conversation before the forwarded message (${e.recentMessageCount} ${e.recentMessageCount===1?"message":"messages"})`,e.recentContext,e.selectedMessage].join(`
|
|
14
|
+
|
|
15
|
+
`):e.selectedMessage;return n?a?`${n}
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
${a}`:n:a}const Pn="openscout.project-recency.v1",On=12;function _n(e){const t=e?.trim();return t?t.length>1?t.replace(/\/+$/u,""):t:null}function Rt(){if(typeof window>"u")return[];try{const e=window.localStorage.getItem(Pn);if(!e)return[];const t=JSON.parse(e);if(!Array.isArray(t))return[];const s=[];for(const n of t){const a=typeof n=="string"?_n(n):null;a&&!s.includes(a)&&s.push(a)}return s.slice(0,On)}catch{return[]}}function vn(e){const t=_n(e);if(!t)return Rt();const s=[t,...Rt().filter(n=>n!==t)].slice(0,On);if(typeof window<"u")try{window.localStorage.setItem(Pn,JSON.stringify(s))}catch{}return s}async function Lr(e){const t=e.conversationId?.trim();if(t)return t;const s=e.projectRoot?.trim()||e.cwd?.trim(),n=await z("/api/conversations/direct",{method:"POST",body:JSON.stringify({agentId:e.id,targetLabel:e.selector??e.defaultSelector??e.name,...s?{projectPath:s}:{}})}),a=n.chatId?.trim()??n.conversationId?.trim()??n.cId?.trim()??n.id?.trim();if(!a)throw new Error("Chat was created, but no chat id was returned.");return a}function qe(e){const t=e?.trim();return t?t.length>1?t.replace(/\/+$/u,""):t:null}function At(e){return e.split("/").filter(Boolean).at(-1)??e}function Dr(e,t,s="claude"){const n=new Map;for(const a of e){const i=qe(a.root);i&&n.set(i,{id:a.id||`project:${i}`,title:a.title?.trim()||At(i),root:i,defaultHarness:a.defaultHarness?.trim()||s,source:"inventory",registrationKind:a.registrationKind?.trim()||null})}for(const a of t){const i=qe(a.projectRoot??a.cwd);!i||n.has(i)||n.set(i,{id:`agent-project:${i}`,title:a.project?.trim()||At(i),root:i,defaultHarness:a.harness?.trim()||s,source:"agent",registrationKind:null})}return[...n.values()].sort((a,i)=>a.title.localeCompare(i.title,void 0,{sensitivity:"base"})||a.root.localeCompare(i.root))}function Pr(e,t){const s=e.title.toLocaleLowerCase(),n=e.root.toLocaleLowerCase(),a=At(e.root).toLocaleLowerCase();return s===t||a===t||n===t?0:s.startsWith(t)||a.startsWith(t)?1:n.startsWith(t)?2:t.split(/\s+/u).filter(Boolean).every(f=>s.includes(f)||n.includes(f))?3:null}function Or(e,t){if(t.length===0)return[...e];const s=new Map(e.map(i=>[i.root,i])),n=[],a=new Set;for(const i of t){const f=s.get(i);!f||a.has(i)||(a.add(i),n.push(f))}return[...n,...e.filter(i=>!a.has(i.root))]}function _r(e,t){const s=t.trim().toLocaleLowerCase();return s?e.map(n=>({project:n,score:Pr(n,s)})).filter(n=>n.score!==null).sort((n,a)=>n.score-a.score||n.project.title.localeCompare(a.project.title,void 0,{sensitivity:"base"})||n.project.root.localeCompare(a.project.root)).map(n=>n.project):[...e]}function $r(e,t){return e===t||e.startsWith(`${t}/`)}function Fr(e,t){const s=qe(t.preferredRoot);if(s){const a=e.find(i=>i.root===s);if(a)return a}for(const a of t.recentRoots??[]){const i=qe(a);if(!i)continue;const f=e.find(y=>y.root===i);if(f)return f}const n=qe(t.currentDirectory);if(n){const a=e.filter(i=>$r(n,i.root)).sort((i,f)=>f.root.length-i.root.length)[0];if(a)return a}return e[0]??null}async function Hr(e){await z("/api/send",{method:"POST",body:JSON.stringify({conversationId:e.conversationId,body:e.body?.trim()??"",attachments:e.attachments})})}async function Ur(e,t){const s=t?.attachments?.filter(Boolean)??[],n=t?.instructions?.trim(),a=Cs(e),i=n||s.length>0?{...a,seed:{...n?{instructions:n}:{},...s.length>0?{attachments:s}:{},...t?.clientMessageId?{clientMessageId:t.clientMessageId}:{}}}:a;return await z("/api/sessions",{method:"POST",body:JSON.stringify(i)})}async function Gr(e){const t=e.projectPath.trim(),s=e.harness?.trim(),n=e.model?.trim(),a=e.reasoningEffort?.trim(),i=e.instructions?.trim(),f=e.fromMessageId?.trim(),y=e.fromConversationId?.trim(),b=e.attachments?.filter(Boolean)??[];return z("/api/sessions",{method:"POST",body:JSON.stringify({target:{projectPath:t},execution:{session:"new",...s?{harness:s}:{},...n?{model:n}:{},...a?{reasoningEffort:a}:{}},agent:{persistence:"one_time"},...i||b.length>0||f&&y?{seed:{...i?{instructions:i}:{},...b.length>0?{attachments:b}:{},...e.clientMessageId?{clientMessageId:e.clientMessageId}:{},...f&&y?{fromMessageId:f,fromConversationId:y}:{}}}:{}})})}async function Mo(e){return z("/api/sessions",{method:"POST",body:JSON.stringify({target:{agentId:e.agentId.trim()},execution:{session:"existing",targetSessionId:e.sessionId.trim()},seed:{instructions:e.instructions.trim()}})})}function So(e){const t=e?.trim().toLowerCase();if(t)switch(t){case"claude":case"claude-code":case"claude_code":case"claude_stream_json":return"claude";case"codex":case"codex_app_server":return"codex";case"pi":case"pi_rpc":return"pi";case"cursor":case"cursor_exec":return"cursor";case"grok":return"grok";default:return}}async function Eo(e){const t=e.projectPath.trim(),s=e.sessionId.trim(),n=e.instructions.trim(),a=e.harness?.trim()||void 0,i=e.model?.trim()||void 0,f=e.reasoningEffort?.trim()||void 0;return z("/api/sessions",{method:"POST",body:JSON.stringify({target:{projectPath:t},execution:{session:"existing",targetSessionId:s,...a?{harness:a}:{},...i?{model:i}:{},...f?{reasoningEffort:f}:{}},seed:{instructions:n}})})}async function Br(e,t){const s=t.message?.trim();if(t.mode==="existing-chat"){const i=await Lr(e);return await Hr({conversationId:i,body:s||"Shared capture",attachments:t.attachments}),{conversationId:i,agentId:e.id}}const n=await Ur(e,{instructions:s||"Shared capture for context.",attachments:t.attachments}),a=n.conversationId?.trim();if(!a)throw new Error("Session started, but no conversation was returned.");return{conversationId:a,agentId:n.agentId?.trim()||e.id}}const $n=Ee.harnesses.map(e=>({id:e.id,label:e.label??e.id,description:null,state:null,ready:null,detail:null})),qr=Ee.models.map(e=>({id:e.id,label:e.label??e.id,description:e.description??null,harnesses:[...e.harnesses],source:"catalog"})),Kr=Ee.efforts.map(e=>({...e,harnesses:[...e.harnesses],...e.models?{models:[...e.models]}:{}})),ot={defaults:{harness:Ee.defaults?.harness??"claude",model:Ee.defaults?.model??null,reasoningEffort:Ee.defaults?.reasoningEffort??"medium"},defaultsByHarness:Ee.defaultsByHarness,harnesses:$n,models:qr,efforts:Kr};let Et=null;const jn=5;function zr(e,t){const s=e.defaults.harness===t?e.defaults.model?.trim()??"":"";return s&&e.models.some(n=>n.id===s&&n.harnesses.includes(t))?s:e.models.find(n=>n.harnesses.includes(t))?.id??""}function Wr(e,t){const s=e.efforts.filter(n=>n.harnesses.includes(t));return s.find(n=>n.id===e.defaults.reasoningEffort)?.id??s.find(n=>n.id==="medium")?.id??s[0]?.id??""}function Jr(e){return URL.createObjectURL(e)}function It(e){return e.replace(/^\/Users\/[^/]+/u,"~")}function Vr(e){return e.split("/").filter(Boolean).at(-1)??e}function Xr(e){const t=e.trim();return t.startsWith("/")||t.startsWith("~/")}function Yr({file:e,onRemove:t}){const s=c.useMemo(()=>Jr(e),[e]);c.useEffect(()=>()=>URL.revokeObjectURL(s),[s]);const n=e.type.startsWith("video/"),a=e.type.startsWith("image/");return o.jsxs("div",{className:"s-newchat-attachment",children:[n?o.jsx("video",{src:s,muted:!0,playsInline:!0}):a?o.jsx("img",{src:s,alt:e.name}):o.jsxs("div",{className:"s-newchat-attachment-file",title:e.name,children:[o.jsx(Is,{size:24,"aria-hidden":"true"}),o.jsx("span",{children:e.name})]}),o.jsx("span",{className:"s-newchat-attachment-badge",children:n?"video":a?"image":"file"}),o.jsx("button",{type:"button",className:"s-newchat-attachment-remove","aria-label":`Remove ${e.name}`,onClick:t,children:"×"})]})}function at(){return{width:window.innerWidth,height:window.innerHeight}}function Qr({agents:e,route:t,navigate:s,onClose:n,initialAgentId:a,initialConversationId:i,initialMessage:f,initialFiles:y,initialAttachmentFeedback:b,initialIntent:$="new-task",initialProjectPath:T,initialForwardContext:v,initialForwardContextMode:de="selected-message",defaultMode:J,draftRestored:V=!1,onDraftChange:ze,onDraftConsumed:We}){const j=c.useMemo(()=>Fs(t,e),[t,e]),C=$==="forward-message"&&!!v,ue=c.useMemo(()=>[...e].sort((r,l)=>(l.updatedAt??0)-(r.updatedAt??0)),[e]),fe=$==="route-capture"?a??j.agentId??null:null,me=$==="route-capture"?i??j.conversationId:null,S=ue.find(r=>r.id===fe)??null,je=S?.projectRoot??S?.cwd??null,[L,De]=c.useState(null),[P,ne]=c.useState(Et),[Pe,X]=c.useState(null),[D,Y]=c.useState(null),[I,he]=c.useState(()=>T||je||""),[k,R]=c.useState(""),[se,N]=c.useState(0),[pe,Je]=c.useState(()=>Rt()),[ke,F]=c.useState(!1),[Oe,ge]=c.useState(null),[E,be]=c.useState(()=>f??""),[H,d]=c.useState(de),[h,w]=c.useState({open:!1,query:"",triggerStart:-1,index:0}),[g,A]=c.useState({open:!1,query:"",triggerStart:-1,index:0}),[U,_e]=c.useState(()=>[...y??[]]),[re,we]=c.useState(()=>J||(me?"existing-chat":"new-session")),[Fn,Ot]=c.useState("idle"),[Hn,ct]=c.useState("idle"),[_t,Ce]=c.useState(null),[Ve,$t]=c.useState(()=>b??null),[$e]=c.useState(()=>{if(typeof window>"u")return{title:"",url:"",selection:""};const r=document.activeElement,l=r instanceof HTMLInputElement||r instanceof HTMLTextAreaElement;return{title:document.title,url:window.location.href,selection:l?"":Ln(window.getSelection()?.toString()??"")}}),[dt,Un]=c.useState(!1),[oe,Ft]=c.useState(()=>S?.harness?.trim()||ot.defaults.harness),[Xe,Ht]=c.useState(()=>S?.model?.trim()||ot.defaults.model||""),[Ye,Ut]=c.useState(ot.defaults.reasoningEffort||""),[ut,Gt]=c.useState(()=>V?"Restored your unsent draft.":null),[Gn,ft]=c.useState(0),{ref:mt,onKeyDown:Bn}=js(!0),O=c.useRef(null),ht=c.useRef(null),Me=c.useRef(0),Qe=c.useRef(!!T),Bt=c.useRef(!1),[Q,Re]=c.useState(null),[qn,pt]=c.useState(null),Fe=c.useRef(null);c.useEffect(()=>{typeof window>"u"||Re(un(null,mn(),at()))},[]),c.useEffect(()=>{if(typeof window>"u")return;const r=()=>{Re(l=>{const m=at();return un(l,l?null:mn(),m)})};return window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)},[]);const Kn=c.useCallback(()=>{if(Q)return Q;const r=mt.current;if(!r)return null;const l=r.getBoundingClientRect();return{x:Math.round(l.left),y:Math.round(l.top),width:Math.round(l.width),height:Math.round(l.height)}},[Q,mt]),zn=(r,l)=>{if(typeof window>"u"||r.button!==0||!Nn(window.innerWidth)||!l&&r.target?.closest("button"))return;const m=Kn();m&&(r.preventDefault(),r.currentTarget.setPointerCapture(r.pointerId),Fe.current={base:m,x:r.clientX,y:r.clientY,edge:l},pt(l?"resize":"move"),Re(lt(m,at())))},Wn=r=>{const l=Fe.current;if(!l)return;const m=r.clientX-l.x,u=r.clientY-l.y,p=at();Re(l.edge?lr(l.base,m,u,l.edge,p):ir(l.base,m,u,p))},qt=r=>{if(Fe.current){Fe.current=null,pt(null);try{r.currentTarget.releasePointerCapture(r.pointerId)}catch{}Re(l=>(l&&hn(l),l))}},Jn=()=>{Fe.current=null,pt(null),Re(null),hn(null)},Ze=r=>({onPointerDown:l=>zn(l,r),onPointerMove:Wn,onPointerUp:qt,onPointerCancel:qt}),Kt=ar(Q),Vn=Q?{position:"absolute",left:Q.x,top:Q.y,width:Q.width,height:Q.height,maxWidth:"none",maxHeight:"none",...Kt?{"--s-newchat-input-min":`${Kt}px`}:{}}:void 0,Z=c.useMemo(()=>Or(Dr(L?.projects??[],e,L?.context.defaultHarness??"claude"),pe),[e,L,pe]),M=Z.find(r=>r.root===I)??null??(I?{id:`direct:${I}`,title:Vr(I),root:I,defaultHarness:L?.context.defaultHarness??S?.harness??"claude",source:"agent",registrationKind:null}:null),gt=c.useMemo(()=>{const r=new Set,l=M?ue.filter(u=>u.projectRoot?.trim()===M.root||u.cwd?.trim()===M.root):[];return(l.length>0?l:ue).flatMap(u=>{if(u.retiredFromFleet)return[];const p=u.handle?.trim().replace(/^@+/,"")||bs(u.id)||"",q=p.toLowerCase();return!p||r.has(q)?[]:(r.add(q),[{id:u.id,label:p,name:u.name||p,handle:p}])})},[M,ue]),ee=(P?.harnesses??$n).find(r=>r.id===oe)??null,Ae=!P&&!D,zt=c.useMemo(()=>{const r=In(P??ot);return oe&&!r.harnesses.some(l=>l.value===oe)?{...r,harnesses:[...r.harnesses,{value:oe,label:oe,models:[{value:"",label:"Default",note:"harness picks"}]}]}:r},[P,oe]),He=c.useMemo(()=>_r(Z,k),[k,Z]),te=c.useMemo(()=>{const r=He.slice(0,jn);if(!I||r.some(m=>m.root===I))return r;const l=He.find(m=>m.root===I);return l?[l,...r.slice(0,jn-1)]:r},[He,I]),xe=Xr(k)&&!Z.some(r=>r.root===k.trim())?k.trim():null,et=te.length+(xe?1:0),Xn=Math.max(0,(k.trim()?He.length:Z.length)-te.length),Yn=!!(S&&M&&[S.projectRoot,S.cwd].some(r=>r?.trim()===M.root)),B=U.length>0,x=Fn==="starting",Wt=Gn>0,tt=Yn&&!!(S?.conversationId||me),ye=!B||!tt||re==="new-session",Jt=ye&&(Ae||ee?.ready===!1),Vt=C?"Forward to new task":B?"Route capture":"New task",Xt=c.useMemo(()=>C?[]:Ir({pageTitle:$e.title,pageUrl:$e.url,selection:dt?$e.selection:void 0}),[dt,C,$e]),ae=C&&v?Tr(v,H,E):Nr(E,Xt),Qn=Hn==="uploading"?"Uploading capture":C?"Forwarding to new task":B?"Routing capture":"Sending message",Zn=B?`Submitted to ${M?.title??S?.name??"Scout"}. Opening the chat when the broker returns it.`:ae?`Routing your first message through /${M?.title??S?.name??"project"}.`:`Starting a project-routed chat in /${M?.title??S?.name??"project"}.`,Yt=B&&tt,es=ye&&(Ae||!!D||ee?.ready===!1),ts=Yt||!C&&es,ie=c.useMemo(()=>{if(!h.open)return[];const r=h.query.toLowerCase();return r?an.filter(l=>l.command.toLowerCase().startsWith(`/${r}`)||l.command.toLowerCase().includes(r)):an},[h.open,h.query]),le=c.useMemo(()=>{if(!g.open)return[];const r=g.query.toLowerCase();return r?gt.filter(l=>l.handle.toLowerCase().includes(r)||l.name.toLowerCase().includes(r)||l.label.toLowerCase().includes(r)).slice(0,8):gt.slice(0,8)},[gt,g.open,g.query]),bt=c.useCallback(()=>{w(r=>r.open?{...r,open:!1}:r),A(r=>r.open?{...r,open:!1}:r)},[]),Ue=c.useCallback((r,l)=>{const m=ws(r,l);w(p=>m?{open:!0,query:m.query,triggerStart:m.start,index:p.open&&p.triggerStart===m.start?p.index:0}:p.open?{...p,open:!1}:p);const u=xs(r,l);A(p=>u?{open:!0,query:u.query,triggerStart:u.start,index:p.open&&p.triggerStart===u.start?p.index:0}:p.open?{...p,open:!1}:p)},[]),ns=c.useCallback((r,l)=>{be(r),Ue(r,l?.caret??r.length)},[Ue]),wt=c.useCallback(r=>{const l=h.triggerStart;if(l<0)return;const m=O.current?.selectionStart??E.length,u=E.slice(0,l),p=E.slice(m),q=`${u}${r.insert}${p}`;be(q),w(K=>({...K,open:!1})),requestAnimationFrame(()=>{const K=O.current;if(!K)return;const _=u.length+r.insert.length;K.focus(),K.setSelectionRange(_,_)})},[E,h.triggerStart]),xt=c.useCallback(r=>{const l=g.triggerStart;if(l<0)return;const m=O.current?.selectionStart??E.length,u=E.slice(0,l),p=E.slice(m),q=`@${r.handle}${p.length===0||!p.startsWith(" ")?" ":""}`,K=`${u}${q}${p}`;be(K),A(_=>({..._,open:!1})),requestAnimationFrame(()=>{const _=O.current;if(!_)return;const Te=u.length+q.length;_.focus(),_.setSelectionRange(Te,Te)})},[g.triggerStart,E]),Qt=c.useCallback(r=>{if(x)return;const m=O.current?.selectionStart??E.length,u=E.slice(0,m),p=E.slice(m),K=`${u&&!/\s$/.test(u)?" ":""}${r}`,_=`${u}${K}${p}`,Te=u.length+K.length;be(_),Ue(_,Te),requestAnimationFrame(()=>{const vt=O.current;vt&&(vt.focus(),vt.setSelectionRange(Te,Te))})},[x,E,Ue]),ss=c.useCallback(r=>{const l=h.open&&ie.length>0,m=g.open&&le.length>0;if(!l&&!m)return!1;if(r.key==="ArrowDown")return l?w(u=>({...u,index:(u.index+1)%ie.length})):A(u=>({...u,index:(u.index+1)%le.length})),!0;if(r.key==="ArrowUp")return l?w(u=>({...u,index:(u.index-1+ie.length)%ie.length})):A(u=>({...u,index:(u.index-1+le.length)%le.length})),!0;if(r.key==="Escape")return bt(),!0;if((r.key==="Enter"||r.key==="Tab")&&!r.shiftKey&&!r.metaKey&&!r.ctrlKey&&!r.altKey){if(l){const u=ie[h.index]??ie[0];u&&wt(u)}else{const u=le[g.index]??le[0];u&&xt(u)}return!0}return!1},[xt,wt,bt,le,ie,g.index,g.open,h.index,h.open]),yt=c.useCallback(()=>{x||n()},[x,n]),rs=c.useCallback(()=>{Gt("Draft kept open. Use Esc or × when you are ready to close it."),requestAnimationFrame(()=>O.current?.focus())},[]);c.useEffect(()=>{const r=l=>{l.key==="Escape"&&(l.preventDefault(),yt())};return window.addEventListener("keydown",r),()=>window.removeEventListener("keydown",r)},[yt]),c.useEffect(()=>{if(!ut)return;const r=window.setTimeout(()=>Gt(null),5e3);return()=>window.clearTimeout(r)},[ut]),c.useEffect(()=>{O.current?.focus()},[]),c.useEffect(()=>{let r=!1;return z("/api/agent-config/snapshot").then(l=>{r||(De(l),X(null))}).catch(l=>{r||X(l instanceof Error?l.message:"Could not load projects.")}),()=>{r=!0}},[]);const nt=c.useCallback(()=>{z("/api/runner/options").then(r=>{Et=r,ne(r),Y(null)}).catch(()=>{Et||Y("Model catalog unavailable. Harness defaults are still available.")})},[]);c.useEffect(()=>{nt()},[nt]),c.useEffect(()=>{if(Qe.current||Z.length===0)return;const r=Fr(Z,{preferredRoot:je,currentDirectory:L?.context.currentDirectory,recentRoots:pe});r&&he(r.root)},[L?.context.currentDirectory,je,Z,pe]),c.useEffect(()=>{if(Bt.current)return;const r=M?.defaultHarness?.trim()||S?.harness?.trim()||P?.defaults.harness||"claude";if(Ft(r),!P)return;const l=S?.model?.trim()??"",m=P.models.some(u=>u.id===l&&u.harnesses.includes(r));Ht(m?l:zr(P,r)),Ut(Wr(P,r))},[S?.harness,S?.model,P,M?.defaultHarness,M?.root]),c.useLayoutEffect(()=>{ze?.({intent:$,...fe?{agentId:fe}:{},...me?{conversationId:me}:{},message:E,files:U,attachmentFeedback:Ve,mode:re,projectPath:I,projectQuery:k,...C&&v?{forwardContext:v}:{},forwardContextMode:H})},[Ve,U,H,v,$,C,E,re,ze,I,k,fe,me,M?.title]);const Zt=c.useCallback((r,l="Added")=>{if(x)return;const m=r.filter(sn),u=r.filter(p=>!sn(p));if(m.length>0&&(_e(p=>[...p,...m]),$t(m.length===1?`${l} ${m[0]?.name??"1 attachment"}.`:`${l} ${m.length} attachments.`)),u.length>0){const p=u.length===1?u[0]?.name??"That file":`${u.length} files`;Ce(`${p} ${u.length===1?"is":"are"} not supported. Attach markdown, code, an image, or a video clip.`)}else m.length>0&&Ce(null)},[x]),st=c.useCallback((r,l)=>{const m=hs(r);if(m.length===0){Ce("Scout could not read that file. Try dropping or pasting it again.");return}Zt(m,l)},[Zt]),os=c.useCallback(r=>{x||!rt(r.dataTransfer)||(r.preventDefault(),r.stopPropagation(),Me.current+=1,ft(Me.current))},[x]),as=c.useCallback(r=>{x||!rt(r.dataTransfer)||(r.preventDefault(),r.stopPropagation(),r.dataTransfer.dropEffect="copy")},[x]),is=c.useCallback(r=>{Me.current!==0&&(r.preventDefault(),r.stopPropagation(),Me.current=Math.max(0,Me.current-1),ft(Me.current))},[]),ls=c.useCallback(r=>{rt(r.dataTransfer)&&(r.preventDefault(),r.stopPropagation(),Me.current=0,ft(0),st(r.dataTransfer,"Added"))},[st]),cs=c.useCallback(r=>{x||!rt(r.clipboardData)||(r.preventDefault(),r.stopPropagation(),st(r.clipboardData,"Pasted"))},[st,x]),en=r=>{Qe.current=!0,Je(vn(r.root)),he(r.root),R(""),N(0),F(!1),ge(null),requestAnimationFrame(()=>O.current?.focus())},tn=r=>{const l=r.trim();l&&(Qe.current=!0,Je(vn(l)),he(l),R(""),N(0),F(!1),ge(null),requestAnimationFrame(()=>O.current?.focus()))},ds=()=>{Qe.current=!0,he(""),R(""),N(0),F(!1),ge(null),requestAnimationFrame(()=>O.current?.focus())},us=r=>{if(r.key==="ArrowDown"||r.key==="ArrowUp"){r.preventDefault(),N(l=>{if(et===0)return 0;const m=r.key==="ArrowDown"?1:-1;return(l+m+et)%et});return}if(r.key==="Enter"){r.preventDefault();const l=te[se];l?en(l):xe&&se===te.length&&tn(xe);return}r.key==="Escape"&&ke&&k&&(r.preventDefault(),r.stopPropagation(),R(""),N(0))},nn=r=>{Bt.current=!0,Ft(r.harness),Ht(r.model),Ut(r.effort)},fs=async()=>{if(x)return;if(C&&!ae){Ce("Add instructions, or choose a context option that includes the source message."),requestAnimationFrame(()=>O.current?.focus());return}if(!M){Ce(null),ge("Choose a project before starting this task."),F(!0),requestAnimationFrame(()=>ht.current?.focus());return}if(Jt)return;Ot("starting"),ct(U.length>0?"uploading":"starting"),Ce(null);const r=Cr(),l=Date.now();try{let m=[];if(U.length>0&&(m=await ps(U),ct("starting")),B&&S&&tt&&re==="existing-chat"){const _=await Br(S,{mode:re==="existing-chat"&&tt?"existing-chat":"new-session",message:ae,attachments:m});be(""),_e([]),$t(null),s({view:"agents-v2",agentId:_.agentId,conversationId:_.conversationId,tab:"message"}),We?.(),n();return}const u=await Gr({projectPath:M.root,harness:oe,...Xe?{model:Xe}:{},...Ye?{reasoningEffort:Ye}:{},...ae?{instructions:ae}:B?{instructions:"Shared capture for context."}:{},...m.length>0?{attachments:m}:{},...C&&v?{fromMessageId:v.selectedMessageId,fromConversationId:v.sourceConversationId}:{},clientMessageId:r}),p=u.conversationId?.trim();if(!p)throw new Error("Message sent, but no Chat was returned.");const q=u.messageId?.trim();q&&Mr({conversationId:p,messageId:q,clientMessageId:r,body:ae||(m.length>0?"Shared capture for context.":"New session started."),attachments:m,agentId:u.agentId,flightId:u.flightId,invocationId:u.invocationId,createdAt:l}),be(""),s({view:"conversation",conversationId:p}),We?.(),n()}catch(m){Ce(m instanceof Error?m.message:B?"Could not route capture.":"Could not send message."),Ot("idle"),ct("idle")}};return o.jsx("div",{className:"s-newchat-backdrop",onClick:rs,onDragEnter:os,onDragOver:as,onDragLeave:is,onDrop:ls,onPaste:cs,role:"presentation",children:o.jsxs("div",{ref:mt,className:`s-newchat-panel${x?" s-newchat-panel--starting":""}${Wt?" s-newchat-panel--dragging":""}`,style:Vn,"data-framed":Q?"true":void 0,"data-gesture":qn??void 0,role:"dialog","aria-modal":"true","aria-label":Vt,onClick:r=>r.stopPropagation(),onKeyDown:Bn,tabIndex:-1,children:[o.jsxs("header",{className:"s-newchat-head",title:"Drag to move · double-click to recenter",onDoubleClick:Jn,...Ze(null),children:[o.jsx("span",{className:"s-newchat-title",children:Vt}),o.jsx("div",{className:"s-newchat-head-status",children:o.jsx("span",{role:"status","aria-live":"polite",children:ut})}),o.jsx("button",{type:"button",className:"s-newchat-close",onClick:yt,disabled:x,"aria-label":"Close (Esc)",title:"Close (Esc)",children:o.jsx(Ms,{size:14,"aria-hidden":"true"})})]}),Wt?o.jsx("div",{className:"s-newchat-drop-prompt",role:"status","aria-live":"polite",children:"Drop to attach markdown, code, images, or video"}):null,o.jsxs("div",{className:"s-newchat-body",children:[o.jsxs("div",{className:"s-newchat-lead",children:[C?o.jsx("p",{className:"s-newchat-forward-intro",children:"Choose the destination, runtime, and visible Scout context to carry into a fresh task."}):null,o.jsx(vs,{context:Xt,selection:$e.selection,attached:dt,onToggleSelection:()=>Un(r=>!r)}),o.jsxs("div",{className:"s-newchat-project-bar",children:[o.jsx("span",{className:"label-md s-newchat-project-label",children:"Project"}),o.jsxs("button",{type:"button",className:"s-newchat-project-summary","data-empty":M?void 0:"true","aria-expanded":ke,"aria-controls":"s-newchat-project-panel","aria-describedby":Oe?"s-newchat-project-reminder":void 0,disabled:x,onClick:()=>{const r=!ke;F(r),requestAnimationFrame(r?()=>ht.current?.focus():()=>O.current?.focus())},children:[o.jsx("span",{className:"s-newchat-project-summary-title",children:M?`/${M.title}`:"Choose a project"}),M?o.jsx("span",{className:"s-newchat-project-summary-path",title:M.root,children:It(M.root)}):o.jsx("span",{className:"s-newchat-project-summary-path",children:"Required when you send"}),o.jsx(Ss,{size:13,"aria-hidden":"true"})]})]}),Oe?o.jsx("p",{id:"s-newchat-project-reminder",className:"s-newchat-project-reminder",role:"alert",children:Oe}):null,ke?o.jsxs("div",{id:"s-newchat-project-panel",className:"s-newchat-project-panel",children:[o.jsxs("div",{className:"s-newchat-project-picker",children:[o.jsx(Es,{size:13,"aria-hidden":"true",className:"s-newchat-project-search-icon"}),o.jsx("input",{ref:ht,id:"s-newchat-project-search",className:"s-newchat-project-search",type:"search",role:"combobox","aria-label":"Filter projects or enter a project path","aria-autocomplete":"list","aria-expanded":"true","aria-controls":"s-newchat-project-results","aria-activedescendant":et>0?`s-newchat-project-option-${se}`:void 0,value:k,placeholder:L?"Filter projects, or type a path…":"Loading projects…",disabled:x,spellCheck:!1,autoComplete:"off",onChange:r=>{R(r.currentTarget.value),N(0)},onKeyDown:us})]}),o.jsxs("div",{id:"s-newchat-project-results",className:"s-newchat-project-results",role:"listbox","aria-label":"Projects",children:[te.map((r,l)=>o.jsxs("div",{id:`s-newchat-project-option-${l}`,role:"option","aria-selected":r.root===I,"aria-disabled":x||void 0,className:"s-newchat-project-option","data-active":l===se||void 0,onMouseDown:m=>m.preventDefault(),onMouseEnter:()=>N(l),onClick:()=>{x||en(r)},children:[o.jsxs("span",{className:"s-newchat-project-option-title",children:["/",r.title]}),o.jsx("span",{className:"s-newchat-project-option-path",children:It(r.root)})]},r.root)),xe?o.jsxs("div",{id:`s-newchat-project-option-${te.length}`,role:"option","aria-selected":xe===I,"aria-disabled":x||void 0,className:"s-newchat-project-option s-newchat-project-option--path","data-active":se===te.length||void 0,onMouseDown:r=>r.preventDefault(),onMouseEnter:()=>N(te.length),onClick:()=>{x||tn(xe)},children:[o.jsx("span",{className:"s-newchat-project-option-title",children:"Use this project path"}),o.jsx("span",{className:"s-newchat-project-option-path",children:It(xe)})]}):null,te.length===0&&!xe?o.jsx("p",{className:"s-newchat-project-empty",children:"No project matched. Type an absolute path such as ~/dev/my-project."}):null]}),o.jsxs("div",{className:"s-newchat-project-panel-foot",children:[Xn>0?o.jsxs("p",{className:"s-newchat-project-foot",children:[te.length," of"," ",k.trim()?He.length:Z.length,k.trim()?" matches":" projects"," · type to narrow"]}):o.jsx("span",{}),M?o.jsx("button",{type:"button",className:"s-newchat-project-clear",onClick:ds,children:"Clear project"}):null]}),Pe&&Z.length===0?o.jsx("div",{className:"s-newchat-error",role:"alert",children:Pe}):null]}):null,C&&v?o.jsxs("div",{className:"s-newchat-forward-config",children:[o.jsxs("div",{className:"s-newchat-field",children:[o.jsx("span",{className:"label-md s-newchat-field-label",children:"Runtime"}),o.jsx("div",{className:"s-newchat-forward-runtime",children:o.jsx(ln,{catalog:zt,value:{harness:oe,model:Xe,effort:Ye},onChange:nn,status:Ae?"loading":D?"error":"ready",statusMessage:D??void 0,onRetry:nt,disabled:x||!ye})}),ye&&Ae?o.jsxs("p",{className:"s-newchat-runtime-note","data-pending":"true",role:"status",children:[o.jsx(jt,{size:11,className:"s-newchat-runtime-note-spinner","aria-hidden":"true"}),"Loading the model catalog…"]}):ye&&(D||ee?.ready===!1)?o.jsx("p",{className:"s-newchat-runtime-note",role:"alert",children:ee?.ready===!1?ee.detail||`${ee.label} is unavailable.`:D}):null]}),o.jsxs("div",{className:"s-newchat-field",children:[o.jsx("span",{id:"s-newchat-forward-context-label",className:"label-md s-newchat-field-label",children:"Context"}),o.jsxs("div",{className:"s-newchat-context-options",role:"radiogroup","aria-labelledby":"s-newchat-forward-context-label",children:[o.jsxs("button",{type:"button",className:"s-newchat-context-option",role:"radio","aria-checked":H==="selected-message",disabled:x,onClick:()=>d("selected-message"),children:[o.jsx("span",{className:"s-newchat-context-option-title",children:"Selected message"}),o.jsx("span",{className:"s-newchat-context-option-copy",children:"Carry only the message you chose."})]}),o.jsxs("button",{type:"button",className:"s-newchat-context-option",role:"radio","aria-checked":H==="recent-context",disabled:x||v.recentMessageCount===0,onClick:()=>d("recent-context"),children:[o.jsx("span",{className:"s-newchat-context-option-title",children:"Recent context + message"}),o.jsx("span",{className:"s-newchat-context-option-copy",children:v.recentMessageCount>0?`Carry ${v.recentMessageCount} preceding visible ${v.recentMessageCount===1?"message":"messages"}, then this message.`:"No preceding visible messages are available."})]}),o.jsxs("button",{type:"button",className:"s-newchat-context-option",role:"radio","aria-checked":H==="instructions-only",disabled:x,onClick:()=>d("instructions-only"),children:[o.jsx("span",{className:"s-newchat-context-option-title",children:"Instructions only"}),o.jsx("span",{className:"s-newchat-context-option-copy",children:"Start clean without source conversation text."})]})]}),o.jsx("p",{className:"s-newchat-context-note",children:"Recent context is a bounded Scout excerpt, not a generated summary or full model context."})]})]}):null,C?o.jsx("span",{className:"label-md s-newchat-field-label",children:"Instructions"}):null,o.jsx(ms,{density:"panel",value:E,onChange:ns,onSend:()=>{fs()},sendOnEnter:!0,textareaRef:O,placeholder:C?"Add what the new task should do (optional)…":B?"What should the agent do with this?":"Describe the task, or leave blank…","aria-label":C?"Instructions for the new task":"Message",disabled:x,sending:x,canSend:!x&&!Jt&&(!C||!!ae),rows:7,maxHeightPx:280,sendTitle:C?"Forward to new task (Enter)":B?"Route (Enter)":"Start task (Enter)",sendAriaLabel:C?"Forward to new task":B?"Route capture":"Start task",overlay:o.jsxs(o.Fragment,{children:[h.open?o.jsx(rn,{label:"Slash commands",placement:"inside",items:ie.map(r=>({id:r.command,token:r.label,description:r.description})),activeIndex:h.index,onPick:r=>{const l=ie[r];l&&wt(l)},onActiveIndexChange:r=>w(l=>({...l,index:r}))}):null,g.open?o.jsx(rn,{label:"Mention agent",placement:"inside",items:le.map(r=>({id:r.id,token:`@${r.handle}`,description:r.name,avatar:{label:r.name[0]?.toUpperCase()??"?",color:ys(r.name)}})),activeIndex:g.index,onPick:r=>{const l=le[r];l&&xt(l)},onActiveIndexChange:r=>A(l=>({...l,index:r}))}):null]}),onSelect:r=>{const l=r.currentTarget;Ue(l.value,l.selectionStart)},onBlur:()=>window.setTimeout(bt,120),onKeyDown:ss,leadingTools:o.jsxs("div",{className:"s-newchat-compose-triggers","aria-label":"Message shortcuts",children:[o.jsx("button",{type:"button",className:"s-newchat-command-trigger",disabled:x,onClick:()=>Qt("/"),children:"/Commands"}),o.jsx("span",{"aria-hidden":"true",children:"·"}),o.jsx("button",{type:"button",className:"s-newchat-command-trigger",disabled:x,onClick:()=>Qt("@"),children:"@Agents"})]}),tools:C?void 0:o.jsx(ln,{catalog:zt,value:{harness:oe,model:Xe,effort:Ye},onChange:nn,status:Ae?"loading":D?"error":"ready",statusMessage:D??void 0,onRetry:nt,disabled:x||!ye})}),U.length>0?o.jsx("div",{className:"s-newchat-attachments","aria-label":"Attached captures",children:U.map((r,l)=>o.jsx(Yr,{file:r,onRemove:()=>_e(m=>m.filter((u,p)=>p!==l))},`${r.name}:${r.size}:${l}`))}):null,Ve?o.jsx("div",{className:"s-newchat-attachment-feedback",role:"status","aria-live":"polite",children:Ve}):null,_t&&o.jsx("div",{className:"s-newchat-error",role:"alert",children:_t}),x&&o.jsxs("div",{className:"s-newchat-progress",role:"status","aria-live":"polite",children:[o.jsx(jt,{size:14,className:"s-newchat-progress-spinner","aria-hidden":"true"}),o.jsxs("div",{className:"s-newchat-progress-copy",children:[o.jsx("span",{className:"label-md s-newchat-progress-title",children:Qn}),o.jsx("span",{className:"s-newchat-progress-detail",children:Zn}),ae&&o.jsx("span",{className:"s-newchat-progress-message",children:ae})]})]})]}),ts?o.jsxs("div",{className:"s-newchat-config",children:[Yt?o.jsxs("div",{className:"s-newchat-mode",role:"group","aria-label":"Delivery mode",children:[o.jsx("button",{type:"button",className:`s-newchat-mode-btn${re==="existing-chat"?" s-newchat-mode-btn--on":""}`,disabled:x,onClick:()=>we("existing-chat"),children:"Existing chat"}),o.jsx("button",{type:"button",className:`s-newchat-mode-btn${re==="new-session"?" s-newchat-mode-btn--on":""}`,disabled:x,onClick:()=>we("new-session"),children:"New chat"})]}):null,ye&&Ae?o.jsxs("p",{className:"s-newchat-runtime-note","data-pending":"true",role:"status",children:[o.jsx(jt,{size:11,className:"s-newchat-runtime-note-spinner","aria-hidden":"true"}),"Loading the model catalog…"]}):ye&&(D||ee?.ready===!1)?o.jsx("p",{className:"s-newchat-runtime-note",role:"alert",children:ee?.ready===!1?ee.detail||`${ee.label} is unavailable.`:D}):null]}):null]}),o.jsx("div",{className:"s-newchat-resize s-newchat-resize--e","aria-hidden":"true",title:"Drag to resize",...Ze("e")}),o.jsx("div",{className:"s-newchat-resize s-newchat-resize--s","aria-hidden":"true",title:"Drag to resize",...Ze("s")}),o.jsx("div",{className:"s-newchat-resize s-newchat-resize--se","aria-hidden":"true",title:"Drag to resize",...Ze("se")})]})})}const Io=Object.freeze(Object.defineProperty({__proto__:null,NewChatComposer:Qr},Symbol.toStringTag,{value:"Module"}));export{Qr as N,Ee as R,Se as a,ln as b,Ie as c,yr as d,Lr as e,xo as f,yo as g,Tn as h,Co as i,Cr as j,So as k,vr as l,Mo as m,Eo as n,Fs as o,vo as p,Io as q,wo as r,jo as s,Pt as w};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e}from"./index-
|
|
1
|
+
import{j as e}from"./index-CzVeWScw.js";function c({context:l,selection:a,attached:n,onToggleSelection:i}){return l.length===0?null:e.jsxs("div",{className:"s-newchat-origin",children:[e.jsx("span",{className:"label-md s-newchat-origin-label",children:"From"}),e.jsx("dl",{className:"s-newchat-origin-facts",children:l.map(s=>e.jsxs("div",{className:"s-newchat-origin-fact",children:[e.jsx("dt",{children:s.label}),e.jsx("dd",{title:s.value,children:s.value})]},s.label))}),a?e.jsx("button",{type:"button",className:"s-newchat-origin-attach","aria-pressed":n,onClick:i,children:n?"Remove selection":`Attach selection (${a.length} chars)`}):null]})}export{c as NewChatOrigin};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as o,j as e}from"./index-CzVeWScw.js";import{a as v}from"./api-h5zurxmi.js";import{d as b,S as u}from"./SessionObserve-BmmJ8dEh.js";import{u as h}from"./sse-QcU9bikk.js";import{f as x}from"./time-Dhsh_2EG.js";import{SessionObserveEmbedStatus as f}from"./SessionObserveEvidence-CEedIk2a.js";import{E as c}from"./external-link-CnaI1QFS.js";import"./bash-format-BRV5C6Gv.js";import"./tail-display-BRcJltQa.js";import"./lane-edit-display-C_Aujldz.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-DrPXYZvQ.js";import"./index-Dewd56RX.js";import"./lane-observe-BA3g9aVd.js";import"./lane-ask-display-B6iCAVcd.js";import"./colors-BtO5_zlx.js";import"./mentions-fbQJ2mBI.js";import"./Provider-DSsb2gLR.js";import"./router-B-K15T7B.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-C3qU8tnY.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-N-Z6X0Z1.js";import"./DocumentFocusViewer-BCG2kOmd.js";import"./createLucideIcon-ClCdc3F9.js";import"./TextDocumentSurface-DRjctOIt.js";/* empty css */import"./file-text-DG-pufl1.js";import"./x-D4X_y1j_.js";import"./chevron-right-CNE6QAVr.js";import"./code-xml--LjSM4Mv.js";import"./arrow-left-_vS7itsV.js";import"./scout-voice-S5_YZ2v8.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BJnFoFDP.js";import"./MessageComposerSuggestions-Cs9u-F_3.js";import"./NewChatComposer-DXDxV2Mh.js";import"./runtime-picker-BCQD7d4K.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-Byb9kSFx.js";import"./HarnessMark-BE-YSyci.js";import"./conversation-model-CHwHZNw-.js";import"./NewChatOrigin-CnjoswTG.js";import"./model-Co0zkMIc.js";import"./text-DsBWV_4k.js";import"./chevron-down-DRCbnzyY.js";import"./search-C3bSJluv.js";import"./chunk-HRAB3GC3-CAeEKaf5.js";import"./AgentDetailCard-sZuHl1de.js";import"./AgentLiveActions-DI4ooSHW.js";import"./terminal-takeover-KvmTwABa.js";import"./openContent-C6XO6kr5.js";import"./eye-BFlhMzQL.js";import"./terminal-DrTkVXIj.js";import"./message-markup-mGF07emJ.js";import"./ObservedTopologyPanel-C1AQM0Mq.js";import"./ObserveTextFlow-DJxQc2H6.js";import"./use-reduced-motion-Dla-G_Jz.js";import"./message-circle-aGOfQWm2.js";import"./wrench-CeCdjiPF.js";import"./index-BWHgHrtv.js";const j=2500,g=240,N=5;function I({ask:r,sessionId:s}){const[i,p]=o.useState(!1);if(!r)return e.jsxs("section",{className:"s-observe-embed-ask s-observe-embed-ask--unknown",children:[e.jsx("div",{className:"s-observe-embed-ask-kicker",children:"Ask"}),e.jsx("div",{className:"s-observe-embed-ask-unknown",children:"Not available for this observed session."})]});const m=r.task.length>g||r.task.split(`
|
|
2
|
+
`).length>N,n=r.conversationId?`/messages/${encodeURIComponent(r.conversationId)}${r.messageId?`#msg-${encodeURIComponent(r.messageId)}`:""}`:null,d=`/flights/${encodeURIComponent(r.flightId)}/observe${s?`?session=${encodeURIComponent(s)}`:""}`;return e.jsxs("section",{className:"s-observe-embed-ask",children:[e.jsxs("div",{className:"s-observe-embed-ask-head",children:[e.jsxs("div",{children:[e.jsx("div",{className:"s-observe-embed-ask-kicker",children:"Ask"}),e.jsxs("div",{className:"s-observe-embed-ask-byline",children:[e.jsx("span",{children:r.requesterName}),e.jsx("span",{"aria-hidden":"true",children:"·"}),e.jsx("time",{dateTime:new Date(r.requestedAt).toISOString(),children:x(r.requestedAt)})]})]}),e.jsxs("nav",{className:"s-observe-embed-ask-links","aria-label":"Run provenance",children:[n&&e.jsxs("a",{href:n,target:"_top",children:["Origin ",e.jsx(c,{size:11,"aria-hidden":"true"})]}),e.jsxs("a",{href:d,target:"_top",children:["Flight ",e.jsx(c,{size:11,"aria-hidden":"true"})]})]})]}),e.jsx("div",{className:`s-observe-embed-ask-body${i?" is-expanded":""}`,children:r.task}),m&&e.jsx("button",{type:"button",className:"s-observe-embed-ask-toggle","aria-expanded":i,onClick:()=>p(t=>!t),children:i?"Show less":"Show full ask"})]})}function _e({agentId:r}){const[s,i]=o.useState(null),[p,m]=o.useState(!0),[n,d]=o.useState(null),t=o.useCallback(async(l=!1)=>{l||m(!0),d(null);try{const a=await v(`/api/agents/${encodeURIComponent(r)}/observe`);i(a)}catch(a){l||i(null),d(a instanceof Error?a.message:String(a))}finally{m(!1)}},[r]);return o.useEffect(()=>{t();const l=window.setInterval(()=>{t(!0)},j);return()=>window.clearInterval(l)},[t]),h(()=>{t(!0)}),n&&!s?e.jsx("div",{className:"s-observe-embed-page",children:e.jsxs("div",{className:"s-observe-embed-empty",children:[e.jsx("div",{className:"s-observe-embed-empty-title",children:"Observe unavailable"}),e.jsx("div",{className:"s-observe-embed-empty-detail",children:n})]})}):p&&!s?e.jsx("div",{className:"s-observe-embed-page",children:e.jsxs("div",{className:"s-observe-embed-empty",children:[e.jsx("div",{className:"s-observe-embed-empty-title",children:"Resolving trace"}),e.jsx("div",{className:"s-observe-embed-empty-detail",children:r})]})}):e.jsxs("div",{className:"s-observe-embed-page",children:[s&&e.jsxs(e.Fragment,{children:[e.jsx(f,{source:s.source,fidelity:s.fidelity,sessionId:s.sessionId,evidence:b({source:s.source,fidelity:s.fidelity,live:s.data.live,eventCount:s.data.events.length})}),e.jsx(I,{ask:s.initiatingAsk,sessionId:s.sessionId})]}),e.jsx(u,{data:s?.data,agentId:r,sessionId:s?.sessionId,showRail:!1,observeSource:s?.source,observeFidelity:s?.fidelity})]})}export{I as InitiatingAsk,_e as ObserveEmbedScreen};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/conversation-motion-features-
|
|
2
|
-
import{r as n,j as e,_ as b}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/conversation-motion-features-T8vF9zED.js","assets/gestures-CxG3Dphs.js","assets/index-CzVeWScw.js","assets/index-9as_JTUs.css","assets/use-reduced-motion-Dla-G_Jz.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as n,j as e,_ as b}from"./index-CzVeWScw.js";import{l as p}from"./lane-observe-BA3g9aVd.js";import{C as f}from"./chevron-down-DRCbnzyY.js";import{u as h,L as g,m as x}from"./use-reduced-motion-Dla-G_Jz.js";import"./time-Dhsh_2EG.js";import"./tail-display-BRcJltQa.js";import"./lane-edit-display-C_Aujldz.js";import"./createLucideIcon-ClCdc3F9.js";const j=420,N=()=>b(()=>import("./conversation-motion-features-T8vF9zED.js"),__vite__mapDeps([0,1,2,3,4])).then(t=>t.default);function R({text:t}){const s=h(),[o,i]=n.useState(!0),r=n.useRef(null);return n.useEffect(()=>(i(!0),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>i(!1),j),()=>{r.current&&clearTimeout(r.current)}),[t]),e.jsx(g,{features:N,strict:!0,children:e.jsx(x.span,{className:"s-observe-stream-cursor","data-receiving":o||void 0,"aria-hidden":"true",initial:!1,animate:s||o?{opacity:1}:{opacity:[1,.28,1]},transition:s||o?{duration:.12}:{duration:1.05,ease:"linear",repeat:1/0}})})}function k({text:t,live:s,compact:o=!1,copyControl:i}){const r=n.useId(),c=t.trim(),[a,d]=n.useState(s),u=n.useRef(s);n.useEffect(()=>{s?d(!0):u.current&&d(!1),u.current=s},[s]);const l=p(c,o?120:168,1),m=e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"s-observe-reasoning-state",children:[e.jsx("span",{className:"s-observe-reasoning-dot","aria-hidden":"true"}),s?"Thinking":"Reasoning"]}),!s&&!a&&l?e.jsx("span",{className:"s-observe-reasoning-preview",title:c,children:l}):null,s?null:e.jsx(f,{className:"s-observe-reasoning-chevron",size:12,strokeWidth:1.8,"aria-hidden":"true"})]});return e.jsxs("div",{className:["s-observe-block","s-observe-reasoning",o&&"s-observe-reasoning--compact",s&&"s-observe-reasoning--live",a&&"s-observe-reasoning--open"].filter(Boolean).join(" "),"aria-busy":s||void 0,children:[s?e.jsx("div",{className:"s-observe-reasoning-header",role:"status",children:m}):e.jsx("button",{type:"button",className:"s-observe-reasoning-header s-observe-reasoning-header--button","aria-expanded":a,"aria-controls":r,"aria-label":a?"Hide reasoning":"Show reasoning",onClick:()=>d(v=>!v),children:m}),e.jsx("div",{id:r,className:"s-observe-reasoning-body","aria-hidden":!a,inert:a?void 0:!0,children:e.jsx("div",{className:"s-observe-reasoning-body-clip",children:e.jsxs("div",{className:"s-observe-reasoning-body-inner",children:[e.jsxs("div",{className:"s-observe-reasoning-text",children:[c,s?e.jsx(R,{text:c}):null]}),i?e.jsx("div",{className:"s-observe-reasoning-tools",children:i}):null]})})})]})}export{k as ObserveReasoningDisclosure,R as ObserveStreamCursor};
|
package/dist/client/assets/{ObservedTopologyPanel-DyUeV98H.js → ObservedTopologyPanel-C1AQM0Mq.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as x,j as t}from"./index-
|
|
1
|
+
import{r as x,j as t}from"./index-CzVeWScw.js";import{a as I}from"./api-h5zurxmi.js";import{a as w}from"./time-Dhsh_2EG.js";function A(e){if(!e)return null;const o=Date.parse(e);return Number.isFinite(o)?o:null}function S(e){return e?e.length<=12?e:e.slice(0,12):null}function R(e){return e.includes("workflow")?"Claude workflows":e.includes("codex")?"Codex":e.includes("claude")?"Claude Code":e.replace(/[-_]/g," ")}function T(e){const o=[];return e.workerCount>0&&o.push(`${e.workerCount} worker${e.workerCount===1?"":"s"}`),e.eventCount>0?o.push(`${e.eventCount} event${e.eventCount===1?"":"s"}`):e.taskCount>0&&o.push(`${e.completedTaskCount}/${e.taskCount} tasks`),o.join(" · ")}function $(e){const o=[e.label];e.description&&o.push(e.description);const n=T(e);return n&&o.push(n),e.parentSessionId&&o.push(`Parent session ${e.parentSessionId}`),o.join(`
|
|
2
2
|
`)}function k(e){return e.name??S(e.externalSessionId)??e.id.replace(/^.*:/,"")}function W(e){return e.status??e.role??e.type??"observed"}function j(e,o){const n=e?.[o];return typeof n=="string"&&n.trim()?n.trim():null}function F(e,o){const n=e?.[o];return typeof n=="number"&&Number.isFinite(n)?n:null}function C(e){return j(e,"claudeWorkflowRunId")??j(e,"workflowRunId")}function P(e,o,n){return o.filter(a=>a.kind==="spawned"&&a.toId===e.id).map(a=>n.get(a.fromId)).filter(a=>!!a).map(k)}function B(e,o){return o.find(n=>n.assigneeId===e.id)??null}function D(e,o){return C(e.providerMeta)===o||e.id.includes(o)}function E(e,o){return C(e.providerMeta)===o||e.id.includes(o)}function q(e){const o=j(e.providerMeta,"latestTimestamp");if(!o)return null;const n=Date.parse(o);return Number.isFinite(n)?n:null}function G(e,o){return e.some(n=>n.state&&b(n.state)===0)||o.some(n=>n.status&&b(n.status)===0)?"running":e.some(n=>n.state==="failed"||n.state==="error")||o.some(n=>n.status==="failed"||n.status==="error")?"failed":e.length>0&&e.every(n=>n.state==="completed"||n.state==="done")||o.length>0&&o.every(n=>n.status==="completed"||n.status==="done")?"completed":e.length>0?"observed":"workflow"}function M(e,o){return e.groups.filter(a=>a.kind==="workflow").map(a=>{const c=C(a.providerMeta)??a.id,d=e.tasks.filter(r=>D(r,c)),m=e.agents.filter(r=>r.role!=="lead"&&E(r,c)),u=d.filter(r=>r.state!=="completed"&&r.state!=="done"),f=d.filter(r=>r.state==="completed"||r.state==="done"),p=m.map(q).filter(r=>!!r).sort((r,h)=>h-r)[0]??null,g=m.reduce((r,h)=>r+(F(h.providerMeta,"eventCount")??0),0),v=(u.length>0?u:d).slice(0,3);return{id:a.id,label:a.name??c,description:j(a.providerMeta,"description"),runId:c,parentSessionId:j(a.providerMeta,"parentSessionId"),status:G(d,m),workerCount:m.length,taskCount:d.length,activeTaskCount:u.length,completedTaskCount:f.length,eventCount:g,latestAt:p??o,taskPreview:v}}).sort((a,c)=>{const d=(c.activeTaskCount>0?1:0)-(a.activeTaskCount>0?1:0);return d!==0?d:(c.latestAt??0)-(a.latestAt??0)||a.label.localeCompare(c.label)})}function b(e){return e==="running"||e==="in_progress"||e==="working"?0:e==="queued"||e==="pending"||e==="materialized"?1:e==="failed"||e==="error"?2:e==="completed"||e==="done"?3:4}function H(e){return e?e.observations.map(o=>({source:o.source,observedAt:A(o.observedAt),topology:o.topology})):[]}function K({topology:e,sessionId:o,size:n="full",title:a="Internal topology",maxAgents:c=n==="rail"?5:8,maxTasks:d=n==="rail"?3:5,showEmpty:m=!1}){const[u,f]=x.useState(null),[p,g]=x.useState(!1);x.useEffect(()=>{if(e)return;let i=!1;const s=o?`?sessionId=${encodeURIComponent(o)}`:"";return I(`/api/topology/snapshot${s}`).then(l=>{i||(f(l),g(!1))}).catch(()=>{i||g(!0)}),()=>{i=!0}},[o,e]);const v=x.useMemo(()=>e?[{source:e.source,observedAt:A(e.observedAt),topology:e}]:H(u),[u,e]),r=x.useMemo(()=>v.reduce((i,s)=>(i.sources+=1,i.workflows+=s.topology.groups.filter(l=>l.kind==="workflow").length,i.agents+=s.topology.agents.length,i.subagents+=s.topology.agents.filter(l=>l.role==="subagent").length,i.tasks+=s.topology.tasks.length,i.activeTasks+=s.topology.tasks.filter(l=>l.state!=="completed").length,i.spawned+=s.topology.relationships.filter(l=>l.kind==="spawned").length,i),{sources:0,workflows:0,agents:0,subagents:0,tasks:0,activeTasks:0,spawned:0}),[v]),h=n==="rail",y=v.reduce((i,s)=>i+M(s.topology,s.observedAt).filter(l=>l.status==="running").length,0);return v.length===0?!m&&!p?null:t.jsxs("section",{className:`s-observed-topology s-observed-topology--${n}`,children:[!h&&t.jsx("header",{className:"s-observed-topology-head",children:t.jsxs("div",{children:[t.jsx("div",{className:"s-observed-topology-kicker",children:"Harness observed"}),t.jsx("h3",{children:a})]})}),t.jsx("div",{className:"s-observed-topology-empty",children:p?"Topology is unavailable right now.":"No interacted agents observed yet."})]}):t.jsxs("section",{className:`s-observed-topology s-observed-topology--${n}`,children:[h?r.workflows>0&&t.jsxs("div",{className:"s-observed-topology-rail-summary",children:[y>0?`${y} running`:"No active workflows",r.workflows>0&&` · ${r.workflows} total`]}):t.jsxs("header",{className:"s-observed-topology-head",children:[t.jsxs("div",{children:[t.jsx("div",{className:"s-observed-topology-kicker",children:"Harness observed"}),t.jsx("h3",{children:a})]}),t.jsxs("div",{className:"s-observed-topology-counts",children:[r.workflows>0&&t.jsxs("span",{children:[r.workflows," workflows"]}),t.jsxs("span",{children:[r.subagents," workers"]}),t.jsxs("span",{children:[r.tasks," tasks"]}),r.activeTasks>0?t.jsxs("span",{children:[r.activeTasks," active"]}):t.jsxs("span",{children:[r.spawned," spawn links"]})]})]}),t.jsx("div",{className:"s-observed-topology-sources",children:v.map(i=>t.jsx(O,{source:i,maxAgents:c,maxTasks:d,size:n},`${i.source}:${i.topology.observedAt}`))})]})}function L({workflow:e}){const o=T(e);return t.jsxs("div",{className:`s-observed-topology-rail-row s-observed-topology-rail-row--${e.status}`,title:$(e),children:[t.jsx("span",{className:`s-observed-topology-rail-dot s-observed-topology-rail-dot--${e.status}`,"aria-label":e.status}),t.jsx("span",{className:"s-observed-topology-rail-name",children:e.label}),o&&t.jsx("span",{className:"s-observed-topology-rail-stats",children:o})]})}function O({source:e,maxAgents:o,maxTasks:n,size:a="full"}){const c=a==="rail",{topology:d}=e,m=new Map(d.agents.map(s=>[s.id,s])),u=M(d,e.observedAt),f=u.slice(0,o),p=u.length-f.length,g=(s,l)=>b(s.status)-b(l.status)||k(s).localeCompare(k(l)),v=d.agents.filter(s=>s.role==="subagent").sort(g),r=d.agents.filter(s=>s.role==="lead").sort(g),h=d.agents.filter(s=>s.role!=="subagent"&&s.role!=="lead").sort(g),y=[...r,...v,...h].slice(0,o),i=d.tasks.filter(s=>s.state!=="completed").sort((s,l)=>b(s.state)-b(l.state)||(s.title??s.id).localeCompare(l.title??l.id)).slice(0,n);return t.jsxs("div",{className:"s-observed-topology-source",children:[!c&&t.jsxs("div",{className:"s-observed-topology-source-head",children:[t.jsx("span",{children:R(e.source)}),t.jsx("span",{children:w(e.observedAt)||"observed"})]}),u.length>0?c?t.jsxs("div",{className:"s-observed-topology-rail-list",children:[f.map(s=>t.jsx(L,{workflow:s},s.id)),p>0&&t.jsxs("div",{className:"s-observed-topology-rail-more",children:["+",p," more workflow",p===1?"":"s"]})]}):t.jsxs("div",{className:"s-observed-topology-workflow-list",children:[f.map(s=>t.jsxs("div",{className:"s-observed-topology-workflow",children:[t.jsxs("div",{className:"s-observed-topology-workflow-main",children:[t.jsx("span",{className:`s-observed-topology-workflow-state s-observed-topology-workflow-state--${s.status}`,children:s.status}),t.jsx("span",{className:"s-observed-topology-workflow-name",title:$(s),children:s.label}),t.jsx("span",{className:"s-observed-topology-workflow-age",children:w(s.latestAt)||"observed"})]}),t.jsxs("div",{className:"s-observed-topology-workflow-meta",children:[t.jsxs("span",{children:[s.workerCount," workers"]}),s.taskCount>0&&t.jsxs("span",{children:[s.completedTaskCount,"/",s.taskCount," tasks"]}),s.eventCount>0&&t.jsxs("span",{children:[s.eventCount," events"]}),s.parentSessionId&&t.jsxs("span",{children:["parent ",S(s.parentSessionId)]})]}),s.description&&t.jsx("div",{className:"s-observed-topology-workflow-description",children:s.description}),s.taskPreview.length>0&&t.jsx("div",{className:"s-observed-topology-workflow-tasks",children:s.taskPreview.map(l=>t.jsx("span",{children:l.title??l.id.replace(/^.*:/,"")},l.id))})]},s.id)),p>0&&t.jsxs("div",{className:"s-observed-topology-more",children:[p," more workflow",p===1?"":"s"]})]}):t.jsx("div",{className:"s-observed-topology-agent-list",children:y.map(s=>{const l=P(s,d.relationships,m),N=B(s,d.tasks);return t.jsxs("div",{className:"s-observed-topology-agent",children:[t.jsxs("div",{className:"s-observed-topology-agent-main",children:[t.jsx("span",{className:`s-observed-topology-agent-role s-observed-topology-agent-role--${s.role??"observed"}`,children:s.role??"observed"}),t.jsx("span",{className:"s-observed-topology-agent-name",children:k(s)}),t.jsx("span",{className:"s-observed-topology-agent-status",children:W(s)})]}),(l.length>0||N?.title)&&t.jsxs("div",{className:"s-observed-topology-agent-detail",children:[l.length>0&&t.jsxs("span",{children:["spawned by ",l.join(", ")]}),N?.title&&t.jsx("span",{children:N.title})]})]},s.id)})}),u.length===0&&i.length>0&&t.jsx("div",{className:"s-observed-topology-task-list",children:i.map(s=>t.jsxs("div",{className:"s-observed-topology-task",children:[t.jsx("span",{children:s.state??"task"}),t.jsx("strong",{children:s.title??s.id.replace(/^.*:/,"")})]},s.id))})]})}export{K as O};
|