@openscout/scout 0.2.75 → 0.2.78
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 +41 -2
- package/bin/openscout-runtime.mjs +48 -30
- package/bin/scout.mjs +2 -2
- package/bin/scoutd +0 -0
- package/dist/build-manifest.json +3 -3
- package/dist/client/assets/ActivityScreen-Cu_1V4bq.js +1 -0
- package/dist/client/assets/AddProjectForm-DMnobKch.js +1 -0
- package/dist/client/assets/AgentAvatar-D90c1Rzk.js +1 -0
- package/dist/client/assets/AgentConfigurationScreen-BqfOz90D.js +1 -0
- package/dist/client/assets/AgentDefinitionsWorkspace-CUpUrY57.js +1 -0
- package/dist/client/assets/AgentDetailCard-BcRBRp88.js +1 -0
- package/dist/client/assets/AgentDetailCard-C4WVeJvJ.css +1 -0
- package/dist/client/assets/AgentFloorView-8LoAEBwS.js +1 -0
- package/dist/client/assets/AgentInfoScreen-DZs2_ibL.js +1 -0
- package/dist/client/assets/AgentLaneCard-RrNnDZu8.js +1 -0
- package/dist/client/assets/AgentLaneChrome-D9ZwUKrl.js +1 -0
- package/dist/client/assets/AgentLaneDetailSheet-BXbPls9N.js +5 -0
- package/dist/client/assets/AgentLaneSummaryResize-BhFmGNzT.js +1 -0
- package/dist/client/assets/AgentLanesEmbedScreen-W3qs022h.js +1 -0
- package/dist/client/assets/AgentLanesPreflight-eSAoDsPi.js +1 -0
- package/dist/client/assets/AgentLanesView-B9vuEEmZ.js +2 -0
- package/dist/client/assets/AgentLiveActions-CGS-Bxb7.css +1 -0
- package/dist/client/assets/AgentLiveActions-DBtnD0qE.js +1 -0
- package/dist/client/assets/AgentSessions-DyqOf4nG.js +6 -0
- package/dist/client/assets/AgentsConsole-BgiYP2wR.js +1 -0
- package/dist/client/assets/AgentsConsole-BjSTs-TV.css +1 -0
- package/dist/client/assets/AgentsScreen-DBi8x4MB.js +1 -0
- package/dist/client/assets/AgentsSubnav-DIEO4NPx.js +1 -0
- package/dist/client/assets/AtopView-BCkae3e1.js +1 -0
- package/dist/client/assets/BackToPicker-BRvfostO.js +1 -0
- package/dist/client/assets/BackToPicker-CdgVu-to.css +1 -0
- package/dist/client/assets/BriefingDetailScreen-BwFyysT8.js +6 -0
- package/dist/client/assets/BriefingsScreen-BQEevztH.js +1 -0
- package/dist/client/assets/BrokerMetadataPanel-7UjcuNjd.js +1 -0
- package/dist/client/assets/BrokerScreen-7ekklu88.js +5 -0
- package/dist/client/assets/ChatCollapsedStrip-CQSYSd8s.js +1 -0
- package/dist/client/assets/CodeDiffPane-DDPt6KPh.js +1 -0
- package/dist/client/assets/CodeProjectPicker-DqKFCpLU.js +2 -0
- package/dist/client/assets/CodeScreen-BxCrpRHd.js +1 -0
- package/dist/client/assets/ContextMenu-bARZqTzD.js +1 -0
- package/dist/client/assets/ConversationComposer-Bla3DDvM.js +1 -0
- package/dist/client/assets/ConversationFeedRows-B_gPxcqA.js +1 -0
- package/dist/client/assets/ConversationHeader-DE3FC0m-.js +1 -0
- package/dist/client/assets/ConversationPanels-DLek4H6A.js +2 -0
- package/dist/client/assets/ConversationScreen-BDRhx-RU.js +1 -0
- package/dist/client/assets/ConversationScreen-C9yMAMYF.css +1 -0
- package/dist/client/assets/ConversationStatus-BwVLiiO4.js +1 -0
- package/dist/client/assets/DataTable-E8s_MmoA.js +1 -0
- package/dist/client/assets/DispatchAftermath-Dpe88DFX.js +1 -0
- package/dist/client/assets/DocumentFocusViewer-BeVwwl26.js +1 -0
- package/dist/client/assets/EmbeddableSurfacesLab-BQqFQVnI.js +1 -0
- package/dist/client/assets/EmptyState-4F9XDFQm.js +1 -0
- package/dist/client/assets/FileViewerPane-CLgUhSm4.js +3 -0
- package/dist/client/assets/FleetSearch-Dz5euQJe.js +1 -0
- package/dist/client/assets/FleetSearch-EXOe8ulE.css +1 -0
- package/dist/client/assets/FlightObserveScreen-6RpZYwVz.js +1 -0
- package/dist/client/assets/FollowScreen-DZ4qfYOY.js +1 -0
- package/dist/client/assets/HarnessMark-Cbv3Ib0c.js +1 -0
- package/dist/client/assets/HarnessesScreen-CznAImej.js +1 -0
- package/dist/client/assets/HomeHero-B3uYd-pP.js +1 -0
- package/dist/client/assets/HomeHero-DEl-WBsT.css +1 -0
- package/dist/client/assets/KnowledgeSearchInspector-Dgdkfvvz.js +1 -0
- package/dist/client/assets/KnowledgeSearchScreen-DJDGGaqC.js +1 -0
- package/dist/client/assets/LaneToolHoverCard-Bla0gBdm.js +1 -0
- package/dist/client/assets/LaneTraceDetailSheet-D1CspRbl.js +1 -0
- package/dist/client/assets/LaneTraceEventFocus-BF9ERP5O.js +1 -0
- package/dist/client/assets/MeshCanvas-DFEPkpqY.js +3 -0
- package/dist/client/assets/MeshCanvasMinimap-CyVFYixr.js +1 -0
- package/dist/client/assets/MeshCanvasMinimap-Dv7nMbl5.css +1 -0
- package/dist/client/assets/MeshScreen-DFgevn8N.js +1 -0
- package/dist/client/assets/MeshTopologyView-CalkZghg.js +2 -0
- package/dist/client/assets/MessageComposerSuggestions-DpxN9WiB.js +1 -0
- package/dist/client/assets/MessagesScreen-C8YKW10Y.js +1 -0
- package/dist/client/assets/MissionControlView-lUeAiSVg.js +1 -0
- package/dist/client/assets/MissionFocusOverlay-wlCmWDCT.js +1 -0
- package/dist/client/assets/MissionLeftAgentRow-BpZWntfl.js +1 -0
- package/dist/client/assets/MissionLogPane-__MVtEl9.js +1 -0
- package/dist/client/assets/NewAgentModal-Bg-eWHpY.js +1 -0
- package/dist/client/assets/NewAgentModal-ru8u5YdJ.css +1 -0
- package/dist/client/assets/NewChatComposer-Cs6OsxK6.js +19 -0
- package/dist/client/assets/NewChatComposer-W-t-L4oV.css +1 -0
- package/dist/client/assets/NewChatOrigin-Bk2OyVjI.js +1 -0
- package/dist/client/assets/ObserveEmbedScreen-y2EpuqRZ.js +2 -0
- package/dist/client/assets/ObserveTextFlow-rsFj_rVo.js +2 -0
- package/dist/client/assets/ObservedTopologyPanel-BsBsvVPL.css +1 -0
- package/dist/client/assets/ObservedTopologyPanel-DyUeV98H.js +2 -0
- package/dist/client/assets/OpenScoutAppShell-Bh6FnEJO.css +1 -0
- package/dist/client/assets/OpenScoutAppShell-C_URc8sV.js +87 -0
- package/dist/client/assets/OpsAgentsView-UN7iOscs.js +1 -0
- package/dist/client/assets/OpsScreen-Buf3LKjb.js +1 -0
- package/dist/client/assets/OpsSubnav-DsuXzHah.js +1 -0
- package/dist/client/assets/PlanView-C1CjH3PG.js +1 -0
- package/dist/client/assets/ProjectAgentProfile-DJusrAV-.js +1 -0
- package/dist/client/assets/ProjectAgentProfileBar-CtTpj6fU.js +1 -0
- package/dist/client/assets/ProjectAgentProfileHero-BFwNJo_N.js +1 -0
- package/dist/client/assets/ProjectsInbox-GhVMxOhw.js +2 -0
- package/dist/client/assets/ProjectsRail-BgiuV4LR.js +1 -0
- package/dist/client/assets/ProjectsScreen-eNUBy4YU.js +1 -0
- package/dist/client/assets/ProjectsThreadAside-CoBgnHmr.js +1 -0
- package/dist/client/assets/Provider-C7UKGHQy.js +1 -0
- package/dist/client/assets/Provider-CCzjtkda.css +1 -0
- package/dist/client/assets/RailRow-BoGxAHNF.js +1 -0
- package/dist/client/assets/RailRow-Cf9LOiEj.css +1 -0
- package/dist/client/assets/RawSessionsTable-DL8y_eEy.js +1 -0
- package/dist/client/assets/RealtimeVoiceScreen-ffS-39zy.js +1 -0
- package/dist/client/assets/RepoDiffEmbedScreen-C0rumUME.js +1 -0
- package/dist/client/assets/RepoDiffPageScreen-DMv6DioL.js +1 -0
- package/dist/client/assets/RepoDiffViewer-D_exm6xK.js +7 -0
- package/dist/client/assets/RepoDiffViewerLazy-BPgF92Bg.js +2 -0
- package/dist/client/assets/ReposScreen-CB_YBWYf.js +6 -0
- package/dist/client/assets/ScoutDeckSurface-CxIYFyWx.js +1 -0
- package/dist/client/assets/ScoutDeckSurface-uhmuZRzC.css +1 -0
- package/dist/client/assets/ScoutSurface-CYz_TcWC.js +1 -0
- package/dist/client/assets/ScoutbotBroadcastChip-CxtYZWPZ.css +1 -0
- package/dist/client/assets/ScoutbotBroadcastChip-L_R9atj0.js +2 -0
- package/dist/client/assets/ScoutbotFxLab-CgiZMDMW.js +4 -0
- package/dist/client/assets/ScoutbotRealtimeVoiceCall-FMQOr1Np.js +1 -0
- package/dist/client/assets/SecondaryNav-B3-nh5dM.js +1 -0
- package/dist/client/assets/SessionEmbedScreen-BVC7yvWF.js +1 -0
- package/dist/client/assets/SessionObserve-BpggNO_M.css +1 -0
- package/dist/client/assets/SessionObserve-yfXFafp8.js +12 -0
- package/dist/client/assets/SessionRefScreen-DRgJu7Jo.js +1 -0
- package/dist/client/assets/SessionsScreen-D6XUsZfA.js +1 -0
- package/dist/client/assets/SettingsDrawer-CmJt72ww.css +1 -0
- package/dist/client/assets/SettingsDrawer-XfdAa_nD.js +3 -0
- package/dist/client/assets/SettingsScreen-Cy8z-EuR.js +1 -0
- package/dist/client/assets/ShikiPane-Ap1iPxYb.js +15 -0
- package/dist/client/assets/SlidePanel-Bg5dVaIa.css +1 -0
- package/dist/client/assets/SlidePanel-COwtoJqR.js +1 -0
- package/dist/client/assets/SpriteAvatar-DyaGuhik.js +1 -0
- package/dist/client/assets/StatusPill-DhBL__p8.js +1 -0
- package/dist/client/assets/TailView-DGj_5HA9.js +2 -0
- package/dist/client/assets/TailView-Mj3AU2u0.css +1 -0
- package/dist/client/assets/Terminal-CqvGbjXU.js +1 -0
- package/dist/client/assets/TerminalEmbedScreen-DuZZFFzW.js +1 -0
- package/dist/client/assets/TextDocumentSurface-BpAw4eQS.js +4 -0
- package/dist/client/assets/TmuxPeek-m1osv33Q.js +1 -0
- package/dist/client/assets/VoicePermissionsPanel-DsK53ar4.js +1 -0
- package/dist/client/assets/VoicePermissionsPanel-RijAZ1gP.css +1 -0
- package/dist/client/assets/WorkDetailScreen-Bx0JimPC.js +5 -0
- package/dist/client/assets/WorkFilesViewer-Btl6C2Q1.js +1 -0
- package/dist/client/assets/activity-CA8qS6PI.js +1 -0
- package/dist/client/assets/{addon-fit-3IrvLm2n.js → addon-fit-BZ-kXjeN.js} +1 -1
- package/dist/client/assets/{addon-webgl-BgxIDUI-.js → addon-webgl-D9-EQVEK.js} +1 -1
- package/dist/client/assets/agent-chat-Bfjd9y6c.js +1 -0
- package/dist/client/assets/agent-definitions-CymTYqvo.css +1 -0
- package/dist/client/assets/agent-directory-studio-injection-Bc8590z5.css +1 -0
- package/dist/client/assets/agent-essentials-BSY1o46q.js +1 -0
- package/dist/client/assets/agent-floor-CuJr1iK1.css +1 -0
- package/dist/client/assets/agent-lane-card-Dm7YWoew.css +1 -0
- package/dist/client/assets/agent-lane-card-model-r2frk57c.js +1 -0
- package/dist/client/assets/agent-lane-detail-Djm3YJEa.js +1 -0
- package/dist/client/assets/agent-lane-preview-CmHVe3dU.js +4 -0
- package/dist/client/assets/agent-lanes-BDNktFBZ.css +1 -0
- package/dist/client/assets/agent-lanes-model-B4YTt4OF.js +2 -0
- package/dist/client/assets/agents-detail-redesign-h34ROjOW.css +1 -0
- package/dist/client/assets/agents-project-COzHxZAF.css +1 -0
- package/dist/client/assets/agents-project-model-UYiamtrU.js +1 -0
- package/dist/client/assets/agents-screen-BMu6PpRY.css +1 -0
- package/dist/client/assets/api-BkjHJfgJ.js +1 -0
- package/dist/client/assets/api-h5zurxmi.js +1 -0
- package/dist/client/assets/{arc.es-Bh8P_xre.js → arc.es-CQBb-dVu.js} +1 -1
- package/dist/client/assets/arrow-down-BPLe0am9.js +1 -0
- package/dist/client/assets/arrow-left-DEZzHiPS.js +1 -0
- package/dist/client/assets/arrow-up-right-ClxBnsi7.js +1 -0
- package/dist/client/assets/bash-format-BRV5C6Gv.js +1 -0
- package/dist/client/assets/bot-eu8pBNvI.js +1 -0
- package/dist/client/assets/briefings-BwuAFQK6.css +1 -0
- package/dist/client/assets/broker-display-pp33bLsu.js +2 -0
- package/dist/client/assets/cache-Dr0why2k.js +2 -0
- package/dist/client/assets/check-DjgFiBxb.js +1 -0
- package/dist/client/assets/chevron-down-BGk5qoEw.js +1 -0
- package/dist/client/assets/chevron-right-XiIHsk4m.js +1 -0
- package/dist/client/assets/chunk-T65CQEWV-CrzwSeEt.js +1 -0
- package/dist/client/assets/chunk-YOZR3KYS-Bet8khjg.js +47 -0
- package/dist/client/assets/clipboard-e3fSpeo7.js +1 -0
- package/dist/client/assets/code-screen-DrKinCyh.css +1 -0
- package/dist/client/assets/code-xml-B6jOCM4V.js +1 -0
- package/dist/client/assets/collapsed-strip-Dz-of2SM.css +1 -0
- package/dist/client/assets/colors-BtO5_zlx.js +1 -0
- package/dist/client/assets/console-B1IBqLI_.css +1 -0
- package/dist/client/assets/content-BDt9VBPk.js +1 -0
- package/dist/client/assets/content-BIXf4cKR.js +1 -0
- package/dist/client/assets/content-BLm0NBJM.js +1 -0
- package/dist/client/assets/content-C2EwTb2y.js +1 -0
- package/dist/client/assets/content-C5UbLsDF.js +1 -0
- package/dist/client/assets/content-CHU0wwA3.css +1 -0
- package/dist/client/assets/content-CR3vdrYY.js +1 -0
- package/dist/client/assets/content-CSPVmo2s.js +1 -0
- package/dist/client/assets/content-C_FGqx1X.js +1 -0
- package/dist/client/assets/content-CvlVUOG8.js +1 -0
- package/dist/client/assets/content-D5kJmfgl.js +1 -0
- package/dist/client/assets/content-DTpQsomG.js +1 -0
- package/dist/client/assets/content-DikVsqLf.js +1 -0
- package/dist/client/assets/content-DlUe5Ono.js +1 -0
- package/dist/client/assets/content-GIBv_55n.js +1 -0
- package/dist/client/assets/content-Q2oclDzi.js +1 -0
- package/dist/client/assets/context-budget-CbB4BDcO.js +1 -0
- package/dist/client/assets/conversation-icons-IIG5ha6D.js +1 -0
- package/dist/client/assets/conversation-model-B47vYmWN.js +1 -0
- package/dist/client/assets/conversation-motion-features-BdAONVls.js +1 -0
- package/dist/client/assets/conversation-prefs-DNre-Lcx.js +1 -0
- package/dist/client/assets/copy-CQGYbxdu.js +1 -0
- package/dist/client/assets/createLucideIcon-OpA4Amw5.js +1 -0
- package/dist/client/assets/ctx-panel-B4s49N9e.css +1 -0
- package/dist/client/assets/discover-C1YwpBDE.js +2 -0
- package/dist/client/assets/document-focus-viewer-BSC_JwVE.css +1 -0
- package/dist/client/assets/embed-entry-BAcGL3g9.js +2 -0
- package/dist/client/assets/external-link-CXBytO9o.js +1 -0
- package/dist/client/assets/eye-0PvebX_a.js +1 -0
- package/dist/client/assets/file-text-BODxCjcz.js +1 -0
- package/dist/client/assets/flight-observe-GFg9L8ft.css +1 -0
- package/dist/client/assets/follow-route-BvcGtBIL.js +1 -0
- package/dist/client/assets/fx-z37u1o2z.js +1 -0
- package/dist/client/assets/gestures-CcwOTu8C.js +1 -0
- package/dist/client/assets/harnesses-screen-DBZoTZz8.css +1 -0
- package/dist/client/assets/home-live-action-B22u89j7.js +1 -0
- package/dist/client/assets/home-moving-signal-CAa0V91u.css +1 -0
- package/dist/client/assets/home-moving-signal-CK147hxn.js +1 -0
- package/dist/client/assets/home-now-card-BgvNWuea.js +1 -0
- package/dist/client/assets/home-now-card-nano-BcjnOU9H.js +1 -0
- package/dist/client/assets/hooks-B6y_O2FB.js +2 -0
- package/dist/client/assets/hooks-D6NI15f6.css +1 -0
- package/dist/client/assets/inbox-thread-redesign-Bz4FjWzr.css +1 -0
- package/dist/client/assets/index-BWHgHrtv.js +1 -0
- package/dist/client/assets/index-BcuhqXLe.js +1 -0
- package/dist/client/assets/index-CJXzfjo9.js +1 -0
- package/dist/client/assets/index-CvF09yvf.css +1 -0
- package/dist/client/assets/index-DMiGbrBt.js +10 -0
- package/dist/client/assets/index-DQPvraRS.js +1 -0
- package/dist/client/assets/index-DxGoC5l5.css +1 -0
- package/dist/client/assets/inspector-panel-DPoCWxKs.js +2 -0
- package/dist/client/assets/keyboard-nav-2kv_tGUS.js +1 -0
- package/dist/client/assets/knowledge-search-CVxQwxPn.js +1 -0
- package/dist/client/assets/knowledge-search-DjrQdiiW.css +1 -0
- package/dist/client/assets/lane-ask-display-B6iCAVcd.js +18 -0
- package/dist/client/assets/lane-edit-display-C_Aujldz.js +9 -0
- package/dist/client/assets/lane-observe-D0rfKDnU.js +7 -0
- package/dist/client/assets/lane-roster-store-D8x1jac2.js +1 -0
- package/dist/client/assets/lane-tool-detail-0WhMf4Vj.js +9 -0
- package/dist/client/assets/left-Bk3XnxPD.css +1 -0
- package/dist/client/assets/left-C--GiIh8.js +2 -0
- package/dist/client/assets/left-CAaRBK9S.css +1 -0
- package/dist/client/assets/left-CCoobxPS.css +1 -0
- package/dist/client/assets/left-Cj7Rt89X.js +1 -0
- package/dist/client/assets/left-CpNEtFEg.js +1 -0
- package/dist/client/assets/left-CzXAuK_t.js +2 -0
- package/dist/client/assets/left-agents-Bo9sO1by.js +1 -0
- package/dist/client/assets/left-bN4PCAXa.js +1 -0
- package/dist/client/assets/left-default-DV9GdvYi.js +1 -0
- package/dist/client/assets/left-jYYGAOYD.js +1 -0
- package/dist/client/assets/left-lanes-D0l_Co7V.js +1 -0
- package/dist/client/assets/left-mission-Ci7zREkQ.js +1 -0
- package/dist/client/assets/left-mission-DSenPIyb.css +1 -0
- package/dist/client/assets/left-plan-D4U1uflW.js +2 -0
- package/dist/client/assets/library-D-RxGiCw.js +1 -0
- package/dist/client/assets/loader-circle-CbHjZsz1.js +1 -0
- package/dist/client/assets/local-agents--00gLMqr.js +1 -0
- package/dist/client/assets/mentions-jSuTGeet.js +1 -0
- package/dist/client/assets/mesh-buckets-CfAukILK.js +1 -0
- package/dist/client/assets/mesh-screen-BSDUjrnV.css +1 -0
- package/dist/client/assets/mesh-view-store-CWidRbTE.js +1 -0
- package/dist/client/assets/message-circle-CG-96zts.js +1 -0
- package/dist/client/assets/message-markup-3J9pi3nx.js +15 -0
- package/dist/client/assets/message-square-DSaGpjFU.js +1 -0
- package/dist/client/assets/message-visibility-kJM8XcSG.js +1 -0
- package/dist/client/assets/mission-control-D3ikEPND.css +1 -0
- package/dist/client/assets/mission-control-model-C0fByIjm.js +1 -0
- package/dist/client/assets/mission-control-store-BlnEhiCq.js +1 -0
- package/dist/client/assets/model-Co0zkMIc.js +1 -0
- package/dist/client/assets/model-CpAxGuis.js +1 -0
- package/dist/client/assets/observe-CuLGD9Zp.js +1 -0
- package/dist/client/assets/openAgent-Bjt57GdM.js +1 -0
- package/dist/client/assets/openContent-C6XO6kr5.js +1 -0
- package/dist/client/assets/operator-attention-BwSPeheT.js +1 -0
- package/dist/client/assets/ops-agents-BOYxzPTm.css +1 -0
- package/dist/client/assets/ops-atop-BB4B4JdE.css +1 -0
- package/dist/client/assets/ops-screen-giu3If_N.css +1 -0
- package/dist/client/assets/page-status-DpkedE1F.js +1 -0
- package/dist/client/assets/page-status-bar-ByUD7VPM.css +1 -0
- package/dist/client/assets/plan-view-D56fneVF.css +1 -0
- package/dist/client/assets/plus--b1raV_O.js +1 -0
- package/dist/client/assets/profile-CVRziEDA.js +1 -0
- package/dist/client/assets/project-overview-helpers-BQTc_Ous.js +1 -0
- package/dist/client/assets/projects-inbox-CHyUFQ6w.js +1 -0
- package/dist/client/assets/projects-inbox-COZ23dLR.css +1 -0
- package/dist/client/assets/radio-Bz8ZePxj.js +1 -0
- package/dist/client/assets/refresh-cw-BBmAnCB7.js +1 -0
- package/dist/client/assets/repo-diff-C9Qs-bEn.css +1 -0
- package/dist/client/assets/resizable-columns-C7ygvLt8.css +1 -0
- package/dist/client/assets/resolve-panes-r9B3mpW7.js +1 -0
- package/dist/client/assets/resolve-sidebar-context-DcG8xGaB.js +1 -0
- package/dist/client/assets/right-BHeiIaty.js +1 -0
- package/dist/client/assets/right-BkgKo9VT.js +1 -0
- package/dist/client/assets/right-BpEU5jWE.js +1 -0
- package/dist/client/assets/right-CRZXoy-X.js +1 -0
- package/dist/client/assets/right-ChF_pbPy.js +1 -0
- package/dist/client/assets/right-DMoUT3KN.js +1 -0
- package/dist/client/assets/right-DjRXbnRP.js +2 -0
- package/dist/client/assets/right-T4Ue6EqM.js +1 -0
- package/dist/client/assets/right-wzrLXKur.js +1 -0
- package/dist/client/assets/rocket-BSNS_rLs.js +1 -0
- package/dist/client/assets/router-Bq5dwf78.js +1 -0
- package/dist/client/assets/runtime-picker-Bcl5iIX5.js +1 -0
- package/dist/client/assets/runtime-picker-vhm0gtLs.css +1 -0
- package/dist/client/assets/scope-views-4khCg2_z.css +1 -0
- package/dist/client/assets/scope-views-U-ucT9m0.js +1 -0
- package/dist/client/assets/scout-voice-CU5c0LGi.js +1 -0
- package/dist/client/assets/scoutbot-BTIErYHo.js +3 -0
- package/dist/client/assets/scroll-text-D6Pdnar7.js +1 -0
- package/dist/client/assets/search-CWfZtOt2.js +1 -0
- package/dist/client/assets/secondaryNavConfig-DqUIp0Es.js +1 -0
- package/dist/client/assets/secondaryNavConfig-xssF_ubT.css +1 -0
- package/dist/client/assets/selection-bridge-16pk1qyG.js +1 -0
- package/dist/client/assets/send-horizontal-Bg5-QggH.js +1 -0
- package/dist/client/assets/server-CPp4ZJhZ.js +1 -0
- package/dist/client/assets/session-catalog-BmoyVTJ_.js +1 -0
- package/dist/client/assets/session-table-DZcrKoIH.js +1 -0
- package/dist/client/assets/sessionRead-CvFz2RHv.js +1 -0
- package/dist/client/assets/sliders-horizontal-1oW76Xc9.js +1 -0
- package/dist/client/assets/sparkles-ClfRJQ6w.js +1 -0
- package/dist/client/assets/sse-CjIkKo46.js +1 -0
- package/dist/client/assets/status-tone-BM_zuRy1.js +1 -0
- package/dist/client/assets/surface-activity-B1rgWB1i.js +1 -0
- package/dist/client/assets/system-surfaces-redesign-CD26LFc0.css +1 -0
- package/dist/client/assets/tail-display-BdyoLvzY.js +2 -0
- package/dist/client/assets/tail-events-D19uAGe3.js +1 -0
- package/dist/client/assets/terminal-B9AOZQKR.js +1 -0
- package/dist/client/assets/terminal-relay-CWbJ1RCW.js +1 -0
- package/dist/client/assets/terminal-screen-19jAI0Cw.css +1 -0
- package/dist/client/assets/terminal-sessions-D5CIR2OL.js +1 -0
- package/dist/client/assets/terminal-takeover-B8UeD9OX.js +1 -0
- package/dist/client/assets/text-DsBWV_4k.js +1 -0
- package/dist/client/assets/time-DltNTpLl.js +1 -0
- package/dist/client/assets/types-B0PlfpKc.js +1 -0
- package/dist/client/assets/ui-LM8pS8qE.js +1 -0
- package/dist/client/assets/use-conversation-list-Byab41G6.js +1 -0
- package/dist/client/assets/use-fleet-active-asks-BIbQx5AS.js +1 -0
- package/dist/client/assets/use-reduced-motion-RRBkmVkk.js +1 -0
- package/dist/client/assets/useAgentHoverCard-DMrbBif0.js +1 -0
- package/dist/client/assets/useContentSecondaryNav-DMl1WNm7.js +1 -0
- package/dist/client/assets/usePierreRuntime-wC-yMtBb.js +50 -0
- package/dist/client/assets/voice-levels-Dcr3jglk.js +1 -0
- package/dist/client/assets/wrench-Bkc_0lKF.js +1 -0
- package/dist/client/assets/x-D3GElQbe.js +1 -0
- package/dist/client/assets/{xterm-CoGJTxj9.js → xterm-BKR8oAkR.js} +1 -1
- package/dist/client/index.html +6 -3
- package/dist/drizzle/0003_harsh_meltdown.sql +45 -0
- package/dist/drizzle/0004_medical_aaron_stack.sql +40 -0
- package/dist/drizzle/0005_wet_shriek.sql +57 -0
- package/dist/drizzle/0006_woozy_dark_beast.sql +1 -0
- package/dist/drizzle/README.md +7 -0
- package/dist/drizzle/meta/0003_snapshot.json +4952 -0
- package/dist/drizzle/meta/0004_snapshot.json +5235 -0
- package/dist/drizzle/meta/0005_snapshot.json +5599 -0
- package/dist/drizzle/meta/0006_snapshot.json +5606 -0
- package/dist/drizzle/meta/_journal.json +28 -0
- package/dist/main.mjs +24964 -12946
- package/dist/node/main.mjs +10212 -195
- package/dist/openscout-terminal-relay.mjs +507 -64
- package/dist/pairing-runtime-controller.mjs +10909 -5177
- package/dist/runtime/base-daemon.mjs +627 -159
- package/dist/runtime/broker-daemon.mjs +65060 -30990
- package/dist/runtime/broker-process-manager.mjs +247 -54
- package/dist/runtime/mesh-discover.mjs +246 -54
- package/dist/scout-control-plane-web.mjs +54699 -45309
- package/dist/scout-web-server.mjs +54699 -45309
- package/package.json +3 -3
- package/dist/client/assets/RepoDiffViewer-CTXJvjIL.js +0 -56
- package/dist/client/assets/embed-entry-wAEtYUEM.js +0 -1
- package/dist/client/assets/index-BK3mRYyN.js +0 -272
- package/dist/client/assets/index-Dm1ZQS9G.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as o}from"./createLucideIcon-OpA4Amw5.js";const e=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],c=o("arrow-down",e);export{c as A};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as o}from"./createLucideIcon-OpA4Amw5.js";const e=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],r=o("arrow-left",e);export{r as A};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as o}from"./createLucideIcon-OpA4Amw5.js";const t=[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]],a=o("arrow-up-right",t);export{a as A};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function c(e){return f(e).replace(/\/+$/u,"")}function u(e,s){return!e||!s?!1:c(e)===c(s)}const p=new Set(["&&","||","|","|&",";","&"]),d=new Set(["export","set","source",".","unset","alias"]),h=new Set(["sudo","doas","time","env","xargs","nice","nohup","command","builtin","exec","watch","stdbuf","setsid","timeout","caffeinate"]),m=new Set(["rg","grep","ag","ack","fd","find","awk","sed","cut","tr","sort","uniq","wc","head","tail","cat","bat","less","more","tee","nl","rev","column","ls","eza","tree","fzf","jq","yq","xsv","diff","patch","comm","paste","git","gh","hub","glab","node","deno","bun","npm","pnpm","yarn","npx","tsc","tsx","vite","esbuild","eslint","prettier","biome","vitest","jest","mocha","playwright","python","python3","pip","pip3","uv","ruff","ruby","gem","bundle","rake","go","gofmt","cargo","rustc","java","javac","gradle","mvn","dotnet","swift","swiftc","xcodebuild","xcrun","simctl","pod","fastlane","make","cmake","ninja","docker","kubectl","helm","terraform","ansible","curl","wget","ssh","scp","rsync","nc","dig","ping","cp","mv","rm","mkdir","touch","ln","chmod","chown","tar","zip","unzip","gzip","ps","kill","pkill","lsof","df","du","top","htop","which","echo","printf","date","sleep","open","pbcopy","pbpaste","say","afplay","defaults"]),g=e=>/^\d*[<>]{1,2}&?\d*$/u.test(e)||e==="&>"||e==="&>>",w=e=>/^[A-Za-z_][A-Za-z0-9_]*=/u.test(e),k=e=>/^-{1,2}[A-Za-z0-9]/u.test(e),x=e=>e.replace(/^.*\//u,"");function f(e){return e.replace(/\/Users\/[^/\s]+/gu,"~")}function o(e){const s=f(e).trim().split(/\s+/u).filter(Boolean),n=[];let a=!0,i=!1,r=!1,l=!1;for(const t of s){if(p.has(t)||g(t)){n.push({text:t,tier:"dim",known:!1,flag:!1}),a=!0,r=!1,l=!1;continue}if(l){n.push({text:t,tier:"dir",known:!1,flag:!1}),l=!1;continue}if(a){if(w(t)||h.has(t)){n.push({text:t,tier:"dim",known:!1,flag:!1});continue}if(t==="cd"){n.push({text:t,tier:"dim",known:!1,flag:!1}),a=!1,r=!1,l=!0;continue}if(d.has(t)){n.push({text:t,tier:"dim",known:!1,flag:!1}),a=!1,r=!1;continue}n.push({text:t,tier:i?"dim":"prog",known:m.has(x(t)),flag:!1}),r=!i,i=!0,a=!1;continue}n.push({text:t,tier:r?"arg":"dim",known:!1,flag:r&&k(t)})}return n}function b(e){const s=e.match(/^\s*cd\s+(\S+)\s*(?:&&\s*(.*))?$/u);return s?{dir:f(s[1]),rest:(s[2]??"").trim()}:{dir:null,rest:e}}function S(e,s={}){const n=s.powerline??"off",{dir:a,rest:i}=b(e);return a===null||n==="off"?{dir:null,spans:o(e)}:n==="smart"&&u(a,s.cwd)?{dir:null,spans:i?o(i):[]}:{dir:a,spans:i?o(i):[]}}export{o as b,S as f,b as s,f as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as t}from"./createLucideIcon-OpA4Amw5.js";const e=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],a=t("bot",e);export{a as B};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.briefings-placeholder{padding:var(--space-4xl) 0;color:var(--hud-text-muted, #888);font-size:var(--text-lg)}.briefings-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-sm)}.briefing-row{width:100%;text-align:left;background:var(--hud-surface, rgba(255, 255, 255, .02));border:1px solid var(--hud-border, rgba(255, 255, 255, .08));border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-xl);cursor:pointer;color:inherit;font:inherit;display:flex;flex-direction:column;gap:var(--space-xs);transition:background .12s ease,border-color .12s ease}.briefing-row:hover{background:var(--hud-surface-hover, rgba(255, 255, 255, .04));border-color:var(--hud-border-strong, rgba(255, 255, 255, .16))}.briefing-row-head{display:flex;align-items:baseline;gap:var(--space-md)}.briefing-kind{text-transform:uppercase;font-size:var(--text-xs);letter-spacing:var(--tracking-md);padding:var(--space-3xs) var(--space-xs);border-radius:var(--radius-sm);background:var(--scout-chrome-hover);color:var(--hud-text, inherit)}.briefing-kind-fleet-home{background:#4890e229;color:#6fb0f0}.briefing-kind-tour{background:#c4905629;color:var(--cat-gold)}.briefing-row-title{font-weight:500;flex:1 1 auto;font-size:var(--text-xl)}.briefing-row-time{font-size:var(--text-sm);color:var(--hud-text-muted, #888);flex:0 0 auto}.briefing-row-summary{font-size:var(--text-lg);line-height:var(--leading-snug);color:var(--hud-text, inherit)}.briefing-row-meta{font-size:var(--text-sm);color:var(--hud-text-muted, #888);display:flex;gap:var(--space-2xs)}.briefing-detail{max-width:920px;display:flex;flex-direction:column;gap:var(--space-4xl)}.briefing-detail-back{background:transparent;border:none;color:var(--hud-text-muted, #888);font-size:var(--text-md);padding:0;cursor:pointer;align-self:flex-start}.briefing-detail-back:hover{color:var(--hud-text, inherit)}.briefing-detail-header h2{margin:0 0 var(--space-sm);font-size:var(--text-4xl)}.briefing-detail-header-meta{display:flex;gap:var(--space-md);font-size:var(--text-md);color:var(--hud-text-muted, #888);margin-top:var(--space-xs)}.briefing-detail-summary{font-size:var(--text-xl);line-height:var(--leading-normal);margin:var(--space-lg) 0 0}.briefing-detail-recommendation{font-size:var(--text-lg);line-height:var(--leading-normal);background:#c4905614;border-left:2px solid var(--cat-gold);padding:var(--space-md) var(--space-lg);border-radius:0 var(--radius-md) var(--radius-md) 0;margin-top:var(--space-lg)}.briefing-layer{border:1px solid var(--hud-border, rgba(255, 255, 255, .08));border-radius:var(--radius-lg);padding:var(--space-2xl);display:flex;flex-direction:column;gap:var(--space-lg)}.briefing-layer-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--hud-border, rgba(255, 255, 255, .08));padding-bottom:var(--space-sm)}.briefing-layer-eyebrow{font-size:var(--text-xs);letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--hud-text-muted, #888)}.briefing-layer-title{font-size:var(--text-xl);font-weight:500}.briefing-layer-markdown{background:color-mix(in srgb,var(--hud-surface, #1a1a1a) 60%,transparent)}.briefing-markdown{font-size:var(--text-lg);line-height:var(--leading-normal);color:var(--hud-text, #ddd);max-width:72ch}.briefing-layer-presented{background:color-mix(in srgb,var(--hud-accent, #f4b860) 4%,transparent);border-color:color-mix(in srgb,var(--hud-accent, #f4b860) 24%,var(--hud-border, rgba(255, 255, 255, .08)))}.briefing-presented-sentences{list-style:decimal;padding-left:var(--space-3xl);margin:0;display:flex;flex-direction:column;gap:var(--space-xs)}.briefing-presented-sentence{font-size:var(--text-lg);line-height:var(--leading-normal);color:var(--hud-text, #ddd);max-width:72ch}.briefing-presented-meta{margin-top:var(--space-2xs);font-size:var(--text-xs);letter-spacing:var(--tracking-md);color:var(--hud-text-muted, #888);font-family:var(--font-mono)}.briefing-layer-telemetry{border-style:dashed}.briefing-telemetry{display:flex;flex-direction:column;gap:var(--space-md);margin:0}.briefing-telemetry-row{display:flex;flex-direction:column;gap:var(--space-2xs);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--hud-text, #ddd)}.briefing-telemetry-row-head{display:flex;align-items:baseline;gap:var(--space-md);flex-wrap:wrap}.briefing-telemetry-label{font-size:var(--text-xs);letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--hud-text-muted, #888)}.briefing-telemetry-model{color:var(--hud-text, #ddd)}.briefing-telemetry-note{font-size:var(--text-xs);color:color-mix(in srgb,var(--hud-accent, #f4b860) 80%,var(--hud-text-muted, #888))}.briefing-telemetry-stats{display:flex;flex-wrap:wrap;gap:var(--space-xl);color:var(--hud-text-muted, #888);font-size:var(--text-sm)}.briefing-telemetry-response{color:var(--hud-text-muted, #888);font-size:var(--text-xs);opacity:.7}.briefing-steps{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-lg)}.briefing-step{display:flex;flex-direction:column;gap:var(--space-2xs)}.briefing-step-label{font-size:var(--text-md);font-weight:500;color:var(--hud-text-muted, #888)}.briefing-step-narration{font-size:var(--text-lg);line-height:var(--leading-normal);margin:0}.briefing-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.briefing-observations{display:flex;flex-direction:column;gap:var(--space-sm)}.briefing-observation{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-md) var(--space-lg);background:#ffffff05;border-radius:var(--radius-md);border-left:2px solid transparent}.briefing-observation-warn{border-left-color:var(--cat-gold)}.briefing-observation-err{border-left-color:#e07878}.briefing-observation-text{font-size:var(--text-lg);line-height:var(--leading-snug)}.briefing-observation-refs{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.briefing-ref-chip{font-size:var(--text-sm);padding:var(--space-3xs) var(--space-xs);border-radius:var(--radius-sm);background:var(--scout-chrome-hover);color:inherit;border:none;cursor:pointer;font-family:inherit}.briefing-ref-chip:hover{background:#ffffff1f}.briefing-ref-chip-static{cursor:default}.briefing-ref-chip-static:hover{background:var(--scout-chrome-hover)}.briefing-snapshot-counts{display:flex;flex-wrap:wrap;gap:var(--space-xl);font-size:var(--text-md);color:var(--hud-text-muted, #888)}.briefing-snapshot-count strong{color:var(--hud-text, inherit);font-weight:500}.briefing-snapshot-section{border-top:1px solid var(--hud-border, rgba(255, 255, 255, .08));padding-top:var(--space-md)}.briefing-snapshot-section-head{cursor:pointer;font-size:var(--text-md);font-weight:500;margin-bottom:var(--space-sm)}.briefing-snapshot-section-head::marker{color:var(--hud-text-muted, #888)}.briefing-snapshot-raw{font-family:var(--hud-mono, ui-monospace, SFMono-Regular, "SF Mono", monospace);font-size:var(--text-sm);background:#0003;padding:var(--space-md);border-radius:var(--radius-md);max-height:360px;overflow:auto;white-space:pre-wrap;word-break:break-word}.briefing-call-grid{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-xs) var(--space-lg);font-size:var(--text-md)}.briefing-call-grid dt{color:var(--hud-text-muted, #888)}.briefing-call-grid dd{margin:0;font-family:var(--hud-mono, ui-monospace, monospace);word-break:break-word}.briefing-call-prompt{font-family:var(--hud-mono, ui-monospace, monospace);font-size:var(--text-sm);background:#0003;padding:var(--space-md);border-radius:var(--radius-md);max-height:240px;overflow:auto;white-space:pre-wrap;margin-top:var(--space-sm)}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b}from"./status-tone-BM_zuRy1.js";const p=220,m=92;function c(e){return e===null||["string","number","boolean"].includes(typeof e)}function a(e){if(typeof e!="string")return null;const r=e.trim();return r.length>0?r:null}function u(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function l(e){return e.trim().replace(/^@/,"").toLowerCase()}function A(e,r){const i=l(r);return[e.id,e.name,e.handle,e.selector,e.defaultSelector,e.conversationId,e.harnessSessionId].some(t=>t&&l(t)===i)}function d(e,r){if(typeof r=="string"&&r.trim()){e.push(r);return}if(Array.isArray(r))for(const i of r)d(e,i)}function M(e,r){const i=e.metadata??{},t=u(i.raw),n=[];d(n,e.target);for(const o of["targetAgentId","targetId","targetSessionId","relayTarget","relayTargetIds"])d(n,i[o]);if(t)for(const o of["targetAgentId","targetSessionId","relayTarget","relayTargetIds","targetId"])d(n,t[o]);for(const o of["targetDisplayName","targetLabel"])d(n,i[o]),t&&d(n,t[o]);for(const o of new Set(n.map(l))){const g=r.find(k=>A(k,o));if(g)return g}return null}function y(e){return e.replace(/\s+/g," ").trim().slice(0,220)}function s(e,...r){for(const i of r){const t=a(e?.[i]);if(t)return t}return null}function S(e){const r=e.metadata??{},i=u(r.raw),t=u(i?.delivery);return u(t?.metadata)}function T(e,r){return e.length<=r?e:`${e.slice(0,Math.max(0,r-3)).trimEnd()}...`}function f(e){return b(e.kind,e.status)==="danger"||e.status==="error"}function h(e){if(e.kind==="failed_query")switch(s(e.metadata,"dispatchKind")){case"unknown":return"Target not found";case"ambiguous":return"Target is ambiguous";case"unparseable":return"Invalid target";default:return"Route not resolved"}const r=s(e.metadata,"failureReason","reconciledReason","reason");return r==="agent_offline"||r==="agent_unreachable"?"Agent unavailable":r==="peer_unreachable"||r==="local_socket_unreachable"?"Route unavailable":r==="peer_rejected"?"Delivery rejected":"Delivery failed"}function $(e){const r=new Map,i=new Map;for(const n of e)if(n.messageId){if(n.kind==="success")r.has(n.messageId)||r.set(n.messageId,n);else if(n.kind==="failed_delivery"){const o=i.get(n.messageId);(!o||n.ts>o.ts)&&i.set(n.messageId,n)}}const t=[];for(const n of e)if(n.kind!=="delivery_attempt"&&!(n.kind==="failed_delivery"&&n.messageId&&r.has(n.messageId))){if(n.kind==="success"&&n.messageId){const o=i.get(n.messageId);if(o){t.push({...o,id:n.id,ts:n.ts,actorName:n.actorName,target:n.target??o.target,route:n.route??o.route,detail:n.detail,conversationId:n.conversationId??o.conversationId,messageId:n.messageId,invocationId:n.invocationId??o.invocationId,metadata:{...o.metadata??{},message:n.metadata??null}});continue}}t.push(n)}return t.sort((n,o)=>o.ts-n.ts||n.id.localeCompare(o.id))}function j(e){return f(e)?p:m}function F(e){if(!f(e))return null;if(e.kind==="failed_query")return h(e);const r=e.metadata??{},i=a(r.reason),t=a(r.failureDetail)??a(r.failureReason)??(e.kind==="failed_delivery"&&["direct_message","mention"].includes(i??"")?null:i)??a(r.error),n=a(r.requestedLabel),o=[];return e.status&&e.status!=="failed"&&e.status!=="error"&&o.push(e.status),t&&t!==e.detail.trim()&&o.push(t),n&&!e.detail.includes(n)&&o.push(`asked ${n}`),o.length>0?[...new Set(o)].join(" · "):null}function I(e){return e==null?"—":typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):JSON.stringify(e)}const w=["source","deliveryId","messageId","conversationId","invocationId","dispatchKind","reason","error","requestedLabel","requesterId","targetId","transport","failureReason","failureDetail","reconciledReason","attempt","class","actorId","dispatchId","attemptId"];function C(e){if(!e)return[];const r=[],i=new Set;for(const t of w)!(t in e)||!c(e[t])||(r.push({key:t,value:I(e[t])}),i.add(t));for(const[t,n]of Object.entries(e))t==="raw"||i.has(t)||!c(n)||r.push({key:t,value:I(n)});return r}function v(e){const r=e.metadata??{},i=e.messageId??s(r,"messageId"),t=e.target??s(r,"targetId"),n=e.route??s(r,"transport");return e.kind==="failed_delivery"&&i&&t&&n?["failed_delivery",i,t,n].join("|"):[e.kind,i??e.deliveryId??e.invocationId??e.id,t,n,s(r,"failureReason","reconciledReason","reason","error")??e.detail].filter(o=>!!(o&&o.trim())).map(y).join("|")}function R(e){const r=e.metadata??{},i=S(e);return[e.kind,e.target??s(r,"targetId"),e.route??s(r,"transport"),s(r,"failureReason","reconciledReason","error")??s(i,"failureReason","reconciledReason","error")??e.status,s(r,"failureDetail")??s(i,"failureDetail")??s(r,"reason")??e.detail].filter(t=>!!(t&&t.trim())).map(t=>y(t).toLowerCase()).join("|")}function _(e){return{copiedAt:new Date().toISOString(),dedupeFingerprint:v(e),rootCauseFingerprint:R(e),sourceEndpoint:"/api/broker?limit=160",reviewEndpoint:"/api/broker/dispatch-review",attempt:e}}function O(e){const r=_(e);return[f(e)?"OpenScout dispatch failure context":"OpenScout dispatch context","",`id: ${e.id}`,`kind: ${e.kind}`,`status: ${e.status}`,`time: ${new Date(e.ts).toISOString()}`,`target: ${e.target??"none"}`,`transport/route: ${e.route??"none"}`,`messageId: ${e.messageId??"none"}`,`deliveryId: ${e.deliveryId??"none"}`,`invocationId: ${e.invocationId??"none"}`,`conversationId: ${e.conversationId??"none"}`,`detail: ${e.detail}`,`dedupeFingerprint: ${r.dedupeFingerprint}`,`rootCauseFingerprint: ${r.rootCauseFingerprint}`,"","Full JSON:",JSON.stringify(r,null,2)].join(`
|
|
2
|
+
`)}function E(e){return{attemptId:e.id,attempt:e}}function L(e){if(!e)return null;if(e.raw!==void 0&&e.raw!==null)return e.raw;const r=Object.fromEntries(Object.entries(e).filter(([i,t])=>i!=="raw"&&!c(t)));return Object.keys(r).length>0?r:null}function x(e){return!e||Object.keys(e).length===0?"{}":JSON.stringify(e,null,2)}export{C as a,f as b,L as c,x as d,T as e,I as f,$ as g,F as h,j as i,O as j,M as k,E as l,h as m};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as $}from"./api-h5zurxmi.js";const o=["branch","unstaged","staged"],g=3e4,y=24,w=12,i=new Map,f=new Map,h=new Set;let m=Promise.resolve();function A(s,r=o,e={}){const t=new URLSearchParams;if(e.session){const n=e.session.sessionId?.trim(),c=e.session.agentId?.trim();n&&t.set("sessionId",n),c&&t.set("agentId",c),e.session.include&&t.set("include",e.session.include)}else{t.set("path",s);for(const n of e.files??[]){const c=n.trim();c&&t.append("file",c)}}for(const n of r)t.append("layer",n);return e.cache&&t.set("cache",e.cache),e.rehydrate&&t.set("rehydrate","1"),e.tier&&t.set("tier",e.tier),`/api/repo-diff/${e.session?"session":"worktree"}?${t.toString()}`}function d(s,r,e={}){const t=e.session?`session:${e.session.sessionId??""}:${e.session.agentId??""}:${e.session.include??"changed"}`:`worktree:${(e.files??[]).join(`
|
|
2
|
+
`)}`;return`${s}\0${r.join(",")}\0${e.tier??"summary"}\0${e.cacheScope??""}\0${t}`}function D(){for(;i.size>y;){const s=i.keys().next().value;if(!s)break;i.delete(s)}}function M(s,r=o,e={},t=g){const n=i.get(d(s,r,e));if(!n)return null;const c=Math.max(0,Date.now()-n.fetchedAt);return{...n,ageMs:c,fresh:c<=t}}async function I(s,r=o,e={}){const t=d(s,r,e),n=f.get(t);if(n&&(!e.force||n.force))return n.request;if(!e.force){const a=i.get(t);if(a&&Date.now()-a.fetchedAt<=g)return{...a,cacheHit:!0}}const c=A(s,r,{...e.force?{cache:"reload"}:{cache:"prefer",rehydrate:!0},files:e.files,session:e.session,tier:e.tier??"summary"}),u=$(c).then(a=>{const l={snapshot:a,fetchedAt:Date.now()};return i.delete(t),i.set(t,l),D(),{...l,cacheHit:!1}});f.set(t,{force:e.force===!0,request:u});try{return await u}finally{f.get(t)?.request===u&&f.delete(t)}}function E(s,r=o){const e=d(s,r,{tier:"summary"});M(s,r,{tier:"summary"})?.fresh||f.has(e)||h.has(e)||(h.add(e),m=m.catch(()=>{}).then(()=>I(s,r).then(()=>{},()=>{})).finally(()=>{h.delete(e)}))}function R(s,r=o,e={}){const t=Math.max(0,Math.min(e.limit??w,y));for(const n of s.slice(0,t))E(n,r)}function _(s){if(s<5e3)return"just now";const r=Math.round(s/1e3);if(r<60)return`${r}s ago`;const e=Math.round(r/60);return e<60?`${e}m ago`:`${Math.round(e/60)}h ago`}export{M as a,I as f,R as p,_ as r};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c}from"./createLucideIcon-OpA4Amw5.js";const e=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],t=c("check",e);export{t as C};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as o}from"./createLucideIcon-OpA4Amw5.js";const n=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],e=o("chevron-down",n);export{e as C};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as o}from"./createLucideIcon-OpA4Amw5.js";const t=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],e=o("chevron-right",t);export{e as C};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e,j as s}from"./index-DMiGbrBt.js";import{P as Q}from"./plus--b1raV_O.js";import{c as O}from"./createLucideIcon-OpA4Amw5.js";const ee=[["path",{d:"M5 12h14",key:"1ays0h"}]],te=O("minus",ee);var ne=({panOffset:u,scale:o,onPan:p,onPanStart:h,onPanEnd:a,isPanLocked:l=!1,onClick:m,showGuides:f=!1,onGuidesChange:y,gridOpacity:v=1})=>{const[d,k]=e.useState(f),[j,N]=e.useState(!1),c=e.useRef(!1),x=e.useRef({x:0,y:0}),n=e.useRef({active:!1,startX:0,startY:0}),z=e.useRef(null),M=e.useRef(null),S=e.useRef(null),A=4,H=e.useRef({x:0,y:0}),$=e.useRef(0),C=e.useRef(!1);e.useEffect(()=>{k(f)},[f]);const X=e.useCallback(t=>{const i=t;return i?i.tagName==="INPUT"||i.tagName==="TEXTAREA"||i.isContentEditable:!1},[]),Y=e.useCallback(t=>{const i=t;return i?!!i.closest('button, [role="button"], a, input, textarea, select, [data-interactive="true"]'):!1},[]),b=e.useCallback(t=>{c.current=t,N(t)},[]);e.useEffect(()=>{const t=r=>{if($.current=r.buttons,n.current.active&&(r.buttons&1)!==1&&(n.current.active=!1),c.current&&(r.buttons&1)!==1){b(!1),n.current.active=!1,a?.(),document.body.style.cursor="";return}if(l&&c.current){b(!1),n.current.active=!1,a?.(),document.body.style.cursor="";return}const g=z.current?.getBoundingClientRect(),w=g?r.clientX-g.left:r.clientX,_=g?r.clientY-g.top:r.clientY;if(H.current={x:w,y:_},M.current&&(M.current.style.left=`${w}px`),S.current&&(S.current.style.top=`${_}px`),n.current.active&&!c.current){const q=r.clientX-n.current.startX,J=r.clientY-n.current.startY;Math.hypot(q,J)>=A&&(n.current.active=!1,b(!0),C.current=!0,h?.(),x.current={x:r.clientX,y:r.clientY},document.body.style.cursor="grabbing")}c.current&&(p({x:(r.clientX-x.current.x)/o,y:(r.clientY-x.current.y)/o}),x.current={x:r.clientX,y:r.clientY})},i=r=>{$.current=r.buttons,n.current.active=!1,c.current&&(b(!1),a?.(),document.body.style.cursor="")},K=r=>{(r.metaKey||r.ctrlKey)&&r.key==="\\"&&(r.preventDefault(),k(g=>{const w=!g;return y?.(w),w}))},R=()=>{n.current.active=!1,i(new MouseEvent("mouseup"))};return window.addEventListener("mousemove",t),window.addEventListener("mouseup",i),window.addEventListener("keydown",K),window.addEventListener("blur",R),document.addEventListener("visibilitychange",R),()=>{window.removeEventListener("mousemove",t),window.removeEventListener("mouseup",i),window.removeEventListener("keydown",K),window.removeEventListener("blur",R),document.removeEventListener("visibilitychange",R)}},[p,a,h,o,X,Y,l,b,y]),e.useEffect(()=>{!l||!c.current||(b(!1),a?.(),document.body.style.cursor="")},[l,a,b]);const P=t=>{C.current=!1,!(l||t.button!==0)&&(X(t.target)||Y(t.target)||($.current=t.buttons,n.current={active:!0,startX:t.clientX,startY:t.clientY},t.preventDefault()))},U=t=>{!C.current&&m&&m(t),C.current=!1},[I,Z]=e.useState({w:0,h:0});e.useEffect(()=>{const t=()=>Z({w:window.innerWidth,h:window.innerHeight});return t(),window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[]);const L=Math.max(.4,Math.min(2,o)),E=100*L,D=20*L,F="var(--hud-canvas-dot-minor)",W="var(--hud-canvas-dot-major)",T="color-mix(in srgb, oklch(var(--accent)) 18%, transparent)",V=(I.w/2+u.x*o)%E,B=(I.h/2+u.y*o)%E;return s.jsxs("div",{ref:z,className:`absolute inset-0 z-0 overflow-hidden bg-background ${j?"cursor-grabbing":"cursor-grab"}`,onMouseDown:P,onClick:U,children:[s.jsx("div",{className:"absolute pointer-events-none",style:{inset:"-100px",opacity:.8*v,transition:"opacity 1s ease",backgroundImage:`radial-gradient(circle, ${F} 1px, transparent 1px)`,backgroundSize:`${D}px ${D}px`,backgroundPosition:`${V+100}px ${B+100}px`}}),s.jsx("div",{className:"absolute pointer-events-none",style:{inset:"-100px",opacity:.45*v,transition:"opacity 1s ease",backgroundImage:`radial-gradient(circle, ${W} 1.5px, transparent 1.5px)`,backgroundSize:`${E}px ${E}px`,backgroundPosition:`${V+100}px ${B+100}px`}}),d&&s.jsxs(s.Fragment,{children:[s.jsx("div",{ref:M,className:"absolute top-0 bottom-0 w-px pointer-events-none",style:{left:0,backgroundColor:T}}),s.jsx("div",{ref:S,className:"absolute left-0 right-0 h-px pointer-events-none",style:{top:0,backgroundColor:T}})]})]})},ce=ne,G={borderColor:"var(--hud-chrome-border, oklch(var(--border)))"},re=({scale:u,onZoom:o,min:p=.2,max:h=3,step:a=.1})=>{const[l,m]=e.useState(!1),[f,y]=e.useState(""),v=e.useRef(null),d=e.useCallback(n=>Math.min(h,Math.max(p,n)),[p,h]),k=e.useCallback(()=>{o(d(u+a))},[u,a,o,d]),j=e.useCallback(()=>{o(d(u-a))},[u,a,o,d]),N=e.useCallback(()=>{y(Math.round(u*100).toString()),m(!0)},[u]),c=e.useCallback(()=>{m(!1);const n=parseInt(f,10);!isNaN(n)&&n>0&&o(d(n/100))},[f,o,d]),x=e.useCallback(n=>{n.key==="Enter"?c():n.key==="Escape"&&m(!1)},[c]);return e.useEffect(()=>{l&&v.current&&(v.current.focus(),v.current.select())},[l]),s.jsxs("div",{className:"pointer-events-auto flex flex-col items-center bg-card/95 border rounded-none shadow-[var(--hud-shadow-panel)] overflow-hidden",style:G,children:[s.jsx("button",{onClick:k,className:"w-9 h-8 flex items-center justify-center hover:bg-accent/10 text-muted-foreground hover:text-foreground transition-colors",title:"Zoom in",children:s.jsx(Q,{size:14})}),s.jsx("div",{className:"w-full border-t border-b",style:G,children:l?s.jsx("input",{ref:v,type:"text",value:f,onChange:n=>y(n.target.value.replace(/[^0-9]/g,"")),onBlur:c,onKeyDown:x,className:"w-9 py-1.5 text-center text-[11px] font-mono text-foreground bg-background/60 outline-none tabular-nums"}):s.jsxs("button",{onClick:N,className:"w-9 py-1.5 text-center text-[11px] font-mono text-foreground hover:bg-accent/10 transition-colors cursor-text tabular-nums",title:"Click to set zoom",children:[Math.round(u*100),"%"]})}),s.jsx("button",{onClick:j,className:"w-9 h-8 flex items-center justify-center hover:bg-accent/10 text-muted-foreground hover:text-foreground transition-colors",title:"Zoom out",children:s.jsx(te,{size:14})})]})},ie=re;export{ce as C,ie as Z};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/xterm-BKR8oAkR.js","assets/index-DMiGbrBt.js","assets/index-DxGoC5l5.css","assets/addon-fit-BZ-kXjeN.js","assets/addon-webgl-D9-EQVEK.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as o,j as n,_ as Xe}from"./index-DMiGbrBt.js";import{n as Pt}from"./Provider-C7UKGHQy.js";import{c as Ct}from"./createLucideIcon-OpA4Amw5.js";import{A as Ft}from"./arrow-down-BPLe0am9.js";const Ht=[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]],Wt=Ct("arrow-up-down",Ht);const Vt=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],Ut=Ct("arrow-up",Vt);var xt=["terminal:ack"];function Tn(e={}){const{url:t="ws://localhost:3600",healthUrl:r,token:s,systemPrompt:a,cwd:i,workspaceFiles:u,autoConnect:k=!1,sessionKey:ae,orphanTTL:se,backend:G,controlMode:N="owner",tmuxSession:P,zellijSession:we,zellijSocketDir:ke,agent:Z,provider:ie,model:J,flowControl:je}=e,S=ae?`hudson.relay.${ae}`:null,$e=()=>{if(!S)return null;try{const d=localStorage.getItem(S);if(!d)return null;if(d.startsWith("{")){const p=JSON.parse(d);return typeof p.id!="string"?null:{id:p.id,reconnectToken:typeof p.reconnectToken=="string"?p.reconnectToken:null}}return{id:d,reconnectToken:null}}catch{return null}},g=o.useCallback((d,p=null)=>{if(S)try{d?localStorage.setItem(S,JSON.stringify({id:d,reconnectToken:p})):localStorage.removeItem(S)}catch{}},[S]),[ge,I]=o.useState("disconnected"),[Oe,ee]=o.useState(null),[Ne,w]=o.useState(null),[Ce,X]=o.useState(null),[A,Re]=o.useState(i||"~"),_=o.useRef(null),O=o.useRef(null),ce=o.useRef({cols:80,rows:24}),B=o.useRef(!1),Y=o.useRef([]),D=o.useRef(0),oe=o.useRef(0),he=o.useRef(0),F=o.useRef(A);F.current=A;const le=o.useRef(!1),be=o.useRef(null);le.current||(le.current=!0,be.current=$e());const v=o.useRef(be.current?.id??null),z=o.useRef(be.current?.reconnectToken??null),j=o.useRef(null),te=o.useRef(null),re=o.useRef(null),ne=o.useRef(new Set),$=je?.maxBufferedBytes??512*1024,T=o.useCallback(d=>{const p=_.current;p&&p.readyState===WebSocket.OPEN&&p.send(JSON.stringify(d))},[]),Ee=o.useCallback((d,p)=>{typeof d=="number"&&p===he.current&&T({type:"terminal:ack",seq:d})},[T]),R=o.useCallback(()=>{he.current+=1,Y.current=[],D.current=0},[]),q=o.useCallback((d,p=null)=>{const Q=he.current;if(!d){Ee(p,Q);return}let H=!1;const pe=()=>{H||(H=!0,Ee(p,Q))};if(j.current)try{j.current(d,pe)}catch{pe()}else for(Y.current.push({data:d,seq:p,ack:pe}),D.current+=d.length;D.current>$&&Y.current.length>0;){const W=Y.current.shift();if(!W)break;D.current-=W.data.length,W.ack()}if(ne.current.size>0)for(const W of ne.current)try{W(d)}catch{}},[Ee,$]),U=o.useCallback((d,p)=>{typeof d!="number"||typeof p!="number"||d<=0||p<=0||(re.current={cols:d,rows:p},te.current?.(d,p))},[]),ue=o.useCallback(()=>{const d=_.current;d&&(d.close(),_.current=null)},[]),l=o.useCallback(()=>{oe.current+=1,O.current&&(clearTimeout(O.current),O.current=null),ue(),B.current=!1,I("disconnected")},[ue]),x=o.useCallback(()=>{const d=F.current;return{type:"session:init",cols:ce.current.cols,rows:ce.current.rows,clientCapabilities:[...xt],...a?{systemPrompt:a}:{},...d?{cwd:d}:{},...u?{workspaceFiles:u}:{},...se?{orphanTTL:se}:{},...G?{backend:G}:{},...N!=="owner"?{controlMode:N}:{},...P?{tmuxSession:P}:{},...we?{zellijSession:we}:{},...ke?{zellijSocketDir:ke}:{},...Z?{agent:Z}:{},...ie?{provider:ie}:{},...J?{model:J}:{}}},[Z,G,N,J,se,ie,a,P,u,we,ke]),b=o.useCallback(()=>{B.current||(B.current=!0,v.current?T({type:"session:reconnect",sessionId:v.current,...z.current?{reconnectToken:z.current}:{},cols:ce.current.cols,rows:ce.current.rows,clientCapabilities:[...xt],...N!=="owner"?{controlMode:N}:{}}):T(x()))},[T,x,N]),y=o.useCallback(async()=>{const d=oe.current+1;oe.current=d,ue(),he.current+=1,B.current=!1,I("connecting"),w(null),X(null);const p=r||`${t.replace(/^ws(s?):\/\//,"http$1://")}/health`;try{const W=await fetch(p,{signal:AbortSignal.timeout(2e3)});if(!W.ok)throw new Error(`Relay health check failed: ${W.status}`)}catch{if(oe.current!==d)return;I("error"),w("Relay service is not running");return}if(oe.current!==d)return;ue();const Q=s?`${t}${t.includes("?")?"&":"?"}token=${encodeURIComponent(s)}`:t,H=new WebSocket(Q);_.current=H;const pe=()=>oe.current===d&&_.current===H;H.onopen=()=>{if(!pe()){H.close();return}b()},H.onmessage=W=>{if(pe())try{const C=JSON.parse(W.data);switch(C.type){case"session:ready":U(C.cols,C.rows),v.current=C.sessionId,z.current=typeof C.reconnectToken=="string"?C.reconnectToken:null,g(C.sessionId,z.current),ee(C.sessionId),I("connected"),w(null),X(null);break;case"terminal:dimensions":U(C.cols,C.rows);break;case"session:expired":{v.current=null,z.current=null,g(null),B.current=!1,R(),q("\x1B[2J\x1B[H",null),T(x()),B.current=!0;break}case"session:error":I("error"),w(C.error||"Session failed to start");break;case"terminal:data":q(C.data||"",typeof C.seq=="number"?C.seq:null);break;case"session:exit":v.current=null,z.current=null,g(null),R(),ee(null),X(C.exitCode??null),C.exitCode!==0?(I("error"),w(C.reason||`Process exited with code ${C.exitCode}`)):I("disconnected");break;case"session:detached":v.current=null,z.current=null,g(null),ee(null);break}}catch{}},H.onclose=()=>{pe()&&(_.current=null,B.current=!1,I(W=>W==="error"?W:"disconnected"))},H.onerror=()=>{pe()&&(I("error"),w("Could not connect to relay"))}},[t,r,s,b,ue,T,q,x,g,R]),de=o.useCallback(d=>{N!=="observe"&&T({type:"terminal:input",data:d})},[N,T]),Ae=o.useCallback(d=>{N!=="observe"&&T({type:"terminal:input",data:d+"\r"})},[N,T]),fe=o.useCallback((d,p)=>{ce.current={cols:d,rows:p},B.current&&T({type:"terminal:resize",cols:d,rows:p})},[T]),M=o.useCallback(d=>{if(j.current=d,!d||Y.current.length===0)return;const p=Y.current;Y.current=[],D.current=0;for(const Q of p)try{d(Q.data,Q.ack)}catch{Q.ack()}},[]),L=o.useCallback(d=>{te.current=d;const p=re.current;d&&p&&d(p.cols,p.rows)},[]),Se=o.useCallback(d=>(ne.current.add(d),()=>{ne.current.delete(d)}),[]);o.useEffect(()=>(k&&y(),()=>{l()}),[]);const me=o.useCallback(()=>{l(),v.current=null,z.current=null,ee(null),g(null),R(),w(null),X(null),O.current=setTimeout(()=>{O.current=null,y()},200)},[l,y,g,R]);return{status:ge,sessionId:Oe,error:Ne,exitCode:Ce,cwd:A,controlMode:N,setCwd:Re,onData:M,onDimensions:L,subscribeData:Se,sendInput:de,sendLine:Ae,resize:fe,connect:y,disconnect:l,restart:me}}var Kt={titleBarInset:0,dragRegionProps:{},onInteractiveMouseDown:void 0,isSSR:!0,apiBaseUrl:"",serviceApiUrl:""},Gt=o.createContext(Kt);function Jt(){return o.useContext(Gt)}var gt="hudson:terminal:voice-transcript",ht="hudson:terminal:voice-submit",In='[data-hudson-terminal-drawer-content="true"]',Xt=o.createContext(void 0),Yt={background:"#091112",foreground:"#d7e5e2",cursor:"#35d7d0",cursorAccent:"#091112",selectionBackground:"#173739",selectionForeground:"#f3fbf9",black:"#091112",red:"#ff6b6b",green:"#35d07f",yellow:"#f5c451",blue:"#62b4ff",magenta:"#ff7ab6",cyan:"#32d5ca",white:"#d7e5e2",brightBlack:"#667777",brightRed:"#ff8f8f",brightGreen:"#5ee79f",brightYellow:"#ffd36e",brightBlue:"#8dccff",brightMagenta:"#ff9fca",brightCyan:"#67eee3",brightWhite:"#ffffff"},qt={background:"#f7faf9",foreground:"#111a19",cursor:"#006f6a",cursorAccent:"#f7faf9",selectionBackground:"#c0e7e2",selectionForeground:"#0d1716",black:"#111a19",red:"#9f1f18",green:"#006c46",yellow:"#704600",blue:"#075985",magenta:"#9d174d",cyan:"#006f6a",white:"#dbe5e2",brightBlack:"#52635f",brightRed:"#c2271f",brightGreen:"#007f55",brightYellow:"#865b00",brightBlue:"#0369a1",brightMagenta:"#be185d",brightCyan:"#007f89",brightWhite:"#ffffff"},Qt=`
|
|
3
|
+
.xterm { cursor: text; position: relative; user-select: none; -ms-user-select: none; -webkit-user-select: none; }
|
|
4
|
+
.xterm.focus, .xterm:focus { outline: none; }
|
|
5
|
+
.xterm .xterm-helpers { position: absolute; top: 0; z-index: 5; }
|
|
6
|
+
.xterm .xterm-helper-textarea { padding: 0; border: 0; margin: 0; position: absolute; opacity: 0; left: -9999em; top: 0; width: 0; height: 0; z-index: -5; white-space: nowrap; overflow: hidden; resize: none; }
|
|
7
|
+
.xterm .composition-view { background: var(--hud-terminal-bg, #091112); color: var(--hud-terminal-fg, #d7e5e2); display: none; position: absolute; white-space: nowrap; z-index: 1; }
|
|
8
|
+
.xterm .composition-view.active { display: block; }
|
|
9
|
+
.xterm .xterm-viewport { background-color: var(--hud-terminal-bg, transparent); overflow-y: scroll; cursor: default; position: absolute; right: 0; left: 0; top: 0; bottom: 0; }
|
|
10
|
+
.xterm .xterm-screen { position: relative; }
|
|
11
|
+
.xterm .xterm-screen canvas { position: absolute; left: 0; top: 0; }
|
|
12
|
+
.xterm-char-measure-element { display: inline-block; visibility: hidden; position: absolute; top: 0; left: -9999em; line-height: normal; }
|
|
13
|
+
.xterm.enable-mouse-events { cursor: default; }
|
|
14
|
+
.xterm.xterm-cursor-pointer, .xterm .xterm-cursor-pointer { cursor: pointer; }
|
|
15
|
+
.xterm.column-select.focus { cursor: crosshair; }
|
|
16
|
+
.xterm .xterm-accessibility:not(.debug), .xterm .xterm-message { position: absolute; left: 0; top: 0; bottom: 0; right: 0; z-index: 10; color: transparent; pointer-events: none; }
|
|
17
|
+
.xterm .xterm-accessibility-tree:not(.debug) *::selection { color: transparent; }
|
|
18
|
+
.xterm .xterm-accessibility-tree { font-family: monospace; user-select: text; white-space: pre; }
|
|
19
|
+
.xterm .xterm-accessibility-tree > div { transform-origin: left; width: fit-content; }
|
|
20
|
+
.xterm .live-region { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
|
|
21
|
+
.xterm-dim { opacity: 1 !important; }
|
|
22
|
+
.xterm-underline-1 { text-decoration: underline; }
|
|
23
|
+
.xterm-underline-2 { text-decoration: double underline; }
|
|
24
|
+
.xterm-underline-3 { text-decoration: wavy underline; }
|
|
25
|
+
.xterm-underline-4 { text-decoration: dotted underline; }
|
|
26
|
+
.xterm-underline-5 { text-decoration: dashed underline; }
|
|
27
|
+
.xterm-overline { text-decoration: overline; }
|
|
28
|
+
.xterm-overline.xterm-underline-1 { text-decoration: overline underline; }
|
|
29
|
+
.xterm-overline.xterm-underline-2 { text-decoration: overline double underline; }
|
|
30
|
+
.xterm-overline.xterm-underline-3 { text-decoration: overline wavy underline; }
|
|
31
|
+
.xterm-overline.xterm-underline-4 { text-decoration: overline dotted underline; }
|
|
32
|
+
.xterm-overline.xterm-underline-5 { text-decoration: overline dashed underline; }
|
|
33
|
+
.xterm-strikethrough { text-decoration: line-through; }
|
|
34
|
+
.xterm-screen .xterm-decoration-container .xterm-decoration { z-index: 6; position: absolute; }
|
|
35
|
+
.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer { z-index: 7; }
|
|
36
|
+
.xterm-decoration-overview-ruler { z-index: 8; position: absolute; top: 0; right: 0; pointer-events: none; }
|
|
37
|
+
.xterm-decoration-top { z-index: 2; position: relative; }
|
|
38
|
+
.xterm .xterm-scrollable-element > .scrollbar { cursor: default; }
|
|
39
|
+
.xterm .xterm-scrollable-element > .scrollbar > .scra { cursor: pointer; font-size: 11px !important; }
|
|
40
|
+
.xterm .xterm-scrollable-element > .visible { opacity: 1; background: rgba(0,0,0,0); transition: opacity 100ms linear; z-index: 11; }
|
|
41
|
+
.xterm .xterm-scrollable-element > .invisible { opacity: 0; pointer-events: none; }
|
|
42
|
+
.xterm .xterm-scrollable-element > .invisible.fade { transition: opacity 800ms linear; }
|
|
43
|
+
.xterm .xterm-scrollable-element > .shadow { position: absolute; display: none; }
|
|
44
|
+
.xterm .xterm-scrollable-element > .shadow.top { display: block; top: 0; left: 3px; height: 3px; width: 100%; }
|
|
45
|
+
.xterm .xterm-scrollable-element > .shadow.left { display: block; top: 3px; left: 0; height: 100%; width: 3px; }
|
|
46
|
+
`;function Zt(){if(typeof document>"u"||document.querySelector("[data-xterm-css]"))return;const e=document.createElement("style");e.setAttribute("data-xterm-css",""),e.textContent=Qt,document.head.appendChild(e)}function Ye(e,t){if(typeof e!="object"||e===null)return;const r=e,s=r[t];if(s)return s;const a=r.default;if(!(typeof a!="object"||a===null))return a[t]}function bt(e,t){if(!e||t&&!e.closest(t))return!1;const r=e.getBoundingClientRect();if(r.width<=0||r.height<=0)return!1;const s=window.getComputedStyle(e);return s.display!=="none"&&s.visibility!=="hidden"}var er="\x1B[13;2u",yt="\r";function tr(e){return new Promise((t,r)=>{const s=new FileReader;s.onload=()=>{const a=s.result;t(a.split(",")[1])},s.onerror=r,s.readAsDataURL(e)})}function rr({relay:e,fontSize:t=12,fontFamily:r="'JetBrains Mono', 'Hack Nerd Font', monospace",scrollback:s=5e3,renderer:a="auto",readOnly:i=!1,ariaLabel:u="Terminal",className:k,style:ae,colorScheme:se="auto",configItems:G,onOpenSettings:N,onStartService:P,quiet:we=!1,voiceVisibilityScope:ke,imageUploadUrl:Z,onReady:ie,onDispose:J,onResize:je,onRendererChange:S},$e){const{status:g,error:ge,exitCode:I,cwd:Oe,setCwd:ee,sendInput:Ne,resize:w,onData:Ce,onDimensions:X,connect:A,disconnect:Re,controlMode:_="owner"}=e,O=i||_==="observe",ce=o.useContext(Xt),B=ke===!1?void 0:ke??ce,[Y,D]=o.useState(!1),{apiBaseUrl:oe}=Jt(),he=Pt(),F=se==="auto"?he?.resolvedTheme==="light"?"light":"dark":se,le=F==="light"?qt:Yt,be=F==="light"?4.5:3,v=o.useRef(null),z=o.useRef(null),j=o.useRef(null),te=o.useRef(null),re=o.useRef(null),ne=o.useRef(!1),[$,T]=o.useState(!1),[Ee,R]=o.useState(!1),q=o.useRef(0),U=o.useRef(O),ue=o.useRef(null),l=o.useRef(null),x=o.useRef(null),b=o.useRef(null),y=o.useRef(ie),de=o.useRef(J),Ae=o.useRef(je),fe=o.useRef(S);o.useEffect(()=>{U.current=O,O&&(re.current=null,ne.current=!1,q.current=0,R(!1))},[O]),o.useEffect(()=>{y.current=ie},[ie]),o.useEffect(()=>{de.current=J},[J]),o.useEffect(()=>{Ae.current=je},[je]),o.useEffect(()=>{fe.current=S},[S]),o.useEffect(()=>{const c=v.current;if(!c)return;const f=m=>{m.key===" "&&!m.metaKey&&!m.ctrlKey&&!m.altKey&&m.stopPropagation()};return c.addEventListener("keydown",f),()=>c.removeEventListener("keydown",f)},[]);const M=Z===void 0?`${oe}/api/relay/upload`:Z,L=o.useCallback(c=>{U.current||Ne(c)},[Ne]),Se=o.useCallback((c,f)=>{if(!Number.isFinite(c)||!Number.isFinite(f)||c<=0||f<=0)return;const m=ue.current;m&&m.cols===c&&m.rows===f||(ue.current={cols:c,rows:f},w(c,f),Ae.current?.(c,f))},[w]),me=o.useCallback(()=>{const c=te.current,f=j.current;if(!c||!f)return null;try{const m=c.proposeDimensions();return m?((_!=="observe"||!l.current)&&c.fit(),Se(m.cols,m.rows),l.current??{cols:f.cols,rows:f.rows}):null}catch{return null}},[_,Se]),d=o.useCallback(()=>{x.current===null&&(x.current=window.requestAnimationFrame(()=>{x.current=null,me()}))},[me]);o.useImperativeHandle($e,()=>({focus:()=>{j.current?.focus()},fit:me,clear:()=>{j.current?.clear()},getDimensions:()=>{const c=j.current;return c?{cols:c.cols,rows:c.rows}:null},getTerminal:()=>j.current}),[me]);const p=o.useCallback(c=>{const f=c.transcript.replace(/\s+/g," ").trim();f&&L(c.submit?`${f}${yt}`:f)},[L]),Q=o.useCallback(()=>{L(yt)},[L]);o.useEffect(()=>{const c=f=>{if(U.current||!bt(v.current,B))return;const m=f.detail;if(!(!m||typeof m.transcript!="string")){if(g==="connected"){p(m);return}re.current=m,g!=="connecting"&&A()}};return window.addEventListener(gt,c),()=>window.removeEventListener(gt,c)},[A,p,g,B]),o.useEffect(()=>{if(g!=="connected"||!re.current)return;const c=re.current;re.current=null,p(c)},[p,g]),o.useEffect(()=>{const c=()=>{if(!U.current&&bt(v.current,B)){if(g==="connected"){Q();return}ne.current=!0,g!=="connecting"&&A()}};return window.addEventListener(ht,c),()=>window.removeEventListener(ht,c)},[A,Q,g,B]),o.useEffect(()=>{g!=="connected"||!ne.current||(ne.current=!1,Q())},[Q,g]);const H=o.useCallback(async c=>{if(!M)return null;try{const f=await tr(c),m=await fetch(M,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:c.name,data:f})}),{path:K}=await m.json();return K||null}catch(f){return console.error("File upload failed:",f),null}},[M]);o.useEffect(()=>{const c=v.current;if(!c)return;const f=async m=>{if(!m.clipboardData||!M)return;const K=Array.from(m.clipboardData.items).filter(ye=>ye.type.startsWith("image/"));if(K.length!==0&&(m.preventDefault(),m.stopPropagation(),!U.current))for(const ye of K){const Be=ye.getAsFile();if(!Be)continue;const ze=await H(Be);ze&&L(ze)}};return c.addEventListener("paste",f),()=>c.removeEventListener("paste",f)},[L,H,M]);const pe=o.useCallback(c=>{if(c.preventDefault(),U.current||!M){c.dataTransfer.dropEffect="none";return}c.dataTransfer.dropEffect="copy"},[M]),W=o.useCallback(c=>{if(c.preventDefault(),U.current||!M){q.current=0,R(!1);return}q.current++,c.dataTransfer.types.includes("Files")&&R(!0)},[M]),C=o.useCallback(c=>{if(c.preventDefault(),U.current){q.current=0,R(!1);return}q.current--,q.current===0&&R(!1)},[]),Lt=o.useCallback(async c=>{if(c.preventDefault(),q.current=0,R(!1),U.current||!M)return;const f=Array.from(c.dataTransfer.files).filter(m=>m.type.startsWith("image/"));if(f.length!==0)for(const m of f){const K=await H(m);K&&L(K)}},[L,H,M]);o.useEffect(()=>{let c=!1,f=null;T(!1);async function m(){const[K,ye,Be]=await Promise.all([Xe(()=>import("./xterm-BKR8oAkR.js").then(E=>E.x),__vite__mapDeps([0,1,2])),Xe(()=>import("./addon-fit-BZ-kXjeN.js").then(E=>E.a),__vite__mapDeps([3,1,2])),Xe(()=>import("./addon-webgl-D9-EQVEK.js").then(E=>E.a),__vite__mapDeps([4,1,2])).catch(()=>null)]),ze=Ye(K,"Terminal"),dt=Ye(ye,"FitAddon"),ft=Be?Ye(Be,"WebglAddon"):void 0;if(!ze||!dt){console.error("[TerminalRelay] @xterm/xterm or @xterm/addon-fit missing constructors",{xtermMod:K,fitMod:ye});return}if(Zt(),c||!z.current)return;f=new ze({fontSize:t,fontFamily:r,theme:le,minimumContrastRatio:be,cursorBlink:!0,cursorStyle:"bar",allowTransparency:!0,scrollback:s,convertEol:!1,allowProposedApi:!0});const mt=new dt;f.loadAddon(mt),f.open(z.current),j.current=f,te.current=mt;let pt="dom";if(a!=="dom"&&ft)try{const E=new ft;E.onContextLoss(()=>{E.dispose(),fe.current?.("dom")}),f.loadAddon(E),pt="webgl"}catch{}fe.current?.(pt),me(),f.attachCustomKeyEventHandler(E=>E.type==="keydown"&&E.key==="Enter"&&E.shiftKey&&!E.ctrlKey&&!E.altKey&&!E.metaKey?(E.preventDefault(),E.stopPropagation(),L(er),!1):!0),f.onData(E=>{L(E)}),T(!0),y.current?.(f)}return m(),()=>{c=!0,T(!1),x.current!==null&&(window.cancelAnimationFrame(x.current),x.current=null),f&&(f.dispose(),j.current=null,te.current=null),de.current?.()}},[me,a,s,L]),o.useEffect(()=>{const c=j.current;c&&(c.options.fontSize=t,c.options.fontFamily=r,me())},[me,t,r]),o.useEffect(()=>{const c=j.current;c&&(c.options.theme=le,c.options.minimumContrastRatio=be)},[be,le]),o.useEffect(()=>{if(!(!$||!X))return X((c,f)=>{l.current={cols:c,rows:f};const m=j.current;m&&(m.cols!==c||m.rows!==f)&&m.resize(c,f)}),()=>X(null)},[$,X]),o.useEffect(()=>{if($)return Ce((c,f)=>{let m=!1;const K=()=>{m||(m=!0,f())},ye=j.current;if(!ye){K();return}try{ye.write(c,K)}catch{K()}}),()=>{Ce(null)}},[$,Ce]),o.useEffect(()=>{const c=z.current;if(!c||!$)return;const f=new ResizeObserver(()=>{d()});return f.observe(c),()=>{f.disconnect(),x.current!==null&&(window.cancelAnimationFrame(x.current),x.current=null)}},[$,d]),o.useEffect(()=>{g==="connected"&&j.current&&j.current.focus()},[g]);const Ot=o.useCallback(()=>{g==="connected"&&j.current&&j.current.focus()},[g]),Bt=g==="error"&&ge==="Relay service is not running",zt=o.useCallback(async()=>{if(P){D(!0);try{await P()&&(b.current&&clearTimeout(b.current),b.current=setTimeout(()=>{b.current=null,A()},500))}finally{D(!1)}}},[P,A]);o.useEffect(()=>()=>{b.current&&(clearTimeout(b.current),b.current=null)},[]);let _e=null;return Bt?_e=n.jsxs("div",{className:"flex flex-col items-center gap-4 max-w-xs text-center px-4",children:[n.jsx("div",{className:"w-8 h-8 rounded-full bg-amber-500/10 border border-amber-500/20 flex items-center justify-center",children:n.jsx("span",{className:"text-amber-400 text-[14px]",children:"!"})}),n.jsxs("div",{children:[n.jsx("div",{className:"text-[12px] text-foreground font-medium mb-1",children:"Relay service not running"}),n.jsx("div",{className:"text-[11px] text-muted-foreground/80 leading-relaxed",children:P?"Start the relay service to open a terminal session.":"Start the relay service from the Workspace Manager."})]}),n.jsxs("div",{className:"flex items-center gap-2",children:[P&&n.jsx("button",{type:"button",onClick:zt,disabled:Y,className:"text-[11px] px-4 py-1.5 rounded-full border border-accent/30 text-accent hover:bg-accent/10 transition-colors font-medium disabled:opacity-50",children:Y?"Starting":"Start Service"}),n.jsx("button",{type:"button",onClick:()=>A(),className:"text-[11px] px-3 py-1.5 rounded-full border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:"Retry"}),N&&n.jsx("button",{type:"button",onClick:N,className:"text-[11px] px-3 py-1.5 rounded-full border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:"Settings"})]})]}):g==="error"&&ge?_e=n.jsxs("div",{className:"flex flex-col items-center gap-3 max-w-md text-center px-4",children:[n.jsx("div",{className:"w-8 h-8 rounded-full bg-red-500/10 flex items-center justify-center",children:n.jsx("span",{className:"text-red-400 text-sm",children:"!"})}),n.jsx("span",{className:"text-red-400 text-[12px] font-medium",children:"Session failed"}),n.jsx("code",{className:"text-[11px] text-muted-foreground bg-muted/80 px-3 py-2 rounded-md whitespace-pre-wrap leading-relaxed max-h-32 overflow-y-auto w-full text-left",children:ge}),I!==null&&I!==0&&n.jsxs("span",{className:"text-[10px] text-muted-foreground/60",children:["Exit code ",I]}),n.jsx("button",{type:"button",onClick:()=>A(),className:"text-[11px] px-3 py-1 rounded-full border border-cyan-500/30 text-cyan-400 hover:bg-cyan-500/10 transition-colors",children:"Retry"})]}):g==="disconnected"&&!we?_e=n.jsxs("div",{className:"flex flex-col items-center gap-4 max-w-xs text-center px-4",children:[n.jsx("div",{className:"w-8 h-8 rounded-full bg-muted border border-border flex items-center justify-center",children:n.jsx("span",{className:"text-muted-foreground/80 text-[14px]",children:"▷"})}),n.jsxs("div",{children:[n.jsx("div",{className:"text-[12px] text-foreground font-medium mb-1",children:"Terminal relay disconnected"}),n.jsx("div",{className:"text-[11px] text-muted-foreground/80 leading-relaxed",children:"Set working directory and connect."})]}),n.jsxs("form",{className:"w-full",onSubmit:c=>{c.preventDefault(),A()},children:[n.jsx("label",{className:"text-[10px] font-mono text-muted-foreground/80 uppercase tracking-wider mb-1 block text-left",children:"Working Directory"}),n.jsx("input",{type:"text",value:Oe,onChange:c=>ee(c.target.value),placeholder:"~/dev/my-project",className:"w-full bg-muted/80 border border-border/50 rounded px-3 py-1.5 text-[11px] font-mono text-foreground placeholder:text-muted-foreground/60 outline-none focus:border-accent/40 transition-colors",spellCheck:!1,autoComplete:"off"})]}),G&&G.length>0&&n.jsx("div",{className:"w-full grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-[10px] font-mono bg-muted/60 border border-border/40 rounded-md px-3 py-2",children:G.map(c=>n.jsxs("div",{className:"contents",children:[n.jsx("span",{className:"text-muted-foreground/80",children:c.label}),n.jsx("span",{className:"text-muted-foreground truncate text-left",children:c.value})]},c.label))}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("button",{type:"button",onClick:()=>A(),className:"text-[11px] px-4 py-1.5 rounded-full border border-cyan-500/30 text-cyan-400 hover:bg-cyan-500/10 transition-colors font-medium",children:"Connect"}),N&&n.jsx("button",{type:"button",onClick:N,className:"text-[11px] px-3 py-1.5 rounded-full border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:"Settings"})]})]}):g==="connecting"&&!we&&(_e=n.jsxs("div",{className:"flex flex-col items-center gap-3 text-center",children:[n.jsx("div",{className:"w-6 h-6 border-2 border-muted-foreground/30 border-t-cyan-500 rounded-full animate-spin"}),n.jsx("span",{className:"text-[12px] text-muted-foreground",children:"Connecting to relay"}),n.jsx("button",{type:"button",onClick:()=>{Re()},className:"text-[10px] px-3 py-1 rounded-full border border-border text-muted-foreground/80 hover:text-foreground hover:bg-muted transition-colors",children:"Cancel"})]})),n.jsxs("div",{ref:v,className:k?`relative flex flex-col h-full overflow-hidden ${k}`:"relative flex flex-col h-full overflow-hidden",style:ae,role:"application","aria-label":O?`${u} (read only)`:u,"data-readonly":O?"true":void 0,onClick:Ot,onDragOver:pe,onDragEnter:W,onDragLeave:C,onDrop:Lt,children:[_e&&n.jsx("div",{className:"flex items-center justify-center h-full font-mono text-[12px] absolute inset-0 z-10 bg-background/95",children:_e}),Ee&&n.jsx("div",{className:"absolute inset-0 z-20 flex items-center justify-center bg-cyan-500/10 border-2 border-dashed border-cyan-500/50 rounded pointer-events-none",children:n.jsx("span",{className:"text-cyan-400 font-mono text-sm",children:"Drop image to get path"})}),n.jsx("div",{ref:z,className:"flex-1 min-h-0 min-w-0 overflow-hidden",style:{visibility:_e?"hidden":"visible",backgroundColor:le.background,"--hud-terminal-bg":le.background,"--hud-terminal-fg":le.foreground}})]})}var nr=o.forwardRef(rr);nr.displayName="TerminalRelay";function Ve(e){if(typeof window>"u")return null;try{return e==="local"?window.localStorage:window.sessionStorage}catch{return null}}function sr(e,t){const r=Ve(e);if(!r)return null;try{return r.getItem(t)}catch{return null}}function or(e,t,r){const s=Ve(e);if(!s)return!1;try{return s.setItem(t,r),!0}catch{return!1}}function ar(e,t){const r=Ve(e);if(!r)return!1;try{return r.removeItem(t),!0}catch{return!1}}function ir(e){const t=Ve(e);if(!t)return[];try{const r=[],s=t.length;for(let a=0;a<s;a++){const i=t.key(a);typeof i=="string"&&r.push(i)}return r}catch{return[]}}var Et={getItem(e){return sr("local",e)},setItem(e,t){return or("local",e,t)},removeItem(e){return ar("local",e)},keys(){return ir("local")},isAvailable(){return Ve("local")!==null}};function cr(e="h",t=12){const r=globalThis.crypto;if(r&&typeof r.randomUUID=="function"){const a=r.randomUUID().replace(/-/g,"").slice(0,t);return e?`${e}_${a}`:a}if(r&&typeof r.getRandomValues=="function"){const a=new Uint8Array(Math.ceil(t/2));r.getRandomValues(a);const i=Array.from(a,u=>u.toString(16).padStart(2,"0")).join("").slice(0,t);return e?`${e}_${i}`:i}const s=Math.random().toString(36).slice(2,2+t);return e?`${e}_${s}`:s}var lr=200,ur=()=>Date.now(),dr=()=>cr("h",12),fr=e=>e instanceof Error?{name:e.name,message:e.message}:{message:String(e)},mr=()=>{const e=globalThis;return e.H_OBSERVABILITY===!0||e.H_DEBUG===!0},pr=class{constructor(){this.sinks=new Map}get size(){return this.sinks.size}add(e,t={}){const r=t.kinds?new Set(t.kinds):null;return this.sinks.set(e,{kinds:r}),()=>{this.sinks.delete(e)}}emit(e){for(const[t,r]of this.sinks)if(!(r.kinds&&!r.kinds.has(e.kind)))try{t(e)}catch{}}},xr=class{constructor(e){this.owner=e}log(e,t,r={}){const s={id:this.owner.createId(),kind:"log",timestamp:this.owner.now(),level:e,message:t,category:r.category,data:r.data};return this.owner.emit(s),s}debug(e,t){return this.log("debug",e,t)}info(e,t){return this.log("info",e,t)}warn(e,t){return this.log("warn",e,t)}error(e,t){return this.log("error",e,t)}},gr=class{constructor(e){this.owner=e}counter(e,t=1,r={}){return this.record("counter",e,t,r)}gauge(e,t,r={}){return this.record("gauge",e,t,r)}timing(e,t,r={}){return this.record("timing",e,t,{...r,unit:r.unit??"ms"})}record(e,t,r,s){const a={id:this.owner.createId(),kind:"metric",timestamp:this.owner.now(),metricType:e,name:t,value:r,category:s.category,unit:s.unit,tags:s.tags,data:s.data};return this.owner.emit(a),a}},hr=class{constructor(e,t){this.owner=e,this.event=t,this.ended=!1,this.owner.emit({...t})}end(e){if(this.ended)return this.event;const t=this.owner.now();return this.ended=!0,this.event.endTime=t,this.event.durationMs=Math.max(0,t-this.event.startTime),this.event.status="ok",e&&(this.event.data={...this.event.data,...e}),this.owner.emit({...this.event}),this.event}error(e,t){if(this.ended)return this.event;const r=this.owner.now();return this.ended=!0,this.event.endTime=r,this.event.durationMs=Math.max(0,r-this.event.startTime),this.event.status="error",this.event.error=fr(e),t&&(this.event.data={...this.event.data,...t}),this.owner.emit({...this.event}),this.event}},br=class{constructor(e){this.owner=e}start(e,t={}){const r=this.owner.createId(),s=this.owner.now(),a={id:r,kind:"span",timestamp:s,name:e,traceId:t.traceId??r,parentId:t.parentId,startTime:s,status:"active",category:t.category,data:t.data};return new hr(this.owner,a)}},yr=class St{constructor(t={}){this.logger=new xr(this),this.metrics=new gr(this),this.trace=new br(this),this.sinks=new pr,this.buffer=[],this.enabled=t.enabled??!0,this.maxBufferSize=Math.max(0,t.maxBufferSize??lr),this.nowFn=t.now??ur,this.createIdFn=t.createId??dr}static global(t={}){return new St({...t,enabled:t.enabled??mr()})}get isEnabled(){return this.enabled}setEnabled(t){this.enabled=t}subscribe(t,r={}){const s=this.sinks.add(t,r);if(r.replay)for(const a of this.buffer)r.kinds&&!r.kinds.includes(a.kind)||t(a);return s}flush(){const t=this.buffer.slice();return this.buffer.length=0,t}snapshot(){return this.buffer.slice()}emit(t){return this.enabled&&(this.remember(t),this.sinks.size>0&&this.sinks.emit(t)),t}now(){return this.nowFn()}createId(){return this.createIdFn()}remember(t){this.maxBufferSize!==0&&(this.buffer.push(t),this.buffer.length>this.maxBufferSize&&this.buffer.splice(0,this.buffer.length-this.maxBufferSize))}},Ue=yr.global(),vr=100,wr=class{constructor(e={}){this.entries=[],this.listeners=new Set,this.maxEntries=Math.max(0,e.maxEntries??vr)}snapshot(){return this.entries}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}add(e){return this.maxEntries===0||(this.entries=[e,...this.entries].slice(0,this.maxEntries),this.notify()),e}update(e,t){let r=!1;this.entries=this.entries.map(s=>s.id!==e?s:(r=!0,t(s))),r&&this.notify()}clear(){this.entries.length!==0&&(this.entries=[],this.notify())}notify(){for(const e of this.listeners)try{e()}catch{}}};new wr;var Tt="hudsonTrace",kr=new Set(["cat","find","fd","grep","head","ls","pwd","rg","sed","tail","wc","which"]),jr=new Set(["branch","diff","ls-files","log","rev-parse","show","status"]),It=new Set(["","agent.task"]);function Nr(e,t){const r=e.filter(Me),s=Sr(r);if(t==="raw")return{events:r,hiddenDetailEvents:0,collapsedEvents:0,relatedEventsByTrace:s};const a=Er(r),i=[];let u=0;for(const k of a.values())(t==="details"||Ir(k))&&(u+=k.length,i.push(Tr(k)));return{events:i,hiddenDetailEvents:Math.max(0,r.length-u),collapsedEvents:Math.max(0,u-i.length),relatedEventsByTrace:s}}function Me(e){const t=V(e);return e.category==="agent-action"||t.triggeredBy==="agent"||t.source==="workspace-ai"}function V(e){return e.data&&typeof e.data=="object"&&!Array.isArray(e.data)?e.data:{}}function h(e,t){const r=e[t];return typeof r=="string"&&r.trim()?r:null}function Le(e){return e.kind==="span"?e.traceId:h(V(e),"traceId")}function at(e){return h(V(e),"parentTraceId")}function Je(e){const t=V(e).metadata;if(!ct(t))return null;const r=t.command;return Array.isArray(r)&&r.every(s=>typeof s=="string")?r:typeof r=="string"&&r.trim()?r.trim().split(/\s+/):null}function rt(e){if(!e||e.length===0)return!1;const t=_t(e[0]);if(kr.has(t))return!0;if(t==="git"){const r=e.find((s,a)=>a>0&&!s.startsWith("-"));return r?jr.has(r):!1}return!1}function it(e){const t=V(e),r=h(t,"appId")??h(t,"targetAppId");if(r)return r;const s=h(t,"action")??h(t,"playbook")??h(t,"commandId"),a=s&&!It.has(s)?Ar(s):null;if(a)return a;const i=Je(e);for(const u of i??[]){const k=At(u);if(k)return k}return null}function Cr(e){const t=V(e)[Tt];if(!ct(t))return null;const r=h(t,"traceId"),s=Pe(t,"eventCount"),a=Pe(t,"startedAt"),i=Pe(t,"endedAt"),u=Pe(t,"durationMs"),k=Pe(t,"hiddenDetailEvents")??0;return!r||s===void 0||a===void 0||i===void 0||u===void 0?null:{traceId:r,eventCount:s,startedAt:a,endedAt:i,durationMs:u,hiddenDetailEvents:k}}function Rt(e){if(!e||e.length===0)return null;const t=_t(e[0]),r=e.map(_r).find(Boolean);return rt(e)?r?`Read ${r} with ${t}`:`Read with ${t}`:t==="bun"&&e[1]==="run"&&e[2]?`Run bun ${e[2]}`:e.slice(0,4).join(" ")}function vt(e){return!e||e==="agent.task"?"Agent task":e.replace(/^hudson\./,"").replace(/[._:-]+/g," ").replace(/\s+/g," ").trim().split(" ").map((r,s)=>s===0?Dr(r):r).join(" ")}function Er(e){const t=new Map;for(const r of e){const s=Le(r)??r.id,a=t.get(s);a?a.push(r):t.set(s,[r])}return t}function Sr(e){const t=new Map,r=(s,a)=>{if(!s)return;const i=t.get(s);i?i.some(u=>u.id===a.id)||i.push(a):t.set(s,[a])};for(const s of e)r(Le(s)??s.id,s),r(at(s),s),r(s.kind==="span"?s.parentId??null:null,s);for(const s of t.values())s.sort((a,i)=>a.timestamp-i.timestamp);return t}function Tr(e){const t=[...e].sort((u,k)=>u.timestamp-k.timestamp),r=Qe(t,u=>qe(u)===3)??Qe(t,u=>qe(u)===2)??Qe(t,u=>qe(u)===1)??t[t.length-1],s=Le(r)??r.id,a=t[0]?.timestamp??r.timestamp,i=t[t.length-1]?.timestamp??r.timestamp;return{...r,data:{...V(r),[Tt]:{traceId:s,eventCount:t.length,startedAt:a,endedAt:i,durationMs:Math.max(0,i-a),hiddenDetailEvents:Math.max(0,t.length-1)}}}}function Ir(e){return e.every(t=>at(t))?!1:e.some(t=>{if(t.kind==="span")return!0;const r=V(t),s=h(r,"action")??h(r,"playbook")??"",a=!It.has(s),i=Je(t);return a||h(r,"commandId")||it(t)&&!i||Rr(r)&&!rt(i)?!0:!!(i&&!rt(i))})}function Rr(e){const t=e.args;return ct(t)&&typeof t.prompt=="string"&&t.prompt.trim().length>0}function qe(e){if(e.kind==="span")return e.status==="error"?3:e.status==="ok"?2:e.status==="active"?1:0;const t=h(V(e),"status")??(e.kind==="log"?e.level:void 0);return t==="failed"||t==="error"?3:t==="completed"||t==="ok"?2:t==="started"||t==="active"?1:0}function Qe(e,t){for(let r=e.length-1;r>=0;r--)if(t(e[r]))return e[r]}function Ar(e){if(!e)return null;const[t]=e.split(/[.:_-]/);return t||null}function At(e){const t=e.match(/(?:^|\/)app\/apps\/([^/\s]+)/);return t?t[1]:null}function _r(e){const t=At(e);return t||null}function _t(e){return e.split("/").pop()??e}function ct(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Pe(e,t){const r=e[t];return typeof r=="number"&&Number.isFinite(r)?r:void 0}function Dr(e){return e&&`${e[0].toUpperCase()}${e.slice(1)}`}var $r=o.createContext(null);function Mr(){return o.useContext($r)}function Lr(e){const t=Mr();return!t||e.startsWith("inst:")||e.startsWith("hudson.ws.")?e:`inst:${t.instanceId}:${e}`}function Or(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&typeof e.__v=="number"&&"value"in e}function Br(e,t){const r=Et.getItem(e);if(!r)return;let s;try{s=JSON.parse(r)}catch{return}const a=t?.version;if(a===void 0)return s;const[i,u]=Or(s)?[s.value,s.__v]:[s,0];if(u===a)return i;if(t?.migrate)try{return t.migrate(i,u)}catch{return}}function zr(e,t,r){let s;try{s=JSON.stringify(r===void 0?t:{__v:r,value:t})}catch{return}if(typeof s=="string"&&Et.setItem(e,s))try{window.dispatchEvent(new CustomEvent("hudson:saved",{detail:{key:e}}))}catch{}}var Pr=()=>()=>{},Fr=()=>!0,Hr=()=>!1;function Wr(){return o.useSyncExternalStore(Pr,Fr,Hr)}function Vr(e,t,r={}){const s=Wr(),a=Lr(e),i=r.enabled??!0,{version:u}=r,[k,ae]=o.useState(t),se=o.useRef(!1);if(s&&i&&!se.current){se.current=!0;const G=Br(a,r);G!==void 0&&ae(G)}return o.useEffect(()=>{!s||!i||zr(a,k,u)},[a,k,s,i,u]),[k,ae]}var Ur=["debug","info","warn","error"],Kr=["log","metric","span"],Gr="hudson:open-app",Ze=340,Ge=440,wt=900,Jr=420,Xr="hudson.hud-logger.inspector-width",Yr=1,kt={key:"time",direction:"desc"},jt="grid-cols-[62px_64px_76px_58px_72px_112px_128px_minmax(260px,1fr)_92px]";function qr(e){return typeof e!="number"||e===380?Ge:e}function Dt(e=Ue,t={}){const r=t.maxEvents??200,[s,a]=o.useState(()=>e.snapshot().slice(-r).reverse());return o.useEffect(()=>{const i=()=>{a(e.snapshot().slice(-r).reverse())},u=e.subscribe(i);return i(),u},[r,e]),s}function $t(e){const t=new Map;for(const r of e){if(r.kind!=="span")continue;(!t.get(r.id)||r.status!=="active")&&t.set(r.id,r.status)}return{total:e.length,errors:e.filter(r=>r.kind==="log"&&r.level==="error").length,warnings:e.filter(r=>r.kind==="log"&&r.level==="warn").length,agentActions:e.filter(Me).length,activeSpans:Array.from(t.values()).filter(r=>r==="active").length,lastEvent:e[0]??null}}function Qr(e=Ue,t={}){const r=Dt(e,t);return o.useMemo(()=>$t(r),[r])}function Rn({observability:e=Ue,maxEvents:t=200,label:r="Logs",className:s="",showCounts:a=!1}){const i=Qr(e,{maxEvents:t}),u=i.errors>0?"red":i.warnings>0||i.activeSpans>0?"amber":"emerald";return n.jsxs("span",{className:`inline-flex min-w-0 items-center gap-2 font-mono text-[9px] font-light uppercase tracking-[0.18em] ${vn(u)} ${s}`,title:`${i.total} events, ${i.errors} errors, ${i.activeSpans} active spans`,children:[n.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${wn(u)}`}),n.jsx("span",{children:r}),a&&i.errors>0?n.jsxs("span",{className:"tabular-nums font-semibold",children:[i.errors," err"]}):a&&i.warnings>0?n.jsxs("span",{className:"tabular-nums",children:[i.warnings," warn"]}):null]})}function An({observability:e=Ue,events:t,replayEvents:r,maxEvents:s=200,title:a="HudLogger",className:i="",emptyMessage:u="No events match the current filters.",showHeader:k=!0,showInspector:ae=!0,initialTail:se=!0,initialScope:G="all"}){const N=Dt(e,{maxEvents:s}),P=o.useMemo(()=>t?t.slice(0,s):!r||r.length===0?N:yn(r,N,s),[t,r,N,s]),[we,ke]=o.useState(null),[Z,ie]=o.useState("all"),[J,je]=o.useState("all"),[S,$e]=o.useState(G),[g,ge]=o.useState(G==="agent-actions"?"actions":"raw"),[I,Oe]=o.useState(""),[ee,Ne]=o.useState(se),[w,Ce]=o.useState(kt),[X,A]=o.useState(null),[Re,_]=Vr(Xr,Ge,{version:Yr,migrate:qr}),O=o.useRef(null),ce=o.useRef(null),[B,Y]=o.useState(!1),D=o.useMemo(()=>Nr(P,S==="agent-actions"?g:"raw"),[g,P,S]),oe=S==="agent-actions"?D.events:P,he=o.useMemo(()=>oe.filter(l=>{if(J!=="all"&&l.kind!==J||Z!=="all"&&(l.kind!=="log"||l.level!==Z))return!1;if(!I.trim())return!0;const x=Le(l)??l.id,b=D.relatedEventsByTrace.get(x)??[];return dn(l,b).includes(I.trim().toLowerCase())}),[D.relatedEventsByTrace,J,Z,I,oe]),F=o.useMemo(()=>gn(he,w),[he,w]),be=ee&&w.key==="time"&&w.direction==="desc"?F[0]?Te(F[0]):null:we,v=F.find(l=>Te(l)===be)??F[0]??null,z=v?Le(v)??v.id:null,j=z?D.relatedEventsByTrace.get(z)??[]:[],te=o.useMemo(()=>$t(P),[P]),re=o.useCallback(async(l,x)=>{await bn(l)&&(A(x),window.setTimeout(()=>{A(y=>y===x?null:y)},1200))},[]),ne=o.useCallback(l=>{Ne(!1),ke(Te(l))},[]),$=o.useCallback(l=>{Ne(!1),Ce(x=>x.key!==l?{key:l,direction:xn(l)}:{key:l,direction:x.direction==="asc"?"desc":"asc"})},[]),T=o.useCallback(()=>{ee||Ce(kt),Ne(l=>!l)},[ee]),Ee=o.useCallback(l=>{const x=nt(l);!x||typeof window>"u"||window.dispatchEvent(new CustomEvent(Gr,{detail:{appId:x,workspaceId:on(l),source:"hud-logger"}}))},[]),R=o.useCallback((l,x)=>{const b=Math.min(wt,Math.max(Ze,x-Jr));return Math.max(Ze,Math.min(b,l))},[]),q=o.useCallback(l=>{if(l.button!==0)return;const x=O.current,b=ce.current;if(!x||!b)return;l.preventDefault();const y=l.clientX,de=b.getBoundingClientRect().width;Y(!0),document.body.style.cursor="col-resize",document.body.style.userSelect="none";const Ae=M=>{const L=x.getBoundingClientRect().width,Se=R(de+(y-M.clientX),L);b.style.setProperty("--inspector-width",`${Se}px`)},fe=M=>{const L=x.getBoundingClientRect().width,Se=R(de+(y-M.clientX),L);_(Se),Y(!1),document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("pointermove",Ae),window.removeEventListener("pointerup",fe),window.removeEventListener("pointercancel",fe)};window.addEventListener("pointermove",Ae),window.addEventListener("pointerup",fe),window.addEventListener("pointercancel",fe)},[R,_]),U=o.useCallback(()=>{_(Ge)},[_]);o.useEffect(()=>{if(typeof window>"u")return;const l=O.current;if(!l)return;const x=new ResizeObserver(()=>{const b=l.getBoundingClientRect().width;_(y=>{const de=R(y,b);return de===y?y:de})});return x.observe(l),()=>x.disconnect()},[R,_]);const ue=o.useMemo(()=>({"--inspector-width":`${Re}px`}),[Re]);return n.jsxs("section",{ref:O,className:`flex min-h-[520px] flex-col overflow-hidden rounded-md border border-border bg-background text-foreground lg:flex-row ${i}`,children:[n.jsxs("main",{className:"flex min-h-0 min-w-0 flex-col border-b border-border/70 lg:flex-1 lg:border-b-0",children:[k&&n.jsxs("div",{className:"shrink-0 border-b border-border/70 bg-card/80 px-3 py-2.5",children:[n.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[n.jsx(en,{ariaLabel:"copy filtered table",copied:X==="table",disabled:F.length===0,label:"copy all",onClick:()=>{re(mn(F),"table")}}),n.jsxs("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 font-mono text-[11px] font-normal uppercase tracking-[0.14em] text-muted-foreground",children:[n.jsx("span",{children:a}),n.jsxs("span",{className:"text-accent",children:[F.length," shown"]}),n.jsxs("span",{children:[te.total," buffered"]}),n.jsxs("span",{children:[te.agentActions," agent"]}),n.jsxs("span",{children:[te.errors," errors"]}),te.activeSpans>0&&n.jsxs("span",{className:"text-warning",children:[te.activeSpans," active"]}),S==="agent-actions"&&g!=="raw"&&D.hiddenDetailEvents>0&&n.jsxs("span",{children:[D.hiddenDetailEvents," detail hidden"]}),S==="agent-actions"&&D.collapsedEvents>0&&n.jsxs("span",{children:[D.collapsedEvents," collapsed"]})]})]}),n.jsxs("label",{className:"mt-2 flex min-w-0 items-center gap-2 rounded-md border border-border/70 bg-muted/20 px-2.5 py-2 font-mono text-[13px] font-normal text-accent transition-colors focus-within:border-accent/40 focus-within:bg-muted/30",children:[n.jsx("span",{className:"shrink-0 text-success",children:"$"}),n.jsx("input",{value:I,onChange:l=>Oe(l.target.value),placeholder:"grep message, category, payload",className:"min-w-0 flex-1 bg-transparent text-foreground outline-none placeholder:text-muted-foreground"})]}),n.jsxs("details",{className:"mt-2 text-left",children:[n.jsx("summary",{className:"cursor-pointer font-mono text-[11px] font-normal uppercase tracking-[0.14em] text-muted-foreground hover:text-foreground",children:"filters / controls"}),n.jsxs("div",{className:"mt-3 grid gap-3 border-t border-border/60 pt-3 md:grid-cols-[1fr_1fr_1fr_1fr_auto]",children:[n.jsxs(Ke,{label:"Scope",children:[n.jsx(ve,{active:S==="all",onClick:()=>$e("all"),children:"all"}),n.jsx(ve,{active:S==="agent-actions",onClick:()=>$e("agent-actions"),children:"agent actions"})]}),S==="agent-actions"?n.jsxs(Ke,{label:"Rows",children:[n.jsx(ve,{active:g==="actions",onClick:()=>ge("actions"),children:"actions"}),n.jsx(ve,{active:g==="details",onClick:()=>ge("details"),children:"details"}),n.jsx(ve,{active:g==="raw",onClick:()=>ge("raw"),children:"raw"})]}):n.jsx("div",{}),n.jsxs(Ke,{label:"Kind",children:[n.jsx(ve,{active:J==="all",onClick:()=>je("all"),children:"all"}),Kr.map(l=>n.jsx(ve,{active:J===l,onClick:()=>je(l),children:l},l))]}),n.jsxs(Ke,{label:"Level",children:[n.jsx(ve,{active:Z==="all",onClick:()=>ie("all"),children:"all"}),Ur.map(l=>n.jsx(ve,{active:Z===l,onClick:()=>ie(l),children:l},l))]}),n.jsx("div",{className:"flex flex-wrap items-end gap-2",children:n.jsxs("button",{type:"button",onClick:T,className:`rounded-md border px-2.5 py-1.5 font-mono text-[11px] font-normal uppercase tracking-[0.12em] transition-colors ${ee?"border-accent/30 bg-accent/10 text-accent":"border-border/70 bg-muted/20 text-muted-foreground hover:border-border hover:text-foreground"}`,children:["tail ",ee?"on":"off"]})})]})]})]}),n.jsx("div",{className:"max-h-[650px] overflow-auto lg:max-h-none lg:flex-1 lg:min-h-0",children:n.jsxs("div",{className:"min-w-[980px] font-mono text-[11px] font-normal",children:[n.jsxs("div",{className:`sticky top-0 z-10 grid min-h-8 ${jt} items-center border-b border-border/70 bg-card px-3 py-1.5 font-medium uppercase tracking-[0.12em] text-muted-foreground`,children:[n.jsx("span",{className:"sticky left-0 bg-card pr-2",children:"Copy"}),n.jsx("span",{children:"Open"}),n.jsx(De,{column:"time",label:"Time",sort:w,onSort:$}),n.jsx(De,{column:"kind",label:"Kind",sort:w,onSort:$}),n.jsx(De,{column:"level",label:"Level",sort:w,onSort:$}),n.jsx(De,{column:"category",label:"Category",sort:w,onSort:$}),n.jsx(De,{column:"target",label:"Target",sort:w,onSort:$}),n.jsx(De,{column:"message",label:"Message",sort:w,onSort:$}),n.jsx(De,{column:"id",label:"Id",sort:w,onSort:$})]}),F.map(l=>{const x=nt(l),b=Te(l);return n.jsxs("div",{role:"button",tabIndex:0,onClick:()=>ne(l),onKeyDown:y=>{(y.key==="Enter"||y.key===" ")&&(y.preventDefault(),ne(l))},className:`grid min-h-[34px] w-full ${jt} items-center border-b border-l-2 px-3 py-2 text-left transition-colors ${v&&Te(v)===b?"border-b-border/40 border-l-accent bg-accent/[0.08]":"border-b-border/40 border-l-transparent hover:bg-muted/30"}`,children:[n.jsx("button",{type:"button","aria-label":`copy row ${st(l.id)}`,onClick:y=>{y.stopPropagation(),re(ot(l).join(" "),`row:${b}`)},className:`sticky left-0 z-[1] justify-self-start rounded border border-border/70 px-1.5 py-0.5 font-mono text-[10px] font-normal uppercase tracking-[0.1em] text-muted-foreground transition-colors hover:border-accent/30 hover:text-accent ${v&&Te(v)===b?"bg-accent/[0.08]":"bg-background"}`,children:X===`row:${b}`?"copied":"copy"}),x?n.jsx("button",{type:"button","aria-label":`open ${He(l)}`,onClick:y=>{y.stopPropagation(),Ee(l)},className:"justify-self-start rounded border border-border/70 bg-muted/20 px-1.5 py-0.5 font-mono text-[10px] font-normal uppercase tracking-[0.1em] text-muted-foreground transition-colors hover:border-accent/30 hover:text-accent",children:"open"}):n.jsx("span",{className:"text-muted-foreground/45",children:"-"}),n.jsx("span",{className:"tabular-nums text-muted-foreground",children:ut(l)}),n.jsx("span",{className:"uppercase tracking-[0.13em] text-muted-foreground",children:l.kind}),n.jsx("span",{className:`uppercase tracking-[0.13em] ${lt(l)}`,children:xe(l)}),n.jsx("span",{className:"truncate uppercase tracking-[0.13em] text-muted-foreground",children:l.category??"-"}),n.jsx("span",{className:"truncate font-sans text-[12px] font-normal normal-case tracking-normal text-muted-foreground",children:He(l)}),n.jsx("span",{className:"truncate font-sans text-[13px] font-normal normal-case tracking-normal text-foreground",children:Ie(l)}),n.jsx("span",{className:"truncate text-muted-foreground",children:st(l.id)})]},b)}),F.length===0&&n.jsx("div",{className:"border-b border-border/40 px-3 py-5 font-sans text-[13px] text-muted-foreground",children:u})]})})]}),ae&&n.jsxs(n.Fragment,{children:[n.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":"Resize payload inspector","aria-valuenow":Re,"aria-valuemin":Ze,"aria-valuemax":wt,title:"Drag to resize · Double-click to reset",onPointerDown:q,onDoubleClick:U,className:`group hidden shrink-0 cursor-col-resize items-stretch justify-center transition-colors lg:flex lg:w-[5px] ${B?"bg-accent/15":"hover:bg-accent/10"}`,children:n.jsx("div",{className:`w-px transition-colors ${B?"bg-accent/80":"bg-border group-hover:bg-accent/60"}`})}),n.jsx("aside",{ref:ce,style:ue,className:"flex w-full shrink-0 flex-col bg-background lg:w-[var(--inspector-width)]",children:n.jsx(Zr,{copied:v?X===`inspector:${Te(v)}`:!1,event:v,relatedEvents:j,onCopyRow:l=>{re(ot(l).join(" "),`inspector:${Te(l)}`)},onOpenTarget:Ee})})]})]})}function Zr({copied:e,event:t,relatedEvents:r,onCopyRow:s,onOpenTarget:a}){const i=t?nt(t):null;return n.jsxs("div",{className:"flex min-h-0 flex-1 flex-col",children:[n.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-2 border-b border-border/70 bg-card/40 px-3 py-2.5 lg:px-4",children:[n.jsx("div",{className:"font-mono text-[11px] font-medium uppercase tracking-[0.15em] text-foreground/80",children:"Payload inspector"}),t?n.jsxs("div",{className:"flex items-center gap-2",children:[i?n.jsx("button",{type:"button",onClick:()=>a(t),className:"rounded-md border border-border/70 bg-muted/20 px-2 py-1 font-mono text-[11px] font-normal uppercase tracking-[0.11em] text-muted-foreground transition hover:border-accent/30 hover:text-accent",children:"open app"}):null,n.jsx("button",{type:"button",onClick:()=>s(t),className:"rounded-md border border-border/70 bg-muted/20 px-2 py-1 font-mono text-[11px] font-normal uppercase tracking-[0.11em] text-muted-foreground transition hover:border-accent/30 hover:text-accent",children:e?"copied":"copy row"}),n.jsx("div",{className:`font-mono text-[11px] uppercase tracking-[0.12em] ${lt(t)}`,children:xe(t)})]}):null]}),n.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-3 py-3 lg:px-4 lg:py-4",children:t?n.jsxs("div",{className:"grid gap-3",children:[n.jsxs("div",{className:"overflow-hidden rounded-md border border-accent/25 bg-accent/[0.07]",children:[n.jsxs("div",{className:"flex flex-wrap items-center gap-2 border-b border-accent/15 px-3 py-2",children:[n.jsx(tn,{event:t}),n.jsx("span",{className:"font-mono text-[11px] uppercase tracking-[0.12em] text-muted-foreground",children:t.kind})]}),n.jsxs("div",{className:"px-3 py-2",children:[n.jsx("div",{className:"font-mono text-[11px] font-medium uppercase tracking-[0.13em] text-accent",children:"selected event"}),n.jsx("div",{className:"mt-1 break-words text-[14px] font-normal leading-5 text-foreground",children:Ie(t)})]})]}),an(t).map(u=>n.jsx(rn,{section:u},u.title)),n.jsx(nn,{events:r,selectedId:t.id}),n.jsx(et,{label:"payload.data",value:t.data??{}}),t.kind==="metric"&&t.tags?n.jsx(et,{label:"metric.tags",value:t.tags}):null,t.kind==="span"&&t.error?n.jsx(et,{label:"span.error",value:t.error}):null]}):n.jsx("div",{className:"rounded-md border border-border/60 bg-muted/20 p-4 text-[13px] leading-6 text-muted-foreground",children:"No event selected."})})]})}function Ke({label:e,children:t}){return n.jsxs("div",{children:[n.jsx("div",{className:"font-mono text-[11px] uppercase tracking-[0.14em] text-muted-foreground",children:e}),n.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:t})]})}function ve({active:e,onClick:t,children:r}){return n.jsx("button",{type:"button",onClick:t,className:`rounded-md border px-2 py-1 font-mono text-[11px] uppercase tracking-[0.1em] transition-colors ${e?"border-accent/30 bg-accent/10 text-accent":"border-border/70 bg-muted/20 text-muted-foreground hover:border-border hover:text-foreground"}`,children:r})}function De({column:e,label:t,sort:r,onSort:s}){const a=r.key===e,i=a?r.direction==="asc"?Ut:Ft:Wt,u=r.direction==="asc"?"ascending":"descending";return n.jsxs("button",{type:"button","aria-label":`Sort by ${t}${a?`, currently ${u}`:""}`,"aria-pressed":a,onClick:()=>s(e),className:`flex min-w-0 items-center gap-1.5 text-left uppercase tracking-[0.14em] transition ${a?"text-accent":"text-muted-foreground hover:text-foreground"}`,children:[n.jsx("span",{className:"min-w-0 truncate",children:t}),n.jsx(i,{size:10,strokeWidth:1.75,"aria-hidden":"true",className:"shrink-0"})]})}function en({ariaLabel:e,copied:t,disabled:r=!1,label:s,onClick:a}){return n.jsx("button",{type:"button","aria-label":e,disabled:r,onClick:a,className:"rounded-md border border-border/70 bg-muted/20 px-2 py-1 font-mono text-[11px] font-normal uppercase tracking-[0.11em] text-muted-foreground transition hover:border-accent/30 hover:text-accent disabled:cursor-not-allowed disabled:opacity-40",children:t?"copied":s})}function tn({event:e}){const t=xe(e),r=Fe(e),s=r==="red"?"border-destructive/30 bg-destructive/10 text-destructive":r==="amber"?"border-warning/30 bg-warning/10 text-warning":r==="emerald"?"border-success/30 bg-success/10 text-success":"border-accent/30 bg-accent/10 text-accent";return n.jsx("span",{className:`rounded-full border px-2 py-0.5 font-mono text-[10px] uppercase tracking-[0.11em] ${s}`,children:t})}function rn({section:e}){return n.jsxs("section",{className:"overflow-hidden rounded-md border border-border/60 bg-muted/15",children:[n.jsx("div",{className:"border-b border-border/50 bg-muted/30 px-3 py-2 font-mono text-[10px] font-medium uppercase tracking-[0.14em] text-foreground/70",children:e.title}),n.jsx("div",{className:"divide-y divide-border/40",children:e.rows.map(t=>n.jsx(sn,{row:t},`${e.title}-${t.label}`))})]})}function nn({events:e,selectedId:t}){return e.length<=1?null:n.jsxs("section",{className:"overflow-hidden rounded-md border border-border/60 bg-muted/15",children:[n.jsxs("div",{className:"flex items-center justify-between border-b border-border/50 bg-muted/30 px-3 py-2",children:[n.jsx("div",{className:"font-mono text-[10px] font-medium uppercase tracking-[0.14em] text-foreground/70",children:"Trace lines"}),n.jsx("div",{className:"font-mono text-[10px] font-light uppercase tracking-[0.12em] text-muted-foreground",children:e.length})]}),n.jsx("div",{className:"divide-y divide-border/40",children:e.map(r=>{const s=Rt(Je(r));return n.jsxs("div",{className:`grid grid-cols-[74px_82px_minmax(0,1fr)] gap-2 px-3 py-1.5 ${r.id===t?"bg-accent/10":""}`,children:[n.jsx("span",{className:"font-mono text-[10px] tabular-nums text-muted-foreground",children:ut(r)}),n.jsx("span",{className:`font-mono text-[10px] uppercase tracking-[0.11em] ${lt(r)}`,children:xe(r)}),n.jsx("span",{className:"min-w-0 truncate text-[12px] text-foreground/80",children:s??Ie(r)})]},`${r.id}-${r.timestamp}`)})})]})}function sn({row:e}){return n.jsxs("div",{className:"grid grid-cols-[96px_minmax(0,1fr)] items-start gap-3 px-3 py-2",children:[n.jsx("div",{className:"font-mono text-[10px] font-light uppercase tracking-[0.12em] text-muted-foreground",children:e.label}),n.jsx("div",{className:`min-w-0 break-words text-[12px] leading-5 ${e.mono?"font-mono tabular-nums":"font-sans"} ${cn(e.tone)}`,children:e.value})]})}function et({label:e,value:t}){return n.jsxs("div",{className:"overflow-hidden rounded-md border border-border/60 bg-muted/15",children:[n.jsx("div",{className:"border-b border-border/50 bg-muted/30 px-3 py-2 font-mono text-[10px] font-medium uppercase tracking-[0.14em] text-foreground/70",children:e}),n.jsx("pre",{className:"max-h-[360px] overflow-auto whitespace-pre-wrap break-words p-3 font-mono text-[12px] font-light leading-5 text-foreground/80 lg:max-h-none lg:overflow-x-auto",children:JSON.stringify(t,null,2)})]})}function nt(e){return it(e)}function on(e){const t=V(e);return h(t,"workspaceId")??h(t,"targetWorkspaceId")}function He(e){const t=V(e),r=it(e);return h(t,"appName")??h(t,"appId")??r??h(t,"workspaceName")??h(t,"workspaceId")??h(t,"serviceId")??h(t,"target")??"-"}function an(e){const t=[{title:"Identity",rows:[{label:"id",value:e.id,mono:!0},{label:"kind",value:e.kind,tone:"cyan",mono:!0},{label:"category",value:e.category??"none",mono:!0}]},{title:"Signal",rows:[{label:ln(e),value:xe(e),tone:Fe(e),mono:!0},{label:"timestamp",value:tt(e.timestamp),mono:!0}]}];if(Me(e)){const r=V(e),s=Le(e),a=at(e);t.push({title:"Agent Action",rows:[{label:"source",value:h(r,"source")??"agent",mono:!0},{label:"status",value:h(r,"status")??xe(e),tone:Fe(e),mono:!0},{label:"action",value:h(r,"action")??Ie(e),mono:!0},{label:"target",value:He(e),mono:!0},{label:"workspace",value:h(r,"workspaceName")??h(r,"workspaceId")??"unknown",mono:!0},...s?[{label:"trace",value:s,mono:!0}]:[],...a?[{label:"parent",value:a,mono:!0}]:[]]});const i=fn(e),u=Cr(e);(i||u)&&t.push({title:"Request",rows:[...i?[{label:"prompt",value:i}]:[],...u?[{label:"lines",value:String(u.eventCount),mono:!0},{label:"duration",value:`${u.durationMs}ms`,mono:!0}]:[]]})}return e.kind==="log"&&t.push({title:"Log",rows:[{label:"message",value:e.message},{label:"level",value:e.level,tone:Fe(e),mono:!0}]}),e.kind==="metric"&&t.push({title:"Metric",rows:[{label:"name",value:e.name},{label:"type",value:e.metricType,tone:"emerald",mono:!0},{label:"value",value:un(e),tone:"emerald",mono:!0},{label:"unit",value:e.unit??"none",mono:!0}]}),e.kind==="span"&&t.push({title:"Trace",rows:[{label:"name",value:e.name},{label:"trace id",value:e.traceId,mono:!0},{label:"parent id",value:e.parentId??"none",mono:!0},{label:"status",value:e.status,tone:Fe(e),mono:!0},{label:"duration",value:e.durationMs===void 0?"active":`${e.durationMs}ms`,mono:!0},{label:"started",value:tt(e.startTime),mono:!0},{label:"ended",value:e.endTime===void 0?"pending":tt(e.endTime),mono:!0}]}),t}function Ie(e){if(e.kind==="log"){if(Me(e)){const t=V(e),r=Rt(Je(e));if(r){const u=h(t,"status");return u?`${r} ${u}`:r}const s=h(t,"action")??h(t,"commandId")??e.message,a=h(t,"status"),i=vt(s);return a?`${i} ${a}`:i}return e.message}return Me(e)?vt(e.name):e.name}function xe(e){return e.kind==="log"?Me(e)?h(V(e),"status")??e.level:e.level:e.kind==="metric"?e.metricType:e.status}function lt(e){const t=xe(e);return t==="error"||t==="failed"?"text-destructive":t==="warn"||t==="active"||t==="started"?"text-warning":e.kind==="metric"||t==="ok"||t==="completed"?"text-success":"text-accent"}function Fe(e){const t=xe(e);return t==="error"||t==="failed"?"red":t==="warn"||t==="active"||t==="started"?"amber":e.kind==="metric"||t==="ok"||t==="completed"?"emerald":"cyan"}function cn(e="neutral"){return e==="red"?"text-destructive":e==="amber"?"text-warning":e==="emerald"?"text-success":e==="cyan"?"text-accent":"text-foreground"}function ln(e){return e.kind==="log"?"level":e.kind==="metric"?"type":"status"}function un(e){return`${e.value}${e.unit?` ${e.unit}`:""}`}function tt(e){const t=new Date(e);return`${t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}.${String(t.getMilliseconds()).padStart(3,"0")}`}function st(e){return e.length>10?e.slice(-10):e}function Te(e){return e.kind==="span"?`${e.kind}:${e.id}:${e.status}:${e.endTime??"active"}`:`${e.kind}:${e.id}:${e.timestamp}`}function ut(e){return new Date(e.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function ot(e){return[ut(e),e.kind,xe(e),e.category??"",He(e),Ie(e),e.id,JSON.stringify(e.data??{})].map(pn)}function dn(e,t){return[Ie(e),e.category??"",JSON.stringify(e.data??{}),...t.map(s=>`${Ie(s)} ${JSON.stringify(s.data??{})}`)].join(" ").toLowerCase()}function fn(e){const r=V(e).args,s=r&&typeof r=="object"&&!Array.isArray(r)?r.prompt:void 0;return typeof s!="string"||!s.trim()?null:s.replace(/\s+/g," ").trim().slice(0,360)}function mn(e){return[["time","kind","signal","category","target","message","id","payload"].join(" "),...e.map(t=>ot(t).join(" "))].join(`
|
|
47
|
+
`)}function pn(e){return e.replace(/\s+/g," ").trim()}function xn(e){return e==="time"?"desc":"asc"}function gn(e,t){const r=t.direction==="asc"?1:-1;return e.map((s,a)=>({event:s,index:a})).sort((s,a)=>{const i=hn(Nt(s.event,t.key),Nt(a.event,t.key));return i===0?s.index-a.index:i*r}).map(({event:s})=>s)}function Nt(e,t){switch(t){case"time":return e.timestamp;case"kind":return e.kind;case"level":return xe(e);case"category":return e.category??"";case"target":return He(e);case"message":return Ie(e);case"id":return st(e.id)}}function hn(e,t){return typeof e=="number"&&typeof t=="number"?e-t:String(e).localeCompare(String(t),void 0,{numeric:!0,sensitivity:"base"})}async function bn(e){if(navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch{}const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly","true"),t.style.position="fixed",t.style.left="-9999px",t.style.top="0",document.body.appendChild(t),t.focus(),t.select();try{return document.execCommand("copy")}finally{document.body.removeChild(t)}}function yn(e,t,r){const s=new Set,a=[];for(const i of t)s.has(i.id)||(s.add(i.id),a.push(i));for(let i=e.length-1;i>=0;i--){const u=e[i];s.has(u.id)||(s.add(u.id),a.push(u))}return a.sort((i,u)=>u.timestamp-i.timestamp),a.slice(0,r)}function vn(e){return e==="red"?"text-destructive":e==="amber"?"text-warning":"text-success"}function wn(e){return e==="red"?"bg-destructive":e==="amber"?"bg-warning":"bg-success"}function Mt(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function kn(e,t){const r=e.toLowerCase();return r.includes("secret")||r.includes("token")||r.includes("password")||r.includes("apikey")||r.includes("api_key")||t[0]==="set_environment_variable"&&r==="value"}function We(e,t=[]){if(Array.isArray(e))return e.map(s=>We(s,t));if(!Mt(e))return e;const r={};for(const[s,a]of Object.entries(e))r[s]=kn(s,t)?"[redacted]":We(a,[...t,s]);return r}function jn(e){if(e)return e instanceof Error?{name:e.name,message:e.message}:Mt(e)?We(e):{message:String(e)}}function _n(e,t=Ue){const r=e.status??"started",s=r==="failed"?"error":"info";return t.logger[s]("hudson.agent.action",{category:"agent-action",data:{triggeredBy:"agent",source:e.source??"external",origin:e.origin,actor:e.actor,status:r,toolset:e.toolset,chatId:e.chatId,action:e.action,commandId:e.commandId,appId:e.appId,appName:e.appName,workspaceId:e.workspaceId,workspaceName:e.workspaceName,traceId:e.traceId,parentTraceId:e.parentTraceId,args:e.args?We(e.args,[e.action??""]):void 0,metadata:e.metadata?We(e.metadata):void 0,error:jn(e.error)}})}export{In as H,nr as T,Vr as a,Jt as b,cr as c,Xt as d,Ue as e,An as f,Rn as g,_n as l,Tn as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
async function a(t){if(navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(t),!0}catch{}const e=document.createElement("textarea");e.value=t,e.setAttribute("readonly",""),e.style.position="fixed",e.style.left="-9999px",document.body.appendChild(e),e.select();try{return document.execCommand("copy")}catch{return!1}finally{document.body.removeChild(e)}}export{a as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.s-code-screen{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--bg)}.s-code-head{display:flex;align-items:center;gap:12px;flex:none;padding:8px 14px;border-bottom:1px solid var(--border)}.s-code-returnThread{flex:none;min-height:28px;display:inline-flex;align-items:center;gap:6px;padding:3px 9px 3px 7px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:6px;background:color-mix(in srgb,var(--accent) 7%,var(--surface));color:color-mix(in srgb,var(--accent) 62%,var(--ink));font-size:var(--text-sm);font-weight:600;white-space:nowrap;cursor:pointer}.s-code-returnThread:hover,.s-code-returnThread:focus-visible{outline:none;border-color:color-mix(in srgb,var(--accent) 52%,var(--border));background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--ink)}@media(max-width:720px){.s-code-returnThread{width:28px;padding:0;justify-content:center}.s-code-returnThread span{display:none}}.s-code-picker{position:relative;flex:none;min-width:0;max-width:min(420px,100%)}.s-code-pickerTrigger{display:flex;align-items:center;gap:8px;max-width:100%;min-height:28px;padding:3px 8px 3px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--ink);font-size:var(--text-md);cursor:pointer}.s-code-pickerTrigger:hover,.s-code-pickerTrigger:focus-visible{outline:none;border-color:color-mix(in srgb,var(--accent) 40%,var(--border));background:color-mix(in srgb,var(--ink) 3%,var(--surface))}.s-code-pickerTrigger[aria-expanded=true]{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-code-pickerTriggerName{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.s-code-pickerTriggerDetail{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:var(--text-sm)}.s-code-pickerChevron{flex:none;color:var(--dim);transition:transform .12s ease}.s-code-pickerChevron[data-open]{transform:rotate(180deg)}.s-code-pickerPanel{position:absolute;z-index:40;top:calc(100% + 4px);left:0;display:flex;flex-direction:column;gap:6px;width:min(420px,calc(100vw - 32px));padding:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:0 12px 32px color-mix(in srgb,var(--ink) 14%,transparent),0 1px color-mix(in srgb,var(--ink) 4%,transparent)}.s-code-pickerRecents{display:flex;flex-wrap:nowrap;gap:6px;min-width:0;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}.s-code-pickerChip{flex:none;max-width:160px;height:24px;padding:0 10px;overflow:hidden;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--ink) 3%,transparent);color:var(--muted);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.s-code-pickerChip:hover,.s-code-pickerChip:focus-visible{outline:none;color:var(--ink);border-color:color-mix(in srgb,var(--ink) 22%,var(--border));background:color-mix(in srgb,var(--ink) 6%,transparent)}.s-code-pickerChip[data-active]{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 10%,transparent)}.s-code-pickerSearch{position:relative;display:flex;align-items:center;gap:6px;min-height:32px;padding:0 8px 0 28px;border:1px solid var(--border);border-radius:7px;background:var(--bg)}.s-code-pickerSearch:focus-within{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-code-pickerSearchIcon{position:absolute;left:8px;color:var(--dim);pointer-events:none}.s-code-pickerInputStack{position:relative;flex:1;min-width:0}.s-code-pickerGhost{position:absolute;inset:0;overflow:hidden;color:color-mix(in srgb,var(--ink) 28%,transparent);font-size:var(--text-md);line-height:30px;white-space:nowrap;pointer-events:none}.s-code-pickerGhost span{color:transparent}.s-code-pickerInput{position:relative;width:100%;height:30px;padding:0;border:0;background:transparent;color:var(--ink);font-size:var(--text-md);outline:none}.s-code-pickerInput::-webkit-search-cancel-button{opacity:.55}.s-code-pickerHint{flex:none;padding:1px 5px;border:1px solid var(--border);border-radius:4px;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs)}.s-code-pickerHeading{display:flex;justify-content:space-between;gap:8px;padding:2px 4px 0;color:var(--dim);font-size:var(--text-2xs);letter-spacing:.04em;text-transform:uppercase}.s-code-pickerResults{display:flex;flex-direction:column;gap:1px;max-height:280px;overflow:auto}.s-code-pickerOption{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:10px;row-gap:1px;width:100%;padding:7px 8px;border:0;border-radius:6px;background:none;color:var(--ink);text-align:left;cursor:pointer}.s-code-pickerOption:hover,.s-code-pickerOption[data-active]{background:color-mix(in srgb,var(--ink) 6%,transparent)}.s-code-pickerOption[data-selected]{background:color-mix(in srgb,var(--accent) 9%,transparent)}.s-code-pickerOptionMain{display:flex;align-items:center;gap:6px;min-width:0;grid-column:1;grid-row:1}.s-code-pickerOptionMain strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-md);font-weight:600}.s-code-pickerWorktree{flex:none;padding:0 5px;border:1px solid var(--border);border-radius:999px;color:var(--dim);font-size:var(--text-2xs);line-height:16px}.s-code-pickerOptionPath{grid-column:1;grid-row:2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-2xs)}.s-code-pickerOptionMeta{grid-column:2;grid-row:1 / span 2;align-self:center;color:var(--muted);font-size:var(--text-sm);white-space:nowrap}.s-code-pickerEmpty{padding:10px 8px;color:var(--muted);font-size:var(--text-sm)}.s-code-pickerGuide{display:flex;flex-wrap:wrap;gap:10px;padding:2px 4px 0;color:var(--dim);font-size:var(--text-2xs)}.s-code-pickerGuide kbd{margin-right:3px;padding:0 4px;border:1px solid var(--border);border-radius:3px;font-family:var(--font-mono);font-size:var(--text-2xs)}.s-code-pickerOption--deep .s-code-pickerOptionMain strong{color:var(--accent)}.s-code-headStat{color:var(--muted);font-size:var(--text-sm);white-space:nowrap}.s-code-headPath{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-sm)}.s-code-copyLink{flex:none;height:24px;padding:0 8px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-2xs);cursor:pointer;white-space:nowrap}.s-code-copyLink:hover,.s-code-copyLink:focus-visible{outline:none;color:var(--ink);border-color:color-mix(in srgb,var(--ink) 22%,var(--border));background:color-mix(in srgb,var(--ink) 4%,transparent)}.s-code-body{display:flex;flex:1;min-height:0}.s-code-tree{flex:none;width:280px;min-width:200px;overflow:auto;padding:6px 4px;border-right:1px solid var(--border)}.s-code-node{display:flex;align-items:center;gap:5px;width:100%;height:24px;padding-right:8px;border:0;border-radius:5px;background:none;color:var(--muted);font-size:var(--text-md);line-height:1;text-align:left;cursor:pointer;white-space:nowrap}.s-code-node:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 5%,transparent)}.s-code-node[data-selected]{color:var(--ink);background:color-mix(in srgb,var(--accent) 10%,transparent)}.s-code-node--loading{color:var(--dim);cursor:default}.s-code-nodeChevron{flex:none;color:var(--dim);transition:transform .12s ease}.s-code-nodeChevron[data-open]{transform:rotate(90deg)}.s-code-nodeSpacer{flex:none;width:11px}.s-code-nodeName{overflow:hidden;text-overflow:ellipsis}.s-code-node[data-diff] .s-code-nodeName{color:#d3ab6e}.s-code-node[data-diff=untracked] .s-code-nodeName{color:#9ece6a}.s-code-node[data-diff=conflicted] .s-code-nodeName{color:#e08a8a}[data-scout-theme-mode=light] .s-code-node[data-diff] .s-code-nodeName{color:#8c6220}[data-scout-theme-mode=light] .s-code-node[data-diff=untracked] .s-code-nodeName{color:#15803d}[data-scout-theme-mode=light] .s-code-node[data-diff=conflicted] .s-code-nodeName{color:#b04a4a}.s-code-nodeBadge{flex:none;margin-left:auto;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:650;color:#d3ab6e}.s-code-nodeBadge[data-diff=untracked]{color:#9ece6a}.s-code-nodeBadge[data-diff=conflicted]{color:#e08a8a}[data-scout-theme-mode=light] .s-code-nodeBadge{color:#8c6220}[data-scout-theme-mode=light] .s-code-nodeBadge[data-diff=untracked]{color:#15803d}[data-scout-theme-mode=light] .s-code-nodeBadge[data-diff=conflicted]{color:#b04a4a}.s-code-nodeDot{flex:none;width:5px;height:5px;margin-left:auto;border-radius:50%;background:#d3ab6e;opacity:.9}[data-scout-theme-mode=light] .s-code-nodeDot{background:#8c6220}.s-code-treeNote{padding:8px;color:var(--muted);font-size:var(--text-md);overflow-wrap:anywhere}.s-code-main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0;background:color-mix(in srgb,#000 26%,var(--bg))}[data-scout-theme-mode=light] .s-code-main{background:color-mix(in srgb,var(--ink) 3.5%,var(--bg))}.s-code-fileHead{display:flex;align-items:center;gap:10px;flex:none;padding:7px 14px;border-bottom:1px solid var(--border)}.s-code-filePath{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-family:var(--font-mono);font-size:var(--text-sm)}.s-code-fileMeta{flex:none;color:var(--dim);font-size:var(--text-sm);white-space:nowrap}.s-code-fileMode{display:inline-flex;flex:none;gap:2px;padding:2px;border:1px solid var(--border);border-radius:6px;background:color-mix(in srgb,var(--ink) 4%,transparent)}.s-code-fileMode button{height:20px;padding:0 7px;border:0;border-radius:4px;background:transparent;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-xs);cursor:pointer}.s-code-fileMode button:hover{color:var(--ink)}.s-code-fileMode button[data-selected]{background:color-mix(in srgb,var(--accent) 13%,transparent);color:var(--ink)}.s-code-fileAction{display:inline-flex;align-items:center;gap:4px;flex:none;border:0;background:none;padding:2px 4px;color:var(--muted);font-size:var(--text-sm);text-decoration:none;cursor:pointer}.s-code-fileAction:hover{color:var(--ink)}.s-code-fileNote{flex:none;padding:6px 14px 0;color:var(--muted);font-size:var(--text-sm)}.s-code-fileNote a,.s-code-empty a{color:var(--accent)}.s-code-shiki{flex:1;min-height:0;overflow:auto}.s-code-diff{display:flex;flex:1;flex-direction:column;min-width:0;min-height:0}.s-code-diffLayers{display:flex;flex:none;gap:4px;padding:6px 12px;border-bottom:1px solid var(--border)}.s-code-diffLayer{display:inline-flex;align-items:center;gap:7px;height:24px;padding:0 8px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-xs);cursor:pointer}.s-code-diffLayer span{color:var(--dim);font-variant-numeric:tabular-nums}.s-code-diffLayer:hover,.s-code-diffLayer[data-selected]{color:var(--ink);background:color-mix(in srgb,var(--ink) 5%,transparent)}.s-code-diffLayer[data-selected]{border-color:color-mix(in srgb,var(--accent) 28%,var(--border))}.s-code-diff>.rd-surface{flex:1}.s-code-shiki pre{margin:0;padding:10px 0 16px;min-width:max-content;background:transparent!important;font-family:var(--font-mono);font-size:var(--text-md);line-height:1.55;color:var(--ink)}.s-code-shiki code{display:block;counter-reset:codeline}.s-code-shiki .line{display:inline-block;min-width:100%}.s-code-shiki .line[data-focus-line]{background:color-mix(in srgb,var(--accent) 11%,transparent)}.s-code-shiki .line[data-focus-start]{box-shadow:inset 2px 0 color-mix(in srgb,var(--accent) 78%,transparent)}.s-code-shiki .line:before{counter-increment:codeline;content:counter(codeline);display:inline-block;width:36px;margin-right:16px;text-align:right;color:var(--dim)}.s-code-shiki .shiki span{color:var(--shiki-dark);font-style:var(--shiki-dark-font-style, normal);font-weight:var(--shiki-dark-font-weight, inherit)}[data-scout-theme-mode=light] .s-code-shiki .shiki span{color:var(--shiki-light);font-style:var(--shiki-light-font-style, normal);font-weight:var(--shiki-light-font-weight, inherit)}.s-code-shiki .shiki ::selection{background:color-mix(in srgb,var(--accent) 20%,transparent)}.s-code-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:var(--text-md)}.s-code-embed{height:100vh}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e}from"./createLucideIcon-OpA4Amw5.js";const o=[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]],m=e("code-xml",o);export{m as C};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.collapsed-strip{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;padding:4px 0 10px;box-sizing:border-box}.collapsed-strip-label{--csl-ink: color-mix(in srgb, var(--hud-ink, var(--ink)) 58%, transparent);--csl-bg: color-mix(in srgb, var(--hud-ink, var(--ink)) 5%, transparent);--csl-edge: color-mix(in srgb, var(--hud-ink, var(--ink)) 10%, transparent);--csl-mark: color-mix(in srgb, var(--hud-ink, var(--ink)) 28%, transparent);flex:none;display:flex;flex-direction:column;align-items:center;gap:3px;width:34px;margin:0 0 2px;padding:5px 3px 4px;border:1px solid var(--csl-edge);border-radius:8px;background:var(--csl-bg);box-sizing:border-box;-webkit-user-select:none;user-select:none}.collapsed-strip-label-mark{flex:none;width:10px;height:2px;border-radius:999px;background:var(--csl-mark)}.collapsed-strip-label-text{display:block;max-width:100%;font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--text-3xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-align:center;color:var(--csl-ink);line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collapsed-strip-label-count{display:inline-flex;align-items:center;justify-content:center;min-width:14px;height:12px;padding:0 3px;border-radius:999px;background:color-mix(in srgb,var(--hud-ink, var(--ink)) 8%,transparent);font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--text-3xs);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:0;color:var(--csl-ink);line-height:1}.collapsed-strip-label--accent{--csl-ink: color-mix(in srgb, var(--hud-accent, var(--accent)) 88%, var(--hud-ink, var(--ink)));--csl-bg: color-mix(in srgb, var(--hud-accent, var(--accent)) 10%, transparent);--csl-edge: color-mix(in srgb, var(--hud-accent, var(--accent)) 28%, transparent);--csl-mark: var(--hud-accent, var(--accent))}.collapsed-strip-label--attention{--csl-ink: color-mix(in srgb, var(--amber, #e6b84d) 80%, var(--hud-ink, var(--ink)));--csl-bg: color-mix(in srgb, var(--amber, #e6b84d) 10%, transparent);--csl-edge: color-mix(in srgb, var(--amber, #e6b84d) 32%, transparent);--csl-mark: var(--amber, #e6b84d)}.collapsed-strip-label--live{--csl-ink: color-mix(in srgb, var(--green, #4ade80) 78%, var(--hud-ink, var(--ink)));--csl-bg: color-mix(in srgb, var(--green, #4ade80) 9%, transparent);--csl-edge: color-mix(in srgb, var(--green, #4ade80) 28%, transparent);--csl-mark: var(--green, #4ade80)}.collapsed-strip-label--accent .collapsed-strip-label-count,.collapsed-strip-label--attention .collapsed-strip-label-count,.collapsed-strip-label--live .collapsed-strip-label-count{background:color-mix(in srgb,currentColor 14%,transparent);color:inherit}.collapsed-strip--empty{opacity:.9;padding-top:8px}.collapsed-strip-empty-mark{font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--text-md);font-weight:600;color:color-mix(in srgb,var(--hud-ink, var(--ink)) 50%,transparent);-webkit-user-select:none;user-select:none}.collapsed-strip-rule{width:18px;height:1px;margin:2px 0;background:color-mix(in srgb,var(--hud-ink, var(--ink)) 12%,transparent);flex:none}.collapsed-strip-section{display:flex;flex-direction:column;align-items:center;gap:5px;width:100%}.collapsed-strip-section-mark{flex:none;display:flex;flex-direction:column;align-items:center;gap:1px;min-width:28px;padding:2px 4px;border-radius:6px;background:color-mix(in srgb,var(--hud-ink, var(--ink)) 4%,transparent);-webkit-user-select:none;user-select:none}.collapsed-strip-section-mark-text{font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--text-3xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb,var(--hud-ink, var(--ink)) 50%,transparent);line-height:1.1}.collapsed-strip-section-mark-count{font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--text-3xs);font-weight:700;font-variant-numeric:tabular-nums;color:color-mix(in srgb,var(--hud-ink, var(--ink)) 40%,transparent);line-height:1}html[data-scout-double-rail] .scout-collapsed-rail--rich{padding-top:max(44px,env(safe-area-inset-top,0px))}html[data-scout-double-rail] .scout-collapsed-rail-body{padding-top:4px}html[data-scout-double-rail] .collapsed-strip{padding-top:0}html[data-scout-double-rail] .collapsed-strip-label{width:34px;min-height:36px;margin-bottom:21px}html[data-scout-double-rail] .collapsed-strip-rule{height:32px;margin:0;background:none}html[data-scout-double-rail] .collapsed-strip-rule:before{content:"";display:block;position:relative;top:15px;width:100%;height:1px;background:color-mix(in srgb,var(--hud-ink, var(--ink)) 12%,transparent)}.collapsed-chip{position:relative;display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid color-mix(in srgb,var(--hud-ink, var(--ink)) 10%,transparent);border-radius:9px;background:color-mix(in srgb,var(--hud-surface, var(--surface)) 88%,transparent);color:color-mix(in srgb,var(--hud-ink, var(--ink)) 78%,transparent);cursor:pointer;flex:none;transition:background .12s,border-color .12s,box-shadow .12s,color .12s}.collapsed-chip:hover{background:color-mix(in srgb,var(--hud-accent, var(--accent)) 10%,transparent);border-color:color-mix(in srgb,var(--hud-accent, var(--accent)) 28%,transparent);color:var(--hud-ink, var(--ink))}.collapsed-chip--active{background:color-mix(in srgb,var(--hud-accent, var(--accent)) 14%,transparent);border-color:color-mix(in srgb,var(--hud-accent, var(--accent)) 45%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--hud-accent, var(--accent)) 30%,transparent);color:var(--hud-ink, var(--ink))}.collapsed-chip--unread,.collapsed-chip--attention{border-color:color-mix(in srgb,var(--hud-accent, var(--accent)) 35%,transparent)}.collapsed-chip--attention{border-color:color-mix(in srgb,var(--amber, #e6b84d) 50%,transparent)}.collapsed-chip--channel,.collapsed-chip--neutral{background:color-mix(in srgb,var(--hud-ink, var(--ink)) 5%,transparent)}.collapsed-chip-ava{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--text-xs);font-weight:700;color:#111;text-transform:uppercase;-webkit-user-select:none;user-select:none}.collapsed-chip-glyph{display:grid;place-items:center;font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--text-md);font-weight:650;-webkit-user-select:none;user-select:none;line-height:1}.collapsed-chip-dot{position:absolute;top:3px;right:3px;width:6px;height:6px;border-radius:50%;background:var(--hud-accent, var(--accent));box-shadow:0 0 0 1.5px color-mix(in srgb,var(--hud-surface, var(--surface)) 90%,transparent)}.collapsed-chip-dot--attention{background:var(--amber, #e6b84d)}.collapsed-chip-dot--live{background:var(--green, #4ade80)}.collapsed-chip-pin{position:absolute;bottom:2px;right:2px;width:5px;height:5px;border-radius:1px;background:var(--hud-accent, var(--accent));opacity:.85;transform:rotate(45deg)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const i=new Set(["blocked","unavailable","error","missing","not_ready","unready","retired"]),c=new Set(["working","active","running","in_turn"]),s=new Set(["in_flight","queued","waking","dispatching"]),l=new Set(["needs_attention","needs-attention"]);function o(e){return!!(e?.retiredFromFleet||e?.staleLocalRegistration)}function r(e,n){if(o(n))return"blocked";const t=e?.trim().toLowerCase();return t?c.has(t)?"in_turn":s.has(t)?"in_flight":l.has(t)?"needs_attention":i.has(t)?"blocked":"callable":"callable"}function u(e,n){switch(r(e,n)){case"in_turn":case"in_flight":return"working";case"needs_attention":return"working";case"callable":return"available";case"blocked":return"offline"}}function f(e,n){return r(e,n)==="in_turn"}function _(e,n){const t=r(e,n);return t==="in_turn"||t==="in_flight"}function d(e,n){return r(e,n)==="callable"}function g(e,n){return r(e,n)!=="blocked"}function b(e,n){switch(r(e,n)){case"in_turn":return"In turn";case"in_flight":return"In flight";case"needs_attention":return"Needs attention";case"callable":return"Callable";case"blocked":return"Blocked"}}function h(e,n){switch(r(e,n)){case"needs_attention":return 0;case"in_turn":return 1;case"in_flight":return 2;case"callable":return 3;case"blocked":return 4}}const a=["#6366f1","#8b5cf6","#0ea5e9","#14b8a6","#f59e0b","#ef4444","#ec4899","#10b981"];function A(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t)|0;return a[Math.abs(n)%a.length]}function S(e){switch(r(e)){case"in_turn":return"var(--green)";case"in_flight":return"var(--accent)";case"needs_attention":return"var(--amber)";case"callable":return"color-mix(in srgb, var(--accent) 65%, var(--dim))";case"blocked":return"var(--dim)"}}export{_ as a,u as b,b as c,A as d,f as e,d as f,h as g,g as i,r as n,S as s};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.rw-scope{--bg: #0e0f12;--bg-2: #101216;--rail-2: #15171c;--row-hover: #16181e;--sel: #171d26;--line: rgba(255, 255, 255, .065);--line-2: rgba(255, 255, 255, .11);--line-3: rgba(255, 255, 255, .16);--ink: #ece7dd;--ink-1: #c7c1b6;--copy: #9a948a;--muted: #6f6a61;--faint: #4f4b44;--amber: #d2a566;--amber-dim: #a8824a;--mint: #7fbd98;--mint-dim: #5f9377;--coral: #db8a7c;--coral-dim: #b06f63;--cobalt: #8aa6ff;--mono: var(--font-mono, "JetBrains Mono", ui-monospace, monospace);--serif: var(--font-serif, "Spectral", Georgia, serif);--row-h: 30px;--cell-fs: 12px;--pad-x: 18px;--tree-indent: 22px;--cols: minmax(0, 1fr) 188px 56px 92px 224px}.rw-table{position:relative;background:var(--bg);color:var(--ink-1);font-family:var(--mono);font-size:var(--text-lg);border:1px solid var(--line);border-radius:10px;overflow:hidden;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}.rw-table *{box-sizing:border-box}.rw-table ::selection{background:color-mix(in oklab,var(--amber) 30%,transparent);color:#fff}.rw-page-shell{width:100%;padding:24px}.rw-scope.tone-cool{--bg: #0c0e13;--bg-2: #0e1118;--rail-2: #131722;--row-hover: #141821;--sel: #15202b;--ink: #e7e9ef;--ink-1: #c0c5d0;--copy: #8f95a2;--muted: #646b78;--faint: #464d59;--amber: #b6a275;--amber-dim: #8c7c59;--mint: #74b8a4;--mint-dim: #588f80;--coral: #d2887f;--coral-dim: #aa6e66}.rw-scope.tone-mono{--bg: #0e0f11;--bg-2: #101113;--rail-2: #15171a;--row-hover: #161719;--sel: #1b1d20;--ink: #ece9e3;--ink-1: #c5c1b9;--copy: #97938b;--muted: #6c6860;--faint: #4c4942;--amber: #bcb6ab;--amber-dim: #8a857c;--mint: #ccc7bc;--mint-dim: #8d887e;--coral: #cf8b7e;--coral-dim: #a8736a}.rw-head{padding:14px var(--pad-x) 0}.rw-head-top{display:flex;align-items:center;gap:18px;margin-bottom:14px}.rw-eyebrow{font-size:var(--text-xs);letter-spacing:.2em;color:var(--muted)}.rw-clean{font-size:var(--text-xs);letter-spacing:.04em;color:var(--muted);cursor:pointer;display:flex;align-items:center;gap:7px;background:none;border:0;font-family:var(--mono)}.rw-clean:hover{color:var(--ink-1)}.rw-toolbar{position:relative;display:flex;align-items:center;gap:10px;margin-bottom:12px}.rw-refresh-main{display:inline-flex;align-items:center;gap:8px;min-height:28px;padding:6px 11px;border:1px solid color-mix(in oklab,var(--amber) 44%,var(--line-2));border-radius:6px;background:color-mix(in oklab,var(--amber) 15%,var(--bg-2));color:var(--ink);font-family:var(--mono);font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.rw-refresh-main:hover:not(:disabled){border-color:color-mix(in oklab,var(--amber) 62%,var(--line-2));background:color-mix(in oklab,var(--amber) 22%,var(--bg-2))}.rw-refresh-main:disabled{cursor:progress;opacity:.72}.rw-refresh-spin{animation:rw-spin .9s linear infinite}@keyframes rw-spin{to{transform:rotate(360deg)}}.rw-tone{display:flex;align-items:center;gap:2px}.rw-tone button{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);background:none;border:0;padding:3px 7px;border-radius:5px;cursor:pointer;transition:color .12s,background .12s}.rw-tone button:hover{color:var(--copy)}.rw-tone button:disabled{cursor:progress;opacity:.62}.rw-tone button.on{color:var(--ink);background:var(--rail-2)}.rw-refresh-receipt{font-family:var(--mono);font-size:var(--text-xs);color:var(--mint);letter-spacing:.04em;white-space:nowrap}.rw-display-menu{position:relative;margin-left:auto;font-family:var(--mono)}.rw-display-menu summary{display:inline-flex;align-items:center;gap:7px;min-height:28px;padding:6px 9px;border:1px solid var(--line);border-radius:6px;background:color-mix(in oklab,var(--ink) 3%,transparent);color:var(--copy);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;list-style:none}.rw-display-menu summary::-webkit-details-marker{display:none}.rw-display-menu summary:hover{color:var(--ink);border-color:var(--line-2)}.rw-display-panel{position:absolute;right:0;top:calc(100% + 7px);z-index:20;display:grid;gap:10px;min-width:238px;padding:11px;border:1px solid var(--line-2);border-radius:8px;background:var(--bg);box-shadow:0 16px 34px #0000006b}.rw-display-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.rw-display-label{color:var(--muted);font-size:var(--text-2xs);letter-spacing:.16em;text-transform:uppercase}.stats{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:7px;background:var(--bg-2);overflow:hidden}.stat{flex:1 1 0;padding:11px 16px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:3px}.stat:last-child{border-right:0}.stat .v{font-family:var(--serif);font-size:var(--text-5xl);font-weight:600;line-height:1;color:var(--ink);letter-spacing:-.01em}.stat .v.amber{color:var(--amber)}.stat .v.mint{color:var(--mint)}.stat .v.coral{color:var(--coral)}.stat .k{font-size:var(--text-2xs);letter-spacing:.16em;color:var(--muted)}.tbl-wrap{margin-top:16px}.tbl-head{position:sticky;top:0;z-index:3;display:grid;grid-template-columns:var(--cols);align-items:center;padding:0 var(--pad-x);height:30px;background:var(--bg);border-top:1px solid var(--line);border-bottom:1px solid var(--line-2);font-size:var(--text-2xs);letter-spacing:.16em;color:var(--muted)}.tbl-head button{font:inherit;letter-spacing:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:color .12s}.tbl-head button:hover{color:var(--ink-1)}.tbl-head .on{color:var(--ink)}.tbl-head .r{justify-content:flex-end;text-align:right}.tbl-head .c{justify-content:center;text-align:center}.tbl-head .caret{font-size:var(--text-3xs);opacity:0}.tbl-head .on .caret{opacity:1}.repo-grp{display:grid;grid-template-columns:var(--cols);align-items:center;padding:0 var(--pad-x);height:var(--row-h);background:var(--bg-2);border-bottom:1px solid var(--line);border-top:1px solid var(--line)}.repo-grp.attn{box-shadow:inset 2px 0 0 var(--coral-dim)}.rg-name{display:flex;align-items:center;gap:10px;min-width:0}.rg-tw{width:13px;height:13px;flex:0 0 auto;color:var(--muted);display:inline-flex;align-items:center}.rg-nm{font-weight:600;color:var(--ink);font-size:var(--cell-fs);letter-spacing:.01em}.rg-path{font-size:var(--text-xs);color:var(--faint);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rg-badge{flex:0 0 auto;font-size:var(--text-2xs);letter-spacing:.1em;color:var(--copy);background:var(--rail-2);border:1px solid var(--line-2);border-radius:4px;padding:2px 7px}.rg-agg{font-size:var(--text-xs);color:var(--muted);text-align:right;letter-spacing:.04em;white-space:nowrap}.wt{display:grid;grid-template-columns:var(--cols);align-items:center;padding:0 var(--pad-x);height:var(--row-h);border-bottom:1px solid var(--line);cursor:pointer;transition:background .1s}.wt:hover{background:var(--row-hover)}.wt.sel{background:var(--sel);box-shadow:inset 2px 0 0 var(--amber)}.wt.attn .br{color:var(--ink-1)}.wt-name{display:flex;align-items:stretch;min-width:0}.tw-guide{position:relative;width:var(--tree-indent);flex:0 0 auto}.tw-guide:before{content:"";position:absolute;left:8px;top:0;bottom:0;width:1px;background:var(--line-3)}.tw-guide.last:before{bottom:50%}.tw-guide:after{content:"";position:absolute;left:8px;top:50%;width:10px;height:1px;background:var(--line-3)}.wt:hover .tw-guide:before,.wt:hover .tw-guide:after{background:var(--copy)}.wt.sel .tw-guide:after{background:var(--amber)}.wt-name .inner{display:flex;align-items:center;gap:9px;min-width:0}.br{font-size:var(--cell-fs);color:var(--ink-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.br .pre{color:var(--muted)}.br .lead{font-weight:600;color:var(--ink)}.ref{font-size:var(--text-xs);color:var(--faint);flex:0 0 auto}.dot{flex:0 0 auto;width:7px;height:7px;border-radius:50%;position:relative}.dot.live{background:var(--mint)}.dot.dirty{background:var(--copy)}.dot.error{background:var(--coral)}.dot.clean{background:transparent;border:1px solid var(--faint)}.tag{flex:0 0 auto;font-size:var(--text-3xs);letter-spacing:.13em;padding:2px 6px;border-radius:3px;border:1px solid var(--line-2);color:var(--copy);background:var(--rail-2)}.tag.err{color:var(--coral);border-color:var(--coral-dim);background:color-mix(in oklab,var(--coral) 7%,transparent)}.churn{display:flex;align-items:center;gap:9px;justify-content:flex-end}.churn .nums{font-size:var(--text-xs);letter-spacing:.02em;white-space:nowrap}.churn .add{color:var(--ink-1)}.churn .del{color:var(--coral-dim)}.churn .sl{color:var(--faint);margin:0 1px}.cbar{width:62px;height:5px;border-radius:3px;overflow:hidden;display:flex;background:var(--rail-2);flex:0 0 auto}.cbar .g{background:var(--mint-dim)}.cbar .r{background:var(--coral-dim)}.dash{color:var(--faint);text-align:center}.files{text-align:center;font-size:var(--cell-fs);color:var(--ink-1)}.files .conf{color:var(--coral)}.drift{display:flex;gap:5px;justify-content:center}.dp{font-size:var(--text-xs);letter-spacing:.02em;display:inline-flex;align-items:center;gap:2px}.dp.ahead{color:var(--mint-dim)}.dp.behind{color:var(--amber-dim)}.agents{display:flex;align-items:center;gap:7px;min-width:0}.alive{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);color:var(--mint);background:color-mix(in oklab,var(--mint) 9%,transparent);border-radius:4px;padding:2px 6px}.alive .d{width:5px;height:5px;border-radius:50%;background:var(--mint)}.ahandle{font-size:var(--text-xs);color:var(--copy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.amore{font-size:var(--text-xs);color:var(--faint);flex:0 0 auto}.agents-cell{display:flex;align-items:center;gap:8px;min-width:0}.agents-cell .agents{flex:1 1 auto}.wt-diff{flex:0 0 auto;font-family:var(--mono);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--copy);background:color-mix(in oklab,var(--ink) 6%,transparent);border:1px solid var(--line-2);border-radius:4px;padding:2px 7px;cursor:pointer;opacity:0;transition:opacity 90ms ease,color 90ms ease,border-color 90ms ease}.wt:hover .wt-diff,.wt.sel .wt-diff,.wt-diff:focus-visible{opacity:1}.wt-diff:hover{color:var(--ink);border-color:var(--line-3);background:color-mix(in oklab,var(--cobalt) 14%,transparent)}.scan-coverage{border-top:1px solid var(--line);font-size:var(--text-xs);color:var(--muted);line-height:1.5;letter-spacing:.02em}.scan-coverage-row{min-height:36px;display:flex;align-items:center;gap:8px;padding:8px var(--pad-x)}.scan-coverage b{color:var(--copy);letter-spacing:.14em;font-weight:600;flex:0 0 auto}.scan-main{min-width:0;flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scan-chip,.scan-coverage button,.scan-details summary{flex:0 0 auto;padding:2px 6px;border:1px solid var(--line-2);border-radius:4px;color:var(--copy);background:color-mix(in oklab,var(--amber) 7%,transparent);font-family:var(--mono);font-size:var(--text-xs)}.scan-coverage button{cursor:pointer}.scan-coverage button:hover:not(:disabled){color:var(--ink-1);border-color:var(--line-3)}.scan-coverage button:disabled{cursor:progress;opacity:.65}.scan-details{padding:0 var(--pad-x) 10px}.scan-details summary{display:inline-flex;align-items:center;cursor:pointer;list-style:none}.scan-details summary::-webkit-details-marker{display:none}.scan-details ul{max-height:150px;margin:0;padding:9px 0 0 16px;overflow:auto}.scan-details li{margin:0 0 5px;overflow-wrap:anywhere}.scan-detail-examples{display:block;margin-top:2px;color:var(--faint)}.scan-details li::marker{color:var(--faint)}.rw-empty{padding:40px var(--pad-x);text-align:center;font-size:var(--text-md);color:var(--muted)}.rw-open-prs{margin-top:12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink-1);font-family:var(--mono);font-size:var(--text-md);overflow:hidden;-webkit-font-smoothing:antialiased}.rw-open-prs-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--bg-2)}.rw-open-prs-eyebrow{margin-bottom:5px;color:var(--muted);font-size:var(--text-2xs);letter-spacing:.18em;text-transform:uppercase}.rw-open-prs-title{color:var(--ink);font-size:var(--text-md);font-weight:600;line-height:1.2}.rw-open-prs-meta{padding:2px 7px;border:1px solid var(--line-2);border-radius:999px;color:var(--copy);background:var(--rail-2);font-size:var(--text-xs);line-height:1}.rw-open-prs-list,.rw-open-pr-group{display:grid}.rw-open-pr-group+.rw-open-pr-group{border-top:1px solid var(--line)}.rw-open-pr-group-label{padding:8px 16px 5px;color:var(--muted);background:color-mix(in oklab,var(--rail-2) 62%,transparent);font-size:var(--text-2xs);letter-spacing:.16em;text-transform:uppercase}.rw-open-prs-status{margin-top:6px;max-width:48rem;color:var(--copy);font-size:var(--text-xs);line-height:1.35}.rw-pr-assign-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:24px;background:color-mix(in oklab,var(--ink, #111) 42%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.rw-pr-assign-dialog{width:min(480px,100%);max-height:min(84vh,640px);display:flex;flex-direction:column;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink-1);box-shadow:0 18px 48px color-mix(in oklab,#000 28%,transparent);font-family:var(--mono)}.rw-pr-assign-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px 12px;border-bottom:1px solid var(--line);background:var(--bg-2)}.rw-pr-assign-eyebrow{margin-bottom:4px;color:var(--muted);font-size:var(--text-2xs);letter-spacing:.16em;text-transform:uppercase}.rw-pr-assign-title{margin:0;color:var(--ink);font-size:var(--text-lg);font-weight:600;line-height:1.25}.rw-pr-assign-copy{margin:6px 0 0;max-width:28rem;overflow:hidden;color:var(--ink-1);font-size:var(--text-md);font-weight:500;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.rw-pr-assign-meta{margin:4px 0 0;color:var(--muted);font-size:var(--text-xs)}.rw-pr-assign-close{flex:0 0 auto;margin:0;padding:5px 9px;border:1px solid var(--line-2);border-radius:7px;background:var(--rail-2);color:var(--copy);font:inherit;font-size:var(--text-sm);cursor:pointer}.rw-pr-assign-close:hover:not(:disabled){background:var(--row-hover)}.rw-pr-assign-close:disabled{opacity:.55;cursor:not-allowed}.rw-pr-assign-body{display:flex;flex-direction:column;gap:12px;min-height:0;padding:14px 16px 16px}.rw-pr-assign-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}.rw-pr-assign-field{display:flex;flex-direction:column;gap:5px;min-width:0}.rw-pr-assign-field--wide{grid-column:1 / -1}.rw-pr-assign-field>span{color:var(--muted);font-size:var(--text-2xs);letter-spacing:.12em;text-transform:uppercase}.rw-pr-assign-field>span em{font-style:normal;letter-spacing:.04em;text-transform:none;opacity:.75}.rw-pr-assign-field select,.rw-pr-assign-field input{width:100%;margin:0;padding:7px 9px;border:1px solid var(--line-2);border-radius:7px;background:var(--bg-2);color:var(--ink);font:inherit;font-size:var(--text-md)}.rw-pr-assign-field select:focus,.rw-pr-assign-field input:focus{outline:1px solid var(--amber, #c48a2a);outline-offset:0}.rw-pr-assign-field select:disabled,.rw-pr-assign-field input:disabled{opacity:.6}.rw-pr-assign-session{grid-column:1 / -1;margin:0;padding:0;border:0;min-width:0}.rw-pr-assign-session legend{margin:0 0 6px;padding:0;color:var(--muted);font-size:var(--text-2xs);letter-spacing:.12em;text-transform:uppercase}.rw-pr-assign-session-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rw-pr-assign-session-choice{display:flex;flex-direction:column;align-items:flex-start;gap:3px;margin:0;padding:9px 10px;border:1px solid var(--line-2);border-radius:8px;background:var(--bg-2);color:var(--ink-1);font:inherit;text-align:left;cursor:pointer}.rw-pr-assign-session-choice:hover:not(:disabled){background:var(--row-hover)}.rw-pr-assign-session-choice[data-active]{border-color:color-mix(in oklab,var(--amber, #c48a2a) 55%,var(--line));background:color-mix(in oklab,var(--amber, #c48a2a) 14%,var(--bg-2))}.rw-pr-assign-session-choice:disabled{opacity:.5;cursor:not-allowed}.rw-pr-assign-session-title{color:var(--ink);font-size:var(--text-md);font-weight:600}.rw-pr-assign-session-sub{color:var(--muted);font-size:var(--text-xs);line-height:1.35}.rw-pr-assign-hint,.rw-pr-assign-error{margin:0;font-size:var(--text-xs);line-height:1.4}.rw-pr-assign-hint{color:var(--muted)}.rw-pr-assign-error{color:var(--amber, #c48a2a)}.rw-pr-assign-actions{display:flex;justify-content:flex-end}.rw-pr-assign-submit{margin:0;padding:8px 14px;border:1px solid color-mix(in oklab,var(--amber, #c48a2a) 55%,var(--line));border-radius:8px;background:color-mix(in oklab,var(--amber, #c48a2a) 18%,var(--bg-2));color:var(--ink);font:inherit;font-size:var(--text-md);font-weight:600;cursor:pointer}.rw-pr-assign-submit:hover:not(:disabled){background:color-mix(in oklab,var(--amber, #c48a2a) 28%,var(--bg-2))}.rw-pr-assign-submit:disabled{opacity:.55;cursor:not-allowed}@media(max-width:520px){.rw-pr-assign-fields,.rw-pr-assign-session-choices{grid-template-columns:1fr}}.rw-open-pr{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:16px;align-items:center;width:100%;min-height:38px;margin:0;padding:8px 16px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:inherit;font:inherit;text-align:left;text-decoration:none;cursor:pointer}.rw-open-pr:last-child{border-bottom:0}.rw-open-pr:hover{background:var(--row-hover)}.rw-open-pr:focus-visible{outline:1px solid var(--amber);outline-offset:-1px;z-index:1}.rw-open-pr-main,.rw-open-pr-detail{display:flex;align-items:center;gap:9px;min-width:0}.rw-open-pr-number{flex:0 0 auto;color:var(--amber);font-size:var(--text-xs)}.rw-open-pr-title{min-width:0;overflow:hidden;color:var(--ink);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.rw-open-pr-detail{justify-content:flex-end;color:var(--muted);font-size:var(--text-xs)}.rw-open-pr-detail span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rw-open-prs-empty{padding:12px 16px;color:var(--muted);font-size:var(--text-sm)}@media(max-width:900px){.rw-open-pr{grid-template-columns:minmax(0,1fr);gap:4px}.rw-open-pr-detail{justify-content:flex-start;flex-wrap:wrap}}.rw-ctx{display:flex;flex-direction:column;background:var(--bg);color:var(--ink-1);font-family:var(--mono);font-size:var(--text-lg);border:1px solid var(--line);border-radius:10px;overflow:hidden;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;max-height:calc(100vh - 96px)}.rw-ctx *{box-sizing:border-box}.rw-ctx-rail-scope{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--bg)}.rw-ctx-rail-scope .rw-ctx{flex:1 1 auto;min-height:0;max-height:none;border:0;border-radius:0}.rw-ctx-empty{flex:1 1 auto;display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;text-align:center;padding:48px 24px;min-height:220px}.rw-ctx-empty .eb{font-size:var(--text-2xs);letter-spacing:.2em;color:var(--faint)}.rw-ctx-empty .msg{font-size:var(--text-md);color:var(--muted)}.ctx-h{padding:16px 18px 14px;border-bottom:1px solid var(--line)}.ctx-eyebrow{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-2xs);letter-spacing:.2em;color:var(--muted);margin-bottom:12px}.ctx-repo{display:flex;align-items:center;gap:9px;margin-bottom:6px;min-width:0}.ctx-repo .dot{width:7px;height:7px}.ctx-repo .rn{font-weight:600;color:var(--ink);font-size:var(--text-lg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ctx-repo .ctx-state{flex:0 0 auto;margin-left:auto;font-size:var(--text-3xs);letter-spacing:.13em;padding:2px 7px;border-radius:3px;border:1px solid var(--line-2);color:var(--copy);background:var(--rail-2)}.ctx-repo .ctx-state.dirty{color:var(--amber);border-color:var(--amber-dim);background:color-mix(in oklab,var(--amber) 8%,transparent)}.ctx-repo .ctx-state.conflict,.ctx-repo .ctx-state.err{color:var(--coral);border-color:var(--coral-dim);background:color-mix(in oklab,var(--coral) 8%,transparent)}.ctx-repo .ctx-state.clean{color:var(--mint);border-color:var(--mint-dim);background:color-mix(in oklab,var(--mint) 8%,transparent)}.ctx-branch{font-size:var(--text-xl);color:var(--ink);font-family:var(--serif);font-weight:500;margin-bottom:8px;word-break:break-all;line-height:1.25}.ctx-branch .pre{color:var(--muted);font-family:var(--mono);font-size:var(--text-sm)}.ctx-path{font-size:var(--text-xs);color:var(--faint);letter-spacing:.02em;word-break:break-all;line-height:1.5}.ctx-path .ref{color:var(--muted)}.ctx-stats{display:grid;grid-template-columns:1fr 1fr 1fr;border-bottom:1px solid var(--line)}.ctx-stats>div{padding:13px 14px;border-right:1px solid var(--line)}.ctx-stats>div:last-child{border-right:0}.ctx-stats .v{font-family:var(--serif);font-size:var(--text-4xl);font-weight:600;color:var(--ink);line-height:1}.ctx-stats .v.mint{color:var(--mint)}.ctx-stats .v.amber{color:var(--amber)}.ctx-stats .v.dim{color:var(--faint)}.ctx-stats .k{font-size:var(--text-2xs);letter-spacing:.14em;color:var(--muted);margin-top:6px}.ctx-breakdown{display:flex;flex-wrap:wrap;gap:6px;padding:12px 18px;border-bottom:1px solid var(--line)}.ctx-chip{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);letter-spacing:.02em;color:var(--copy);background:var(--rail-2);border:1px solid var(--line);border-radius:4px;padding:3px 8px}.ctx-chip .n{color:var(--ink-1);font-weight:600}.ctx-chip.conf .n{color:var(--coral)}.ctx-body{flex:1 1 auto;overflow:auto;min-height:0}.ctx-sec{padding:14px 18px;border-bottom:1px solid var(--line)}.ctx-sec:last-child{border-bottom:0}.ctx-sec-h{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-2xs);letter-spacing:.16em;color:var(--muted);margin-bottom:12px}.ctx-sec-h .n{color:var(--faint)}.ctx-why{display:flex;flex-wrap:wrap;gap:6px}.ctx-why .pill{font-size:var(--text-xs);color:var(--copy);background:var(--rail-2);border:1px solid var(--line);border-radius:4px;padding:2px 8px}.ctx-err{font-size:var(--text-xs);color:var(--coral);line-height:1.5;word-break:break-word}.ctx-churn{display:flex;align-items:center;gap:12px}.ctx-churn .nums{font-size:var(--text-sm);white-space:nowrap;flex:0 0 auto}.ctx-churn .nums .add{color:var(--ink-1)}.ctx-churn .nums .del{color:var(--coral-dim)}.ctx-churn .nums .sl{color:var(--faint);margin:0 2px}.ctx-churn .cbar{flex:1 1 auto;height:6px;border-radius:3px;overflow:hidden;display:flex;background:var(--rail-2)}.ctx-churn .cbar .g{background:var(--mint-dim)}.ctx-churn .cbar .r{background:var(--coral-dim)}.ctx-churn-clean{font-size:var(--text-sm);color:var(--muted)}.ctx-fchg{display:flex;align-items:center;gap:9px;padding:4px 0;font-size:var(--text-sm);min-width:0}.ctx-fchg .badge{flex:0 0 auto;display:grid;place-items:center;width:18px;height:15px;border-radius:3px;font-size:var(--text-2xs);font-weight:600;line-height:1}.ctx-fchg .fp{color:var(--ink-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.ctx-fchg .fp .dir{color:var(--faint)}.ctx-commit{display:flex;align-items:center;gap:10px;font-size:var(--text-sm)}.ctx-commit .hash{color:var(--amber);flex:0 0 auto}.ctx-commit .t{margin-left:auto;color:var(--faint);flex:0 0 auto;font-size:var(--text-xs)}.ctx-commit .none{color:var(--muted)}.ctx-agent{display:flex;align-items:center;gap:9px;padding:5px 0;font-size:var(--text-sm)}.ctx-agent .d{width:6px;height:6px;border-radius:50%;flex:0 0 auto}.ctx-agent .d.on{background:var(--mint)}.ctx-agent .d.off{background:var(--faint)}.ctx-agent .h{color:var(--ink-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ctx-agent .role{margin-left:auto;color:var(--faint);font-size:var(--text-2xs);letter-spacing:.08em;flex:0 0 auto}.ctx-none{font-size:var(--text-sm);color:var(--muted)}.ctx-more{display:block;width:100%;text-align:left;margin-top:2px;padding:4px 0;font-family:inherit;font-size:var(--text-xs);letter-spacing:.04em;color:var(--muted);background:none;border:0;cursor:pointer;transition:color .12s ease}.ctx-more:hover{color:var(--ink-1)}.ctx-actions{display:flex;gap:8px;padding:14px 18px;border-top:1px solid var(--line);margin-top:auto}.ctx-btn{flex:1 1 0;display:flex;align-items:center;justify-content:center;gap:7px;padding:9px 10px;font-family:var(--mono);font-size:var(--text-xs);letter-spacing:.06em;border-radius:6px;cursor:pointer;border:1px solid var(--line-2);background:var(--rail-2);color:var(--ink-1);transition:color .12s,border-color .12s}.ctx-btn:hover:not(:disabled){border-color:var(--line-3);color:var(--ink)}.ctx-btn:disabled{opacity:.45;cursor:not-allowed}.ctx-btn.primary:not(:disabled){background:var(--amber);color:#1a1407;border-color:var(--amber);font-weight:600}.ctx-btn.primary:not(:disabled):hover{filter:brightness(1.06)}.ctx-ask{display:flex;flex-direction:column;gap:8px;padding:14px 18px;border-top:1px solid var(--line);margin-top:auto;background:color-mix(in oklab,var(--rail-2) 44%,transparent)}.ctx-ask textarea{width:100%;min-height:74px;resize:vertical;border:1px solid var(--line-2);border-radius:7px;background:color-mix(in oklab,var(--bg) 86%,black);color:var(--ink-1);font-family:var(--mono);font-size:var(--text-sm);line-height:1.45;padding:9px 10px;outline:none}.ctx-ask textarea:focus{border-color:var(--line-3);box-shadow:0 0 0 1px color-mix(in oklab,var(--amber) 28%,transparent)}.ctx-ask textarea::placeholder{color:var(--faint)}.ctx-ask textarea:disabled{opacity:.65}.ctx-ask-bar{display:flex;align-items:center;gap:8px}.ctx-ask-bar select{min-width:0;flex:1 1 auto;height:32px;border:1px solid var(--line-2);border-radius:6px;background:var(--rail-2);color:var(--ink-1);font-family:var(--mono);font-size:var(--text-xs);padding:0 8px;outline:none}.ctx-ask-bar .ctx-btn{flex:0 0 auto;min-width:78px;height:32px;padding-block:0}.ctx-ask-foot{display:flex;align-items:center;gap:8px;min-height:18px;font-size:var(--text-2xs);color:var(--faint);line-height:1.35}.ctx-ask-foot>span{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ctx-ask-foot .ok{color:var(--mint)}.ctx-ask-foot .err{color:var(--coral)}.ctx-ask-foot button{flex:0 0 auto;border:0;background:transparent;color:var(--copy);font:inherit;cursor:pointer;padding:0}.ctx-ask-foot button:hover{color:var(--ink)}.bd{position:relative;background:var(--bg);color:var(--ink-1);font-family:var(--mono);font-size:var(--text-lg);border:1px solid var(--line);border-radius:10px;overflow:hidden;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;--bd-cols: 230px minmax(360px, 1fr) 132px 96px 104px;--bd-px: 18px}.bd *{box-sizing:border-box}.bd-head{padding:14px var(--bd-px) 13px;font-size:var(--text-xs);letter-spacing:.06em;line-height:1.5;color:var(--faint);border-bottom:1px solid var(--line)}.bd-axis{display:grid;grid-template-columns:var(--bd-cols);align-items:center;padding:0 var(--bd-px);height:26px;border-bottom:1px solid var(--line-2)}.bd-axis-track{position:relative;height:100%}.bd-axis-lbl{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:var(--text-2xs);letter-spacing:.1em;color:var(--faint);white-space:nowrap}.bd-axis-lbl.bd-origin-lbl{color:var(--muted);text-transform:uppercase;letter-spacing:.16em}.bd-axis-cap{position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%);font-size:var(--text-3xs);letter-spacing:.16em;color:var(--muted);white-space:nowrap}.bd-grp-h{display:flex;align-items:baseline;gap:10px;padding:13px var(--bd-px) 7px;border-bottom:1px solid var(--line);min-width:0}.bd-grp-nm{font-size:var(--text-xs);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--copy)}.bd-grp-path{font-size:var(--text-2xs);letter-spacing:.02em;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bd-row{display:grid;grid-template-columns:var(--bd-cols);align-items:center;gap:0 14px;padding:0 var(--bd-px);height:34px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .1s}.bd-row:hover{background:var(--row-hover)}.bd-row.sel{background:var(--sel);box-shadow:inset 2px 0 0 var(--amber)}.bd-id{display:flex;align-items:center;gap:9px;min-width:0}.bd-br{font-size:var(--cell-fs);color:var(--ink-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bd-br .pre{color:var(--muted)}.bd-track{position:relative;height:100%}.bd-tick{position:absolute;top:7px;bottom:7px;width:1px;background:var(--line)}.bd-tick.bd-tick-origin{background:var(--line-3)}.bd-bar{position:absolute;top:50%;transform:translateY(-50%);height:3px;border-radius:2px}.bd-bar.bd-behind{background:var(--amber-dim)}.bd-bar.bd-ahead{background:var(--mint)}.bd-cap{position:absolute;top:50%;transform:translateY(-50%);width:5px;height:5px;border-radius:50%}.bd-cap.bd-cap-l{left:-1px;background:var(--amber)}.bd-cap.bd-cap-r{right:-1px;background:var(--mint)}.bd-lbl{position:absolute;top:50%;transform:translateY(-50%);font-size:var(--text-2xs);letter-spacing:.02em;white-space:nowrap}.bd-lbl.bd-lbl-l{right:calc(100% + 7px);color:var(--amber-dim)}.bd-lbl.bd-lbl-r{left:calc(100% + 7px);color:var(--mint-dim)}.bd-origin-ring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:7px;height:7px;border-radius:50%;border:1px solid var(--faint)}.bd-churn{display:flex;align-items:center;gap:9px;justify-content:flex-end}.bd-churn-nums{font-size:var(--text-xs);letter-spacing:.02em;white-space:nowrap}.bd-churn-nums .add{color:var(--ink-1)}.bd-churn-nums .del{color:var(--coral-dim)}.bd-churn-nums .sl{color:var(--faint);margin:0 1px}.bd-cbar{width:48px;height:5px;border-radius:3px;overflow:hidden;display:flex;background:var(--rail-2);flex:0 0 auto}.bd-cbar .g{background:var(--mint-dim)}.bd-cbar .r{background:var(--coral-dim)}.bd-agents{display:flex;align-items:center;gap:5px;min-width:0}.bd-av{flex:0 0 auto;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;font-size:var(--text-3xs);font-weight:600;letter-spacing:.02em;color:var(--copy);background:var(--rail-2);border:1px solid var(--line-2)}.bd-av.live{color:var(--ink-1);border-color:var(--mint-dim)}.bd-av-more{font-size:var(--text-2xs);color:var(--faint);flex:0 0 auto}.bd-flag{justify-self:end;font-size:var(--text-2xs);letter-spacing:.13em;padding:3px 8px;border-radius:4px;border:1px solid var(--line-2);color:var(--muted);background:var(--rail-2);white-space:nowrap}.bd-flag.err{color:var(--coral);border-color:var(--coral-dim);background:color-mix(in oklab,var(--coral) 7%,transparent)}.bd-flag.ahead{color:var(--mint-dim);border-color:var(--mint-dim);background:color-mix(in oklab,var(--mint) 6%,transparent)}.bd-flag.rebase{color:var(--amber-dim);border-color:var(--amber-dim);background:color-mix(in oklab,var(--amber) 6%,transparent)}.bd-flag.sync{color:var(--faint)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as o}from"./index-DMiGbrBt.js";import{OpsScreen as i}from"./OpsScreen-Buf3LKjb.js";/* empty css */import"./Provider-C7UKGHQy.js";import"./router-Bq5dwf78.js";import"./terminal-sessions-D5CIR2OL.js";import"./api-h5zurxmi.js";import"./sse-CjIkKo46.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-bARZqTzD.js";import"./DocumentFocusViewer-BeVwwl26.js";import"./createLucideIcon-OpA4Amw5.js";import"./TextDocumentSurface-BpAw4eQS.js";/* empty css */import"./file-text-BODxCjcz.js";import"./x-D3GElQbe.js";import"./chevron-right-XiIHsk4m.js";import"./code-xml-B6jOCM4V.js";import"./arrow-left-DEZzHiPS.js";import"./scout-voice-CU5c0LGi.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-2kv_tGUS.js";import"./MessageComposerSuggestions-DpxN9WiB.js";import"./NewChatComposer-Cs6OsxK6.js";import"./runtime-picker-Bcl5iIX5.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-CbHjZsz1.js";import"./index-CJXzfjo9.js";import"./HarnessMark-Cbv3Ib0c.js";import"./conversation-model-B47vYmWN.js";import"./time-DltNTpLl.js";import"./NewChatOrigin-Bk2OyVjI.js";import"./agent-chat-Bfjd9y6c.js";import"./model-Co0zkMIc.js";import"./text-DsBWV_4k.js";import"./chevron-down-BGk5qoEw.js";import"./search-CWfZtOt2.js";/* empty css */import"./page-status-DpkedE1F.js";import"./AgentLanesView-B9vuEEmZ.js";/* empty css */import"./tail-events-D19uAGe3.js";import"./observe-CuLGD9Zp.js";import"./types-B0PlfpKc.js";import"./AgentAvatar-D90c1Rzk.js";import"./SpriteAvatar-DyaGuhik.js";import"./SessionObserve-yfXFafp8.js";import"./bash-format-BRV5C6Gv.js";import"./tail-display-BdyoLvzY.js";import"./lane-edit-display-C_Aujldz.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-Bla0gBdm.js";import"./lane-observe-D0rfKDnU.js";import"./lane-ask-display-B6iCAVcd.js";import"./mentions-jSuTGeet.js";import"./AgentDetailCard-BcRBRp88.js";import"./AgentLiveActions-DBtnD0qE.js";import"./terminal-takeover-B8UeD9OX.js";import"./openContent-C6XO6kr5.js";import"./eye-0PvebX_a.js";import"./terminal-B9AOZQKR.js";import"./message-markup-3J9pi3nx.js";import"./ObservedTopologyPanel-DyUeV98H.js";import"./ObserveTextFlow-rsFj_rVo.js";import"./use-reduced-motion-RRBkmVkk.js";import"./message-circle-CG-96zts.js";import"./wrench-Bkc_0lKF.js";import"./external-link-CXBytO9o.js";import"./AgentFloorView-8LoAEBwS.js";/* empty css */import"./agent-lanes-model-B4YTt4OF.js";import"./context-budget-CbB4BDcO.js";import"./lane-roster-store-D8x1jac2.js";import"./AgentLanesPreflight-eSAoDsPi.js";import"./AgentLaneChrome-D9ZwUKrl.js";import"./AgentLaneCard-RrNnDZu8.js";/* empty css */import"./AgentLaneSummaryResize-BhFmGNzT.js";import"./clipboard-e3fSpeo7.js";import"./agent-lane-card-model-r2frk57c.js";import"./agent-lane-preview-CmHVe3dU.js";import"./AgentLaneDetailSheet-BXbPls9N.js";import"./SlidePanel-COwtoJqR.js";import"./agent-lane-detail-Djm3YJEa.js";import"./LaneTraceDetailSheet-D1CspRbl.js";import"./LaneTraceEventFocus-BF9ERP5O.js";import"./MissionControlView-lUeAiSVg.js";/* empty css */import"./mission-control-store-BlnEhiCq.js";import"./MissionFocusOverlay-wlCmWDCT.js";import"./mission-control-model-C0fByIjm.js";import"./MissionLogPane-__MVtEl9.js";import"./OpsAgentsView-UN7iOscs.js";/* empty css */import"./DataTable-E8s_MmoA.js";/* empty css */import"./useAgentHoverCard-DMrbBif0.js";import"./sliders-horizontal-1oW76Xc9.js";import"./PlanView-C1CjH3PG.js";/* empty css */import"./AtopView-BCkae3e1.js";/* empty css */import"./TailView-DGj_5HA9.js";import"./useContentSecondaryNav-DMl1WNm7.js";import"./OpsSubnav-DsuXzHah.js";import"./SecondaryNav-B3-nh5dM.js";import"./secondaryNavConfig-DqUIp0Es.js";import"./message-square-DSaGpjFU.js";import"./scroll-text-D6Pdnar7.js";function st({route:r,navigate:t}){return r.view!=="ops"?null:o.jsx(i,{navigate:t,mode:r.mode,tailQuery:r.tailQuery})}export{st as OpsContent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as i}from"./index-DMiGbrBt.js";import{AgentInfoScreen as r}from"./AgentInfoScreen-DZs2_ibL.js";import{AgentsScreen as m}from"./AgentsScreen-DBi8x4MB.js";/* empty css */import"./colors-BtO5_zlx.js";import"./conversation-model-B47vYmWN.js";import"./time-DltNTpLl.js";import"./api-h5zurxmi.js";import"./sse-CjIkKo46.js";import"./index-BWHgHrtv.js";import"./text-DsBWV_4k.js";import"./Provider-C7UKGHQy.js";import"./router-Bq5dwf78.js";import"./terminal-sessions-D5CIR2OL.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-bARZqTzD.js";import"./DocumentFocusViewer-BeVwwl26.js";import"./createLucideIcon-OpA4Amw5.js";import"./TextDocumentSurface-BpAw4eQS.js";/* empty css */import"./file-text-BODxCjcz.js";import"./x-D3GElQbe.js";import"./chevron-right-XiIHsk4m.js";import"./code-xml-B6jOCM4V.js";import"./arrow-left-DEZzHiPS.js";import"./scout-voice-CU5c0LGi.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-2kv_tGUS.js";import"./MessageComposerSuggestions-DpxN9WiB.js";import"./NewChatComposer-Cs6OsxK6.js";import"./runtime-picker-Bcl5iIX5.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-CbHjZsz1.js";import"./index-CJXzfjo9.js";import"./HarnessMark-Cbv3Ib0c.js";import"./NewChatOrigin-Bk2OyVjI.js";import"./agent-chat-Bfjd9y6c.js";import"./model-Co0zkMIc.js";import"./chevron-down-BGk5qoEw.js";import"./search-CWfZtOt2.js";import"./openContent-C6XO6kr5.js";import"./BackToPicker-BRvfostO.js";import"./AgentLiveActions-DBtnD0qE.js";import"./terminal-takeover-B8UeD9OX.js";import"./eye-0PvebX_a.js";import"./terminal-B9AOZQKR.js";import"./ObservedTopologyPanel-DyUeV98H.js";/* empty css */import"./AgentsSubnav-DIEO4NPx.js";import"./SecondaryNav-B3-nh5dM.js";import"./secondaryNavConfig-DqUIp0Es.js";import"./message-square-DSaGpjFU.js";import"./scroll-text-D6Pdnar7.js";import"./library-D-RxGiCw.js";/* empty css */import"./SpriteAvatar-DyaGuhik.js";import"./AgentSessions-DyqOf4nG.js";import"./clipboard-e3fSpeo7.js";import"./agents-project-model-UYiamtrU.js";import"./profile-CVRziEDA.js";import"./AgentAvatar-D90c1Rzk.js";import"./context-budget-CbB4BDcO.js";import"./session-catalog-BmoyVTJ_.js";import"./terminal-relay-CWbJ1RCW.js";import"./ConversationScreen-BDRhx-RU.js";import"./ConversationComposer-Bla3DDvM.js";import"./message-markup-3J9pi3nx.js";import"./mentions-jSuTGeet.js";import"./AgentDetailCard-BcRBRp88.js";import"./message-visibility-kJM8XcSG.js";import"./sessionRead-CvFz2RHv.js";import"./types-B0PlfpKc.js";/* empty css */import"./ConversationHeader-DE3FC0m-.js";import"./ConversationFeedRows-B_gPxcqA.js";import"./ConversationPanels-DLek4H6A.js";import"./use-reduced-motion-RRBkmVkk.js";import"./activity-CA8qS6PI.js";import"./message-circle-CG-96zts.js";import"./tail-display-BdyoLvzY.js";import"./lane-edit-display-C_Aujldz.js";import"./tail-events-D19uAGe3.js";import"./ConversationStatus-BwVLiiO4.js";import"./conversation-icons-IIG5ha6D.js";import"./SessionObserve-yfXFafp8.js";import"./bash-format-BRV5C6Gv.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-Bla0gBdm.js";import"./lane-observe-D0rfKDnU.js";import"./lane-ask-display-B6iCAVcd.js";import"./ObserveTextFlow-rsFj_rVo.js";import"./wrench-Bkc_0lKF.js";import"./external-link-CXBytO9o.js";import"./AgentDefinitionsWorkspace-CUpUrY57.js";import"./project-overview-helpers-BQTc_Ous.js";import"./FileViewerPane-CLgUhSm4.js";/* empty css */import"./agent-essentials-BSY1o46q.js";/* empty css *//* empty css */function _t({route:t,navigate:o}){return t.view==="agent-info"?i.jsx(r,{conversationId:t.conversationId,navigate:o}):t.view==="agents-v2"?i.jsx(m,{navigate:o,selectedAgentId:t.agentId,conversationId:t.conversationId,tab:t.tab,activeRoute:t}):null}export{_t as AgentsContent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as o}from"./index-DMiGbrBt.js";import{SessionRefScreen as t}from"./SessionRefScreen-DRgJu7Jo.js";import{SessionsScreen as m}from"./SessionsScreen-D6XUsZfA.js";import{FlightObserveScreen as p}from"./FlightObserveScreen-6RpZYwVz.js";import"./api-h5zurxmi.js";import"./sse-CjIkKo46.js";import"./index-BWHgHrtv.js";import"./tail-events-D19uAGe3.js";import"./BackToPicker-BRvfostO.js";import"./router-Bq5dwf78.js";import"./terminal-sessions-D5CIR2OL.js";import"./ConversationScreen-BDRhx-RU.js";import"./NewChatComposer-Cs6OsxK6.js";import"./runtime-picker-Bcl5iIX5.js";import"./scout-voice-CU5c0LGi.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-CbHjZsz1.js";import"./createLucideIcon-OpA4Amw5.js";import"./MessageComposerSuggestions-DpxN9WiB.js";import"./index-CJXzfjo9.js";import"./HarnessMark-Cbv3Ib0c.js";import"./conversation-model-B47vYmWN.js";import"./colors-BtO5_zlx.js";import"./time-DltNTpLl.js";import"./NewChatOrigin-Bk2OyVjI.js";import"./keyboard-nav-2kv_tGUS.js";import"./agent-chat-Bfjd9y6c.js";import"./model-Co0zkMIc.js";import"./text-DsBWV_4k.js";import"./x-D3GElQbe.js";import"./chevron-down-BGk5qoEw.js";import"./search-CWfZtOt2.js";import"./file-text-BODxCjcz.js";import"./ConversationComposer-Bla3DDvM.js";import"./Provider-C7UKGHQy.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-bARZqTzD.js";import"./DocumentFocusViewer-BeVwwl26.js";import"./TextDocumentSurface-BpAw4eQS.js";/* empty css */import"./chevron-right-XiIHsk4m.js";import"./code-xml-B6jOCM4V.js";import"./arrow-left-DEZzHiPS.js";import"./message-markup-3J9pi3nx.js";import"./mentions-jSuTGeet.js";import"./AgentDetailCard-BcRBRp88.js";import"./AgentLiveActions-DBtnD0qE.js";import"./terminal-takeover-B8UeD9OX.js";import"./openContent-C6XO6kr5.js";import"./eye-0PvebX_a.js";import"./terminal-B9AOZQKR.js";import"./message-visibility-kJM8XcSG.js";import"./sessionRead-CvFz2RHv.js";import"./clipboard-e3fSpeo7.js";import"./AgentAvatar-D90c1Rzk.js";import"./SpriteAvatar-DyaGuhik.js";import"./types-B0PlfpKc.js";/* empty css */import"./ConversationHeader-DE3FC0m-.js";import"./ConversationFeedRows-B_gPxcqA.js";import"./ConversationPanels-DLek4H6A.js";import"./use-reduced-motion-RRBkmVkk.js";import"./activity-CA8qS6PI.js";import"./message-circle-CG-96zts.js";import"./tail-display-BdyoLvzY.js";import"./lane-edit-display-C_Aujldz.js";import"./ConversationStatus-BwVLiiO4.js";import"./conversation-icons-IIG5ha6D.js";import"./SessionObserve-yfXFafp8.js";import"./bash-format-BRV5C6Gv.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-Bla0gBdm.js";import"./lane-observe-D0rfKDnU.js";import"./lane-ask-display-B6iCAVcd.js";import"./ObservedTopologyPanel-DyUeV98H.js";import"./ObserveTextFlow-rsFj_rVo.js";import"./wrench-Bkc_0lKF.js";import"./external-link-CXBytO9o.js";/* empty css */import"./RawSessionsTable-DL8y_eEy.js";/* empty css */import"./DataTable-E8s_MmoA.js";/* empty css *//* empty css */function Ki({route:i,navigate:r}){return i.view!=="sessions"?null:i.flightId?o.jsx(p,{route:{...i,flightId:i.flightId},navigate:r}):i.sessionId?o.jsx(t,{sessionRef:i.sessionId,navigate:r}):o.jsx(m,{navigate:r})}export{Ki as SessionsContent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as a,j as s}from"./index-DMiGbrBt.js";import Mt from"./HomeHero-B3uYd-pP.js";import{TailView as xt}from"./TailView-DGj_5HA9.js";import{a as F}from"./api-h5zurxmi.js";import{u as yt}from"./observe-CuLGD9Zp.js";import{u as St}from"./sse-CjIkKo46.js";import{i as Q,o as kt}from"./surface-activity-B1rgWB1i.js";import{n as x,c as We,t as be}from"./time-DltNTpLl.js";import{b as jt,u as Nt}from"./router-Bq5dwf78.js";import{a as Ve,n as Pe}from"./colors-BtO5_zlx.js";import{e as At}from"./agent-chat-Bfjd9y6c.js";import{r as It,R as Et,e as Ct,a as Lt}from"./NewChatComposer-Cs6OsxK6.js";import{M as Rt}from"./runtime-picker-Bcl5iIX5.js";import{u as _t,m as Ot,e as Tt,h as Ht}from"./Provider-C7UKGHQy.js";import{r as $t}from"./operator-attention-BwSPeheT.js";import{e as Wt,i as ze,o as Ue,f as Pt,g as Bt}from"./agent-lanes-model-B4YTt4OF.js";import{HomeMovingSignalList as Ft}from"./home-moving-signal-CK147hxn.js";import{E as qt}from"./external-link-CXBytO9o.js";const Me="openscout:persistent-state-change";function Kt(e,t){typeof window>"u"||window.dispatchEvent(new CustomEvent(Me,{detail:{key:e,value:t}}))}function Be(e){try{return window.localStorage.getItem(e)}catch{return null}}function ye(e,t){try{window.localStorage.setItem(e,t)}catch{}Kt(e,t)}function Se(e){const[t,n]=a.useState(()=>typeof window>"u"?null:Be(e));return a.useEffect(()=>{n(Be(e));const o=i=>{const u=i.detail;!u||u.key!==e||n(u.value)},r=i=>{i.key===e&&n(i.newValue)};return window.addEventListener(Me,o),window.addEventListener("storage",r),()=>{window.removeEventListener(Me,o),window.removeEventListener("storage",r)}},[e]),t}function Vs(e,t){const n=Se(e),o=n===null?t:n==="true",r=a.useCallback(i=>{ye(e,i?"true":"false")},[e]);return[o,r]}function Dt(e,t){const n=Se(e),o=n===null?Number.NaN:Number(n),r=Number.isFinite(o)?o:t,i=a.useCallback(u=>{ye(e,String(u))},[e]);return[r,i]}function Fe(e,t){const o=Se(e)??t,r=a.useCallback(i=>{ye(e,i)},[e]);return[o,r]}const X=30*6e4,de="30m",Qe="recent",ue=[{key:"5m",label:"5m",windowMs:5*6e4},{key:"30m",label:"30m",windowMs:X},{key:"4h",label:"4h",windowMs:240*6e4},{key:"24h",label:"24h",windowMs:1440*6e4}],le={working:0,native:1,observed:2};function Gt(e){const t=e?.trim();return ue.some(n=>n.key===t)?t:de}function Vt(e){return ue.find(t=>t.key===e)??ue[1]}function zt(e){return e==="grouped"?"grouped":Qe}function Ut(e,t,n){if(n==="grouped"){const i=le[e.bucket]-le[t.bucket];if(i!==0)return i}const o=t.lastActivityAt-e.lastActivityAt;if(o!==0)return o;const r=le[e.bucket]-le[t.bucket];return r!==0?r:e.id.localeCompare(t.id)}function Ye(e,t,n=X){const o=x(e);return o!==null&&t-o<=n}function Je(e){const t=e?.trim().toLowerCase();return t?t==="pi"||t==="grok-acp"||t==="grok"?"grok":t:null}function Qt(e,t,n,o=[],r=X,i=de){return!!(n||Ve(e.state)||Wt(e,t,i)||Ze(e,o,t,r))}function Yt(e,t){const n=Je(e.harness);return n?n===t.source?.trim().toLowerCase():!1}function Ze(e,t,n,o=X){const r=e.harnessSessionId?.trim();if(!r)return!1;const i=n-o;return t.some(u=>{const d=x(u.ts);if(d===null||d<i||!Yt(e,u))return!1;const m=u.sessionId?.trim();return!!(m&&m===r)})}function Jt(e){const{agent:t,observeEntry:n,tailEvents:o,nowMs:r,movingAsk:i,windowMs:u=X}=e;if(i)return!0;const d=n?.data;if(ze(d))return!0;const m=Ue(d);return!!(m!==null&&r-m<=u||Ze(t,o,r,u)||Ve(t.state)&&Ye(t.updatedAt,r,u))}function Zt(e,t){const n=e?.metadata?.session,o=e?.metadata?.usage,r=o?.contextInputTokens,i=o?.contextWindowTokens,u=typeof r=="number"&&typeof i=="number"&&i>0?Math.min(100,Math.round(r/i*100)):null;return{sessionId:n?.externalSessionId??t?.sessionId??null,model:n?.model??t?.model??null,contextPct:u}}function Xe(e){if(!e)return null;const t=e.sessionId?.trim()||e.data?.metadata?.session?.externalSessionId?.trim();if(t)return`session:${t}`;const n=e.historyPath?.trim()||e.data?.metadata?.session?.threadPath?.trim();return n?`history:${n}`:null}function Xt(e){const t=e.observe?.metadata?.session,n=t?.externalSessionId?.trim();if(n)return`session:${n}`;const o=t?.threadPath?.trim();return o?`history:${o}`:null}function qe(e,t){const n=t?.sessionId?.trim()||t?.data?.metadata?.session?.externalSessionId?.trim(),o=e.harnessSessionId?.trim();return!!(n&&o&&n===o)}function es(e,t){const n=new Map,o=[];for(const r of e){const i=t[r.id],u=Xe(i);if(!u){o.push(r);continue}const d=n.get(u);if(d===void 0){n.set(u,o.length),o.push(r);continue}const m=o[d];!qe(m,t[m.id])&&qe(r,i)&&(o[d]=r)}return o}function pe(e,t){const{observeEntry:n,tailEvents:o,nowMs:r,movingAsk:i}=t;if(i)return x(i.updatedAt)??r;if(ze(n?.data))return r;const u=Ue(n?.data);if(u!==null)return u;const d=e.harnessSessionId?.trim(),m=Je(e.harness);let g=0;if(d)for(const b of o){if(m&&b.source!==m||b.sessionId?.trim()!==d)continue;const A=x(b.ts);A!==null&&(g=Math.max(g,A))}return g>0?g:x(e.updatedAt)??0}const ts=9;function ss(e){const{lanes:t}=Pt({transcripts:e.transcripts,tailEvents:e.tailEvents,processes:e.processes??[],scoutAgents:e.agents,observeCache:e.observeCache??{},now:e.nowMs,workingOnly:!0,horizon:e.horizon??de});return t.filter(n=>n.source==="native")}const $=[{label:"30m",value:30*6e4,activityLimit:80},{label:"6h",value:360*6e4,activityLimit:250},{label:"24h",value:1440*6e4,activityLimit:800}],Ke=$[2].value,ns="openscout.home.lookbackMs.v1",os="openscout.home.movingWindow.v1",is="openscout.home.movingSort.v1",as=6e4,rs=3e4,cs=3;function ls(e,t){const n=x(e);if(n===null)return"—";const o=Math.max(0,Math.floor((t-n)/1e3));if(o<60)return`${o}s`;const r=Math.floor(o/60);if(r<60)return`${r}m`;const i=Math.floor(r/60);return i<48?`${i}h`:`${Math.floor(i/24)}d`}function us(e,t=140){const n=(e??"").replace(/\s+/g," ").trim();return n?n.length>t?`${n.slice(0,t-1)}…`:n:""}function ds(e){return{handoff_sent:"handed off",handoff_received:"received handoff",flight_updated:"replied",ask_sent:"sent a request",ask_replied:"answered",message_sent:"said",message_received:"received"}[e]??e.replace(/[._]/g," ")}function ms(e){return e.conversationId?{view:"conversation",conversationId:e.conversationId}:e.recordId?{view:"work",workId:e.recordId}:e.agentId?{view:"agents-v2",agentId:e.agentId}:null}function fs(e){const t=Math.round(e/6e4);if(t<60)return`${t}m`;const n=t/60;return`${Number.isInteger(n)?n:n.toFixed(1)}h`}function xe(e){if(!Number.isFinite(e)||e<=0)return"now";const t=Math.floor(e/1e3);if(t<60)return`${t}s`;const n=Math.floor(t/60);if(n<60)return`${n}m`;const o=Math.floor(n/60);return o<48?`${o}h`:`${Math.floor(o/24)}d`}function vs(e,t,n){if(e.length===0)return null;const o=e.map(m=>x(m.ts)).filter(m=>m!==null).sort((m,g)=>g-m);if(o.length===0)return null;const r=o[0],i=o[o.length-1];let u=0;for(let m=1;m<o.length;m++)u=Math.max(u,o[m-1]-o[m]);const d=n-t;return u=Math.max(u,i-d),{count:e.length,lastAgoMs:Math.max(0,n-r),longestGapMs:Math.max(0,u)}}function hs(e){const t=e.map(o=>Math.sqrt(o)),n=[.56,.28,.11,.05];return t.map((o,r)=>{let i=0,u=0;for(let d=-3;d<=3;d++){const m=r+d;if(m<0||m>=t.length)continue;const g=n[Math.abs(d)]??0;i+=t[m]*g,u+=g}return u>0?i/u:0})}function gs(e,t,n){if(e.length<2||t.length===0)return e;const o=Math.max(1,e[1].ts-e[0].ts),r=e[0].ts,i=e[e.length-1].ts+o,u=e.map(g=>g.count);for(const g of t){const b=x(g.ts);if(b===null||b<r||b>n||b>=i)continue;const A=Math.floor((b-r)/o);A>=0&&A<u.length&&(u[A]=(u[A]??0)+1)}const d=hs(u),m=Math.max(1,...d);return e.map((g,b)=>({...g,count:u[b]??g.count,value:(d[b]??0)/m}))}function we(e){return e.status==="fulfilled"?null:ps(e.reason instanceof Error?e.reason.message:String(e.reason))}function ps(e){return/failed to fetch|networkerror|load failed|couldn't connect|connection refused/i.test(e)?"Scout server is unreachable":e}function ws(e){return e==="Scout server is unreachable"}function De({navigate:e}){const{agents:t,onboarding:n,reload:o,route:r}=_t(),i=jt(r),u=a.useMemo(()=>Ot(t,i),[t,i]),d=a.useMemo(()=>Tt(t,i),[t,i]),[m,g]=a.useState(null),[b,A]=a.useState([]),[q,ee]=a.useState("trailing 7d"),[K,te]=a.useState("3h buckets"),[w,se]=a.useState([]),[D,ne]=a.useState(null),[oe,I]=a.useState([]),[y,ie]=a.useState(!0),[f,S]=a.useState(!1),[M,W]=a.useState(null),[P,et]=a.useState(null),Y=a.useRef(null),ke=a.useRef(0),je=a.useRef(0),me=a.useRef(null);a.useEffect(()=>{me.current=m},[m]);const G=a.useCallback(async(c=!1)=>(await F(`/api/service-budgets${c?"?refresh=1":""}`,{cache:"no-store"})).gauges??[],[]),V=a.useMemo(()=>Ht(m,u),[m,u]),[L,Ne]=Dt(ns,Ke),J=a.useMemo(()=>$.find(c=>c.value===L)??$[$.length-1],[L]),[tt,st]=Fe(os,de),B=Gt(tt),_=Vt(B),[nt,ot]=Fe(is,Qe),ae=zt(nt),Ae=a.useMemo(()=>Bt(B),[B]),E=a.useCallback(async(c="initial")=>{const l=++ke.current;!(me.current!==null)&&c!=="background"?(ie(!0),W(null)):S(!0);const p=new URLSearchParams({activityLookbackMs:String(J.value),activityLimit:String(J.activityLimit)}).toString(),[C,T,j]=await Promise.allSettled([F(`/api/fleet?${p}`),F("/api/heartrate"),o()]);if(l!==ke.current)return;C.status==="fulfilled"&&(me.current=C.value,g(C.value)),T.status==="fulfilled"&&(A(T.value.buckets),ee(T.value.windowLabel),te(T.value.bucketLabel??""));const H=[we(C),we(T),we(j)].filter(U=>!!U);W(H[0]??null),H.length<4&&et(Date.now()),ie(!1),S(!1)},[o,J]),it=a.useCallback(()=>{Q()&&(Y.current||(Y.current=setTimeout(()=>{Y.current=null,E("background")},250)))},[E]);a.useEffect(()=>(E(),()=>{Y.current&&clearTimeout(Y.current)}),[E]),St(it),a.useEffect(()=>{let c=!1;const l=async()=>{try{const C=await G();c||I(C)}catch{}};l();const v=setInterval(()=>{Q()&&l()},as),p=()=>{document.visibilityState==="visible"&&Q()&&l()};return window.addEventListener("focus",p),document.addEventListener("visibilitychange",p),()=>{c=!0,clearInterval(v),window.removeEventListener("focus",p),document.removeEventListener("visibilitychange",p)}},[G]);const Z=a.useCallback(async()=>{try{const c=new URLSearchParams({limit:String(Ae),transcripts:"true"}),[l,v]=await Promise.all([F(`/api/tail/recent?${c.toString()}`),F("/api/tail/discover").catch(()=>null)]);se(l.events??[]),v&&ne(v)}catch{}},[Ae]);a.useEffect(()=>{Z();const c=setInterval(()=>{Q()&&Z()},rs);return()=>clearInterval(c)},[Z]),a.useEffect(()=>{const c=setInterval(()=>{Q()&&E("background")},15e3);return()=>clearInterval(c)},[E]),a.useEffect(()=>kt(()=>{const l=Date.now();l-je.current<1e3||(je.current=l,E("background"),G().then(I).catch(()=>null),Z())}),[G,E,Z]);const[h,at]=a.useState(()=>Date.now());a.useEffect(()=>{const c=setInterval(()=>{Q()&&at(Date.now())},1e3);return()=>clearInterval(c)},[]);const Ie=a.useMemo(()=>(V?.activeAsks??[]).filter(c=>c.status==="queued"||c.status==="working"),[V]),re=a.useMemo(()=>Ie.filter(c=>Ye(c.updatedAt,h,_.windowMs)),[Ie,_.windowMs,h]),O=a.useMemo(()=>{const c=new Map;for(const l of re){const v=c.get(l.agentId),p=x(l.updatedAt)??0,C=x(v?.updatedAt)??0;(!v||p>C)&&c.set(l.agentId,l)}return c},[re]),rt=a.useMemo(()=>d.filter(c=>Qt(c,h,O.has(c.id),w,_.windowMs,B)),[d,O,_.windowMs,B,h,w]),k=yt(rt),R=a.useMemo(()=>{const l=d.filter(v=>Jt({agent:v,observeEntry:k[v.id],tailEvents:w,nowMs:h,movingAsk:O.get(v.id),windowMs:_.windowMs})).sort((v,p)=>pe(p,{observeEntry:k[p.id],tailEvents:w,nowMs:h,movingAsk:O.get(p.id)})-pe(v,{observeEntry:k[v.id],tailEvents:w,nowMs:h,movingAsk:O.get(v.id)}));return es(l,k)},[d,O,_.windowMs,k,w,h]);a.useMemo(()=>{const c={};for(const l of R)c[l.id]=Zt(k[l.id]?.data);return c},[k,R]);const Ee=a.useMemo(()=>new Set(R.map(c=>c.id)),[R]),Ce=a.useMemo(()=>{const c=new Set;for(const l of R){const v=Xe(k[l.id]);v&&c.add(v)}return c},[k,R]),Le=a.useMemo(()=>ss({agents:d,tailEvents:w,transcripts:D?.transcripts??[],processes:D?.processes??[],observeCache:k,nowMs:h,horizon:B}).filter(l=>{if(Ee.has(l.agent.id))return!1;const v=Xt(l);return!(v&&Ce.has(v))}).sort((l,v)=>v.lastActiveAt-l.lastActiveAt),[d,B,k,h,D,w,Ee,Ce]),fe=a.useMemo(()=>re.filter(c=>!R.some(l=>l.id===c.agentId)).sort((c,l)=>We(c.updatedAt,l.updatedAt)),[R,re]),Re=h-L,N=a.useMemo(()=>{const c=(V?.activity??[]).filter(l=>(x(l.ts)??0)>=Re);return c.filter((l,v)=>{const p=c[v-1];return p?!(p.title===l.title&&p.summary===l.summary&&p.conversationId===l.conversationId&&Math.abs((x(p.ts)??0)-(x(l.ts)??0))<=5e3):!0})},[V?.activity,Re]),ve=a.useMemo(()=>vs(N,L,h),[N,L,h]),he=N.length>=J.activityLimit,ct=a.useMemo(()=>{const c=$.findIndex(l=>l.value===L);return c>=0&&c<$.length-1?$[c+1]:null},[L]),lt=new Date,ut=Nt("ops.control",!0),ge=n?.operatorName?.trim()||n?.operatorNameSuggestion?.trim()||"operator",dt=a.useMemo(()=>gs(b,w,h),[b,w,h]),_e=a.useMemo(()=>{const c=h-_.windowMs,l=V?.activity??[],v=new Set(d.map(j=>j.name.toLowerCase())),p=new Set(d.map(j=>j.id)),C=new Set(["agent_message","status_message","ask_opened","ask_working","ask_failed","handoff_sent","collaboration_event"]),T=new Map;for(const j of l){const H=x(j.ts);if(H===null||H<c||!C.has(j.kind))continue;const U=j.actorName?.trim();if(!U||U.toLowerCase()===ge.toLowerCase()||v.has(U.toLowerCase())||j.agentId&&p.has(j.agentId))continue;const He=U.toLowerCase(),$e=T.get(He),bt=x($e?.ts)??0;(!$e||H>bt)&&T.set(He,j)}return[...T.values()].sort((j,H)=>We(j.ts,H.ts))},[V?.activity,_.windowMs,h,d,ge]),mt=y?"syncing":M?`${ws(M)?"offline":"sync issue"} · ${P?be(P):"waiting"}`:P?`updated ${be(P)}`:"waiting",ft=a.useCallback(()=>{E("manual"),G(!0).then(c=>I(c)).catch(()=>{})},[G,E]),vt={now:lt,operatorName:ge,syncLabel:mt,error:M,loading:y,refreshing:f,onRefresh:ft,navigate:e,opsEnabled:ut,heartrate:dt,heartrateWindow:q,heartrateBucketLabel:K,heartrateVisibleEventThreshold:cs,serviceGauges:oe},ht=!y&&!M&&N.length===0&&L>=Ke,gt=!y&&!M&&N.length===0,pt=y||N.length>0||!!M||!ht,Oe=a.useMemo(()=>[...R.map(l=>({bucket:"working",id:l.id,agent:l,lastActivityAt:pe(l,{observeEntry:k[l.id],tailEvents:w,nowMs:h,movingAsk:O.get(l.id)})})),...Le.map(l=>({bucket:"native",id:l.id,lane:l,lastActivityAt:l.lastActiveAt})),..._e.map(l=>({bucket:"observed",id:l.id,actor:l,lastActivityAt:x(l.ts)??0}))].sort((l,v)=>Ut(l,v,ae)),[O,ae,Le,h,k,_e,w,R]),Te=Oe.slice(0,ts),ce=Te.length,z=Oe.length+fe.length,wt=z>ce&&ce>0?`What's moving · ${ce} of ${z}`:`What's moving · ${z}`;return s.jsx("div",{className:"s-fleet-home",children:s.jsxs("div",{className:"s-fleet-home-inner",children:[s.jsx(Mt,{...vt}),(z>0||y)&&s.jsxs("div",{className:"s-fleet-section",children:[s.jsx(Ge,{label:y&&z===0?"What's moving":wt,right:s.jsxs("div",{className:"s-moving-controls",children:[s.jsx(bs,{sort:ae,onSortChange:ot,windowKey:_.key,onWindowChange:st}),s.jsx("button",{className:"s-link-btn",onClick:()=>e({view:"mesh"}),children:"open mesh ↗"})]})}),y&&z===0?s.jsx(ys,{}):s.jsxs(s.Fragment,{children:[ce>0&&s.jsx(Ft,{cards:Te,sort:ae,nowMs:h,movingAskByAgent:O,observeCache:k,navigate:e}),fe.length>0&&s.jsx("div",{className:"s-moving-ask-list",children:fe.map(c=>s.jsx(Ms,{ask:c,navigate:e},c.invocationId))})]})]}),pt&&s.jsxs("div",{className:"s-fleet-section",children:[s.jsx(Ge,{label:`Live activity · ${N.length}${he?"+":""}`,right:s.jsx(xs,{value:L,onChange:Ne,refreshing:f&&!y})}),ve&&s.jsxs("div",{className:"s-fleet-live-shape",children:[s.jsxs("span",{children:["last ",xe(ve.lastAgoMs)," ago"]}),s.jsx("span",{children:"·"}),s.jsxs("span",{children:["longest gap ",xe(ve.longestGapMs)]}),he&&s.jsxs(s.Fragment,{children:[s.jsx("span",{children:"·"}),s.jsxs("span",{style:{color:"var(--amber)"},children:["showing ",Math.min(N.length,30)," of ",J.activityLimit,"+ (capped)"]})]}),!he&&N.length>30&&s.jsxs(s.Fragment,{children:[s.jsx("span",{children:"·"}),s.jsxs("span",{children:["showing 30 of ",N.length]})]})]}),y&&N.length===0?s.jsx(Ss,{}):N.length===0?s.jsx(ks,{lookbackMs:L,nextOption:ct,onWiden:c=>Ne(c.value),loadedAt:P,nowMs:h,error:M,onRetry:()=>{E("manual")}}):s.jsx("div",{className:"s-mc-stream s-fleet-live-stream",children:N.slice(0,30).map(c=>s.jsx(As,{item:c,nowMs:h,onOpen:()=>{const l=ms(c);l&&e(l)}},c.id))})]}),gt&&s.jsx("div",{className:"s-fleet-section s-fleet-section--quiet-start",children:s.jsx(Ns,{agents:d,navigate:e})})]})})}function Ge({label:e,right:t}){return s.jsxs("div",{className:"s-section-rule",children:[s.jsx("span",{className:"s-eyebrow",children:e}),s.jsx("span",{className:"s-section-rule-line"}),t&&s.jsx("span",{className:"s-section-rule-right",children:t})]})}function bs({sort:e,onSortChange:t,windowKey:n,onWindowChange:o}){return s.jsxs("div",{className:"s-moving-controlset","aria-label":"Moving cards controls",children:[s.jsxs("div",{className:"s-mc-window s-moving-window",role:"group","aria-label":"Moving sort",children:[s.jsx("span",{className:"s-mc-window-label",children:"Sort"}),s.jsx("div",{className:"s-mc-window-tabs",children:[["recent","Recent"],["grouped","Grouped"]].map(([r,i])=>s.jsx("button",{type:"button",className:`s-mc-window-tab${e===r?" is-active":""}`,onClick:()=>t(r),children:i},r))})]}),s.jsxs("div",{className:"s-mc-window s-moving-window",role:"group","aria-label":"Moving activity window",children:[s.jsx("span",{className:"s-mc-window-label",children:"Window"}),s.jsx("div",{className:"s-mc-window-tabs",children:ue.map(r=>s.jsx("button",{type:"button",className:`s-mc-window-tab${n===r.key?" is-active":""}`,onClick:()=>o(r.key),children:r.label},r.key))})]})]})}function Ms({ask:e,navigate:t}){const n=$t(e);return s.jsxs("button",{className:"s-moving-ask-row",onClick:()=>t(n),children:[s.jsx("span",{className:"s-moving-ask-agent",children:e.agentName??e.agentId}),s.jsx("span",{className:"s-moving-ask-title",children:e.summary??e.task}),s.jsx("span",{className:"s-moving-ask-state",children:e.statusLabel}),s.jsx("span",{className:"s-moving-ask-time",children:be(e.updatedAt)})]})}function xs({value:e,onChange:t,refreshing:n}){return s.jsxs("div",{className:"s-mc-window",role:"group","aria-label":"Lookback window",children:[s.jsxs("span",{className:"s-mc-window-label",children:["Lookback",n&&s.jsx("span",{className:"s-mc-window-refreshing","aria-label":"refreshing"})]}),s.jsx("div",{className:"s-mc-window-tabs",children:$.map(o=>s.jsx("button",{type:"button",className:`s-mc-window-tab${o.value===e?" is-active":""}`,onClick:()=>t(o.value),children:o.label},o.value))})]})}function ys(){return s.jsx("div",{className:"s-moving-signal-stage s-moving-signal-skeleton","aria-hidden":"true",children:s.jsx("div",{className:"s-moving-signal-list",children:[0,1,2,3,4].map(e=>s.jsxs("div",{className:"s-moving-signal-row s-moving-signal-row--skeleton",children:[s.jsx("span",{className:"s-moving-signal-skeleton-age"}),s.jsx("span",{}),s.jsx("span",{className:"s-moving-signal-skeleton-where"}),s.jsx("span",{className:"s-moving-signal-skeleton-action"})]},e))})})}function Ss(){return s.jsx("div",{className:"s-mc-stream s-fleet-live-stream s-fleet-live-stream--skeleton","aria-hidden":"true",children:[0,1,2,3,4].map(e=>s.jsxs("div",{className:"s-fleet-live-skeleton-row",children:[s.jsx("span",{className:"s-fleet-live-skeleton-time"}),s.jsx("span",{className:"s-fleet-live-skeleton-actor"}),s.jsx("span",{className:"s-fleet-live-skeleton-text"})]},e))})}function ks({lookbackMs:e,nextOption:t,onWiden:n,loadedAt:o,nowMs:r,error:i,onRetry:u}){if(i)return s.jsxs("div",{className:"s-mc-empty s-fleet-live-empty",children:[s.jsx("div",{className:"s-fleet-live-empty-title",children:"Couldn’t load activity."}),s.jsx("div",{className:"s-fleet-live-empty-detail",children:i}),s.jsx("div",{className:"s-fleet-live-empty-actions",children:s.jsx("button",{type:"button",className:"s-link-btn",onClick:u,children:"Try again"})})]});const d=o?`Polled ${xe(Math.max(0,r-o))} ago.`:"Polling…";return s.jsxs("div",{className:"s-mc-empty s-fleet-live-empty",children:[s.jsxs("div",{className:"s-fleet-live-empty-title",children:["Quiet — no activity in the last ",fs(e),"."]}),s.jsx("div",{className:"s-fleet-live-empty-detail",children:d}),t&&s.jsx("div",{className:"s-fleet-live-empty-actions",children:s.jsxs("button",{type:"button",className:"s-link-btn",onClick:()=>n(t),children:["Widen to ",t.label," →"]})})]})}function js(e){return[...e].sort((t,n)=>{const o=Pe(t.state),r=Pe(n.state);return(o==="callable"?0:o==="in_turn"||o==="in_flight"?1:2)-(r==="callable"?0:r==="in_turn"||r==="in_flight"?1:2)||t.name.localeCompare(n.name)})}function Ns({agents:e,navigate:t}){const n=a.useMemo(()=>js(e),[e]),[o,r]=a.useState(()=>n[0]?.id??""),i=n.find(f=>f.id===o)??null,[u,d]=a.useState(null),[m,g]=a.useState(""),[b,A]=a.useState(i?.harness?.trim()??""),[q,ee]=a.useState(i?.model?.trim()??""),[K,te]=a.useState("medium"),[w,se]=a.useState(!1),[D,ne]=a.useState(null),oe=u??Et;a.useEffect(()=>{n.some(f=>f.id===o)||r(n[0]?.id??"")},[o,n]),a.useEffect(()=>{A(i?.harness?.trim()??""),ee(i?.model?.trim()??"")},[i?.id]),a.useEffect(()=>{const f=i?.projectRoot?.trim()||i?.cwd?.trim(),S=new URLSearchParams({scope:"global+project"});f&&S.set("projectRoot",f);let M=!1;return F(`/api/runner/options?${S.toString()}`).then(W=>{!M&&W.schemaVersion==="openscout.runtime-capabilities.v1"&&d(W)}).catch(()=>{}),()=>{M=!0}},[i?.cwd,i?.projectRoot]);const I=b||i?.harness?.trim()||"",y=a.useMemo(()=>{const f=It(oe);return I&&!f.harnesses.some(S=>S.value===I)?{...f,harnesses:[...f.harnesses,{value:I,label:I,models:[{value:"",label:"Default",note:"harness picks"}]}]}:f},[oe,I]);a.useEffect(()=>{const f=Ct(y,I,q);!f||f.some(S=>S.value===K)||te(f.find(S=>S.value==="medium")?.value??f[0]?.value??"")},[y,I,q,K]);const ie=async f=>{const S=m.trim();if(!(!i||!S||w)){se(!0),ne(null);try{const M=await At(i),W=await F("/api/send",{method:"POST",body:JSON.stringify({body:S,chatId:M,execution:{harness:b||void 0,model:q||void 0,reasoningEffort:K||void 0}})});g("");const P=W.conversationId??M;t({view:"conversation",conversationId:P})}catch(M){ne(M instanceof Error?M.message:String(M))}finally{se(!1)}}};return s.jsxs("div",{className:"s-quiet-start",children:[s.jsxs("div",{className:"s-quiet-panel s-quiet-panel--tail",children:[s.jsxs("div",{className:"s-quiet-panel-head",children:[s.jsx("span",{className:"s-eyebrow",children:"Local tail"}),s.jsxs("button",{type:"button",className:"s-icon-btn",title:"Open tail",onClick:()=>t({view:"ops",mode:"tail"}),children:[s.jsx(qt,{size:14,"aria-hidden":"true"}),s.jsx("span",{children:"Open tail"})]})]}),s.jsx("div",{className:"s-quiet-tail-frame",children:s.jsx(xt,{navigate:t,chrome:"embedded"})})]}),s.jsxs("div",{className:"s-quiet-panel s-quiet-panel--ask",children:[s.jsx("div",{className:"s-quiet-panel-head",children:s.jsx("span",{className:"s-eyebrow",children:"Message"})}),s.jsx("div",{className:"s-quiet-compose",children:s.jsx(Rt,{density:"panel",value:m,onChange:g,onSend:()=>{ie()},placeholder:"Type a message…",disabled:w||!i,sending:w,canSend:!w&&!!i&&m.trim().length>0,header:s.jsxs("div",{className:"s-quiet-target-row s-quiet-target-row--in-compose",children:[s.jsx("label",{className:"s-quiet-label",htmlFor:"home-catchup-agent",children:"To"}),s.jsx("select",{id:"home-catchup-agent",className:"s-quiet-select s-quiet-select--target",value:o,onChange:f=>r(f.target.value),disabled:n.length===0||w,children:n.length===0?s.jsx("option",{value:"",children:"No registered agents"}):n.map(f=>s.jsx("option",{value:f.id,children:f.name},f.id))})]}),tools:s.jsx(Lt,{catalog:y,value:{harness:I,model:q,effort:K},onChange:f=>{A(f.harness===(i?.harness?.trim()??"")?"":f.harness),ee(f.model),te(f.effort)},disabled:w||!i})})}),D&&s.jsx("div",{className:"s-quiet-error",children:D})]})]})}function As({item:e,nowMs:t,onOpen:n}){const o=e.actorName??"—",r=ds(e.kind),i=us(e.title??e.summary,110);return s.jsxs("button",{type:"button",className:"s-mc-stream-row",onClick:n,children:[s.jsx("span",{className:"s-mc-stream-time",children:ls(e.ts,t)}),s.jsx("span",{className:"s-mc-stream-actor",children:o}),s.jsx("span",{className:"s-mc-stream-verb",children:r}),s.jsx("span",{className:"s-mc-stream-text",children:i})]})}const zs=Object.freeze(Object.defineProperty({__proto__:null,HomeContent:De,HomeScreen:De},Symbol.toStringTag,{value:"Module"}));export{De as H,Dt as a,Fe as b,zs as c,Vs as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as t}from"./index-DMiGbrBt.js";import{WorkDetailScreen as i}from"./WorkDetailScreen-Bx0JimPC.js";import"./DocumentFocusViewer-BeVwwl26.js";import"./createLucideIcon-OpA4Amw5.js";import"./TextDocumentSurface-BpAw4eQS.js";/* empty css */import"./file-text-BODxCjcz.js";import"./x-D3GElQbe.js";import"./StatusPill-DhBL__p8.js";import"./status-tone-BM_zuRy1.js";import"./WorkFilesViewer-Btl6C2Q1.js";import"./api-h5zurxmi.js";import"./chevron-right-XiIHsk4m.js";import"./chevron-down-BGk5qoEw.js";import"./mentions-jSuTGeet.js";import"./colors-BtO5_zlx.js";import"./index-CJXzfjo9.js";import"./Provider-C7UKGHQy.js";import"./router-Bq5dwf78.js";import"./terminal-sessions-D5CIR2OL.js";import"./sse-CjIkKo46.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BTIErYHo.js";import"./ContextMenu-bARZqTzD.js";import"./code-xml-B6jOCM4V.js";import"./arrow-left-DEZzHiPS.js";import"./scout-voice-CU5c0LGi.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-2kv_tGUS.js";import"./MessageComposerSuggestions-DpxN9WiB.js";import"./NewChatComposer-Cs6OsxK6.js";import"./runtime-picker-Bcl5iIX5.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-CbHjZsz1.js";import"./HarnessMark-Cbv3Ib0c.js";import"./conversation-model-B47vYmWN.js";import"./time-DltNTpLl.js";import"./NewChatOrigin-Bk2OyVjI.js";import"./agent-chat-Bfjd9y6c.js";import"./model-Co0zkMIc.js";import"./text-DsBWV_4k.js";import"./search-CWfZtOt2.js";import"./AgentDetailCard-BcRBRp88.js";import"./AgentLiveActions-DBtnD0qE.js";import"./terminal-takeover-B8UeD9OX.js";import"./openContent-C6XO6kr5.js";import"./eye-0PvebX_a.js";import"./terminal-B9AOZQKR.js";import"./BackToPicker-BRvfostO.js";import"./TailView-DGj_5HA9.js";import"./SlidePanel-COwtoJqR.js";import"./tail-display-BdyoLvzY.js";import"./lane-edit-display-C_Aujldz.js";import"./tail-events-D19uAGe3.js";import"./message-square-DSaGpjFU.js";import"./radio-Bz8ZePxj.js";import"./external-link-CXBytO9o.js";import"./activity-CA8qS6PI.js";function fr({route:r,navigate:o}){return r.view!=="work"?null:t.jsx(i,{workId:r.workId,navigate:o})}export{fr as WorkContent};
|