@openscout/scout 0.2.108 → 0.2.109
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/scoutd +0 -0
- package/dist/build-manifest.json +3 -3
- package/dist/client/assets/conversation-motion-features-PYM3Yx_M.js +1 -0
- package/dist/client/assets/index-DGR8nSEY.js +88 -0
- package/dist/client/assets/index-rA7f7Rt0.css +1 -0
- package/dist/client/index.html +3 -3
- package/dist/main.mjs +1 -1
- package/package.json +2 -2
- package/dist/client/assets/ActivityScreen-C1H-vL0L.js +0 -1
- package/dist/client/assets/AddProjectForm-4sVXmjfN.js +0 -1
- package/dist/client/assets/AdventureEvidence-D5wq1vu8.js +0 -5
- package/dist/client/assets/AdventureReader-BICypcDY.js +0 -4
- package/dist/client/assets/AdventureScenery-CGEcG0zV.js +0 -1
- package/dist/client/assets/AgentAdventures-5yBt-Zl3.js +0 -1
- package/dist/client/assets/AgentAvatar-Dn8TUv5W.js +0 -1
- package/dist/client/assets/AgentConfigurationScreen-C0D9WNyL.js +0 -1
- package/dist/client/assets/AgentDefinitionsWorkspace-BzcBdC_s.js +0 -1
- package/dist/client/assets/AgentDetailCard-C4WVeJvJ.css +0 -1
- package/dist/client/assets/AgentDetailCard-CI-ufaEP.js +0 -1
- package/dist/client/assets/AgentFloorView-D8tlGlgy.js +0 -1
- package/dist/client/assets/AgentFloorWorld-DqmnQexg.js +0 -1
- package/dist/client/assets/AgentInfoScreen-BnRhfcFy.js +0 -1
- package/dist/client/assets/AgentLaneCard-pppHFROz.js +0 -1
- package/dist/client/assets/AgentLaneChrome-RptImDFc.js +0 -1
- package/dist/client/assets/AgentLaneDetailSheet-BqbwGskh.js +0 -4
- package/dist/client/assets/AgentLaneSummaryResize-DaIgwyVh.js +0 -1
- package/dist/client/assets/AgentLanesEmbedScreen-De6C4ZOw.js +0 -1
- package/dist/client/assets/AgentLanesPreflight-BQfj2twF.js +0 -1
- package/dist/client/assets/AgentLanesView-CiISx7pu.js +0 -2
- package/dist/client/assets/AgentLiveActions-CGS-Bxb7.css +0 -1
- package/dist/client/assets/AgentLiveActions-CkRGkv13.js +0 -1
- package/dist/client/assets/AgentMasterScreen-CijN_4tN.js +0 -1
- package/dist/client/assets/AgentSessions-ghjQcSrh.js +0 -6
- package/dist/client/assets/AgentsConsole-BjSTs-TV.css +0 -1
- package/dist/client/assets/AgentsConsole-D8upjDpn.js +0 -1
- package/dist/client/assets/AgentsScreen-C17BFqjf.js +0 -1
- package/dist/client/assets/AgentsSubnav-_1GVC4hj.js +0 -1
- package/dist/client/assets/AstronautSuit-Dzu4GOMR.js +0 -1
- package/dist/client/assets/AtopView-DJK5b3lZ.js +0 -1
- package/dist/client/assets/BackToPicker-BPU7kbXq.js +0 -1
- package/dist/client/assets/BackToPicker-CdgVu-to.css +0 -1
- package/dist/client/assets/BriefingDetailScreen-CTvFw523.js +0 -1
- package/dist/client/assets/BriefingsScreen-DpVC3OUk.js +0 -1
- package/dist/client/assets/BrokerMetadataPanel-glRVdwkU.js +0 -1
- package/dist/client/assets/BrokerScreen-CqKsBwEx.js +0 -8
- package/dist/client/assets/CastPicker-Y29K5kKk.js +0 -1
- package/dist/client/assets/CastPicker-zXsnkTIy.css +0 -1
- package/dist/client/assets/ChannelComposer-D4EY9jVW.js +0 -1
- package/dist/client/assets/ChannelSidebar-CVmykV4d.js +0 -1
- package/dist/client/assets/CharacterFamilyPreview-Bj8oMD-5.js +0 -1
- package/dist/client/assets/CharacterFamilyPreview-BniL8sEL.css +0 -1
- package/dist/client/assets/ChatAvatar-BsAOShUr.js +0 -1
- package/dist/client/assets/ChatBits-Cq54CmyB.js +0 -1
- package/dist/client/assets/ChatCollapsedStrip-B0DdrOo2.js +0 -1
- package/dist/client/assets/ChatRichInput-DYJRhGTP.js +0 -31
- package/dist/client/assets/ChatRightPanel-D94Lw7ud.js +0 -1
- package/dist/client/assets/ChatSpaceSurface-Cp532VmZ.js +0 -1
- package/dist/client/assets/ChatSpaceTheme-3wLZGsvT.css +0 -1
- package/dist/client/assets/ChatSpaceTheme-DPzYpw-v.js +0 -1
- package/dist/client/assets/CodeDiffPane-DCgMUi39.js +0 -1
- package/dist/client/assets/CodeProjectPicker-Dq787L77.js +0 -2
- package/dist/client/assets/CodeScreen-BN4TkiR0.js +0 -1
- package/dist/client/assets/CommsCanvas-BR2YS76H.css +0 -1
- package/dist/client/assets/CommsCanvas-Dh056d91.js +0 -1
- package/dist/client/assets/CommsDeck-CRXKIerH.js +0 -1
- package/dist/client/assets/CommsFlowGraph-Cc48o9u_.js +0 -1
- package/dist/client/assets/CommsFlowGraph-vQucylxF.css +0 -1
- package/dist/client/assets/CommsFlowMap-Ckasql5e.js +0 -1
- package/dist/client/assets/CommsSelection-CuphnUny.js +0 -1
- package/dist/client/assets/ComposerAttachments-9uYp_Lh5.js +0 -1
- package/dist/client/assets/ConversationComposer-hYtLurqy.js +0 -1
- package/dist/client/assets/ConversationFeedRows-Bu0ZJcy8.js +0 -1
- package/dist/client/assets/ConversationHeader-L9738YVP.js +0 -1
- package/dist/client/assets/ConversationPanels-D6KuqvGu.js +0 -6
- package/dist/client/assets/ConversationScreen-9MlMnEo4.css +0 -1
- package/dist/client/assets/ConversationScreen-Pzxy9x4m.js +0 -2
- package/dist/client/assets/ConversationStatus-BEefIbXq.js +0 -1
- package/dist/client/assets/CrewAvatar-BnIPIn_Z.css +0 -1
- package/dist/client/assets/CrewAvatar-a_C_F9r_.js +0 -1
- package/dist/client/assets/CrewSprite-CguHb2Ny.js +0 -1
- package/dist/client/assets/CrewSprite-DsQJdu3Z.css +0 -1
- package/dist/client/assets/CrewStage-IPpS3Oja.js +0 -1
- package/dist/client/assets/CrewWorkspaces-BTPtcEcx.js +0 -1
- package/dist/client/assets/CrewWorkspaces-DDuYMByu.css +0 -1
- package/dist/client/assets/DataTable-DnL_8SAu.js +0 -1
- package/dist/client/assets/DispatchAftermath-CoAYaL3B.js +0 -1
- package/dist/client/assets/DocumentFocusViewer-BSC_JwVE.css +0 -1
- package/dist/client/assets/DocumentFocusViewer-mxzPxQQW.js +0 -1
- package/dist/client/assets/EmbeddableSurfacesLab-BAZ_eRMc.js +0 -1
- package/dist/client/assets/EmptyState-DLiLgtPK.js +0 -1
- package/dist/client/assets/FileViewerPane-Dc7AoVod.js +0 -3
- package/dist/client/assets/FleetRollCallHud-VhpxVcGO.js +0 -1
- package/dist/client/assets/FlightObserveScreen-C1kASP3J.js +0 -1
- package/dist/client/assets/FloorContextSheet-BfrXNoBn.js +0 -1
- package/dist/client/assets/FloorExchangePanel-B3TFhjLk.css +0 -1
- package/dist/client/assets/FloorExchangePanel-DsG1cRzu.js +0 -1
- package/dist/client/assets/FloorMessagePasses-Cm3LbkHd.js +0 -1
- package/dist/client/assets/FloorMessagePasses-nxwwiUom.css +0 -1
- package/dist/client/assets/FloorReplay-Bg7kA-tR.js +0 -1
- package/dist/client/assets/FloorResourcesSheet-Ba9HubO2.js +0 -1
- package/dist/client/assets/FloorSavedWork-BDOvV3mA.js +0 -1
- package/dist/client/assets/FloorTacticalHUD-4d-Hr-YL.js +0 -1
- package/dist/client/assets/FollowScreen-DFVSlsQV.js +0 -1
- package/dist/client/assets/HarnessMark-CP-PWk2W.js +0 -1
- package/dist/client/assets/HarnessesScreen-j-91IoOo.js +0 -1
- package/dist/client/assets/HerdrSession-H2mmxeTK.js +0 -4
- package/dist/client/assets/HomeHero-7JwycwFY.css +0 -1
- package/dist/client/assets/HomeHero-g4H3Ctxg.js +0 -1
- package/dist/client/assets/HostAdvisorView-Cyt3b5Fq.js +0 -1
- package/dist/client/assets/InviteLandingScreen-C3DtAGD4.js +0 -1
- package/dist/client/assets/InviteSheet-BiGMNpsE.js +0 -1
- package/dist/client/assets/JumpPalette-goXAVByA.js +0 -1
- package/dist/client/assets/KnowledgeSearchInspector-BbOQIqdF.js +0 -1
- package/dist/client/assets/KnowledgeSearchScreen-DC8yX-kA.js +0 -1
- package/dist/client/assets/LaneToolHoverCard-B8Am_1DC.js +0 -1
- package/dist/client/assets/LaneTraceDetailSheet-CngYIxdI.js +0 -1
- package/dist/client/assets/LaneTraceEventFocus-BRR_jcl9.js +0 -1
- package/dist/client/assets/MeshCanvas-DzkuY_XI.js +0 -3
- package/dist/client/assets/MeshCanvasMinimap-BrscEPAH.js +0 -1
- package/dist/client/assets/MeshCanvasMinimap-Dv7nMbl5.css +0 -1
- package/dist/client/assets/MeshScreen-CAtRB8K6.js +0 -1
- package/dist/client/assets/MeshTopologyView-B1I2dAhu.js +0 -2
- package/dist/client/assets/MessageEmbeds-B-FbWI7a.js +0 -1
- package/dist/client/assets/MessagesScreen-hq7D3Lfi.js +0 -1
- package/dist/client/assets/MissionContextRail-ClR8amG1.js +0 -1
- package/dist/client/assets/MissionControlView-D6gbMrgx.js +0 -1
- package/dist/client/assets/MissionFocusOverlay-CzeNgI9Q.js +0 -1
- package/dist/client/assets/MissionLeftAgentRow-CB3cgeYr.js +0 -1
- package/dist/client/assets/MissionLogPane-2PMEoG44.js +0 -1
- package/dist/client/assets/NativeAreaScreen-BnlrAWT8.js +0 -1
- package/dist/client/assets/NativeAreaScreen-DSR5Tf6F.js +0 -1
- package/dist/client/assets/NativeAreaScreen-fGsxyeC3.js +0 -1
- package/dist/client/assets/NewAgentModal-4b_3aoZE.js +0 -1
- package/dist/client/assets/NewAgentModal-ru8u5YdJ.css +0 -1
- package/dist/client/assets/NewChatComposer-C5LT7MF7.css +0 -1
- package/dist/client/assets/NewChatComposer-D-VB5vdt.js +0 -19
- package/dist/client/assets/NewChatOrigin-BYsEu9dZ.js +0 -1
- package/dist/client/assets/NodeDetailPanel-9NaEnZAQ.js +0 -1
- package/dist/client/assets/NodeMenu-BgJMmffZ.js +0 -1
- package/dist/client/assets/ObserveEmbedScreen-W7Q5HbXP.js +0 -2
- package/dist/client/assets/ObserveTextFlow-C0oQEerY.js +0 -2
- package/dist/client/assets/ObservedTopologyPanel-BsBsvVPL.css +0 -1
- package/dist/client/assets/ObservedTopologyPanel-Ci7emnnj.js +0 -2
- package/dist/client/assets/OpenScoutAppShell-Bh6FnEJO.css +0 -1
- package/dist/client/assets/OpenScoutAppShell-Di9qdmI0.js +0 -22
- package/dist/client/assets/OpsAgentsView-DVotOMg2.js +0 -1
- package/dist/client/assets/OpsScreen-C955zgr3.js +0 -1
- package/dist/client/assets/OpsSubnav-CjMVj7Sk.js +0 -1
- package/dist/client/assets/ProjectAgentProfile-B1VqGSmu.js +0 -1
- package/dist/client/assets/ProjectAgentProfileBar-DhVU7zew.js +0 -1
- package/dist/client/assets/ProjectAgentProfileHero-CJk-Dx4t.js +0 -1
- package/dist/client/assets/ProjectsInbox-B7kap8nR.js +0 -2
- package/dist/client/assets/ProjectsInbox-B8zYE4vP.css +0 -1
- package/dist/client/assets/ProjectsRail-BhSaqbv0.js +0 -1
- package/dist/client/assets/ProjectsScreen-CSb7nwjb.js +0 -1
- package/dist/client/assets/ProjectsThreadAside-pEJutIO8.js +0 -1
- package/dist/client/assets/Provider-BEXAZWd9.js +0 -5
- package/dist/client/assets/Provider-CCzjtkda.css +0 -1
- package/dist/client/assets/RailRow-B25zKEub.css +0 -1
- package/dist/client/assets/RailRow-Ddz90weI.js +0 -1
- package/dist/client/assets/RawSessionsTable-TdKlJIPl.js +0 -1
- package/dist/client/assets/RealtimeVoiceScreen-BU5KmlNo.js +0 -8
- package/dist/client/assets/RenderedWorkerSprite-BNhFXMIo.js +0 -1
- package/dist/client/assets/RenderedWorkerSprite-qnTfkd_4.css +0 -1
- package/dist/client/assets/ReplayClock-wLpb4VqN.js +0 -1
- package/dist/client/assets/ReplayLog-IUyQdklN.js +0 -1
- package/dist/client/assets/ReplayOutpost-C4djhjZJ.js +0 -1
- package/dist/client/assets/ReplayOutpost-Y1DvZgeu.css +0 -1
- package/dist/client/assets/RepoDiffEmbedScreen-BmQX_8E-.js +0 -1
- package/dist/client/assets/RepoDiffPageScreen-B9oAjrC6.js +0 -1
- package/dist/client/assets/RepoDiffViewer-Ch_lIMt-.js +0 -7
- package/dist/client/assets/RepoDiffViewerLazy-DL6A2o_z.js +0 -2
- package/dist/client/assets/ReposScreen-D-E7fSAB.js +0 -6
- package/dist/client/assets/RiggedWorkerCharacter-BpYECnyK.css +0 -1
- package/dist/client/assets/RiggedWorkerCharacter-CF6fhzGd.js +0 -1
- package/dist/client/assets/SageModelStudio-768dRQr4.css +0 -1
- package/dist/client/assets/SageModelStudio-CSet_ITs.js +0 -4108
- package/dist/client/assets/ScoutDeckSurface-BJ-fl8AX.js +0 -1
- package/dist/client/assets/ScoutDeckSurface-uhmuZRzC.css +0 -1
- package/dist/client/assets/ScoutSurface-BvFRdce6.js +0 -1
- package/dist/client/assets/ScoutbotFxLab-CfPzycZ7.js +0 -4
- package/dist/client/assets/SecondaryNav-1FjBDWuY.js +0 -1
- package/dist/client/assets/SessionContextStrip-BoiIxXvS.js +0 -1
- package/dist/client/assets/SessionContextStrip-DAIXwtHd.css +0 -1
- package/dist/client/assets/SessionEmbedScreen-BizGNGOz.js +0 -1
- package/dist/client/assets/SessionHopMenu-DX6PJPNk.js +0 -1
- package/dist/client/assets/SessionObserve-CDdJ7fAE.css +0 -1
- package/dist/client/assets/SessionObserve-Dw3bVQYF.js +0 -12
- package/dist/client/assets/SessionObserveEvidence-uD1OX-R5.js +0 -1
- package/dist/client/assets/SessionRefScreen-Ch9H-qVk.js +0 -1
- package/dist/client/assets/SessionsScreen-DUeP23Xy.js +0 -1
- package/dist/client/assets/SettingsDrawer-BVrP6J52.js +0 -3
- package/dist/client/assets/SettingsDrawer-R8a0TlJD.css +0 -1
- package/dist/client/assets/SettingsScreen-BcJ05LE5.js +0 -1
- package/dist/client/assets/SharedFloorCharacter-Bi5_md4R.css +0 -1
- package/dist/client/assets/SharedFloorCharacter-dnamlt1p.js +0 -1
- package/dist/client/assets/SharedWorkFloor-0rqtdF-n.css +0 -1
- package/dist/client/assets/SharedWorkFloor-H-e2TVj9.js +0 -2
- package/dist/client/assets/ShikiPane-CDiIT_qn.js +0 -15
- package/dist/client/assets/SlidePanel-Bg5dVaIa.css +0 -1
- package/dist/client/assets/SlidePanel-D5oPQocF.js +0 -1
- package/dist/client/assets/SpaceSwitcher-WccPJ0fS.js +0 -1
- package/dist/client/assets/SpriteAvatar-D53GaaK3.js +0 -1
- package/dist/client/assets/SproutActionSprite-BrFCmgWS.js +0 -1
- package/dist/client/assets/StatusPill-jT--OXbn.js +0 -1
- package/dist/client/assets/TailView-B44cSuyl.js +0 -2
- package/dist/client/assets/TailView-Mj3AU2u0.css +0 -1
- package/dist/client/assets/Terminal-D0PanmIk.js +0 -4
- package/dist/client/assets/TerminalEmbedScreen-Eddi4sts.js +0 -1
- package/dist/client/assets/TerminalHeaderMount-CYYcKxQ-.js +0 -1
- package/dist/client/assets/TextDocumentSurface-DBslUq9k.js +0 -4
- package/dist/client/assets/TmuxPeek-Ctw5yYO5.js +0 -1
- package/dist/client/assets/VoiceControlWell-BkjuWjYu.js +0 -1
- package/dist/client/assets/VoicePathDiagram-u0i6ntbx.js +0 -1
- package/dist/client/assets/VoicePermissionsPanel-9Nuw-xCr.js +0 -1
- package/dist/client/assets/VoicePermissionsPanel-RijAZ1gP.css +0 -1
- package/dist/client/assets/VoiceTurnDetails-kS7lfbmt.js +0 -8
- package/dist/client/assets/VoiceTurnStage-DLY6aYDg.js +0 -1
- package/dist/client/assets/VoiceTurnView-CF4tIldB.js +0 -1
- package/dist/client/assets/WorkDetailScreen-BrrkENYq.js +0 -5
- package/dist/client/assets/WorkFilesViewer-B63sKRYZ.js +0 -1
- package/dist/client/assets/WorkRunView-CxwAZ2QQ.css +0 -1
- package/dist/client/assets/WorkRunView-DLIzAsc3.js +0 -1
- package/dist/client/assets/WorldActorTalk-CHhFTiQV.js +0 -1
- package/dist/client/assets/WorldCharacter-CJGx2DVy.js +0 -1
- package/dist/client/assets/WorldMinimap-DL12pBw3.js +0 -1
- package/dist/client/assets/WorldSky-BlPNvGLo.js +0 -1
- package/dist/client/assets/activity-CXkZ620t.js +0 -1
- package/dist/client/assets/addon-fit-G3qi01sy.js +0 -1
- package/dist/client/assets/addon-webgl-Bo7kSgOB.js +0 -82
- package/dist/client/assets/adventure-evidence-DgQbBmfa.css +0 -1
- package/dist/client/assets/adventure-habitats-v1-CVMbdB_Z.png +0 -0
- package/dist/client/assets/adventure-habitats-v1-M1lcpTJh.js +0 -1
- package/dist/client/assets/adventure-playback-DTfkhIc0.js +0 -3
- package/dist/client/assets/adventure-reader-DM5UDDm9.css +0 -1
- package/dist/client/assets/agent-adventures-DZtWpj6k.css +0 -1
- package/dist/client/assets/agent-definitions-CymTYqvo.css +0 -1
- package/dist/client/assets/agent-directory-studio-injection-Bc8590z5.css +0 -1
- package/dist/client/assets/agent-essentials-DnfdGmIX.js +0 -1
- package/dist/client/assets/agent-floor-Dmr9hZHL.css +0 -1
- package/dist/client/assets/agent-floor-actor-DW8zLht0.js +0 -1
- package/dist/client/assets/agent-floor-world-Bnd1AtwK.css +0 -1
- package/dist/client/assets/agent-floor-world-layout-hfMjuoui.js +0 -1
- package/dist/client/assets/agent-lane-card-BkWVDYM8.css +0 -1
- package/dist/client/assets/agent-lane-card-model-CeqQGp-8.js +0 -1
- package/dist/client/assets/agent-lane-detail-Ti3trpfH.js +0 -2
- package/dist/client/assets/agent-lane-preview-Dpa3DuOn.js +0 -4
- package/dist/client/assets/agent-lanes-DmgipV9D.css +0 -1
- package/dist/client/assets/agent-lanes-model-DMAdqCmK.js +0 -4
- package/dist/client/assets/agent-master-THmq-1k8.css +0 -1
- package/dist/client/assets/agent-master-model-Bk_yuUXJ.js +0 -1
- package/dist/client/assets/agent-specialization-DYX_DSlY.js +0 -1
- package/dist/client/assets/agent-state-DDhnFEEP.js +0 -1
- package/dist/client/assets/agents-detail-redesign-h34ROjOW.css +0 -1
- package/dist/client/assets/agents-project-DgbqDc65.css +0 -1
- package/dist/client/assets/agents-screen-BYakbO50.css +0 -1
- package/dist/client/assets/api-BQYTwoz6.js +0 -1
- package/dist/client/assets/api-DSqpVKC7.js +0 -1
- package/dist/client/assets/arc.es-CLA3XI14.js +0 -188
- package/dist/client/assets/arrow-down--OUDFWIq.js +0 -1
- package/dist/client/assets/arrow-left-DNjQHf4C.js +0 -1
- package/dist/client/assets/arrow-right-A_yyXwoH.js +0 -1
- package/dist/client/assets/arrow-up-DFy-9ghF.js +0 -1
- package/dist/client/assets/arrow-up-right-DUW1A1Hb.js +0 -1
- package/dist/client/assets/bash-format-BRV5C6Gv.js +0 -1
- package/dist/client/assets/book-open-B_idZgTF.js +0 -1
- package/dist/client/assets/bot-BNv_ZJzi.js +0 -1
- package/dist/client/assets/briefings-BwuAFQK6.css +0 -1
- package/dist/client/assets/broker-display-BkBzyvbR.js +0 -2
- package/dist/client/assets/cache-DGBo3vIf.js +0 -2
- package/dist/client/assets/chat-api-BHGHALv2.js +0 -2
- package/dist/client/assets/chat-message-markup-esR-YLtN.js +0 -1
- package/dist/client/assets/chat-space-model-aW3Fd8_U.js +0 -4
- package/dist/client/assets/chat-transport-CtxnPLMU.js +0 -1
- package/dist/client/assets/check-BM6QtbB7.js +0 -1
- package/dist/client/assets/chevron-down-DEDSNJNY.js +0 -1
- package/dist/client/assets/chevron-right-B02kAw12.js +0 -1
- package/dist/client/assets/chevron-up-CzveykKG.js +0 -1
- package/dist/client/assets/chunk-HRAB3GC3-DVhUsgOw.js +0 -1
- package/dist/client/assets/chunk-JTPDIGGW-hdpdYwXb.js +0 -46
- package/dist/client/assets/chunk-T65CQEWV-G_Z0lqtn.js +0 -1
- package/dist/client/assets/chunk-YOZR3KYS-apgUnfXh.js +0 -2
- package/dist/client/assets/clipboard-e3fSpeo7.js +0 -1
- package/dist/client/assets/clock-8tb9t2t9.js +0 -1
- package/dist/client/assets/code-screen-DrKinCyh.css +0 -1
- package/dist/client/assets/code-xml-E9gBuiVs.js +0 -1
- package/dist/client/assets/coffee-D0YEK6-l.js +0 -1
- package/dist/client/assets/collapsed-strip-raJWthAH.css +0 -1
- package/dist/client/assets/colors-CFlbwC25.js +0 -1
- package/dist/client/assets/comms-deck-C8nVeMBh.css +0 -1
- package/dist/client/assets/comms-deck-CBhsXnY-.js +0 -2
- package/dist/client/assets/comms-gesture-_aGFo6g3.js +0 -2
- package/dist/client/assets/compass-EmGkpxIe.js +0 -1
- package/dist/client/assets/console-B1IBqLI_.css +0 -1
- package/dist/client/assets/content-B-rn1rka.js +0 -1
- package/dist/client/assets/content-BHV-ZU8_.js +0 -1
- package/dist/client/assets/content-BI9yWpWC.js +0 -1
- package/dist/client/assets/content-BLVuukzF.js +0 -1
- package/dist/client/assets/content-BP3cQkAj.js +0 -1
- package/dist/client/assets/content-BRY-UTkP.js +0 -1
- package/dist/client/assets/content-BXTmYOPB.js +0 -1
- package/dist/client/assets/content-C3DZ77HZ.js +0 -1
- package/dist/client/assets/content-CINHz-rZ.css +0 -1
- package/dist/client/assets/content-CPchclaV.js +0 -1
- package/dist/client/assets/content-CVqPTQnr.js +0 -1
- package/dist/client/assets/content-CjAERU44.js +0 -1
- package/dist/client/assets/content-CoYG0nWL.js +0 -1
- package/dist/client/assets/content-DK1KeRPw.js +0 -1
- package/dist/client/assets/content-iWBSSXa6.js +0 -1
- package/dist/client/assets/content-ryJeaQk8.js +0 -1
- package/dist/client/assets/content-srNyLgDt.js +0 -1
- package/dist/client/assets/context-budget-8qFKqM-j.js +0 -1
- package/dist/client/assets/conversation-icons-Dxn9N1Kx.js +0 -1
- package/dist/client/assets/conversation-model-FxDeWlle.js +0 -1
- package/dist/client/assets/conversation-motion-features-BfmPlONx.js +0 -1
- package/dist/client/assets/conversation-prefs-DNre-Lcx.js +0 -1
- package/dist/client/assets/conversations-DoAAO6kA.js +0 -1
- package/dist/client/assets/copy-C1XrY27_.js +0 -1
- package/dist/client/assets/cpu-DVZ_LhPn.js +0 -1
- package/dist/client/assets/createLucideIcon-CKbjXlwv.js +0 -1
- package/dist/client/assets/credentials-OeoF-VKJ.js +0 -1
- package/dist/client/assets/ctx-panel-BC8fpcWJ.css +0 -1
- package/dist/client/assets/direct-voice-DAOUU-kc.js +0 -10
- package/dist/client/assets/direct-voice-DbO7CSv_.css +0 -1
- package/dist/client/assets/discover-BNa3BPr_.js +0 -2
- package/dist/client/assets/embed-entry-gK3z8Yxi.js +0 -2
- package/dist/client/assets/embed-navigation-DayfkQau.js +0 -1
- package/dist/client/assets/external-link-Df1R34rX.js +0 -1
- package/dist/client/assets/eye-CD-_aphP.js +0 -1
- package/dist/client/assets/file-code-corner-DtMWHBN3.js +0 -1
- package/dist/client/assets/file-text-BOJQiS8p.js +0 -1
- package/dist/client/assets/flag-CeKO8NoD.js +0 -1
- package/dist/client/assets/fleet-roll-call-BUgf7w-V.css +0 -1
- package/dist/client/assets/flight-observe-GFg9L8ft.css +0 -1
- package/dist/client/assets/floor-character-name-CqJPOlXb.js +0 -1
- package/dist/client/assets/floor-context-model-rWKqaKmV.js +0 -1
- package/dist/client/assets/floor-context-sheet-BFnkFiY3.css +0 -1
- package/dist/client/assets/floor-memory-YMM8AlLY.js +0 -1
- package/dist/client/assets/floor-message-passes-CO3Ix_wR.js +0 -1
- package/dist/client/assets/floor-preview-text-HrORUJ7D.js +0 -1
- package/dist/client/assets/floor-replay-CccYqE-f.css +0 -1
- package/dist/client/assets/floor-tactical-hud-HL5Vja5Y.css +0 -1
- package/dist/client/assets/folder-C2emmTHq.js +0 -1
- package/dist/client/assets/follow-route-BvcGtBIL.js +0 -1
- package/dist/client/assets/fx-z37u1o2z.js +0 -1
- package/dist/client/assets/gauge-BR5CrhRM.js +0 -1
- package/dist/client/assets/gestures-Dh8szhcU.js +0 -1
- package/dist/client/assets/git-branch-C45vy8qT.js +0 -1
- package/dist/client/assets/go-shortcuts--25Qg0lD.js +0 -1
- package/dist/client/assets/harnesses-screen-2z36fJKE.css +0 -1
- package/dist/client/assets/home-live-action-BkqGLVRY.js +0 -1
- package/dist/client/assets/home-moving-signal-BiiyEKEb.js +0 -1
- package/dist/client/assets/home-moving-signal-DMguaRWR.css +0 -1
- package/dist/client/assets/home-now-card-DaCpqUZe.js +0 -1
- package/dist/client/assets/home-now-card-nano-wbxgyY4q.js +0 -1
- package/dist/client/assets/hooks-D787lBmm.css +0 -1
- package/dist/client/assets/hooks-JNwYSH18.js +0 -2
- package/dist/client/assets/host-advisor-B2Fqs5Dd.css +0 -1
- package/dist/client/assets/inbox-thread-redesign-B_1ocqaX.css +0 -1
- package/dist/client/assets/index-BFbLvCJn.js +0 -10
- package/dist/client/assets/index-BRNHY2fp.css +0 -1
- package/dist/client/assets/index-BWHgHrtv.js +0 -1
- package/dist/client/assets/index-BrXaMEdK.js +0 -1
- package/dist/client/assets/index-CXzJ_hGx.js +0 -1
- package/dist/client/assets/index-V8FYEUpD.js +0 -1
- package/dist/client/assets/index-mYtyYeAe.js +0 -1
- package/dist/client/assets/index-wLwc74Pu.css +0 -1
- package/dist/client/assets/inspector-panel-BgU5xUln.js +0 -2
- package/dist/client/assets/keyboard-nav-CEe-ApvZ.js +0 -1
- package/dist/client/assets/knowledge-search-BNdQweGz.css +0 -1
- package/dist/client/assets/lane-ask-display-BTVSakyo.js +0 -18
- package/dist/client/assets/lane-edit-display-BjdT9oZl.js +0 -9
- package/dist/client/assets/lane-observe-CteDwdD-.js +0 -7
- package/dist/client/assets/lane-roster-store-MraynTHP.js +0 -1
- package/dist/client/assets/lane-tool-detail-Czggx8oM.js +0 -9
- package/dist/client/assets/layers-ClmyjwpB.js +0 -1
- package/dist/client/assets/layout-grid-DG2-JaPn.js +0 -1
- package/dist/client/assets/left-B66YR0c5.js +0 -1
- package/dist/client/assets/left-BP5P8lzw.js +0 -2
- package/dist/client/assets/left-BV9yMiTL.css +0 -1
- package/dist/client/assets/left-BbCKRDbW.js +0 -1
- package/dist/client/assets/left-CAaRBK9S.css +0 -1
- package/dist/client/assets/left-CaY5FK2k.js +0 -1
- package/dist/client/assets/left-CemrfeSs.js +0 -1
- package/dist/client/assets/left-DcYA26sH.js +0 -1
- package/dist/client/assets/left-DdMMaqFT.js +0 -2
- package/dist/client/assets/left-R2OOE7VG.css +0 -1
- package/dist/client/assets/left-advisor-DBml48M5.js +0 -1
- package/dist/client/assets/left-agents-DowYF2ag.js +0 -1
- package/dist/client/assets/left-default-Bifaeg_V.js +0 -1
- package/dist/client/assets/left-lanes-BGhjdqpD.js +0 -1
- package/dist/client/assets/left-mission-CvXPUovR.js +0 -1
- package/dist/client/assets/left-mission-DENnfshd.css +0 -1
- package/dist/client/assets/library-CnC8uzJt.js +0 -1
- package/dist/client/assets/loader-circle-CCG7hG7z.js +0 -1
- package/dist/client/assets/local-agents-BMcFlY_x.js +0 -1
- package/dist/client/assets/log-in-VL9mdgeE.js +0 -1
- package/dist/client/assets/machine-children-DvCiQxwA.js +0 -1
- package/dist/client/assets/machine-scope-DJt9RZ2w.js +0 -1
- package/dist/client/assets/media-blobs-Bi8pxr1u.js +0 -1
- package/dist/client/assets/mentions-s5oW4aQU.js +0 -1
- package/dist/client/assets/mesh-ops-9SzD3sPw.js +0 -1
- package/dist/client/assets/mesh-ops-B1kDjizF.css +0 -1
- package/dist/client/assets/mesh-screen-DjA4mOaN.css +0 -1
- package/dist/client/assets/mesh-view-store-CVqzYz4K.js +0 -1
- package/dist/client/assets/message-circle-BB3rFCVD.js +0 -1
- package/dist/client/assets/message-markup-BQW5jdJw.js +0 -15
- package/dist/client/assets/message-markup-D1C7GzHo.js +0 -1
- package/dist/client/assets/message-square-BwqBIfv5.js +0 -1
- package/dist/client/assets/message-visibility-DwxgcgYK.js +0 -1
- package/dist/client/assets/mission-control-CsX3Yc58.css +0 -1
- package/dist/client/assets/mission-control-model-BpJHDV5D.js +0 -1
- package/dist/client/assets/mission-control-store-e8F85JhP.js +0 -1
- package/dist/client/assets/mission-wall-CAo4BKfa.js +0 -1
- package/dist/client/assets/model-CBkMvT1w.js +0 -1
- package/dist/client/assets/monitor-M0VSmHQ-.js +0 -1
- package/dist/client/assets/nav-destinations-B3R5zxFX.js +0 -1
- package/dist/client/assets/observe-M3rLosT5.js +0 -1
- package/dist/client/assets/openAgent-Dbv5wfuL.js +0 -1
- package/dist/client/assets/openContent-C6XO6kr5.js +0 -1
- package/dist/client/assets/operator-attention-DBaRg5ep.js +0 -1
- package/dist/client/assets/ops-agents-BOYxzPTm.css +0 -1
- package/dist/client/assets/ops-atop-BB4B4JdE.css +0 -1
- package/dist/client/assets/ops-screen-CxYM0VOW.css +0 -1
- package/dist/client/assets/page-status-BIuh3C5p.js +0 -1
- package/dist/client/assets/page-status-bar-ByUD7VPM.css +0 -1
- package/dist/client/assets/panel-right-WKLdPm0F.js +0 -1
- package/dist/client/assets/paperclip-DLf_ABSv.js +0 -1
- package/dist/client/assets/pause-7mmEEvVx.js +0 -1
- package/dist/client/assets/persistent-state-3mbBFRDO.js +0 -1
- package/dist/client/assets/pin-q_0gAA6i.js +0 -1
- package/dist/client/assets/pip-idle-v1-Tt-CZsRG.png +0 -0
- package/dist/client/assets/pip-thinking-v1-BoHWSEye.png +0 -0
- package/dist/client/assets/pip-waiting-v1-DkuvJ-dN.png +0 -0
- package/dist/client/assets/pip-working-v1-wWQLRS1z.png +0 -0
- package/dist/client/assets/play-N5-hnPCV.js +0 -1
- package/dist/client/assets/plus-B0hdY0fF.js +0 -1
- package/dist/client/assets/profile-B7ZGToTo.js +0 -1
- package/dist/client/assets/project-overview-helpers-BQTc_Ous.js +0 -1
- package/dist/client/assets/projects-inbox-CMFBjQt0.js +0 -1
- package/dist/client/assets/projects-inbox-ColX6lpx.css +0 -1
- package/dist/client/assets/proxy-k0ILOVkK.js +0 -1
- package/dist/client/assets/radio-Bjqmv997.js +0 -1
- package/dist/client/assets/refresh-cw-BcqctLqo.js +0 -1
- package/dist/client/assets/repo-diff-DyYmQMSA.css +0 -1
- package/dist/client/assets/resizable-columns-C7ygvLt8.css +0 -1
- package/dist/client/assets/resolve-panes-wzGu9d8o.js +0 -1
- package/dist/client/assets/resolve-sidebar-context-C8SOo5oZ.js +0 -1
- package/dist/client/assets/right-9rMRZN_r.js +0 -1
- package/dist/client/assets/right-BHZq648O.js +0 -1
- package/dist/client/assets/right-BNJzCaH9.js +0 -2
- package/dist/client/assets/right-CAd7lTvY.js +0 -1
- package/dist/client/assets/right-Cc57bCTW.js +0 -1
- package/dist/client/assets/right-DY49Prjj.js +0 -1
- package/dist/client/assets/right-DfU47xKY.js +0 -1
- package/dist/client/assets/right-Dr7vxdZl.js +0 -1
- package/dist/client/assets/right-DsE4aR3A.js +0 -1
- package/dist/client/assets/right-zlkRjnkv.js +0 -1
- package/dist/client/assets/rocket-BahsdUe6.js +0 -1
- package/dist/client/assets/router-CJIx83Ia.js +0 -1
- package/dist/client/assets/runtime-picker-C3JwrDKP.css +0 -1
- package/dist/client/assets/runtime-picker-IRcTkMZ5.js +0 -1
- package/dist/client/assets/scope-views-4khCg2_z.css +0 -1
- package/dist/client/assets/scope-views-KDtZoLUC.js +0 -1
- package/dist/client/assets/scout-voice-Cdh6pCsb.js +0 -1
- package/dist/client/assets/scoutbot-Bk3nyrkj.js +0 -3
- package/dist/client/assets/scoutbot-markdown-7PRQHaAc.js +0 -6
- package/dist/client/assets/scroll-text-CA0QxBHu.js +0 -1
- package/dist/client/assets/search-Bv2IONmc.js +0 -1
- package/dist/client/assets/secondaryNavConfig-Bmb-oRvD.js +0 -1
- package/dist/client/assets/secondaryNavConfig-D15P1Y9k.css +0 -1
- package/dist/client/assets/selection-bridge-CthAuPRw.js +0 -1
- package/dist/client/assets/send-horizontal-_Tf_It04.js +0 -1
- package/dist/client/assets/send-to-agent-session-CWDHHgFB.js +0 -1
- package/dist/client/assets/server-U_l8A83n.js +0 -1
- package/dist/client/assets/session-catalog-Dx4tl3sx.js +0 -1
- package/dist/client/assets/session-recap-lanes-D-eVJnpY.js +0 -1
- package/dist/client/assets/session-recap-queue-GeicPLsQ.js +0 -1
- package/dist/client/assets/session-ref-lookup-state-SATH_jAP.js +0 -1
- package/dist/client/assets/session-table-BI62J4NP.js +0 -1
- package/dist/client/assets/sessionRead-CvFz2RHv.js +0 -1
- package/dist/client/assets/sessions-view-lGMwwZY7.js +0 -1
- package/dist/client/assets/settings-bo9X410k.js +0 -1
- package/dist/client/assets/shared-work-artifacts-DfNl9KTo.js +0 -1
- package/dist/client/assets/sliders-horizontal-CPSx6wd2.js +0 -1
- package/dist/client/assets/solar-system-scope-2k-stars-points-1FwHnkj0.png +0 -0
- package/dist/client/assets/sparkles-Br-bA2aZ.js +0 -1
- package/dist/client/assets/sprout-action-sprite-DZ8C0fTl.css +0 -1
- package/dist/client/assets/sprout-actions-proof-v1-BzUdc812.png +0 -0
- package/dist/client/assets/sse-BVxO0zNp.js +0 -1
- package/dist/client/assets/status-tone-BM_zuRy1.js +0 -1
- package/dist/client/assets/surface-activity-B1rgWB1i.js +0 -1
- package/dist/client/assets/synthetic-agent-routing-aduMYO7P.js +0 -1
- package/dist/client/assets/system-surfaces-redesign-q2BmCB7e.css +0 -1
- package/dist/client/assets/tail-display-DHSNmvor.js +0 -2
- package/dist/client/assets/tail-events-C6NWFB1N.js +0 -1
- package/dist/client/assets/terminal-DMBAZjPP.js +0 -1
- package/dist/client/assets/terminal-relay-CpGHpDa8.js +0 -1
- package/dist/client/assets/terminal-screen-Bpb2SZrn.css +0 -1
- package/dist/client/assets/terminal-sessions-3RfJpen8.js +0 -1
- package/dist/client/assets/terminal-takeover-CXwdoZ5j.js +0 -1
- package/dist/client/assets/theme-vars-DNK0nn3k.js +0 -1
- package/dist/client/assets/time-Dhsh_2EG.js +0 -1
- package/dist/client/assets/triangle-alert-BZikHKuT.js +0 -1
- package/dist/client/assets/types-B0PlfpKc.js +0 -1
- package/dist/client/assets/ui-LM8pS8qE.js +0 -1
- package/dist/client/assets/use-beside-DopIbJwf.js +0 -1
- package/dist/client/assets/use-conversation-list-CGtcpdPd.js +0 -1
- package/dist/client/assets/use-fleet-active-asks-DAHOPYPV.js +0 -1
- package/dist/client/assets/use-mesh-node-state-BlWIPTc4.js +0 -1
- package/dist/client/assets/use-mesh-ops-items-pKWBro7o.js +0 -1
- package/dist/client/assets/use-reduced-motion-DkdIQBwh.js +0 -1
- package/dist/client/assets/use-scout-dev-flags-CduUFb7l.js +0 -1
- package/dist/client/assets/useAgentHoverCard-DNlXPYQf.js +0 -1
- package/dist/client/assets/useContentSecondaryNav-LJGNYG3U.js +0 -1
- package/dist/client/assets/useEmbedHeadline-BeeBDb7E.js +0 -1
- package/dist/client/assets/usePierreRuntime-DUXZ-DTK.js +0 -50
- package/dist/client/assets/useSidebarCollapse-DoMvU_2R.js +0 -1
- package/dist/client/assets/users-BQPEIUfd.js +0 -1
- package/dist/client/assets/voice-levels-Dcr3jglk.js +0 -1
- package/dist/client/assets/voice-paths-CJUuBPh3.css +0 -1
- package/dist/client/assets/voice-turn-DftA0iIb.css +0 -1
- package/dist/client/assets/voice-turn-ledger-BMZxlSjg.js +0 -1
- package/dist/client/assets/worker-rendered-v1-DmGVMlVi.png +0 -0
- package/dist/client/assets/worker-thinking-v1-ujakpzrK.png +0 -0
- package/dist/client/assets/worker-waiting-v1-DbTSsfJJ.png +0 -0
- package/dist/client/assets/worker-working-v1-BROAvJ_z.png +0 -0
- package/dist/client/assets/world-outposts-v1-DOt0i98W.png +0 -0
- package/dist/client/assets/wrench-C-wjicn5.js +0 -1
- package/dist/client/assets/x-BcfhXYiF.js +0 -1
- package/dist/client/assets/xterm-qXD45dc0.js +0 -34
- package/dist/client/assets/zap-BqL8ttGz.js +0 -1
- package/dist/client/characters/sage/sage.glb +0 -0
- package/dist/highlights-eq9cgrbb.scm +0 -604
- package/dist/highlights-ghv9g403.scm +0 -205
- package/dist/highlights-hk7bwhj4.scm +0 -284
- package/dist/highlights-r812a2qc.scm +0 -150
- package/dist/highlights-x6tmsnaa.scm +0 -115
- package/dist/injections-73j83es3.scm +0 -27
- package/dist/tree-sitter-javascript-nd0q4pe9.wasm +0 -0
- package/dist/tree-sitter-markdown-411r6y9b.wasm +0 -0
- package/dist/tree-sitter-markdown_inline-j5349f42.wasm +0 -0
- package/dist/tree-sitter-typescript-zxjzwt75.wasm +0 -0
- package/dist/tree-sitter-zig-e78zbjpm.wasm +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as i,j as e}from"./index-BFbLvCJn.js";import{E as c}from"./EmptyState-DLiLgtPK.js";import{p as g,a as m}from"./api-DSqpVKC7.js";import{t as p}from"./time-Dhsh_2EG.js";/* empty css *//* empty css */const b={"fleet-home":"fleet",tour:"tour"},d="/api/briefings?limit=50",u=3e4;function E({navigate:f}){const[r,h]=i.useState(()=>g(d,u)?.briefings??null),[n,t]=i.useState(null),[l,o]=i.useState(!1),a=i.useCallback(async()=>{o(!0);try{const s=await m(d);h(s.briefings),t(null)}catch(s){t(s instanceof Error?s.message:"Failed to load briefings")}finally{o(!1)}},[]);return i.useEffect(()=>{a()},[a]),e.jsxs("div",{className:"sys-surface-page sys-surface-page-wide",children:[e.jsxs("div",{className:"sys-page-head",children:[e.jsxs("div",{className:"sys-page-title-group",children:[e.jsx("h2",{className:"sys-page-title",children:"Briefings"}),e.jsx("p",{className:"sys-page-subtitle",children:"Scoutbot's archived fleet briefs — what it told you, when, and what it saw. Rolling 100."})]}),e.jsx("div",{className:"sys-page-actions",children:e.jsx("button",{type:"button",className:"s-btn",disabled:l,onClick:()=>{a()},children:l?"Refreshing...":"Refresh"})})]}),n?e.jsx(c,{title:"Couldn't load briefings",body:n}):r===null?e.jsx("div",{className:"briefings-placeholder",children:"Loading briefings..."}):r.length===0?e.jsx(c,{title:"No briefings yet",body:"Scoutbot writes here when it generates a fleet brief — either on Home or via tour. Briefs land in this archive automatically."}):e.jsx("ul",{className:"briefings-list",children:r.map(s=>e.jsx("li",{children:e.jsxs("button",{type:"button",className:"briefing-row",onClick:()=>f({view:"briefings",briefingId:s.id}),children:[e.jsxs("div",{className:"briefing-row-head",children:[e.jsx("span",{className:`briefing-kind briefing-kind-${s.kind}`,children:b[s.kind]}),e.jsx("span",{className:"briefing-row-title",children:s.title}),e.jsx("span",{className:"briefing-row-time",children:p(s.preparedAt)})]}),e.jsx("div",{className:"briefing-row-summary",children:s.summary}),e.jsxs("div",{className:"briefing-row-meta",children:[e.jsxs("span",{children:[s.observationCount," observations"]}),s.recommendation?e.jsxs("span",{children:["· ",s.recommendation]}):null]})]})},s.id))})]})}export{E as BriefingsScreen};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as m,j as s}from"./index-BFbLvCJn.js";import{a as y,c as p,d as b,f as x}from"./broker-display-BkBzyvbR.js";import{C as u}from"./chevron-down-DEDSNJNY.js";import{C as j}from"./chevron-right-B02kAw12.js";import"./status-tone-BM_zuRy1.js";import"./createLucideIcon-CKbjXlwv.js";function i({label:e,value:a}){return s.jsxs("div",{className:"sys-broker-metadata-row",children:[s.jsx("span",{className:"sys-broker-metadata-key",children:e}),s.jsx("code",{className:"sys-broker-metadata-value",children:a})]})}function h({label:e,value:a,depth:t=0,defaultOpen:d=!0}){const[n,l]=m.useState(d&&t<2);if(a==null)return s.jsx(i,{label:e,value:"—"});if(Array.isArray(a))return a.length===0?s.jsx(i,{label:e,value:"[]"}):a.every(r=>typeof r!="object"||r===null)?s.jsx(i,{label:e,value:a.map(r=>x(r)).join(", ")}):s.jsxs("div",{className:"sys-broker-metadata-group",style:{marginLeft:t*12},children:[s.jsxs("button",{type:"button",className:"sys-broker-metadata-group-toggle",onClick:()=>l(r=>!r),"aria-expanded":n,children:[n?s.jsx(u,{size:12,"aria-hidden":"true"}):s.jsx(j,{size:12,"aria-hidden":"true"}),s.jsx("span",{className:"sys-broker-metadata-group-label",children:e}),s.jsxs("span",{className:"sys-broker-metadata-count",children:[a.length," items"]})]}),n&&s.jsx("div",{className:"sys-broker-metadata-children",children:a.map((r,c)=>s.jsx(h,{label:`[${c}]`,value:r,depth:t+1,defaultOpen:t<1},`${e}-${c}`))})]});if(typeof a=="object"){const o=Object.entries(a);return o.length===0?s.jsx(i,{label:e,value:"{}"}):s.jsxs("div",{className:"sys-broker-metadata-group",style:{marginLeft:t*12},children:[s.jsxs("button",{type:"button",className:"sys-broker-metadata-group-toggle",onClick:()=>l(r=>!r),"aria-expanded":n,children:[n?s.jsx(u,{size:12,"aria-hidden":"true"}):s.jsx(j,{size:12,"aria-hidden":"true"}),s.jsx("span",{className:"sys-broker-metadata-group-label",children:e}),s.jsxs("span",{className:"sys-broker-metadata-count",children:[o.length," fields"]})]}),n&&s.jsx("div",{className:"sys-broker-metadata-children",children:o.map(([r,c])=>s.jsx(h,{label:r,value:c,depth:t+1,defaultOpen:t<1},`${e}-${r}`))})]})}return s.jsx(i,{label:e,value:x(a)})}function k({entries:e}){return e.length===0?null:s.jsx("div",{className:"sys-broker-inspector-rows",children:e.map(a=>s.jsxs("div",{className:"sys-broker-inspector-row",children:[s.jsx("span",{className:"sys-detail-label",children:a.key}),s.jsx("code",{className:"sys-detail-value",children:a.value})]},a.key))})}function S({metadata:e,rawJson:a}){const t=m.useMemo(()=>y(e),[e]),d=m.useMemo(()=>p(e),[e]),[n,l]=m.useState(!1);return!e||Object.keys(e).length===0?s.jsx("div",{className:"sys-broker-metadata-empty",children:"No metadata payload attached to this dispatch row."}):s.jsxs("div",{className:"sys-broker-metadata-panel",children:[t.length>0&&s.jsxs("section",{className:"sys-broker-metadata-section",children:[s.jsx("div",{className:"sys-broker-metadata-section-head",children:s.jsx("span",{className:"sys-detail-label",children:"Summary"})}),s.jsx(k,{entries:t})]}),d!==null&&s.jsxs("section",{className:"sys-broker-metadata-section",children:[s.jsx("div",{className:"sys-broker-metadata-section-head",children:s.jsx("span",{className:"sys-detail-label",children:"Payload"})}),s.jsx("div",{className:"sys-broker-metadata-tree",children:s.jsx(h,{label:"payload",value:d,defaultOpen:!0})})]}),s.jsxs("section",{className:"sys-broker-metadata-section",children:[s.jsxs("button",{type:"button",className:"sys-broker-metadata-raw-toggle",onClick:()=>l(o=>!o),"aria-expanded":n,children:[n?s.jsx(u,{size:12,"aria-hidden":"true"}):s.jsx(j,{size:12,"aria-hidden":"true"}),"Raw JSON"]}),n&&s.jsx("pre",{className:"sys-broker-metadata-raw",children:a||b(e)})]})]})}export{S as BrokerMetadataPanel};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{r as t,j as e}from"./index-BFbLvCJn.js";import{r as gs}from"./index-CXzJ_hGx.js";import{D as xs}from"./runtime-picker-IRcTkMZ5.js";import{E as Ee}from"./EmptyState-DLiLgtPK.js";import"./router-CJIx83Ia.js";import{uploadMediaFiles as js,isRoutableMediaFile as ks}from"./media-blobs-Bi8pxr1u.js";import{A as vs,R as ws,B as Ns,D as Ss}from"./NewChatComposer-D-VB5vdt.js";import{p as As,a as ie}from"./api-DSqpVKC7.js";import{c as Is}from"./clipboard-e3fSpeo7.js";import{u as Rs}from"./sse-BVxO0zNp.js";import{b as ze}from"./status-tone-BM_zuRy1.js";import{t as Fe,b as ts,n as ee}from"./time-Dhsh_2EG.js";import{u as ns}from"./Provider-BEXAZWd9.js";import{o as We}from"./openContent-C6XO6kr5.js";import{g as Cs,b as le,h as os,d as $s,i as Ds,j as Es,k as Fs}from"./broker-display-BkBzyvbR.js";import{BrokerMetadataPanel as Ms}from"./BrokerMetadataPanel-glRVdwkU.js";import{DispatchAftermath as Ts}from"./DispatchAftermath-CoAYaL3B.js";import{i as Ls,c as Ps,n as Ye}from"./keyboard-nav-CEe-ApvZ.js";import{ShikiPane as Bs}from"./ShikiPane-CDiIT_qn.js";import{d as zs}from"./types-B0PlfpKc.js";import{u as Os}from"./useEmbedHeadline-BeeBDb7E.js";/* empty css */import{L as ke}from"./loader-circle-CCG7hG7z.js";import{R as qs}from"./refresh-cw-BcqctLqo.js";import{X as Me}from"./x-BcfhXYiF.js";import{A as _s}from"./arrow-down--OUDFWIq.js";import{E as Xe}from"./external-link-Df1R34rX.js";import{M as is}from"./message-square-BwqBIfv5.js";import{A as Te}from"./arrow-right-A_yyXwoH.js";import{P as Us,A as Ks}from"./paperclip-DLf_ABSv.js";import{P as Js}from"./plus-B0hdY0fF.js";import{C as Ze}from"./chevron-down-DEDSNJNY.js";import{S as Hs}from"./send-horizontal-_Tf_It04.js";import{C as Qs}from"./check-BM6QtbB7.js";import{C as Gs}from"./copy-C1XrY27_.js";import{R as Vs}from"./radio-Bjqmv997.js";import{c as Ws}from"./createLucideIcon-CKbjXlwv.js";import{M as Ys,a as Xs}from"./DocumentFocusViewer-mxzPxQQW.js";const Zs=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],er=Ws("hash",Zs),sr=160;function De(s){const a=new URLSearchParams({limit:String(sr)});return s&&a.set("cursor",s),`/api/broker?${a.toString()}`}const es={index:-1,request:0};function rr(s,a){return{index:a,request:s.request+1}}function ls(s,a){return a===s.index?s:{index:a,request:s.request}}function ar(s,a){return s.index<a?s:ls(s,a>0?a-1:-1)}function tr(s,a){return s.request!==a}function nr({enabled:s,rowCount:a,onActivateRow:n,onClearSelection:o}){const[f,u]=t.useState(es),p=f.index,b=t.useRef(new Map),j=t.useRef(es.request),c=t.useCallback(y=>{u(h=>rr(h,typeof y=="function"?y(h.index):y))},[]),w=t.useCallback(y=>{u(h=>ls(h,typeof y=="function"?y(h.index):y))},[]);t.useEffect(()=>{if(!tr(f,j.current)||(j.current=f.request,f.index<0))return;const y=b.current.get(f.index);y?.scrollIntoView({block:"nearest"}),y?.focus()},[f]),t.useEffect(()=>{u(y=>ar(y,a))},[a]);const A=t.useCallback((y,h)=>{h?b.current.set(y,h):b.current.delete(y)},[]);t.useEffect(()=>{if(!s)return;const y=h=>{if(document.querySelector(".sys-broker-page")&&!(Ls(h.target)||Ps())&&a!==0){if(h.key==="Escape"){o&&(h.preventDefault(),o(),w(-1));return}if(h.key==="ArrowDown"||h.key==="j"){h.preventDefault(),c(N=>Ye(N,a,1));return}if(h.key==="ArrowUp"||h.key==="k"){h.preventDefault(),c(N=>Ye(N,a,-1));return}if(h.key==="Home"||h.key==="g"&&!h.shiftKey){h.preventDefault(),c(0);return}if(h.key==="End"||h.key==="G"){h.preventDefault(),c(a-1);return}if(h.key==="Enter"||h.key===" "){const N=p<0?0:p;h.preventDefault(),c(N),n(N)}}};return window.addEventListener("keydown",y),()=>window.removeEventListener("keydown",y)},[s,p,c,n,o,a,w]);const F=t.useCallback(y=>({tabIndex:p===y?0:-1,ref:h=>A(y,h),onFocus:()=>w(y)}),[p,A,w]);return{focusedIndex:p,setFocusedIndex:w,getRowFocusProps:F}}const xe=["all","delivered","failed"],or=3e4,ir={all:"All",delivered:"Delivered",failed:"Failed"};function lr(s){switch(s){case"success":return"Success";case"failed_query":return"Query failure";case"failed_delivery":return"Delivery failure";default:return"Delivery attempt"}}function cs(s){return s.messageId??s.deliveryId??s.invocationId??s.id}function Le(s){switch(ze(s.kind,s.status)){case"success":return"Delivered";case"danger":return"Failed";case"working":return"Pending";case"warning":return"Held";default:return s.status?s.status.charAt(0).toUpperCase()+s.status.slice(1):"Queued"}}function Ie(s){if(!s)return"··";const a=s.trim().split(/\s+/).filter(Boolean);if(a.length===0)return"··";const n=a[a.length-1];return/^\d+$/.test(n)?n.slice(-2):a.length>=2?(a[0][0]+a[1][0]).toUpperCase():s.trim().slice(0,2).toUpperCase()}function cr(s){const a=ee(s)??0;return new Date(a).toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"})}function Ae(s){const a=ee(s);return a===null?"—":new Date(a).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function Ce(s,a,n=0){if(!s||typeof s!="object"||Array.isArray(s)||n>3)return;const o=s;for(const f of a)if(o[f]!==void 0&&o[f]!==null)return o[f];for(const f of Object.values(o)){const u=Ce(f,a,n+1);if(u!==void 0)return u}}function z(s,...a){const n=Ce(s.metadata,a);return typeof n!="string"&&typeof n!="number"?null:String(n).trim()||null}function Re(s,...a){const n=Ce(s.metadata,a);return typeof n=="number"||typeof n=="string"?ee(n):null}function Pe(s){switch(s){case"dm":return"Direct · agent";case"channel":return"Channel";case"broadcast":return"Broadcast";case null:return"No route";default:return s.replaceAll("_"," ")}}function Be(s,a){if(a==="to")return s.route==="channel"?"Channel":s.route==="broadcast"?"Broadcast":s.target?.toLowerCase().includes("operator")?"Operator":"Agent lane";const n=z(s,"class","actorClass")?.toLowerCase();return n==="operator"||n==="human"?"Operator":n==="agent"?"Agent":s.actorName?.toLowerCase().includes("operator")?"Operator":"Sender"}function ss(s){const a=Ce(s.metadata,["latencyMs","durationMs"]);if(typeof a=="number"&&Number.isFinite(a)&&a>=0)return a<1e3?`${Math.round(a)}ms`:`${(a/1e3).toFixed(a<1e4?1:0)}s`;const n=Re(s,"sentAt","createdAt")??ee(s.ts),o=Re(s,"deliveredAt","completedAt");if(n===null||o===null||o<n)return"—";const f=o-n;return f<1e3?`${f}ms`:`${(f/1e3).toFixed(f<1e4?1:0)}s`}function Oe({route:s}){switch(s){case"channel":return e.jsx(er,{size:12,"aria-hidden":"true"});case"broadcast":return e.jsx(Vs,{size:12,"aria-hidden":"true"});case"dm":return e.jsx(Ks,{size:12,"aria-hidden":"true"});default:return e.jsx(is,{size:12,"aria-hidden":"true"})}}function dr(s,a){if(!a)return null;const n=a.trim().replace(/^@/,"").toLowerCase();return s.find(o=>[o.id,o.name,o.handle,o.selector,o.defaultSelector,o.conversationId,o.harnessSessionId].some(f=>f?.trim().replace(/^@/,"").toLowerCase()===n))??null}function rs(s,a,n){const o=n==="from"?s.actorName:s.target,f=dr(a,o),u=f?.name??o??(n==="from"?"Unknown":"No target"),p=f?"Agent":n==="to"&&s.conversationId?"Session route":Be(s,n);return{label:u,kind:p,agent:f}}function ur(s,a,n){const o=n.agent??a.agent;return[{label:"From",value:a.kind},{label:"To",value:n.kind},{label:"Target",value:s.target??n.label},{label:"Channel",value:Pe(s.route)},{label:"Project",value:o?.project??z(s,"project","projectName")},{label:"Branch",value:o?.branch??z(s,"branch")},{label:"Runtime",value:o?[o.harness,o.model,o.reasoningEffort].filter(Boolean).join(" · ")||null:[z(s,"harness"),z(s,"model")].filter(Boolean).join(" · ")||null},{label:"Machine",value:o?.authorityNodeName??o?.homeNodeName??o?.authorityNodeId??o?.homeNodeId??z(s,"machine","machineName","nodeName")}].filter(f=>!!f.value)}function as({party:s,route:a,side:n}){return e.jsxs("span",{className:`sys-broker-route-end sys-broker-route-end--${n}`,children:[e.jsx("span",{className:"sys-broker-avatar sys-broker-endpoint-avatar","aria-hidden":"true",children:s.agent||n==="from"?Ie(s.label):e.jsx(Oe,{route:a})}),e.jsx("span",{className:"sys-broker-endpoint-name",title:s.label,children:s.label})]})}function hr({attempt:s,agents:a}){const n=rs(s,a,"from"),o=rs(s,a,"to"),f=ur(s,n,o),u=`dispatch-route-${s.id}`;return e.jsxs("span",{className:"sys-broker-route",tabIndex:0,"aria-describedby":u,children:[e.jsx(as,{party:n,route:s.route,side:"from"}),e.jsx(Te,{className:"sys-broker-route-arrow",size:11,"aria-hidden":"true"}),e.jsx(as,{party:o,route:s.route,side:"to"}),e.jsxs("span",{className:"sys-broker-endpoint-card",id:u,role:"tooltip",children:[e.jsx("span",{className:"sys-broker-endpoint-card-head",children:e.jsxs("span",{className:"sys-broker-endpoint-card-edge",children:[e.jsx("span",{className:"sys-broker-avatar sys-broker-endpoint-avatar","aria-hidden":"true",children:Ie(n.label)}),e.jsx("strong",{children:n.label}),e.jsx(Te,{className:"sys-broker-route-arrow",size:11,"aria-hidden":"true"}),e.jsx("span",{className:"sys-broker-avatar sys-broker-endpoint-avatar","aria-hidden":"true",children:o.agent?Ie(o.label):e.jsx(Oe,{route:s.route})}),e.jsx("strong",{children:o.label})]})}),e.jsx("span",{className:"sys-broker-endpoint-card-body",children:f.map(p=>e.jsxs("span",{className:"sys-broker-endpoint-card-field",children:[e.jsx("small",{children:p.label}),e.jsx("code",{title:p.value,children:p.value})]},p.label))})]})]})}function je(s){const a=ee(s)??0,n=new Date(a);return`${n.getFullYear()}-${n.getMonth()}-${n.getDate()}`}function fr(s,a=Date.now()){const n=ee(s)??0,o=new Date(n),f=new Date(a),u=new Date(a);return u.setDate(u.getDate()-1),je(s)===je(f.getTime())?"Today":je(s)===je(u.getTime())?"Yesterday":o.toLocaleDateString(void 0,{month:"short",day:"numeric",year:o.getFullYear()===f.getFullYear()?void 0:"numeric"})}function mr(s,a,n){return{...a,source:s.source,attempts:[...s.attempts,...a.attempts],failedQueries:s.failedQueries,failedDeliveries:s.failedDeliveries,dialogue:s.dialogue,ledger:{...a.ledger,cursors:{...s.ledger.cursors,[n]:a.ledger.cursors[n]},hasMore:{...s.ledger.hasMore,[n]:a.ledger.hasMore[n]}}}}function br({navigate:s,embedded:a=!1,initialAttemptId:n}){Os("Dispatch",a);const{route:o,agents:f,selectedBrokerAttempt:u,inspectBrokerAttempt:p,clearBrokerAttempt:b}=ns(),[j]=t.useState(()=>As(De(),or)),[c,w]=t.useState(j),A=o.view==="broker"?o.filter??"all":"all",[F,y]=t.useState(j===null),[h,N]=t.useState(!1),[L,ce]=t.useState(!1),[O,T]=t.useState(null),H=t.useRef(j),M=t.useRef(0),q=t.useRef(null),Q=t.useCallback(async(l="initial")=>{const d=++M.current;!H.current&&l!=="background"?(y(!0),T(null)):N(!0);try{const g=await ie(De());if(d!==M.current)return;H.current=g,w(g),T(null)}catch(g){if(d!==M.current)return;T(g instanceof Error?g.message:String(g))}finally{d===M.current&&(y(!1),N(!1))}},[]),de=t.useCallback(async()=>{const l=H.current;if(!l||L)return;const d="attempts",g=l.ledger.cursors[d];if(!g||!l.ledger.hasMore[d])return;const S=++M.current;ce(!0),T(null);try{const K=await ie(De(g));if(S!==M.current)return;const E=H.current,re=E?mr(E,K,d):K;H.current=re,w(re)}catch(K){if(S!==M.current)return;T(K instanceof Error?K.message:String(K))}finally{S===M.current&&ce(!1)}},[L]),ne=t.useCallback(()=>{q.current||(q.current=setTimeout(()=>{q.current=null,Q("background")},250))},[Q]);t.useEffect(()=>(Q("initial"),()=>{q.current&&clearTimeout(q.current)}),[Q]),Rs(l=>{(l.kind==="message.posted"||l.kind==="delivery.planned"||l.kind==="delivery.attempted"||l.kind==="delivery.state.changed"||l.kind==="scout.dispatched")&&ne()});const v=t.useMemo(()=>{if(!c)return[];const l=new Map(c.dialogue.map(d=>[d.id,d.body]));return Cs(c.attempts).map(d=>{const g=d.messageId?l.get(d.messageId):null;return g&&g!==d.detail?{...d,detail:g}:d})},[c]),R=t.useMemo(()=>{switch(A){case"delivered":return v.filter(l=>!le(l));case"failed":return v.filter(le);default:return v}},[A,v]),ue=c?.ledger.hasMore.attempts??!1,_=t.useMemo(()=>({all:v.length,delivered:v.filter(l=>!le(l)).length,failed:v.filter(le).length}),[v]),D=t.useMemo(()=>{const l=o.view==="broker"?o.attemptId:void 0;return!c||!l?null:v.find(d=>d.id===l)??c.attempts.find(d=>d.id===l)??c.failedQueries.find(d=>d.id===l)??c.failedDeliveries.find(d=>d.id===l)??null},[c,v,o]),he=D?`${D.id}\0${D.status}\0${D.ts}`:null,G=u?`${u.id}\0${u.status}\0${u.ts}`:null;t.useEffect(()=>{D&&he!==G&&p(D)},[G,p,D,he]);const[C,U]=t.useState(null),$=t.useRef(!1),V=t.useCallback(l=>{if(a){$.current=!0,U(l);return}p(l)},[a,p]),I=t.useCallback(()=>{if(a){$.current=!0,U(null);return}b()},[b,a]),se=t.useCallback(l=>{const d=R[l];d&&(V(d),window.dispatchEvent(new CustomEvent("scout:set-inspector-width",{detail:{width:520}})))},[R,V]),{getRowFocusProps:W,setFocusedIndex:Y}=nr({enabled:!!c&&R.length>0,rowCount:R.length,onActivateRow:se,onClearSelection:I}),P=C?.id??null,oe=C?`${C.id} ${C.status} ${C.ts}`:null;t.useEffect(()=>{if(!a||!P)return;const l=v.find(d=>d.id===P);l&&`${l.id} ${l.status} ${l.ts}`!==oe&&U(l)},[a,P,oe,v]),t.useEffect(()=>{if(!a||!n||!c||$.current||C)return;const l=v.find(d=>d.id===n)??c.attempts.find(d=>d.id===n)??c.failedQueries.find(d=>d.id===n)??c.failedDeliveries.find(d=>d.id===n);l&&($.current=!0,U(l))},[c,a,C,v,n]),t.useEffect(()=>{const l=o.view==="broker"?o.attemptId:void 0;if(!l)return;const d=R.findIndex(g=>g.id===l);d>=0&&Y(d)},[R,A,o,Y]);const ve=t.useCallback(l=>{const g=(xe.indexOf(A)+l+xe.length)%xe.length,S=xe[g];s({view:"broker",...S==="all"?{}:{filter:S}})},[A,s]),fe=a?C:null;return e.jsx("div",{className:`s-ops${a?" s-ops--embedded":""}${fe?" s-ops--split":""}`,children:e.jsxs("div",{className:"s-ops-body",children:[e.jsxs("div",{className:"sys-surface-page sys-surface-page-wide sys-surface-page-fluid sys-broker-page",children:[e.jsxs("div",{className:"sys-ledger-toolbar","aria-label":"Dispatch controls",children:[c?e.jsx("div",{className:"sys-tab-row sys-tab-row--toolbar",role:"tablist","aria-label":"Dispatch message filters",onKeyDown:l=>{l.key==="ArrowRight"?(l.preventDefault(),ve(1)):l.key==="ArrowLeft"&&(l.preventDefault(),ve(-1))},children:xe.map(l=>e.jsxs("button",{type:"button",role:"tab","aria-selected":A===l,className:`sys-tab${A===l?" sys-tab-active":""}`,onClick:()=>s({view:"broker",...l==="all"?{}:{filter:l}}),children:[e.jsx("span",{children:ir[l]}),e.jsx("span",{className:"sys-tab-count",children:_[l]})]},l))}):e.jsx("div",{className:"sys-ledger-kicker",children:"Dispatch ledger"}),e.jsxs("div",{className:"sys-page-actions sys-ledger-actions",children:[e.jsx("div",{className:"sys-sync-note",children:F?"Loading dispatch ledger...":c?`Updated ${Fe(c.generatedAt)}${c.source?.latestMessageAt?` · latest message ${Fe(c.source.latestMessageAt)}`:""}`:"Waiting for dispatch data"}),e.jsx("button",{type:"button",className:"s-btn",disabled:F||h,onClick:()=>{Q("manual")},children:h?"Refreshing...":"Refresh"})]})]}),O&&e.jsxs("div",{className:"sys-banner sys-banner-warning",children:[e.jsx("strong",{children:"Refresh failed."}),e.jsx("span",{children:O})]}),h&&c&&e.jsxs("div",{className:"sys-broker-source-note",role:"status","aria-live":"polite",children:[e.jsx(ke,{className:"sys-broker-source-spinner",size:12,"aria-hidden":"true"}),e.jsx("strong",{children:"Updating dispatches…"})]}),!h&&c?.source?.mode==="sqlite_projection"&&c.source.status==="degraded"&&c.source.detail&&e.jsxs("div",{className:"sys-broker-source-note sys-broker-source-note--warning",role:"status","aria-label":c.source.detail,title:c.source.detail,children:[e.jsx("span",{className:"sys-broker-source-dot","aria-hidden":"true"}),e.jsx("strong",{children:c.source.brokerReachable?"Dispatch history is loading":"Dispatch may be out of date"}),e.jsx("span",{children:c.source.brokerReachable?"Broker online; showing saved dispatch history while live messages load.":"Live broker unavailable; showing saved dispatch history."})]}),F&&!c&&e.jsx("div",{className:"sys-broker-empty-wrap",children:e.jsx(Ee,{className:"sys-state-card-centered",icon:e.jsx(ke,{className:"sys-broker-source-spinner",size:24,"aria-hidden":"true"}),title:"Loading dispatch",body:"Reading the dispatch database snapshot."})}),!F&&!c&&!O&&e.jsx("div",{className:"sys-broker-empty-wrap",children:e.jsx(Ee,{className:"sys-state-card-centered",title:"No dispatch data",body:"No dispatch rows are available yet."})}),c&&e.jsxs(e.Fragment,{children:[e.jsx(pr,{attempts:R,agents:f,selectedAttemptId:a?C?.id??null:u?.id??(o.view==="broker"?o.attemptId??null:null),onInspect:V,getRowFocusProps:W}),R.length>0&&ue&&e.jsx("div",{className:"sys-ledger-footer",children:e.jsx("button",{type:"button",className:"s-btn",disabled:L,onClick:()=>{de()},children:L?"Loading older...":"Load older"})})]})]}),fe&&e.jsx("div",{className:"s-broker-embed-detail",children:e.jsx(ds,{attempt:fe,navigate:s,onClose:I})})]})})}function pr({attempts:s,agents:a,selectedAttemptId:n,onInspect:o,getRowFocusProps:f}){if(s.length===0)return e.jsx("div",{className:"sys-broker-empty-wrap",children:e.jsx(Ee,{className:"sys-state-card-centered",title:"No dispatch rows",body:"No dispatch rows are available yet."})});const u=s.reduce((p,b,j)=>{const c=je(b.ts),w=p[p.length-1];return w?.key===c?w.attempts.push({attempt:b,index:j}):p.push({key:c,label:fr(b.ts),attempts:[{attempt:b,index:j}]}),p},[]);return e.jsxs("div",{className:"sys-broker-wire","aria-label":"Dispatch ledger",children:[e.jsxs("div",{className:"sys-broker-wire-head","aria-hidden":"true",children:[e.jsx("span",{className:"sys-broker-col sys-broker-col--route",children:"Route"}),e.jsx("span",{className:"sys-broker-col sys-broker-col--msg",children:"Message"}),e.jsx("span",{className:"sys-broker-col sys-broker-col--time",children:"Time"})]}),u.map(p=>e.jsxs("section",{className:"sys-broker-day","aria-labelledby":`dispatch-day-${p.key}`,children:[e.jsxs("header",{className:"sys-broker-day-head",children:[e.jsx("h2",{id:`dispatch-day-${p.key}`,children:p.label}),e.jsxs("span",{children:[p.attempts.length," ",p.attempts.length===1?"dispatch":"dispatches"]})]}),e.jsx("div",{className:"sys-broker-wire-body",role:"list",children:p.attempts.map(({attempt:b,index:j})=>{const c=ze(b.kind,b.status),w=le(b),A=!w&&(c==="working"||c==="warning"),F=os(b),y=Le(b),h=w?F:A?y:null,N=()=>{o(b),window.dispatchEvent(new CustomEvent("scout:set-inspector-width",{detail:{width:520}}))};return e.jsxs("div",{role:"listitem",className:`sys-broker-wire-row${w?" sys-broker-wire-row--failure":A?" sys-broker-wire-row--pending":""}${n===b.id?" sys-broker-wire-row--selected":""}`,"aria-label":`${y}. Inspect ${b.detail}`,onClick:N,...f(j),children:[e.jsx("div",{className:"sys-broker-cell sys-broker-col--route",children:e.jsx(hr,{attempt:b,agents:a})}),e.jsxs("div",{className:"sys-broker-cell sys-broker-col--msg",children:[e.jsx("span",{className:"sys-broker-msg",title:b.detail,children:b.detail}),h&&e.jsx("span",{className:`sys-broker-msg-error sys-broker-msg-error--${w?"danger":"warning"}`,title:h,children:h})]}),e.jsx("div",{className:"sys-broker-cell sys-broker-col--time",children:e.jsx("time",{className:"sys-broker-time-abs",title:`${Fe(b.ts)} · ${ts(b.ts)}`,children:cr(b.ts)})})]},b.id)})})]},p.key))]})}function yr(s){const a=cs(s);return[{label:"Kind",value:lr(s.kind)},{label:"Time",value:ts(s.ts)},{label:"Actor",value:s.actorName},{label:"Target",value:s.target},{label:"Route",value:s.route},{label:"Conversation",value:s.conversationId},{label:"Reference",value:a},{label:"Message",value:s.messageId===a?null:s.messageId},{label:"Delivery",value:s.deliveryId===a?null:s.deliveryId},{label:"Invocation",value:s.invocationId===a?null:s.invocationId}].filter(n=>!!n.value)}function J({value:s,subject:a,className:n}){const[o,f]=t.useState("idle"),u=t.useRef(null);t.useEffect(()=>{f("idle")},[s]),t.useEffect(()=>()=>{u.current&&clearTimeout(u.current)},[]);const p=t.useCallback(async()=>{const c=await Is(s);u.current&&clearTimeout(u.current),f(c?"copied":"failed"),u.current=setTimeout(()=>{f("idle"),u.current=null},1500)},[s]),b=o==="copied",j=o==="failed";return e.jsx("button",{type:"button",className:`sys-copy-btn${n?` ${n}`:""}${b?" sys-copy-btn--copied":""}${j?" sys-copy-btn--failed":""}`,onClick:()=>{p()},title:b?`Copied ${a}`:j?"Copy failed":`Copy ${a}`,"aria-label":b?`Copied ${a}`:j?`Copy ${a} failed`:`Copy ${a}`,children:b?e.jsx(Qs,{size:14,"aria-hidden":"true"}):e.jsx(Gs,{size:14,"aria-hidden":"true"})})}function gr(s){const a=s.trim();if(a.startsWith("{")||a.startsWith("["))try{return{code:JSON.stringify(JSON.parse(a),null,2),path:"payload.json",language:"JSON"}}catch{}return{code:s,path:"payload.md",language:"Text · Markdown"}}function xr({payload:s}){const a=t.useMemo(()=>gr(s),[s]),[n,o]=t.useState(!1),f=t.useRef(null),u=a.code.split(`
|
|
2
|
-
`).length;t.useEffect(()=>{const b=f.current;!b||!n||b.open||b.showModal()},[n]),t.useEffect(()=>{o(!1)},[s]);const p=e.jsx("div",{className:"sys-broker-payload-code","data-language":a.path==="payload.json"?"json":"markdown",role:"region","aria-label":`Dispatch payload, ${a.language}`,tabIndex:0,children:e.jsx(Bs,{code:a.code,path:a.path})});return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"sys-broker-payload-head",children:[e.jsx("span",{className:"sys-detail-label",children:"Payload"}),e.jsxs("span",{className:"sys-broker-payload-meta",children:[a.language," · ",u," ",u===1?"line":"lines"]}),e.jsx(J,{value:s,subject:"payload"}),e.jsx("button",{type:"button",className:"sys-copy-btn sys-broker-payload-expand",onClick:()=>o(!0),title:"Expand payload","aria-label":"Expand payload",children:e.jsx(Ys,{size:14,"aria-hidden":"true"})})]}),e.jsx("div",{className:"sys-broker-payload-resizer",children:p}),n&&gs.createPortal(e.jsxs("dialog",{ref:f,className:"sys-broker-payload-dialog","aria-label":"Expanded dispatch payload",onCancel:b=>{b.preventDefault(),o(!1)},onClose:()=>o(!1),children:[e.jsxs("header",{className:"sys-broker-payload-dialog-head",children:[e.jsxs("div",{children:[e.jsx("span",{className:"sys-detail-label",children:"Dispatch payload"}),e.jsxs("span",{className:"sys-broker-payload-meta",children:[a.language," · ",u," ",u===1?"line":"lines"]})]}),e.jsx(J,{value:s,subject:"payload"}),e.jsx("button",{type:"button",className:"sys-copy-btn",onClick:()=>o(!1),title:"Return payload to inspector","aria-label":"Return payload to inspector",children:e.jsx(Xs,{size:14,"aria-hidden":"true"})})]}),e.jsx("div",{className:"sys-broker-payload-dialog-body",children:p})]}),document.body)]})}function jr({attempt:s}){const a=Fs(s);return e.jsxs("div",{className:"sys-broker-route-failure",role:"status",children:[e.jsx("span",{className:"sys-broker-route-failure-mark","aria-hidden":"true",children:e.jsx(Me,{size:14})}),e.jsxs("div",{children:[e.jsx("span",{className:"sys-detail-label",children:"Routing stopped"}),e.jsx("strong",{children:a}),e.jsx("p",{children:s.detail})]}),e.jsx(J,{value:s.detail,subject:"failure detail"})]})}function ds({attempt:s,navigate:a,onClose:n}){const{route:o,agents:f,scoutbotAgentId:u}=ns(),p=yr(s),b=$s(s.metadata),j=le(s),c=s.kind==="failed_query",w=os(s),A=ze(s.kind,s.status),F=Re(s,"sentAt","createdAt")??ee(s.ts),y=Re(s,"deliveredAt","completedAt")??ee(s.ts),h=cs(s),[N,L]=t.useState("idle"),[ce,O]=t.useState(null),[T,H]=t.useState(null),[M,q]=t.useState(!1),[Q,de]=t.useState(!1),[ne,v]=t.useState(""),[R,ue]=t.useState(""),[_,D]=t.useState("idle"),[he,G]=t.useState(null),[C,U]=t.useState(""),[$,V]=t.useState(""),[I,se]=t.useState(""),[W,Y]=t.useState(""),[P,oe]=t.useState("medium"),[ve,fe]=t.useState(null),[l,d]=t.useState([]),[g,S]=t.useState("idle"),[K,E]=t.useState(null),re=z(s,"harness"),we=z(s,"model"),Ne=z(s,"reasoningEffort","effort"),qe=t.useRef(null),_e=t.useRef(null),me=t.useMemo(()=>Ds(s),[s]),k=t.useMemo(()=>f.filter(r=>!r.retiredFromFleet&&!r.staleLocalRegistration).slice().sort((r,i)=>r.id===u?-1:i.id===u?1:(i.updatedAt??0)-(r.updatedAt??0)||r.name.localeCompare(i.name)),[f,u]),be=t.useMemo(()=>Es(s,k)?.id??"",[s,k]),pe=k.find(r=>r.id!==u)?.id??k[0]?.id??"",Se=k[0]?.id??"",ae=k.find(r=>r.id===pe)??null,us=t.useMemo(()=>{const r=new Map;for(const i of k){const m=i.projectRoot?.trim()||i.cwd?.trim();if(!m)continue;const x=m.split("/").filter(Boolean).at(-1)??m;r.set(m,i.project?.trim()||x)}return[...r.entries()].map(([i,m])=>({path:i,label:m}))},[k]),Ue=t.useRef({originalTargetAgentId:be,firstRoutableAgentId:Se,defaultForwardAgentId:pe,defaultForwardAgent:ae,effort:"medium"});Ue.current={originalTargetAgentId:be,firstRoutableAgentId:Se,defaultForwardAgentId:pe,defaultForwardAgent:ae,effort:z(s,"reasoningEffort","effort")||"medium"};const ye=t.useRef(!1);t.useEffect(()=>{const r=Ue.current;ye.current=!1,L("idle"),O(null),H(null),q(!1),de(!1),v(""),ue(r.originalTargetAgentId||r.firstRoutableAgentId),D("idle"),G(null),U(r.defaultForwardAgentId),V(r.defaultForwardAgent?.projectRoot?.trim()||r.defaultForwardAgent?.cwd?.trim()||""),se(r.defaultForwardAgent?.harness?.trim()||""),Y(r.defaultForwardAgent?.model?.trim()||""),oe(r.effort),d([]),S("idle"),E(null)},[s.id]),t.useEffect(()=>{ye.current||(ue(r=>r||be||Se),U(r=>r||pe),V(r=>r||ae?.projectRoot?.trim()||ae?.cwd?.trim()||""),se(r=>r||ae?.harness?.trim()||""),Y(r=>r||ae?.model?.trim()||""))},[ae,pe,Se,be]),t.useEffect(()=>{const r=new URLSearchParams({scope:"global+project"});$&&r.set("projectRoot",$);let i=!1;return ie(`/api/runner/options?${r.toString()}`).then(m=>{!i&&m.schemaVersion==="openscout.runtime-capabilities.v1"&&fe(m)}).catch(()=>{}),()=>{i=!0}},[$]);const hs=t.useCallback(()=>{q(!0),window.requestAnimationFrame(()=>qe.current?.focus())},[]),Ke=t.useCallback(()=>{q(!1),de(!1),v(""),d([]),S("idle"),E(null)},[]),fs=t.useCallback(async()=>{const r=k.find(i=>i.id===R);if(!(!r||_==="sending")){D("sending"),G(null);try{const i=await ie("/api/ask",{method:"POST",body:JSON.stringify({body:s.detail,targetAgentId:r.id,targetLabel:r.name,...re||we||Ne?{execution:{...re?{harness:re}:{},...we?{model:we}:{},...Ne?{reasoningEffort:Ne}:{},session:"new"}}:{},metadata:{source:"scout-dispatch-redispatch",originalDispatchId:s.id,...s.messageId?{originalMessageId:s.messageId}:{},...s.conversationId?{originalConversationId:s.conversationId}:{}}})}),m=i.flightId??i.flight?.id;D("sent"),G(`New dispatch sent to ${r.name}${m?` · ${m}`:""}`)}catch(i){D("failed"),G(`Retry failed. ${i instanceof Error?i.message:String(i)}`)}}},[s,R,_,Ne,re,we,k]),Je=t.useCallback(async()=>{const r=ne.trim(),i=k.find(m=>m.id===C);if(!(!r||!i||g==="sending")){S("sending"),E(l.length>0?`Uploading ${l.length} ${l.length===1?"attachment":"attachments"}…`:null);try{const m=l.length>0?await js(l):[],x=await ie("/api/ask",{method:"POST",body:JSON.stringify({body:`${r}
|
|
3
|
-
|
|
4
|
-
Attached dispatch context:
|
|
5
|
-
${me}`,targetAgentId:i.id,targetLabel:i.name,...m.length>0?{attachments:m}:{},execution:{...I?{harness:I}:{},...W?{model:W}:{},...P?{reasoningEffort:P}:{}},metadata:{source:"scout-dispatch-forward",originalDispatchId:s.id,...$?{targetProjectPath:$}:{},...s.messageId?{originalMessageId:s.messageId}:{},...s.conversationId?{originalConversationId:s.conversationId}:{}}})}),X=x.flightId??x.flight?.id;S("sent"),E(`Request sent to ${i.name}${X?` · ${X}`:""}`),v(""),d([])}catch(m){S("failed"),E(`Request wasn't sent. ${m instanceof Error?m.message:String(m)}`)}}},[s,me,C,P,l,I,W,$,g,ne,k]),ms=t.useCallback(r=>{const i=r.filter(ks),m=r.length-i.length;i.length>0&&(d(x=>[...x,...i]),S("idle"),E(null)),m>0&&(S("failed"),E("Attach markdown, code, an image, or a video clip."))},[]),B=k.find(r=>r.id===R)??null,te=k.find(r=>r.id===C)??null,ge=k.filter(r=>$?(r.projectRoot?.trim()||r.cwd?.trim())===$:!0),He=ve??ws,$e=t.useMemo(()=>{const r=vs(He),i=[W,te?.harness===I?te.model:null,...ge.filter(x=>x.harness===I).map(x=>x.model)].map(x=>x?.trim()).filter(x=>!!x);let m=r.harnesses;return m.some(x=>x.value===I)||(m=[{value:I,label:I||"default",models:[]},...m]),m=m.map(x=>{if(x.value!==I)return x;const X=x.models.some(Z=>Z.value==="")?x.models:[{value:"",label:"Default",note:"harness picks"},...x.models],ys=new Set(X.map(Z=>Z.value)),Ve=i.filter(Z=>!ys.has(Z)).map(Z=>({value:Z,label:Z,note:"observed"}));return Ve.length===0&&X===x.models?x:{...x,models:[...X,...Ve]}}),{...r,harnesses:m}},[He,te,I,W,ge]);t.useEffect(()=>{const r=Ns($e,I);!r||r.some(i=>i.value===P)||oe(r.find(i=>i.value==="medium")?.value??r[0]?.value??"")},[$e,I,P]);const Qe=j?"Investigate why this dispatch failed. Say what stopped it, whether anything was received, and propose a recovery: who should take it and what should happen next.":"Summarize this dispatch and what happened next. Flag anything that needs the operator.",bs=t.useCallback(async()=>{if(N==="sending")return;if(T){We(a,{view:"conversation",conversationId:T},{returnTo:o});return}const r=k.find(i=>i.id===u);if(!r){L("failed"),O("Scout isn't reachable right now.");return}L("sending"),O(null);try{const i=await ie("/api/ask",{method:"POST",body:JSON.stringify({body:`${Qe}
|
|
6
|
-
|
|
7
|
-
Attached dispatch context:
|
|
8
|
-
${me}`,targetAgentId:r.id,targetLabel:"Scout",metadata:{source:"scout-dispatch-investigate",originalDispatchId:s.id,...s.messageId?{originalMessageId:s.messageId}:{},...s.conversationId?{originalConversationId:s.conversationId}:{}}})}),m=i.flightId??i.flight?.id;L("sent"),H(i.conversationId??null),O(i.conversationId?"Investigation started. Open it to follow along.":`Investigation sent to Scout${m?` · ${m}`:""}.`)}catch(i){L("failed"),O(`Investigation wasn't sent. ${i instanceof Error?i.message:String(i)}`)}},[s,me,T,Qe,N,a,k,o,u]),ps=t.useMemo(()=>{const r={state:Le(s),reference:h,channel:Pe(s.route),latency:ss(s),sent:Ae(F),[j?"failed":"delivered"]:Ae(y)};for(const i of p)r[i.label.toLowerCase()]=i.value;return JSON.stringify(r,null,2)},[s,y,j,h,p,F]),Ge=e.jsxs("div",{className:"sys-broker-action-row",children:[e.jsxs("div",{className:"sys-broker-action-line",children:[e.jsx("span",{className:"sys-broker-action-label",id:"dispatch-redispatch-title",children:"Retry"}),e.jsxs("div",{className:"sys-broker-redispatch-controls",children:[e.jsx("select",{"aria-label":"Retry destination",value:R,disabled:_==="sending"||k.length===0,onChange:r=>{ue(r.target.value),D("idle"),G(null)},children:k.length===0?e.jsx("option",{value:"",children:"No agents available"}):e.jsxs(e.Fragment,{children:[!R&&e.jsx("option",{value:"",children:"Original destination unavailable"}),k.map(r=>e.jsxs("option",{value:r.id,children:[r.id===u?"Scout":r.name,r.project?` · ${r.project}`:""]},r.id))]})}),e.jsxs("button",{type:"button",className:"sys-broker-redispatch-send",disabled:!B||_==="sending",onClick:()=>{fs()},children:[_==="sending"?e.jsx(ke,{size:13,className:"sys-broker-action-spinner","aria-hidden":"true"}):e.jsx(qs,{size:13,"aria-hidden":"true"}),_==="sending"?"Retrying…":"Retry dispatch"]})]})]}),B&&e.jsxs("div",{className:"sys-broker-action-target-meta",children:[B.harness&&e.jsx("span",{children:B.harness}),B.model&&e.jsx("span",{children:B.model}),(B.cwd??B.projectRoot)&&e.jsx("code",{children:B.cwd??B.projectRoot})]}),he&&e.jsx("div",{className:`sys-broker-action-status sys-broker-action-status--${_}`,role:"status",children:he})]});return e.jsxs("aside",{className:"sys-panel sys-broker-inspector","aria-label":"Dispatch route inspector",children:[e.jsx("header",{className:"sys-broker-inspector-head",children:e.jsxs("div",{className:"sys-broker-inspector-status",children:[e.jsx("span",{className:`sys-broker-dot sys-broker-dot--${A}`,"aria-hidden":"true"}),e.jsx("strong",{className:`sys-broker-state sys-broker-state--${A}`,children:Le(s)}),e.jsx("code",{title:h,children:h}),e.jsx(J,{value:me,subject:"dispatch context",className:"sys-broker-inspector-copy"}),e.jsx("button",{type:"button",className:"sys-copy-btn sys-broker-inspector-close",onClick:n,title:"Close inspector","aria-label":"Close inspector",children:e.jsx(Me,{size:14,"aria-hidden":"true"})})]})}),e.jsxs("div",{className:"sys-broker-inspector-body",children:[e.jsxs("section",{className:"sys-broker-route-stack","aria-label":"Dispatch route",children:[e.jsxs("div",{className:"sys-broker-route-party",children:[e.jsx("span",{className:"sys-broker-avatar sys-broker-route-avatar","aria-hidden":"true",children:Ie(s.actorName)}),e.jsxs("div",{className:"sys-broker-route-party-copy",children:[e.jsxs("span",{className:"sys-detail-label",children:["From · ",Be(s,"from")]}),e.jsx("strong",{children:s.actorName??"Unknown sender"})]}),s.actorName&&e.jsx(J,{value:s.actorName,subject:"sender"})]}),e.jsx(_s,{className:"sys-broker-route-down",size:17,"aria-hidden":"true"}),e.jsxs("div",{className:"sys-broker-route-party",children:[e.jsx("span",{className:"sys-broker-route-target-icon","aria-hidden":"true",children:e.jsx(Oe,{route:s.route})}),e.jsxs("div",{className:"sys-broker-route-party-copy",children:[e.jsxs("span",{className:"sys-detail-label",children:["To · ",Be(s,"to")]}),e.jsx("code",{title:s.target??"No target",children:s.target??"No target"})]}),s.target&&e.jsx(J,{value:s.target,subject:"target"}),s.conversationId&&e.jsxs("button",{type:"button",className:"sys-broker-route-button",onClick:()=>We(a,{view:"conversation",conversationId:s.conversationId},{returnTo:o}),children:[e.jsx(Xe,{size:11,"aria-hidden":"true"}),"Route"]})]})]}),e.jsxs("section",{className:"sys-broker-payload",children:[c?e.jsx(jr,{attempt:s}):e.jsx(xr,{payload:s.detail}),j&&!c&&w&&e.jsxs("div",{className:"sys-broker-inspector-error",role:"status",children:[e.jsx("span",{className:"sys-broker-inspector-error-label",children:"Error"}),e.jsx("p",{children:w})]})]}),e.jsx(Ts,{attempt:s,targetAgentId:be||null,navigate:a,returnTo:o}),e.jsxs("section",{className:"sys-broker-actions","aria-label":"Dispatch actions",children:[j&&Ge,e.jsxs("div",{className:"sys-broker-intents",children:[e.jsxs("button",{type:"button",className:`sys-broker-intent${j?"":" sys-broker-intent--primary"}`,disabled:N==="sending",onClick:()=>{bs()},children:[N==="sending"?e.jsx(ke,{size:13,className:"sys-broker-action-spinner","aria-hidden":"true"}):T?e.jsx(Xe,{size:13,"aria-hidden":"true"}):e.jsx(is,{size:13,"aria-hidden":"true"}),N==="sending"?"Asking Scout…":T?"Open investigation":"Investigate with Scout"]}),e.jsxs("button",{type:"button",className:"sys-broker-intent","aria-expanded":M,onClick:()=>M?Ke():hs(),children:[e.jsx(Te,{size:13,"aria-hidden":"true"}),"Forward to agent…"]})]}),ce&&e.jsx("div",{className:`sys-broker-action-status sys-broker-action-status--${N}`,role:"status",children:ce}),M&&e.jsxs("div",{className:"sys-broker-forward-draft",children:[e.jsxs("div",{className:"sys-broker-forward-draft-head",children:[e.jsx("span",{className:"sys-broker-action-label",children:"Forward to agent"}),e.jsx("button",{type:"button",className:"sys-broker-forward-discard",onClick:Ke,children:"Discard"})]}),e.jsxs("form",{className:"sys-broker-message-composer",onSubmit:r=>{r.preventDefault(),Je()},children:[e.jsx("textarea",{ref:qe,id:"dispatch-message-input","aria-label":"Forward message",value:ne,rows:3,placeholder:`What should ${te?.id===u?"Scout":te?.name??"this agent"} investigate or do?`,disabled:g==="sending",onChange:r=>{v(r.target.value),g!=="idle"&&(S("idle"),E(null))},onKeyDown:r=>{r.key==="Enter"&&(r.metaKey||r.ctrlKey)&&(r.preventDefault(),Je())}}),l.length>0&&e.jsx("div",{className:"sys-broker-composer-attachments","aria-label":"Attachments",children:l.map((r,i)=>e.jsxs("span",{children:[e.jsx(Us,{size:10,"aria-hidden":"true"}),e.jsx("span",{title:r.name,children:r.name}),e.jsx("button",{type:"button",onClick:()=>d(m=>m.filter((x,X)=>X!==i)),"aria-label":`Remove ${r.name}`,children:e.jsx(Me,{size:10,"aria-hidden":"true"})})]},`${r.name}:${r.size}:${i}`))}),e.jsxs("footer",{children:[e.jsxs("div",{className:"sys-broker-composer-left",children:[e.jsx("input",{ref:_e,type:"file",multiple:!0,hidden:!0,disabled:g==="sending",onChange:r=>{ms([...r.target.files??[]]),r.target.value=""}}),e.jsx("button",{type:"button",className:"sys-broker-composer-attach",disabled:g==="sending",onClick:()=>_e.current?.click(),"aria-label":"Attach files",title:"Attach files",children:e.jsx(Js,{size:16,"aria-hidden":"true"})}),e.jsx("span",{className:"sys-broker-message-attachment",title:h,children:"Context + payload attached"})]}),e.jsxs("div",{className:"sys-broker-composer-targets",children:[e.jsx("span",{className:"sys-broker-composer-route-label",children:"To"}),e.jsxs("label",{title:"Forward target",children:[e.jsx("span",{children:"Agent"}),e.jsx("select",{"aria-label":"Forward target",value:C,disabled:g==="sending"||ge.length===0,onChange:r=>{const i=k.find(m=>m.id===r.target.value)??null;ye.current=!0,U(r.target.value),i&&(V(i.projectRoot?.trim()||i.cwd?.trim()||""),se(i.harness?.trim()||""),Y(i.model?.trim()||"")),S("idle"),E(null)},children:ge.length===0?e.jsx("option",{value:"",children:"No agents"}):ge.map(r=>e.jsx("option",{value:r.id,children:r.id===u?"Scout":r.name},r.id))})]}),e.jsxs("button",{type:"button",className:"sys-broker-forward-adjust-toggle","aria-expanded":Q,onClick:()=>de(r=>!r),children:["Adjust",e.jsx(Ze,{size:11,"aria-hidden":"true"})]}),e.jsx(xs,{className:"sys-broker-composer-mic",disabled:g==="sending",onAppend:r=>v(i=>i.trim()?`${i.trimEnd()} ${r}`:r),onError:r=>{S("failed"),E(r)}})]}),e.jsx("button",{type:"submit",className:"sys-broker-composer-send",disabled:!ne.trim()||!te||g==="sending","aria-label":`Ask ${te?.name??"recipient"} about this dispatch`,children:g==="sending"?e.jsx(ke,{size:14,className:"sys-broker-action-spinner","aria-hidden":"true"}):e.jsx(Hs,{size:14,"aria-hidden":"true"})})]}),Q&&e.jsxs("div",{className:"sys-broker-composer-targets sys-broker-forward-adjust",children:[e.jsxs("label",{title:"Project target",children:[e.jsx("span",{children:"Project"}),e.jsxs("select",{"aria-label":"Project target",value:$,disabled:g==="sending",onChange:r=>{const i=r.target.value,m=k.find(x=>!i||(x.projectRoot?.trim()||x.cwd?.trim())===i)??null;ye.current=!0,V(i),m&&(U(m.id),se(m.harness?.trim()||""),Y(m.model?.trim()||""))},children:[e.jsx("option",{value:"",children:"Any project"}),us.map(r=>e.jsx("option",{value:r.path,children:r.label},r.path))]})]}),e.jsx(Ss,{catalog:$e,value:{harness:I,model:W,effort:P},onChange:r=>{ye.current=!0,se(r.harness),Y(r.model),oe(r.effort)},disabled:g==="sending"})]})]}),K&&e.jsx("div",{className:`sys-broker-action-status sys-broker-action-status--${g}`,role:"status",children:K})]})]}),e.jsxs("details",{className:"sys-broker-technical",children:[e.jsxs("summary",{children:[e.jsx("span",{children:"Technical details"}),e.jsx(Ze,{size:13,"aria-hidden":"true"})]}),e.jsxs("dl",{className:"sys-broker-delivery-grid",children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Channel"}),e.jsx("dd",{children:Pe(s.route)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Latency"}),e.jsx("dd",{className:"sys-broker-delivery-accent",children:ss(s)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Sent"}),e.jsx("dd",{children:Ae(F)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:j?"Failed":"Delivered"}),e.jsx("dd",{children:Ae(y)})]})]}),e.jsxs("div",{className:"sys-broker-record-head",children:[e.jsx("span",{className:"sys-detail-label",children:"Record"}),e.jsx(J,{value:ps,subject:"record as JSON",className:"sys-broker-metadata-copy"})]}),e.jsx("div",{className:"sys-broker-inspector-rows",children:p.map(r=>e.jsxs("div",{className:"sys-broker-inspector-row",children:[e.jsx("span",{className:"sys-detail-label",children:r.label}),e.jsx("code",{className:"sys-detail-value",children:r.value}),e.jsx(J,{value:r.value,subject:r.label.toLowerCase()})]},r.label))}),e.jsxs("div",{className:"sys-broker-metadata",children:[e.jsxs("div",{className:"sys-broker-metadata-head",children:[e.jsx("span",{className:"sys-detail-label",children:"Metadata"}),e.jsx(J,{value:b,subject:"metadata",className:"sys-broker-metadata-copy"})]}),e.jsx(Ms,{metadata:s.metadata,rawJson:b})]}),!j&&Ge]})]})]})}const kr=zs({id:"dispatch",label:"Dispatch",route:{view:"broker"},webPath:"/dispatch",screen:"BrokerScreen",embed:{path:"/embed/dispatch",profile:"macos.dispatch",rootClassName:"s-broker-embed",chrome:{showSecondaryNav:!1,showPageStatusBar:!1},ownsInternalRoutes:!0,resolveEmbedProps:s=>{const a=s.get("attempt")?.trim();return a?{initialAttemptId:a}:{}},hosts:{macos:!0}}}),oa=Object.freeze(Object.defineProperty({__proto__:null,BrokerAttemptInspector:ds,BrokerScreen:br,scoutSurface:kr},Symbol.toStringTag,{value:"Module"}));export{ds as B,br as a,De as b,oa as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{G as n,j as a,k as o}from"./index-BFbLvCJn.js";import{C as l}from"./CrewAvatar-a_C_F9r_.js";import{C as g}from"./check-BM6QtbB7.js";function C({selectedSlug:r,onSelect:c,size:i=44}){const e=n("crew");return a.jsxs("div",{className:"s-settings-cast-grid",role:"group","aria-label":"Character assignment",children:[o.map(s=>{const t=r?.toLowerCase()===s.slug.toLowerCase();return a.jsxs("button",{type:"button",className:"s-settings-cast-choice","data-cast-slug":s.slug,"data-active":t||void 0,"aria-pressed":t,onClick:()=>c(s.slug),children:[a.jsx(l,{slug:s.slug,size:i,ring:t,state:t?"working":"idle"}),a.jsx("span",{className:"s-settings-cast-name",children:s.name}),a.jsx("span",{className:"s-settings-cast-title",children:s.title}),t&&a.jsx(g,{className:"s-settings-cast-check",size:14,"aria-hidden":!0})]},s.slug)}),e?a.jsxs("span",{className:"s-cast-picker-coverage","aria-hidden":!0,children:[e.covered," of ",e.total," cast"]}):null]})}export{C};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.s-settings-cast-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:var(--space-sm);margin-top:var(--space-sm)}.s-settings-cast-choice{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-md) var(--space-sm);border:1px solid var(--hud-border);border-radius:var(--hud-radius);background:var(--hud-surface);cursor:pointer;transition:all .15s ease;position:relative}.s-settings-cast-choice:hover{border-color:color-mix(in srgb,var(--hud-border) 60%,white 40%);background:color-mix(in srgb,var(--hud-surface) 85%,white 15%)}.s-settings-cast-choice[data-active]{border-color:color-mix(in srgb,var(--hud-border) 35%,white 65%);background:color-mix(in srgb,var(--hud-surface) 80%,white 20%);box-shadow:0 0 0 1px color-mix(in srgb,var(--hud-border) 35%,white 65%),0 2px 8px #00000040}.s-settings-cast-name{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;color:var(--ink)}.s-settings-cast-title{font-family:var(--font-sans);font-size:var(--text-2xs);color:var(--muted);text-align:center;line-height:1.2}.s-settings-cast-check{position:absolute;top:6px;right:6px;color:var(--hud-ink)}.s-cast-picker-coverage{grid-column:1 / -1;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--muted)}.agent-config-cast{margin-top:var(--space-md)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as n,j as t}from"./index-BFbLvCJn.js";import{u as V}from"./ComposerAttachments-9uYp_Lh5.js";import{ChatRichInput as X}from"./ChatRichInput-DYJRhGTP.js";import{u as G}from"./chat-transport-CtxnPLMU.js";import{MemberAvatar as D}from"./ChatAvatar-BsAOShUr.js";import{w as _,d as H,b as k,a as L,E as J}from"./chat-space-model-aW3Fd8_U.js";import{X as Y}from"./x-BcfhXYiF.js";import{P as Z,A as T}from"./paperclip-DLf_ABSv.js";import{c as v}from"./createLucideIcon-CKbjXlwv.js";import{C as ee}from"./chevron-down-DEDSNJNY.js";import{L as te}from"./loader-circle-CCG7hG7z.js";import{A as ae}from"./arrow-up-DFy-9ghF.js";import"./media-blobs-Bi8pxr1u.js";import"./api-DSqpVKC7.js";import"./file-text-BOJQiS8p.js";import"./message-markup-BQW5jdJw.js";import"./chat-api-BHGHALv2.js";import"./SpriteAvatar-D53GaaK3.js";import"./agent-state-DDhnFEEP.js";import"./colors-CFlbwC25.js";const se=[["path",{d:"M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8",key:"mg9rjx"}]],oe=v("bold",se);const ne=[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]],re=v("code",ne);const le=[["line",{x1:"19",x2:"10",y1:"4",y2:"4",key:"15jd3p"}],["line",{x1:"14",x2:"5",y1:"20",y2:"20",key:"bu0au3"}],["line",{x1:"15",x2:"9",y1:"4",y2:"20",key:"uljnxc"}]],ie=v("italic",le);const ce=[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]],pe=v("list",ce);function O(l,o){const u=l.slice(0,o),i=u.lastIndexOf("@");if(i<0||i>0&&!/\s/u.test(u[i-1]??""))return null;const d=u.slice(i+1);return/\n/u.test(d)||d.split(" ").length>3?null:{start:i,text:d}}function he(l,o){const u=Math.max(0,Math.min(o,l.length)),i=l.slice(0,u),d=i.length>0&&!/\s$/u.test(i)?" ":"",N=`${i}${d}@`;return{next:`${N}${l.slice(u)}`,caret:N.length}}function Pe({members:l,draft:o,onDraftChange:u,askTargetId:i,onAskTargetChange:d,onSend:N,sending:r,error:E,placeholder:q,variant:b="channel",autoFocus:W=!1}){const c=n.useRef(null),F=n.useRef(null),[m,j]=n.useState(null),[M,I]=n.useState(0),[C,w]=n.useState(!1),p=G(),s=V(),$=n.useMemo(()=>p.asks?l.filter(_):[],[p.asks,l]),B=n.useMemo(()=>l.filter(H),[l]),x=n.useMemo(()=>l.find(e=>e.actorId===i)??null,[l,i]),f=n.useMemo(()=>{if(!m)return[];const e=m.text.trim().toLowerCase();return[...l.filter(h=>k(h).toLowerCase().includes(e)||h.displayName.toLowerCase().includes(e))].sort((h,y)=>Number(L(y))-Number(L(h))).slice(0,8)},[l,m]);n.useEffect(()=>{I(0)},[m?.text]),n.useEffect(()=>{W&&c.current?.focus()},[W]);const S=n.useCallback(e=>{w(!1),e==="toggle"?F.current?.focus():c.current?.focus()},[]),A=n.useCallback(e=>{const a=c.current,h=a?.textBeforeCaret()??o,y=m??O(h,h.length),g=k(e);a?y?a.replaceMention(y.start,g):a.insertText(`${h.endsWith(" ")||h===""?"":" "}@${g} `):u(`${o}${o.endsWith(" ")||o===""?"":" "}@${g} `),p.asks&&_(e)&&d(e.actorId),j(null)},[p.asks,o,d,u,m]),Q=n.useCallback(()=>{const e=c.current,a=e?.textBeforeCaret()??o,h=a.length>0&&!/\s$/u.test(a)?" ":"";if(e?.insertText(`${h}@`),e){const y=e.textBeforeCaret();j({start:Math.max(0,y.length-1),text:""})}else{const{next:y,caret:g}=he(o,o.length);u(y),j({start:g-1,text:""})}w(!1),requestAnimationFrame(()=>c.current?.focus())},[o,u]),z=!r&&(o.trim().length>0||s.hasFiles),P=n.useCallback(()=>{if(r||!o.trim()&&!s.hasFiles)return;const e=s.files;Promise.resolve(N(e)).then(a=>{a!==!1&&s.clear()})},[s,o,N,r]),U=n.useCallback(e=>{if(!(e.nativeEvent.isComposing||e.nativeEvent.keyCode===229)){if(m&&f.length>0){if(e.key==="ArrowDown"){e.preventDefault(),I(a=>(a+1)%f.length);return}if(e.key==="ArrowUp"){e.preventDefault(),I(a=>(a-1+f.length)%f.length);return}if(e.key==="Enter"||e.key==="Tab"){e.preventDefault();const a=f[M];a&&A(a);return}if(e.key==="Escape"){e.preventDefault(),e.stopPropagation(),j(null);return}}if(e.key==="Escape"&&C){e.preventDefault(),e.stopPropagation(),w(!1);return}if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()==="b"){e.preventDefault(),c.current?.applyFormat("bold");return}if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()==="i"){e.preventDefault(),c.current?.applyFormat("italic");return}if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()==="e"){e.preventDefault(),c.current?.applyFormat("code");return}e.key==="Enter"&&!e.shiftKey&&(e.preventDefault(),z&&P())}},[M,A,z,f,C,m,r,P]),K=J(x?k(x):null),R=x?`Send — asks ${k(x)}`:b==="thread"?"Send reply":"Send to the channel";return t.jsxs("div",{className:"chat-composer","data-variant":b,"data-drag":p.attachments&&s.dragActive?"true":void 0,...p.attachments?s.dropHandlers:{},children:[b==="channel"&&x?t.jsxs("div",{className:"chat-ask-target",children:[t.jsx("span",{className:"label-sm",style:{color:"var(--dim)"},children:"Asking"}),t.jsxs("span",{className:"chip chip--sm chip--mono chip--neutral",children:[t.jsx(D,{member:x,size:14}),k(x)]}),t.jsx("button",{type:"button",className:"chat-ask-target-clear",onClick:()=>d(null),"aria-label":"Clear ask target — send as a channel update instead",children:"×"}),K?t.jsx("span",{className:"chat-composer-hint",children:K}):null]}):null,t.jsx(X,{ref:c,value:o,placeholder:q,disabled:r,onChange:e=>{u(e);const a=c.current?.textBeforeCaret()??e;j(O(a,a.length))},onKeyDown:U,onPaste:p.attachments?s.onPaste:void 0,onDragOver:p.attachments?s.dropHandlers.onDragOver:void 0,onDrop:p.attachments?s.dropHandlers.onDrop:void 0,onBlur:()=>j(null)}),p.attachments?t.jsxs(t.Fragment,{children:[t.jsx("input",{ref:s.inputRef,type:"file",multiple:!0,accept:"image/*,video/*,audio/*,.mp4,.webm,.mov,.mp3,.wav,.m4a,.html,.htm,text/html,text/markdown,.md,.markdown,text/plain,.txt",className:"chat-composer-file-input","aria-hidden":"true",tabIndex:-1,onChange:e=>{s.stage([...e.target.files??[]]),e.target.value=""}}),s.files.length>0?t.jsx("div",{className:"chat-composer-files","aria-label":"Attached files",children:s.files.map(e=>t.jsxs("span",{className:"chat-composer-file",children:[t.jsx("span",{children:e.name}),t.jsx("button",{type:"button","aria-label":`Remove ${e.name}`,onClick:()=>s.remove(e),children:t.jsx(Y,{size:12,strokeWidth:2,"aria-hidden":!0})})]},`${e.name}:${e.size}:${e.lastModified}`))}):null,s.error?t.jsx("p",{className:"chat-send-error",role:"alert",children:s.error}):null]}):null,m&&f.length>0?t.jsx("div",{className:"chat-mention-popup",role:"listbox","aria-label":"Mention a member",children:f.map((e,a)=>t.jsxs("button",{type:"button",role:"option","aria-selected":a===M,"data-active":a===M,className:"chat-mention-option",onMouseDown:h=>{h.preventDefault(),A(e)},children:[t.jsx(D,{member:e,size:18}),k(e),t.jsx("span",{className:"chat-mention-kind",children:H(e)?"via API":L(e)?"agent":"person"})]},e.actorId))}):null,C&&b==="channel"&&p.asks?t.jsx("div",{className:"chat-mention-popup",role:"listbox","aria-label":"Choose an agent to ask",onKeyDown:e=>{e.key==="Escape"&&(e.preventDefault(),e.stopPropagation(),S("toggle"))},children:$.length===0&&B.length===0?t.jsx("div",{className:"chat-side-empty",children:"No agent has joined this channel yet. Invite one from the Invite sheet."}):t.jsxs(t.Fragment,{children:[$.map(e=>t.jsxs("button",{type:"button",role:"option","aria-selected":e.actorId===i,"data-active":e.actorId===i,className:"chat-mention-option",onClick:()=>{d(e.actorId),S("input")},children:[t.jsx(D,{member:e,size:18}),k(e),t.jsx("span",{className:"chat-mention-kind",children:e.reception.summary.toLowerCase()})]},e.actorId)),B.map(e=>t.jsxs("button",{type:"button",role:"option","aria-selected":!1,"aria-disabled":"true",disabled:!0,className:"chat-mention-option",children:[t.jsx(D,{member:e,size:18}),k(e),t.jsx("span",{className:"chat-mention-kind",children:"via API — post to reach it"})]},e.actorId)),$.length===0?t.jsx("div",{className:"chat-side-empty",children:"API participants read posts when they poll. Send a channel message instead."}):null]})}):null,E?t.jsx("p",{className:"chat-send-error",role:"alert",children:E}):null,t.jsxs("div",{className:"chat-composer-foot",children:[t.jsxs("span",{className:"chat-composer-tools",children:[p.attachments?t.jsx("button",{type:"button",className:"chat-composer-tool chat-composer-tool--icon",onClick:s.openPicker,disabled:r,"aria-label":"Attach a file",title:"Attach a file",children:t.jsx(Z,{size:14,strokeWidth:2,"aria-hidden":!0})}):null,t.jsx("button",{type:"button",className:"chat-composer-tool chat-composer-tool--icon",onClick:Q,disabled:r,"aria-label":"Mention a member",title:"Mention a member",children:t.jsx(T,{size:14,strokeWidth:2,"aria-hidden":!0})}),t.jsx("button",{type:"button",className:"chat-composer-tool chat-composer-tool--icon",onMouseDown:e=>{e.preventDefault(),c.current?.applyFormat("bold")},disabled:r,"aria-label":"Bold",title:"Bold",children:t.jsx(oe,{size:14,strokeWidth:2,"aria-hidden":!0})}),t.jsx("button",{type:"button",className:"chat-composer-tool chat-composer-tool--icon",onMouseDown:e=>{e.preventDefault(),c.current?.applyFormat("italic")},disabled:r,"aria-label":"Italic",title:"Italic",children:t.jsx(ie,{size:14,strokeWidth:2,"aria-hidden":!0})}),t.jsx("button",{type:"button",className:"chat-composer-tool chat-composer-tool--icon",onMouseDown:e=>{e.preventDefault(),c.current?.applyFormat("code")},disabled:r,"aria-label":"Code",title:"Code",children:t.jsx(re,{size:14,strokeWidth:2,"aria-hidden":!0})}),t.jsx("button",{type:"button",className:"chat-composer-tool chat-composer-tool--icon",onMouseDown:e=>{e.preventDefault(),c.current?.applyFormat("list")},disabled:r,"aria-label":"List",title:"List",children:t.jsx(pe,{size:14,strokeWidth:2,"aria-hidden":!0})}),b==="channel"&&p.asks?t.jsxs("button",{ref:F,type:"button",className:"chat-composer-tool","data-active":C,"aria-expanded":C,"aria-haspopup":"listbox",disabled:r,onClick:()=>w(e=>!e),children:[x?"Change agent":"Ask an agent",t.jsx(ee,{size:12,strokeWidth:2,"aria-hidden":!0})]}):null]}),t.jsxs("span",{className:"chat-composer-right",children:[t.jsx("span",{className:"chat-enter",children:b==="thread"?"↵ send":"↵ send · ⇧↵ newline"}),t.jsx("button",{type:"button",className:"chat-composer-send",onClick:P,disabled:!z,"aria-label":r?"Sending…":R,title:r?"Sending…":R,children:r?t.jsx(te,{size:15,strokeWidth:2.2,className:"chat-composer-spin","aria-hidden":!0}):t.jsx(ae,{size:16,strokeWidth:2.4,"aria-hidden":!0})})]})]})]})}export{Pe as ChannelComposer,he as mentionInsertion};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r,j as e}from"./index-BFbLvCJn.js";import{u as $}from"./chat-transport-CtxnPLMU.js";import{MemberCoin as E}from"./ChatAvatar-BsAOShUr.js";import{SpaceSwitcher as _}from"./SpaceSwitcher-WccPJ0fS.js";import{c as I}from"./chat-space-model-aW3Fd8_U.js";import"./chat-api-BHGHALv2.js";import"./api-DSqpVKC7.js";import"./SpriteAvatar-D53GaaK3.js";import"./agent-state-DDhnFEEP.js";import"./colors-CFlbwC25.js";const J=[{value:"dark",label:"Dark"},{value:"light",label:"Light"},{value:"system",label:"System"}];function M(s,c,i){if(!s)return;const l=Array.from(s.querySelectorAll("[data-side-row]")),u=l.indexOf(c);if(u<0)return;l[(u+i+l.length)%l.length]?.focus()}function P(s){return s.replace(/^#/u,"").trim().slice(0,1).toLowerCase()||"?"}function Q({viewerName:s,viewerIsHost:c,railed:i,themePreference:l,onOpenProfile:u,onThemePreference:x,onSignOut:d}){const w=$(),[o,n]=r.useState(!1),m=r.useRef(null);r.useEffect(()=>{if(!o)return;m.current?.querySelector(".chat-you-menu button")?.focus();const t=y=>{const j=y.target;j instanceof Node&&m.current?.contains(j)||n(!1)};return document.addEventListener("pointerdown",t),()=>document.removeEventListener("pointerdown",t)},[o]);const f=r.useCallback(t=>{n(!1),t()},[]);return e.jsxs("div",{className:"chat-sidebar-identity",ref:m,onKeyDown:t=>{t.key==="Escape"&&o&&(t.preventDefault(),t.stopPropagation(),n(!1),m.current?.querySelector(".chat-you")?.focus())},children:[o?e.jsxs("div",{className:"chat-you-menu",role:"group","aria-label":`${s} menu`,children:[e.jsxs("div",{className:"chat-you-menu-head",children:[e.jsx(E,{name:s,size:28,title:s}),e.jsx("span",{className:"chat-you-menu-name",children:s})]}),e.jsx("div",{className:"chat-you-menu-rule"}),u?e.jsx("button",{type:"button",className:"chat-you-menu-item",onClick:()=>f(u),children:"Your member card"}):null,e.jsxs("div",{className:"chat-you-menu-group",role:"group","aria-label":"Appearance",children:[e.jsx("span",{className:"label-sm",children:"Appearance"}),e.jsx("div",{className:"chat-you-themes",children:J.map(t=>e.jsx("button",{type:"button",className:"btn btn--sm","aria-pressed":l===t.value,"data-active":l===t.value,onClick:()=>x(t.value),children:t.label},t.value))})]}),w.signOut?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"chat-you-menu-rule"}),e.jsx("button",{type:"button",className:"chat-you-menu-item",onClick:()=>f(d),children:"Sign out"})]}):null]}):null,e.jsxs("button",{type:"button",className:"chat-you","aria-expanded":o,"aria-label":i?`${s} — account menu`:void 0,onClick:()=>n(t=>!t),children:[e.jsx(E,{name:s,size:24,title:s}),i?null:e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"chat-you-who",children:[e.jsx("span",{className:"chat-you-name",children:s}),c?e.jsx("span",{className:"label-sm chat-you-role",children:"Host"}):null]}),e.jsx("span",{className:"chat-you-caret","aria-hidden":"true",children:o?"⌄":"⌃"})]})]})]})}function re({channels:s,directs:c,spaces:i,activeSpace:l,selectedId:u,addressedChannelIds:x,canCreate:d,viewerName:w,viewerIsHost:o,railed:n,themePreference:m,onSelect:f,onSelectSpace:t,onCreate:y,onCreateSpace:j,onDeleteSpace:Y,onInvite:A,onExpandRail:F,onOpenProfile:B,onThemePreference:G,onSignOut:U}){const T=$(),g=r.useRef(null),[L,N]=r.useState(!1),[C,O]=r.useState(""),[D,K]=r.useState(""),[k,R]=r.useState(!1),S=r.useCallback(async()=>{const a=C.trim();if(!(!a||k)){R(!0);try{await y({title:a,topic:D.trim()}),O(""),K(""),N(!1)}finally{R(!1)}}},[k,y,C,D]),v=(a,p)=>{const H=x.has(a.id),b=p?a.title.replace(/^#/u,""):a.title;return e.jsxs("button",{type:"button","data-side-row":!0,className:n?"chat-rail-row":"chat-side-row","aria-label":p?I(a.title):b,"aria-current":a.id===u,"data-addressed":H,title:n?p?I(a.title):b:void 0,onClick:()=>f(a.id),onKeyDown:h=>{h.key==="ArrowDown"?(h.preventDefault(),M(g.current,h.currentTarget,1)):h.key==="ArrowUp"&&(h.preventDefault(),M(g.current,h.currentTarget,-1))},children:[n?p?e.jsxs("span",{className:"chat-rail-glyph",children:[e.jsx("span",{className:"chat-hash",children:"#"}),P(a.title)]}):e.jsx(E,{name:b,size:22,title:b}):e.jsxs(e.Fragment,{children:[p?e.jsx("span",{className:"chat-hash",children:"#"}):null,e.jsx("span",{className:"chat-row-name",children:b})]}),H?e.jsx("span",{className:"dot dot--accent dot--sm","aria-label":"Addressed to you, unanswered"}):null]},a.id)},q=i.length>0?e.jsx(_,{spaces:i,activeSlug:l,canCreate:d&&T.spaceCreate,railed:n,onSelect:t,onCreate:j,onDelete:d?Y:null,onExpandRail:F}):null,z=e.jsx(Q,{viewerName:w,viewerIsHost:o,railed:n,themePreference:m,onOpenProfile:B,onThemePreference:G,onSignOut:U});return n?e.jsxs("nav",{className:"chat-sidebar","data-railed":"true",ref:g,"aria-label":"Channels and direct messages",onDoubleClick:a=>{a.target.closest("button, a, [role='button']")||F()},children:[q,e.jsxs("div",{className:"chat-side-list",children:[s.map(a=>v(a,!0)),c.length>0?e.jsx("div",{className:"chat-rail-rule"}):null,c.map(a=>v(a,!1))]}),e.jsx("div",{className:"chat-sidebar-foot",children:e.jsx("button",{type:"button",className:"chat-rail-row","aria-label":"Invite someone",onClick:A,children:e.jsx("span",{className:"chat-rail-glyph",children:"+"})})}),z]}):e.jsxs("nav",{className:"chat-sidebar",ref:g,"aria-label":"Channels and direct messages",children:[q,e.jsxs("div",{className:"chat-side-list",children:[e.jsxs("div",{className:"chat-side-section",children:[e.jsx("span",{className:"label-md",children:"Channels"}),d&&T.channelCreate?e.jsx("button",{type:"button",className:"chat-side-add","aria-label":"Create a channel","aria-expanded":L,onClick:()=>N(a=>!a),children:"+"}):null]}),L?e.jsxs("div",{className:"chat-create-form",children:[e.jsx("input",{className:"chat-input",value:C,autoFocus:!0,placeholder:"channel-name","aria-label":"Channel name",onChange:a=>O(a.target.value),onKeyDown:a=>{a.key==="Enter"?(a.preventDefault(),S()):a.key==="Escape"&&(a.preventDefault(),N(!1))}}),e.jsx("input",{className:"chat-input",value:D,placeholder:"Topic (optional)","aria-label":"Channel topic",onChange:a=>K(a.target.value),onKeyDown:a=>{a.key==="Enter"&&(a.preventDefault(),S())}}),e.jsxs("div",{className:"chat-create-actions",children:[e.jsx("button",{type:"button",className:"btn btn--sm",disabled:k||!C.trim(),onClick:()=>{S()},children:k?"Creating…":"Create"}),e.jsx("button",{type:"button",className:"btn btn--ghost btn--sm",onClick:()=>N(!1),children:"Cancel"})]})]}):null,s.length===0?e.jsx("p",{className:"chat-side-empty",children:d?`No channels in ${i.find(a=>a.slug===l)?.title??"this space"} yet. Create one to get started.`:"You are not in any channel yet. Open the invitation you were sent."}):s.map(a=>v(a,!0)),c.length>0?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"chat-side-section",children:e.jsx("span",{className:"label-md",children:"Direct messages"})}),c.map(a=>v(a,!1))]}):null]}),e.jsx("div",{className:"chat-sidebar-foot",children:e.jsx("button",{type:"button",className:"btn btn--ghost btn--sm",onClick:A,children:"+ Invite"})}),z]})}export{re as ChannelSidebar};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as u,j as e,k as w,h as E,l as N}from"./index-BFbLvCJn.js";import{C as _}from"./CrewSprite-CguHb2Ny.js";const y=16,M=.05,k=.01,P=.01;function v(t,i,s,a){const x=t-s,l=i+y*x,c=Math.exp(-y*a),r=s+(x+l*a)*c,o=(i-y*l*a)*c;return Math.abs(r-s)<k&&Math.abs(o)<P?[s,0]:[r,o]}function g(t,i,s){if(!Number.isFinite(s)||s<=0)return{...t};if(!Number.isFinite(i.x)||!Number.isFinite(i.y))return{...t};if(![t.x,t.y,t.vx,t.vy].every(Number.isFinite))return{...i,vx:0,vy:0};const a=Math.min(s,M),[x,l]=v(t.x,t.vx,i.x,a),[c,r]=v(t.y,t.vy,i.y,a);return{x,y:c,vx:l,vy:r}}function S({slug:t,name:i,pixel:s,paused:a,expression:x}){const l=u.useRef(null),c=u.useRef(null),r=u.useRef({x:0,y:0,vx:0,vy:0}),o=u.useRef(null),m=u.useRef(a);m.current=a,u.useEffect(()=>{const n=window.matchMedia("(prefers-reduced-motion: reduce)");let p=0,d=performance.now();const b=j=>{const C=Math.min(.05,(j-d)/1e3);if(d=j,!document.hidden&&!o.current&&!m.current){r.current=n.matches?{x:0,y:0,vx:0,vy:0}:g(r.current,{x:0,y:0},C);const f=r.current;c.current&&(c.current.style.transform=`translate(${f.x}px, ${f.y}px) rotate(${Math.max(-6,Math.min(6,f.vx*.018))}deg)`)}p=requestAnimationFrame(b)};return p=requestAnimationFrame(b),()=>cancelAnimationFrame(p)},[]);const h=!s||E(t);return e.jsxs("figure",{children:[e.jsx("div",{className:"character-family-preview__stage",ref:l,role:"button",tabIndex:h?0:-1,"aria-label":`Nudge ${i}`,"aria-disabled":!h||a,onKeyDown:n=>{h&&!a&&(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),r.current={x:12,y:-22,vx:0,vy:0})},onPointerDown:n=>{!h||m.current||n.button!==0||(o.current={id:n.pointerId,x:n.clientX-r.current.x,y:n.clientY-r.current.y},n.currentTarget.setPointerCapture(n.pointerId))},onPointerMove:n=>{if(o.current?.id!==n.pointerId)return;const p=Math.max(-35,Math.min(35,n.clientX-o.current.x)),d=Math.max(-45,Math.min(12,n.clientY-o.current.y));r.current={x:p,y:d,vx:0,vy:0},c.current&&(c.current.style.transform=`translate(${p}px, ${d}px)`)},onPointerUp:n=>{o.current?.id===n.pointerId&&(o.current=null,n.currentTarget.releasePointerCapture(n.pointerId))},onPointerCancel:()=>{o.current=null},children:h?e.jsx("span",{ref:c,className:"character-family-preview__moving",children:e.jsx(_,{slug:t,pixel:s,size:s?88:155,paused:a,expression:x})}):e.jsx("span",{className:"character-family-preview__missing",children:"No chip artwork yet"})}),e.jsx("figcaption",{children:i}),!s&&N[t]?e.jsx("small",{children:"Eye expressions available"}):null]})}function R({onClose:t}){const[i,s]=u.useState(!1),[a,x]=u.useState(!1),[l,c]=u.useState("rest");return e.jsxs("section",{className:"character-family-preview","aria-label":"Character family preview",children:[e.jsxs("header",{children:[e.jsxs("div",{children:[e.jsx("strong",{children:"The crew"}),e.jsx("p",{children:"Original identities · expressions · shared movement"})]}),e.jsx("button",{type:"button",onClick:t,"aria-label":"Close character preview",children:"×"})]}),e.jsxs("div",{className:"character-family-preview__poses",role:"group","aria-label":"Character artwork",children:[e.jsx("button",{type:"button","aria-pressed":!i,onClick:()=>s(!1),children:"Crew"}),e.jsx("button",{type:"button","aria-pressed":i,onClick:()=>s(!0),children:"Pixel Chip"}),e.jsx("button",{type:"button",onClick:()=>x(!a),children:a?"Resume motion":"Pause motion"})]}),i?null:e.jsx("div",{className:"character-family-preview__poses",role:"group","aria-label":"Eye expression",children:["rest","look-left","look-up","look-right"].map(r=>e.jsx("button",{type:"button","aria-pressed":r===l,onClick:()=>c(r),children:r.replace("look-","Look ")},r))}),e.jsx("div",{className:"character-family-preview__cast",children:w.map(r=>e.jsx(S,{slug:r.slug,name:r.name,pixel:i,paused:a,expression:l},r.slug))}),e.jsx("p",{children:"Drag a character gently and release. This tests shared spring motion; full-body action sprites and accessories come next."})]})}export{R as CharacterFamilyPreview};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.character-family-preview{position:absolute;z-index:30;top:60px;right:20px;width:min(500px,calc(100% - 40px));max-height:calc(100% - 90px);overflow:auto;background:#141b19f7;border:1px solid #ffffff20;border-radius:18px;padding:20px;color:#e8edf4;box-shadow:0 20px 60px #0007}.character-family-preview header{display:flex;justify-content:space-between;gap:12px}.character-family-preview strong{font-size:15px}.character-family-preview p{font-size:12px;line-height:1.5;color:#9daaa4}.character-family-preview button{border:0;border-radius:6px;background:transparent;color:inherit;cursor:pointer;padding:7px 9px}.character-family-preview button:hover{background:#ffffff0c}.character-family-preview__poses{display:flex;gap:4px;flex-wrap:wrap;margin:10px 0}.character-family-preview__poses button{font-size:12px;text-transform:capitalize}.character-family-preview__poses button[aria-pressed=true]{background:#bedf9230;color:#d9edbe}.character-family-preview__cast{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.character-family-preview figure{margin:0;text-align:center}.character-family-preview figcaption{font-size:12px;margin-top:8px}.character-family-preview{width:min(760px,calc(100% - 40px))}.character-family-preview__cast{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:20px 12px}.character-family-preview__stage{height:165px;display:grid;place-items:center;cursor:grab;touch-action:none}.character-family-preview__stage:active{cursor:grabbing}.character-family-preview__missing,.character-family-preview small{font-size:10px;color:#93a298}.character-family-preview small{display:block;margin-top:4px}.character-family-preview button:focus-visible{outline:2px solid #bedf92;outline-offset:2px}.character-family-preview{background:#141b19;top:20px;max-height:calc(100% - 40px)}.character-family-preview__stage:focus-visible{outline:2px solid #bedf92;outline-offset:2px;border-radius:12px}.character-family-preview__moving{display:inline-block;transform-origin:50% 85%;pointer-events:none}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as i}from"./index-BFbLvCJn.js";import{a as o,S as c}from"./SpriteAvatar-D53GaaK3.js";import{a as l}from"./colors-CFlbwC25.js";import{a as h,n as p,b as u}from"./chat-space-model-aW3Fd8_U.js";import"./agent-state-DDhnFEEP.js";function s(t){return`color-mix(in srgb, var(--muted) 82%, ${l(t)})`}function d({name:t,size:a=24,className:n,title:e}){const r={width:a,height:a,background:s(t),fontSize:Math.max(7,Math.round(a*.38))};return i.jsx("span",{className:`chat-coin${n?` ${n}`:""}`,style:r,title:e,children:p(t)})}function x({member:t,size:a=24,className:n}){const e=o({harness:t.harness??null,state:t.activity?.status??null}),r=t.owner?.displayName?.trim()||null;return i.jsxs("span",{className:`chat-sprite${n?` ${n}`:""}`,style:{width:a,height:a},title:u(t),children:[i.jsx(c,{name:t.displayName||t.actorId,size:a,...e.hue===void 0?{}:{hue:e.hue},tone:e.tone,tile:!0}),r?i.jsx("span",{className:"chat-sprite-owner",style:{background:s(r),width:Math.max(10,Math.round(a*.46)),height:Math.max(10,Math.round(a*.46)),fontSize:Math.max(5,Math.round(a*.24))},"aria-hidden":"true",children:r.slice(0,1).toUpperCase()}):null]})}function f({member:t,size:a=24,className:n}){return h(t)?i.jsx(x,{member:t,size:a,...n?{className:n}:{}}):i.jsx(d,{name:t.displayName||t.actorId,size:a,...n?{className:n}:{},title:t.displayName})}function N({members:t,countLabel:a,onOpen:n}){const e=t.slice(0,4);return i.jsxs("button",{type:"button",className:"chat-facepile",onClick:n,"aria-label":`Members: ${a}`,children:[i.jsx("span",{className:"chat-facepile-faces",children:e.map(r=>i.jsx(f,{member:r,size:20,className:"chat-facepile-face"},r.actorId))}),i.jsx("span",{className:"chat-pile-count",children:a})]})}export{x as AgentSprite,N as Facepile,f as MemberAvatar,d as MemberCoin,s as coinFill};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as o,j as e}from"./index-BFbLvCJn.js";import{c as M}from"./clipboard-e3fSpeo7.js";import{s as D}from"./MessageEmbeds-B-FbWI7a.js";import{a as U}from"./chat-api-BHGHALv2.js";import{ChatMessageMarkup as W}from"./chat-message-markup-esR-YLtN.js";import{u as z}from"./chat-transport-CtxnPLMU.js";import{MemberAvatar as P}from"./ChatAvatar-BsAOShUr.js";import{m as B,b as O,y as S,z as L,A as F,C as K,e as H}from"./chat-space-model-aW3Fd8_U.js";import"./api-DSqpVKC7.js";import"./message-markup-BQW5jdJw.js";import"./SpriteAvatar-D53GaaK3.js";import"./agent-state-DDhnFEEP.js";import"./colors-CFlbwC25.js";const I=["👍","❤️","😂","👀","🎉"],A=["🔥","🙏","👏","😢","😮","🚀","✅","💯","🤔","💡","🙌","✨"],J=[...I,...A];new Set(J);function xe({value:t,label:a,className:r="btn btn--sm",copiedLabel:n="Copied",onCopyFailed:i}){const[d,c]=o.useState(!1),[h,u]=o.useState(!1),m=o.useRef(null);o.useEffect(()=>()=>{m.current&&clearTimeout(m.current)},[]);const b=o.useCallback(()=>{const p=f=>{c(f),u(!f),m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{c(!1),u(!1)},1500)};M(t).then(f=>{p(f),f||i?.()}).catch(()=>{p(!1),i?.()})},[t,i]);return e.jsx("button",{type:"button",className:r,onClick:b,"aria-live":"polite",children:h?"Copy failed — select the text":d?n:a})}function Y({request:t,target:a,withTarget:r,onStop:n}){const i=F(t,a?{label:O(a),reception:a.reception}:null);return e.jsxs("div",{className:"chat-ask-card","data-tone":i.tone,children:[e.jsx("span",{className:"label-sm",children:"Tracked request"}),e.jsx("span",{className:"chip chip--sm chip--mono chip--ghost chat-ask-chip","data-tone":i.tone,"aria-label":i.ariaLabel,children:r?i.textWithTarget:i.text}),i.canStop&&n?e.jsx("button",{type:"button",className:"chat-ask-stop",onClick:()=>n(t.flightId),children:"Stop"}):null]})}const V=/\bhttps?:\/\/[^\s<>"')\]]+/giu;function X(t){const a=new Set,r=[];for(const n of t.matchAll(V)){const i=n[0]?.replace(/[.,;:!?)]+$/u,"")??"";if(!(!i.startsWith("http")||i.includes("/api/blobs/")||a.has(i))&&(a.add(i),r.push(i),r.length>=3))break}return r}function Q({message:t,fallbackLabels:a}){const r=X(t.body);return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"chat-turn-body",children:e.jsx(W,{message:t,fallbackLabels:a})}),r.map(n=>e.jsx(Z,{url:n},n))]})}const C=new Map,R=new Map;function G(t){if(C.has(t))return Promise.resolve(C.get(t)??null);const a=R.get(t);if(a)return a;const r=fetch(`${U}?url=${encodeURIComponent(t)}`,{credentials:"include"}).then(async n=>n.ok?(await n.json()).preview??null:null).catch(()=>null).then(n=>(C.set(t,n),R.delete(t),n));return R.set(t,r),r}function Z({url:t}){const[a,r]=o.useState(()=>C.get(t)??null),[n,i]=o.useState(!1);return o.useEffect(()=>{if(a)return;let d=!1;return G(t).then(c=>{d||r(c)}),()=>{d=!0}},[a,t]),a?e.jsxs("a",{className:"chat-link-card",href:a.url,target:"_blank",rel:"noreferrer",children:[a.imageUrl&&!n?e.jsx("img",{className:"chat-link-card-image",src:a.imageUrl,alt:"",loading:"lazy",decoding:"async",onError:()=>i(!0)}):null,e.jsxs("span",{className:"chat-link-card-copy",children:[a.siteName?e.jsx("span",{className:"chat-link-card-site",children:a.siteName}):null,e.jsx("span",{className:"chat-link-card-title",children:a.title}),a.description?e.jsx("span",{className:"chat-link-card-desc",children:a.description}):null]})]}):null}function je({message:t,members:a,nowMs:r,request:n,replyCount:i,lastReplyAt:d,onOpenThread:c,onOpenMember:h,onReact:u,onCopyLink:m,onStopAsk:b,focused:p=!1,withTargetOnChip:f=!0}){const k=z(),[g,s]=o.useState(!1),l=o.useRef(null),x=B(a,t.actorId),_=n?a.get(n.targetActorId)??null:null,T=O(x),N=k.reactions&&!!u,w=()=>{l.current&&(window.clearTimeout(l.current.timer),l.current=null)};return e.jsxs("article",{className:"chat-turn","data-message-id":t.id,"data-focused":p?"true":void 0,"data-reacting":g?"true":void 0,onPointerDown:j=>{if(!N||j.pointerType==="mouse"||j.target?.closest("button"))return;w();const y=j.clientX,v=j.clientY;l.current={x:y,y:v,timer:window.setTimeout(()=>{l.current=null,s(!0)},450)}},onPointerUp:w,onPointerCancel:w,onPointerMove:j=>{if(!l.current)return;const y=j.clientX-l.current.x,v=j.clientY-l.current.y;y*y+v*v>64&&w()},onContextMenu:j=>{N&&g&&j.preventDefault()},children:[h?e.jsx("button",{type:"button",onClick:()=>h(x.actorId),"aria-label":`Open ${T}'s member card`,children:e.jsx(P,{member:x,size:32})}):e.jsx(P,{member:x,size:32}),e.jsxs("div",{children:[e.jsxs("div",{className:"chat-turn-meta",children:[e.jsx("span",{className:"chat-who",children:T}),m?e.jsx("button",{type:"button",className:"chat-when-link",title:"Copy link to this message","aria-label":"Copy link to this message",onClick:()=>m(t.id),children:e.jsx("time",{className:"chat-when",dateTime:new Date(t.createdAt).toISOString(),children:S(t.createdAt)})}):e.jsx("time",{className:"chat-when",dateTime:new Date(t.createdAt).toISOString(),children:S(t.createdAt)}),N?e.jsx(ae,{message:t,onReact:u,pinned:g,onDismiss:()=>s(!1)}):null]}),e.jsx(Q,{message:t}),e.jsx(ee,{attachments:t.attachments??[]}),n?e.jsx(Y,{request:n,target:_,withTarget:f,onStop:b}):null,k.reactions?e.jsx(te,{message:t,onReact:N?u:void 0}):null,c?e.jsx("button",{type:"button",className:"chat-thread-stub","data-empty":i&&i>0?void 0:"true",onClick:c,"aria-label":i&&i>0?`Open thread, ${L(i,d??null,r)}`:`Reply in thread to ${T}`,children:i&&i>0?`⌵ ${L(i,d??null,r)}`:"⌵ Reply in thread"}):null]})]})}const $=new Map;function q({href:t,name:a}){const[r,n]=o.useState(()=>$.get(t)??null);return e.jsx("a",{className:"chat-attach-image",href:t,target:"_blank",rel:"noreferrer",children:e.jsx("img",{src:t,alt:a,loading:"lazy",decoding:"async",fetchPriority:"low",style:r?{aspectRatio:String(r)}:void 0,onLoad:i=>{const{naturalWidth:d,naturalHeight:c}=i.currentTarget;if(!d||!c)return;const h=d/c;$.set(t,h),n(u=>u===h?u:h)}})})}function ee({attachments:t}){return t.length===0?null:e.jsx("div",{className:"chat-attach",children:t.map(a=>{const r=a.url?D(a.url):null,n=a.fileName?.trim()||"Attachment",i=a.mediaType.toLowerCase(),d=n.toLowerCase(),c=r&&(i.startsWith("video/")||/\.(mp4|webm|mov|m4v)$/u.test(d));return r&&i.startsWith("image/")&&i!=="image/svg+xml"&&!c?e.jsx(q,{href:r,name:n},a.id):c?e.jsx("video",{className:"chat-attach-video",src:r,controls:!0,playsInline:!0,preload:"metadata",children:n},a.id):r&&(i.startsWith("audio/")||/\.(mp3|wav|m4a|aac|ogg|oga)$/u.test(d))?e.jsx("audio",{className:"chat-attach-audio",src:r,controls:!0,preload:"metadata",children:n},a.id):r&&(i==="text/html"||i==="application/xhtml+xml")?e.jsx("iframe",{className:"chat-attach-html",title:n,src:r,sandbox:"",referrerPolicy:"no-referrer",loading:"lazy"},a.id):r?e.jsx("a",{className:"chat-attach-file",href:r,target:"_blank",rel:"noreferrer",children:n},a.id):e.jsx("span",{className:"chat-attach-file",children:n},a.id)})})}function E(t,a,r){const n=t.reactions?.find(i=>i.emoji===a)?.me===!0;r(t.id,a,n)}function te({message:t,onReact:a}){const r=t.reactions??[];return r.length===0?null:e.jsx("div",{className:"chat-reaction-row",children:r.map(n=>{const i=n.me?`${n.emoji} ${n.count}, including you. Remove your reaction.`:`${n.emoji} ${n.count}. React with ${n.emoji}.`;return e.jsxs("button",{type:"button",className:"chat-reaction","data-me":n.me?"true":void 0,"aria-pressed":n.me,"aria-label":i,onClick:()=>a&&E(t,n.emoji,a),children:[e.jsx("span",{"aria-hidden":"true",children:n.emoji}),e.jsx("span",{children:n.count})]},n.emoji)})})}function ae({message:t,onReact:a,pinned:r,onDismiss:n}){const[i,d]=o.useState(0),[c,h]=o.useState(!1),u=o.useRef(null),m=[...I],b=c?[...m,...A]:m,p=o.useCallback(()=>{h(!1),d(s=>Math.min(s,I.length-1))},[]),f=o.useCallback(()=>{p(),n()},[p,n]);o.useEffect(()=>{if(!r&&!c)return;const s=l=>{u.current?.contains(l.target)||f()};return window.addEventListener("pointerdown",s),()=>window.removeEventListener("pointerdown",s)},[r,c,f]);const k=s=>{if(s.key==="Escape"){s.preventDefault(),c?p():n();return}if(s.key==="ArrowRight"||s.key==="ArrowLeft"){s.preventDefault();const l=s.key==="ArrowRight"?1:-1;d(x=>(x+l+b.length)%b.length)}if(s.key==="Enter"||s.key===" "){s.preventDefault();const l=b[i];l&&(E(t,l,a),f())}},g=(s,l)=>e.jsx("button",{type:"button",role:"option",tabIndex:l===i?0:-1,"aria-label":`React with ${s}`,"aria-selected":l===i,"aria-pressed":t.reactions?.some(x=>x.emoji===s&&x.me)===!0,onClick:()=>{E(t,s,a),f()},children:s},s);return e.jsxs("div",{ref:u,className:"chat-reaction-picker","data-expanded":c?"true":void 0,role:"listbox","aria-label":"React to this message",onKeyDown:k,children:[m.map(g),e.jsx("button",{type:"button",className:"chat-reaction-more","aria-expanded":c,"aria-label":c?"Fewer emoji":"More emoji",onClick:()=>c?p():h(!0),children:c?"‹":"›"}),c?e.jsx("div",{className:"chat-reaction-sheet",role:"presentation",children:A.map((s,l)=>g(s,m.length+l))}):null]})}function be({member:t,nowMs:a}){const r=K(t,a);return r?e.jsxs("div",{className:"chat-conn","aria-label":r.ariaLabel,children:[e.jsxs("span",{className:"chat-conn-state",children:[r.showDot?e.jsx("span",{className:"dot dot--neutral","aria-hidden":"true"}):null,r.summary]}),e.jsx("span",{className:"chat-conn-detail",children:r.detail}),r.routeNote?e.jsx("span",{className:"chat-conn-detail",children:r.routeNote}):null,r.evidence?e.jsx("span",{className:"chat-conn-evidence",children:r.evidence}):null]}):null}function ge({label:t,children:a}){return e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"chat-k",children:t}),e.jsx("span",{className:"chat-v",children:a})]})}function ke({at:t,nowMs:a}){return e.jsx("time",{className:"chat-when",dateTime:new Date(t).toISOString(),children:H(t,a)})}export{xe as CopyAction,ge as Field,Q as MessageBody,be as ReceptionBlock,ke as TimeAgo,Y as TrackedAskCard,je as Turn};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as e,r as j}from"./index-BFbLvCJn.js";import{a as $,i as O,d as w,c as W}from"./conversations-DoAAO6kA.js";import{l as B,i as q,a as E,p as T}from"./conversation-prefs-DNre-Lcx.js";import{m as G,c as J}from"./machine-scope-DJt9RZ2w.js";import{u as K,f as Q}from"./use-fleet-active-asks-DAHOPYPV.js";import{b as X}from"./router-CJIx83Ia.js";import{l as D,i as C,s as Y}from"./sessionRead-CvFz2RHv.js";import{u as Z}from"./use-conversation-list-CGtcpdPd.js";import{u as ee}from"./Provider-BEXAZWd9.js";import{i as se}from"./agent-state-DDhnFEEP.js";import{A as te}from"./AgentAvatar-Dn8TUv5W.js";/* empty css */function ae({children:n,count:t,tone:a="default",title:l,onClick:i}){const d=["collapsed-strip-label",a!=="default"&&`collapsed-strip-label--${a}`,t!=null&&"collapsed-strip-label--has-count",i&&"collapsed-strip-label--button"].filter(Boolean).join(" "),o=e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"collapsed-strip-label-mark","aria-hidden":!0}),i?e.jsx("span",{className:"collapsed-strip-label-expand","aria-hidden":!0,children:"›"}):null,e.jsx("span",{className:"collapsed-strip-label-text",children:n}),t!=null?e.jsx("span",{className:"collapsed-strip-label-count",children:t}):null]});return i?e.jsx("button",{type:"button",className:d,title:l??n,"aria-label":l??n,onClick:i,children:o}):e.jsx("div",{className:d,title:l??n,children:o})}function ne({label:n,emptyMark:t="·",showLabel:a=!0,labelTone:l="default",labelCount:i,onLabelClick:d,children:o}){const v=!o||Array.isArray(o)&&o.length===0,p=a?e.jsx(ae,{tone:l,count:i,onClick:d,title:d?`Expand ${n}`:void 0,children:n}):null;return v?e.jsxs("div",{className:"collapsed-strip collapsed-strip--empty","aria-hidden":!0,children:[p,e.jsx("span",{className:"collapsed-strip-empty-mark",children:t})]}):e.jsxs("div",{className:"collapsed-strip",role:"list","aria-label":n,children:[p,o]})}function Ie(){return e.jsx("div",{className:"collapsed-strip-rule","aria-hidden":!0})}function le({title:n,active:t,tone:a="default",ava:l,avaColor:i,glyph:d,avatarNode:o,dot:v,pinned:p,onClick:b}){const m=["collapsed-chip",a==="channel"&&"collapsed-chip--channel",a==="neutral"&&"collapsed-chip--neutral",a==="attention"&&"collapsed-chip--attention",a==="unread"&&"collapsed-chip--unread",t&&"collapsed-chip--active",p&&"collapsed-chip--pinned"].filter(Boolean).join(" ");return e.jsxs("button",{type:"button",role:"listitem",className:m,title:n,"aria-label":n,"aria-current":t?"page":void 0,onClick:b,children:[o?e.jsx("span",{className:"collapsed-chip-avatar-wrap",children:o}):l?e.jsx("span",{className:"collapsed-chip-ava",style:i?{"--ava-color":i}:void 0,children:l}):e.jsx("span",{className:`collapsed-chip-glyph${typeof d=="string"&&d.length>1?" collapsed-chip-glyph--long":""}`,children:d}),v?e.jsx("span",{className:["collapsed-chip-dot",v==="attention"&&"collapsed-chip-dot--attention",v==="live"&&"collapsed-chip-dot--live"].filter(Boolean).join(" "),"aria-hidden":!0}):null,p?e.jsx("span",{className:"collapsed-chip-pin","aria-hidden":!0}):null]})}function we(n){const t=n.trim(),a=t.split(/[\s/_-]+/).filter(Boolean);if(a.length>=2){const l=a[a.length-1];return/^\d+$/.test(l)&&a.length>=3?(a[a.length-2][0]??"?").toUpperCase():(l[0]??"?").toUpperCase()}return(t[0]??"?").toUpperCase()}const ie=3,oe=3,re=4,ce=3;function S(n,t){return[...n].sort((a,l)=>{const i=C(a.lastMessageAt,a.id,t)?0:1,d=C(l.lastMessageAt,l.id,t)?0:1;return i!==d?i-d:(l.lastMessageAt??0)-(a.lastMessageAt??0)})}function de({onExpand:n}){const{route:t,navigate:a,agents:l}=ee(),{sessions:i}=Z(),d=K(),[o,v]=j.useState(()=>B()),[p,b]=j.useState(()=>D()),m=X(t),y=j.useMemo(()=>G(l,m),[l,m]),P=j.useMemo(()=>{const s=new Map;for(const f of l)s.set(f.id,f);return s},[l]),R=t.view==="messages"||t.view==="conversation"?t.conversationId:void 0;j.useEffect(()=>{v(B()),b(D())},[]);const r=j.useMemo(()=>{const s=J(i,y,m).filter(c=>!q(c.id,o)),f=s.filter(c=>E(c.id,o)).sort((c,x)=>T(x.id,o)-T(c.id,o)||(x.lastMessageAt??0)-(c.lastMessageAt??0)).slice(0,ie),g=new Set(f.map(c=>c.id)),h=s.filter(c=>!g.has(c.id));return{pinned:f,channels:S(h.filter(w),p).slice(0,oe),dms:S(h.filter(O),p).slice(0,re),observed:S(h.filter($),p).slice(0,ce),totals:{channels:h.filter(w).length,dms:h.filter(O).length,observed:h.filter($).length,pinned:s.filter(c=>E(c.id,o)).length}}},[i,y,m,o,p]),U=s=>{b(Y(s.id)),a({view:"messages",conversationId:s.id,...m?{machineId:m}:{}})},k=[...r.pinned,...r.channels,...r.dms,...r.observed],A=k.filter(s=>C(s.lastMessageAt,s.id,p)).length,M=(s,f=!1)=>{const g=W(s),h=w(s),c=C(s.lastMessageAt,s.id,p),x=h?void 0:he(s,g),V=x??g,I=s.agentId?P.get(s.agentId):void 0,L=Q(d,s),_=L?.status==="needs_attention",z=L?.status==="working",F=I?se(I.state):!1,H=_?"attention":c?"unread":z||F?"live":null;return e.jsx(le,{title:f?`${g} · pinned`:x?`${g} · ${x}`:g,active:s.id===R,tone:h?"channel":_?"attention":c?"unread":"default",avatarNode:h?void 0:e.jsx(te,{agent:I,name:V,size:28,tile:!0,presence:!1}),glyph:h?pe(g):void 0,dot:H,pinned:f,onClick:()=>U(s)},s.id)},u=[];return r.pinned.length&&u.push(e.jsx(N,{mark:"Pin",count:r.totals.pinned,showMark:u.length>0,children:r.pinned.map(s=>M(s,!0))},"pin")),r.channels.length&&u.push(e.jsx(N,{mark:"#",count:r.totals.channels,showMark:u.length>0,children:r.channels.map(s=>M(s))},"ch")),r.dms.length&&u.push(e.jsx(N,{mark:"DM",count:r.totals.dms,showMark:u.length>0,children:r.dms.map(s=>M(s))},"dm")),r.observed.length&&u.push(e.jsx(N,{mark:"Obs",count:r.totals.observed,showMark:u.length>0,children:r.observed.map(s=>M(s))},"obs")),e.jsx(ne,{label:"Chat",emptyMark:"#",labelTone:A>0?"accent":"default",labelCount:A>0?A:k.length||void 0,onLabelClick:n,children:u})}function pe(n){const a=n.replace(/^#+/,"").match(/[a-z0-9]/i)?.[0]?.toLowerCase()??"?";return e.jsxs("span",{className:"collapsed-chip-channel-badge",children:[e.jsx("span",{className:"collapsed-chip-channel-hash","aria-hidden":!0,children:"#"}),e.jsx("span",{className:"collapsed-chip-channel-text",children:a})]})}function he(n,t){const a=t.toLowerCase();for(const l of n.participants??[]){const i=l.displayName||l.label;if(i&&i.toLowerCase()!==a)return i}}function N({mark:n,count:t,showMark:a=!0,children:l}){return e.jsxs("div",{className:"collapsed-strip-section",role:"group","aria-label":n,children:[a?e.jsxs("div",{className:"collapsed-strip-section-mark",title:t!=null?`${n} · ${t}`:n,children:[e.jsx("span",{className:"collapsed-strip-section-mark-text",children:n}),t!=null&&t>0?e.jsx("span",{className:"collapsed-strip-section-mark-count",children:t>99?"99+":t}):null]}):null,l]})}const Se=Object.freeze(Object.defineProperty({__proto__:null,ChatCollapsedStrip:de},Symbol.toStringTag,{value:"Module"}));export{ne as C,de as a,le as b,we as c,Ie as d,Se as e};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import{r as d,j}from"./index-BFbLvCJn.js";import{p as v}from"./message-markup-BQW5jdJw.js";const y=/`([^`\n]+)`|\*\*(.+?)\*\*|\*([^*\s][^*]*?)\*|\[([^\]\n]+)\]\(([^)\s]+)\)/gu;function l(n){return n.replace(/&/gu,"&").replace(/</gu,"<").replace(/>/gu,">").replace(/"/gu,""")}function M(n){return n.replace(/ /giu," ").replace(/&/gu,"&").replace(/</gu,"<").replace(/>/gu,">").replace(/"/gu,'"')}function f(n){const t=[];let r=0;for(const e of n.matchAll(y)){const a=e.index??0;a>r&&t.push(l(n.slice(r,a))),e[1]!==void 0?t.push(`<code class="chat-md-code">${l(e[1])}</code>`):e[2]!==void 0?t.push(`<strong>${l(e[2])}</strong>`):e[3]!==void 0?t.push(`<em>${l(e[3])}</em>`):e[4]!==void 0&&e[5]!==void 0?t.push(`<a class="chat-url" href="${l(e[5])}">${l(e[4])}</a>`):t.push(l(e[0]??"")),r=a+e[0].length}return r<n.length&&t.push(l(n.slice(r))),t.join("")}function L(n){const t=v(n);return t.length===0?n.trim()?`<p>${f(n)}</p>`:"":t.map(r=>{switch(r.type){case"paragraph":return`<p>${f(r.text)}</p>`;case"heading":{const e=Math.min(3,Math.max(1,r.depth));return`<div class="chat-md-h chat-md-h${e}" role="heading" aria-level="${e+1}">${f(r.text)}</div>`}case"hr":return'<hr class="chat-md-hr">';case"list":{const e=r.ordered?"ol":"ul",a=r.items.map(u=>`<li>${f(u)}</li>`).join("");return`<${e} class="chat-md-list">${a}</${e}>`}case"blockquote":return`<blockquote class="chat-md-quote">${f(r.text)}</blockquote>`;case"code":return`<pre class="chat-md-pre"><code>${l(r.text)}</code></pre>`;case"table":{const e=r.headers.map(u=>`<th>${f(u)}</th>`).join(""),a=r.rows.map(u=>`<tr>${r.headers.map((T,$)=>`<td>${f(u[$]??"")}</td>`).join("")}</tr>`).join("");return`<table class="chat-md-table"><thead><tr>${e}</tr></thead><tbody>${a}</tbody></table>`}}}).join("")}function N(n,t){return!t.trim()||t.startsWith(n)&&t.endsWith(n)?t:`${n}${t}${n}`}function R(n){if(n.nodeType===Node.TEXT_NODE)return M(n.textContent??"");if(n.nodeType!==Node.ELEMENT_NODE)return"";const t=n,r=t.tagName;if(r==="BR")return`
|
|
2
|
-
`;if(r==="PRE")return`
|
|
3
|
-
\`\`\`
|
|
4
|
-
${(t.textContent??"").replace(/\n$/u,"")}
|
|
5
|
-
\`\`\`
|
|
6
|
-
`;const e=Array.from(t.childNodes).map(R).join("");switch(r){case"STRONG":case"B":return N("**",e);case"EM":case"I":return N("*",e);case"CODE":return t.closest("pre")?e:e?`\`${e}\``:"";case"A":{const a=t.getAttribute("href")??"";return!a||a===e?e:`[${e}](${a})`}case"H1":return`
|
|
7
|
-
# ${e.trim()}
|
|
8
|
-
`;case"H2":return`
|
|
9
|
-
## ${e.trim()}
|
|
10
|
-
`;case"H3":case"H4":case"H5":case"H6":return`
|
|
11
|
-
### ${e.trim()}
|
|
12
|
-
`;case"BLOCKQUOTE":return`
|
|
13
|
-
${e.split(`
|
|
14
|
-
`).map(a=>`> ${a}`).join(`
|
|
15
|
-
`)}
|
|
16
|
-
`;case"LI":return`${t.parentElement?.tagName==="OL"?"1. ":"- "}${e.trim()}
|
|
17
|
-
`;case"UL":case"OL":return`
|
|
18
|
-
${e}`;case"P":case"DIV":{if(t.getAttribute("role")==="heading"){const a=Number(t.getAttribute("aria-level")??"3");return`
|
|
19
|
-
${a<=2?"#":a===3?"##":"###"} ${e.trim()}
|
|
20
|
-
`}return e?`${e}
|
|
21
|
-
|
|
22
|
-
`:`
|
|
23
|
-
`}case"HR":return`
|
|
24
|
-
---
|
|
25
|
-
`;case"TR":return`| ${Array.from(t.children).map(a=>R(a).trim()).join(" | ")} |
|
|
26
|
-
`;case"TABLE":return`
|
|
27
|
-
${e}
|
|
28
|
-
`;case"THEAD":case"TBODY":case"TH":case"TD":case"SPAN":return e;default:return e}}function O(n){return Array.from(n.childNodes).map(R).join("").replace(/\u00a0/gu," ").replace(/[ \t]+\n/gu,`
|
|
29
|
-
`).replace(/\n{3,}/gu,`
|
|
30
|
-
|
|
31
|
-
`).trim()}function A(n){const t=n.ownerDocument.getSelection();if(!t||t.rangeCount===0||!n.contains(t.anchorNode))return n.innerText??"";const r=t.getRangeAt(0).cloneRange();return r.selectNodeContents(n),r.setEnd(t.getRangeAt(0).startContainer,t.getRangeAt(0).startOffset),r.toString()}function I(n,t){if(t<=0)return;const r=n.ownerDocument.getSelection();if(!(!r||r.rangeCount===0)){r.modify("extend","backward","character");for(let e=1;e<t;e+=1)r.modify("extend","backward","character");r.deleteFromDocument()}}function g(n,t){const r=n.ownerDocument.getSelection();if(!r){n.append(t);return}r.rangeCount===0&&n.focus();const e=r.rangeCount>0?r.getRangeAt(0):n.ownerDocument.createRange();r.rangeCount===0&&(e.selectNodeContents(n),e.collapse(!1),r.addRange(e)),e.deleteContents();const a=n.ownerDocument.createTextNode(t);e.insertNode(a),e.setStartAfter(a),e.collapse(!0),r.removeAllRanges(),r.addRange(e)}const q=d.forwardRef(function({value:t,placeholder:r,disabled:e=!1,onChange:a,onKeyDown:u,onPaste:T,onDragOver:$,onDrop:w,onBlur:b},D){const i=d.useRef(null),x=d.useRef(null),C=d.useRef(!1),p=d.useCallback(()=>{const s=i.current;if(!s||C.current)return;const c=O(s);x.current=c,a(c)},[a]),E=d.useCallback(s=>{const c=i.current;c&&(C.current=!0,c.innerHTML=L(s),x.current=s,C.current=!1)},[]);return d.useEffect(()=>{t!==x.current&&E(t)},[E,t]),d.useImperativeHandle(D,()=>({focus:()=>i.current?.focus(),textBeforeCaret:()=>{const s=i.current;return s?A(s):""},insertText:s=>{const c=i.current;c&&(c.focus(),g(c,s),p())},replaceMention:(s,c)=>{const o=i.current;if(!o)return;o.focus();const m=A(o),h=Math.max(1,m.length-s);I(o,h),g(o,`@${c} `),p()},applyFormat:s=>{const c=i.current;if(!c)return;c.focus();const o=c.ownerDocument;if(s==="bold")o.execCommand("bold");else if(s==="italic")o.execCommand("italic");else if(s==="list")o.execCommand("insertUnorderedList");else if(s==="code"){const m=o.getSelection();if(!m||m.rangeCount===0)return;const h=m.getRangeAt(0);if(h.collapsed)g(c,"`code`");else{const H=`\`${m.toString()}\``;h.deleteContents(),g(c,H)}}p()}}),[p]),j.jsx("div",{ref:i,className:"chat-composer-input",role:"textbox",contentEditable:!e,suppressContentEditableWarning:!0,"aria-multiline":"true","aria-label":r,"aria-disabled":e||void 0,"data-placeholder":r,"data-empty":t.trim().length===0?"true":void 0,onInput:p,onKeyDown:u,onPaste:s=>{if(T?.(s),s.defaultPrevented)return;s.preventDefault();const c=s.clipboardData?.getData("text/plain")??"";if(!c)return;const o=i.current;o&&(g(o,c),p())},onDragOver:$,onDrop:w,onBlur:b})});export{q as ChatRichInput};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as e}from"./index-BFbLvCJn.js";import{u as G}from"./chat-transport-CtxnPLMU.js";import{MemberAvatar as F}from"./ChatAvatar-BsAOShUr.js";import{ChannelComposer as J}from"./ChannelComposer-D4EY9jVW.js";import{Turn as O,Field as x,CopyAction as Q,ReceptionBlock as U}from"./ChatBits-Cq54CmyB.js";import{c as V,m as X,a as f,b,d as Y,e as Z,f as _,g as E,h as ee,j as ae,k as se,l as ne}from"./chat-space-model-aW3Fd8_U.js";import"./chat-api-BHGHALv2.js";import"./api-DSqpVKC7.js";import"./SpriteAvatar-D53GaaK3.js";import"./agent-state-DDhnFEEP.js";import"./colors-CFlbwC25.js";import"./ComposerAttachments-9uYp_Lh5.js";import"./media-blobs-Bi8pxr1u.js";import"./file-text-BOJQiS8p.js";import"./createLucideIcon-CKbjXlwv.js";import"./ChatRichInput-DYJRhGTP.js";import"./message-markup-BQW5jdJw.js";import"./x-BcfhXYiF.js";import"./paperclip-DLf_ABSv.js";import"./chevron-down-DEDSNJNY.js";import"./loader-circle-CCG7hG7z.js";import"./arrow-up-DFy-9ghF.js";import"./clipboard-e3fSpeo7.js";import"./MessageEmbeds-B-FbWI7a.js";import"./chat-message-markup-esR-YLtN.js";function te(s){return s.length>12?`…${s.slice(-8)}`:s}function le({member:s,viewerActorId:r,onOpen:c}){const n=E(s,r),o=s.reception.state==="disconnected"||s.reception.state==="unavailable";return e.jsxs("button",{type:"button",className:"chat-member-row",onClick:()=>c(s.actorId),children:[e.jsx(F,{member:s,size:24}),e.jsx("span",{className:"chat-member-name",children:b(s)}),n?e.jsx("span",{className:"chat-member-fact","data-stranded":o&&n!=="you",children:n}):null]})}function ce({invite:s,nowMs:r,onRevoke:c,busy:n,canRevoke:o}){const d=ee(s),p=s.invitee?.displayName?.trim(),t=ae(s.expiresAt,r);return e.jsxs("div",{className:"chat-invite-row",children:[e.jsx("span",{className:"chat-token-hint",children:se(s.tokenHint)}),e.jsx("span",{children:[ne(d),p?`for ${p}`:null,t].filter(Boolean).join(" · ")}),o?e.jsx("button",{type:"button",className:"chat-invite-revoke",disabled:n,onClick:()=>c(s.id),children:"Revoke"}):s.state==="active"?e.jsx("span",{}):e.jsx("span",{className:"chat-invite-revoke","aria-hidden":"false",children:s.state})]})}function Pe({view:s,channel:r,members:c,membersById:n,invites:o,inviteError:d,revokingInviteId:p,viewerActorId:t,viewerIsOperator:L,nowMs:h,threadRoot:j,threadReplies:k,threadRequest:P,threadDraft:$,onThreadDraftChange:w,onSendThreadReply:B,onReact:v,onCopyLink:g,onStopAsk:H,focusMessageId:y,threadSending:M,threadError:S,onClose:u,onBack:z,onOpenMember:D,onMention:K,onRevokeInvite:q,onInvite:C,overlay:N}){const I=G();if(s.kind==="none")return null;const T=V(r.title);if(s.kind==="thread")return e.jsxs("aside",{className:"chat-rpanel","data-overlay":N,"aria-label":"Thread",children:[e.jsxs("header",{className:"chat-rpanel-head",children:[e.jsx("span",{className:"chat-rpanel-title",children:"Thread"}),e.jsx("span",{className:"chat-rpanel-scope",children:T}),e.jsx("button",{type:"button",className:"chat-rpanel-close",onClick:u,"aria-label":"Close panel",children:"×"})]}),e.jsxs("div",{className:"chat-rpanel-body",children:[j?e.jsx("div",{className:"chat-anchor-msg",children:e.jsx(O,{message:j,members:n,nowMs:h,request:P,withTargetOnChip:!1,onReact:v,onCopyLink:g,onStopAsk:H,focused:y===j.id})}):e.jsx("p",{className:"chat-feed-notice",children:"This thread's anchor message is no longer in the channel feed."}),k.map(a=>e.jsx(O,{message:a,members:n,nowMs:h,onReact:v,onCopyLink:g,focused:y===a.id},a.id)),k.length===0&&j?e.jsx("p",{className:"chat-feed-notice",children:"No replies yet."}):null,e.jsx("div",{className:"chat-thread-composer",children:e.jsx(J,{members:c,draft:$,onDraftChange:w,askTargetId:null,onAskTargetChange:()=>{},onSend:B,sending:M,error:S,placeholder:"Reply in thread…",variant:"thread"})})]})]});if(s.kind==="member"){const a=X(n,s.actorId),i=f(a),m=a.owner?.displayName?.trim()??null,l=a.reception.attachedSessionId,W=i&&a.owner?.actorId===t;return e.jsxs("aside",{className:"chat-rpanel","data-overlay":N,"aria-label":"Member",children:[e.jsxs("header",{className:"chat-rpanel-head",children:[e.jsx("button",{type:"button",className:"chat-rpanel-back",onClick:z,"aria-label":"Back to members",children:"‹"}),e.jsx("span",{className:"chat-rpanel-title",children:"Member"}),e.jsx("button",{type:"button",className:"chat-rpanel-close",onClick:u,"aria-label":"Close panel",children:"×"})]}),e.jsxs("div",{className:"chat-rpanel-body",children:[e.jsxs("div",{className:"chat-mcard-head",children:[e.jsx(F,{member:a,size:32}),e.jsxs("div",{children:[e.jsx("div",{className:"chat-mcard-name",children:b(a)}),e.jsx("div",{className:"chat-mcard-sub",children:[i?"agent":a.kind==="unknown"?"former member":"person",Y(a)?"via API":null,m?`owned by ${m}`:null,a.actorId===t?"you":null].filter(Boolean).join(" · ")})]})]}),a.harness||a.projectRoot||l||a.nodeId?e.jsxs("div",{className:"chat-psec chat-kv",children:[a.harness?e.jsx(x,{label:"Harness",children:[a.harness,a.model].filter(Boolean).join(" · ")}):null,a.projectRoot?e.jsx(x,{label:"Project",children:a.projectRoot}):null,l?e.jsxs(x,{label:"Session",children:[te(l),e.jsx(Q,{value:l,label:"copy",className:"chat-copy-inline",copiedLabel:"ok"})]}):null,a.nodeId?e.jsx(x,{label:"Node",children:a.nodeId}):null]}):null,i?e.jsxs("div",{className:"chat-psec",children:[e.jsx(U,{member:a,nowMs:h}),a.reception.redeemedAt?e.jsx("span",{className:"chat-conn-evidence",children:`joined ${Z(a.reception.redeemedAt,h)}`}):null]}):null,e.jsxs("div",{className:"chat-psec",style:{display:"flex",gap:"var(--space-sm)",flexWrap:"wrap"},children:[e.jsx("button",{type:"button",className:"btn btn--sm",onClick:()=>K(a.actorId),children:"Mention"}),W||a.actorId===t?e.jsx("button",{type:"button",className:"btn btn--sm",onClick:C,children:"Copy agent invitation"}):null]})]})]})}const A=[...c].sort((a,i)=>{const m=Number(f(a)),l=Number(f(i));return m!==l?m-l:b(a).localeCompare(b(i))}),R=o.filter(a=>a.state==="active");return e.jsxs("aside",{className:"chat-rpanel","data-overlay":N,"aria-label":"Members",children:[e.jsxs("header",{className:"chat-rpanel-head",children:[e.jsx("span",{className:"chat-rpanel-title",children:"Members"}),e.jsx("span",{className:"chat-rpanel-scope",children:T}),e.jsx("button",{type:"button",className:"chat-rpanel-close",onClick:u,"aria-label":"Close panel",children:"×"})]}),e.jsxs("div",{className:"chat-rpanel-body",children:[e.jsxs("div",{className:"chat-psec",children:[e.jsx("span",{className:"label-sm",children:"In this channel"}),A.length===0?e.jsx("p",{className:"chat-feed-notice",children:"The roster is empty."}):A.map(a=>e.jsx(le,{member:a,viewerActorId:t,onOpen:D},a.actorId))]}),e.jsxs("div",{className:"chat-psec",children:[e.jsx("span",{className:"label-sm",children:"Invited"}),d?e.jsx("p",{className:"chat-sheet-error",children:d}):null,I.inviteList?R.length===0&&!d?e.jsx("p",{className:"chat-feed-notice",children:"No outstanding invitations."}):R.map(a=>e.jsx(ce,{invite:a,nowMs:h,onRevoke:q,busy:p===a.id,canRevoke:I.inviteRevoke&&_(a,{actorId:t,isOperator:L})},a.id)):e.jsx("p",{className:"chat-feed-notice",children:"This server does not list outstanding invitations. A link is shown once, when you create it."}),e.jsx("div",{style:{marginTop:"var(--space-sm)"},children:e.jsx("button",{type:"button",className:"btn btn--sm",onClick:C,children:"Invite"})})]})]})]})}export{Pe as ChatRightPanel,le as MemberRow};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as n,j as a}from"./index-BFbLvCJn.js";import{D as ee,C as te}from"./chat-api-BHGHALv2.js";import{a as Ht,u as $t,b as Bt,c as Ut}from"./chat-transport-CtxnPLMU.js";import{u as qt,S as Oe,R as Vt,a as Xt}from"./useSidebarCollapse-DoMvU_2R.js";import{useScoutStandaloneAppearance as Kt,ChatSpaceTheme as Fe}from"./ChatSpaceTheme-DPzYpw-v.js";import{ChannelSidebar as Gt}from"./ChannelSidebar-CVmykV4d.js";import{ChannelComposer as Yt}from"./ChannelComposer-D4EY9jVW.js";import{ChatRightPanel as Jt}from"./ChatRightPanel-D94Lw7ud.js";import{Facepile as Qt}from"./ChatAvatar-BsAOShUr.js";import{Turn as Zt}from"./ChatBits-Cq54CmyB.js";import{InviteSheet as en}from"./InviteSheet-BiGMNpsE.js";import{JumpPalette as tn}from"./JumpPalette-goXAVByA.js";import{s as nn,p as sn,q as an,t as rn,u as nt,v as on,b as cn,w as ln,x as dn,c as st,B as un,F as hn,R as mn}from"./chat-space-model-aW3Fd8_U.js";import{uploadMediaFiles as pn}from"./media-blobs-Bi8pxr1u.js";import{c as fn}from"./clipboard-e3fSpeo7.js";import"./api-DSqpVKC7.js";import"./chunk-YOZR3KYS-apgUnfXh.js";import"./createLucideIcon-CKbjXlwv.js";import"./arrow-up-DFy-9ghF.js";import"./arrow-down--OUDFWIq.js";import"./theme-vars-DNK0nn3k.js";import"./SpaceSwitcher-WccPJ0fS.js";import"./SpriteAvatar-D53GaaK3.js";import"./agent-state-DDhnFEEP.js";import"./colors-CFlbwC25.js";import"./ComposerAttachments-9uYp_Lh5.js";import"./file-text-BOJQiS8p.js";import"./ChatRichInput-DYJRhGTP.js";import"./message-markup-BQW5jdJw.js";import"./x-BcfhXYiF.js";import"./paperclip-DLf_ABSv.js";import"./chevron-down-DEDSNJNY.js";import"./loader-circle-CCG7hG7z.js";import"./MessageEmbeds-B-FbWI7a.js";import"./chat-message-markup-esR-YLtN.js";import"./keyboard-nav-CEe-ApvZ.js";import"./users-BQPEIUfd.js";import"./bot-BNv_ZJzi.js";import"./monitor-M0VSmHQ-.js";function at(){let c=0;return{begin(){const r=c;return()=>r===c},reset(){c+=1}}}const gn=["ready","channel.changed"],wn=350,bn=2e3,vn=3e4,In=3;function Cn(c,r){const l=`/api/channels/${encodeURIComponent(c)}/events`;return r&&r!=="home"?`${l}?space=${encodeURIComponent(r)}`:l}const Sn={now:()=>Date.now(),setTimer:(c,r)=>setTimeout(c,r),clearTimer:c=>clearTimeout(c)};function En(c){const r=globalThis.EventSource;return typeof r!="function"?null:new r(c,{withCredentials:!0})}function yn(c){const{channelId:r,space:l,onInvalidate:d,createEventSource:m=En,onStatus:q,minRefreshMs:Y=wn,clock:h=Sn}=c;let b=!1,M=null,A=null,C=null,z=!1,s=!1,P=Number.NEGATIVE_INFINITY,x=!1,_=0,i=0;const N=I=>{b||q?.(I)},y=()=>{A!==null&&(h.clearTimer(A),A=null)},R=()=>{C!==null&&(h.clearTimer(C),C=null)},k=()=>{A=null,!b&&(z=!0,s=!1,P=h.now(),Promise.resolve().then(()=>b?void 0:d()).catch(()=>{}).then(()=>{z=!1,s&&!b&&V()}))},V=()=>{if(b)return;if(z){s=!0;return}if(A!==null)return;const I=Math.max(0,Y-(h.now()-P));if(I===0){k();return}A=h.setTimer(k,I)},le=()=>{const L=Math.min(bn*2**Math.max(0,(x?i:_)-1),vn);N("retrying"),R(),C=h.setTimer(()=>{C=null,O()},L)};function O(){if(b||M!==null)return;N("connecting");let I=null;try{I=m(Cn(r,l))}catch{I=null}if(!I){N("unsupported");return}M=I;const L=I,ne=()=>!b&&M===L;L.addEventListener("open",()=>{ne()&&(x=!0,_=0,i=0,N("live"))});for(const de of gn)L.addEventListener(de,()=>{ne()&&V()});L.addEventListener("error",()=>{if(ne()){if(M=null,L.close(),x){i+=1,le();return}if(_+=1,_>=In){N("unavailable");return}le()}})}return O(),()=>{if(b)return;b=!0,y(),R(),s=!1;const I=M;M=null,I?.close()}}const rt="appshell.chat.sidebar.manualCollapsed",ct="openscout.chat.panel.width",ce=360,lt=280,dt=520;function kn(){if(!(typeof window>"u"))try{if(window.localStorage.getItem(rt)!=null)return;const c=window.localStorage.getItem("openscout.chat.rail")==="1";window.localStorage.setItem(rt,JSON.stringify(c))}catch{}}function xn(){if(typeof window>"u")return ce;try{const c=Number(window.localStorage.getItem(ct));return!Number.isFinite(c)||c<=0?ce:Math.max(lt,Math.min(dt,Math.round(c)))}catch{return ce}}function ot(c){if(!(typeof window>"u"))try{window.localStorage.setItem(ct,String(c))}catch{}}function Tn(){const[c,r]=n.useState(()=>typeof window<"u"?window.innerWidth:1280);return n.useEffect(()=>{const l=()=>r(window.innerWidth);return window.addEventListener("resize",l),()=>window.removeEventListener("resize",l)},[]),c}function it(c){const[r,l]=n.useState(()=>typeof window<"u"&&window.matchMedia?window.matchMedia(c).matches:!1);return n.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const d=window.matchMedia(c),m=()=>l(d.matches);return m(),d.addEventListener("change",m),()=>d.removeEventListener("change",m)},[c]),r}function We(c,r,l){const d=n.useRef(c);d.current=c,n.useEffect(()=>{if(!l)return;let m=!1,q=!1;const Y=()=>{m||q||typeof document<"u"&&document.hidden||(q=!0,d.current().finally(()=>{q=!1}))},h=setInterval(Y,r),b=()=>{typeof document<"u"&&!document.hidden&&Y()};return document.addEventListener("visibilitychange",b),()=>{m=!0,clearInterval(h),document.removeEventListener("visibilitychange",b)}},[l,r])}function Mn(c,r,l,d){const m=n.useRef(l);m.current=l,n.useEffect(()=>{if(!(!r||!c))return yn({channelId:c,space:d,onInvalidate:()=>m.current()})},[c,r,d])}async function Nn(c,r){return c.length===0?[]:r(c)}function gs({signedOut:c}={}){const r=Ht(),l=$t(),d=Bt(),{theme:m,preference:q,setPreference:Y}=Kt(),[h,b]=n.useState("loading"),[M,A]=n.useState(null),[C,z]=n.useState(null),[s,P]=n.useState(()=>d.read().channelId),[x,_]=n.useState(()=>d.read().messageId),[i,N]=n.useState(()=>d.read().space??ee),[y,R]=n.useState(null),[k,V]=n.useState([]),[le,O]=n.useState([]),[I,L]=n.useState(null),[ne,de]=n.useState(null),[Se,se]=n.useState(null),[ut,ae]=n.useState(!1),[ht,Ee]=n.useState({}),[mt,ze]=n.useState({}),[pt,He]=n.useState({}),[J,F]=n.useState({kind:"none"}),[ye,ue]=n.useState(!1),[ke,he]=n.useState(!1),[xe,$e]=n.useState(!1),[ft,Be]=n.useState(null),[Te,Ue]=n.useState(!1),[gt,qe]=n.useState(null),[me,wt]=n.useState(()=>Date.now()),[bt,W]=n.useState(()=>d.read().channelId?"channel":"list");kn();const vt=Tn(),Q=it("(max-width: 899px)"),pe=it("(max-width: 1199px)"),p=qt("chat",Q?1600:vt,Oe),Me=n.useRef(p.width),[fe,Ve]=n.useState(xn),Ne=n.useRef(fe),[It,ge]=n.useState(null),Re=n.useRef(null),Xe=n.useRef(null),we=n.useRef(null),[H]=n.useState(at),[Le]=n.useState(at),Ke=n.useRef(i);Ke.current!==i&&(Ke.current=i,Le.reset());const $=n.useCallback(async e=>{const t=Le.begin();try{const o=await r.bootstrap({recoverSession:!new URLSearchParams(window.location.search).has("signedOut"),space:i});if(!t())return;z(o),o.space&&o.space!==i&&N(o.space),b("ready"),A(null)}catch(o){if(!t())return;if(o instanceof te&&o.isUnauthenticated){if(!e&&h==="ready"){ae(!0);return}b("gate"),A(o.message);return}e?(b("error"),A(o instanceof Error?o.message:"Scout Chat could not be reached.")):ae(!0)}},[Le,r,h,i]);n.useEffect(()=>{$(!0)},[$]),We(()=>$(!1),un,h==="ready");const j=n.useMemo(()=>nn((C?.channels??[]).filter(e=>e.kind==="channel")),[C]),B=n.useMemo(()=>(C?.channels??[]).filter(e=>e.kind==="direct"||e.kind==="group_direct"),[C]),Ge=n.useMemo(()=>new Set([...j,...B].map(e=>e.id)),[j,B]),Ct=n.useMemo(()=>C?.spaces?.length?C.spaces:[{slug:i,title:i===ee?"Home":i,conversationId:null,isDefault:i===ee,channelCount:j.length}],[C,j.length,i]);n.useEffect(()=>{if(h!=="ready"||s&&Ge.has(s))return;const e=j[0]?.id??B[0]?.id??null;e!==s&&(P(e),d.write({channelId:e,space:i,messageId:null},!0))},[d,s,j,B,h,Ge,i]),n.useEffect(()=>{const e=()=>{const t=d.read();P(t.channelId),N(t.space??ee),_(t.messageId),F({kind:"none"}),W(t.channelId?"channel":"list")};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[d]);const v=n.useMemo(()=>[...j,...B].find(e=>e.id===s)??null,[j,s,B]),D=n.useCallback(async()=>{if(!s)return;const e=H.begin();try{const t=await r.feed(s,i);if(!e())return;R(t),se(null),ae(!1)}catch(t){if(!e())return;if(t instanceof te&&t.isUnauthenticated){se(t.message);return}ae(!0)}},[s,r,H,i]),re=n.useCallback(async()=>{if(!s)return;const e=H.begin();try{const t=await r.members(s,i);if(!e())return;V(o=>{const u=t.members??[];return u.length===0?o:we.current!==s?(we.current=s,u):sn(o,u)})}catch{if(!e())return;ae(!0)}},[s,r,H,i]),oe=n.useCallback(async()=>{if(!s||!l.inviteList)return;const e=H.begin();try{const t=await r.invites(s,i);if(!e())return;O(t.invites??[]),L(null)}catch(t){if(!e())return;O([]),L(t instanceof te&&t.isUnauthenticated?"Only members of this channel can manage its invitations.":t instanceof Error?t.message:"Invitations could not be read.")}},[l.inviteList,s,r,H,i]);n.useEffect(()=>{H.reset(),R(null),O([]),se(null),F({kind:"none"}),we.current!==s&&(we.current=null)},[s,H]),n.useEffect(()=>{s&&(D(),re(),oe())},[s,D,oe,re]),We(D,hn,h==="ready"&&!!s),We(re,mn,h==="ready"&&!!s),Mn(s,h==="ready"&&l.liveStream,D,i),n.useEffect(()=>{const e=setInterval(()=>wt(Date.now()),3e4);return()=>clearInterval(e)},[]);const be=n.useMemo(()=>{const e=new Map;for(const t of k)e.set(t.actorId,t);return e},[k]),X=n.useMemo(()=>an({messages:y?.messages??[],requests:y?.requests??[],nowMs:me}),[y,me]),f=C?.viewer??null,St=n.useMemo(()=>{const e=new Set;return!s||!f||rn({projection:X,viewerActorId:f.actorId,members:k})&&e.add(s),e},[s,k,X,f]);n.useEffect(()=>{const e=Xe.current;if(!e)return;e.scrollHeight-e.scrollTop-e.clientHeight<160&&(e.scrollTop=e.scrollHeight)},[X.lastMessageAt]);const Ae=s?ht[s]??"":"",je=s?pt[s]??null:null,Et=n.useCallback(e=>{s&&Ee(t=>({...t,[s]:e}))},[s]),De=n.useCallback(e=>{s&&He(t=>({...t,[s]:e}))},[s]),ve=n.useCallback(async e=>{if(!s)return!1;const t=e.body.trim(),o=e.files??[];if(!t&&o.length===0)return!1;const u=Re.current,E=u&&u.channelId===s&&u.body===t&&u.replyToMessageId===e.replyToMessageId&&u.targetActorId===e.targetActorId,T=E?u.requestId:nt(),g=E&&u?.attachments?u.attachments:o.length>0?await Nn(o,w=>r.uploadAttachments?r.uploadAttachments(s,w,i):pn(w)):void 0;return Re.current={channelId:s,body:t,replyToMessageId:e.replyToMessageId,targetActorId:e.targetActorId,requestId:T,attachments:g},e.targetActorId?await r.postAsk(s,{requestId:T,body:t,targetActorId:e.targetActorId,space:i,...e.replyToMessageId?{replyToMessageId:e.replyToMessageId}:{}}):await r.postMessage(s,{requestId:T,body:t,space:i,...e.replyToMessageId?{replyToMessageId:e.replyToMessageId}:{},...g&&g.length>0?{attachments:g}:{}}),Re.current=null,await D(),re(),!0},[s,r,D,re,i]),Ye=n.useCallback((e,t,o)=>{if(!s)return;const u=y;R(g=>g&&{...g,messages:g.messages.map(w=>w.id===e?{...w,reactions:on(w.reactions,t,o)}:w)});const E=nt();(o?r.removeReaction:r.addReaction)(s,{messageId:e,emoji:t,requestId:E,space:i}).then(()=>{D()}).catch(g=>{R(u),se(g instanceof te?g.message:"That reaction did not save.")})},[s,r,y,D,i]),Je=n.useCallback(e=>{s&&r.cancelAsk(s,e,i).then(t=>{R(o=>o&&{...o,requests:o.requests.map(u=>u.flightId===e?{...u,state:t.request.state}:u)})}).catch(()=>{D()})},[s,r,D,i]),yt=n.useCallback((e=[])=>!s||xe?Promise.resolve(!1):(Be(null),$e(!0),ve({body:Ae,replyToMessageId:null,targetActorId:je,files:e}).then(t=>(t&&(Ee(o=>({...o,[s]:""})),He(o=>({...o,[s]:null}))),t)).catch(t=>(Be(t instanceof te?t.message:"That did not send. The text is still here — try again."),!1)).finally(()=>$e(!1))),[je,s,Ae,ve,xe]),S=J.kind==="thread"?J.rootMessageId:null,Pe=S?mt[S]??"":"",kt=n.useCallback((e=[])=>!S||Te?Promise.resolve(!1):(qe(null),Ue(!0),ve({body:Pe,replyToMessageId:S,targetActorId:null,files:e}).then(t=>(t&&ze(o=>({...o,[S]:""})),t)).catch(t=>(qe(t instanceof te?t.message:"That reply did not send."),!1)).finally(()=>Ue(!1))),[ve,Pe,S,Te]),Ie=n.useCallback(e=>{P(e),d.write({channelId:e,space:i,messageId:null},!1),_(null),F({kind:"none"}),W("channel")},[d,i]),xt=n.useCallback(e=>{e!==i&&(N(e),P(null),z(null),R(null),V([]),O([]),F({kind:"none"}),W("list"),d.write({channelId:null,space:e,messageId:null},!1),_(null))},[d,i]),Qe=n.useCallback(e=>{if(!s)return;const t=Ut(window.location.href,{channelId:s,messageId:e,space:i});d.write({channelId:s,space:i,messageId:e},!0),_(e),fn(t)},[d,s,i]),K=n.useCallback(e=>{F(e),W(e.kind==="none"?"channel":"panel")},[]),Ze=n.useRef(null);n.useEffect(()=>{if(!x||!y)return;const e=y.messages.find(o=>o.id===x);if(!e||(e.replyToMessageId&&(F({kind:"thread",rootMessageId:e.replyToMessageId}),W("panel")),Ze.current===x))return;Ze.current=x;const t=window.requestAnimationFrame(()=>{document.querySelector(`[data-message-id="${CSS.escape(x)}"]`)?.scrollIntoView({block:"center",behavior:"smooth"})});return()=>window.cancelAnimationFrame(t)},[y,x]);const Z=n.useCallback(()=>{F({kind:"none"}),W("channel")},[]),Ce=n.useCallback(()=>{p.toggleCollapsed()},[p]),Tt=n.useCallback(e=>{e.preventDefault(),e.stopPropagation();const t=p.effectiveCollapsed,o=e.clientX,u=t?Oe:p.expandedWidth;Me.current=u,p.beginResize(u,t);const E=()=>{document.removeEventListener("pointermove",T),document.removeEventListener("pointerup",g),document.removeEventListener("pointercancel",w),window.removeEventListener("blur",w)},T=U=>{const ie=u+(U.clientX-o);Me.current=ie,p.updateResize(ie)},g=()=>{p.commitDrag(Me.current??u,t),E()},w=()=>{p.clearDrag(),E()};document.addEventListener("pointermove",T),document.addEventListener("pointerup",g),document.addEventListener("pointercancel",w),window.addEventListener("blur",w)},[p]),Mt=n.useCallback(e=>{e.preventDefault(),e.stopPropagation();const t=e.clientX,o=fe;Ne.current=o,ge(o);const u=()=>{document.removeEventListener("pointermove",T),document.removeEventListener("pointerup",g),document.removeEventListener("pointercancel",w),window.removeEventListener("blur",w)},E=U=>Math.max(lt,Math.min(dt,Math.round(U))),T=U=>{const ie=E(o-(U.clientX-t));Ne.current=ie,ge(ie)},g=()=>{const U=E(Ne.current??o);Ve(U),ot(U),ge(null),u()},w=()=>{ge(null),u()};document.addEventListener("pointermove",T),document.addEventListener("pointerup",g),document.addEventListener("pointercancel",w),window.addEventListener("blur",w)},[fe]),Nt=n.useCallback(()=>{(async()=>{try{await r.signOut();const e=new URL(window.location.href);e.searchParams.set("signedOut","1"),window.location.assign(e.pathname+e.search)}catch(e){se(e instanceof Error?e.message:"Could not sign out. Try again.")}})()},[r]),Rt=n.useCallback(async e=>{const t=await r.createChannel({title:e.title,...e.topic?{topic:e.topic}:{},space:i});await $(!1),Ie(t.conversation.id)},[r,$,Ie,i]),Lt=n.useCallback(async e=>{const t=await r.createSpace({title:e.title,...e.channel?{channel:e.channel}:{}});N(t.space.slug),z(null),R(null),V([]),O([]),P(t.channel?.id??null),F({kind:"none"}),W(t.channel?"channel":"list"),d.write({channelId:t.channel?.id??null,space:t.space.slug,messageId:null},!1)},[d,r]),At=n.useMemo(()=>l.spaceDelete&&r.deleteSpace?async e=>{await r.deleteSpace(e),z(null),R(null),V([]),O([]),P(null),F({kind:"none"}),W("list"),N(ee),d.write({channelId:null,space:ee,messageId:null},!1),await $(!0)}:null,[d,l.spaceDelete,r,$]),jt=n.useCallback(async e=>{if(!(!s||!f)){de(e);try{await r.revokeInvite(s,e,f.actorId,i),await oe()}catch(t){L(t instanceof Error?t.message:"That invitation could not be revoked.")}finally{de(null)}}},[s,r,oe,i,f]),Dt=n.useCallback(e=>{const t=be.get(e);if(!t||!s)return;const o=cn(t);Ee(u=>{const E=u[s]??"",T=E.length===0||E.endsWith(" ")?"":" ";return{...u,[s]:`${E}${T}@${o} `}}),l.asks&&ln(t)&&De(e),Z()},[l.asks,s,Z,be,De]);if(n.useEffect(()=>{const e=t=>{if((t.metaKey||t.ctrlKey)&&t.key.toLowerCase()==="k"){t.preventDefault(),he(o=>!o);return}if((t.metaKey||t.ctrlKey)&&t.key.toLowerCase()==="b"){const o=document.activeElement;if(o instanceof HTMLElement&&(o.tagName==="TEXTAREA"||o.tagName==="INPUT"||o.isContentEditable))return;t.preventDefault(),Ce();return}if(t.key==="Escape"){if(ke||ye)return;if(J.kind!=="none"){t.preventDefault(),Z();return}const o=document.activeElement;o instanceof HTMLElement&&o.tagName==="TEXTAREA"&&o.blur()}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[Z,J.kind,ke,ye,Ce]),h==="loading")return a.jsx(Fe,{theme:m,className:"chat-centered",children:a.jsx("p",{className:"chat-card-meta",children:"Loading Scout Chat…"})});if(h==="gate"&&c)return c({signInHref:`${l.signIn.startPath}?${l.signIn.returnToParam}=${encodeURIComponent(window.location.pathname+window.location.search)}`,signInLabel:l.signIn.label,note:l.signIn.note??null,message:M});if(h==="gate"||h==="error"){const e=h==="gate";return a.jsx(Fe,{theme:m,className:"chat-centered",children:a.jsxs("div",{className:"chat-card",children:[a.jsx("span",{className:"chat-card-eyebrow",children:"Scout Chat"}),a.jsx("h1",{children:e?"You are not signed in":"Scout Chat is unavailable"}),a.jsx("p",{children:e?l.signIn.prompt:M??"The chat service did not answer."}),e?a.jsxs(a.Fragment,{children:[a.jsx("a",{className:"btn btn--accent",href:`${l.signIn.startPath}?${l.signIn.returnToParam}=${encodeURIComponent(window.location.pathname+window.location.search)}`,children:l.signIn.label}),l.signIn.note?a.jsx("p",{className:"chat-card-note",children:l.signIn.note}):null]}):a.jsx("button",{type:"button",className:"btn",onClick:()=>{$(!0)},children:"Try again"}),e&&M?a.jsx("p",{className:"chat-card-note",children:M}):null]})})}const Pt=f?.displayName??"you",_t=k.length>0?dn(k):"reading…",G=p.effectiveCollapsed&&!Q,et=G?Oe:p.width,tt=It??fe,Ot={"--sidebar-w":`${et}px`,"--panel-w":`${tt}px`},_e=J.kind!=="none",Ft=S?(y?.messages??[]).find(e=>e.id===S)??null:null,Wt=S?X.repliesByRoot.get(S)??[]:[],zt=S?X.requestsByMessage.get(S)??null:null;return a.jsxs(Fe,{theme:m,className:"chat-space",compactView:bt,railed:G,style:Ot,children:[a.jsxs("header",{className:"chat-topbar",children:[a.jsxs("div",{className:"chat-topbar-band",children:[a.jsxs("div",{className:"chat-space-name",children:[a.jsx("b",{children:"Scout Chat"}),v?a.jsx("span",{children:v.authorityNodeId}):null]}),Q?null:a.jsx(Vt,{side:"left",collapsed:G,label:"Sidebar",onToggle:Ce,className:"chat-band-toggle"})]}),a.jsxs("button",{type:"button",className:"chat-jump",onClick:()=>he(!0),children:["⌕ Jump to a channel or person",a.jsx("span",{className:"chat-kbd",children:"⌘K"})]})]}),a.jsxs("div",{className:"chat-body","data-panel":_e&&!pe?"open":"closed",children:[a.jsx(Gt,{channels:j,directs:B,spaces:Ct,activeSpace:i,selectedId:s,addressedChannelIds:St,canCreate:f?.isOperator===!0,viewerName:Pt,viewerIsHost:f?.isOperator===!0,railed:G,themePreference:q,onSelect:Ie,onSelectSpace:xt,onCreate:Rt,onCreateSpace:Lt,onDeleteSpace:At,onInvite:()=>ue(!0),onExpandRail:Ce,onOpenProfile:v&&f?()=>K({kind:"member",actorId:f.actorId}):null,onThemePreference:Y,onSignOut:Nt}),v?a.jsxs("main",{className:"chat-channel","aria-label":st(v.title),children:[a.jsxs("header",{className:"chat-chan-head",children:[a.jsx("button",{type:"button",className:"chat-compact-back",onClick:()=>W("list"),"aria-label":"Back to channels",children:"‹"}),a.jsxs("span",{className:"chat-chan-name",children:[a.jsx("span",{className:"chat-hash",children:"#"}),v.title.replace(/^#/u,"")]}),a.jsx("span",{className:`chat-topic${v.topic?"":" chat-topic--empty"}`,children:v.topic??"No topic set"}),a.jsx(Qt,{members:k,countLabel:_t,onOpen:()=>K({kind:"members"})}),a.jsx("button",{type:"button",className:"btn btn--sm",onClick:()=>ue(!0),children:"Invite"})]}),a.jsxs("div",{className:"chat-feed",ref:Xe,role:"log","aria-label":"Channel messages",children:[ut?a.jsx("p",{className:"chat-feed-notice",children:"Reconnecting — this is the last reading that came back."}):null,Se?a.jsx("p",{className:"chat-feed-notice","data-tone":"error",children:Se}):null,!y&&!Se?a.jsx("p",{className:"chat-feed-notice",children:"Loading messages…"}):null,y&&X.entries.length===0?a.jsx("p",{className:"chat-feed-empty",children:"Nothing has been posted here yet. Say something, or invite the people and agents who belong in this room."}):null,X.entries.map(e=>e.kind==="day"?a.jsx("div",{className:"chat-day",children:a.jsx("span",{className:"label-sm",children:e.label})},e.id):e.kind==="status"?a.jsx("div",{className:"chat-status-line",children:e.message.body},e.id):e.kind==="status-fold"?a.jsx(Rn,{label:e.label,messages:e.messages},e.id):a.jsx(Zt,{message:e.message,members:be,nowMs:me,request:e.request,replyCount:e.replyCount,lastReplyAt:e.lastReplyAt,onOpenThread:()=>K({kind:"thread",rootMessageId:e.message.id}),onOpenMember:t=>K({kind:"member",actorId:t}),onReact:Ye,onCopyLink:Qe,onStopAsk:Je,focused:x===e.message.id},e.id))]}),a.jsx("div",{className:"chat-composer-wrap",children:a.jsx(Yt,{members:k,draft:Ae,onDraftChange:Et,askTargetId:je,onAskTargetChange:De,onSend:yt,sending:xe,error:ft,placeholder:`Message ${st(v.title)}`})})]}):a.jsx("main",{className:"chat-channel",children:a.jsx("div",{className:"chat-feed",children:a.jsx("p",{className:"chat-feed-empty",children:f?.isOperator?"Create a channel to start.":"You are not in a channel yet. Open the invitation you were sent."})})}),v&&_e&&pe&&!Q?a.jsx("div",{className:"chat-panel-scrim",role:"presentation",onClick:Z}):null,Q?null:a.jsx("div",{"data-scout-sidebar-resize-handle":"",role:"separator","aria-orientation":"vertical","aria-label":G?"Expand sidebar (drag out)":"Resize or collapse sidebar",title:G?"Drag out to expand · double-click to expand":"Drag to resize · drag in to collapse · double-click to reset",onPointerDown:Tt,onDoubleClick:e=>{e.preventDefault(),G?(p.setExpandedWidth(Xt),p.setCollapsed(!1)):p.resetExpandedWidth()},style:{position:"absolute",left:Math.max(0,et-3),top:0,bottom:0,width:6,zIndex:50,cursor:"ew-resize",touchAction:"none"}}),p.isSidebarResizing&&p.dragGhostWidth!=null?a.jsx("div",{"data-scout-sidebar-resize-ghost":"","aria-hidden":"true",className:"scout-sidebar-resize-ghost",style:{position:"absolute",left:p.dragGhostWidth,top:0,bottom:0,width:2,transform:"translateX(-50%)",zIndex:55,pointerEvents:"none"}}):null,v&&f?a.jsx(Jt,{view:J,channel:v,members:k,membersById:be,invites:le,inviteError:I,revokingInviteId:ne,viewerActorId:f.actorId,viewerIsOperator:f.isOperator,nowMs:me,threadRoot:Ft,threadReplies:Wt,threadRequest:zt,threadDraft:Pe,onThreadDraftChange:e=>{S&&ze(t=>({...t,[S]:e}))},onSendThreadReply:kt,onReact:Ye,onCopyLink:Qe,onStopAsk:Je,focusMessageId:x,threadSending:Te,threadError:gt,onClose:Z,onBack:()=>K({kind:"members"}),onOpenMember:e=>K({kind:"member",actorId:e}),onMention:Dt,onRevokeInvite:e=>{jt(e)},onInvite:()=>ue(!0),overlay:pe}):null,v&&_e&&!pe&&!Q?a.jsx("div",{"data-scout-sidebar-resize-handle":"",role:"separator","aria-orientation":"vertical","aria-label":"Resize inspector",title:"Drag to resize · double-click to reset",onPointerDown:Mt,onDoubleClick:e=>{e.preventDefault(),Ve(ce),ot(ce)},style:{position:"absolute",right:Math.max(0,tt-3),top:0,bottom:0,width:6,zIndex:50,cursor:"ew-resize",touchAction:"none"}}):null]}),ye&&v&&f?a.jsx(en,{space:i,channel:v,viewerActorId:f.actorId,viewerName:f.displayName,onClose:()=>ue(!1),onInvitesChanged:()=>{oe()}},`${i}:${v.id}`):null,ke?a.jsx(tn,{channels:[...j,...B],members:k,onClose:()=>he(!1),onPick:e=>{he(!1),e.kind==="channel"?Ie(e.id):K({kind:"member",actorId:e.id})}}):null]})}function Rn({label:c,messages:r}){const[l,d]=n.useState(!1);return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"chat-status-line",children:[a.jsx("button",{type:"button",className:"chat-fold",onClick:()=>d(m=>!m),children:`${l?"⌃":"⌵"} ${c}`}),a.jsx("span",{className:"chip chip--sm chip--mono chip--ghost chip--neutral",children:r.length})]}),l?r.map(m=>a.jsx("div",{className:"chat-status-line",children:m.body},m.id)):null]})}export{gs as ChatSpaceSurface};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.chat-space{position:fixed;inset:0;display:grid;grid-template-rows:40px 1fr;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-lg);line-height:var(--leading-normal);overflow:hidden}.chat-space *,.chat-space *:before,.chat-space *:after{box-sizing:border-box}:where(.chat-space,.chat-centered) button{font:inherit;color:inherit;background:none;border:none;padding:0;border-radius:var(--radius-sm);cursor:pointer}.chat-space :focus-visible:not(textarea):not(input),.chat-centered :focus-visible:not(textarea):not(input){outline:none;box-shadow:var(--focus-ring)}.chat-space[data-scout-theme] textarea:focus-visible,.chat-space[data-scout-theme] input:focus-visible,.chat-centered[data-scout-theme] textarea:focus-visible,.chat-centered[data-scout-theme] input:focus-visible{outline:none;box-shadow:none}.chat-topbar{display:flex;align-items:center;gap:var(--space-3xl);padding:0 var(--space-2xl) 0 0;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 55%,var(--bg));min-width:0}.chat-topbar-band{flex:0 0 var(--sidebar-w);width:var(--sidebar-w);box-sizing:border-box;display:flex;align-items:center;gap:var(--space-sm);min-width:0;padding:0 8px 0 var(--space-2xl)}.chat-space[data-rail=true] .chat-topbar-band{padding:0;justify-content:center}.chat-space[data-rail=true] .chat-space-name{display:none}.chat-space-name{flex:1;display:flex;align-items:baseline;gap:var(--space-sm);min-width:0}.chat-space-name b{font-size:var(--text-lg);font-weight:600}.chat-space-name span{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-jump{flex:1;max-width:420px;margin:0 auto;display:flex;align-items:center;gap:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-2xs) var(--space-md);color:var(--dim);font-size:var(--text-sm)}.chat-jump:hover{border-color:var(--dim);color:var(--muted)}.chat-kbd{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-2xs);border:1px solid var(--border);border-radius:var(--radius-xs);padding:1px 4px}.chat-body{position:relative;display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:0}.chat-body[data-panel=open]{grid-template-columns:var(--sidebar-w) minmax(0,1fr) var(--panel-w, 360px)}.chat-space[data-rail=true]{--sidebar-w: 56px}.chat-space{--panel-w: 360px}.chat-sidebar{border-right:1px solid var(--border);background:color-mix(in srgb,var(--surface) 35%,var(--bg));display:flex;flex-direction:column;min-height:0;padding:var(--space-lg) 0;overflow:hidden}.chat-sidebar[data-railed=true]{align-items:center}.chat-side-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column}.chat-sidebar[data-railed=true] .chat-side-list{align-items:center}.chat-space-switch{position:relative;flex-shrink:0;padding:0 var(--space-sm) var(--space-xs)}.chat-space-switch[data-railed=true]{padding:0 0 var(--space-2xs)}.chat-space-current{display:flex;align-items:center;gap:var(--space-2xs);width:100%;padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-md);color:var(--ink);font-size:var(--text-md);font-weight:600;text-align:left;min-height:26px}.chat-space-current:hover:not(:disabled){background:var(--scout-chrome-hover)}.chat-space-current:disabled{cursor:default;opacity:1}.chat-space-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-space-caret{color:var(--dim);font-size:var(--text-sm);line-height:1}.chat-space-menu{position:absolute;z-index:20;top:calc(100% - var(--space-2xs));left:var(--space-sm);right:var(--space-sm);display:flex;flex-direction:column;padding:var(--space-2xs) 0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md, 0 8px 24px rgb(0 0 0 / 18%))}.chat-space-menu-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-2xs) var(--space-md);color:var(--muted);font-size:var(--text-md);text-align:left;min-height:26px}.chat-space-menu-item:hover{background:var(--scout-chrome-hover)}.chat-space-menu-item[data-active=true]{color:var(--ink);font-weight:600}.chat-space-menu-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-space-menu-count{color:var(--dim);font-variant-numeric:tabular-nums}.chat-space-menu-rule{height:1px;background:var(--border);margin:var(--space-2xs) 0}.chat-space-menu-new{color:var(--dim)}.chat-space-menu-new:hover{color:var(--ink)}.chat-space-menu-danger{color:var(--dim)}.chat-space-menu-danger:hover{color:var(--red)}.chat-space-menu-danger:disabled{opacity:.6;cursor:default}.chat-space-menu .chat-create-form{padding:var(--space-xs) var(--space-md) var(--space-sm)}.chat-space-error{margin:0;color:var(--ink);font-size:var(--text-sm);line-height:var(--leading-snug)}.chat-space-rail{margin-bottom:var(--space-xs)}.chat-space-rail .chat-rail-glyph{font-weight:600}.chat-side-section{padding:var(--space-md) var(--space-lg) var(--space-2xs);display:flex;align-items:center;justify-content:space-between;color:var(--dim)}.chat-side-add{color:var(--dim);font-family:var(--font-mono);padding:0 var(--space-2xs)}.chat-side-add:hover{color:var(--ink)}.chat-side-tools{display:flex;align-items:center;gap:2px}.chat-side-tool{color:var(--dim);font-size:var(--text-xs);font-family:var(--font-sans);padding:0 5px;min-height:22px;border-radius:var(--radius-sm)}.chat-side-tool:hover{color:var(--ink);background:var(--scout-chrome-hover)}.chat-side-tool[data-active=true]{color:var(--ink);background:var(--scout-chrome-active)}.chat-side-search{display:flex;align-items:center;gap:var(--space-2xs);margin:0 var(--space-sm) var(--space-xs);padding:0 var(--space-sm);min-height:26px;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--dim)}.chat-side-search:focus-within{border-color:color-mix(in srgb,var(--ink) 22%,var(--border))}.chat-side-search-input{flex:1;min-width:0;border:none;background:transparent;color:var(--ink);font:inherit;font-size:var(--text-sm);padding:var(--space-2xs) 0}.chat-side-search-input:focus{outline:none}.chat-side-search-input::placeholder{color:var(--dim)}.chat-side-dms{flex-shrink:0;max-height:38%;overflow-y:auto;border-top:1px solid var(--border);padding-top:var(--space-2xs);display:flex;flex-direction:column}.chat-sidebar[data-railed=true] .chat-side-dms{align-items:center;width:100%;max-height:none;border-top:none}.chat-side-row{position:relative;display:flex;align-items:center;gap:var(--space-sm);width:calc(100% - var(--space-2xl));margin:0 var(--space-sm);padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-md);font-size:var(--text-md);color:var(--muted);min-height:26px;text-align:left;cursor:pointer}.chat-side-row:hover{background:var(--scout-chrome-hover)}.chat-side-row[aria-current=true]{background:var(--scout-chrome-active);color:var(--ink)}.chat-side-row .chat-hash{font-family:var(--font-mono);color:var(--dim);width:12px;text-align:center}.chat-side-row .chat-row-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-side-row[data-addressed=true]{color:var(--ink);font-weight:600}.chat-side-row[data-pinned=true] .chat-row-name{font-weight:600}.chat-row-actions{display:flex;align-items:center;gap:1px;margin-left:auto;opacity:0}.chat-side-row:hover .chat-row-actions,.chat-side-row:focus-within .chat-row-actions,.chat-side-row[data-pinned=true] .chat-row-actions{opacity:1}.chat-row-action{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;color:var(--dim);border-radius:var(--radius-sm)}.chat-row-action:hover{color:var(--ink);background:var(--scout-chrome-hover)}.chat-row-action[data-on=true]{color:var(--ink);opacity:1}.chat-side-empty{padding:var(--space-sm) var(--space-lg);color:var(--dim);font-size:var(--text-md);line-height:var(--leading-snug)}.chat-sidebar-foot{margin-top:auto;padding:var(--space-lg) var(--space-lg) 0}.chat-sidebar-foot .btn{width:100%;justify-content:flex-start;color:var(--muted);font-weight:500}.chat-rail-row{position:relative;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--muted);flex-shrink:0;margin-bottom:var(--space-2xs)}.chat-rail-row:hover{background:var(--scout-chrome-hover)}.chat-rail-row[aria-current=true]{background:var(--scout-chrome-active);color:var(--ink)}.chat-rail-row[data-addressed=true]{color:var(--ink)}.chat-rail-row .dot{position:absolute;top:3px;right:3px}.chat-rail-glyph{font-family:var(--font-mono);font-size:var(--text-md);line-height:1}.chat-rail-glyph .chat-hash{color:var(--dim)}.chat-rail-rule{width:24px;height:1px;background:var(--border);margin:var(--space-xs) 0;flex-shrink:0}.chat-sidebar-identity{position:relative;margin:var(--space-sm) var(--space-sm) 0;padding-top:var(--space-xs);border-top:1px solid var(--border);display:flex;align-items:center;gap:var(--space-2xs)}.chat-sidebar[data-railed=true] .chat-sidebar-identity{flex-direction:column;width:100%;margin:var(--space-sm) 0 0;padding:var(--space-xs) 0 0}.chat-you{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius-md);color:var(--muted);font-size:var(--text-md);text-align:left}.chat-you:hover{background:var(--scout-chrome-hover)}.chat-you[aria-expanded=true]{background:var(--scout-chrome-active)}.chat-sidebar[data-railed=true] .chat-you{flex:none;padding:var(--space-2xs)}.chat-you-who{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.chat-you-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-weight:500}.chat-you-role{color:var(--dim)}.chat-you-caret{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--dim)}.chat-you-menu{position:absolute;left:0;right:0;bottom:calc(100% + var(--space-xs));z-index:20;border:1px solid var(--border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 96%,var(--bg));box-shadow:0 12px 34px var(--shadow-soft);padding:var(--space-2xs);display:flex;flex-direction:column}.chat-sidebar[data-railed=true] .chat-you-menu{position:fixed;left:calc(var(--sidebar-w) + var(--space-xs));right:auto;bottom:var(--space-lg);width:232px}.chat-you-menu-head{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm)}.chat-you-menu-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-md);font-weight:500;color:var(--ink)}.chat-you-menu-rule{height:1px;background:var(--border);margin:var(--space-2xs) 0}.chat-you-menu-item{display:flex;align-items:center;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-md);color:var(--muted);text-align:left}.chat-you-menu-item:hover{background:var(--scout-chrome-hover);color:var(--ink)}.chat-you-menu-group{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm) var(--space-sm)}.chat-you-menu-group>.label-sm{color:var(--dim)}.chat-you-themes{display:flex;gap:var(--space-2xs)}.chat-you-themes .btn{flex:1;justify-content:center}.chat-you-themes .btn[data-active=true]{background:var(--scout-chrome-active);border-color:var(--dim);color:var(--ink)}.chat-create-form{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) var(--space-lg) var(--space-md)}.chat-input{width:100%;border:1px solid var(--border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 65%,var(--bg));color:var(--ink);font-family:var(--font-sans);font-size:var(--text-md);padding:var(--space-xs) var(--space-sm)}.chat-input::placeholder{color:var(--dim)}.chat-create-actions{display:flex;align-items:center;gap:var(--space-sm)}.chat-channel{display:flex;flex-direction:column;min-width:0;min-height:0}.chat-chan-head{min-height:44px;flex-shrink:0;display:flex;align-items:center;gap:var(--space-lg);padding:0 var(--space-2xl);border-bottom:1px solid var(--border)}.chat-chan-name{font-size:var(--text-lg);font-weight:600;white-space:nowrap}.chat-chan-name .chat-hash{color:var(--dim);font-family:var(--font-mono);margin-right:2px}.chat-topic{color:var(--muted);font-size:var(--text-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;text-align:left}.chat-topic--empty{color:var(--dim)}.chat-facepile{display:flex;align-items:center;gap:var(--space-sm)}.chat-facepile-faces{display:flex;align-items:center}.chat-facepile-face{margin-left:-6px;border:2px solid var(--bg)}.chat-facepile-faces>*:first-child{margin-left:0}.chat-pile-count{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase;font-weight:600;color:var(--dim);white-space:nowrap}.chat-feed{flex:1;overflow-y:auto;overflow-x:hidden;min-width:0;padding:var(--space-3xl) var(--space-4xl);display:flex;flex-direction:column;gap:var(--space-2xl);min-height:0}.chat-day{display:flex;align-items:center;gap:var(--space-lg);color:var(--dim)}.chat-day:before,.chat-day:after{content:"";flex:1;height:1px;background:var(--border)}.chat-turn{display:grid;grid-template-columns:32px minmax(0,1fr);gap:var(--space-lg)}.chat-turn>:first-child{align-self:start;justify-self:start}.chat-turn>:last-child{min-width:0}.chat-turn-meta{display:flex;align-items:baseline;gap:var(--space-sm);position:relative}.chat-turn-meta .chat-who{font-size:var(--text-md);font-weight:600}.chat-turn-meta .chat-when{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--dim)}.chat-when-link{margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.chat-when-link:hover .chat-when{color:var(--muted);text-decoration:underline;text-underline-offset:2px}.chat-turn[data-focused=true]{border-radius:var(--radius-md);outline:1px solid color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:6px}.chat-turn-body{font-size:var(--text-lg);line-height:var(--leading-snug);color:color-mix(in srgb,var(--ink) 92%,transparent);margin-top:var(--space-3xs);overflow-wrap:anywhere}.chat-mention{font-weight:600;background:var(--scout-chrome-hover);border-radius:var(--radius-xs);padding:0 3px}.chat-md{display:grid;gap:.7em;max-width:100%}.chat-md>*{margin:0}.chat-md-p{white-space:pre-wrap}.chat-md-h{font-weight:650;line-height:var(--leading-tight);color:var(--ink)}.chat-md-h1{font-size:1.15em}.chat-md-h2{font-size:1.06em}.chat-md-h3{font-size:var(--text-md);font-weight:600;color:var(--muted)}.chat-md-hr{border:0;border-top:1px solid var(--border);height:0}.chat-md-list{padding-left:1.2em}.chat-md-list li+li{margin-top:.22em}.chat-md-quote{border-left:2px solid var(--border);color:var(--muted);padding:.15em 0 .15em .75em;white-space:pre-wrap}.chat-md-pre{margin:0;padding:var(--space-sm) var(--space-md);overflow:auto;border:1px solid var(--border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 55%,var(--bg));font-family:var(--font-mono);font-size:var(--text-md);line-height:var(--leading-snug);white-space:pre}.chat-md-code{font-family:var(--font-mono);font-size:.9em;padding:.05em .3em;border-radius:var(--radius-xs);background:var(--scout-chrome-hover)}.chat-md-table-wrap{max-width:100%;overflow-x:auto}.chat-md-table{border-collapse:collapse;font-size:.94em}.chat-md-table th,.chat-md-table td{border:1px solid var(--border);padding:var(--space-2xs) var(--space-sm);text-align:left;vertical-align:top}.chat-md-table th{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:650;color:var(--muted)}.chat-md strong{font-weight:650}.chat-md em{font-style:italic}.chat-status-line{display:flex;align-items:center;gap:var(--space-sm);padding-left:44px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--dim)}.chat-fold{color:var(--dim);display:inline-flex;align-items:center;gap:var(--space-xs)}.chat-fold:hover{color:var(--muted)}.chat-ask-card{margin-top:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-lg);background:transparent;padding:var(--space-sm) var(--space-lg);display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-md);max-width:min(460px,100%)}.chat-ask-card[data-tone=owed]{border-color:color-mix(in srgb,var(--accent) 32%,var(--border));background:color-mix(in srgb,var(--accent) 3%,transparent)}.chat-ask-card .label-sm{color:var(--dim)}.chat-ask-chip{min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:var(--leading-snug)}.chat-ask-stop{margin-left:auto;color:var(--muted);font-size:var(--text-xs);font-family:var(--font-sans);min-height:22px;padding:0 8px;border-radius:var(--radius-sm)}.chat-ask-stop:hover{color:var(--ink);background:var(--scout-chrome-hover)}.chat-ask-chip[data-tone=owed]{color:var(--accent)}.chat-ask-chip[data-tone=failed]{color:var(--red)}.chat-ask-chip[data-tone=settled]{color:var(--muted)}.chat-thread-stub{margin-top:var(--space-sm);display:inline-flex;align-items:center;gap:var(--space-xs);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--dim)}.chat-thread-stub:hover{color:var(--muted)}.chat-thread-stub[data-empty=true]{opacity:0;transition:opacity .12s ease}.chat-turn:hover .chat-thread-stub[data-empty=true],.chat-turn:focus-within .chat-thread-stub[data-empty=true]{opacity:1}@media(hover:none){.chat-thread-stub[data-empty=true]{opacity:1}}.chat-reaction-row{margin-top:var(--space-sm);display:flex;flex-wrap:wrap;align-items:center;gap:6px}.chat-reaction{display:inline-flex;align-items:center;gap:.3em;min-height:22px;padding:0 8px;border:0;border-radius:999px;font-family:var(--font-sans);font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted);background:color-mix(in srgb,var(--ink) 7%,transparent);transition:background-color .12s ease,color .12s ease,transform 80ms ease}.chat-reaction:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 12%,transparent)}.chat-reaction:active{transform:scale(.96)}.chat-reaction:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.chat-reaction[data-me=true]{color:var(--ink);background:color-mix(in srgb,var(--ink) 14%,transparent)}.chat-reaction[data-me=true]:hover{background:color-mix(in srgb,var(--ink) 18%,transparent)}.chat-reaction-picker{position:relative;margin-left:auto;display:flex;align-items:center;gap:0;opacity:0;pointer-events:none;transition:opacity .12s ease}.chat-turn:hover .chat-reaction-picker,.chat-turn:focus-within .chat-reaction-picker,.chat-turn[data-reacting] .chat-reaction-picker,.chat-reaction-picker[data-expanded=true]{opacity:1;pointer-events:auto}@media(hover:none){.chat-turn:hover .chat-reaction-picker,.chat-turn:focus-within .chat-reaction-picker{opacity:0;pointer-events:none}.chat-turn[data-reacting] .chat-reaction-picker,.chat-reaction-picker[data-expanded=true]{opacity:1;pointer-events:auto}}.chat-reaction-sheet{position:absolute;top:calc(100% + 4px);right:0;z-index:4;display:grid;grid-template-columns:repeat(6,1.85em);gap:0;padding:4px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);box-shadow:0 8px 24px var(--shadow-soft)}.chat-reaction-picker button{min-width:1.75em;min-height:1.75em;padding:0;border:0;border-radius:6px;background:transparent;font-size:var(--text-md);line-height:1;transition:background-color .1s ease,transform 80ms ease}.chat-reaction-picker button:hover{background:color-mix(in srgb,var(--ink) 10%,transparent)}.chat-reaction-picker button:active{transform:scale(.92)}.chat-reaction-picker button:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.chat-reaction-picker button[aria-pressed=true]{background:color-mix(in srgb,var(--ink) 14%,transparent)}.chat-reaction-more{color:var(--dim);font-size:var(--text-sm)}.chat-reaction-more:hover{color:var(--muted)}@media(prefers-reduced-motion:reduce){.chat-reaction,.chat-reaction-picker button{transition:none;transform:none}}.chat-feed-empty,.chat-feed-notice{color:var(--dim);font-size:var(--text-md);line-height:var(--leading-snug);max-width:52ch}.chat-feed-notice[data-tone=error]{color:var(--red)}.chat-composer-wrap{flex-shrink:0;padding:var(--space-lg) var(--space-4xl) var(--space-2xl)}.chat-composer{position:relative;border:1px solid var(--border);border-radius:var(--radius-xl);background:color-mix(in srgb,var(--surface) 65%,var(--bg));transition:border-color var(--motion-duration-hover) var(--motion-ease-standard)}.chat-composer:hover{border-color:color-mix(in srgb,var(--ink) 14%,var(--border))}.chat-composer:focus-within{border-color:color-mix(in srgb,var(--ink) 22%,var(--border))}.chat-composer[data-drag=true]{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.chat-composer-file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.chat-composer-files{display:flex;flex-wrap:wrap;gap:var(--space-xs);padding:0 var(--space-xl) var(--space-sm)}.chat-composer-file{display:inline-flex;align-items:center;gap:var(--space-2xs);max-width:100%;padding:0 var(--space-xs);border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted)}.chat-composer-file span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-composer-file button{color:var(--dim)}.chat-composer-file button:hover{color:var(--ink)}.chat-attach{margin-top:var(--space-sm);display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-xs)}.chat-attach-image{display:block;max-width:min(360px,100%)}.chat-attach-image img,.chat-attach-video{display:block;max-width:min(420px,100%);height:auto;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg)}.chat-attach-image img{aspect-ratio:auto 3 / 2}.chat-attach-video{aspect-ratio:auto 16 / 9}.chat-attach-audio{display:block;width:min(360px,100%);margin-top:2px}.chat-attach-html{display:block;width:min(420px,100%);height:240px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg)}.chat-attach-file{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted);text-decoration:underline;text-underline-offset:2px}.chat-url{color:inherit;text-decoration:underline;text-underline-offset:2px;text-decoration-color:color-mix(in srgb,var(--ink) 28%,transparent)}.chat-url:hover{text-decoration-color:color-mix(in srgb,var(--ink) 55%,transparent)}.chat-link-card{display:grid;margin-top:var(--space-sm);max-width:min(360px,100%);overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 65%,var(--bg));color:inherit;text-decoration:none;transition:border-color var(--motion-duration-hover) var(--motion-ease-standard)}.chat-link-card:hover{border-color:color-mix(in srgb,var(--ink) 14%,var(--border))}.chat-link-card-image{display:block;width:100%;height:auto;aspect-ratio:auto 2 / 1;object-fit:cover;background:var(--bg);border-bottom:1px solid var(--border)}.chat-link-card-copy{display:grid;gap:2px;min-width:0;padding:var(--space-sm) var(--space-md)}.chat-link-card-site{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-link-card-title{font-size:var(--text-md);font-weight:600;line-height:var(--leading-tight);color:var(--ink);overflow-wrap:anywhere}.chat-link-card-desc{color:var(--muted);font-size:var(--text-md);line-height:var(--leading-tight);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.chat-ask-target{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl) 0}.chat-ask-target-clear{color:var(--dim);font-family:var(--font-mono)}.chat-ask-target-clear:hover{color:var(--ink)}.chat-composer-input{display:block;width:100%;resize:none;border:none;background:transparent;color:color-mix(in srgb,var(--ink) 92%,transparent);font-family:var(--font-sans);font-size:var(--text-lg);line-height:var(--leading-snug);padding:var(--space-lg) var(--space-xl);min-height:50px;max-height:180px;overflow-y:auto;white-space:pre-wrap;overflow-wrap:anywhere}.chat-composer-input p{margin:0}.chat-composer-input p+p{margin-top:.55em}.chat-composer-input[data-empty=true]:before{content:attr(data-placeholder);color:var(--dim);pointer-events:none}.chat-composer[data-variant=thread] .chat-composer-input{min-height:42px}.chat-composer-input:focus{outline:none}.chat-composer-input[aria-disabled=true]{cursor:progress}.chat-composer-foot{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-2xs) var(--space-sm) var(--space-sm)}.chat-composer-tools{display:flex;align-items:center;gap:var(--space-3xs);min-width:0}.chat-composer-tool{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2xs);min-height:26px;padding:0 var(--space-xs);border-radius:var(--radius-md);color:var(--muted);font-size:var(--text-md);white-space:nowrap}.chat-composer-tool--icon{width:26px;padding:0;color:var(--dim)}.chat-composer-tool:hover:not(:disabled){background:var(--scout-chrome-hover);color:var(--ink)}.chat-composer-tool[data-active=true]{background:var(--scout-chrome-active);color:var(--ink)}.chat-composer-tool:disabled{opacity:.4;cursor:not-allowed}.chat-composer-hint{flex:1 1 24ch;min-width:0;color:var(--muted);font-size:var(--text-md);line-height:var(--leading-snug)}.chat-composer-foot .chat-composer-right{margin-left:auto;display:flex;align-items:center;gap:var(--space-md)}.chat-enter{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--dim)}.chat-composer-send{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:30px;height:30px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--ink) 92%,var(--bg));color:var(--bg);transition:background-color var(--motion-duration-hover) var(--motion-ease-standard),color var(--motion-duration-hover) var(--motion-ease-standard)}.chat-composer-send:hover:not(:disabled){background:var(--ink)}.chat-composer-send:disabled{background:transparent;border:1px solid var(--border);color:var(--dim);cursor:not-allowed}.chat-composer-spin{animation:chat-composer-spin .7s linear infinite}@keyframes chat-composer-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.chat-composer,.chat-composer-send{transition:none}.chat-composer-spin{animation:none}}.chat-send-error{margin:0;padding:0 var(--space-xl) var(--space-2xs);color:var(--red);font-size:var(--text-md);line-height:var(--leading-snug)}.chat-mention-popup{position:relative;border-top:1px solid var(--border);max-height:200px;overflow-y:auto;padding:var(--space-2xs) 0}.chat-mention-option{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-2xs) var(--space-xl);font-size:var(--text-md);color:var(--muted);text-align:left}.chat-mention-option:hover{background:var(--scout-chrome-hover);color:var(--ink)}.chat-mention-option[data-active=true]{background:var(--scout-chrome-active);color:var(--ink)}.chat-mention-option:disabled{color:var(--dim);cursor:default}.chat-mention-option:disabled:hover{background:none;color:var(--dim)}.chat-mention-option .chat-mention-kind{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--dim)}.chat-rpanel{position:relative;width:var(--panel-w, 360px);min-width:0;border-left:1px solid var(--border);background:color-mix(in srgb,var(--surface) 35%,var(--bg));display:flex;flex-direction:column;min-height:0}.chat-rpanel-head{min-height:44px;flex-shrink:0;display:flex;align-items:center;gap:var(--space-sm);padding:0 var(--space-2xl);border-bottom:1px solid var(--border)}.chat-rpanel-head .chat-rpanel-title{font-size:var(--text-md);font-weight:600}.chat-rpanel-head .chat-rpanel-scope{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--dim)}.chat-rpanel-close{margin-left:auto;color:var(--dim);font-family:var(--font-mono);font-size:var(--text-xl);padding:0 var(--space-2xs)}.chat-rpanel-close:hover{color:var(--ink)}.chat-rpanel-back{color:var(--dim);font-family:var(--font-mono);padding:0 var(--space-2xs)}.chat-rpanel-back:hover{color:var(--ink)}.chat-rpanel-body{flex:1;overflow-y:auto;padding:var(--space-2xl);display:flex;flex-direction:column;gap:var(--space-2xl);min-height:0}.chat-anchor-msg{border-bottom:1px solid var(--border);padding-bottom:var(--space-2xl)}.chat-thread-composer{margin-top:auto}.chat-psec{border-top:1px solid var(--border);padding-top:var(--space-lg);margin-top:var(--space-lg)}.chat-psec:first-child{border-top:none;padding-top:0;margin-top:0}.chat-psec>.label-sm{display:block;color:var(--dim);margin-bottom:var(--space-sm)}.chat-member-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-xs) 0;width:100%;text-align:left}.chat-member-row:hover .chat-member-name{color:var(--ink)}.chat-member-name{font-size:var(--text-md);color:var(--ink);flex:1;min-width:0}.chat-member-fact{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--dim);white-space:nowrap}.chat-member-fact[data-stranded=true]{color:var(--red)}.chat-invite-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-xs) 0;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted)}.chat-invite-row .chat-token-hint{color:var(--ink)}.chat-invite-revoke{margin-left:auto;color:var(--dim);font-size:var(--text-xs);font-family:var(--font-sans);font-weight:500}.chat-invite-revoke:hover{color:var(--red)}.chat-mcard-head{display:flex;align-items:center;gap:var(--space-lg)}.chat-mcard-name{font-size:var(--text-lg);font-weight:600}.chat-mcard-sub{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--muted);margin-top:2px}.chat-kv{display:grid;grid-template-columns:74px minmax(0,1fr);gap:var(--space-xs) var(--space-lg);align-items:baseline}.chat-kv .chat-k{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase;font-weight:600;color:var(--dim)}.chat-kv .chat-v{font-size:var(--text-md);color:var(--ink);font-family:var(--font-mono);display:flex;align-items:center;gap:var(--space-sm);min-width:0;overflow-wrap:anywhere}.chat-copy-inline{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--dim);border:1px solid var(--border);border-radius:var(--radius-xs);padding:0 4px;flex-shrink:0}.chat-copy-inline:hover{color:var(--ink)}.chat-conn{display:flex;flex-direction:column;gap:var(--space-2xs)}.chat-conn-state{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-md);font-weight:600}.chat-conn-detail,.chat-conn-evidence{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--dim);line-height:var(--leading-snug)}.chat-conn-detail{font-family:var(--font-sans)}.chat-scrim{position:fixed;inset:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;padding:var(--space-4xl);z-index:40}.chat-sheet{width:480px;max-width:100%;max-height:100%;overflow-y:auto;border-radius:var(--radius-xl);border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);background:var(--surface);padding:var(--space-3xl);box-shadow:0 12px 34px var(--shadow-soft);display:flex;flex-direction:column;gap:var(--space-2xl)}.chat-sheet-title{display:flex;align-items:center}.chat-sheet-title h2{margin:0;font-size:var(--text-2xl);font-weight:600}.chat-sheet-explain{color:var(--muted);font-size:var(--text-md);margin:0 0 var(--space-md);line-height:var(--leading-snug)}.chat-copy-block{font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.6;color:color-mix(in srgb,var(--ink) 88%,transparent);overflow-wrap:anywhere;white-space:pre-wrap}.chat-sheet-foot{color:var(--dim);font-size:var(--text-sm);border-top:1px solid var(--border);padding-top:var(--space-lg);margin:0}.chat-sheet-error{color:var(--red);font-size:var(--text-md)}.chat-invite-switch{display:flex;gap:var(--space-xs);padding:var(--space-xs);border-radius:var(--radius-lg);background:var(--bg)}.chat-invite-switch button{flex:1;display:flex;justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-md);color:var(--muted);font-size:var(--text-md)}.chat-invite-switch button[aria-pressed=true]{background:var(--surface);color:var(--ink)}.chat-invite-switch button:hover{color:var(--ink)}.chat-invite-heading{margin:0 0 var(--space-sm);font-size:var(--text-xl);font-weight:500;line-height:var(--leading-snug)}.chat-invite-primary{margin-top:var(--space-2xl)}.chat-invite-copy{width:100%;min-height:40px;justify-content:center;gap:var(--space-sm)}.chat-invite-next{margin:var(--space-sm) 0 0;text-align:center;color:var(--muted);font-size:var(--text-sm)}.chat-invite-meta{margin:var(--space-lg) 0 0;color:var(--dim);font-size:var(--text-sm);line-height:var(--leading-snug)}.chat-invite-connection{display:flex;align-items:flex-start;gap:var(--space-md);margin-top:var(--space-xl);padding:var(--space-lg);border-radius:var(--radius-md);background:var(--bg);color:var(--muted)}.chat-invite-connection>svg{flex-shrink:0;margin-top:2px}.chat-invite-connection p{margin:0;font-size:var(--text-sm);line-height:var(--leading-snug);overflow-wrap:anywhere}.chat-invite-connection .chat-invite-connection-title{color:var(--ink);margin-bottom:var(--space-xs);font-weight:500}.chat-invite-details,.chat-invite-preview{margin-top:var(--space-md);font-size:var(--text-sm);color:var(--muted)}.chat-invite-details summary,.chat-invite-preview summary{cursor:pointer;width:fit-content;padding:var(--space-xs) 0}.chat-invite-details p{margin-top:var(--space-sm)}.chat-invite-preview .chat-copy-block{margin-top:var(--space-md);-webkit-user-select:text;user-select:text}.chat-invite-preview .chat-invite-meta{margin-top:var(--space-sm)}.chat-palette{width:480px;max-width:100%;border-radius:var(--radius-xl);border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);background:var(--surface);box-shadow:0 12px 34px var(--shadow-soft);overflow:hidden;align-self:flex-start;margin-top:12vh}.chat-palette input{width:100%;border:none;border-bottom:1px solid var(--border);background:transparent;color:var(--ink);font-family:var(--font-sans);font-size:var(--text-xl);padding:var(--space-lg) var(--space-2xl)}.chat-palette input:focus{outline:none}.chat-palette-list{max-height:320px;overflow-y:auto;padding:var(--space-sm) 0}.chat-palette-option{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-xs) var(--space-2xl);font-size:var(--text-md);color:var(--muted);text-align:left}.chat-palette-option[data-active=true]{background:var(--scout-chrome-active);color:var(--ink)}.chat-palette-empty{padding:var(--space-lg) var(--space-2xl);color:var(--dim);font-size:var(--text-md)}.chat-coin{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0;font-family:var(--font-mono);font-weight:600;letter-spacing:var(--tracking-xs);color:var(--scout-chrome-avatar-ink)}.chat-sprite{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.chat-sprite-owner{position:absolute;right:-3px;bottom:-3px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:2px solid var(--bg);font-family:var(--font-mono);font-weight:600;color:var(--scout-chrome-avatar-ink)}.chat-centered{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:var(--space-4xl);background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-lg);overflow-y:auto}.chat-card{width:420px;max-width:100%;border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);border-radius:var(--radius-xl);background:color-mix(in srgb,var(--surface) 96%,transparent);padding:var(--space-4xl);display:flex;flex-direction:column;gap:var(--space-lg);box-shadow:0 12px 34px var(--shadow-soft)}.chat-card-eyebrow{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-md);text-transform:uppercase;color:var(--dim)}.chat-card h1{margin:0;font-size:var(--text-4xl);font-weight:600;letter-spacing:-.01em}.chat-card p{margin:0;color:var(--muted);font-size:var(--text-md);line-height:var(--leading-snug)}.chat-card-meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--dim)}.chat-card-field{display:flex;flex-direction:column;gap:var(--space-xs)}.chat-card-field>.label-md{color:var(--dim)}.chat-card .chat-input{font-size:var(--text-lg);padding:var(--space-sm) var(--space-md)}.chat-card-note{color:var(--dim);font-size:var(--text-sm);line-height:var(--leading-snug)}.chat-card-error{color:var(--red);font-size:var(--text-md)}.chat-card .btn--accent{justify-content:center}@media(max-width:1199px){.chat-body[data-panel=open]{grid-template-columns:var(--sidebar-w) minmax(0,1fr)}.chat-rpanel[data-overlay=true]{position:fixed;top:40px;right:0;bottom:0;width:var(--panel-w, 360px);max-width:100%;z-index:30;box-shadow:0 12px 34px var(--shadow-soft);background:color-mix(in srgb,var(--surface) 92%,var(--bg))}.chat-panel-scrim{position:fixed;top:40px;inset-inline:0;bottom:0;background:var(--scrim-soft);z-index:29}}@media(max-width:899px){.chat-body,.chat-body[data-panel=open]{grid-template-columns:minmax(0,1fr)}.chat-space[data-compact-view=list] .chat-channel,.chat-space[data-compact-view=channel] .chat-sidebar,.chat-space[data-compact-view=panel] .chat-sidebar,.chat-space[data-compact-view=panel] .chat-channel{display:none}.chat-sidebar{border-right:none}.chat-side-row{min-height:34px;font-size:var(--text-lg)}.chat-topbar-band{flex:1;width:auto;padding-right:0}.chat-feed{padding:var(--space-2xl)}.chat-composer-wrap{padding:var(--space-md) var(--space-2xl) var(--space-2xl)}.chat-enter{display:none}.chat-composer-send{width:36px;height:36px}.chat-composer-tool{min-height:32px}.chat-composer-tool--icon{width:32px}.chat-rpanel[data-overlay=true]{position:static;width:auto;box-shadow:none;border-left:none}.chat-panel-scrim,.chat-jump{display:none}.chat-sheet{padding:var(--space-2xl)}.chat-scrim{padding:0;align-items:stretch}.chat-sheet{width:100%;border-radius:0;border:none;max-height:none}.chat-centered{padding:var(--space-2xl);align-items:flex-start}.chat-card{width:100%;padding:var(--space-3xl) var(--space-2xl)}}.chat-compact-back{display:none;color:var(--dim);font-family:var(--font-mono);padding:0 var(--space-2xs)}@media(max-width:899px){.chat-compact-back{display:inline-flex}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as a,v as i,a as S,w as p,x as f,y as h,z as d,A as u,b as l,j as v}from"./index-BFbLvCJn.js";import{L as T,D as E}from"./theme-vars-DNK0nn3k.js";function w(){const[e,c]=a.useState(()=>i()),[r,o]=a.useState(()=>S());a.useEffect(()=>{p(r,h(),f())},[r]),a.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const t=window.matchMedia("(prefers-color-scheme: light)"),s=()=>o(u(e));return t.addEventListener("change",s),()=>t.removeEventListener("change",s)},[e]);const n=a.useCallback(t=>{d(t),c(t),o(u(t))},[]);return{theme:r,preference:e,setPreference:n}}function g(){return w().theme}function y({theme:e,className:c,compactView:r,railed:o,style:n,children:t}){const s=a.useMemo(()=>l(),[]),m=a.useMemo(()=>({...e==="light"?T:E,...s??{},...n}),[e,s,n]);return v.jsx("div",{className:c,"data-scout-theme":e,"data-scout-theme-mode":e,...r?{"data-compact-view":r}:{},...o?{"data-rail":"true"}:{},style:m,children:t})}export{y as ChatSpaceTheme,w as useScoutStandaloneAppearance,g as useScoutStandaloneTheme};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as o,j as a}from"./index-BFbLvCJn.js";import{f as k}from"./cache-DGBo3vIf.js";import{u as F,f as I,l as N,L as _,D}from"./usePierreRuntime-DUXZ-DTK.js";/* empty css */const R=["unstaged","staged","branch"];function L(n){if(!n.startsWith("/"))return null;const t=[];for(const e of n.split("/"))if(!(!e||e==="."))if(e===".."){if(t.length===0)return null;t.pop()}else t.push(e);return t}function A(n,t){const e=L(n),s=L(t);return!e||!s||s.length<=e.length||e.some((c,u)=>s[u]!==c)?null:s.slice(e.length).join("/")}function y(n,t){return n.files.findIndex(e=>e.newPath===t||e.oldPath===t)}function K(n,t){return n.find(e=>y(e,t)>=0)?.kind??null}const M=()=>{},T=()=>{};function O({root:n,file:t}){const e=o.useMemo(()=>A(n,t),[t,n]),[s,c]=o.useState(null),[u,d]=o.useState("loading"),[P,m]=o.useState(null),[S,h]=o.useState(null),{pierre:j,pierrePhase:v,pierreError:C,pierreTheme:b,retryPierre:E}=F(s);o.useEffect(()=>{let r=!1;if(c(null),d("loading"),m(null),h(null),!e){d("ready");return}return k(n,R,{files:[e],tier:"patch"}).then(i=>{r||(c(i.snapshot),h(K(i.snapshot.layers,e)),d("ready"))},i=>{r||(m(i instanceof Error?i.message:String(i)),d("error"))}),()=>{r=!0}},[e,n]);const f=o.useMemo(()=>e?s?.layers.filter(r=>y(r,e)>=0)??[]:[],[e,s]),l=f.find(r=>r.kind===S)??f[0]??null,p=l&&e?y(l,e):-1,g=l&&p>=0?I(l.files[p],p):null;return u==="loading"?a.jsx("div",{className:"s-code-empty",children:"Loading file changes…"}):u==="error"?a.jsx("div",{className:"s-code-empty",children:P??"Couldn’t load this file’s changes."}):!s||!l||!g?a.jsx("div",{className:"s-code-empty",children:"No tracked patch is available. The file is clean, or it is untracked and has no Git baseline yet."}):a.jsxs("div",{className:"s-code-diff",children:[f.length>1?a.jsx("div",{className:"s-code-diffLayers",role:"tablist","aria-label":"Change layer",children:f.map(r=>{const i=N(r),x=r.kind===l.kind;return a.jsxs("button",{type:"button",role:"tab","aria-selected":x,className:"s-code-diffLayer","data-selected":x||void 0,onClick:()=>h(r.kind),children:[_[r.kind],a.jsxs("span",{children:["+",i.add," −",i.del]})]},r.kind)})}):null,a.jsx(D,{layer:l,patchLayer:l,patchPhase:"ready",patchError:null,selectedFileKey:g,renderKey:s.render.renderKey,theme:b,layout:"split",pierre:j,pierrePhase:v,pierreError:C,onRetryPierre:E,onIncludeLineContext:M,onIncludeSelectionContext:T,contextActions:!1})]})}const G=Object.freeze(Object.defineProperty({__proto__:null,CodeDiffPane:O},Symbol.toStringTag,{value:"Module"}));export{O as C,G as a,A as r};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as h,j as i}from"./index-BFbLvCJn.js";import{C as ne}from"./chevron-down-DEDSNJNY.js";import{S as oe}from"./search-Bv2IONmc.js";const se=new Set(["hud","tail","terminal","services","pair","osn-auth","notification","code","file"]);function L(e){const t=e?.trim();return t||void 0}function q(e){if(!e)return;const t=Number.parseInt(e,10);return Number.isSafeInteger(t)&&t>0?t:void 0}function ce(e){return e.split("/").filter(t=>t.length>0).map(encodeURIComponent).join("/")}function R(e){return e.map(t=>{try{return decodeURIComponent(t)}catch{return t}}).join("/")}function ie(e){const t=q(e.get("line")),n=q(e.get("endLine")),r=t&&n&&n>=t?n:void 0;return{...L(e.get("wt"))?{wt:L(e.get("wt"))}:{},...t?{line:t}:{},...r?{endLine:r}:{}}}function G(e){const t=e.trim();if(!t)return null;if(t.startsWith("/")||t.startsWith("~/")){const u=t.replace(/^~/,""),d=t.startsWith("~")?t:u;return{root:d,file:d}}if(!/^scout:/i.test(t))return null;let n;try{n=new URL(t)}catch{return null}if(n.protocol.toLowerCase()!=="scout:")return null;const r=(n.hostname||n.host||"").toLowerCase(),c=n.pathname.split("/").filter(u=>u.length>0),s=ie(n.searchParams);if(!r||r==="file"){const u=c;if(u.length===0)return null;const d=`/${R(u)}`,m=L(n.searchParams.get("root")),j=L(n.searchParams.get("file"));return{root:m??d,file:j??d,...s}}if(r==="code"){if(c.length===0){const m=L(n.searchParams.get("root")),j=L(n.searchParams.get("file")),b=L(n.searchParams.get("project")),y=L(n.searchParams.get("path"));return!m&&!j&&!b?{...s}:{...m?{root:m}:{},...j?{file:j}:{},...b?{project:b}:{},...y?{path:y}:{},...s}}const u=R([c[0]]),d=c.length>1?R(c.slice(1)):void 0;return{project:u,...d?{path:d}:{},...s}}if(se.has(r))return null;const a=decodeURIComponent(r),l=c.length>0?R(c):void 0;return{project:a,...l?{path:l}:{},...s}}function ae(e){const t=new URLSearchParams;e.wt&&t.set("wt",e.wt),e.line&&e.line>0&&t.set("line",String(e.line)),e.line&&e.endLine&&e.endLine>=e.line&&t.set("endLine",String(e.endLine));const n=t.toString(),r=n?`?${n}`:"";if(e.project)return`scout://${e.path?`${encodeURIComponent(e.project)}/${ce(e.path)}`:encodeURIComponent(e.project)}${r}`;const c=e.file??e.root;return c?`scout://${c.startsWith("/")?c:`/${c}`}${r}`:`scout://code${r}`}function le(e,t){const n=e.trim();if(!n)return null;let r=null;for(const c of t)(n===c||n.startsWith(`${c}/`))&&(!r||c.length>r.length)&&(r=c);return r?{root:r,file:n===r?null:n}:null}function ue(e){const t=e.trim();return t?!!(t.startsWith("/")||t.startsWith("~/")||/^scout:/i.test(t)):!1}function B(e){return e.toLowerCase().replace(/[^a-z0-9]+/gu,"-").replace(/^-+|-+$/gu,"")}function de(e){const t=e.lastIndexOf("/");return t>=0?e.slice(t+1):e}function fe(e){return e.branch.detached?"detached":e.branch.name??"no branch"}function pe(e){return e.status.clean?"":`${e.status.changedFiles} changed`}function he(e){const t=[];for(const n of e)for(const[r,c]of n.worktrees.entries())t.push({root:c.path,projectId:n.id,projectName:n.name,projectSlug:B(n.name)||B(de(n.name)),worktreeName:c.name,branchLabel:fe(c),dirtyLabel:pe(c),isPrimary:r===0,changedFiles:c.status.changedFiles});return t}function v(e){return e.toLocaleLowerCase().replace(/[\s/_-]+/g," ").trim()}function me(e,t,n=0){const r=v(t);if(!r)return n;const c=r.split(" ").filter(Boolean),s=v(e.projectName),a=v(e.root),l=v(e.branchLabel),u=v(e.worktreeName),d=`${s} ${a} ${l} ${u} ${e.projectSlug}`;if(!c.every(j=>d.includes(j)))return-1;let m=n/100;return s===r||e.projectSlug===r.replace(/\s+/g,"-")?m+=120:s.startsWith(r)||e.projectSlug.startsWith(r.replace(/\s+/g,"-"))?m+=80:s.includes(r)&&(m+=48),(l.startsWith(r)||l.includes(r))&&(m+=34),u.includes(r)&&(m+=24),a.includes(r)&&(m+=20),m+=c.reduce((j,b)=>j+(s.startsWith(b)?12:0),0),m}function ge(e,t,n,r=12){const c=new Map(n.map((a,l)=>[a,n.length-l])),s=e.map(a=>({option:a,score:me(a,t,c.get(a.root)??0)})).filter(a=>a.score>=0);return t.trim()?s.sort((a,l)=>l.score-a.score||a.option.projectName.localeCompare(l.option.projectName)):s.sort((a,l)=>{const u=c.get(a.option.root)??-1,d=c.get(l.option.root)??-1;return u!==d?d-u:a.option.projectName.localeCompare(l.option.projectName)||a.option.branchLabel.localeCompare(l.option.branchLabel)}),s.slice(0,r).map(a=>a.option)}function Y(e){return e.isPrimary?e.projectName:`${e.projectName} · ${e.branchLabel}`}function D(e){return e.dirtyLabel?`${e.branchLabel} · ${e.dirtyLabel}`:e.branchLabel}function O(e){const t=typeof window<"u"?window.__OPEN_SCOUT_HOME:void 0;if(t&&e.startsWith(`${t}/`))return`~/${e.slice(t.length+1)}`;if(e.startsWith("/Users/")){const n=e.slice(7),r=n.indexOf("/");if(r>0)return`~${n.slice(r)}`}if(e.startsWith("/home/")){const n=e.slice(6),r=n.indexOf("/");if(r>0)return`~${n.slice(r)}`}return e}const Q="openscout.code.tree:",_="openscout.code.lastRoot",V="openscout.code.recentRoots",je=8;function Ce(e){if(typeof window>"u")return null;try{const t=window.localStorage.getItem(Q+e);if(!t)return null;const n=JSON.parse(t);return!n||typeof n.entries!="object"||!Array.isArray(n.expanded)?null:n}catch{return null}}function Re(e,t){if(typeof window>"u")return;const n={};for(const r of[e,...t.expanded]){const c=t.entries.get(r);c&&(n[r]=c)}try{window.localStorage.setItem(Q+e,JSON.stringify({entries:n,expanded:[...t.expanded],selectedFile:t.selectedFile,savedAt:Date.now()}))}catch{}}function Oe(){if(typeof window>"u")return null;try{return window.localStorage.getItem(_)}catch{return null}}function M(){if(typeof window>"u")return[];try{const e=window.localStorage.getItem(V);if(!e){const n=window.localStorage.getItem(_);return n?[n]:[]}const t=JSON.parse(e);return Array.isArray(t)?t.filter(n=>typeof n=="string"&&n.length>0):[]}catch{return[]}}function Pe(e){if(!(typeof window>"u"))try{window.localStorage.setItem(_,e);const t=M().filter(r=>r!==e),n=[e,...t].slice(0,je);window.localStorage.setItem(V,JSON.stringify(n))}catch{}}const we=6,be=12;function k(e){return e.toLowerCase().replace(/[^a-z0-9]+/gu,"-").replace(/^-+|-+$/gu,"")}function W(e){const t=e.lastIndexOf("/");return t>=0?e.slice(t+1):e}function X(e,t,n){const r=G(e);if(!r)return null;if(r.root||r.file){const c=t.map(u=>u.root),s=xe(r.file??r.root,c),a=le(s,c);if(a)return{root:a.root,file:a.file,line:r.line,endLine:r.endLine};const l=W(s).includes(".");return{root:l?Le(s):s,file:l?s:null,line:r.line,endLine:r.endLine}}if(r.project){const c=ke(n,r.project,r.wt??null,t);if(!c)return null;const s=r.path?`${c.root}/${r.path}`:null;return{root:c.root,file:s,project:r.project,path:r.path,wt:r.wt,line:r.line,endLine:r.endLine}}return null}function xe(e,t){if(!e.startsWith("~/")&&e!=="~")return e;for(const n of t){const r=n.match(/^(\/Users\/[^/]+)/)??n.match(/^(\/home\/[^/]+)/);if(r)return`${r[1]}${e.slice(1)}`}return e}function Le(e){const t=e.lastIndexOf("/");return t>0?e.slice(0,t):e}function ke(e,t,n,r){if(e){const a=k(t),l=e.projects.find(u=>k(u.name)===a||k(W(u.root))===a);if(l)return{root:(n?l.worktrees.find(d=>d.name===n||d.branch.name===n||k(d.name)===k(n)):l.worktrees[0])?.path??l.root}}const c=k(t),s=r.find(a=>a.projectSlug===c);return s?{root:s.root}:null}function ye(e){if(e.project)return ae({project:e.project,path:e.path,wt:e.wt,line:e.line,endLine:e.endLine});const t=e.file??e.root;return t?O(t):"Deep link"}function Ne({snapshot:e,root:t,onSelect:n}){const[r,c]=h.useState(!1),[s,a]=h.useState(""),[l,u]=h.useState(0),[d,m]=h.useState(()=>M()),j=h.useRef(null),b=h.useRef(null),y=h.useRef(null),N=h.useId().replaceAll(":",""),P=`code-project-results-${N}`,x=h.useMemo(()=>he(e?.projects??[]),[e]),I=h.useMemo(()=>{const o=new Map;for(const f of x)o.set(f.root,f);return o},[x]),C=t?I.get(t)??null:null;h.useEffect(()=>{m(M())},[t,r]);const U=h.useMemo(()=>{const o=[];for(const f of d){const $=I.get(f);if($&&o.push($),o.length>=we)break}return o},[d,I]),w=ue(s),A=w?G(s):null,p=w?X(s,x,e):null,g=h.useMemo(()=>w?[]:ge(x,s,d,be),[x,s,d,w]),Z=(p?1:0)+g.length,S=h.useMemo(()=>{if(!s.trim()||w)return"";const o=g.find(f=>f.projectName.toLocaleLowerCase().startsWith(s.toLocaleLowerCase()));return o&&o.projectName.length>s.length?o.projectName:""},[s,g,w]);h.useEffect(()=>u(0),[s,r]),h.useEffect(()=>{if(!r)return;const o=window.setTimeout(()=>b.current?.focus(),20);return()=>window.clearTimeout(o)},[r]),h.useEffect(()=>{if(!r)return;function o(f){j.current?.contains(f.target)||(c(!1),a(""))}return document.addEventListener("pointerdown",o),()=>document.removeEventListener("pointerdown",o)},[r]);const E=()=>{a(""),c(!1),window.setTimeout(()=>y.current?.focus(),0)},T=o=>{n({root:o}),E()},F=()=>{p&&(n(p),E())},ee=o=>{if(o.key==="ArrowDown")o.preventDefault(),u(f=>Math.min(f+1,Math.max(Z-1,0)));else if(o.key==="ArrowUp")o.preventDefault(),u(f=>Math.max(f-1,0));else if(o.key==="Enter"){if(o.preventDefault(),p&&(l===0||g.length===0)){F();return}const f=p?l-1:l;g[f]&&T(g[f].root)}else o.key==="ArrowRight"&&S&&o.currentTarget.selectionStart===s.length?(o.preventDefault(),a(S)):o.key==="Escape"&&(o.preventDefault(),E())},te=C?Y(C):t?O(t):"Pick a project…",z=C?D(C):null,H=!!p&&l===0,re=p&&l===0?`${N}-deeplink`:g[p?l-1:l]?`${N}-opt-${g[p?l-1:l].root}`:void 0;return i.jsxs("div",{className:"s-code-picker",ref:j,children:[i.jsxs("button",{ref:y,type:"button",className:"s-code-pickerTrigger","aria-haspopup":"listbox","aria-expanded":r,"aria-controls":r?P:void 0,"aria-label":"Project or worktree",onClick:()=>c(o=>!o),children:[i.jsx("span",{className:"s-code-pickerTriggerName",children:te}),z?i.jsx("span",{className:"s-code-pickerTriggerDetail",children:z}):null,i.jsx(ne,{size:13,"aria-hidden":!0,className:"s-code-pickerChevron","data-open":r||void 0})]}),r?i.jsxs("div",{className:"s-code-pickerPanel",role:"dialog","aria-label":"Choose a project",children:[U.length>0&&!w?i.jsx("div",{className:"s-code-pickerRecents","aria-label":"Recent projects",children:U.map(o=>i.jsx("button",{type:"button",className:"s-code-pickerChip","data-active":o.root===t||void 0,title:`${o.projectName} · ${D(o)}
|
|
2
|
-
${o.root}`,onClick:()=>T(o.root),children:Y(o)},o.root))}):null,i.jsxs("div",{className:"s-code-pickerSearch",children:[i.jsx(oe,{size:13,"aria-hidden":!0,className:"s-code-pickerSearchIcon"}),i.jsxs("div",{className:"s-code-pickerInputStack",children:[S?i.jsxs("div",{className:"s-code-pickerGhost","aria-hidden":!0,children:[i.jsx("span",{children:s}),S.slice(s.length)]}):null,i.jsx("input",{ref:b,className:"s-code-pickerInput",type:"search",role:"combobox",value:s,onChange:o=>a(o.currentTarget.value),onKeyDown:ee,placeholder:"Project, scout:// path, or branch…","aria-label":"Find a project","aria-autocomplete":"both","aria-expanded":"true","aria-controls":P,"aria-activedescendant":re,autoComplete:"off",spellCheck:!1})]}),S?i.jsx("kbd",{className:"s-code-pickerHint",children:"→"}):null]}),i.jsxs("div",{className:"s-code-pickerHeading",children:[i.jsx("span",{children:w?p?"Deep link":"Unrecognized link":s.trim()?g.length?"Matches":"No matches":"All projects"}),i.jsx("span",{children:w?p?"open with ↵":"no match":s.trim()?`${g.length} shown`:x.length?`${Math.min(g.length,x.length)} of ${x.length}`:e?"No repos yet":"Loading…"})]}),i.jsxs("div",{id:P,className:"s-code-pickerResults",role:"listbox","aria-label":"Projects",children:[p?i.jsxs("button",{id:`${N}-deeplink`,type:"button",role:"option","aria-selected":H,tabIndex:-1,className:"s-code-pickerOption s-code-pickerOption--deep","data-active":H||void 0,onMouseEnter:()=>u(0),onClick:F,children:[i.jsx("span",{className:"s-code-pickerOptionMain",children:i.jsx("strong",{children:"Open deep link"})}),i.jsx("span",{className:"s-code-pickerOptionPath",title:s.trim(),children:A?ye(A):s.trim()}),i.jsxs("span",{className:"s-code-pickerOptionMeta",children:[O(p.root),p.file?` · ${W(p.file)}`:""]})]}):null,g.map((o,f)=>{const $=p?f+1:f,J=$===l,K=o.root===t;return i.jsxs("button",{id:`${N}-opt-${o.root}`,type:"button",role:"option","aria-selected":J,"aria-current":K||void 0,tabIndex:-1,className:"s-code-pickerOption","data-active":J||void 0,"data-selected":K||void 0,onMouseEnter:()=>u($),onClick:()=>T(o.root),children:[i.jsxs("span",{className:"s-code-pickerOptionMain",children:[i.jsx("strong",{children:o.projectName}),o.isPrimary?null:i.jsx("span",{className:"s-code-pickerWorktree",children:"worktree"})]}),i.jsx("span",{className:"s-code-pickerOptionPath",title:o.root,children:O(o.root)}),i.jsx("span",{className:"s-code-pickerOptionMeta",children:D(o)})]},o.root)})]}),g.length===0&&s.trim()&&!p?i.jsx("div",{className:"s-code-pickerEmpty",role:"status",children:w?"Could not resolve that scout:// link. Try a project slug or absolute path.":`No project matches “${s}”. Try a folder name, branch, path, or scout:// link.`}):null,i.jsxs("div",{className:"s-code-pickerGuide",children:[i.jsxs("span",{children:[i.jsx("kbd",{children:"↑"}),i.jsx("kbd",{children:"↓"})," move"]}),i.jsxs("span",{children:[i.jsx("kbd",{children:"↵"})," open"]}),i.jsxs("span",{children:[i.jsx("kbd",{children:"esc"})," close"]})]})]}):null]})}const Ie=Object.freeze(Object.defineProperty({__proto__:null,CodeProjectPicker:Ne,resolvePickerDeepLink:X},Symbol.toStringTag,{value:"Module"}));export{Ne as C,Ce as a,Pe as b,Ie as c,ae as f,Oe as r,O as s,Re as w};
|