@openscout/scout 0.2.95 → 0.2.96
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/bin/scout +26 -10
- package/bin/scoutd +0 -0
- package/dist/build-manifest.json +3 -3
- package/dist/client/assets/{ActivityScreen--eANwuxa.js → ActivityScreen-BnoaUkVZ.js} +1 -1
- package/dist/client/assets/{AddProjectForm-CcD6qvV8.js → AddProjectForm-IqOtJfRs.js} +1 -1
- package/dist/client/assets/{AgentAvatar-CYhf6twS.js → AgentAvatar-6-KBVKUu.js} +1 -1
- package/dist/client/assets/{AgentConfigurationScreen-BTI24HQX.js → AgentConfigurationScreen-CuZJy07q.js} +1 -1
- package/dist/client/assets/{AgentDefinitionsWorkspace-srmN6-vj.js → AgentDefinitionsWorkspace-Iyl4BesU.js} +1 -1
- package/dist/client/assets/{AgentDetailCard-UqPNpcvB.js → AgentDetailCard-C9rn3Fj5.js} +1 -1
- package/dist/client/assets/{AgentFloorView-XXNgI5Cj.js → AgentFloorView-YT-Jjccf.js} +1 -1
- package/dist/client/assets/{AgentInfoScreen-CimdOnZ9.js → AgentInfoScreen-Dr99gQEZ.js} +1 -1
- package/dist/client/assets/{AgentLaneCard-Z-aOBR3W.js → AgentLaneCard-DI2iW9zO.js} +1 -1
- package/dist/client/assets/{AgentLaneChrome-CyhA1reW.js → AgentLaneChrome-D8bARHMx.js} +1 -1
- package/dist/client/assets/{AgentLaneDetailSheet-BNzjMjIH.js → AgentLaneDetailSheet-52un7dKC.js} +1 -1
- package/dist/client/assets/{AgentLaneSummaryResize-Box8-_rS.js → AgentLaneSummaryResize-CEBjmPTa.js} +1 -1
- package/dist/client/assets/AgentLanesEmbedScreen-Dgcm7zd_.js +1 -0
- package/dist/client/assets/AgentLanesPreflight-q20mTjms.js +1 -0
- package/dist/client/assets/AgentLanesView-CetZZDyF.js +2 -0
- package/dist/client/assets/{AgentLiveActions-BwuzOE8h.js → AgentLiveActions-DrEJDJef.js} +1 -1
- package/dist/client/assets/AgentMasterScreen-DJPnstoD.js +1 -0
- package/dist/client/assets/{AgentSessions-CsZwoukw.js → AgentSessions-DCPCG4xb.js} +1 -1
- package/dist/client/assets/{AgentsConsole-KCao4XmX.js → AgentsConsole-CsYOoFJi.js} +1 -1
- package/dist/client/assets/{AgentsScreen-CtPAmwRX.js → AgentsScreen-k8LvBuU_.js} +1 -1
- package/dist/client/assets/AgentsSubnav-C4xpQhsv.js +1 -0
- package/dist/client/assets/{AstronautSuit-Ckx7lu7G.js → AstronautSuit-DbjQtfD_.js} +1 -1
- package/dist/client/assets/{AtopView-DYlpgEHf.js → AtopView-Daq_ob3z.js} +1 -1
- package/dist/client/assets/{BackToPicker-4JaeRvDm.js → BackToPicker-CXZjBRAe.js} +1 -1
- package/dist/client/assets/{BriefingDetailScreen-D6-xqrpo.js → BriefingDetailScreen-CUCXO-KH.js} +1 -1
- package/dist/client/assets/{BriefingsScreen-DKxSDEmk.js → BriefingsScreen-B5oMTGKv.js} +1 -1
- package/dist/client/assets/{BrokerMetadataPanel-BbREmsbK.js → BrokerMetadataPanel-BsiU8lTD.js} +1 -1
- package/dist/client/assets/{BrokerScreen-fbPIouMw.js → BrokerScreen-BPbOHhCS.js} +1 -1
- package/dist/client/assets/{CastPicker-BcA2vDDV.js → CastPicker-_5E5hNUe.js} +1 -1
- package/dist/client/assets/ChatCollapsedStrip-D-eXhzPf.js +1 -0
- package/dist/client/assets/{CodeDiffPane-Cn8Y9hAt.js → CodeDiffPane-n7W4iGUG.js} +1 -1
- package/dist/client/assets/{CodeProjectPicker-nPFktrco.js → CodeProjectPicker-CMsbSTDq.js} +1 -1
- package/dist/client/assets/{CodeScreen-BlAxtxE5.js → CodeScreen-CeuO3EhR.js} +1 -1
- package/dist/client/assets/{ConversationComposer-2HjbGPL9.js → ConversationComposer-CXPKx86g.js} +1 -1
- package/dist/client/assets/{ConversationFeedRows-C6wUqJrx.js → ConversationFeedRows-WrH-YI3L.js} +1 -1
- package/dist/client/assets/{ConversationHeader-C8vfXaTF.js → ConversationHeader-BQWzGzLK.js} +1 -1
- package/dist/client/assets/{ConversationPanels-CNCIbpqU.js → ConversationPanels-Dujvnmup.js} +2 -2
- package/dist/client/assets/ConversationScreen-CR9pWB65.js +2 -0
- package/dist/client/assets/{ConversationStatus-DZuyKsWN.js → ConversationStatus-DVzSb2Hv.js} +1 -1
- package/dist/client/assets/{CrewAvatar-CTIuxp4G.js → CrewAvatar-BwXjyg8N.js} +1 -1
- package/dist/client/assets/CrewWorkspaces-CkQDhyie.css +1 -0
- package/dist/client/assets/CrewWorkspaces-NKujRzwh.js +1 -0
- package/dist/client/assets/{DataTable-6IDhanr5.js → DataTable-Bp8tU9AK.js} +1 -1
- package/dist/client/assets/{DispatchAftermath-DC1u9itO.js → DispatchAftermath-B-6rmXzL.js} +1 -1
- package/dist/client/assets/{DocumentFocusViewer-DZVhS7as.js → DocumentFocusViewer-Do3wQ_3Z.js} +1 -1
- package/dist/client/assets/{EmbeddableSurfacesLab-BKUFJMCV.js → EmbeddableSurfacesLab-C1orRyP9.js} +1 -1
- package/dist/client/assets/{EmptyState-CeBl0iGd.js → EmptyState-CJzXj1l5.js} +1 -1
- package/dist/client/assets/{FileViewerPane-DQlpNt2S.js → FileViewerPane-Df6VzXjA.js} +1 -1
- package/dist/client/assets/FlightObserveScreen-6mGnmWQA.js +1 -0
- package/dist/client/assets/{FollowScreen-BXHOp3gb.js → FollowScreen-DvnxYLVh.js} +1 -1
- package/dist/client/assets/{HarnessMark-D5CA5uSp.js → HarnessMark-B979GCSB.js} +1 -1
- package/dist/client/assets/{HarnessesScreen-DhFXq1qz.js → HarnessesScreen-CHTuv8p6.js} +1 -1
- package/dist/client/assets/{HerdrSession-BRhs5LIR.js → HerdrSession-B3McuYgi.js} +1 -1
- package/dist/client/assets/{HomeHero-DMABJuze.js → HomeHero-CdUVPjkG.js} +1 -1
- package/dist/client/assets/{HostAdvisorView-RAociATV.js → HostAdvisorView-Bok5Sk5c.js} +1 -1
- package/dist/client/assets/{KnowledgeSearchInspector-CZPyVNSw.js → KnowledgeSearchInspector-B7XSoJsu.js} +1 -1
- package/dist/client/assets/{KnowledgeSearchScreen-mGTKIg00.js → KnowledgeSearchScreen-D3o3IODW.js} +1 -1
- package/dist/client/assets/{LaneToolHoverCard-D_DMlBeT.js → LaneToolHoverCard-HByf2ndx.js} +1 -1
- package/dist/client/assets/{LaneTraceDetailSheet-BEHg3LmH.js → LaneTraceDetailSheet-BUgHz-sd.js} +1 -1
- package/dist/client/assets/{LaneTraceEventFocus-DVimcizS.js → LaneTraceEventFocus-DM-hoPxG.js} +1 -1
- package/dist/client/assets/{MeshCanvas-BOuZx4AM.js → MeshCanvas-DCLJRsBy.js} +1 -1
- package/dist/client/assets/{MeshCanvasMinimap-wL-1N94e.js → MeshCanvasMinimap-cEFS9eW7.js} +1 -1
- package/dist/client/assets/{MeshScreen-DMY9Bmh5.js → MeshScreen-BcxPkhm6.js} +1 -1
- package/dist/client/assets/{MeshTopologyView-DiDcX5f4.js → MeshTopologyView-CCRPd8PU.js} +2 -2
- package/dist/client/assets/MessagesScreen-Bb5l13MO.js +1 -0
- package/dist/client/assets/{MissionContextRail-DrNKXG5u.js → MissionContextRail-DF0_kiU7.js} +1 -1
- package/dist/client/assets/{MissionControlView-ByBlHVN8.js → MissionControlView-E3V7bENU.js} +1 -1
- package/dist/client/assets/{MissionFocusOverlay-D1i6R6Zt.js → MissionFocusOverlay-h15sQFvP.js} +1 -1
- package/dist/client/assets/{MissionLeftAgentRow-DN9NcCML.js → MissionLeftAgentRow-KPdk9rSa.js} +1 -1
- package/dist/client/assets/{MissionLogPane-DSeIv3Xo.js → MissionLogPane-BbdDKjUl.js} +1 -1
- package/dist/client/assets/{NewAgentModal-V7yK6J6j.js → NewAgentModal-DfHxad34.js} +1 -1
- package/dist/client/assets/NewChatComposer-_Stj0fZy.js +19 -0
- package/dist/client/assets/{NewChatOrigin-DdpzE4kz.js → NewChatOrigin-B1u7ki70.js} +1 -1
- package/dist/client/assets/{ObserveEmbedScreen-l_Q3ts2q.js → ObserveEmbedScreen-Co0xTii6.js} +1 -1
- package/dist/client/assets/{ObserveTextFlow-BSEtYTxU.js → ObserveTextFlow-ZQWwrK3i.js} +2 -2
- package/dist/client/assets/{ObservedTopologyPanel-CdGUXxGR.js → ObservedTopologyPanel-BJUhDSuQ.js} +1 -1
- package/dist/client/assets/{OpenScoutAppShell-DN8dOSK4.js → OpenScoutAppShell-CUd2yOLu.js} +25 -25
- package/dist/client/assets/{OpsAgentsView-ntGr4pz4.js → OpsAgentsView-DI5wu1si.js} +1 -1
- package/dist/client/assets/OpsScreen-D8fQafCl.js +1 -0
- package/dist/client/assets/OpsSubnav-1K4Jaf__.js +1 -0
- package/dist/client/assets/ProjectAgentProfile-Bdjd_dAx.js +1 -0
- package/dist/client/assets/{ProjectAgentProfileBar-BQET-qrY.js → ProjectAgentProfileBar-k2QHHHsQ.js} +1 -1
- package/dist/client/assets/{ProjectAgentProfileHero-Ck8mThtx.js → ProjectAgentProfileHero-Bpxk1ui2.js} +1 -1
- package/dist/client/assets/ProjectsInbox-C_bMHLCc.js +2 -0
- package/dist/client/assets/ProjectsRail-J-aH_pxT.js +1 -0
- package/dist/client/assets/ProjectsScreen-cVUkGbPz.js +1 -0
- package/dist/client/assets/ProjectsThreadAside-_ourdM-Q.js +1 -0
- package/dist/client/assets/{Provider-B2xuo3rf.js → Provider-CtXJeLrP.js} +1 -1
- package/dist/client/assets/{RailRow-B-GycCBx.js → RailRow-CEH2MFBw.js} +1 -1
- package/dist/client/assets/{RawSessionsTable-AQThi6sm.js → RawSessionsTable-CDyrom-F.js} +1 -1
- package/dist/client/assets/RealtimeVoiceScreen-DBl3DN1H.js +1 -0
- package/dist/client/assets/{RepoDiffEmbedScreen-DXWoRF_c.js → RepoDiffEmbedScreen-kY2pHjIs.js} +1 -1
- package/dist/client/assets/{RepoDiffPageScreen-D_274ExO.js → RepoDiffPageScreen-C6LhoKrn.js} +1 -1
- package/dist/client/assets/{RepoDiffViewer-DbedmHDX.js → RepoDiffViewer-BhcIIQQg.js} +1 -1
- package/dist/client/assets/{RepoDiffViewerLazy-C0--fPtk.js → RepoDiffViewerLazy-Csy_j9LD.js} +2 -2
- package/dist/client/assets/{ReposScreen-D39_YG4H.js → ReposScreen-B_cB0zu7.js} +1 -1
- package/dist/client/assets/ScoutDeckSurface-CSy_fjcG.js +1 -0
- package/dist/client/assets/{ScoutSurface-UsRy0t-I.js → ScoutSurface-CQVcSrin.js} +1 -1
- package/dist/client/assets/{ScoutbotFxLab-Fmdfboxs.js → ScoutbotFxLab-DqGiLYNy.js} +1 -1
- package/dist/client/assets/{SecondaryNav-o2RL9H8H.js → SecondaryNav-BR4VRdgh.js} +1 -1
- package/dist/client/assets/SessionEmbedScreen-BTlZ9gAg.js +1 -0
- package/dist/client/assets/{SessionObserve-Dsd0j05N.js → SessionObserve-dQDN23pP.js} +1 -1
- package/dist/client/assets/{SessionObserveEvidence-DopQYDkD.js → SessionObserveEvidence-BRBGKAgd.js} +1 -1
- package/dist/client/assets/SessionRefScreen-COVQMbtE.js +1 -0
- package/dist/client/assets/SessionsScreen--5OJ3p3v.js +1 -0
- package/dist/client/assets/{SettingsDrawer-_AwuopMS.js → SettingsDrawer-RGVK_bmE.js} +1 -1
- package/dist/client/assets/{SettingsScreen-Cw4DDfJP.js → SettingsScreen-CCxzy5IU.js} +1 -1
- package/dist/client/assets/{ShikiPane-BfHc_3pM.js → ShikiPane-DYI9Hkge.js} +1 -1
- package/dist/client/assets/{SlidePanel-C-q7XwTa.js → SlidePanel-B9ugxWgA.js} +1 -1
- package/dist/client/assets/{SpriteAvatar-Bs68ZENy.js → SpriteAvatar-z5hHesx9.js} +1 -1
- package/dist/client/assets/{StatusPill-ZZQwxB1a.js → StatusPill-BFvMjmZV.js} +1 -1
- package/dist/client/assets/{TailView-Q4FVMsUH.js → TailView-0uEIj2JH.js} +1 -1
- package/dist/client/assets/{Terminal-D7zqHwHV.js → Terminal-DouZeNxc.js} +1 -1
- package/dist/client/assets/{TerminalEmbedScreen-CXIJ7qv6.js → TerminalEmbedScreen-dMNUbzXr.js} +1 -1
- package/dist/client/assets/{TerminalHeaderMount-BnBLOPbb.js → TerminalHeaderMount-BL07cd0q.js} +1 -1
- package/dist/client/assets/{TextDocumentSurface-CKQP-cBT.js → TextDocumentSurface-BflAwXeZ.js} +1 -1
- package/dist/client/assets/{TmuxPeek-V9dGESfO.js → TmuxPeek-BTnjOQi0.js} +1 -1
- package/dist/client/assets/{VoicePermissionsPanel-k7sbLXx2.js → VoicePermissionsPanel-CgQ6GGS-.js} +1 -1
- package/dist/client/assets/{WorkDetailScreen-60p9litn.js → WorkDetailScreen-CaLG-zDs.js} +1 -1
- package/dist/client/assets/{WorkFilesViewer-BjJS7GyM.js → WorkFilesViewer-B9Sil_No.js} +1 -1
- package/dist/client/assets/{activity-Bj3Hnbj3.js → activity-DcrMApUY.js} +1 -1
- package/dist/client/assets/{addon-fit-BL-NTWRU.js → addon-fit-DMVrz5Sv.js} +1 -1
- package/dist/client/assets/{addon-webgl-CIMgmNjg.js → addon-webgl-BYvpZUyu.js} +1 -1
- package/dist/client/assets/{agent-autocomplete-DXlvdc4b.js → agent-autocomplete-B-5QTeas.js} +1 -1
- package/dist/client/assets/{agent-essentials-BOMHR0_U.js → agent-essentials-D7KRGYvF.js} +1 -1
- package/dist/client/assets/{agent-lane-card-model-CTLxf3R4.js → agent-lane-card-model-CNZMPkhc.js} +1 -1
- package/dist/client/assets/{agent-lanes-model-AfrjRNK5.js → agent-lanes-model-DXqjs0OK.js} +2 -2
- package/dist/client/assets/agent-master-I1W-5d-x.css +1 -0
- package/dist/client/assets/agent-master-model-DqjrVI2h.js +1 -0
- package/dist/client/assets/{agent-specialization-BIPIBW8u.js → agent-specialization-BujJVUTD.js} +1 -1
- package/dist/client/assets/{arc.es-IR5r6sj_.js → arc.es-NHqHWohb.js} +1 -1
- package/dist/client/assets/{arrow-down-BydciYFZ.js → arrow-down-CKtSUjmW.js} +1 -1
- package/dist/client/assets/{arrow-left-CghA0kTw.js → arrow-left-Czpf-AE4.js} +1 -1
- package/dist/client/assets/{arrow-right-iJFv3jNh.js → arrow-right-BuzMnLYP.js} +1 -1
- package/dist/client/assets/{arrow-up-right-CCfZXPqD.js → arrow-up-right-C6Wl-1uw.js} +1 -1
- package/dist/client/assets/{bot-B5sub1-i.js → bot-rd0awxD3.js} +1 -1
- package/dist/client/assets/{check-C18YQC90.js → check-ofKUE8yH.js} +1 -1
- package/dist/client/assets/{chevron-down-Mp9mu_yd.js → chevron-down-wciXnOQz.js} +1 -1
- package/dist/client/assets/{chevron-right-CzH-TaSF.js → chevron-right-D-HdlPg8.js} +1 -1
- package/dist/client/assets/{chunk-HRAB3GC3-swV8PA2k.js → chunk-HRAB3GC3-Tyv9rzx7.js} +1 -1
- package/dist/client/assets/{chunk-JTPDIGGW-BKXqcLKw.js → chunk-JTPDIGGW-BC2Mandc.js} +3 -3
- package/dist/client/assets/{chunk-T65CQEWV-vYbNJ8E6.js → chunk-T65CQEWV-C1AWTYZZ.js} +1 -1
- package/dist/client/assets/{chunk-YOZR3KYS-U65yUmqt.js → chunk-YOZR3KYS-DwHPHa6f.js} +1 -1
- package/dist/client/assets/{clock-B4PTFi5m.js → clock-B88r8OrZ.js} +1 -1
- package/dist/client/assets/{code-xml-Jtxsp5d1.js → code-xml-D7pOQM9l.js} +1 -1
- package/dist/client/assets/{compass-0_54-vz3.js → compass-Dt1AMXz2.js} +1 -1
- package/dist/client/assets/content-9K38QchR.js +1 -0
- package/dist/client/assets/content-BRgnyXWh.js +1 -0
- package/dist/client/assets/{content-CHghn-rT.js → content-BWPNyXJ0.js} +1 -1
- package/dist/client/assets/content-BdkI07v3.js +1 -0
- package/dist/client/assets/content-C4oWa8SB.js +1 -0
- package/dist/client/assets/content-C9ijJxyl.js +1 -0
- package/dist/client/assets/content-CFZ4rghn.js +1 -0
- package/dist/client/assets/content-CIqu_Ci_.js +1 -0
- package/dist/client/assets/content-CnJF9DGO.js +1 -0
- package/dist/client/assets/content-CriW8Y8u.js +1 -0
- package/dist/client/assets/content-DDCyPPk_.js +1 -0
- package/dist/client/assets/content-DtcZeh5m.js +1 -0
- package/dist/client/assets/content-U9tsdtle.js +1 -0
- package/dist/client/assets/content-hFLK3CON.js +1 -0
- package/dist/client/assets/{content-DMbawvqU.js → content-nkx0swDe.js} +1 -1
- package/dist/client/assets/content-p00KQrtD.js +1 -0
- package/dist/client/assets/{conversation-icons-BV10B2Me.js → conversation-icons-tp9BX6X2.js} +1 -1
- package/dist/client/assets/{conversation-model-CwF6Y9gx.js → conversation-model-Dc02NsGp.js} +1 -1
- package/dist/client/assets/conversation-motion-features-D9-RmBSq.js +1 -0
- package/dist/client/assets/{copy-Dtpx4FOE.js → copy-CWWAJ75H.js} +1 -1
- package/dist/client/assets/{cpu-BjVis9mc.js → cpu-DrqejfkB.js} +1 -1
- package/dist/client/assets/{createLucideIcon-DXpqZP7I.js → createLucideIcon-DezKXSG2.js} +1 -1
- package/dist/client/assets/{ctx-panel-D_HJ3nhb.css → ctx-panel-F05jXK4Q.css} +1 -1
- package/dist/client/assets/discover-C2CZO4Tk.js +2 -0
- package/dist/client/assets/embed-entry-BSMUykuG.js +2 -0
- package/dist/client/assets/{external-link-Ckiyzjwo.js → external-link-Dp_a2vRZ.js} +1 -1
- package/dist/client/assets/{eye-CpfyvdLq.js → eye-BRyD0jno.js} +1 -1
- package/dist/client/assets/{file-code-corner-7mo7EviR.js → file-code-corner-muIVH_xO.js} +1 -1
- package/dist/client/assets/{file-text-KijGBnME.js → file-text-CqJgwxmv.js} +1 -1
- package/dist/client/assets/{gauge-y-Xg8Mrv.js → gauge-hU--hKVP.js} +1 -1
- package/dist/client/assets/{gestures-Bq9XnSqY.js → gestures-DN4hEeqv.js} +1 -1
- package/dist/client/assets/{git-branch-BQ_x8KZL.js → git-branch-CK5v8F2v.js} +1 -1
- package/dist/client/assets/{home-moving-signal-DtRpiNa0.js → home-moving-signal-BjDtEJUP.js} +1 -1
- package/dist/client/assets/{home-now-card-DFb4GOgM.js → home-now-card-nF8OotI-.js} +1 -1
- package/dist/client/assets/{home-now-card-nano-D--m9jpq.js → home-now-card-nano-C-r_bBg5.js} +1 -1
- package/dist/client/assets/{hooks-9d1SoaQA.js → hooks-D46bABUP.js} +1 -1
- package/dist/client/assets/index-CPrU5q04.js +1 -0
- package/dist/client/assets/{index-CZ-05hKz.js → index-DvLtl7rV.js} +5 -5
- package/dist/client/assets/index-kL1WLbeS.js +1 -0
- package/dist/client/assets/index-zvhpRHao.js +1 -0
- package/dist/client/assets/{inspector-panel-C-EhEDYy.js → inspector-panel-Dkc7rLvY.js} +1 -1
- package/dist/client/assets/{keyboard-nav-DFhAJkW3.js → keyboard-nav-BLYDhL3Z.js} +1 -1
- package/dist/client/assets/{lane-roster-store-gUBsydNf.js → lane-roster-store-DOdI1O13.js} +1 -1
- package/dist/client/assets/{layers-CGou-LwV.js → layers-CSsg3JVP.js} +1 -1
- package/dist/client/assets/{layout-grid-BrZt31QH.js → layout-grid-DOChPJdZ.js} +1 -1
- package/dist/client/assets/left-B-SdEJSJ.js +1 -0
- package/dist/client/assets/{left-B_o51JV6.js → left-B3wSE6ql.js} +1 -1
- package/dist/client/assets/{left-CwHZCGO3.js → left-BNRFiRsb.js} +1 -1
- package/dist/client/assets/{left-DA0amyfu.js → left-BggzhgXN.js} +1 -1
- package/dist/client/assets/left-CARCvvxS.js +2 -0
- package/dist/client/assets/left-CpokZYHt.js +1 -0
- package/dist/client/assets/{left-CwLs0okF.js → left-YT7mIGuH.js} +1 -1
- package/dist/client/assets/{left-advisor-DU3s01gk.js → left-advisor-CCY0vkcO.js} +1 -1
- package/dist/client/assets/left-agents-trhO5sL8.js +1 -0
- package/dist/client/assets/{left-default-uvuvDmt0.js → left-default-CG33elBs.js} +1 -1
- package/dist/client/assets/{left-lanes-DnNLgec8.js → left-lanes-CitMgeTp.js} +1 -1
- package/dist/client/assets/{left-mission-DN3-NLPC.js → left-mission-Zl2m_5eU.js} +1 -1
- package/dist/client/assets/{library-DIo5NiGP.js → library-DkALuCh5.js} +1 -1
- package/dist/client/assets/{loader-circle-BiohlpM3.js → loader-circle-pM56HNhR.js} +1 -1
- package/dist/client/assets/{local-agents-wUIaBcEr.js → local-agents-C8xAhbO5.js} +1 -1
- package/dist/client/assets/{mentions-CcPFMbmZ.js → mentions-DG6OQrsc.js} +1 -1
- package/dist/client/assets/{mesh-buckets-ByyFXdKT.js → mesh-buckets-6y3ZIibI.js} +1 -1
- package/dist/client/assets/{mesh-ops-CvGyjK84.js → mesh-ops-BZ1h5RQs.js} +1 -1
- package/dist/client/assets/{mesh-roster-n2nDpEmA.js → mesh-roster-Bc7T4b7z.js} +1 -1
- package/dist/client/assets/{mesh-view-store-BpxGm71b.js → mesh-view-store-ChUOASK8.js} +1 -1
- package/dist/client/assets/{message-circle-B2ddzBrX.js → message-circle-mZCv8tvB.js} +1 -1
- package/dist/client/assets/{message-markup-RkfmDfME.js → message-markup-C2LQDm_k.js} +1 -1
- package/dist/client/assets/{message-square-D9YYWE0x.js → message-square-C7t_qtuj.js} +1 -1
- package/dist/client/assets/{message-visibility-DwxgcgYK.js → message-visibility-CGOmSSKs.js} +1 -1
- package/dist/client/assets/{mission-control-store-Bf4b54MV.js → mission-control-store-nDLdUZPA.js} +1 -1
- package/dist/client/assets/{observe-CJRIvOCn.js → observe-BpEm1INu.js} +1 -1
- package/dist/client/assets/{page-status-BptpTdQ-.js → page-status-E5jnk48p.js} +1 -1
- package/dist/client/assets/{paperclip-B1UNGl5d.js → paperclip-C64lkcbM.js} +1 -1
- package/dist/client/assets/{persistent-state-YI-WHSCF.js → persistent-state-EHXw8WNy.js} +1 -1
- package/dist/client/assets/{plus-CuU_X0-8.js → plus-Co-dqKul.js} +1 -1
- package/dist/client/assets/{profile-rY8jO38P.js → profile-APxDsN2P.js} +1 -1
- package/dist/client/assets/projects-inbox-Cg4X2lUQ.js +1 -0
- package/dist/client/assets/projects-inbox-DRBl2N85.css +1 -0
- package/dist/client/assets/{proxy-DnLpZIi9.js → proxy-BiW5suC7.js} +1 -1
- package/dist/client/assets/{radio-Dm1ItnA4.js → radio-BOxBQX-T.js} +1 -1
- package/dist/client/assets/{refresh-cw-BRn9Oxxl.js → refresh-cw-DMxGzDwn.js} +1 -1
- package/dist/client/assets/resolve-panes-DeVJbS9c.js +1 -0
- package/dist/client/assets/resolve-sidebar-context-BQe5J6xF.js +1 -0
- package/dist/client/assets/{right-BJltPRnd.js → right-Bmfd3pjP.js} +1 -1
- package/dist/client/assets/{right-Beh3nCUB.js → right-BqI-nr9G.js} +1 -1
- package/dist/client/assets/{right-D3aTKf1F.js → right-BuCgE0fZ.js} +1 -1
- package/dist/client/assets/{right-Shpw_xDy.js → right-BwlW6E57.js} +1 -1
- package/dist/client/assets/{right-CPP7GyOm.js → right-C0ybUw0j.js} +1 -1
- package/dist/client/assets/{right-BbyYdzHn.js → right-CdkcrmeD.js} +1 -1
- package/dist/client/assets/{right-CJnB_Bg7.js → right-CimaAvQN.js} +1 -1
- package/dist/client/assets/{right-C1yumXNx.js → right-CkCCPbCX.js} +1 -1
- package/dist/client/assets/{right-DI1B79nR.js → right-D3eSiy41.js} +1 -1
- package/dist/client/assets/{right-DtsRNX5b.js → right-Dz_xD0Vj.js} +1 -1
- package/dist/client/assets/{rocket-DOwXHKWA.js → rocket-BQm5_CvR.js} +1 -1
- package/dist/client/assets/router-B9vQkNJL.js +1 -0
- package/dist/client/assets/{scope-views-A4_vP97W.js → scope-views-1IYJdl41.js} +1 -1
- package/dist/client/assets/{scout-voice-BhPzrc6P.js → scout-voice-BVUqGhth.js} +1 -1
- package/dist/client/assets/{scoutbot-markdown-jh7tzFB1.js → scoutbot-markdown-BQ_Ee2Ic.js} +1 -1
- package/dist/client/assets/{scroll-text-DO0GQzvN.js → scroll-text-Dze_dXtQ.js} +1 -1
- package/dist/client/assets/{search-D1tJSAWe.js → search-CDko0PKE.js} +1 -1
- package/dist/client/assets/{secondaryNavConfig-B9IF8wXl.js → secondaryNavConfig-BoQ_zYR9.js} +1 -1
- package/dist/client/assets/{selection-bridge-i2S9zpf8.js → selection-bridge-Din6yV3h.js} +1 -1
- package/dist/client/assets/{send-horizontal-CgLppsIC.js → send-horizontal-CSjIm6xg.js} +1 -1
- package/dist/client/assets/{server-Dymv5Emh.js → server-Bzj7lPIx.js} +1 -1
- package/dist/client/assets/{session-catalog-DNaOEzoQ.js → session-catalog-DsaZJXZt.js} +1 -1
- package/dist/client/assets/session-ref-lookup-state-SATH_jAP.js +1 -0
- package/dist/client/assets/{session-table-PTQVoTyc.js → session-table-BQfR7u6r.js} +1 -1
- package/dist/client/assets/{settings-2fC_G9nX.js → settings-Dyvpkb1D.js} +1 -1
- package/dist/client/assets/{sliders-horizontal-BPSMHhbm.js → sliders-horizontal-C8njVwfg.js} +1 -1
- package/dist/client/assets/{sparkles-Dy8p5xN8.js → sparkles-CETYrxGA.js} +1 -1
- package/dist/client/assets/{sse-CiOSzE5n.js → sse-CD9MMUxl.js} +1 -1
- package/dist/client/assets/{tail-events-BMQmSx1n.js → tail-events-Ps8KpKah.js} +1 -1
- package/dist/client/assets/{terminal-yN9xN-h9.js → terminal-9GRS_Qdc.js} +1 -1
- package/dist/client/assets/{terminal-relay-9lhzEp2V.js → terminal-relay-GYMIvKs1.js} +1 -1
- package/dist/client/assets/{terminal-takeover-DANQfTcy.js → terminal-takeover-_Jyys4me.js} +1 -1
- package/dist/client/assets/{text-CnZ0e1-V.js → text-BP3oyl8-.js} +1 -1
- package/dist/client/assets/{text-rLpBg4_z.css → text-BYAFNLNq.css} +1 -1
- package/dist/client/assets/{use-conversation-list-D9BNLfnW.js → use-conversation-list-C9ABzjXI.js} +1 -1
- package/dist/client/assets/use-fleet-active-asks-DAspZQjE.js +1 -0
- package/dist/client/assets/{use-mesh-ops-items-BIvIHlqe.js → use-mesh-ops-items-Dh54ymEp.js} +1 -1
- package/dist/client/assets/{use-reduced-motion-CKkhq9c5.js → use-reduced-motion-x8pJMVrG.js} +1 -1
- package/dist/client/assets/{use-scout-dev-flags-B2KCzPxn.js → use-scout-dev-flags-DhCbiDK3.js} +1 -1
- package/dist/client/assets/{useAgentHoverCard-CHBsxcbp.js → useAgentHoverCard-DoBwV0LX.js} +1 -1
- package/dist/client/assets/useContentSecondaryNav-pZe2Zfk1.js +1 -0
- package/dist/client/assets/{usePierreRuntime-DUuXH5yp.js → usePierreRuntime-ejq9dCWV.js} +1 -1
- package/dist/client/assets/{wrench-YcXMlsh2.js → wrench-DjkoAOQt.js} +1 -1
- package/dist/client/assets/{x-e3h2hDsp.js → x-CAbNespN.js} +1 -1
- package/dist/client/assets/{xterm-Byp1Hep_.js → xterm-Cf-ngcGP.js} +1 -1
- package/dist/client/assets/{zap-nMcjPoWB.js → zap-Cq8eWkcF.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/drizzle/0009_old_korg.sql +72 -0
- package/dist/drizzle/0010_sparkling_colonel_america.sql +2 -0
- package/dist/drizzle/0011_funny_onslaught.sql +4 -0
- package/dist/drizzle/0012_high_blazing_skull.sql +16 -0
- package/dist/drizzle/0013_perfect_juggernaut.sql +1 -0
- package/dist/drizzle/0014_legal_meggan.sql +6 -0
- package/dist/drizzle/0015_lame_marvel_boy.sql +12 -0
- package/dist/drizzle/0016_early_goliath.sql +6 -0
- package/dist/drizzle/meta/0009_snapshot.json +6262 -0
- package/dist/drizzle/meta/0010_snapshot.json +6286 -0
- package/dist/drizzle/meta/0011_snapshot.json +6337 -0
- package/dist/drizzle/meta/0012_snapshot.json +6458 -0
- package/dist/drizzle/meta/0013_snapshot.json +6465 -0
- package/dist/drizzle/meta/0014_snapshot.json +6503 -0
- package/dist/drizzle/meta/0015_snapshot.json +6596 -0
- package/dist/drizzle/meta/0016_snapshot.json +6611 -0
- package/dist/drizzle/meta/_journal.json +56 -0
- package/dist/main.mjs +1306 -360
- package/dist/node/main.mjs +314 -12
- package/dist/pairing-runtime-controller.mjs +608 -108
- package/dist/runtime/base-daemon.mjs +30 -3
- package/dist/runtime/broker-daemon.mjs +4771 -529
- package/dist/runtime/broker-process-manager.mjs +23 -2
- package/dist/runtime/mesh-discover.mjs +23 -2
- package/dist/scout-control-plane-web.mjs +1914 -478
- package/package.json +2 -2
- package/dist/client/assets/AgentLanesEmbedScreen-BmLnN4on.js +0 -1
- package/dist/client/assets/AgentLanesPreflight-5B6sXvRB.js +0 -1
- package/dist/client/assets/AgentLanesView-DHyzVBk6.js +0 -2
- package/dist/client/assets/AgentsSubnav-CDMjKeYC.js +0 -1
- package/dist/client/assets/ChatCollapsedStrip-Ycm0ecaX.js +0 -1
- package/dist/client/assets/ConversationScreen-BNULZAp2.js +0 -2
- package/dist/client/assets/CrewWorkspaces-CJhBKVoZ.css +0 -1
- package/dist/client/assets/CrewWorkspaces-CkPYIA46.js +0 -1
- package/dist/client/assets/FlightObserveScreen-CDWGSKZg.js +0 -1
- package/dist/client/assets/MessagesScreen-Eulveud3.js +0 -1
- package/dist/client/assets/NewChatComposer-hlWT-nbR.js +0 -19
- package/dist/client/assets/OpsScreen-Ppen_Lmj.js +0 -1
- package/dist/client/assets/OpsSubnav-GAKsoSor.js +0 -1
- package/dist/client/assets/ProjectAgentProfile-BLlp2e6t.js +0 -1
- package/dist/client/assets/ProjectsInbox-Dlt8OQ8O.js +0 -2
- package/dist/client/assets/ProjectsRail-DCfNMmnW.js +0 -1
- package/dist/client/assets/ProjectsScreen-BP-hmI1m.js +0 -1
- package/dist/client/assets/ProjectsThreadAside-CWpMjGIH.js +0 -1
- package/dist/client/assets/RealtimeVoiceScreen-D7zZHK_t.js +0 -1
- package/dist/client/assets/ScoutDeckSurface-CKT3qdqY.js +0 -1
- package/dist/client/assets/SessionEmbedScreen-RD5XOx7R.js +0 -1
- package/dist/client/assets/SessionRefScreen-B_cTv47v.js +0 -1
- package/dist/client/assets/SessionsScreen-Bq0Z77On.js +0 -1
- package/dist/client/assets/archive-BjcGiAy8.js +0 -1
- package/dist/client/assets/content-6RvWTrtk.js +0 -1
- package/dist/client/assets/content-BCgwMUqz.js +0 -1
- package/dist/client/assets/content-Bf2VLhx0.js +0 -1
- package/dist/client/assets/content-BrU_38-m.js +0 -1
- package/dist/client/assets/content-BvvJN8rN.js +0 -1
- package/dist/client/assets/content-CAeEqYPw.js +0 -1
- package/dist/client/assets/content-CI_Z9DXk.js +0 -1
- package/dist/client/assets/content-CbyKONhW.js +0 -1
- package/dist/client/assets/content-Czogvp43.js +0 -1
- package/dist/client/assets/content-DFk0zNzX.js +0 -1
- package/dist/client/assets/content-DHe4DgkA.js +0 -1
- package/dist/client/assets/content-DTz7cKjo.js +0 -1
- package/dist/client/assets/content-E3kudY-W.js +0 -1
- package/dist/client/assets/content-LpO0aO_U.js +0 -1
- package/dist/client/assets/conversation-motion-features-BKkCRaWR.js +0 -1
- package/dist/client/assets/discover-CHbrEItO.js +0 -2
- package/dist/client/assets/embed-entry-vil28MyU.js +0 -2
- package/dist/client/assets/index-BVlMw8x_.js +0 -1
- package/dist/client/assets/index-Cn0GR-q1.js +0 -1
- package/dist/client/assets/index-DosI4AG9.js +0 -1
- package/dist/client/assets/left-BpgWnaah.js +0 -1
- package/dist/client/assets/left-Cx0kv6pe.js +0 -1
- package/dist/client/assets/left-agents-qL5PpUY-.js +0 -1
- package/dist/client/assets/left-z-6CkuBe.js +0 -2
- package/dist/client/assets/projects-inbox-BBs1hG13.css +0 -1
- package/dist/client/assets/projects-inbox-D-zAb9Gp.js +0 -1
- package/dist/client/assets/resolve-panes-DO6LkwhQ.js +0 -1
- package/dist/client/assets/resolve-sidebar-context-CIF288wY.js +0 -1
- package/dist/client/assets/router-DJj2WbDg.js +0 -1
- package/dist/client/assets/use-fleet-active-asks-BeAdcl09.js +0 -1
- package/dist/client/assets/useContentSecondaryNav-D0mUhxTF.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as o}from"./createLucideIcon-
|
|
1
|
+
import{c as o}from"./createLucideIcon-DezKXSG2.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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as o}from"./createLucideIcon-
|
|
1
|
+
import{c as o}from"./createLucideIcon-DezKXSG2.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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as o}from"./createLucideIcon-
|
|
1
|
+
import{c as o}from"./createLucideIcon-DezKXSG2.js";const r=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],c=o("arrow-right",r);export{c as A};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as o}from"./createLucideIcon-
|
|
1
|
+
import{c as o}from"./createLucideIcon-DezKXSG2.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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as t}from"./createLucideIcon-
|
|
1
|
+
import{c as t}from"./createLucideIcon-DezKXSG2.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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c}from"./createLucideIcon-
|
|
1
|
+
import{c}from"./createLucideIcon-DezKXSG2.js";const e=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],t=c("check",e);export{t as C};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as o}from"./createLucideIcon-
|
|
1
|
+
import{c as o}from"./createLucideIcon-DezKXSG2.js";const n=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],e=o("chevron-down",n);export{e as C};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as o}from"./createLucideIcon-
|
|
1
|
+
import{c as o}from"./createLucideIcon-DezKXSG2.js";const t=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],e=o("chevron-right",t);export{e as C};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as s,j as S}from"./index-
|
|
1
|
+
import{r as s,j as S}from"./index-DvLtl7rV.js";var O="hudson.theme",M="system",R="hudson",p=s.createContext(null);function T(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function L(){if(typeof window>"u")return{};try{const e=new URLSearchParams(window.location.search),t=e.get("theme"),n=e.get("template");return{theme:t==="light"||t==="dark"||t==="system"?t:void 0,template:n&&/^[a-z][a-z0-9-]{1,64}$/.test(n)?n:void 0}}catch{return{}}}function j(){const e=L();return!!(e.theme||e.template)}function l(e,t,n){if(typeof window>"u")return{theme:t,template:n};const r=L();try{const c=JSON.parse(window.localStorage.getItem(e)||"{}");return{theme:r.theme??c.theme??t,template:r.template??c.template??n}}catch{return{theme:r.theme??t,template:r.template??n}}}var H=()=>()=>{},U=()=>!0,b=()=>!1;function C(){return s.useSyncExternalStore(H,U,b)}function P(e){return e==="system"?typeof window<"u"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":"dark":e}function _(e){return e==="system"?"dark":e}function F(e,t,n){const r=n??document.documentElement;r.dataset.hudsonTheme=e,r.dataset.hudsonTemplate=t}function I(e,t,n){if(!j())try{const r=JSON.parse(window.localStorage.getItem(e)||"{}"),c=T(r)?{...r,theme:t,template:n}:{theme:t,template:n};window.localStorage.setItem(e,JSON.stringify(c))}catch{}}function D({children:e,defaultTheme:t=M,defaultTemplate:n=R,storageKey:r=O,rootElement:c}){const o=s.useContext(p),[d,m]=s.useState(t),[u,h]=s.useState(n),[v,g]=s.useState(()=>_(t)),[w,k]=s.useState(!1),x=C();s.useEffect(()=>{if(o)return;let a=!1;return queueMicrotask(()=>{if(a)return;const i=l(r,t,n);m(i.theme??t),h(i.template??n),k(!0)}),()=>{a=!0}},[n,t,o,r]),s.useEffect(()=>{if(o)return;const a=window.matchMedia("(prefers-color-scheme: dark)"),i=()=>{g(P(d))};return i(),a.addEventListener("change",i),()=>a.removeEventListener("change",i)},[o,d]),s.useEffect(()=>{o||!w||F(v,u,c)},[w,o,v,c,u]),s.useEffect(()=>{o||!w||I(r,d,u)},[w,o,r,u,d]),s.useEffect(()=>{if(o)return;const a=f=>{if(f.key!==r)return;const E=l(r,t,n);m(E.theme??t),h(E.template??n)},i=f=>{if(f.detail?.key!==r)return;const y=l(r,t,n);m(y.theme??t),h(y.template??n)};return window.addEventListener("storage",a),window.addEventListener("hudson:saved",i),()=>{window.removeEventListener("storage",a),window.removeEventListener("hudson:saved",i)}},[n,t,o,r]);const A=s.useMemo(()=>({theme:d,resolvedTheme:x?v:void 0,template:u,setTheme:m,setTemplate:h}),[x,v,u,d]);return o?S.jsx(S.Fragment,{children:e}):S.jsx(p.Provider,{value:A,children:e})}function J(){return s.useContext(p)}export{D as T,J as u};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/xterm-
|
|
2
|
-
import{r as e,j as o,_ as _e}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/xterm-Cf-ngcGP.js","assets/index-DvLtl7rV.js","assets/index-i7TMxlwW.css","assets/addon-fit-DMVrz5Sv.js","assets/addon-webgl-BYvpZUyu.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as e,j as o,_ as _e}from"./index-DvLtl7rV.js";import{u as Ke}from"./chunk-HRAB3GC3-Tyv9rzx7.js";var Be=["terminal:ack"];function lt(d={}){const{url:f="ws://localhost:3600",healthUrl:g,token:m,systemPrompt:j,cwd:Ne,workspaceFiles:se,autoConnect:we=!1,sessionKey:ke,orphanTTL:ce,backend:Z,controlMode:p="owner",tmuxSession:V,zellijSession:le,zellijSocketDir:ie,agent:ae,provider:q,model:ee,flowControl:me}=d,O=ke?`hudson.relay.${ke}`:null,Se=()=>{if(!O)return null;try{const r=localStorage.getItem(O);if(!r)return null;if(r.startsWith("{")){const c=JSON.parse(r);return typeof c.id!="string"?null:{id:c.id,reconnectToken:typeof c.reconnectToken=="string"?c.reconnectToken:null}}return{id:r,reconnectToken:null}}catch{return null}},l=e.useCallback((r,c=null)=>{if(O)try{r?localStorage.setItem(O,JSON.stringify({id:r,reconnectToken:c})):localStorage.removeItem(O)}catch{}},[O]),[xe,k]=e.useState("disconnected"),[je,ue]=e.useState(null),[Re,L]=e.useState(null),[pe,H]=e.useState(null),[y,De]=e.useState(Ne||"~"),P=e.useRef(null),D=e.useRef(null),te=e.useRef({cols:80,rows:24}),R=e.useRef(!1),B=e.useRef([]),J=e.useRef(0),X=e.useRef(0),de=e.useRef(0),be=e.useRef(y);be.current=y;const U=e.useRef(!1),re=e.useRef(null);U.current||(U.current=!0,re.current=Se());const C=e.useRef(re.current?.id??null),E=e.useRef(re.current?.reconnectToken??null),u=e.useRef(null),fe=e.useRef(null),G=e.useRef(null),W=e.useRef(new Set),$=me?.maxBufferedBytes??512*1024,x=e.useCallback(r=>{const c=P.current;c&&c.readyState===WebSocket.OPEN&&c.send(JSON.stringify(r))},[]),he=e.useCallback((r,c)=>{typeof r=="number"&&c===de.current&&x({type:"terminal:ack",seq:r})},[x]),_=e.useCallback(()=>{de.current+=1,B.current=[],J.current=0},[]),A=e.useCallback((r,c=null)=>{const S=de.current;if(!r){he(c,S);return}let b=!1;const F=()=>{b||(b=!0,he(c,S))};if(u.current)try{u.current(r,F)}catch{F()}else for(B.current.push({data:r,seq:c,ack:F}),J.current+=r.length;J.current>$&&B.current.length>0;){const h=B.current.shift();if(!h)break;J.current-=h.data.length,h.ack()}if(W.current.size>0)for(const h of W.current)try{h(r)}catch{}},[he,$]),I=e.useCallback((r,c)=>{typeof r!="number"||typeof c!="number"||r<=0||c<=0||(G.current={cols:r,rows:c},fe.current?.(r,c))},[]),Y=e.useCallback(()=>{const r=P.current;r&&(r.close(),P.current=null)},[]),Q=e.useCallback(()=>{X.current+=1,D.current&&(clearTimeout(D.current),D.current=null),Y(),R.current=!1,k("disconnected")},[Y]),v=e.useCallback(()=>{const r=be.current;return{type:"session:init",cols:te.current.cols,rows:te.current.rows,clientCapabilities:[...Be],...j?{systemPrompt:j}:{},...r?{cwd:r}:{},...se?{workspaceFiles:se}:{},...ce?{orphanTTL:ce}:{},...Z?{backend:Z}:{},...p!=="owner"?{controlMode:p}:{},...V?{tmuxSession:V}:{},...le?{zellijSession:le}:{},...ie?{zellijSocketDir:ie}:{},...ae?{agent:ae}:{},...q?{provider:q}:{},...ee?{model:ee}:{}}},[ae,Z,p,ee,ce,q,j,V,se,le,ie]),M=e.useCallback(()=>{R.current||(R.current=!0,C.current?x({type:"session:reconnect",sessionId:C.current,...E.current?{reconnectToken:E.current}:{},cols:te.current.cols,rows:te.current.rows,clientCapabilities:[...Be],...p!=="owner"?{controlMode:p}:{}}):x(v()))},[x,v,p]),ne=e.useCallback(async()=>{const r=X.current+1;X.current=r,Y(),de.current+=1,R.current=!1,k("connecting"),L(null),H(null);const c=g||`${f.replace(/^ws(s?):\/\//,"http$1://")}/health`;try{const h=await fetch(c,{signal:AbortSignal.timeout(2e3)});if(!h.ok)throw new Error(`Relay health check failed: ${h.status}`)}catch{if(X.current!==r)return;k("error"),L("Relay service is not running");return}if(X.current!==r)return;Y();const S=m?`${f}${f.includes("?")?"&":"?"}token=${encodeURIComponent(m)}`:f,b=new WebSocket(S);P.current=b;const F=()=>X.current===r&&P.current===b;b.onopen=()=>{if(!F()){b.close();return}M()},b.onmessage=h=>{if(F())try{const i=JSON.parse(h.data);switch(i.type){case"session:ready":I(i.cols,i.rows),C.current=i.sessionId,E.current=typeof i.reconnectToken=="string"?i.reconnectToken:null,l(i.sessionId,E.current),ue(i.sessionId),k("connected"),L(null),H(null);break;case"terminal:dimensions":I(i.cols,i.rows);break;case"session:expired":{C.current=null,E.current=null,l(null),R.current=!1,_(),A("\x1B[2J\x1B[H",null),x(v()),R.current=!0;break}case"session:error":k("error"),L(i.error||"Session failed to start");break;case"terminal:data":A(i.data||"",typeof i.seq=="number"?i.seq:null);break;case"session:exit":C.current=null,E.current=null,l(null),_(),ue(null),H(i.exitCode??null),i.exitCode!==0?(k("error"),L(i.reason||`Process exited with code ${i.exitCode}`)):k("disconnected");break;case"session:detached":C.current=null,E.current=null,l(null),ue(null);break}}catch{}},b.onclose=()=>{F()&&(P.current=null,R.current=!1,k(h=>h==="error"?h:"disconnected"))},b.onerror=()=>{F()&&(k("error"),L("Could not connect to relay"))}},[f,g,m,M,Y,x,A,v,l,_]),Ce=e.useCallback(r=>{p!=="observe"&&x({type:"terminal:input",data:r})},[p,x]),Ee=e.useCallback(r=>{p!=="observe"&&x({type:"terminal:input",data:r+"\r"})},[p,x]),ge=e.useCallback((r,c)=>{te.current={cols:r,rows:c},R.current&&x({type:"terminal:resize",cols:r,rows:c})},[x]),T=e.useCallback(r=>{if(u.current=r,!r||B.current.length===0)return;const c=B.current;B.current=[],J.current=0;for(const S of c)try{r(S.data,S.ack)}catch{S.ack()}},[]),N=e.useCallback(r=>{fe.current=r;const c=G.current;r&&c&&r(c.cols,c.rows)},[]),Te=e.useCallback(r=>(W.current.add(r),()=>{W.current.delete(r)}),[]);e.useEffect(()=>(we&&ne(),()=>{Q()}),[]);const z=e.useCallback(()=>{Q(),C.current=null,E.current=null,ue(null),l(null),_(),L(null),H(null),D.current=setTimeout(()=>{D.current=null,ne()},200)},[Q,ne,l,_]);return{status:xe,sessionId:je,error:Re,exitCode:pe,cwd:y,controlMode:p,setCwd:De,onData:T,onDimensions:N,subscribeData:Te,sendInput:Ce,sendLine:Ee,resize:ge,connect:ne,disconnect:Q,restart:z}}var Je={titleBarInset:0,dragRegionProps:{},onInteractiveMouseDown:void 0,isSSR:!0,apiBaseUrl:"",serviceApiUrl:""},Xe=e.createContext(Je);function Ge(){return e.useContext(Xe)}var Me="hudson:terminal:voice-transcript",ze="hudson:terminal:voice-submit",it='[data-hudson-terminal-drawer-content="true"]',Ye=e.createContext(void 0),Qe={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"},Ze={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"},qe=`
|
|
3
3
|
.xterm { cursor: text; position: relative; user-select: none; -ms-user-select: none; -webkit-user-select: none; }
|
|
4
4
|
.xterm.focus, .xterm:focus { outline: none; }
|
|
5
5
|
.xterm .xterm-helpers { position: absolute; top: 0; z-index: 5; }
|
|
@@ -43,4 +43,4 @@ import{r as e,j as o,_ as _e}from"./index-CZ-05hKz.js";import{u as Ke}from"./chu
|
|
|
43
43
|
.xterm .xterm-scrollable-element > .shadow { position: absolute; display: none; }
|
|
44
44
|
.xterm .xterm-scrollable-element > .shadow.top { display: block; top: 0; left: 3px; height: 3px; width: 100%; }
|
|
45
45
|
.xterm .xterm-scrollable-element > .shadow.left { display: block; top: 3px; left: 0; height: 100%; width: 3px; }
|
|
46
|
-
`;function et(){if(typeof document>"u"||document.querySelector("[data-xterm-css]"))return;const d=document.createElement("style");d.setAttribute("data-xterm-css",""),d.textContent=qe,document.head.appendChild(d)}function Ie(d,f){if(typeof d!="object"||d===null)return;const g=d,m=g[f];if(m)return m;const j=g.default;if(!(typeof j!="object"||j===null))return j[f]}function Fe(d,f){if(!d||f&&!d.closest(f))return!1;const g=d.getBoundingClientRect();if(g.width<=0||g.height<=0)return!1;const m=window.getComputedStyle(d);return m.display!=="none"&&m.visibility!=="hidden"}var tt="\x1B[13;2u",Ve="\r";function rt(d){return new Promise((f,g)=>{const m=new FileReader;m.onload=()=>{const j=m.result;f(j.split(",")[1])},m.onerror=g,m.readAsDataURL(d)})}function nt({relay:d,fontSize:f=12,fontFamily:g="'JetBrains Mono', 'Hack Nerd Font', monospace",scrollback:m=5e3,renderer:j="auto",readOnly:Ne=!1,ariaLabel:se="Terminal",className:we,style:ke,colorScheme:ce="auto",configItems:Z,onOpenSettings:p,onStartService:V,quiet:le=!1,voiceVisibilityScope:ie,imageUploadUrl:ae,onReady:q,onDispose:ee,onResize:me,onRendererChange:O},Se){const{status:l,error:xe,exitCode:k,cwd:je,setCwd:ue,sendInput:Re,resize:L,onData:pe,onDimensions:H,connect:y,disconnect:De,controlMode:P="owner"}=d,D=Ne||P==="observe",te=e.useContext(Ye),R=ie===!1?void 0:ie??te,[B,J]=e.useState(!1),{apiBaseUrl:X}=Ge(),de=Ke(),be=ce==="auto"?de?.resolvedTheme==="light"?"light":"dark":ce,U=be==="light"?Ze:Qe,re=be==="light"?4.5:3,C=e.useRef(null),E=e.useRef(null),u=e.useRef(null),fe=e.useRef(null),G=e.useRef(null),W=e.useRef(!1),[$,x]=e.useState(!1),[he,_]=e.useState(!1),A=e.useRef(0),I=e.useRef(D),Y=e.useRef(null),Q=e.useRef(null),v=e.useRef(null),M=e.useRef(null),ne=e.useRef(q),Ce=e.useRef(ee),Ee=e.useRef(me),ge=e.useRef(O);e.useEffect(()=>{I.current=D,D&&(G.current=null,W.current=!1,A.current=0,_(!1))},[D]),e.useEffect(()=>{ne.current=q},[q]),e.useEffect(()=>{Ce.current=ee},[ee]),e.useEffect(()=>{Ee.current=me},[me]),e.useEffect(()=>{ge.current=O},[O]),e.useEffect(()=>{const t=C.current;if(!t)return;const n=s=>{s.key===" "&&!s.metaKey&&!s.ctrlKey&&!s.altKey&&s.stopPropagation()};return t.addEventListener("keydown",n),()=>t.removeEventListener("keydown",n)},[]);const T=ae===void 0?`${X}/api/relay/upload`:ae,N=e.useCallback(t=>{I.current||Re(t)},[Re]),Te=e.useCallback((t,n)=>{if(!Number.isFinite(t)||!Number.isFinite(n)||t<=0||n<=0)return;const s=Y.current;s&&s.cols===t&&s.rows===n||(Y.current={cols:t,rows:n},L(t,n),Ee.current?.(t,n))},[L]),z=e.useCallback(()=>{const t=fe.current,n=u.current;if(!t||!n)return null;try{const s=t.proposeDimensions();return s?((P!=="observe"||!Q.current)&&t.fit(),Te(s.cols,s.rows),Q.current??{cols:n.cols,rows:n.rows}):null}catch{return null}},[P,Te]),r=e.useCallback(()=>{v.current===null&&(v.current=window.requestAnimationFrame(()=>{v.current=null,z()}))},[z]);e.useImperativeHandle(Se,()=>({focus:()=>{u.current?.focus()},fit:z,clear:()=>{u.current?.clear()},getDimensions:()=>{const t=u.current;return t?{cols:t.cols,rows:t.rows}:null},getTerminal:()=>u.current}),[z]);const c=e.useCallback(t=>{const n=t.transcript.replace(/\s+/g," ").trim();n&&N(t.submit?`${n}${Ve}`:n)},[N]),S=e.useCallback(()=>{N(Ve)},[N]);e.useEffect(()=>{const t=n=>{if(I.current||!Fe(C.current,R))return;const s=n.detail;if(!(!s||typeof s.transcript!="string")){if(l==="connected"){c(s);return}G.current=s,l!=="connecting"&&y()}};return window.addEventListener(Me,t),()=>window.removeEventListener(Me,t)},[y,c,l,R]),e.useEffect(()=>{if(l!=="connected"||!G.current)return;const t=G.current;G.current=null,c(t)},[c,l]),e.useEffect(()=>{const t=()=>{if(!I.current&&Fe(C.current,R)){if(l==="connected"){S();return}W.current=!0,l!=="connecting"&&y()}};return window.addEventListener(ze,t),()=>window.removeEventListener(ze,t)},[y,S,l,R]),e.useEffect(()=>{l!=="connected"||!W.current||(W.current=!1,S())},[S,l]);const b=e.useCallback(async t=>{if(!T)return null;try{const n=await rt(t),s=await fetch(T,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t.name,data:n})}),{path:w}=await s.json();return w||null}catch(n){return console.error("File upload failed:",n),null}},[T]);e.useEffect(()=>{const t=C.current;if(!t)return;const n=async s=>{if(!s.clipboardData||!T)return;const w=Array.from(s.clipboardData.items).filter(K=>K.type.startsWith("image/"));if(w.length!==0&&(s.preventDefault(),s.stopPropagation(),!I.current))for(const K of w){const ye=K.getAsFile();if(!ye)continue;const ve=await b(ye);ve&&N(ve)}};return t.addEventListener("paste",n),()=>t.removeEventListener("paste",n)},[N,b,T]);const F=e.useCallback(t=>{if(t.preventDefault(),I.current||!T){t.dataTransfer.dropEffect="none";return}t.dataTransfer.dropEffect="copy"},[T]),h=e.useCallback(t=>{if(t.preventDefault(),I.current||!T){A.current=0,_(!1);return}A.current++,t.dataTransfer.types.includes("Files")&&_(!0)},[T]),i=e.useCallback(t=>{if(t.preventDefault(),I.current){A.current=0,_(!1);return}A.current--,A.current===0&&_(!1)},[]),He=e.useCallback(async t=>{if(t.preventDefault(),A.current=0,_(!1),I.current||!T)return;const n=Array.from(t.dataTransfer.files).filter(s=>s.type.startsWith("image/"));if(n.length!==0)for(const s of n){const w=await b(s);w&&N(w)}},[N,b,T]);e.useEffect(()=>{let t=!1,n=null;x(!1);async function s(){const[w,K,ye]=await Promise.all([_e(()=>import("./xterm-Byp1Hep_.js").then(a=>a.x),__vite__mapDeps([0,1,2])),_e(()=>import("./addon-fit-BL-NTWRU.js").then(a=>a.a),__vite__mapDeps([3,1,2])),_e(()=>import("./addon-webgl-CIMgmNjg.js").then(a=>a.a),__vite__mapDeps([4,1,2])).catch(()=>null)]),ve=Ie(w,"Terminal"),Ae=Ie(K,"FitAddon"),Oe=ye?Ie(ye,"WebglAddon"):void 0;if(!ve||!Ae){console.error("[TerminalRelay] @xterm/xterm or @xterm/addon-fit missing constructors",{xtermMod:w,fitMod:K});return}if(et(),t||!E.current)return;n=new ve({fontSize:f,fontFamily:g,theme:U,minimumContrastRatio:re,cursorBlink:!0,cursorStyle:"bar",allowTransparency:!0,scrollback:m,convertEol:!1,allowProposedApi:!0});const Le=new Ae;n.loadAddon(Le),n.open(E.current),u.current=n,fe.current=Le;let Pe="dom";if(j!=="dom"&&Oe)try{const a=new Oe;a.onContextLoss(()=>{a.dispose(),ge.current?.("dom")}),n.loadAddon(a),Pe="webgl"}catch{}ge.current?.(Pe),z(),n.attachCustomKeyEventHandler(a=>a.type==="keydown"&&a.key==="Enter"&&a.shiftKey&&!a.ctrlKey&&!a.altKey&&!a.metaKey?(a.preventDefault(),a.stopPropagation(),N(tt),!1):!0),n.onData(a=>{N(a)}),x(!0),ne.current?.(n)}return s(),()=>{t=!0,x(!1),v.current!==null&&(window.cancelAnimationFrame(v.current),v.current=null),n&&(n.dispose(),u.current=null,fe.current=null),Ce.current?.()}},[z,j,m,N]),e.useEffect(()=>{const t=u.current;t&&(t.options.fontSize=f,t.options.fontFamily=g,z())},[z,f,g]),e.useEffect(()=>{const t=u.current;t&&(t.options.theme=U,t.options.minimumContrastRatio=re)},[re,U]),e.useEffect(()=>{if(!(!$||!H))return H((t,n)=>{Q.current={cols:t,rows:n};const s=u.current;s&&(s.cols!==t||s.rows!==n)&&s.resize(t,n)}),()=>H(null)},[$,H]),e.useEffect(()=>{if($)return pe((t,n)=>{let s=!1;const w=()=>{s||(s=!0,n())},K=u.current;if(!K){w();return}try{K.write(t,w)}catch{w()}}),()=>{pe(null)}},[$,pe]),e.useEffect(()=>{const t=E.current;if(!t||!$)return;const n=new ResizeObserver(()=>{r()});return n.observe(t),()=>{n.disconnect(),v.current!==null&&(window.cancelAnimationFrame(v.current),v.current=null)}},[$,r]),e.useEffect(()=>{l==="connected"&&u.current&&u.current.focus()},[l]);const Ue=e.useCallback(()=>{l==="connected"&&u.current&&u.current.focus()},[l]),We=l==="error"&&xe==="Relay service is not running",$e=e.useCallback(async()=>{if(V){J(!0);try{await V()&&(M.current&&clearTimeout(M.current),M.current=setTimeout(()=>{M.current=null,y()},500))}finally{J(!1)}}},[V,y]);e.useEffect(()=>()=>{M.current&&(clearTimeout(M.current),M.current=null)},[]);let oe=null;return We?oe=o.jsxs("div",{className:"flex flex-col items-center gap-4 max-w-xs text-center px-4",children:[o.jsx("div",{className:"w-8 h-8 rounded-full bg-amber-500/10 border border-amber-500/20 flex items-center justify-center",children:o.jsx("span",{className:"text-amber-400 text-[14px]",children:"!"})}),o.jsxs("div",{children:[o.jsx("div",{className:"text-[12px] text-foreground font-medium mb-1",children:"Relay service not running"}),o.jsx("div",{className:"text-[11px] text-muted-foreground/80 leading-relaxed",children:V?"Start the relay service to open a terminal session.":"Start the relay service from the Workspace Manager."})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[V&&o.jsx("button",{type:"button",onClick:$e,disabled:B,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:B?"Starting":"Start Service"}),o.jsx("button",{type:"button",onClick:()=>y(),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"}),p&&o.jsx("button",{type:"button",onClick:p,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"})]})]}):l==="error"&&xe?oe=o.jsxs("div",{className:"flex flex-col items-center gap-3 max-w-md text-center px-4",children:[o.jsx("div",{className:"w-8 h-8 rounded-full bg-red-500/10 flex items-center justify-center",children:o.jsx("span",{className:"text-red-400 text-sm",children:"!"})}),o.jsx("span",{className:"text-red-400 text-[12px] font-medium",children:"Session failed"}),o.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:xe}),k!==null&&k!==0&&o.jsxs("span",{className:"text-[10px] text-muted-foreground/60",children:["Exit code ",k]}),o.jsx("button",{type:"button",onClick:()=>y(),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"})]}):l==="disconnected"&&!le?oe=o.jsxs("div",{className:"flex flex-col items-center gap-4 max-w-xs text-center px-4",children:[o.jsx("div",{className:"w-8 h-8 rounded-full bg-muted border border-border flex items-center justify-center",children:o.jsx("span",{className:"text-muted-foreground/80 text-[14px]",children:"▷"})}),o.jsxs("div",{children:[o.jsx("div",{className:"text-[12px] text-foreground font-medium mb-1",children:"Terminal relay disconnected"}),o.jsx("div",{className:"text-[11px] text-muted-foreground/80 leading-relaxed",children:"Set working directory and connect."})]}),o.jsxs("form",{className:"w-full",onSubmit:t=>{t.preventDefault(),y()},children:[o.jsx("label",{className:"text-[10px] font-mono text-muted-foreground/80 uppercase tracking-wider mb-1 block text-left",children:"Working Directory"}),o.jsx("input",{type:"text",value:je,onChange:t=>ue(t.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"})]}),Z&&Z.length>0&&o.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:Z.map(t=>o.jsxs("div",{className:"contents",children:[o.jsx("span",{className:"text-muted-foreground/80",children:t.label}),o.jsx("span",{className:"text-muted-foreground truncate text-left",children:t.value})]},t.label))}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{type:"button",onClick:()=>y(),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"}),p&&o.jsx("button",{type:"button",onClick:p,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"})]})]}):l==="connecting"&&!le&&(oe=o.jsxs("div",{className:"flex flex-col items-center gap-3 text-center",children:[o.jsx("div",{className:"w-6 h-6 border-2 border-muted-foreground/30 border-t-cyan-500 rounded-full animate-spin"}),o.jsx("span",{className:"text-[12px] text-muted-foreground",children:"Connecting to relay"}),o.jsx("button",{type:"button",onClick:()=>{De()},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"})]})),o.jsxs("div",{ref:C,className:we?`relative flex flex-col h-full overflow-hidden ${we}`:"relative flex flex-col h-full overflow-hidden",style:ke,role:"application","aria-label":D?`${se} (read only)`:se,"data-readonly":D?"true":void 0,onClick:Ue,onDragOver:F,onDragEnter:h,onDragLeave:i,onDrop:He,children:[oe&&o.jsx("div",{className:"flex items-center justify-center h-full font-mono text-[12px] absolute inset-0 z-10 bg-background/95",children:oe}),he&&o.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:o.jsx("span",{className:"text-cyan-400 font-mono text-sm",children:"Drop image to get path"})}),o.jsx("div",{ref:E,className:"flex-1 min-h-0 min-w-0 overflow-hidden",style:{visibility:oe?"hidden":"visible",backgroundColor:U.background,"--hud-terminal-bg":U.background,"--hud-terminal-fg":U.foreground}})]})}var ot=e.forwardRef(nt);ot.displayName="TerminalRelay";export{it as H,ot as T,Ge as a,Ye as b,lt as u};
|
|
46
|
+
`;function et(){if(typeof document>"u"||document.querySelector("[data-xterm-css]"))return;const d=document.createElement("style");d.setAttribute("data-xterm-css",""),d.textContent=qe,document.head.appendChild(d)}function Ie(d,f){if(typeof d!="object"||d===null)return;const g=d,m=g[f];if(m)return m;const j=g.default;if(!(typeof j!="object"||j===null))return j[f]}function Fe(d,f){if(!d||f&&!d.closest(f))return!1;const g=d.getBoundingClientRect();if(g.width<=0||g.height<=0)return!1;const m=window.getComputedStyle(d);return m.display!=="none"&&m.visibility!=="hidden"}var tt="\x1B[13;2u",Ve="\r";function rt(d){return new Promise((f,g)=>{const m=new FileReader;m.onload=()=>{const j=m.result;f(j.split(",")[1])},m.onerror=g,m.readAsDataURL(d)})}function nt({relay:d,fontSize:f=12,fontFamily:g="'JetBrains Mono', 'Hack Nerd Font', monospace",scrollback:m=5e3,renderer:j="auto",readOnly:Ne=!1,ariaLabel:se="Terminal",className:we,style:ke,colorScheme:ce="auto",configItems:Z,onOpenSettings:p,onStartService:V,quiet:le=!1,voiceVisibilityScope:ie,imageUploadUrl:ae,onReady:q,onDispose:ee,onResize:me,onRendererChange:O},Se){const{status:l,error:xe,exitCode:k,cwd:je,setCwd:ue,sendInput:Re,resize:L,onData:pe,onDimensions:H,connect:y,disconnect:De,controlMode:P="owner"}=d,D=Ne||P==="observe",te=e.useContext(Ye),R=ie===!1?void 0:ie??te,[B,J]=e.useState(!1),{apiBaseUrl:X}=Ge(),de=Ke(),be=ce==="auto"?de?.resolvedTheme==="light"?"light":"dark":ce,U=be==="light"?Ze:Qe,re=be==="light"?4.5:3,C=e.useRef(null),E=e.useRef(null),u=e.useRef(null),fe=e.useRef(null),G=e.useRef(null),W=e.useRef(!1),[$,x]=e.useState(!1),[he,_]=e.useState(!1),A=e.useRef(0),I=e.useRef(D),Y=e.useRef(null),Q=e.useRef(null),v=e.useRef(null),M=e.useRef(null),ne=e.useRef(q),Ce=e.useRef(ee),Ee=e.useRef(me),ge=e.useRef(O);e.useEffect(()=>{I.current=D,D&&(G.current=null,W.current=!1,A.current=0,_(!1))},[D]),e.useEffect(()=>{ne.current=q},[q]),e.useEffect(()=>{Ce.current=ee},[ee]),e.useEffect(()=>{Ee.current=me},[me]),e.useEffect(()=>{ge.current=O},[O]),e.useEffect(()=>{const t=C.current;if(!t)return;const n=s=>{s.key===" "&&!s.metaKey&&!s.ctrlKey&&!s.altKey&&s.stopPropagation()};return t.addEventListener("keydown",n),()=>t.removeEventListener("keydown",n)},[]);const T=ae===void 0?`${X}/api/relay/upload`:ae,N=e.useCallback(t=>{I.current||Re(t)},[Re]),Te=e.useCallback((t,n)=>{if(!Number.isFinite(t)||!Number.isFinite(n)||t<=0||n<=0)return;const s=Y.current;s&&s.cols===t&&s.rows===n||(Y.current={cols:t,rows:n},L(t,n),Ee.current?.(t,n))},[L]),z=e.useCallback(()=>{const t=fe.current,n=u.current;if(!t||!n)return null;try{const s=t.proposeDimensions();return s?((P!=="observe"||!Q.current)&&t.fit(),Te(s.cols,s.rows),Q.current??{cols:n.cols,rows:n.rows}):null}catch{return null}},[P,Te]),r=e.useCallback(()=>{v.current===null&&(v.current=window.requestAnimationFrame(()=>{v.current=null,z()}))},[z]);e.useImperativeHandle(Se,()=>({focus:()=>{u.current?.focus()},fit:z,clear:()=>{u.current?.clear()},getDimensions:()=>{const t=u.current;return t?{cols:t.cols,rows:t.rows}:null},getTerminal:()=>u.current}),[z]);const c=e.useCallback(t=>{const n=t.transcript.replace(/\s+/g," ").trim();n&&N(t.submit?`${n}${Ve}`:n)},[N]),S=e.useCallback(()=>{N(Ve)},[N]);e.useEffect(()=>{const t=n=>{if(I.current||!Fe(C.current,R))return;const s=n.detail;if(!(!s||typeof s.transcript!="string")){if(l==="connected"){c(s);return}G.current=s,l!=="connecting"&&y()}};return window.addEventListener(Me,t),()=>window.removeEventListener(Me,t)},[y,c,l,R]),e.useEffect(()=>{if(l!=="connected"||!G.current)return;const t=G.current;G.current=null,c(t)},[c,l]),e.useEffect(()=>{const t=()=>{if(!I.current&&Fe(C.current,R)){if(l==="connected"){S();return}W.current=!0,l!=="connecting"&&y()}};return window.addEventListener(ze,t),()=>window.removeEventListener(ze,t)},[y,S,l,R]),e.useEffect(()=>{l!=="connected"||!W.current||(W.current=!1,S())},[S,l]);const b=e.useCallback(async t=>{if(!T)return null;try{const n=await rt(t),s=await fetch(T,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t.name,data:n})}),{path:w}=await s.json();return w||null}catch(n){return console.error("File upload failed:",n),null}},[T]);e.useEffect(()=>{const t=C.current;if(!t)return;const n=async s=>{if(!s.clipboardData||!T)return;const w=Array.from(s.clipboardData.items).filter(K=>K.type.startsWith("image/"));if(w.length!==0&&(s.preventDefault(),s.stopPropagation(),!I.current))for(const K of w){const ye=K.getAsFile();if(!ye)continue;const ve=await b(ye);ve&&N(ve)}};return t.addEventListener("paste",n),()=>t.removeEventListener("paste",n)},[N,b,T]);const F=e.useCallback(t=>{if(t.preventDefault(),I.current||!T){t.dataTransfer.dropEffect="none";return}t.dataTransfer.dropEffect="copy"},[T]),h=e.useCallback(t=>{if(t.preventDefault(),I.current||!T){A.current=0,_(!1);return}A.current++,t.dataTransfer.types.includes("Files")&&_(!0)},[T]),i=e.useCallback(t=>{if(t.preventDefault(),I.current){A.current=0,_(!1);return}A.current--,A.current===0&&_(!1)},[]),He=e.useCallback(async t=>{if(t.preventDefault(),A.current=0,_(!1),I.current||!T)return;const n=Array.from(t.dataTransfer.files).filter(s=>s.type.startsWith("image/"));if(n.length!==0)for(const s of n){const w=await b(s);w&&N(w)}},[N,b,T]);e.useEffect(()=>{let t=!1,n=null;x(!1);async function s(){const[w,K,ye]=await Promise.all([_e(()=>import("./xterm-Cf-ngcGP.js").then(a=>a.x),__vite__mapDeps([0,1,2])),_e(()=>import("./addon-fit-DMVrz5Sv.js").then(a=>a.a),__vite__mapDeps([3,1,2])),_e(()=>import("./addon-webgl-BYvpZUyu.js").then(a=>a.a),__vite__mapDeps([4,1,2])).catch(()=>null)]),ve=Ie(w,"Terminal"),Ae=Ie(K,"FitAddon"),Oe=ye?Ie(ye,"WebglAddon"):void 0;if(!ve||!Ae){console.error("[TerminalRelay] @xterm/xterm or @xterm/addon-fit missing constructors",{xtermMod:w,fitMod:K});return}if(et(),t||!E.current)return;n=new ve({fontSize:f,fontFamily:g,theme:U,minimumContrastRatio:re,cursorBlink:!0,cursorStyle:"bar",allowTransparency:!0,scrollback:m,convertEol:!1,allowProposedApi:!0});const Le=new Ae;n.loadAddon(Le),n.open(E.current),u.current=n,fe.current=Le;let Pe="dom";if(j!=="dom"&&Oe)try{const a=new Oe;a.onContextLoss(()=>{a.dispose(),ge.current?.("dom")}),n.loadAddon(a),Pe="webgl"}catch{}ge.current?.(Pe),z(),n.attachCustomKeyEventHandler(a=>a.type==="keydown"&&a.key==="Enter"&&a.shiftKey&&!a.ctrlKey&&!a.altKey&&!a.metaKey?(a.preventDefault(),a.stopPropagation(),N(tt),!1):!0),n.onData(a=>{N(a)}),x(!0),ne.current?.(n)}return s(),()=>{t=!0,x(!1),v.current!==null&&(window.cancelAnimationFrame(v.current),v.current=null),n&&(n.dispose(),u.current=null,fe.current=null),Ce.current?.()}},[z,j,m,N]),e.useEffect(()=>{const t=u.current;t&&(t.options.fontSize=f,t.options.fontFamily=g,z())},[z,f,g]),e.useEffect(()=>{const t=u.current;t&&(t.options.theme=U,t.options.minimumContrastRatio=re)},[re,U]),e.useEffect(()=>{if(!(!$||!H))return H((t,n)=>{Q.current={cols:t,rows:n};const s=u.current;s&&(s.cols!==t||s.rows!==n)&&s.resize(t,n)}),()=>H(null)},[$,H]),e.useEffect(()=>{if($)return pe((t,n)=>{let s=!1;const w=()=>{s||(s=!0,n())},K=u.current;if(!K){w();return}try{K.write(t,w)}catch{w()}}),()=>{pe(null)}},[$,pe]),e.useEffect(()=>{const t=E.current;if(!t||!$)return;const n=new ResizeObserver(()=>{r()});return n.observe(t),()=>{n.disconnect(),v.current!==null&&(window.cancelAnimationFrame(v.current),v.current=null)}},[$,r]),e.useEffect(()=>{l==="connected"&&u.current&&u.current.focus()},[l]);const Ue=e.useCallback(()=>{l==="connected"&&u.current&&u.current.focus()},[l]),We=l==="error"&&xe==="Relay service is not running",$e=e.useCallback(async()=>{if(V){J(!0);try{await V()&&(M.current&&clearTimeout(M.current),M.current=setTimeout(()=>{M.current=null,y()},500))}finally{J(!1)}}},[V,y]);e.useEffect(()=>()=>{M.current&&(clearTimeout(M.current),M.current=null)},[]);let oe=null;return We?oe=o.jsxs("div",{className:"flex flex-col items-center gap-4 max-w-xs text-center px-4",children:[o.jsx("div",{className:"w-8 h-8 rounded-full bg-amber-500/10 border border-amber-500/20 flex items-center justify-center",children:o.jsx("span",{className:"text-amber-400 text-[14px]",children:"!"})}),o.jsxs("div",{children:[o.jsx("div",{className:"text-[12px] text-foreground font-medium mb-1",children:"Relay service not running"}),o.jsx("div",{className:"text-[11px] text-muted-foreground/80 leading-relaxed",children:V?"Start the relay service to open a terminal session.":"Start the relay service from the Workspace Manager."})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[V&&o.jsx("button",{type:"button",onClick:$e,disabled:B,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:B?"Starting":"Start Service"}),o.jsx("button",{type:"button",onClick:()=>y(),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"}),p&&o.jsx("button",{type:"button",onClick:p,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"})]})]}):l==="error"&&xe?oe=o.jsxs("div",{className:"flex flex-col items-center gap-3 max-w-md text-center px-4",children:[o.jsx("div",{className:"w-8 h-8 rounded-full bg-red-500/10 flex items-center justify-center",children:o.jsx("span",{className:"text-red-400 text-sm",children:"!"})}),o.jsx("span",{className:"text-red-400 text-[12px] font-medium",children:"Session failed"}),o.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:xe}),k!==null&&k!==0&&o.jsxs("span",{className:"text-[10px] text-muted-foreground/60",children:["Exit code ",k]}),o.jsx("button",{type:"button",onClick:()=>y(),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"})]}):l==="disconnected"&&!le?oe=o.jsxs("div",{className:"flex flex-col items-center gap-4 max-w-xs text-center px-4",children:[o.jsx("div",{className:"w-8 h-8 rounded-full bg-muted border border-border flex items-center justify-center",children:o.jsx("span",{className:"text-muted-foreground/80 text-[14px]",children:"▷"})}),o.jsxs("div",{children:[o.jsx("div",{className:"text-[12px] text-foreground font-medium mb-1",children:"Terminal relay disconnected"}),o.jsx("div",{className:"text-[11px] text-muted-foreground/80 leading-relaxed",children:"Set working directory and connect."})]}),o.jsxs("form",{className:"w-full",onSubmit:t=>{t.preventDefault(),y()},children:[o.jsx("label",{className:"text-[10px] font-mono text-muted-foreground/80 uppercase tracking-wider mb-1 block text-left",children:"Working Directory"}),o.jsx("input",{type:"text",value:je,onChange:t=>ue(t.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"})]}),Z&&Z.length>0&&o.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:Z.map(t=>o.jsxs("div",{className:"contents",children:[o.jsx("span",{className:"text-muted-foreground/80",children:t.label}),o.jsx("span",{className:"text-muted-foreground truncate text-left",children:t.value})]},t.label))}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{type:"button",onClick:()=>y(),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"}),p&&o.jsx("button",{type:"button",onClick:p,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"})]})]}):l==="connecting"&&!le&&(oe=o.jsxs("div",{className:"flex flex-col items-center gap-3 text-center",children:[o.jsx("div",{className:"w-6 h-6 border-2 border-muted-foreground/30 border-t-cyan-500 rounded-full animate-spin"}),o.jsx("span",{className:"text-[12px] text-muted-foreground",children:"Connecting to relay"}),o.jsx("button",{type:"button",onClick:()=>{De()},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"})]})),o.jsxs("div",{ref:C,className:we?`relative flex flex-col h-full overflow-hidden ${we}`:"relative flex flex-col h-full overflow-hidden",style:ke,role:"application","aria-label":D?`${se} (read only)`:se,"data-readonly":D?"true":void 0,onClick:Ue,onDragOver:F,onDragEnter:h,onDragLeave:i,onDrop:He,children:[oe&&o.jsx("div",{className:"flex items-center justify-center h-full font-mono text-[12px] absolute inset-0 z-10 bg-background/95",children:oe}),he&&o.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:o.jsx("span",{className:"text-cyan-400 font-mono text-sm",children:"Drop image to get path"})}),o.jsx("div",{ref:E,className:"flex-1 min-h-0 min-w-0 overflow-hidden",style:{visibility:oe?"hidden":"visible",backgroundColor:U.background,"--hud-terminal-bg":U.background,"--hud-terminal-fg":U.foreground}})]})}var ot=e.forwardRef(nt);ot.displayName="TerminalRelay";export{it as H,ot as T,Ge as a,Ye as b,lt as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,j as s}from"./index-
|
|
1
|
+
import{r as e,j as s}from"./index-DvLtl7rV.js";import{P as Q}from"./plus-Co-dqKul.js";import{c as O}from"./createLucideIcon-DezKXSG2.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};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as xe}from"./createLucideIcon-DXpqZP7I.js";import{r as l,j as s}from"./index-CZ-05hKz.js";import{A as it}from"./arrow-down-BydciYFZ.js";const ct=[["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"}]],lt=xe("arrow-up-down",ct);const dt=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],ut=xe("arrow-up",dt);const mt=[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]],Dr=xe("log-in",mt);function V(e){if(typeof window>"u")return null;try{return e==="local"?window.localStorage:window.sessionStorage}catch{return null}}function ft(e,t){const r=V(e);if(!r)return null;try{return r.getItem(t)}catch{return null}}function pt(e,t,r){const n=V(e);if(!n)return!1;try{return n.setItem(t,r),!0}catch{return!1}}function gt(e,t){const r=V(e);if(!r)return!1;try{return r.removeItem(t),!0}catch{return!1}}function ht(e){const t=V(e);if(!t)return[];try{const r=[],n=t.length;for(let a=0;a<n;a++){const o=t.key(a);typeof o=="string"&&r.push(o)}return r}catch{return[]}}var Pe={getItem(e){return ft("local",e)},setItem(e,t){return pt("local",e,t)},removeItem(e){return gt("local",e)},keys(){return ht("local")},isAvailable(){return V("local")!==null}};function xt(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 o=Array.from(a,c=>c.toString(16).padStart(2,"0")).join("").slice(0,t);return e?`${e}_${o}`:o}const n=Math.random().toString(36).slice(2,2+t);return e?`${e}_${n}`:n}var bt=200,wt=()=>Date.now(),yt=()=>xt("h",12),vt=e=>e instanceof Error?{name:e.name,message:e.message}:{message:String(e)},kt=()=>{const e=globalThis;return e.H_OBSERVABILITY===!0||e.H_DEBUG===!0},jt=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{}}},Nt=class{constructor(e){this.owner=e}log(e,t,r={}){const n={id:this.owner.createId(),kind:"log",timestamp:this.owner.now(),level:e,message:t,category:r.category,data:r.data};return this.owner.emit(n),n}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)}},It=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,n){const a={id:this.owner.createId(),kind:"metric",timestamp:this.owner.now(),metricType:e,name:t,value:r,category:n.category,unit:n.unit,tags:n.tags,data:n.data};return this.owner.emit(a),a}},St=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=vt(e),t&&(this.event.data={...this.event.data,...t}),this.owner.emit({...this.event}),this.event}},Et=class{constructor(e){this.owner=e}start(e,t={}){const r=this.owner.createId(),n=this.owner.now(),a={id:r,kind:"span",timestamp:n,name:e,traceId:t.traceId??r,parentId:t.parentId,startTime:n,status:"active",category:t.category,data:t.data};return new St(this.owner,a)}},Tt=class We{constructor(t={}){this.logger=new Nt(this),this.metrics=new It(this),this.trace=new Et(this),this.sinks=new jt,this.buffer=[],this.enabled=t.enabled??!0,this.maxBufferSize=Math.max(0,t.maxBufferSize??bt),this.nowFn=t.now??wt,this.createIdFn=t.createId??yt}static global(t={}){return new We({...t,enabled:t.enabled??kt()})}get isEnabled(){return this.enabled}setEnabled(t){this.enabled=t}subscribe(t,r={}){const n=this.sinks.add(t,r);if(r.replay)for(const a of this.buffer)r.kinds&&!r.kinds.includes(a.kind)||t(a);return n}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))}},K=Tt.global(),At=100,Ct=class{constructor(e={}){this.entries=[],this.listeners=new Set,this.maxEntries=Math.max(0,e.maxEntries??At)}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(n=>n.id!==e?n:(r=!0,t(n))),r&&this.notify()}clear(){this.entries.length!==0&&(this.entries=[],this.notify())}notify(){for(const e of this.listeners)try{e()}catch{}}};new Ct;var Ve="hudsonTrace",$t=new Set(["cat","find","fd","grep","head","ls","pwd","rg","sed","tail","wc","which"]),_t=new Set(["branch","diff","ls-files","log","rev-parse","show","status"]),Ke=new Set(["","agent.task"]);function Mt(e,t){const r=e.filter(A),n=Dt(r);if(t==="raw")return{events:r,hiddenDetailEvents:0,collapsedEvents:0,relatedEventsByTrace:n};const a=Lt(r),o=[];let c=0;for(const f of a.values())(t==="details"||Bt(f))&&(c+=f.length,o.push(Ht(f)));return{events:o,hiddenDetailEvents:Math.max(0,r.length-c),collapsedEvents:Math.max(0,c-o.length),relatedEventsByTrace:n}}function A(e){const t=g(e);return e.category==="agent-action"||t.triggeredBy==="agent"||t.source==="workspace-ai"}function g(e){return e.data&&typeof e.data=="object"&&!Array.isArray(e.data)?e.data:{}}function d(e,t){const r=e[t];return typeof r=="string"&&r.trim()?r:null}function C(e){return e.kind==="span"?e.traceId:d(g(e),"traceId")}function be(e){return d(g(e),"parentTraceId")}function q(e){const t=g(e).metadata;if(!ye(t))return null;const r=t.command;return Array.isArray(r)&&r.every(n=>typeof n=="string")?r:typeof r=="string"&&r.trim()?r.trim().split(/\s+/):null}function fe(e){if(!e||e.length===0)return!1;const t=Je(e[0]);if($t.has(t))return!0;if(t==="git"){const r=e.find((n,a)=>a>0&&!n.startsWith("-"));return r?_t.has(r):!1}return!1}function we(e){const t=g(e),r=d(t,"appId")??d(t,"targetAppId");if(r)return r;const n=d(t,"action")??d(t,"playbook")??d(t,"commandId"),a=n&&!Ke.has(n)?zt(n):null;if(a)return a;const o=q(e);for(const c of o??[]){const f=Ge(c);if(f)return f}return null}function Rt(e){const t=g(e)[Ve];if(!ye(t))return null;const r=d(t,"traceId"),n=z(t,"eventCount"),a=z(t,"startedAt"),o=z(t,"endedAt"),c=z(t,"durationMs"),f=z(t,"hiddenDetailEvents")??0;return!r||n===void 0||a===void 0||o===void 0||c===void 0?null:{traceId:r,eventCount:n,startedAt:a,endedAt:o,durationMs:c,hiddenDetailEvents:f}}function Ue(e){if(!e||e.length===0)return null;const t=Je(e[0]),r=e.map(Ft).find(Boolean);return fe(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 He(e){return!e||e==="agent.task"?"Agent task":e.replace(/^hudson\./,"").replace(/[._:-]+/g," ").replace(/\s+/g," ").trim().split(" ").map((r,n)=>n===0?Pt(r):r).join(" ")}function Lt(e){const t=new Map;for(const r of e){const n=C(r)??r.id,a=t.get(n);a?a.push(r):t.set(n,[r])}return t}function Dt(e){const t=new Map,r=(n,a)=>{if(!n)return;const o=t.get(n);o?o.some(c=>c.id===a.id)||o.push(a):t.set(n,[a])};for(const n of e)r(C(n)??n.id,n),r(be(n),n),r(n.kind==="span"?n.parentId??null:null,n);for(const n of t.values())n.sort((a,o)=>a.timestamp-o.timestamp);return t}function Ht(e){const t=[...e].sort((c,f)=>c.timestamp-f.timestamp),r=le(t,c=>ce(c)===3)??le(t,c=>ce(c)===2)??le(t,c=>ce(c)===1)??t[t.length-1],n=C(r)??r.id,a=t[0]?.timestamp??r.timestamp,o=t[t.length-1]?.timestamp??r.timestamp;return{...r,data:{...g(r),[Ve]:{traceId:n,eventCount:t.length,startedAt:a,endedAt:o,durationMs:Math.max(0,o-a),hiddenDetailEvents:Math.max(0,t.length-1)}}}}function Bt(e){return e.every(t=>be(t))?!1:e.some(t=>{if(t.kind==="span")return!0;const r=g(t),n=d(r,"action")??d(r,"playbook")??"",a=!Ke.has(n),o=q(t);return a||d(r,"commandId")||we(t)&&!o||Ot(r)&&!fe(o)?!0:!!(o&&!fe(o))})}function Ot(e){const t=e.args;return ye(t)&&typeof t.prompt=="string"&&t.prompt.trim().length>0}function ce(e){if(e.kind==="span")return e.status==="error"?3:e.status==="ok"?2:e.status==="active"?1:0;const t=d(g(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 le(e,t){for(let r=e.length-1;r>=0;r--)if(t(e[r]))return e[r]}function zt(e){if(!e)return null;const[t]=e.split(/[.:_-]/);return t||null}function Ge(e){const t=e.match(/(?:^|\/)app\/apps\/([^/\s]+)/);return t?t[1]:null}function Ft(e){const t=Ge(e);return t||null}function Je(e){return e.split("/").pop()??e}function ye(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function z(e,t){const r=e[t];return typeof r=="number"&&Number.isFinite(r)?r:void 0}function Pt(e){return e&&`${e[0].toUpperCase()}${e.slice(1)}`}var Wt=l.createContext(null);function Vt(){return l.useContext(Wt)}function Kt(e){const t=Vt();return!t||e.startsWith("inst:")||e.startsWith("hudson.ws.")?e:`inst:${t.instanceId}:${e}`}function Ut(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&typeof e.__v=="number"&&"value"in e}function Gt(e,t){const r=Pe.getItem(e);if(!r)return;let n;try{n=JSON.parse(r)}catch{return}const a=t?.version;if(a===void 0)return n;const[o,c]=Ut(n)?[n.value,n.__v]:[n,0];if(c===a)return o;if(t?.migrate)try{return t.migrate(o,c)}catch{return}}function Jt(e,t,r){let n;try{n=JSON.stringify(r===void 0?t:{__v:r,value:t})}catch{return}if(typeof n=="string"&&Pe.setItem(e,n))try{window.dispatchEvent(new CustomEvent("hudson:saved",{detail:{key:e}}))}catch{}}var Xt=()=>()=>{},Yt=()=>!0,qt=()=>!1;function Qt(){return l.useSyncExternalStore(Xt,Yt,qt)}function Zt(e,t,r={}){const n=Qt(),a=Kt(e),o=r.enabled??!0,{version:c}=r,[f,$]=l.useState(t),U=l.useRef(!1);if(n&&o&&!U.current){U.current=!0;const _=Gt(a,r);_!==void 0&&$(_)}return l.useEffect(()=>{!n||!o||Jt(a,f,c)},[a,f,n,o,c]),[f,$]}var er=["debug","info","warn","error"],tr=["log","metric","span"],rr="hudson:open-app",de=340,Y=440,Be=900,nr=420,sr="hudson.hud-logger.inspector-width",ar=1,Oe={key:"time",direction:"desc"},ze="grid-cols-[62px_64px_76px_58px_72px_112px_128px_minmax(260px,1fr)_92px]";function or(e){return typeof e!="number"||e===380?Y:e}function Xe(e=K,t={}){const r=t.maxEvents??200,[n,a]=l.useState(()=>e.snapshot().slice(-r).reverse());return l.useEffect(()=>{const o=()=>{a(e.snapshot().slice(-r).reverse())},c=e.subscribe(o);return o(),c},[r,e]),n}function Ye(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(A).length,activeSpans:Array.from(t.values()).filter(r=>r==="active").length,lastEvent:e[0]??null}}function ir(e=K,t={}){const r=Xe(e,t);return l.useMemo(()=>Ye(r),[r])}function Hr({observability:e=K,maxEvents:t=200,label:r="Logs",className:n="",showCounts:a=!1}){const o=ir(e,{maxEvents:t}),c=o.errors>0?"red":o.warnings>0||o.activeSpans>0?"amber":"emerald";return s.jsxs("span",{className:`inline-flex min-w-0 items-center gap-2 font-mono text-[9px] font-light uppercase tracking-[0.18em] ${Tr(c)} ${n}`,title:`${o.total} events, ${o.errors} errors, ${o.activeSpans} active spans`,children:[s.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${Ar(c)}`}),s.jsx("span",{children:r}),a&&o.errors>0?s.jsxs("span",{className:"tabular-nums font-semibold",children:[o.errors," err"]}):a&&o.warnings>0?s.jsxs("span",{className:"tabular-nums",children:[o.warnings," warn"]}):null]})}function Br({observability:e=K,events:t,replayEvents:r,maxEvents:n=200,title:a="HudLogger",className:o="",emptyMessage:c="No events match the current filters.",showHeader:f=!0,showInspector:$=!0,initialTail:U=!0,initialScope:_="all"}){const Q=Xe(e,{maxEvents:n}),M=l.useMemo(()=>t?t.slice(0,n):!r||r.length===0?Q:Er(r,Q,n),[t,r,Q,n]),[Qe,Ze]=l.useState(null),[R,je]=l.useState("all"),[L,Ne]=l.useState("all"),[v,Ie]=l.useState(_),[E,Z]=l.useState(_==="agent-actions"?"actions":"raw"),[G,et]=l.useState(""),[D,ee]=l.useState(U),[h,Se]=l.useState(Oe),[te,Ee]=l.useState(null),[re,T]=Zt(sr,Y,{version:ar,migrate:or}),ne=l.useRef(null),Te=l.useRef(null),[Ae,Ce]=l.useState(!1),k=l.useMemo(()=>Mt(M,v==="agent-actions"?E:"raw"),[E,M,v]),$e=v==="agent-actions"?k.events:M,_e=l.useMemo(()=>$e.filter(i=>{if(L!=="all"&&i.kind!==L||R!=="all"&&(i.kind!=="log"||i.level!==R))return!1;if(!G.trim())return!0;const u=C(i)??i.id,p=k.relatedEventsByTrace.get(u)??[];return wr(i,p).includes(G.trim().toLowerCase())}),[k.relatedEventsByTrace,L,R,G,$e]),w=l.useMemo(()=>Nr(_e,h),[_e,h]),tt=D&&h.key==="time"&&h.direction==="desc"?w[0]?j(w[0]):null:Qe,x=w.find(i=>j(i)===tt)??w[0]??null,Me=x?C(x)??x.id:null,rt=Me?k.relatedEventsByTrace.get(Me)??[]:[],H=l.useMemo(()=>Ye(M),[M]),se=l.useCallback(async(i,u)=>{await Sr(i)&&(Ee(u),window.setTimeout(()=>{Ee(m=>m===u?null:m)},1200))},[]),Re=l.useCallback(i=>{ee(!1),Ze(j(i))},[]),I=l.useCallback(i=>{ee(!1),Se(u=>u.key!==i?{key:i,direction:jr(i)}:{key:i,direction:u.direction==="asc"?"desc":"asc"})},[]),nt=l.useCallback(()=>{D||Se(Oe),ee(i=>!i)},[D]),Le=l.useCallback(i=>{const u=pe(i);!u||typeof window>"u"||window.dispatchEvent(new CustomEvent(rr,{detail:{appId:u,workspaceId:pr(i),source:"hud-logger"}}))},[]),B=l.useCallback((i,u)=>{const p=Math.min(Be,Math.max(de,u-nr));return Math.max(de,Math.min(p,i))},[]),st=l.useCallback(i=>{if(i.button!==0)return;const u=ne.current,p=Te.current;if(!u||!p)return;i.preventDefault();const m=i.clientX,O=p.getBoundingClientRect().width;Ce(!0),document.body.style.cursor="col-resize",document.body.style.userSelect="none";const De=ae=>{const oe=u.getBoundingClientRect().width,ie=B(O+(m-ae.clientX),oe);p.style.setProperty("--inspector-width",`${ie}px`)},J=ae=>{const oe=u.getBoundingClientRect().width,ie=B(O+(m-ae.clientX),oe);T(ie),Ce(!1),document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("pointermove",De),window.removeEventListener("pointerup",J),window.removeEventListener("pointercancel",J)};window.addEventListener("pointermove",De),window.addEventListener("pointerup",J),window.addEventListener("pointercancel",J)},[B,T]),at=l.useCallback(()=>{T(Y)},[T]);l.useEffect(()=>{if(typeof window>"u")return;const i=ne.current;if(!i)return;const u=new ResizeObserver(()=>{const p=i.getBoundingClientRect().width;T(m=>{const O=B(m,p);return O===m?m:O})});return u.observe(i),()=>u.disconnect()},[B,T]);const ot=l.useMemo(()=>({"--inspector-width":`${re}px`}),[re]);return s.jsxs("section",{ref:ne,className:`flex min-h-[520px] flex-col overflow-hidden rounded-md border border-border bg-background text-foreground lg:flex-row ${o}`,children:[s.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:[f&&s.jsxs("div",{className:"shrink-0 border-b border-border/70 bg-card/80 px-3 py-2.5",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.jsx(lr,{ariaLabel:"copy filtered table",copied:te==="table",disabled:w.length===0,label:"copy all",onClick:()=>{se(vr(w),"table")}}),s.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:[s.jsx("span",{children:a}),s.jsxs("span",{className:"text-accent",children:[w.length," shown"]}),s.jsxs("span",{children:[H.total," buffered"]}),s.jsxs("span",{children:[H.agentActions," agent"]}),s.jsxs("span",{children:[H.errors," errors"]}),H.activeSpans>0&&s.jsxs("span",{className:"text-warning",children:[H.activeSpans," active"]}),v==="agent-actions"&&E!=="raw"&&k.hiddenDetailEvents>0&&s.jsxs("span",{children:[k.hiddenDetailEvents," detail hidden"]}),v==="agent-actions"&&k.collapsedEvents>0&&s.jsxs("span",{children:[k.collapsedEvents," collapsed"]})]})]}),s.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:[s.jsx("span",{className:"shrink-0 text-success",children:"$"}),s.jsx("input",{value:G,onChange:i=>et(i.target.value),placeholder:"grep message, category, payload",className:"min-w-0 flex-1 bg-transparent text-foreground outline-none placeholder:text-muted-foreground"})]}),s.jsxs("details",{className:"mt-2 text-left",children:[s.jsx("summary",{className:"cursor-pointer font-mono text-[11px] font-normal uppercase tracking-[0.14em] text-muted-foreground hover:text-foreground",children:"filters / controls"}),s.jsxs("div",{className:"mt-3 grid gap-3 border-t border-border/60 pt-3 md:grid-cols-[1fr_1fr_1fr_1fr_auto]",children:[s.jsxs(X,{label:"Scope",children:[s.jsx(y,{active:v==="all",onClick:()=>Ie("all"),children:"all"}),s.jsx(y,{active:v==="agent-actions",onClick:()=>Ie("agent-actions"),children:"agent actions"})]}),v==="agent-actions"?s.jsxs(X,{label:"Rows",children:[s.jsx(y,{active:E==="actions",onClick:()=>Z("actions"),children:"actions"}),s.jsx(y,{active:E==="details",onClick:()=>Z("details"),children:"details"}),s.jsx(y,{active:E==="raw",onClick:()=>Z("raw"),children:"raw"})]}):s.jsx("div",{}),s.jsxs(X,{label:"Kind",children:[s.jsx(y,{active:L==="all",onClick:()=>Ne("all"),children:"all"}),tr.map(i=>s.jsx(y,{active:L===i,onClick:()=>Ne(i),children:i},i))]}),s.jsxs(X,{label:"Level",children:[s.jsx(y,{active:R==="all",onClick:()=>je("all"),children:"all"}),er.map(i=>s.jsx(y,{active:R===i,onClick:()=>je(i),children:i},i))]}),s.jsx("div",{className:"flex flex-wrap items-end gap-2",children:s.jsxs("button",{type:"button",onClick:nt,className:`rounded-md border px-2.5 py-1.5 font-mono text-[11px] font-normal uppercase tracking-[0.12em] transition-colors ${D?"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 ",D?"on":"off"]})})]})]})]}),s.jsx("div",{className:"max-h-[650px] overflow-auto lg:max-h-none lg:flex-1 lg:min-h-0",children:s.jsxs("div",{className:"min-w-[980px] font-mono text-[11px] font-normal",children:[s.jsxs("div",{className:`sticky top-0 z-10 grid min-h-8 ${ze} items-center border-b border-border/70 bg-card px-3 py-1.5 font-medium uppercase tracking-[0.12em] text-muted-foreground`,children:[s.jsx("span",{className:"sticky left-0 bg-card pr-2",children:"Copy"}),s.jsx("span",{children:"Open"}),s.jsx(S,{column:"time",label:"Time",sort:h,onSort:I}),s.jsx(S,{column:"kind",label:"Kind",sort:h,onSort:I}),s.jsx(S,{column:"level",label:"Level",sort:h,onSort:I}),s.jsx(S,{column:"category",label:"Category",sort:h,onSort:I}),s.jsx(S,{column:"target",label:"Target",sort:h,onSort:I}),s.jsx(S,{column:"message",label:"Message",sort:h,onSort:I}),s.jsx(S,{column:"id",label:"Id",sort:h,onSort:I})]}),w.map(i=>{const u=pe(i),p=j(i);return s.jsxs("div",{role:"button",tabIndex:0,onClick:()=>Re(i),onKeyDown:m=>{(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),Re(i))},className:`grid min-h-[34px] w-full ${ze} items-center border-b border-l-2 px-3 py-2 text-left transition-colors ${x&&j(x)===p?"border-b-border/40 border-l-accent bg-accent/[0.08]":"border-b-border/40 border-l-transparent hover:bg-muted/30"}`,children:[s.jsx("button",{type:"button","aria-label":`copy row ${ge(i.id)}`,onClick:m=>{m.stopPropagation(),se(he(i).join(" "),`row:${p}`)},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 ${x&&j(x)===p?"bg-accent/[0.08]":"bg-background"}`,children:te===`row:${p}`?"copied":"copy"}),u?s.jsx("button",{type:"button","aria-label":`open ${P(i)}`,onClick:m=>{m.stopPropagation(),Le(i)},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"}):s.jsx("span",{className:"text-muted-foreground/45",children:"-"}),s.jsx("span",{className:"tabular-nums text-muted-foreground",children:ke(i)}),s.jsx("span",{className:"uppercase tracking-[0.13em] text-muted-foreground",children:i.kind}),s.jsx("span",{className:`uppercase tracking-[0.13em] ${ve(i)}`,children:b(i)}),s.jsx("span",{className:"truncate uppercase tracking-[0.13em] text-muted-foreground",children:i.category??"-"}),s.jsx("span",{className:"truncate font-sans text-[12px] font-normal normal-case tracking-normal text-muted-foreground",children:P(i)}),s.jsx("span",{className:"truncate font-sans text-[13px] font-normal normal-case tracking-normal text-foreground",children:N(i)}),s.jsx("span",{className:"truncate text-muted-foreground",children:ge(i.id)})]},p)}),w.length===0&&s.jsx("div",{className:"border-b border-border/40 px-3 py-5 font-sans text-[13px] text-muted-foreground",children:c})]})})]}),$&&s.jsxs(s.Fragment,{children:[s.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":"Resize payload inspector","aria-valuenow":re,"aria-valuemin":de,"aria-valuemax":Be,title:"Drag to resize · Double-click to reset",onPointerDown:st,onDoubleClick:at,className:`group hidden shrink-0 cursor-col-resize items-stretch justify-center transition-colors lg:flex lg:w-[5px] ${Ae?"bg-accent/15":"hover:bg-accent/10"}`,children:s.jsx("div",{className:`w-px transition-colors ${Ae?"bg-accent/80":"bg-border group-hover:bg-accent/60"}`})}),s.jsx("aside",{ref:Te,style:ot,className:"flex w-full shrink-0 flex-col bg-background lg:w-[var(--inspector-width)]",children:s.jsx(cr,{copied:x?te===`inspector:${j(x)}`:!1,event:x,relatedEvents:rt,onCopyRow:i=>{se(he(i).join(" "),`inspector:${j(i)}`)},onOpenTarget:Le})})]})]})}function cr({copied:e,event:t,relatedEvents:r,onCopyRow:n,onOpenTarget:a}){const o=t?pe(t):null;return s.jsxs("div",{className:"flex min-h-0 flex-1 flex-col",children:[s.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:[s.jsx("div",{className:"font-mono text-[11px] font-medium uppercase tracking-[0.15em] text-foreground/80",children:"Payload inspector"}),t?s.jsxs("div",{className:"flex items-center gap-2",children:[o?s.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,s.jsx("button",{type:"button",onClick:()=>n(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"}),s.jsx("div",{className:`font-mono text-[11px] uppercase tracking-[0.12em] ${ve(t)}`,children:b(t)})]}):null]}),s.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-3 py-3 lg:px-4 lg:py-4",children:t?s.jsxs("div",{className:"grid gap-3",children:[s.jsxs("div",{className:"overflow-hidden rounded-md border border-accent/25 bg-accent/[0.07]",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2 border-b border-accent/15 px-3 py-2",children:[s.jsx(dr,{event:t}),s.jsx("span",{className:"font-mono text-[11px] uppercase tracking-[0.12em] text-muted-foreground",children:t.kind})]}),s.jsxs("div",{className:"px-3 py-2",children:[s.jsx("div",{className:"font-mono text-[11px] font-medium uppercase tracking-[0.13em] text-accent",children:"selected event"}),s.jsx("div",{className:"mt-1 break-words text-[14px] font-normal leading-5 text-foreground",children:N(t)})]})]}),gr(t).map(c=>s.jsx(ur,{section:c},c.title)),s.jsx(mr,{events:r,selectedId:t.id}),s.jsx(ue,{label:"payload.data",value:t.data??{}}),t.kind==="metric"&&t.tags?s.jsx(ue,{label:"metric.tags",value:t.tags}):null,t.kind==="span"&&t.error?s.jsx(ue,{label:"span.error",value:t.error}):null]}):s.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 X({label:e,children:t}){return s.jsxs("div",{children:[s.jsx("div",{className:"font-mono text-[11px] uppercase tracking-[0.14em] text-muted-foreground",children:e}),s.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:t})]})}function y({active:e,onClick:t,children:r}){return s.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 S({column:e,label:t,sort:r,onSort:n}){const a=r.key===e,o=a?r.direction==="asc"?ut:it:lt,c=r.direction==="asc"?"ascending":"descending";return s.jsxs("button",{type:"button","aria-label":`Sort by ${t}${a?`, currently ${c}`:""}`,"aria-pressed":a,onClick:()=>n(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:[s.jsx("span",{className:"min-w-0 truncate",children:t}),s.jsx(o,{size:10,strokeWidth:1.75,"aria-hidden":"true",className:"shrink-0"})]})}function lr({ariaLabel:e,copied:t,disabled:r=!1,label:n,onClick:a}){return s.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":n})}function dr({event:e}){const t=b(e),r=F(e),n=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 s.jsx("span",{className:`rounded-full border px-2 py-0.5 font-mono text-[10px] uppercase tracking-[0.11em] ${n}`,children:t})}function ur({section:e}){return s.jsxs("section",{className:"overflow-hidden rounded-md border border-border/60 bg-muted/15",children:[s.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}),s.jsx("div",{className:"divide-y divide-border/40",children:e.rows.map(t=>s.jsx(fr,{row:t},`${e.title}-${t.label}`))})]})}function mr({events:e,selectedId:t}){return e.length<=1?null:s.jsxs("section",{className:"overflow-hidden rounded-md border border-border/60 bg-muted/15",children:[s.jsxs("div",{className:"flex items-center justify-between border-b border-border/50 bg-muted/30 px-3 py-2",children:[s.jsx("div",{className:"font-mono text-[10px] font-medium uppercase tracking-[0.14em] text-foreground/70",children:"Trace lines"}),s.jsx("div",{className:"font-mono text-[10px] font-light uppercase tracking-[0.12em] text-muted-foreground",children:e.length})]}),s.jsx("div",{className:"divide-y divide-border/40",children:e.map(r=>{const n=Ue(q(r));return s.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:[s.jsx("span",{className:"font-mono text-[10px] tabular-nums text-muted-foreground",children:ke(r)}),s.jsx("span",{className:`font-mono text-[10px] uppercase tracking-[0.11em] ${ve(r)}`,children:b(r)}),s.jsx("span",{className:"min-w-0 truncate text-[12px] text-foreground/80",children:n??N(r)})]},`${r.id}-${r.timestamp}`)})})]})}function fr({row:e}){return s.jsxs("div",{className:"grid grid-cols-[96px_minmax(0,1fr)] items-start gap-3 px-3 py-2",children:[s.jsx("div",{className:"font-mono text-[10px] font-light uppercase tracking-[0.12em] text-muted-foreground",children:e.label}),s.jsx("div",{className:`min-w-0 break-words text-[12px] leading-5 ${e.mono?"font-mono tabular-nums":"font-sans"} ${hr(e.tone)}`,children:e.value})]})}function ue({label:e,value:t}){return s.jsxs("div",{className:"overflow-hidden rounded-md border border-border/60 bg-muted/15",children:[s.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}),s.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 pe(e){return we(e)}function pr(e){const t=g(e);return d(t,"workspaceId")??d(t,"targetWorkspaceId")}function P(e){const t=g(e),r=we(e);return d(t,"appName")??d(t,"appId")??r??d(t,"workspaceName")??d(t,"workspaceId")??d(t,"serviceId")??d(t,"target")??"-"}function gr(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:xr(e),value:b(e),tone:F(e),mono:!0},{label:"timestamp",value:me(e.timestamp),mono:!0}]}];if(A(e)){const r=g(e),n=C(e),a=be(e);t.push({title:"Agent Action",rows:[{label:"source",value:d(r,"source")??"agent",mono:!0},{label:"status",value:d(r,"status")??b(e),tone:F(e),mono:!0},{label:"action",value:d(r,"action")??N(e),mono:!0},{label:"target",value:P(e),mono:!0},{label:"workspace",value:d(r,"workspaceName")??d(r,"workspaceId")??"unknown",mono:!0},...n?[{label:"trace",value:n,mono:!0}]:[],...a?[{label:"parent",value:a,mono:!0}]:[]]});const o=yr(e),c=Rt(e);(o||c)&&t.push({title:"Request",rows:[...o?[{label:"prompt",value:o}]:[],...c?[{label:"lines",value:String(c.eventCount),mono:!0},{label:"duration",value:`${c.durationMs}ms`,mono:!0}]:[]]})}return e.kind==="log"&&t.push({title:"Log",rows:[{label:"message",value:e.message},{label:"level",value:e.level,tone:F(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:br(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:F(e),mono:!0},{label:"duration",value:e.durationMs===void 0?"active":`${e.durationMs}ms`,mono:!0},{label:"started",value:me(e.startTime),mono:!0},{label:"ended",value:e.endTime===void 0?"pending":me(e.endTime),mono:!0}]}),t}function N(e){if(e.kind==="log"){if(A(e)){const t=g(e),r=Ue(q(e));if(r){const c=d(t,"status");return c?`${r} ${c}`:r}const n=d(t,"action")??d(t,"commandId")??e.message,a=d(t,"status"),o=He(n);return a?`${o} ${a}`:o}return e.message}return A(e)?He(e.name):e.name}function b(e){return e.kind==="log"?A(e)?d(g(e),"status")??e.level:e.level:e.kind==="metric"?e.metricType:e.status}function ve(e){const t=b(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 F(e){const t=b(e);return t==="error"||t==="failed"?"red":t==="warn"||t==="active"||t==="started"?"amber":e.kind==="metric"||t==="ok"||t==="completed"?"emerald":"cyan"}function hr(e="neutral"){return e==="red"?"text-destructive":e==="amber"?"text-warning":e==="emerald"?"text-success":e==="cyan"?"text-accent":"text-foreground"}function xr(e){return e.kind==="log"?"level":e.kind==="metric"?"type":"status"}function br(e){return`${e.value}${e.unit?` ${e.unit}`:""}`}function me(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 ge(e){return e.length>10?e.slice(-10):e}function j(e){return e.kind==="span"?`${e.kind}:${e.id}:${e.status}:${e.endTime??"active"}`:`${e.kind}:${e.id}:${e.timestamp}`}function ke(e){return new Date(e.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function he(e){return[ke(e),e.kind,b(e),e.category??"",P(e),N(e),e.id,JSON.stringify(e.data??{})].map(kr)}function wr(e,t){return[N(e),e.category??"",JSON.stringify(e.data??{}),...t.map(n=>`${N(n)} ${JSON.stringify(n.data??{})}`)].join(" ").toLowerCase()}function yr(e){const r=g(e).args,n=r&&typeof r=="object"&&!Array.isArray(r)?r.prompt:void 0;return typeof n!="string"||!n.trim()?null:n.replace(/\s+/g," ").trim().slice(0,360)}function vr(e){return[["time","kind","signal","category","target","message","id","payload"].join(" "),...e.map(t=>he(t).join(" "))].join(`
|
|
1
|
+
import{c as xe}from"./createLucideIcon-DezKXSG2.js";import{r as l,j as s}from"./index-DvLtl7rV.js";import{A as it}from"./arrow-down-CKtSUjmW.js";const ct=[["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"}]],lt=xe("arrow-up-down",ct);const dt=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],ut=xe("arrow-up",dt);const mt=[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]],Dr=xe("log-in",mt);function V(e){if(typeof window>"u")return null;try{return e==="local"?window.localStorage:window.sessionStorage}catch{return null}}function ft(e,t){const r=V(e);if(!r)return null;try{return r.getItem(t)}catch{return null}}function pt(e,t,r){const n=V(e);if(!n)return!1;try{return n.setItem(t,r),!0}catch{return!1}}function gt(e,t){const r=V(e);if(!r)return!1;try{return r.removeItem(t),!0}catch{return!1}}function ht(e){const t=V(e);if(!t)return[];try{const r=[],n=t.length;for(let a=0;a<n;a++){const o=t.key(a);typeof o=="string"&&r.push(o)}return r}catch{return[]}}var Pe={getItem(e){return ft("local",e)},setItem(e,t){return pt("local",e,t)},removeItem(e){return gt("local",e)},keys(){return ht("local")},isAvailable(){return V("local")!==null}};function xt(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 o=Array.from(a,c=>c.toString(16).padStart(2,"0")).join("").slice(0,t);return e?`${e}_${o}`:o}const n=Math.random().toString(36).slice(2,2+t);return e?`${e}_${n}`:n}var bt=200,wt=()=>Date.now(),yt=()=>xt("h",12),vt=e=>e instanceof Error?{name:e.name,message:e.message}:{message:String(e)},kt=()=>{const e=globalThis;return e.H_OBSERVABILITY===!0||e.H_DEBUG===!0},jt=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{}}},Nt=class{constructor(e){this.owner=e}log(e,t,r={}){const n={id:this.owner.createId(),kind:"log",timestamp:this.owner.now(),level:e,message:t,category:r.category,data:r.data};return this.owner.emit(n),n}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)}},It=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,n){const a={id:this.owner.createId(),kind:"metric",timestamp:this.owner.now(),metricType:e,name:t,value:r,category:n.category,unit:n.unit,tags:n.tags,data:n.data};return this.owner.emit(a),a}},St=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=vt(e),t&&(this.event.data={...this.event.data,...t}),this.owner.emit({...this.event}),this.event}},Et=class{constructor(e){this.owner=e}start(e,t={}){const r=this.owner.createId(),n=this.owner.now(),a={id:r,kind:"span",timestamp:n,name:e,traceId:t.traceId??r,parentId:t.parentId,startTime:n,status:"active",category:t.category,data:t.data};return new St(this.owner,a)}},Tt=class We{constructor(t={}){this.logger=new Nt(this),this.metrics=new It(this),this.trace=new Et(this),this.sinks=new jt,this.buffer=[],this.enabled=t.enabled??!0,this.maxBufferSize=Math.max(0,t.maxBufferSize??bt),this.nowFn=t.now??wt,this.createIdFn=t.createId??yt}static global(t={}){return new We({...t,enabled:t.enabled??kt()})}get isEnabled(){return this.enabled}setEnabled(t){this.enabled=t}subscribe(t,r={}){const n=this.sinks.add(t,r);if(r.replay)for(const a of this.buffer)r.kinds&&!r.kinds.includes(a.kind)||t(a);return n}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))}},K=Tt.global(),At=100,Ct=class{constructor(e={}){this.entries=[],this.listeners=new Set,this.maxEntries=Math.max(0,e.maxEntries??At)}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(n=>n.id!==e?n:(r=!0,t(n))),r&&this.notify()}clear(){this.entries.length!==0&&(this.entries=[],this.notify())}notify(){for(const e of this.listeners)try{e()}catch{}}};new Ct;var Ve="hudsonTrace",$t=new Set(["cat","find","fd","grep","head","ls","pwd","rg","sed","tail","wc","which"]),_t=new Set(["branch","diff","ls-files","log","rev-parse","show","status"]),Ke=new Set(["","agent.task"]);function Mt(e,t){const r=e.filter(A),n=Dt(r);if(t==="raw")return{events:r,hiddenDetailEvents:0,collapsedEvents:0,relatedEventsByTrace:n};const a=Lt(r),o=[];let c=0;for(const f of a.values())(t==="details"||Bt(f))&&(c+=f.length,o.push(Ht(f)));return{events:o,hiddenDetailEvents:Math.max(0,r.length-c),collapsedEvents:Math.max(0,c-o.length),relatedEventsByTrace:n}}function A(e){const t=g(e);return e.category==="agent-action"||t.triggeredBy==="agent"||t.source==="workspace-ai"}function g(e){return e.data&&typeof e.data=="object"&&!Array.isArray(e.data)?e.data:{}}function d(e,t){const r=e[t];return typeof r=="string"&&r.trim()?r:null}function C(e){return e.kind==="span"?e.traceId:d(g(e),"traceId")}function be(e){return d(g(e),"parentTraceId")}function q(e){const t=g(e).metadata;if(!ye(t))return null;const r=t.command;return Array.isArray(r)&&r.every(n=>typeof n=="string")?r:typeof r=="string"&&r.trim()?r.trim().split(/\s+/):null}function fe(e){if(!e||e.length===0)return!1;const t=Je(e[0]);if($t.has(t))return!0;if(t==="git"){const r=e.find((n,a)=>a>0&&!n.startsWith("-"));return r?_t.has(r):!1}return!1}function we(e){const t=g(e),r=d(t,"appId")??d(t,"targetAppId");if(r)return r;const n=d(t,"action")??d(t,"playbook")??d(t,"commandId"),a=n&&!Ke.has(n)?zt(n):null;if(a)return a;const o=q(e);for(const c of o??[]){const f=Ge(c);if(f)return f}return null}function Rt(e){const t=g(e)[Ve];if(!ye(t))return null;const r=d(t,"traceId"),n=z(t,"eventCount"),a=z(t,"startedAt"),o=z(t,"endedAt"),c=z(t,"durationMs"),f=z(t,"hiddenDetailEvents")??0;return!r||n===void 0||a===void 0||o===void 0||c===void 0?null:{traceId:r,eventCount:n,startedAt:a,endedAt:o,durationMs:c,hiddenDetailEvents:f}}function Ue(e){if(!e||e.length===0)return null;const t=Je(e[0]),r=e.map(Ft).find(Boolean);return fe(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 He(e){return!e||e==="agent.task"?"Agent task":e.replace(/^hudson\./,"").replace(/[._:-]+/g," ").replace(/\s+/g," ").trim().split(" ").map((r,n)=>n===0?Pt(r):r).join(" ")}function Lt(e){const t=new Map;for(const r of e){const n=C(r)??r.id,a=t.get(n);a?a.push(r):t.set(n,[r])}return t}function Dt(e){const t=new Map,r=(n,a)=>{if(!n)return;const o=t.get(n);o?o.some(c=>c.id===a.id)||o.push(a):t.set(n,[a])};for(const n of e)r(C(n)??n.id,n),r(be(n),n),r(n.kind==="span"?n.parentId??null:null,n);for(const n of t.values())n.sort((a,o)=>a.timestamp-o.timestamp);return t}function Ht(e){const t=[...e].sort((c,f)=>c.timestamp-f.timestamp),r=le(t,c=>ce(c)===3)??le(t,c=>ce(c)===2)??le(t,c=>ce(c)===1)??t[t.length-1],n=C(r)??r.id,a=t[0]?.timestamp??r.timestamp,o=t[t.length-1]?.timestamp??r.timestamp;return{...r,data:{...g(r),[Ve]:{traceId:n,eventCount:t.length,startedAt:a,endedAt:o,durationMs:Math.max(0,o-a),hiddenDetailEvents:Math.max(0,t.length-1)}}}}function Bt(e){return e.every(t=>be(t))?!1:e.some(t=>{if(t.kind==="span")return!0;const r=g(t),n=d(r,"action")??d(r,"playbook")??"",a=!Ke.has(n),o=q(t);return a||d(r,"commandId")||we(t)&&!o||Ot(r)&&!fe(o)?!0:!!(o&&!fe(o))})}function Ot(e){const t=e.args;return ye(t)&&typeof t.prompt=="string"&&t.prompt.trim().length>0}function ce(e){if(e.kind==="span")return e.status==="error"?3:e.status==="ok"?2:e.status==="active"?1:0;const t=d(g(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 le(e,t){for(let r=e.length-1;r>=0;r--)if(t(e[r]))return e[r]}function zt(e){if(!e)return null;const[t]=e.split(/[.:_-]/);return t||null}function Ge(e){const t=e.match(/(?:^|\/)app\/apps\/([^/\s]+)/);return t?t[1]:null}function Ft(e){const t=Ge(e);return t||null}function Je(e){return e.split("/").pop()??e}function ye(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function z(e,t){const r=e[t];return typeof r=="number"&&Number.isFinite(r)?r:void 0}function Pt(e){return e&&`${e[0].toUpperCase()}${e.slice(1)}`}var Wt=l.createContext(null);function Vt(){return l.useContext(Wt)}function Kt(e){const t=Vt();return!t||e.startsWith("inst:")||e.startsWith("hudson.ws.")?e:`inst:${t.instanceId}:${e}`}function Ut(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&typeof e.__v=="number"&&"value"in e}function Gt(e,t){const r=Pe.getItem(e);if(!r)return;let n;try{n=JSON.parse(r)}catch{return}const a=t?.version;if(a===void 0)return n;const[o,c]=Ut(n)?[n.value,n.__v]:[n,0];if(c===a)return o;if(t?.migrate)try{return t.migrate(o,c)}catch{return}}function Jt(e,t,r){let n;try{n=JSON.stringify(r===void 0?t:{__v:r,value:t})}catch{return}if(typeof n=="string"&&Pe.setItem(e,n))try{window.dispatchEvent(new CustomEvent("hudson:saved",{detail:{key:e}}))}catch{}}var Xt=()=>()=>{},Yt=()=>!0,qt=()=>!1;function Qt(){return l.useSyncExternalStore(Xt,Yt,qt)}function Zt(e,t,r={}){const n=Qt(),a=Kt(e),o=r.enabled??!0,{version:c}=r,[f,$]=l.useState(t),U=l.useRef(!1);if(n&&o&&!U.current){U.current=!0;const _=Gt(a,r);_!==void 0&&$(_)}return l.useEffect(()=>{!n||!o||Jt(a,f,c)},[a,f,n,o,c]),[f,$]}var er=["debug","info","warn","error"],tr=["log","metric","span"],rr="hudson:open-app",de=340,Y=440,Be=900,nr=420,sr="hudson.hud-logger.inspector-width",ar=1,Oe={key:"time",direction:"desc"},ze="grid-cols-[62px_64px_76px_58px_72px_112px_128px_minmax(260px,1fr)_92px]";function or(e){return typeof e!="number"||e===380?Y:e}function Xe(e=K,t={}){const r=t.maxEvents??200,[n,a]=l.useState(()=>e.snapshot().slice(-r).reverse());return l.useEffect(()=>{const o=()=>{a(e.snapshot().slice(-r).reverse())},c=e.subscribe(o);return o(),c},[r,e]),n}function Ye(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(A).length,activeSpans:Array.from(t.values()).filter(r=>r==="active").length,lastEvent:e[0]??null}}function ir(e=K,t={}){const r=Xe(e,t);return l.useMemo(()=>Ye(r),[r])}function Hr({observability:e=K,maxEvents:t=200,label:r="Logs",className:n="",showCounts:a=!1}){const o=ir(e,{maxEvents:t}),c=o.errors>0?"red":o.warnings>0||o.activeSpans>0?"amber":"emerald";return s.jsxs("span",{className:`inline-flex min-w-0 items-center gap-2 font-mono text-[9px] font-light uppercase tracking-[0.18em] ${Tr(c)} ${n}`,title:`${o.total} events, ${o.errors} errors, ${o.activeSpans} active spans`,children:[s.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${Ar(c)}`}),s.jsx("span",{children:r}),a&&o.errors>0?s.jsxs("span",{className:"tabular-nums font-semibold",children:[o.errors," err"]}):a&&o.warnings>0?s.jsxs("span",{className:"tabular-nums",children:[o.warnings," warn"]}):null]})}function Br({observability:e=K,events:t,replayEvents:r,maxEvents:n=200,title:a="HudLogger",className:o="",emptyMessage:c="No events match the current filters.",showHeader:f=!0,showInspector:$=!0,initialTail:U=!0,initialScope:_="all"}){const Q=Xe(e,{maxEvents:n}),M=l.useMemo(()=>t?t.slice(0,n):!r||r.length===0?Q:Er(r,Q,n),[t,r,Q,n]),[Qe,Ze]=l.useState(null),[R,je]=l.useState("all"),[L,Ne]=l.useState("all"),[v,Ie]=l.useState(_),[E,Z]=l.useState(_==="agent-actions"?"actions":"raw"),[G,et]=l.useState(""),[D,ee]=l.useState(U),[h,Se]=l.useState(Oe),[te,Ee]=l.useState(null),[re,T]=Zt(sr,Y,{version:ar,migrate:or}),ne=l.useRef(null),Te=l.useRef(null),[Ae,Ce]=l.useState(!1),k=l.useMemo(()=>Mt(M,v==="agent-actions"?E:"raw"),[E,M,v]),$e=v==="agent-actions"?k.events:M,_e=l.useMemo(()=>$e.filter(i=>{if(L!=="all"&&i.kind!==L||R!=="all"&&(i.kind!=="log"||i.level!==R))return!1;if(!G.trim())return!0;const u=C(i)??i.id,p=k.relatedEventsByTrace.get(u)??[];return wr(i,p).includes(G.trim().toLowerCase())}),[k.relatedEventsByTrace,L,R,G,$e]),w=l.useMemo(()=>Nr(_e,h),[_e,h]),tt=D&&h.key==="time"&&h.direction==="desc"?w[0]?j(w[0]):null:Qe,x=w.find(i=>j(i)===tt)??w[0]??null,Me=x?C(x)??x.id:null,rt=Me?k.relatedEventsByTrace.get(Me)??[]:[],H=l.useMemo(()=>Ye(M),[M]),se=l.useCallback(async(i,u)=>{await Sr(i)&&(Ee(u),window.setTimeout(()=>{Ee(m=>m===u?null:m)},1200))},[]),Re=l.useCallback(i=>{ee(!1),Ze(j(i))},[]),I=l.useCallback(i=>{ee(!1),Se(u=>u.key!==i?{key:i,direction:jr(i)}:{key:i,direction:u.direction==="asc"?"desc":"asc"})},[]),nt=l.useCallback(()=>{D||Se(Oe),ee(i=>!i)},[D]),Le=l.useCallback(i=>{const u=pe(i);!u||typeof window>"u"||window.dispatchEvent(new CustomEvent(rr,{detail:{appId:u,workspaceId:pr(i),source:"hud-logger"}}))},[]),B=l.useCallback((i,u)=>{const p=Math.min(Be,Math.max(de,u-nr));return Math.max(de,Math.min(p,i))},[]),st=l.useCallback(i=>{if(i.button!==0)return;const u=ne.current,p=Te.current;if(!u||!p)return;i.preventDefault();const m=i.clientX,O=p.getBoundingClientRect().width;Ce(!0),document.body.style.cursor="col-resize",document.body.style.userSelect="none";const De=ae=>{const oe=u.getBoundingClientRect().width,ie=B(O+(m-ae.clientX),oe);p.style.setProperty("--inspector-width",`${ie}px`)},J=ae=>{const oe=u.getBoundingClientRect().width,ie=B(O+(m-ae.clientX),oe);T(ie),Ce(!1),document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("pointermove",De),window.removeEventListener("pointerup",J),window.removeEventListener("pointercancel",J)};window.addEventListener("pointermove",De),window.addEventListener("pointerup",J),window.addEventListener("pointercancel",J)},[B,T]),at=l.useCallback(()=>{T(Y)},[T]);l.useEffect(()=>{if(typeof window>"u")return;const i=ne.current;if(!i)return;const u=new ResizeObserver(()=>{const p=i.getBoundingClientRect().width;T(m=>{const O=B(m,p);return O===m?m:O})});return u.observe(i),()=>u.disconnect()},[B,T]);const ot=l.useMemo(()=>({"--inspector-width":`${re}px`}),[re]);return s.jsxs("section",{ref:ne,className:`flex min-h-[520px] flex-col overflow-hidden rounded-md border border-border bg-background text-foreground lg:flex-row ${o}`,children:[s.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:[f&&s.jsxs("div",{className:"shrink-0 border-b border-border/70 bg-card/80 px-3 py-2.5",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.jsx(lr,{ariaLabel:"copy filtered table",copied:te==="table",disabled:w.length===0,label:"copy all",onClick:()=>{se(vr(w),"table")}}),s.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:[s.jsx("span",{children:a}),s.jsxs("span",{className:"text-accent",children:[w.length," shown"]}),s.jsxs("span",{children:[H.total," buffered"]}),s.jsxs("span",{children:[H.agentActions," agent"]}),s.jsxs("span",{children:[H.errors," errors"]}),H.activeSpans>0&&s.jsxs("span",{className:"text-warning",children:[H.activeSpans," active"]}),v==="agent-actions"&&E!=="raw"&&k.hiddenDetailEvents>0&&s.jsxs("span",{children:[k.hiddenDetailEvents," detail hidden"]}),v==="agent-actions"&&k.collapsedEvents>0&&s.jsxs("span",{children:[k.collapsedEvents," collapsed"]})]})]}),s.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:[s.jsx("span",{className:"shrink-0 text-success",children:"$"}),s.jsx("input",{value:G,onChange:i=>et(i.target.value),placeholder:"grep message, category, payload",className:"min-w-0 flex-1 bg-transparent text-foreground outline-none placeholder:text-muted-foreground"})]}),s.jsxs("details",{className:"mt-2 text-left",children:[s.jsx("summary",{className:"cursor-pointer font-mono text-[11px] font-normal uppercase tracking-[0.14em] text-muted-foreground hover:text-foreground",children:"filters / controls"}),s.jsxs("div",{className:"mt-3 grid gap-3 border-t border-border/60 pt-3 md:grid-cols-[1fr_1fr_1fr_1fr_auto]",children:[s.jsxs(X,{label:"Scope",children:[s.jsx(y,{active:v==="all",onClick:()=>Ie("all"),children:"all"}),s.jsx(y,{active:v==="agent-actions",onClick:()=>Ie("agent-actions"),children:"agent actions"})]}),v==="agent-actions"?s.jsxs(X,{label:"Rows",children:[s.jsx(y,{active:E==="actions",onClick:()=>Z("actions"),children:"actions"}),s.jsx(y,{active:E==="details",onClick:()=>Z("details"),children:"details"}),s.jsx(y,{active:E==="raw",onClick:()=>Z("raw"),children:"raw"})]}):s.jsx("div",{}),s.jsxs(X,{label:"Kind",children:[s.jsx(y,{active:L==="all",onClick:()=>Ne("all"),children:"all"}),tr.map(i=>s.jsx(y,{active:L===i,onClick:()=>Ne(i),children:i},i))]}),s.jsxs(X,{label:"Level",children:[s.jsx(y,{active:R==="all",onClick:()=>je("all"),children:"all"}),er.map(i=>s.jsx(y,{active:R===i,onClick:()=>je(i),children:i},i))]}),s.jsx("div",{className:"flex flex-wrap items-end gap-2",children:s.jsxs("button",{type:"button",onClick:nt,className:`rounded-md border px-2.5 py-1.5 font-mono text-[11px] font-normal uppercase tracking-[0.12em] transition-colors ${D?"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 ",D?"on":"off"]})})]})]})]}),s.jsx("div",{className:"max-h-[650px] overflow-auto lg:max-h-none lg:flex-1 lg:min-h-0",children:s.jsxs("div",{className:"min-w-[980px] font-mono text-[11px] font-normal",children:[s.jsxs("div",{className:`sticky top-0 z-10 grid min-h-8 ${ze} items-center border-b border-border/70 bg-card px-3 py-1.5 font-medium uppercase tracking-[0.12em] text-muted-foreground`,children:[s.jsx("span",{className:"sticky left-0 bg-card pr-2",children:"Copy"}),s.jsx("span",{children:"Open"}),s.jsx(S,{column:"time",label:"Time",sort:h,onSort:I}),s.jsx(S,{column:"kind",label:"Kind",sort:h,onSort:I}),s.jsx(S,{column:"level",label:"Level",sort:h,onSort:I}),s.jsx(S,{column:"category",label:"Category",sort:h,onSort:I}),s.jsx(S,{column:"target",label:"Target",sort:h,onSort:I}),s.jsx(S,{column:"message",label:"Message",sort:h,onSort:I}),s.jsx(S,{column:"id",label:"Id",sort:h,onSort:I})]}),w.map(i=>{const u=pe(i),p=j(i);return s.jsxs("div",{role:"button",tabIndex:0,onClick:()=>Re(i),onKeyDown:m=>{(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),Re(i))},className:`grid min-h-[34px] w-full ${ze} items-center border-b border-l-2 px-3 py-2 text-left transition-colors ${x&&j(x)===p?"border-b-border/40 border-l-accent bg-accent/[0.08]":"border-b-border/40 border-l-transparent hover:bg-muted/30"}`,children:[s.jsx("button",{type:"button","aria-label":`copy row ${ge(i.id)}`,onClick:m=>{m.stopPropagation(),se(he(i).join(" "),`row:${p}`)},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 ${x&&j(x)===p?"bg-accent/[0.08]":"bg-background"}`,children:te===`row:${p}`?"copied":"copy"}),u?s.jsx("button",{type:"button","aria-label":`open ${P(i)}`,onClick:m=>{m.stopPropagation(),Le(i)},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"}):s.jsx("span",{className:"text-muted-foreground/45",children:"-"}),s.jsx("span",{className:"tabular-nums text-muted-foreground",children:ke(i)}),s.jsx("span",{className:"uppercase tracking-[0.13em] text-muted-foreground",children:i.kind}),s.jsx("span",{className:`uppercase tracking-[0.13em] ${ve(i)}`,children:b(i)}),s.jsx("span",{className:"truncate uppercase tracking-[0.13em] text-muted-foreground",children:i.category??"-"}),s.jsx("span",{className:"truncate font-sans text-[12px] font-normal normal-case tracking-normal text-muted-foreground",children:P(i)}),s.jsx("span",{className:"truncate font-sans text-[13px] font-normal normal-case tracking-normal text-foreground",children:N(i)}),s.jsx("span",{className:"truncate text-muted-foreground",children:ge(i.id)})]},p)}),w.length===0&&s.jsx("div",{className:"border-b border-border/40 px-3 py-5 font-sans text-[13px] text-muted-foreground",children:c})]})})]}),$&&s.jsxs(s.Fragment,{children:[s.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":"Resize payload inspector","aria-valuenow":re,"aria-valuemin":de,"aria-valuemax":Be,title:"Drag to resize · Double-click to reset",onPointerDown:st,onDoubleClick:at,className:`group hidden shrink-0 cursor-col-resize items-stretch justify-center transition-colors lg:flex lg:w-[5px] ${Ae?"bg-accent/15":"hover:bg-accent/10"}`,children:s.jsx("div",{className:`w-px transition-colors ${Ae?"bg-accent/80":"bg-border group-hover:bg-accent/60"}`})}),s.jsx("aside",{ref:Te,style:ot,className:"flex w-full shrink-0 flex-col bg-background lg:w-[var(--inspector-width)]",children:s.jsx(cr,{copied:x?te===`inspector:${j(x)}`:!1,event:x,relatedEvents:rt,onCopyRow:i=>{se(he(i).join(" "),`inspector:${j(i)}`)},onOpenTarget:Le})})]})]})}function cr({copied:e,event:t,relatedEvents:r,onCopyRow:n,onOpenTarget:a}){const o=t?pe(t):null;return s.jsxs("div",{className:"flex min-h-0 flex-1 flex-col",children:[s.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:[s.jsx("div",{className:"font-mono text-[11px] font-medium uppercase tracking-[0.15em] text-foreground/80",children:"Payload inspector"}),t?s.jsxs("div",{className:"flex items-center gap-2",children:[o?s.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,s.jsx("button",{type:"button",onClick:()=>n(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"}),s.jsx("div",{className:`font-mono text-[11px] uppercase tracking-[0.12em] ${ve(t)}`,children:b(t)})]}):null]}),s.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-3 py-3 lg:px-4 lg:py-4",children:t?s.jsxs("div",{className:"grid gap-3",children:[s.jsxs("div",{className:"overflow-hidden rounded-md border border-accent/25 bg-accent/[0.07]",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2 border-b border-accent/15 px-3 py-2",children:[s.jsx(dr,{event:t}),s.jsx("span",{className:"font-mono text-[11px] uppercase tracking-[0.12em] text-muted-foreground",children:t.kind})]}),s.jsxs("div",{className:"px-3 py-2",children:[s.jsx("div",{className:"font-mono text-[11px] font-medium uppercase tracking-[0.13em] text-accent",children:"selected event"}),s.jsx("div",{className:"mt-1 break-words text-[14px] font-normal leading-5 text-foreground",children:N(t)})]})]}),gr(t).map(c=>s.jsx(ur,{section:c},c.title)),s.jsx(mr,{events:r,selectedId:t.id}),s.jsx(ue,{label:"payload.data",value:t.data??{}}),t.kind==="metric"&&t.tags?s.jsx(ue,{label:"metric.tags",value:t.tags}):null,t.kind==="span"&&t.error?s.jsx(ue,{label:"span.error",value:t.error}):null]}):s.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 X({label:e,children:t}){return s.jsxs("div",{children:[s.jsx("div",{className:"font-mono text-[11px] uppercase tracking-[0.14em] text-muted-foreground",children:e}),s.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:t})]})}function y({active:e,onClick:t,children:r}){return s.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 S({column:e,label:t,sort:r,onSort:n}){const a=r.key===e,o=a?r.direction==="asc"?ut:it:lt,c=r.direction==="asc"?"ascending":"descending";return s.jsxs("button",{type:"button","aria-label":`Sort by ${t}${a?`, currently ${c}`:""}`,"aria-pressed":a,onClick:()=>n(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:[s.jsx("span",{className:"min-w-0 truncate",children:t}),s.jsx(o,{size:10,strokeWidth:1.75,"aria-hidden":"true",className:"shrink-0"})]})}function lr({ariaLabel:e,copied:t,disabled:r=!1,label:n,onClick:a}){return s.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":n})}function dr({event:e}){const t=b(e),r=F(e),n=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 s.jsx("span",{className:`rounded-full border px-2 py-0.5 font-mono text-[10px] uppercase tracking-[0.11em] ${n}`,children:t})}function ur({section:e}){return s.jsxs("section",{className:"overflow-hidden rounded-md border border-border/60 bg-muted/15",children:[s.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}),s.jsx("div",{className:"divide-y divide-border/40",children:e.rows.map(t=>s.jsx(fr,{row:t},`${e.title}-${t.label}`))})]})}function mr({events:e,selectedId:t}){return e.length<=1?null:s.jsxs("section",{className:"overflow-hidden rounded-md border border-border/60 bg-muted/15",children:[s.jsxs("div",{className:"flex items-center justify-between border-b border-border/50 bg-muted/30 px-3 py-2",children:[s.jsx("div",{className:"font-mono text-[10px] font-medium uppercase tracking-[0.14em] text-foreground/70",children:"Trace lines"}),s.jsx("div",{className:"font-mono text-[10px] font-light uppercase tracking-[0.12em] text-muted-foreground",children:e.length})]}),s.jsx("div",{className:"divide-y divide-border/40",children:e.map(r=>{const n=Ue(q(r));return s.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:[s.jsx("span",{className:"font-mono text-[10px] tabular-nums text-muted-foreground",children:ke(r)}),s.jsx("span",{className:`font-mono text-[10px] uppercase tracking-[0.11em] ${ve(r)}`,children:b(r)}),s.jsx("span",{className:"min-w-0 truncate text-[12px] text-foreground/80",children:n??N(r)})]},`${r.id}-${r.timestamp}`)})})]})}function fr({row:e}){return s.jsxs("div",{className:"grid grid-cols-[96px_minmax(0,1fr)] items-start gap-3 px-3 py-2",children:[s.jsx("div",{className:"font-mono text-[10px] font-light uppercase tracking-[0.12em] text-muted-foreground",children:e.label}),s.jsx("div",{className:`min-w-0 break-words text-[12px] leading-5 ${e.mono?"font-mono tabular-nums":"font-sans"} ${hr(e.tone)}`,children:e.value})]})}function ue({label:e,value:t}){return s.jsxs("div",{className:"overflow-hidden rounded-md border border-border/60 bg-muted/15",children:[s.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}),s.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 pe(e){return we(e)}function pr(e){const t=g(e);return d(t,"workspaceId")??d(t,"targetWorkspaceId")}function P(e){const t=g(e),r=we(e);return d(t,"appName")??d(t,"appId")??r??d(t,"workspaceName")??d(t,"workspaceId")??d(t,"serviceId")??d(t,"target")??"-"}function gr(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:xr(e),value:b(e),tone:F(e),mono:!0},{label:"timestamp",value:me(e.timestamp),mono:!0}]}];if(A(e)){const r=g(e),n=C(e),a=be(e);t.push({title:"Agent Action",rows:[{label:"source",value:d(r,"source")??"agent",mono:!0},{label:"status",value:d(r,"status")??b(e),tone:F(e),mono:!0},{label:"action",value:d(r,"action")??N(e),mono:!0},{label:"target",value:P(e),mono:!0},{label:"workspace",value:d(r,"workspaceName")??d(r,"workspaceId")??"unknown",mono:!0},...n?[{label:"trace",value:n,mono:!0}]:[],...a?[{label:"parent",value:a,mono:!0}]:[]]});const o=yr(e),c=Rt(e);(o||c)&&t.push({title:"Request",rows:[...o?[{label:"prompt",value:o}]:[],...c?[{label:"lines",value:String(c.eventCount),mono:!0},{label:"duration",value:`${c.durationMs}ms`,mono:!0}]:[]]})}return e.kind==="log"&&t.push({title:"Log",rows:[{label:"message",value:e.message},{label:"level",value:e.level,tone:F(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:br(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:F(e),mono:!0},{label:"duration",value:e.durationMs===void 0?"active":`${e.durationMs}ms`,mono:!0},{label:"started",value:me(e.startTime),mono:!0},{label:"ended",value:e.endTime===void 0?"pending":me(e.endTime),mono:!0}]}),t}function N(e){if(e.kind==="log"){if(A(e)){const t=g(e),r=Ue(q(e));if(r){const c=d(t,"status");return c?`${r} ${c}`:r}const n=d(t,"action")??d(t,"commandId")??e.message,a=d(t,"status"),o=He(n);return a?`${o} ${a}`:o}return e.message}return A(e)?He(e.name):e.name}function b(e){return e.kind==="log"?A(e)?d(g(e),"status")??e.level:e.level:e.kind==="metric"?e.metricType:e.status}function ve(e){const t=b(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 F(e){const t=b(e);return t==="error"||t==="failed"?"red":t==="warn"||t==="active"||t==="started"?"amber":e.kind==="metric"||t==="ok"||t==="completed"?"emerald":"cyan"}function hr(e="neutral"){return e==="red"?"text-destructive":e==="amber"?"text-warning":e==="emerald"?"text-success":e==="cyan"?"text-accent":"text-foreground"}function xr(e){return e.kind==="log"?"level":e.kind==="metric"?"type":"status"}function br(e){return`${e.value}${e.unit?` ${e.unit}`:""}`}function me(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 ge(e){return e.length>10?e.slice(-10):e}function j(e){return e.kind==="span"?`${e.kind}:${e.id}:${e.status}:${e.endTime??"active"}`:`${e.kind}:${e.id}:${e.timestamp}`}function ke(e){return new Date(e.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function he(e){return[ke(e),e.kind,b(e),e.category??"",P(e),N(e),e.id,JSON.stringify(e.data??{})].map(kr)}function wr(e,t){return[N(e),e.category??"",JSON.stringify(e.data??{}),...t.map(n=>`${N(n)} ${JSON.stringify(n.data??{})}`)].join(" ").toLowerCase()}function yr(e){const r=g(e).args,n=r&&typeof r=="object"&&!Array.isArray(r)?r.prompt:void 0;return typeof n!="string"||!n.trim()?null:n.replace(/\s+/g," ").trim().slice(0,360)}function vr(e){return[["time","kind","signal","category","target","message","id","payload"].join(" "),...e.map(t=>he(t).join(" "))].join(`
|
|
2
2
|
`)}function kr(e){return e.replace(/\s+/g," ").trim()}function jr(e){return e==="time"?"desc":"asc"}function Nr(e,t){const r=t.direction==="asc"?1:-1;return e.map((n,a)=>({event:n,index:a})).sort((n,a)=>{const o=Ir(Fe(n.event,t.key),Fe(a.event,t.key));return o===0?n.index-a.index:o*r}).map(({event:n})=>n)}function Fe(e,t){switch(t){case"time":return e.timestamp;case"kind":return e.kind;case"level":return b(e);case"category":return e.category??"";case"target":return P(e);case"message":return N(e);case"id":return ge(e.id)}}function Ir(e,t){return typeof e=="number"&&typeof t=="number"?e-t:String(e).localeCompare(String(t),void 0,{numeric:!0,sensitivity:"base"})}async function Sr(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 Er(e,t,r){const n=new Set,a=[];for(const o of t)n.has(o.id)||(n.add(o.id),a.push(o));for(let o=e.length-1;o>=0;o--){const c=e[o];n.has(c.id)||(n.add(c.id),a.push(c))}return a.sort((o,c)=>c.timestamp-o.timestamp),a.slice(0,r)}function Tr(e){return e==="red"?"text-destructive":e==="amber"?"text-warning":"text-success"}function Ar(e){return e==="red"?"bg-destructive":e==="amber"?"bg-warning":"bg-success"}function qe(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Cr(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 W(e,t=[]){if(Array.isArray(e))return e.map(n=>W(n,t));if(!qe(e))return e;const r={};for(const[n,a]of Object.entries(e))r[n]=Cr(n,t)?"[redacted]":W(a,[...t,n]);return r}function $r(e){if(e)return e instanceof Error?{name:e.name,message:e.message}:qe(e)?W(e):{message:String(e)}}function Or(e,t=K){const r=e.status??"started",n=r==="failed"?"error":"info";return t.logger[n]("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?W(e.args,[e.action??""]):void 0,metadata:e.metadata?W(e.metadata):void 0,error:$r(e.error)}})}export{K as H,Dr as L,Br as a,Hr as b,xt as c,Or as l,Zt as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c}from"./createLucideIcon-
|
|
1
|
+
import{c}from"./createLucideIcon-DezKXSG2.js";const o=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]],r=c("clock",o);export{r as C};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e}from"./createLucideIcon-
|
|
1
|
+
import{c as e}from"./createLucideIcon-DezKXSG2.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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c}from"./createLucideIcon-
|
|
1
|
+
import{c}from"./createLucideIcon-DezKXSG2.js";const o=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}]],e=c("compass",o);export{e as C};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as t}from"./index-DvLtl7rV.js";import{BriefingDetailScreen as o}from"./BriefingDetailScreen-CUCXO-KH.js";import{BriefingsScreen as m}from"./BriefingsScreen-B5oMTGKv.js";import"./EmptyState-CJzXj1l5.js";import"./api-Co9aQ2Jw.js";import"./perf-PX8Rx0EP.js";import"./scoutbot-markdown-BQ_Ee2Ic.js";import"./Provider-CtXJeLrP.js";import"./router-B9vQkNJL.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-BQ6t92tJ.js";import"./sse-CD9MMUxl.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-BJIamJOH.js";import"./DocumentFocusViewer-Do3wQ_3Z.js";import"./createLucideIcon-DezKXSG2.js";import"./TextDocumentSurface-BflAwXeZ.js";import"./file-text-CqJgwxmv.js";import"./x-CAbNespN.js";import"./chevron-right-D-HdlPg8.js";import"./code-xml-D7pOQM9l.js";import"./arrow-left-Czpf-AE4.js";import"./arrow-right-BuzMnLYP.js";import"./scout-voice-BVUqGhth.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BLYDhL3Z.js";import"./NewChatComposer-_Stj0fZy.js";import"./text-BP3oyl8-.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-pM56HNhR.js";import"./conversation-model-Dc02NsGp.js";import"./time-Dhsh_2EG.js";import"./index-zvhpRHao.js";import"./HarnessMark-B979GCSB.js";import"./NewChatOrigin-B1u7ki70.js";import"./chevron-down-wciXnOQz.js";import"./search-CDko0PKE.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";import"./external-link-Dp_a2vRZ.js";/* empty css *//* empty css */function W({route:i,navigate:r}){return i.view!=="briefings"?null:i.briefingId?t.jsx(o,{briefingId:i.briefingId,navigate:r}):t.jsx(m,{navigate:r})}export{W as BriefingsContent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as o}from"./index-DvLtl7rV.js";import{ConversationScreen as i}from"./ConversationScreen-CR9pWB65.js";import{MessagesScreen as m}from"./MessagesScreen-Bb5l13MO.js";import"./NewChatComposer-_Stj0fZy.js";import"./text-BP3oyl8-.js";import"./scout-voice-BVUqGhth.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-pM56HNhR.js";import"./createLucideIcon-DezKXSG2.js";import"./conversation-model-Dc02NsGp.js";import"./colors-BtO5_zlx.js";import"./time-Dhsh_2EG.js";import"./api-Co9aQ2Jw.js";import"./perf-PX8Rx0EP.js";import"./index-zvhpRHao.js";import"./HarnessMark-B979GCSB.js";import"./NewChatOrigin-B1u7ki70.js";import"./keyboard-nav-BLYDhL3Z.js";import"./x-CAbNespN.js";import"./chevron-down-wciXnOQz.js";import"./search-CDko0PKE.js";import"./file-text-CqJgwxmv.js";import"./ConversationComposer-CXPKx86g.js";import"./AgentAvatar-6-KBVKUu.js";import"./Provider-CtXJeLrP.js";import"./router-B9vQkNJL.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-BQ6t92tJ.js";import"./sse-CD9MMUxl.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BJIamJOH.js";import"./DocumentFocusViewer-Do3wQ_3Z.js";import"./TextDocumentSurface-BflAwXeZ.js";import"./chevron-right-D-HdlPg8.js";import"./code-xml-D7pOQM9l.js";import"./arrow-left-Czpf-AE4.js";import"./arrow-right-BuzMnLYP.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";import"./SpriteAvatar-z5hHesx9.js";import"./CrewAvatar-BwXjyg8N.js";import"./zap-Cq8eWkcF.js";import"./message-markup-C2LQDm_k.js";import"./mentions-DG6OQrsc.js";import"./AgentDetailCard-C9rn3Fj5.js";import"./AgentLiveActions-DrEJDJef.js";import"./terminal-takeover-_Jyys4me.js";import"./openContent-C6XO6kr5.js";import"./eye-BRyD0jno.js";import"./terminal-9GRS_Qdc.js";import"./message-visibility-CGOmSSKs.js";import"./operator-attention-RqieiSY8.js";import"./sessionRead-CvFz2RHv.js";import"./clipboard-e3fSpeo7.js";import"./types-B0PlfpKc.js";/* empty css */import"./ConversationHeader-BQWzGzLK.js";import"./BackToPicker-CXZjBRAe.js";import"./AstronautSuit-DbjQtfD_.js";import"./ConversationFeedRows-WrH-YI3L.js";import"./ConversationPanels-Dujvnmup.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./use-reduced-motion-x8pJMVrG.js";import"./proxy-BiW5suC7.js";import"./activity-DcrMApUY.js";import"./message-circle-mZCv8tvB.js";import"./tail-events-Ps8KpKah.js";import"./ConversationStatus-DVzSb2Hv.js";import"./check-ofKUE8yH.js";import"./sparkles-CETYrxGA.js";import"./use-fleet-active-asks-DAspZQjE.js";import"./use-conversation-list-C9ABzjXI.js";import"./AgentMasterScreen-DJPnstoD.js";import"./agent-master-model-DqjrVI2h.js";/* empty css */import"./arrow-up-right-C6Wl-1uw.js";import"./plus-Co-dqKul.js";function ut({route:t,navigate:r}){switch(t.view){case"conversation":return o.jsx(i,{conversationId:t.conversationId,initialDraft:t.composeDraft,navigate:r},t.conversationId);case"messages":return o.jsx(m,{conversationId:t.conversationId,agentId:t.agentId,threadId:t.threadId,machineId:t.machineId,navigate:r});default:return null}}export{ut as ChatContent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as t}from"./index-
|
|
1
|
+
import{j as t}from"./index-DvLtl7rV.js";import{FollowScreen as i}from"./FollowScreen-DvnxYLVh.js";import"./api-Co9aQ2Jw.js";import"./perf-PX8Rx0EP.js";import"./follow-route-BvcGtBIL.js";import"./router-B9vQkNJL.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-BQ6t92tJ.js";/* empty css */function x({route:o,navigate:r}){return o.view!=="follow"?null:t.jsx(i,{route:o,navigate:r})}export{x as FollowContent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as o}from"./index-DvLtl7rV.js";import{MeshScreen as i}from"./MeshScreen-BcxPkhm6.js";import"./api-Co9aQ2Jw.js";import"./perf-PX8Rx0EP.js";import"./time-Dhsh_2EG.js";import"./colors-BtO5_zlx.js";import"./Provider-CtXJeLrP.js";import"./router-B9vQkNJL.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-BQ6t92tJ.js";import"./sse-CD9MMUxl.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BJIamJOH.js";import"./DocumentFocusViewer-Do3wQ_3Z.js";import"./createLucideIcon-DezKXSG2.js";import"./TextDocumentSurface-BflAwXeZ.js";import"./file-text-CqJgwxmv.js";import"./x-CAbNespN.js";import"./chevron-right-D-HdlPg8.js";import"./code-xml-D7pOQM9l.js";import"./arrow-left-Czpf-AE4.js";import"./arrow-right-BuzMnLYP.js";import"./scout-voice-BVUqGhth.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BLYDhL3Z.js";import"./NewChatComposer-_Stj0fZy.js";import"./text-BP3oyl8-.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-pM56HNhR.js";import"./conversation-model-Dc02NsGp.js";import"./index-zvhpRHao.js";import"./HarnessMark-B979GCSB.js";import"./NewChatOrigin-B1u7ki70.js";import"./chevron-down-wciXnOQz.js";import"./search-CDko0PKE.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";import"./mesh-roster-Bc7T4b7z.js";import"./MeshCanvas-DCLJRsBy.js";import"./chunk-T65CQEWV-C1AWTYZZ.js";import"./plus-Co-dqKul.js";import"./mesh-view-store-ChUOASK8.js";import"./useAgentHoverCard-DoBwV0LX.js";import"./AgentDetailCard-C9rn3Fj5.js";import"./AgentLiveActions-DrEJDJef.js";import"./terminal-takeover-_Jyys4me.js";import"./openContent-C6XO6kr5.js";import"./eye-BRyD0jno.js";import"./terminal-9GRS_Qdc.js";import"./mesh-buckets-6y3ZIibI.js";import"./local-agents-C8xAhbO5.js";import"./useContentSecondaryNav-pZe2Zfk1.js";import"./OpsSubnav-1K4Jaf__.js";import"./SecondaryNav-BR4VRdgh.js";import"./secondaryNavConfig-BoQ_zYR9.js";import"./message-square-C7t_qtuj.js";import"./compass-Dt1AMXz2.js";import"./settings-Dyvpkb1D.js";import"./git-branch-CK5v8F2v.js";import"./scroll-text-Dze_dXtQ.js";/* empty css *//* empty css *//* empty css */function jr({route:r,navigate:t}){return r.view!=="mesh"?null:o.jsx(i,{navigate:t})}export{jr as MeshContent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as i}from"./index-DvLtl7rV.js";import{AgentInfoScreen as r}from"./AgentInfoScreen-Dr99gQEZ.js";import{AgentsScreen as m}from"./AgentsScreen-k8LvBuU_.js";/* empty css */import"./colors-BtO5_zlx.js";import"./conversation-model-Dc02NsGp.js";import"./createLucideIcon-DezKXSG2.js";import"./time-Dhsh_2EG.js";import"./api-Co9aQ2Jw.js";import"./perf-PX8Rx0EP.js";import"./sse-CD9MMUxl.js";import"./index-BWHgHrtv.js";import"./text-BP3oyl8-.js";import"./scout-voice-BVUqGhth.js";import"./fx-z37u1o2z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-pM56HNhR.js";import"./Provider-CtXJeLrP.js";import"./router-B9vQkNJL.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-BQ6t92tJ.js";import"./surface-activity-B1rgWB1i.js";import"./scoutbot-BJIamJOH.js";import"./DocumentFocusViewer-Do3wQ_3Z.js";import"./TextDocumentSurface-BflAwXeZ.js";import"./file-text-CqJgwxmv.js";import"./x-CAbNespN.js";import"./chevron-right-D-HdlPg8.js";import"./code-xml-D7pOQM9l.js";import"./arrow-left-Czpf-AE4.js";import"./arrow-right-BuzMnLYP.js";import"./keyboard-nav-BLYDhL3Z.js";import"./NewChatComposer-_Stj0fZy.js";import"./index-zvhpRHao.js";import"./HarnessMark-B979GCSB.js";import"./NewChatOrigin-B1u7ki70.js";import"./chevron-down-wciXnOQz.js";import"./search-CDko0PKE.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";import"./openContent-C6XO6kr5.js";import"./BackToPicker-CXZjBRAe.js";import"./AgentLiveActions-DrEJDJef.js";import"./terminal-takeover-_Jyys4me.js";import"./eye-BRyD0jno.js";import"./terminal-9GRS_Qdc.js";import"./ObservedTopologyPanel-BJUhDSuQ.js";/* empty css */import"./AgentsSubnav-C4xpQhsv.js";import"./SecondaryNav-BR4VRdgh.js";import"./secondaryNavConfig-BoQ_zYR9.js";import"./message-square-C7t_qtuj.js";import"./compass-Dt1AMXz2.js";import"./settings-Dyvpkb1D.js";import"./git-branch-CK5v8F2v.js";import"./scroll-text-Dze_dXtQ.js";import"./library-DkALuCh5.js";/* empty css */import"./SpriteAvatar-z5hHesx9.js";import"./AgentSessions-DCPCG4xb.js";import"./clipboard-e3fSpeo7.js";import"./agents-project-model-UYiamtrU.js";import"./profile-APxDsN2P.js";import"./AgentAvatar-6-KBVKUu.js";import"./CrewAvatar-BwXjyg8N.js";import"./context-budget-DX_fwUs3.js";import"./session-catalog-DsaZJXZt.js";import"./terminal-relay-GYMIvKs1.js";import"./ConversationScreen-CR9pWB65.js";import"./ConversationComposer-CXPKx86g.js";import"./zap-Cq8eWkcF.js";import"./message-markup-C2LQDm_k.js";import"./mentions-DG6OQrsc.js";import"./AgentDetailCard-C9rn3Fj5.js";import"./message-visibility-CGOmSSKs.js";import"./operator-attention-RqieiSY8.js";import"./sessionRead-CvFz2RHv.js";import"./types-B0PlfpKc.js";/* empty css */import"./ConversationHeader-BQWzGzLK.js";import"./AstronautSuit-DbjQtfD_.js";import"./ConversationFeedRows-WrH-YI3L.js";import"./ConversationPanels-Dujvnmup.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./use-reduced-motion-x8pJMVrG.js";import"./proxy-BiW5suC7.js";import"./activity-DcrMApUY.js";import"./message-circle-mZCv8tvB.js";import"./tail-events-Ps8KpKah.js";import"./ConversationStatus-DVzSb2Hv.js";import"./check-ofKUE8yH.js";import"./sparkles-CETYrxGA.js";import"./SessionObserve-dQDN23pP.js";import"./bash-format-BRV5C6Gv.js";import"./lane-tool-detail-0WhMf4Vj.js";import"./LaneToolHoverCard-HByf2ndx.js";import"./lane-observe-vfyACHi0.js";import"./lane-ask-display-B6iCAVcd.js";import"./ObserveTextFlow-ZQWwrK3i.js";import"./SessionObserveEvidence-BRBGKAgd.js";import"./wrench-DjkoAOQt.js";import"./external-link-Dp_a2vRZ.js";import"./AgentDefinitionsWorkspace-Iyl4BesU.js";import"./agent-specialization-BujJVUTD.js";import"./project-overview-helpers-BQTc_Ous.js";import"./FileViewerPane-Df6VzXjA.js";/* empty css */import"./agent-essentials-D7KRGYvF.js";/* empty css *//* empty css */function eo({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{eo as AgentsContent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as t,r as a}from"./index-DvLtl7rV.js";import wt from"./HomeHero-CdUVPjkG.js";import{TailView as bt}from"./TailView-0uEIj2JH.js";import{p as se,a as G}from"./api-Co9aQ2Jw.js";import{u as xt}from"./observe-BpEm1INu.js";import{u as kt}from"./sse-CD9MMUxl.js";import{i as X,o as Mt}from"./surface-activity-B1rgWB1i.js";import{n as x,c as Pe,t as ke}from"./time-Dhsh_2EG.js";import{b as yt,h as St}from"./router-B9vQkNJL.js";import{a as qe,n as Be}from"./colors-BtO5_zlx.js";import{F as jt,R as At,G as Nt,H as It,h as Et}from"./NewChatComposer-_Stj0fZy.js";import{u as Lt,a as De}from"./persistent-state-EHXw8WNy.js";import{M as Ct}from"./text-BP3oyl8-.js";import{u as Rt,m as _t,d as Ot,g as Tt}from"./Provider-CtXJeLrP.js";import{a as Ht}from"./operator-attention-RqieiSY8.js";import{e as $t,i as Ve,f as Ue,g as Wt,h as Pt}from"./agent-lanes-model-DXqjs0OK.js";import{HomeMovingSignalList as Bt}from"./home-moving-signal-BjDtEJUP.js";import{E as Dt}from"./external-link-Dp_a2vRZ.js";import"./refresh-cw-DMxGzDwn.js";import"./createLucideIcon-DezKXSG2.js";import"./activity-DcrMApUY.js";import"./SlidePanel-B9ugxWgA.js";import"./HarnessMark-B979GCSB.js";import"./tail-display-DcliDVkW.js";import"./lane-edit-display-C_Aujldz.js";import"./tail-events-Ps8KpKah.js";import"./index-BWHgHrtv.js";import"./openContent-C6XO6kr5.js";import"./perf-PX8Rx0EP.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-BQ6t92tJ.js";import"./scoutbot-BJIamJOH.js";import"./DocumentFocusViewer-Do3wQ_3Z.js";import"./TextDocumentSurface-BflAwXeZ.js";import"./file-text-CqJgwxmv.js";import"./x-CAbNespN.js";import"./chevron-right-D-HdlPg8.js";import"./code-xml-D7pOQM9l.js";import"./arrow-left-Czpf-AE4.js";import"./arrow-right-BuzMnLYP.js";import"./scout-voice-BVUqGhth.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BLYDhL3Z.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-pM56HNhR.js";import"./conversation-model-Dc02NsGp.js";import"./index-zvhpRHao.js";import"./NewChatOrigin-B1u7ki70.js";import"./chevron-down-wciXnOQz.js";import"./search-CDko0PKE.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";import"./context-budget-DX_fwUs3.js";import"./lane-observe-vfyACHi0.js";import"./home-live-action-BkqGLVRY.js";import"./cpu-DrqejfkB.js";import"./git-branch-CK5v8F2v.js";import"./file-code-corner-muIVH_xO.js";import"./terminal-9GRS_Qdc.js";function Ft(){return t.jsx("svg",{className:"s-msg-compose-tool-chevron",width:"10",height:"10",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:t.jsx("path",{d:"m4 6 4 4 4-4"})})}function Gt({label:e,kicker:s,value:n,onChange:o,options:c,disabled:r=!1,hideKicker:d=!1,className:m}){const g=c.find(v=>v.value===n)?.label??(n.trim()?n:c[0]?.label??e);return t.jsxs("label",{className:["s-msg-compose-tool",r?"s-msg-compose-tool--disabled":"",m??""].filter(Boolean).join(" "),children:[t.jsx("span",{className:"s-msg-compose-tool-value",children:g}),t.jsx(Ft,{}),t.jsx("select",{className:"s-msg-compose-tool-native","aria-label":e,title:s&&!d?s:e,value:n,disabled:r,onChange:v=>o(v.target.value),children:c.map(v=>t.jsx("option",{value:v.value,children:v.label},v.value||"__empty__"))})]})}const oe=30*6e4,ue="30m",ze="recent",le=[{key:"5m",label:"5m",windowMs:5*6e4},{key:"30m",label:"30m",windowMs:oe},{key:"4h",label:"4h",windowMs:240*6e4},{key:"24h",label:"24h",windowMs:1440*6e4}],ce={working:0,native:1,observed:2};function Kt(e){const s=e?.trim();return le.some(n=>n.key===s)?s:ue}function qt(e){return le.find(s=>s.key===e)??le[1]}function Vt(e){return e==="grouped"?"grouped":ze}function Ut(e,s,n){if(n==="grouped"){const r=ce[e.bucket]-ce[s.bucket];if(r!==0)return r}const o=s.lastActivityAt-e.lastActivityAt;if(o!==0)return o;const c=ce[e.bucket]-ce[s.bucket];return c!==0?c:e.id.localeCompare(s.id)}function Qe(e,s,n=oe){const o=x(e);return o!==null&&s-o<=n}function Ye(e){const s=e?.trim().toLowerCase();return s?s==="pi"||s==="grok-acp"||s==="grok"?"grok":s:null}function zt(e,s,n,o=[],c=oe,r=ue){return!!(n||qe(e.state)||$t(e,s,r)||Je(e,o,s,c))}function Qt(e,s){const n=Ye(e.harness);return n?n===s.source?.trim().toLowerCase():!1}function Je(e,s,n,o=oe){const c=e.harnessSessionId?.trim();if(!c)return!1;const r=n-o;return s.some(d=>{const m=x(d.ts);if(m===null||m<r||!Qt(e,d))return!1;const u=d.sessionId?.trim();return!!(u&&u===c)})}function Yt(e){const{agent:s,observeEntry:n,tailEvents:o,nowMs:c,movingAsk:r,windowMs:d=oe}=e;if(r)return!0;const m=n?.data;if(Ve(m))return!0;const u=Ue(m);return!!(u!==null&&c-u<=d||Je(s,o,c,d)||qe(s.state)&&Qe(s.updatedAt,c,d))}function Jt(e,s){const n=e?.metadata?.session,o=e?.metadata?.usage,c=o?.contextInputTokens,r=o?.contextWindowTokens,d=typeof c=="number"&&typeof r=="number"&&r>0?Math.min(100,Math.round(c/r*100)):null;return{sessionId:n?.externalSessionId??s?.sessionId??null,model:n?.model??s?.model??null,contextPct:d}}function Xe(e){if(!e)return null;const s=e.sessionId?.trim()||e.data?.metadata?.session?.externalSessionId?.trim();if(s)return`session:${s}`;const n=e.historyPath?.trim()||e.data?.metadata?.session?.threadPath?.trim();return n?`history:${n}`:null}function Xt(e){const s=e.observe?.metadata?.session,n=s?.externalSessionId?.trim();if(n)return`session:${n}`;const o=s?.threadPath?.trim();return o?`history:${o}`:null}function Fe(e,s){const n=s?.sessionId?.trim()||s?.data?.metadata?.session?.externalSessionId?.trim(),o=e.harnessSessionId?.trim();return!!(n&&o&&n===o)}function Zt(e,s){const n=new Map,o=[];for(const c of e){const r=s[c.id],d=Xe(r);if(!d){o.push(c);continue}const m=n.get(d);if(m===void 0){n.set(d,o.length),o.push(c);continue}const u=o[m];!Fe(u,s[u.id])&&Fe(c,r)&&(o[m]=c)}return o}function be(e,s){const{observeEntry:n,tailEvents:o,nowMs:c,movingAsk:r}=s;if(r)return x(r.updatedAt)??c;if(Ve(n?.data))return c;const d=Ue(n?.data);if(d!==null)return d;const m=e.harnessSessionId?.trim(),u=Ye(e.harness);let g=0;if(m)for(const v of o){if(u&&v.source!==u||v.sessionId?.trim()!==m)continue;const I=x(v.ts);I!==null&&(g=Math.max(g,I))}return g>0?g:x(e.updatedAt)??0}const es=9;function ts(e){const{lanes:s}=Wt({transcripts:e.transcripts,tailEvents:e.tailEvents,processes:e.processes??[],scoutAgents:e.agents,observeCache:e.observeCache??{},now:e.nowMs,workingOnly:!0,horizon:e.horizon??ue});return s.filter(n=>n.source==="native")}const P=[{label:"30m",value:30*6e4,activityLimit:80},{label:"6h",value:360*6e4,activityLimit:250},{label:"24h",value:1440*6e4,activityLimit:800}],Ge=P[2].value,ss="openscout.home.lookbackMs.v1",ns="openscout.home.movingWindow.v1",os="openscout.home.movingSort.v1",is=6e4,as=3e4,rs=3,ne=3e4;function cs(e,s){const n=x(e);if(n===null)return"—";const o=Math.max(0,Math.floor((s-n)/1e3));if(o<60)return`${o}s`;const c=Math.floor(o/60);if(c<60)return`${c}m`;const r=Math.floor(c/60);return r<48?`${r}h`:`${Math.floor(r/24)}d`}function ls(e,s=140){const n=(e??"").replace(/\s+/g," ").trim();return n?n.length>s?`${n.slice(0,s-1)}…`:n:""}function us(e){return{handoff_sent:"handed off",handoff_received:"received handoff",ask_sent:"sent a request",message_sent:"said",message_received:"received"}[e]??e.replace(/[._]/g," ")}function ds(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 ms(e){const s=Math.round(e/6e4);if(s<60)return`${s}m`;const n=s/60;return`${Number.isInteger(n)?n:n.toFixed(1)}h`}function Me(e){if(!Number.isFinite(e)||e<=0)return"now";const s=Math.floor(e/1e3);if(s<60)return`${s}s`;const n=Math.floor(s/60);if(n<60)return`${n}m`;const o=Math.floor(n/60);return o<48?`${o}h`:`${Math.floor(o/24)}d`}function fs(e,s,n){if(e.length===0)return null;const o=e.map(u=>x(u.ts)).filter(u=>u!==null).sort((u,g)=>g-u);if(o.length===0)return null;const c=o[0],r=o[o.length-1];let d=0;for(let u=1;u<o.length;u++)d=Math.max(d,o[u-1]-o[u]);const m=n-s;return d=Math.max(d,r-m),{count:e.length,lastAgoMs:Math.max(0,n-c),longestGapMs:Math.max(0,d)}}function vs(e){const s=e.map(o=>Math.sqrt(o)),n=[.56,.28,.11,.05];return s.map((o,c)=>{let r=0,d=0;for(let m=-3;m<=3;m++){const u=c+m;if(u<0||u>=s.length)continue;const g=n[Math.abs(m)]??0;r+=s[u]*g,d+=g}return d>0?r/d:0})}function hs(e,s,n){if(e.length<2||s.length===0)return e;const o=Math.max(1,e[1].ts-e[0].ts),c=e[0].ts,r=e[e.length-1].ts+o,d=e.map(g=>g.count);for(const g of s){const v=x(g.ts);if(v===null||v<c||v>n||v>=r)continue;const I=Math.floor((v-c)/o);I>=0&&I<d.length&&(d[I]=(d[I]??0)+1)}const m=vs(d),u=Math.max(1,...m);return e.map((g,v)=>({...g,count:d[v]??g.count,value:(m[v]??0)/u}))}function xe(e){return e.status==="fulfilled"?null:gs(e.reason instanceof Error?e.reason.message:String(e.reason))}function gs(e){return/failed to fetch|networkerror|load failed|couldn't connect|connection refused/i.test(e)?"Scout server is unreachable":e}function ps(e){return e==="Scout server is unreachable"}function Rn({navigate:e}){const{agents:s,onboarding:n,reload:o,route:c}=Rt(),r=yt(c),d=a.useMemo(()=>_t(s,r),[s,r]),m=a.useMemo(()=>Ot(s,r),[s,r]),[u,g]=Lt(ss,Ge),v=a.useMemo(()=>P.find(i=>i.value===u)??P[P.length-1],[u]),[I,K]=De(ns,ue),T=Kt(I),k=qt(T),[ie,$]=De(os,ze),B=Vt(ie),q=a.useMemo(()=>Pt(),[T]),[j]=a.useState(()=>{const i=new URLSearchParams({activityLookbackMs:String(v.value),activityLimit:String(v.activityLimit)}).toString(),l=new URLSearchParams({limit:String(q),transcripts:"true"}).toString();return{fleet:se(`/api/fleet?${i}`,ne),heartrate:se("/api/heartrate",ne),gauges:se("/api/service-budgets",ne),tailRecent:se(`/api/tail/recent?${l}`,ne),tailDiscovery:se("/api/tail/discover",ne)}}),[D,C]=a.useState(j.fleet),[V,de]=a.useState(j.heartrate?.buckets??[]),[h,A]=a.useState(j.heartrate?.windowLabel??"trailing 7d"),[E,U]=a.useState(j.heartrate?j.heartrate.bucketLabel??"":"3h buckets"),[M,Ze]=a.useState(j.tailRecent?.events??[]),[me,et]=a.useState(j.tailDiscovery),[tt,fe]=a.useState(j.gauges?.gauges??[]),[R,ye]=a.useState(j.fleet===null),[Se,je]=a.useState(!1),[F,Ae]=a.useState(null),[Z,st]=a.useState(null),ee=a.useRef(null),Ne=a.useRef(0),Ie=a.useRef(0),ve=a.useRef(j.fleet);a.useEffect(()=>{ve.current=D},[D]);const z=a.useCallback(async(i=!1)=>(await G(`/api/service-budgets${i?"?refresh=1":""}`,{cache:"no-store"})).gauges??[],[]),Q=a.useMemo(()=>Tt(D,d),[D,d]),L=a.useCallback(async(i="initial")=>{const l=++Ne.current;!(ve.current!==null)&&i!=="background"?(ye(!0),Ae(null)):je(!0);const w=new URLSearchParams({activityLookbackMs:String(v.value),activityLimit:String(v.activityLimit)}).toString(),[b,O,S]=await Promise.allSettled([G(`/api/fleet?${w}`),G("/api/heartrate"),o()]);if(l!==Ne.current)return;b.status==="fulfilled"&&(ve.current=b.value,C(b.value)),O.status==="fulfilled"&&(de(O.value.buckets),A(O.value.windowLabel),U(O.value.bucketLabel??""));const W=[xe(b),xe(O),xe(S)].filter(J=>!!J);Ae(W[0]??null),W.length<4&&st(Date.now()),ye(!1),je(!1)},[o,v]),nt=a.useCallback(()=>{X()&&(ee.current||(ee.current=setTimeout(()=>{ee.current=null,L("background")},250)))},[L]);a.useEffect(()=>(L(),()=>{ee.current&&clearTimeout(ee.current)}),[L]),kt(nt),a.useEffect(()=>{let i=!1;const l=async()=>{try{const b=await z();i||fe(b)}catch{}};l();const f=setInterval(()=>{X()&&l()},is),w=()=>{document.visibilityState==="visible"&&X()&&l()};return window.addEventListener("focus",w),document.addEventListener("visibilitychange",w),()=>{i=!0,clearInterval(f),window.removeEventListener("focus",w),document.removeEventListener("visibilitychange",w)}},[z]);const te=a.useCallback(async()=>{try{const i=new URLSearchParams({limit:String(q),transcripts:"true"}),[l,f]=await Promise.all([G(`/api/tail/recent?${i.toString()}`),G("/api/tail/discover").catch(()=>null)]);Ze(l.events??[]),f&&et(f)}catch{}},[q]);a.useEffect(()=>{te();const i=setInterval(()=>{X()&&te()},as);return()=>clearInterval(i)},[te]),a.useEffect(()=>{const i=setInterval(()=>{X()&&L("background")},15e3);return()=>clearInterval(i)},[L]),a.useEffect(()=>Mt(()=>{const l=Date.now();l-Ie.current<1e3||(Ie.current=l,L("background"),z().then(fe).catch(()=>null),te())}),[z,L,te]);const[p,ot]=a.useState(()=>Date.now());a.useEffect(()=>{const i=setInterval(()=>{X()&&ot(Date.now())},1e3);return()=>clearInterval(i)},[]);const Ee=a.useMemo(()=>(Q?.activeAsks??[]).filter(i=>i.status==="queued"||i.status==="working"),[Q]),ae=a.useMemo(()=>Ee.filter(i=>Qe(i.updatedAt,p,k.windowMs)),[Ee,k.windowMs,p]),H=a.useMemo(()=>{const i=new Map;for(const l of ae){const f=i.get(l.agentId),w=x(l.updatedAt)??0,b=x(f?.updatedAt)??0;(!f||w>b)&&i.set(l.agentId,l)}return i},[ae]),it=a.useMemo(()=>m.filter(i=>zt(i,p,H.has(i.id),M,k.windowMs,T)),[m,H,k.windowMs,T,p,M]),y=xt(it),_=a.useMemo(()=>{const l=m.filter(f=>Yt({agent:f,observeEntry:y[f.id],tailEvents:M,nowMs:p,movingAsk:H.get(f.id),windowMs:k.windowMs})).sort((f,w)=>be(w,{observeEntry:y[w.id],tailEvents:M,nowMs:p,movingAsk:H.get(w.id)})-be(f,{observeEntry:y[f.id],tailEvents:M,nowMs:p,movingAsk:H.get(f.id)}));return Zt(l,y)},[m,H,k.windowMs,y,M,p]);a.useMemo(()=>{const i={};for(const l of _)i[l.id]=Jt(y[l.id]?.data);return i},[y,_]);const Le=a.useMemo(()=>new Set(_.map(i=>i.id)),[_]),Ce=a.useMemo(()=>{const i=new Set;for(const l of _){const f=Xe(y[l.id]);f&&i.add(f)}return i},[y,_]),Re=a.useMemo(()=>ts({agents:m,tailEvents:M,transcripts:me?.transcripts??[],processes:me?.processes??[],observeCache:y,nowMs:p,horizon:T}).filter(l=>{if(Le.has(l.agent.id))return!1;const f=Xt(l);return!(f&&Ce.has(f))}).sort((l,f)=>f.lastActiveAt-l.lastActiveAt),[m,T,y,p,me,M,Le,Ce]),he=a.useMemo(()=>ae.filter(i=>!_.some(l=>l.id===i.agentId)).sort((i,l)=>Pe(i.updatedAt,l.updatedAt)),[_,ae]),_e=p-u,N=a.useMemo(()=>{const i=new Set(["ask_failed","ask_replied","flight.completed","flight.updated","flight_updated"]),l=(Q?.activity??[]).filter(f=>!i.has(f.kind)&&(x(f.ts)??0)>=_e);return l.filter((f,w)=>{const b=l[w-1];return b?!(b.title===f.title&&b.summary===f.summary&&b.conversationId===f.conversationId&&Math.abs((x(b.ts)??0)-(x(f.ts)??0))<=5e3):!0})},[Q?.activity,_e]),ge=a.useMemo(()=>fs(N,u,p),[N,u,p]),pe=N.length>=v.activityLimit,at=a.useMemo(()=>{const i=P.findIndex(l=>l.value===u);return i>=0&&i<P.length-1?P[i+1]:null},[u]),rt=new Date,ct=St("ops.control",!0),we=n?.operatorName?.trim()||n?.operatorNameSuggestion?.trim()||"operator",lt=a.useMemo(()=>hs(V,M,p),[V,M,p]),Oe=a.useMemo(()=>{const i=p-k.windowMs,l=Q?.activity??[],f=new Set(m.map(S=>S.name.toLowerCase())),w=new Set(m.map(S=>S.id)),b=new Set(["agent_message","status_message","ask_opened","ask_working","handoff_sent","collaboration_event"]),O=new Map;for(const S of l){const W=x(S.ts);if(W===null||W<i||!b.has(S.kind))continue;const J=S.actorName?.trim();if(!J||J.toLowerCase()===we.toLowerCase()||f.has(J.toLowerCase())||S.agentId&&w.has(S.agentId))continue;const $e=J.toLowerCase(),We=O.get($e),pt=x(We?.ts)??0;(!We||W>pt)&&O.set($e,S)}return[...O.values()].sort((S,W)=>Pe(S.ts,W.ts))},[Q?.activity,k.windowMs,p,m,we]),ut=R?"syncing":F?`${ps(F)?"offline":"sync issue"} · ${Z?ke(Z):"waiting"}`:Z?`Last updated ${ke(Z)}`:"waiting",dt=a.useCallback(()=>{L("manual"),z(!0).then(i=>fe(i)).catch(()=>{})},[z,L]),mt={now:rt,operatorName:we,syncLabel:ut,error:F,loading:R,refreshing:Se,onRefresh:dt,navigate:e,opsEnabled:ct,heartrate:lt,heartrateWindow:h,heartrateBucketLabel:E,heartrateVisibleEventThreshold:rs,serviceGauges:tt},ft=!R&&!F&&N.length===0&&u>=Ge,vt=!R&&!F&&N.length===0,ht=R||N.length>0||!!F||!ft,Te=a.useMemo(()=>[..._.map(l=>({bucket:"working",id:l.id,agent:l,lastActivityAt:be(l,{observeEntry:y[l.id],tailEvents:M,nowMs:p,movingAsk:H.get(l.id)})})),...Re.map(l=>({bucket:"native",id:l.id,lane:l,lastActivityAt:l.lastActiveAt})),...Oe.map(l=>({bucket:"observed",id:l.id,actor:l,lastActivityAt:x(l.ts)??0}))].sort((l,f)=>Ut(l,f,B)),[H,B,Re,p,y,Oe,M,_]),He=Te.slice(0,es),re=He.length,Y=Te.length+he.length,gt=Y>re&&re>0?`What's moving · ${re} of ${Y}`:`What's moving · ${Y}`;return t.jsx("div",{className:"s-fleet-home",children:t.jsxs("div",{className:"s-fleet-home-inner",children:[t.jsx(wt,{...mt}),(Y>0||R)&&t.jsxs("div",{className:"s-fleet-section",children:[t.jsx(Ke,{label:R&&Y===0?"What's moving":gt,right:t.jsxs("div",{className:"s-moving-controls",children:[t.jsx(ws,{sort:B,onSortChange:$,windowKey:k.key,onWindowChange:K}),t.jsx("button",{className:"s-link-btn",onClick:()=>e({view:"mesh"}),children:"open mesh ↗"})]})}),R&&Y===0?t.jsx(ks,{}):t.jsxs(t.Fragment,{children:[re>0&&t.jsx(Bt,{cards:He,sort:B,nowMs:p,movingAskByAgent:H,observeCache:y,navigate:e}),he.length>0&&t.jsx("div",{className:"s-moving-ask-list",children:he.map(i=>t.jsx(bs,{ask:i,navigate:e},i.invocationId))})]})]}),ht&&t.jsxs("div",{className:"s-fleet-section",children:[t.jsx(Ke,{label:`Scout coordination · ${N.length}${pe?"+":""}`,right:t.jsx(xs,{value:u,onChange:g,refreshing:Se&&!R})}),ge&&t.jsxs("div",{className:"s-fleet-live-shape",children:[t.jsxs("span",{children:["last ",Me(ge.lastAgoMs)," ago"]}),t.jsx("span",{children:"·"}),t.jsxs("span",{children:["longest gap ",Me(ge.longestGapMs)]}),pe&&t.jsxs(t.Fragment,{children:[t.jsx("span",{children:"·"}),t.jsxs("span",{style:{color:"var(--amber)"},children:["showing ",Math.min(N.length,30)," of ",v.activityLimit,"+ (capped)"]})]}),!pe&&N.length>30&&t.jsxs(t.Fragment,{children:[t.jsx("span",{children:"·"}),t.jsxs("span",{children:["showing 30 of ",N.length]})]})]}),R&&N.length===0?t.jsx(Ms,{}):N.length===0?t.jsx(ys,{lookbackMs:u,nextOption:at,onWiden:i=>g(i.value),loadedAt:Z,nowMs:p,error:F,onRetry:()=>{L("manual")}}):t.jsx("div",{className:"s-mc-stream s-fleet-live-stream",children:N.slice(0,30).map(i=>t.jsx(As,{item:i,nowMs:p,onOpen:()=>{const l=ds(i);l&&e(l)}},i.id))})]}),vt&&t.jsx("div",{className:"s-fleet-section s-fleet-section--quiet-start",children:t.jsx(js,{agents:m,navigate:e})})]})})}function Ke({label:e,right:s}){return t.jsxs("div",{className:"s-section-rule",children:[t.jsx("span",{className:"s-eyebrow",children:e}),t.jsx("span",{className:"s-section-rule-line"}),s&&t.jsx("span",{className:"s-section-rule-right",children:s})]})}function ws({sort:e,onSortChange:s,windowKey:n,onWindowChange:o}){return t.jsxs("div",{className:"s-moving-controlset","aria-label":"Moving cards controls",children:[t.jsxs("div",{className:"s-mc-window s-moving-window",role:"group","aria-label":"Moving sort",children:[t.jsx("span",{className:"s-mc-window-label",children:"Sort"}),t.jsx("div",{className:"s-mc-window-tabs",children:[["recent","Recent"],["grouped","Grouped"]].map(([c,r])=>t.jsx("button",{type:"button",className:`s-mc-window-tab${e===c?" is-active":""}`,onClick:()=>s(c),children:r},c))})]}),t.jsxs("div",{className:"s-mc-window s-moving-window",role:"group","aria-label":"Moving activity window",children:[t.jsx("span",{className:"s-mc-window-label",children:"Window"}),t.jsx("div",{className:"s-mc-window-tabs",children:le.map(c=>t.jsx("button",{type:"button",className:`s-mc-window-tab${n===c.key?" is-active":""}`,onClick:()=>o(c.key),children:c.label},c.key))})]})]})}function bs({ask:e,navigate:s}){const n=Ht(e);return t.jsxs("button",{className:"s-moving-ask-row",onClick:()=>s(n),children:[t.jsx("span",{className:"s-moving-ask-agent",children:e.agentName??e.agentId}),t.jsx("span",{className:"s-moving-ask-title",children:e.summary??e.task}),t.jsx("span",{className:"s-moving-ask-state",children:e.statusLabel}),t.jsx("span",{className:"s-moving-ask-time",children:ke(e.updatedAt)})]})}function xs({value:e,onChange:s,refreshing:n}){return t.jsxs("div",{className:"s-mc-window",role:"group","aria-label":"Lookback window",children:[t.jsxs("span",{className:"s-mc-window-label",children:["Lookback",n&&t.jsx("span",{className:"s-mc-window-refreshing","aria-label":"refreshing"})]}),t.jsx("div",{className:"s-mc-window-tabs",children:P.map(o=>t.jsx("button",{type:"button",className:`s-mc-window-tab${o.value===e?" is-active":""}`,onClick:()=>s(o.value),children:o.label},o.value))})]})}function ks(){return t.jsx("div",{className:"s-moving-signal-stage s-moving-signal-skeleton","aria-hidden":"true",children:t.jsx("div",{className:"s-moving-signal-list",children:[0,1,2,3,4].map(e=>t.jsxs("div",{className:"s-moving-signal-row s-moving-signal-row--skeleton",children:[t.jsx("span",{className:"s-moving-signal-skeleton-age"}),t.jsx("span",{}),t.jsx("span",{className:"s-moving-signal-skeleton-where"}),t.jsx("span",{className:"s-moving-signal-skeleton-action"})]},e))})})}function Ms(){return t.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=>t.jsxs("div",{className:"s-fleet-live-skeleton-row",children:[t.jsx("span",{className:"s-fleet-live-skeleton-time"}),t.jsx("span",{className:"s-fleet-live-skeleton-actor"}),t.jsx("span",{className:"s-fleet-live-skeleton-text"})]},e))})}function ys({lookbackMs:e,nextOption:s,onWiden:n,loadedAt:o,nowMs:c,error:r,onRetry:d}){if(r)return t.jsxs("div",{className:"s-mc-empty s-fleet-live-empty",children:[t.jsx("div",{className:"s-fleet-live-empty-title",children:"Couldn’t load activity."}),t.jsx("div",{className:"s-fleet-live-empty-detail",children:r}),t.jsx("div",{className:"s-fleet-live-empty-actions",children:t.jsx("button",{type:"button",className:"s-link-btn",onClick:d,children:"Try again"})})]});const m=o?`Polled ${Me(Math.max(0,c-o))} ago.`:"Polling…";return t.jsxs("div",{className:"s-mc-empty s-fleet-live-empty",children:[t.jsxs("div",{className:"s-fleet-live-empty-title",children:["No Scout messages or dispatches in the last ",ms(e),"."]}),t.jsx("div",{className:"s-fleet-live-empty-detail",children:m}),s&&t.jsx("div",{className:"s-fleet-live-empty-actions",children:t.jsxs("button",{type:"button",className:"s-link-btn",onClick:()=>n(s),children:["Widen to ",s.label," →"]})})]})}function Ss(e){return[...e].sort((s,n)=>{const o=Be(s.state),c=Be(n.state);return(o==="callable"?0:o==="in_turn"||o==="in_flight"?1:2)-(c==="callable"?0:c==="in_turn"||c==="in_flight"?1:2)||s.name.localeCompare(n.name)})}function js({agents:e,navigate:s}){const n=a.useMemo(()=>Ss(e),[e]),[o,c]=a.useState(()=>n[0]?.id??""),r=n.find(h=>h.id===o)??null,[d,m]=a.useState(null),[u,g]=a.useState(""),[v,I]=a.useState(r?.harness?.trim()??""),[K,T]=a.useState(r?.model?.trim()??""),[k,ie]=a.useState("medium"),[$,B]=a.useState(!1),[q,j]=a.useState(null),D=d??At;a.useEffect(()=>{n.some(h=>h.id===o)||c(n[0]?.id??"")},[o,n]),a.useEffect(()=>{I(r?.harness?.trim()??""),T(r?.model?.trim()??"")},[r?.id]),a.useEffect(()=>{const h=r?.projectRoot?.trim()||r?.cwd?.trim(),A=new URLSearchParams({scope:"global+project"});h&&A.set("projectRoot",h);let E=!1;return G(`/api/runner/options?${A.toString()}`).then(U=>{!E&&U.schemaVersion==="openscout.runtime-capabilities.v1"&&m(U)}).catch(()=>{}),()=>{E=!0}},[r?.cwd,r?.projectRoot]);const C=v||r?.harness?.trim()||"",V=a.useMemo(()=>{const h=jt(D);return C&&!h.harnesses.some(A=>A.value===C)?{...h,harnesses:[...h.harnesses,{value:C,label:C,models:[{value:"",label:"Default",note:"harness picks"}]}]}:h},[D,C]);a.useEffect(()=>{const h=Nt(V,C,K);!h||h.some(A=>A.value===k)||ie(h.find(A=>A.value==="medium")?.value??h[0]?.value??"")},[V,C,K,k]);const de=async h=>{const A=u.trim();if(!(!r||!A||$)){B(!0),j(null);try{const E=await Et(r),U=await G("/api/send",{method:"POST",body:JSON.stringify({body:A,chatId:E,execution:{harness:v||void 0,model:K||void 0,reasoningEffort:k||void 0}})});g("");const M=U.conversationId??E;s({view:"conversation",conversationId:M})}catch(E){j(E instanceof Error?E.message:String(E))}finally{B(!1)}}};return t.jsxs("div",{className:"s-quiet-start",children:[t.jsxs("div",{className:"s-quiet-panel s-quiet-panel--tail",children:[t.jsxs("div",{className:"s-quiet-panel-head",children:[t.jsx("span",{className:"s-eyebrow",children:"Local tail"}),t.jsxs("button",{type:"button",className:"s-icon-btn",title:"Open tail",onClick:()=>s({view:"ops",mode:"tail"}),children:[t.jsx(Dt,{size:14,"aria-hidden":"true"}),t.jsx("span",{children:"Open tail"})]})]}),t.jsx("div",{className:"s-quiet-tail-frame",children:t.jsx(bt,{navigate:s,chrome:"embedded"})})]}),t.jsxs("div",{className:"s-quiet-panel s-quiet-panel--ask",children:[t.jsx("div",{className:"s-quiet-panel-head",children:t.jsx("span",{className:"s-eyebrow",children:"Message"})}),t.jsx("div",{className:"s-quiet-compose",children:t.jsx(Ct,{density:"panel",value:u,onChange:g,onSend:()=>{de()},placeholder:"Type a message…",disabled:$||!r,sending:$,canSend:!$&&!!r&&u.trim().length>0,leadingTools:t.jsxs("div",{className:"s-quiet-target-chip",children:[t.jsx("span",{className:"s-quiet-label",children:"To"}),t.jsx(Gt,{label:"Send to agent",value:o,onChange:c,disabled:n.length===0||$,options:n.length===0?[{value:"",label:"No registered agents"}]:n.map(h=>({value:h.id,label:h.name}))})]}),tools:t.jsx(It,{catalog:V,value:{harness:C,model:K,effort:k},onChange:h=>{I(h.harness===(r?.harness?.trim()??"")?"":h.harness),T(h.model),ie(h.effort)},disabled:$||!r})})}),q&&t.jsx("div",{className:"s-quiet-error",children:q})]})]})}function As({item:e,nowMs:s,onOpen:n}){const o=e.actorName??"—",c=us(e.kind),r=ls(e.title??e.summary,110);return t.jsxs("button",{type:"button",className:"s-mc-stream-row",onClick:n,children:[t.jsx("span",{className:"s-mc-stream-time",children:cs(e.ts,s)}),t.jsx("span",{className:"s-mc-stream-actor",children:o}),t.jsx("span",{className:"s-mc-stream-verb",children:c}),t.jsx("span",{className:"s-mc-stream-text",children:r})]})}export{Rn as HomeContent,Rn as HomeScreen};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as o}from"./index-DvLtl7rV.js";import{HarnessesScreen as i}from"./HarnessesScreen-CHTuv8p6.js";import"./HarnessMark-B979GCSB.js";import"./api-Co9aQ2Jw.js";import"./perf-PX8Rx0EP.js";import"./router-B9vQkNJL.js";import"./synthetic-agent-routing-aduMYO7P.js";import"./terminal-sessions-BQ6t92tJ.js";import"./time-Dhsh_2EG.js";import"./Provider-CtXJeLrP.js";import"./sse-CD9MMUxl.js";import"./index-BWHgHrtv.js";import"./surface-activity-B1rgWB1i.js";import"./colors-BtO5_zlx.js";import"./scoutbot-BJIamJOH.js";import"./DocumentFocusViewer-Do3wQ_3Z.js";import"./createLucideIcon-DezKXSG2.js";import"./TextDocumentSurface-BflAwXeZ.js";import"./file-text-CqJgwxmv.js";import"./x-CAbNespN.js";import"./chevron-right-D-HdlPg8.js";import"./code-xml-D7pOQM9l.js";import"./arrow-left-Czpf-AE4.js";import"./arrow-right-BuzMnLYP.js";import"./scout-voice-BVUqGhth.js";import"./fx-z37u1o2z.js";import"./keyboard-nav-BLYDhL3Z.js";import"./NewChatComposer-_Stj0fZy.js";import"./text-BP3oyl8-.js";import"./voice-levels-Dcr3jglk.js";import"./loader-circle-pM56HNhR.js";import"./conversation-model-Dc02NsGp.js";import"./index-zvhpRHao.js";import"./NewChatOrigin-B1u7ki70.js";import"./chevron-down-wciXnOQz.js";import"./search-CDko0PKE.js";import"./chunk-HRAB3GC3-Tyv9rzx7.js";import"./useContentSecondaryNav-pZe2Zfk1.js";import"./OpsSubnav-1K4Jaf__.js";import"./SecondaryNav-BR4VRdgh.js";import"./secondaryNavConfig-BoQ_zYR9.js";import"./message-square-C7t_qtuj.js";import"./compass-Dt1AMXz2.js";import"./settings-Dyvpkb1D.js";import"./terminal-9GRS_Qdc.js";import"./git-branch-CK5v8F2v.js";import"./scroll-text-Dze_dXtQ.js";/* empty css *//* empty css */import"./refresh-cw-DMxGzDwn.js";import"./external-link-Dp_a2vRZ.js";function tr({route:r,navigate:t}){return r.view!=="harnesses"?null:o.jsx(i,{navigate:t})}export{tr as HarnessesContent};
|