@ashlr/hub 3.22.0 → 3.22.1
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/CHANGELOG.md +27 -0
- package/README.md +5 -5
- package/dist/authority-surface.json +16 -11
- package/dist/build-identity.json +2 -2
- package/dist/cli/verify-safety-sources.d.ts +4 -0
- package/dist/cli/verify-safety-sources.js +41 -0
- package/dist/cli/verify-safety-sources.js.map +1 -0
- package/dist/cli/verify-safety.js +16 -1
- package/dist/cli/verify-safety.js.map +1 -1
- package/dist/core/decide/needs-you.d.ts +3 -1
- package/dist/core/decide/needs-you.js +52 -28
- package/dist/core/decide/needs-you.js.map +1 -1
- package/dist/core/fleet/fleet-control-model.d.ts +2 -1
- package/dist/core/fleet/fleet-control-model.js +5 -0
- package/dist/core/fleet/fleet-control-model.js.map +1 -1
- package/dist/core/fleet/fleet-control-types.d.ts +11 -1
- package/dist/core/fleet/fleet-control.d.ts +4 -0
- package/dist/core/fleet/fleet-control.js +23 -1
- package/dist/core/fleet/fleet-control.js.map +1 -1
- package/dist/core/fleet/quota.js +1 -1
- package/dist/core/fleet/quota.js.map +1 -1
- package/dist/core/universe/builtins/preparation/manifest.json +1 -1
- package/dist/core/universe/builtins/preparation/preparation-bridge.mjs +4 -2
- package/dist/core/universe/builtins/preparation/preparation-verification-fixtures.mjs +3 -1
- package/dist/core/web/public/next/assets/ActionMenu-Z14OhnFI.js +2 -0
- package/dist/core/web/public/next/assets/ActionMenu-Z14OhnFI.js.map +1 -0
- package/dist/core/web/public/next/assets/Advanced-fUyq-fpH.js +2 -0
- package/dist/core/web/public/next/assets/Advanced-fUyq-fpH.js.map +1 -0
- package/dist/core/web/public/next/assets/AgentDetailScreen-C8h--Nah.js +2 -0
- package/dist/core/web/public/next/assets/AgentDetailScreen-C8h--Nah.js.map +1 -0
- package/dist/core/web/public/next/assets/AgentToolsSheet-BP3h-UbZ.js +2 -0
- package/dist/core/web/public/next/assets/AgentToolsSheet-BP3h-UbZ.js.map +1 -0
- package/dist/core/web/public/next/assets/AgentToolsStrip--hf18knJ.js +2 -0
- package/dist/core/web/public/next/assets/AgentToolsStrip--hf18knJ.js.map +1 -0
- package/dist/core/web/public/next/assets/AgentsScreen-BR-j0Fzd.js +2 -0
- package/dist/core/web/public/next/assets/AgentsScreen-BR-j0Fzd.js.map +1 -0
- package/dist/core/web/public/next/assets/AgentsSection-OKKOuYed.js +3 -0
- package/dist/core/web/public/next/assets/AgentsSection-OKKOuYed.js.map +1 -0
- package/dist/core/web/public/next/assets/App-ttVrZYp5.js +8 -0
- package/dist/core/web/public/next/assets/App-ttVrZYp5.js.map +1 -0
- package/dist/core/web/public/next/assets/AppsSection-sqsXqENO.js +2 -0
- package/dist/core/web/public/next/assets/AppsSection-sqsXqENO.js.map +1 -0
- package/dist/core/web/public/next/assets/AreaTrend-LVgaB49b.js +2 -0
- package/dist/core/web/public/next/assets/AreaTrend-LVgaB49b.js.map +1 -0
- package/dist/core/web/public/next/assets/AutomationsSection-BITmxjuB.js +2 -0
- package/dist/core/web/public/next/assets/AutomationsSection-BITmxjuB.js.map +1 -0
- package/dist/core/web/public/next/assets/AutonomyOffState-nO9lIcCv.js +3 -0
- package/dist/core/web/public/next/assets/AutonomyOffState-nO9lIcCv.js.map +1 -0
- package/dist/core/web/public/next/assets/AutonomySection-DWYUPDP6.js +2 -0
- package/dist/core/web/public/next/assets/AutonomySection-DWYUPDP6.js.map +1 -0
- package/dist/core/web/public/next/assets/AutonomyStatus-C4Yp1JTY.js +2 -0
- package/dist/core/web/public/next/assets/AutonomyStatus-C4Yp1JTY.js.map +1 -0
- package/dist/core/web/public/next/assets/BranchBar-CkiZSNqB.js +2 -0
- package/dist/core/web/public/next/assets/BranchBar-CkiZSNqB.js.map +1 -0
- package/dist/core/web/public/next/assets/BrowserPanel-CECVGJBS.js +7 -0
- package/dist/core/web/public/next/assets/BrowserPanel-CECVGJBS.js.map +1 -0
- package/dist/core/web/public/next/assets/BudgetControl-De1TPzvX.js +2 -0
- package/dist/core/web/public/next/assets/BudgetControl-De1TPzvX.js.map +1 -0
- package/dist/core/web/public/next/assets/Button-CstSJwha.js +2 -0
- package/dist/core/web/public/next/assets/Button-CstSJwha.js.map +1 -0
- package/dist/core/web/public/next/assets/CapacityStrip-nIJcB_lA.js +2 -0
- package/dist/core/web/public/next/assets/CapacityStrip-nIJcB_lA.js.map +1 -0
- package/dist/core/web/public/next/assets/ChangesPaneHost-Bnj_NcRa.js +16 -0
- package/dist/core/web/public/next/assets/ChangesPaneHost-Bnj_NcRa.js.map +1 -0
- package/dist/core/web/public/next/assets/ChartFrame-Dljee9y6.js +2 -0
- package/dist/core/web/public/next/assets/ChartFrame-Dljee9y6.js.map +1 -0
- package/dist/core/web/public/next/assets/ChatPanes-x_ySUIyR.js +2 -0
- package/dist/core/web/public/next/assets/ChatPanes-x_ySUIyR.js.map +1 -0
- package/dist/core/web/public/next/assets/ChatSection-CXJa8QOi.js +3 -0
- package/dist/core/web/public/next/assets/ChatSection-CXJa8QOi.js.map +1 -0
- package/dist/core/web/public/next/assets/ChecksPanel-D9r8koxq.js +5 -0
- package/dist/core/web/public/next/assets/ChecksPanel-D9r8koxq.js.map +1 -0
- package/dist/core/web/public/next/assets/CloudBudgetForm-D5ajpoMe.js +2 -0
- package/dist/core/web/public/next/assets/CloudBudgetForm-D5ajpoMe.js.map +1 -0
- package/dist/core/web/public/next/assets/CommandPalette-ONyqYZzt.js +3 -0
- package/dist/core/web/public/next/assets/CommandPalette-ONyqYZzt.js.map +1 -0
- package/dist/core/web/public/next/assets/CommandSection-DxNIibnI.js +3 -0
- package/dist/core/web/public/next/assets/CommandSection-DxNIibnI.js.map +1 -0
- package/dist/core/web/public/next/assets/CommandWorkflowForm-Bz3PuZXH.js +9 -0
- package/dist/core/web/public/next/assets/CommandWorkflowForm-Bz3PuZXH.js.map +1 -0
- package/dist/core/web/public/next/assets/CommandWorkflowPicker-COVyeer0.js +3 -0
- package/dist/core/web/public/next/assets/CommandWorkflowPicker-COVyeer0.js.map +1 -0
- package/dist/core/web/public/next/assets/CompareDialog-PVqv0Tx9.js +4 -0
- package/dist/core/web/public/next/assets/CompareDialog-PVqv0Tx9.js.map +1 -0
- package/dist/core/web/public/next/assets/ComputerControl-DkSIUrYm.js +2 -0
- package/dist/core/web/public/next/assets/ComputerControl-DkSIUrYm.js.map +1 -0
- package/dist/core/web/public/next/assets/ConfirmDialog-CdCzzk0I.js +2 -0
- package/dist/core/web/public/next/assets/ConfirmDialog-CdCzzk0I.js.map +1 -0
- package/dist/core/web/public/next/assets/DeleteChatDialog-BTzOgqho.js +2 -0
- package/dist/core/web/public/next/assets/DeleteChatDialog-BTzOgqho.js.map +1 -0
- package/dist/core/web/public/next/assets/DevinStopDialog-CGsDqfan.js +2 -0
- package/dist/core/web/public/next/assets/DevinStopDialog-CGsDqfan.js.map +1 -0
- package/dist/core/web/public/next/assets/Dialog-DDHg9cuT.js +2 -0
- package/dist/core/web/public/next/assets/Dialog-DDHg9cuT.js.map +1 -0
- package/dist/core/web/public/next/assets/DiffPane-BR3HU7pC.js +2 -0
- package/dist/core/web/public/next/assets/DiffPane-BR3HU7pC.js.map +1 -0
- package/dist/core/web/public/next/assets/DiffViewer-hJK75qko.js +2 -0
- package/dist/core/web/public/next/assets/DiffViewer-hJK75qko.js.map +1 -0
- package/dist/core/web/public/next/assets/DockHost-DhOosHbo.js +2 -0
- package/dist/core/web/public/next/assets/DockHost-DhOosHbo.js.map +1 -0
- package/dist/core/web/public/next/assets/EmptyState-CGVr0VO2.js +2 -0
- package/dist/core/web/public/next/assets/EmptyState-CGVr0VO2.js.map +1 -0
- package/dist/core/web/public/next/assets/Epistemic-tp0ZNAKZ.js +2 -0
- package/dist/core/web/public/next/assets/Epistemic-tp0ZNAKZ.js.map +1 -0
- package/dist/core/web/public/next/assets/EvidenceTimeline-YmKIoxNx.js +2 -0
- package/dist/core/web/public/next/assets/EvidenceTimeline-YmKIoxNx.js.map +1 -0
- package/dist/core/web/public/next/assets/FilesPane-CoNjfkPP.js +2 -0
- package/dist/core/web/public/next/assets/FilesPane-CoNjfkPP.js.map +1 -0
- package/dist/core/web/public/next/assets/FleetScreen-CstwycnB.js +2 -0
- package/dist/core/web/public/next/assets/FleetScreen-CstwycnB.js.map +1 -0
- package/dist/core/web/public/next/assets/FleetSection-D0xk0s5J.js +5 -0
- package/dist/core/web/public/next/assets/FleetSection-D0xk0s5J.js.map +1 -0
- package/dist/core/web/public/next/assets/Funnel-UPrk7fcy.js +2 -0
- package/dist/core/web/public/next/assets/Funnel-UPrk7fcy.js.map +1 -0
- package/dist/core/web/public/next/assets/GearTray-BSjga1J_.js +2 -0
- package/dist/core/web/public/next/assets/GearTray-BSjga1J_.js.map +1 -0
- package/dist/core/web/public/next/assets/GitDialogs-ekwzxl76.js +2 -0
- package/dist/core/web/public/next/assets/GitDialogs-ekwzxl76.js.map +1 -0
- package/dist/core/web/public/next/assets/GrowthSection-Dh-gnkgc.js +3 -0
- package/dist/core/web/public/next/assets/GrowthSection-Dh-gnkgc.js.map +1 -0
- package/dist/core/web/public/next/assets/HandoffDialog-BDiyA3u-.js +2 -0
- package/dist/core/web/public/next/assets/HandoffDialog-BDiyA3u-.js.map +1 -0
- package/dist/core/web/public/next/assets/HomeBody-Ce3HBIEb.js +3 -0
- package/dist/core/web/public/next/assets/HomeBody-Ce3HBIEb.js.map +1 -0
- package/dist/core/web/public/next/assets/HomeSeats-BFLCWCFp.js +2 -0
- package/dist/core/web/public/next/assets/HomeSeats-BFLCWCFp.js.map +1 -0
- package/dist/core/web/public/next/assets/Input-Cpn9uYj2.js +2 -0
- package/dist/core/web/public/next/assets/Input-Cpn9uYj2.js.map +1 -0
- package/dist/core/web/public/next/assets/LaunchDialog-CrPEf652.js +9 -0
- package/dist/core/web/public/next/assets/LaunchDialog-CrPEf652.js.map +1 -0
- package/dist/core/web/public/next/assets/LeaderCard-Dhq-w_Mf.js +2 -0
- package/dist/core/web/public/next/assets/LeaderCard-Dhq-w_Mf.js.map +1 -0
- package/dist/core/web/public/next/assets/LeaderConversation-CiWqhsoa.js +3 -0
- package/dist/core/web/public/next/assets/LeaderConversation-CiWqhsoa.js.map +1 -0
- package/dist/core/web/public/next/assets/LeaderScreen-Z5KPjxBV.js +2 -0
- package/dist/core/web/public/next/assets/LeaderScreen-Z5KPjxBV.js.map +1 -0
- package/dist/core/web/public/next/assets/LessonsPanel-B6XVKAPE.js +2 -0
- package/dist/core/web/public/next/assets/LessonsPanel-B6XVKAPE.js.map +1 -0
- package/dist/core/web/public/next/assets/LiveTimer-B8t2iX5h.js +2 -0
- package/dist/core/web/public/next/assets/LiveTimer-B8t2iX5h.js.map +1 -0
- package/dist/core/web/public/next/assets/LocalSeatBadge-HMxIrMiL.js +2 -0
- package/dist/core/web/public/next/assets/LocalSeatBadge-HMxIrMiL.js.map +1 -0
- package/dist/core/web/public/next/assets/MatrixHeatmap-BlFI5oao.js +2 -0
- package/dist/core/web/public/next/assets/MatrixHeatmap-BlFI5oao.js.map +1 -0
- package/dist/core/web/public/next/assets/McpSection-snZNKexW.js +2 -0
- package/dist/core/web/public/next/assets/McpSection-snZNKexW.js.map +1 -0
- package/dist/core/web/public/next/assets/MessageMarkdown-CS0mAtSs.js +3 -0
- package/dist/core/web/public/next/assets/MessageMarkdown-CS0mAtSs.js.map +1 -0
- package/dist/core/web/public/next/assets/MessageMarkdownRenderer-D5R-zr-W.js +72 -0
- package/dist/core/web/public/next/assets/MessageMarkdownRenderer-D5R-zr-W.js.map +1 -0
- package/dist/core/web/public/next/assets/Meter-VXI75VNe.js +2 -0
- package/dist/core/web/public/next/assets/Meter-VXI75VNe.js.map +1 -0
- package/dist/core/web/public/next/assets/MicButton-DORAXsUU.js +2 -0
- package/dist/core/web/public/next/assets/MicButton-DORAXsUU.js.map +1 -0
- package/dist/core/web/public/next/assets/MindSection-DZLHz29Q.js +3 -0
- package/dist/core/web/public/next/assets/MindSection-DZLHz29Q.js.map +1 -0
- package/dist/core/web/public/next/assets/MobileComposer-B8nWsIJO.js +2 -0
- package/dist/core/web/public/next/assets/MobileComposer-B8nWsIJO.js.map +1 -0
- package/dist/core/web/public/next/assets/MobileGuardSheet-BRwOfD9o.js +2 -0
- package/dist/core/web/public/next/assets/MobileGuardSheet-BRwOfD9o.js.map +1 -0
- package/dist/core/web/public/next/assets/MobileRuntime-kMob_MjB.js +3 -0
- package/dist/core/web/public/next/assets/MobileRuntime-kMob_MjB.js.map +1 -0
- package/dist/core/web/public/next/assets/MoreScreen-92dC6Bj7.js +2 -0
- package/dist/core/web/public/next/assets/MoreScreen-92dC6Bj7.js.map +1 -0
- package/dist/core/web/public/next/assets/MultiModelBar-BhAUUQOq.js +7 -0
- package/dist/core/web/public/next/assets/MultiModelBar-BhAUUQOq.js.map +1 -0
- package/dist/core/web/public/next/assets/MutationTokenDialog-DlY2VLVh.js +2 -0
- package/dist/core/web/public/next/assets/MutationTokenDialog-DlY2VLVh.js.map +1 -0
- package/dist/core/web/public/next/assets/NeedsYouDrawer-BH0ffbht.js +3 -0
- package/dist/core/web/public/next/assets/NeedsYouDrawer-BH0ffbht.js.map +1 -0
- package/dist/core/web/public/next/assets/NeedsYouList-CI_Dy-hi.js +2 -0
- package/dist/core/web/public/next/assets/NeedsYouList-CI_Dy-hi.js.map +1 -0
- package/dist/core/web/public/next/assets/NeedsYouScreen-CvDiEphJ.js +2 -0
- package/dist/core/web/public/next/assets/NeedsYouScreen-CvDiEphJ.js.map +1 -0
- package/dist/core/web/public/next/assets/NewAgentScreen-BpTRKp9z.js +2 -0
- package/dist/core/web/public/next/assets/NewAgentScreen-BpTRKp9z.js.map +1 -0
- package/dist/core/web/public/next/assets/NewChatDialog-O1LwwBc4.js +4 -0
- package/dist/core/web/public/next/assets/NewChatDialog-O1LwwBc4.js.map +1 -0
- package/dist/core/web/public/next/assets/OnboardingFlow-uMNBVHvK.js +3 -0
- package/dist/core/web/public/next/assets/OnboardingFlow-uMNBVHvK.js.map +1 -0
- package/dist/core/web/public/next/assets/OnboardingGate-sdzxSPZF.js +3 -0
- package/dist/core/web/public/next/assets/OnboardingGate-sdzxSPZF.js.map +1 -0
- package/dist/core/web/public/next/assets/PlaybooksSection-CnWfwZv8.js +9 -0
- package/dist/core/web/public/next/assets/PlaybooksSection-CnWfwZv8.js.map +1 -0
- package/dist/core/web/public/next/assets/PreviewPane-D1WaefIG.js +2 -0
- package/dist/core/web/public/next/assets/PreviewPane-D1WaefIG.js.map +1 -0
- package/dist/core/web/public/next/assets/ProviderLogo-g2YWCmNY.js +2 -0
- package/dist/core/web/public/next/assets/ProviderLogo-g2YWCmNY.js.map +1 -0
- package/dist/core/web/public/next/assets/RailStatus-OrvAuyzs.js +2 -0
- package/dist/core/web/public/next/assets/RailStatus-OrvAuyzs.js.map +1 -0
- package/dist/core/web/public/next/assets/ReasoningPane-BARDPl4-.js +2 -0
- package/dist/core/web/public/next/assets/ReasoningPane-BARDPl4-.js.map +1 -0
- package/dist/core/web/public/next/assets/ReasoningSheet-rPTXyt-b.js +2 -0
- package/dist/core/web/public/next/assets/ReasoningSheet-rPTXyt-b.js.map +1 -0
- package/dist/core/web/public/next/assets/RefreshIndicator-D96C9qiH.js +2 -0
- package/dist/core/web/public/next/assets/RefreshIndicator-D96C9qiH.js.map +1 -0
- package/dist/core/web/public/next/assets/RemoteMobileApp-DfDjiBTR.js +2 -0
- package/dist/core/web/public/next/assets/RemoteMobileApp-DfDjiBTR.js.map +1 -0
- package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-CcfULh_p.js +7 -0
- package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-CcfULh_p.js.map +1 -0
- package/dist/core/web/public/next/assets/ResourcesChrome-DuEa7WOo.css +1 -0
- package/dist/core/web/public/next/assets/ResourcesChrome-e9ifgnWf.js +3 -0
- package/dist/core/web/public/next/assets/ResourcesChrome-e9ifgnWf.js.map +1 -0
- package/dist/core/web/public/next/assets/ResourcesDrawer-DOv_mxpe.js +3 -0
- package/dist/core/web/public/next/assets/ResourcesDrawer-DOv_mxpe.js.map +1 -0
- package/dist/core/web/public/next/assets/ReviewMenu-Ba3saQlX.js +2 -0
- package/dist/core/web/public/next/assets/ReviewMenu-Ba3saQlX.js.map +1 -0
- package/dist/core/web/public/next/assets/RouteErrorBoundary-BaJ1ZePy.js +2 -0
- package/dist/core/web/public/next/assets/RouteErrorBoundary-BaJ1ZePy.js.map +1 -0
- package/dist/core/web/public/next/assets/RunInCloudAction-DRSX84Jy.js +2 -0
- package/dist/core/web/public/next/assets/RunInCloudAction-DRSX84Jy.js.map +1 -0
- package/dist/core/web/public/next/assets/RunInDevinAction-BMji-YN2.js +2 -0
- package/dist/core/web/public/next/assets/RunInDevinAction-BMji-YN2.js.map +1 -0
- package/dist/core/web/public/next/assets/SchedulingEvidence-xxjV6HF_.js +2 -0
- package/dist/core/web/public/next/assets/SchedulingEvidence-xxjV6HF_.js.map +1 -0
- package/dist/core/web/public/next/assets/ScreenHost-Dv6z76Ta.js +3 -0
- package/dist/core/web/public/next/assets/ScreenHost-Dv6z76Ta.js.map +1 -0
- package/dist/core/web/public/next/assets/SeatSelector-YRNdNpP8.js +3 -0
- package/dist/core/web/public/next/assets/SeatSelector-YRNdNpP8.js.map +1 -0
- package/dist/core/web/public/next/assets/Segmented-BA8RmKYq.js +2 -0
- package/dist/core/web/public/next/assets/Segmented-BA8RmKYq.js.map +1 -0
- package/dist/core/web/public/next/assets/Select-B8GqZOX9.js +2 -0
- package/dist/core/web/public/next/assets/Select-B8GqZOX9.js.map +1 -0
- package/dist/core/web/public/next/assets/SessionGate-CnASHl7g.js +2 -0
- package/dist/core/web/public/next/assets/SessionGate-CnASHl7g.js.map +1 -0
- package/dist/core/web/public/next/assets/SessionInsightChip-DIKfih6i.js +2 -0
- package/dist/core/web/public/next/assets/SessionInsightChip-DIKfih6i.js.map +1 -0
- package/dist/core/web/public/next/assets/SessionSearch-K6lvMlji.js +2 -0
- package/dist/core/web/public/next/assets/SessionSearch-K6lvMlji.js.map +1 -0
- package/dist/core/web/public/next/assets/SettingsSection-C-c3f_6J.js +2 -0
- package/dist/core/web/public/next/assets/SettingsSection-C-c3f_6J.js.map +1 -0
- package/dist/core/web/public/next/assets/SetupChecklist-DAbAdrX4.js +2 -0
- package/dist/core/web/public/next/assets/SetupChecklist-DAbAdrX4.js.map +1 -0
- package/dist/core/web/public/next/assets/ShadowDecisions-C41uRSw4.js +3 -0
- package/dist/core/web/public/next/assets/ShadowDecisions-C41uRSw4.js.map +1 -0
- package/dist/core/web/public/next/assets/Sheet-Bk64-Hlt.js +2 -0
- package/dist/core/web/public/next/assets/Sheet-Bk64-Hlt.js.map +1 -0
- package/dist/core/web/public/next/assets/ShortcutsOverlay-CcP96zqy.js +2 -0
- package/dist/core/web/public/next/assets/ShortcutsOverlay-CcP96zqy.js.map +1 -0
- package/dist/core/web/public/next/assets/Sidebar-sSNKd57n.js +3 -0
- package/dist/core/web/public/next/assets/Sidebar-sSNKd57n.js.map +1 -0
- package/dist/core/web/public/next/assets/SkipToContent-BynsXs9i.js +2 -0
- package/dist/core/web/public/next/assets/SkipToContent-BynsXs9i.js.map +1 -0
- package/dist/core/web/public/next/assets/Slider-DS5HrVzl.js +2 -0
- package/dist/core/web/public/next/assets/Slider-DS5HrVzl.js.map +1 -0
- package/dist/core/web/public/next/assets/SourcesPane-QffcyDfA.js +2 -0
- package/dist/core/web/public/next/assets/SourcesPane-QffcyDfA.js.map +1 -0
- package/dist/core/web/public/next/assets/SourcesPanel-DlttePk7.js +2 -0
- package/dist/core/web/public/next/assets/SourcesPanel-DlttePk7.js.map +1 -0
- package/dist/core/web/public/next/assets/StatTile-mYm1GPj7.js +2 -0
- package/dist/core/web/public/next/assets/StatTile-mYm1GPj7.js.map +1 -0
- package/dist/core/web/public/next/assets/StatusBadge-Yz7S3kZ2.js +2 -0
- package/dist/core/web/public/next/assets/StatusBadge-Yz7S3kZ2.js.map +1 -0
- package/dist/core/web/public/next/assets/StepBand-Bdkv7iGd.js +2 -0
- package/dist/core/web/public/next/assets/StepBand-Bdkv7iGd.js.map +1 -0
- package/dist/core/web/public/next/assets/Surface-DVOAKl2g.js +2 -0
- package/dist/core/web/public/next/assets/Surface-DVOAKl2g.js.map +1 -0
- package/dist/core/web/public/next/assets/Swimlane-CeMBD_FC.js +2 -0
- package/dist/core/web/public/next/assets/Swimlane-CeMBD_FC.js.map +1 -0
- package/dist/core/web/public/next/assets/Switch-Cqc_bSoh.js +2 -0
- package/dist/core/web/public/next/assets/Switch-Cqc_bSoh.js.map +1 -0
- package/dist/core/web/public/next/assets/Tag-BvOxSxYi.js +2 -0
- package/dist/core/web/public/next/assets/Tag-BvOxSxYi.js.map +1 -0
- package/dist/core/web/public/next/assets/TerminalPane-D3f02aI4.js +3 -0
- package/dist/core/web/public/next/assets/TerminalPane-D3f02aI4.js.map +1 -0
- package/dist/core/web/public/next/assets/TerminalPane-XZ5n3Pns.js +26 -0
- package/dist/core/web/public/next/assets/TerminalPane-XZ5n3Pns.js.map +1 -0
- package/dist/core/web/public/next/assets/ThinkingBlock-DZNlOGaV.js +2 -0
- package/dist/core/web/public/next/assets/ThinkingBlock-DZNlOGaV.js.map +1 -0
- package/dist/core/web/public/next/assets/UniverseConsoleApp-CzBI6Upl.js +2 -0
- package/dist/core/web/public/next/assets/UniverseConsoleApp-CzBI6Upl.js.map +1 -0
- package/dist/core/web/public/next/assets/UniverseView-Dsi3Kk8o.js +9 -0
- package/dist/core/web/public/next/assets/UniverseView-Dsi3Kk8o.js.map +1 -0
- package/dist/core/web/public/next/assets/UsageSection-rVvLat9z.js +3 -0
- package/dist/core/web/public/next/assets/UsageSection-rVvLat9z.js.map +1 -0
- package/dist/core/web/public/next/assets/UsePlaybookAction-B4XAzSeI.js +2 -0
- package/dist/core/web/public/next/assets/UsePlaybookAction-B4XAzSeI.js.map +1 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-BmckthwC.css +1 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-DjPpZLo1.js +3 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-DjPpZLo1.js.map +1 -0
- package/dist/core/web/public/next/assets/VerseMobileApp-ePNuVERe.js +3 -0
- package/dist/core/web/public/next/assets/VerseMobileApp-ePNuVERe.js.map +1 -0
- package/dist/core/web/public/next/assets/VerseShared-Bf-XTHCh.js +2 -0
- package/dist/core/web/public/next/assets/VerseShared-Bf-XTHCh.js.map +1 -0
- package/dist/core/web/public/next/assets/VoiceHud-BG5FV2h0.js +2 -0
- package/dist/core/web/public/next/assets/VoiceHud-BG5FV2h0.js.map +1 -0
- package/dist/core/web/public/next/assets/VoiceInput-k3vB_FxV.js +2 -0
- package/dist/core/web/public/next/assets/VoiceInput-k3vB_FxV.js.map +1 -0
- package/dist/core/web/public/next/assets/WikiSection-DeBKNqd6.js +2 -0
- package/dist/core/web/public/next/assets/WikiSection-DeBKNqd6.js.map +1 -0
- package/dist/core/web/public/next/assets/Workspace-CvwS2-RN.js +6 -0
- package/dist/core/web/public/next/assets/Workspace-CvwS2-RN.js.map +1 -0
- package/dist/core/web/public/next/assets/actions-Dg6UJTLn.js +2 -0
- package/dist/core/web/public/next/assets/actions-Dg6UJTLn.js.map +1 -0
- package/dist/core/web/public/next/assets/agent-tools-client-DmJq7zlr.js +2 -0
- package/dist/core/web/public/next/assets/agent-tools-client-DmJq7zlr.js.map +1 -0
- package/dist/core/web/public/next/assets/agents-focus-B1LKhUVg.js +2 -0
- package/dist/core/web/public/next/assets/agents-focus-B1LKhUVg.js.map +1 -0
- package/dist/core/web/public/next/assets/app-version-Cb1z8iCO.js +2 -0
- package/dist/core/web/public/next/assets/app-version-Cb1z8iCO.js.map +1 -0
- package/dist/core/web/public/next/assets/apps-model-_chbcQeN.js +2 -0
- package/dist/core/web/public/next/assets/apps-model-_chbcQeN.js.map +1 -0
- package/dist/core/web/public/next/assets/ask-seat-O60AydbV.js +2 -0
- package/dist/core/web/public/next/assets/ask-seat-O60AydbV.js.map +1 -0
- package/dist/core/web/public/next/assets/authority-model-BeDDHF22.js +2 -0
- package/dist/core/web/public/next/assets/authority-model-BeDDHF22.js.map +1 -0
- package/dist/core/web/public/next/assets/automations-focus-BXaRZ8nX.js +2 -0
- package/dist/core/web/public/next/assets/automations-focus-BXaRZ8nX.js.map +1 -0
- package/dist/core/web/public/next/assets/budget-queries-Nvx0H2XE.js +2 -0
- package/dist/core/web/public/next/assets/budget-queries-Nvx0H2XE.js.map +1 -0
- package/dist/core/web/public/next/assets/capacity-strip-model-CBMJ2U-w.js +2 -0
- package/dist/core/web/public/next/assets/capacity-strip-model-CBMJ2U-w.js.map +1 -0
- package/dist/core/web/public/next/assets/charts-DT9PYS49.js +2 -0
- package/dist/core/web/public/next/assets/charts-DT9PYS49.js.map +1 -0
- package/dist/core/web/public/next/assets/chat-pane-data-CfbpeAYX.js +2 -0
- package/dist/core/web/public/next/assets/chat-pane-data-CfbpeAYX.js.map +1 -0
- package/dist/core/web/public/next/assets/checkpoint-queries-BKD2evmX.js +2 -0
- package/dist/core/web/public/next/assets/checkpoint-queries-BKD2evmX.js.map +1 -0
- package/dist/core/web/public/next/assets/cloud-queries-CsU54eNn.js +2 -0
- package/dist/core/web/public/next/assets/cloud-queries-CsU54eNn.js.map +1 -0
- package/dist/core/web/public/next/assets/command-catalog-B0ApAGD0.js +2 -0
- package/dist/core/web/public/next/assets/command-catalog-B0ApAGD0.js.map +1 -0
- package/dist/core/web/public/next/assets/composer-queries-D1H4E0Ye.js +2 -0
- package/dist/core/web/public/next/assets/composer-queries-D1H4E0Ye.js.map +1 -0
- package/dist/core/web/public/next/assets/connectivity-xQ0Nh0j3.js +2 -0
- package/dist/core/web/public/next/assets/connectivity-xQ0Nh0j3.js.map +1 -0
- package/dist/core/web/public/next/assets/context-queries-bnI3P0Wt.js +2 -0
- package/dist/core/web/public/next/assets/context-queries-bnI3P0Wt.js.map +1 -0
- package/dist/core/web/public/next/assets/control-queries-BG53otwz.js +2 -0
- package/dist/core/web/public/next/assets/control-queries-BG53otwz.js.map +1 -0
- package/dist/core/web/public/next/assets/copy-setup-COMDnur3.js +2 -0
- package/dist/core/web/public/next/assets/copy-setup-COMDnur3.js.map +1 -0
- package/dist/core/web/public/next/assets/deep-link-CqOP-JEm.js +2 -0
- package/dist/core/web/public/next/assets/deep-link-CqOP-JEm.js.map +1 -0
- package/dist/core/web/public/next/assets/device-permissions-DpsJJcUW.js +2 -0
- package/dist/core/web/public/next/assets/device-permissions-DpsJJcUW.js.map +1 -0
- package/dist/core/web/public/next/assets/devin-queries-BSEOfLuZ.js +2 -0
- package/dist/core/web/public/next/assets/devin-queries-BSEOfLuZ.js.map +1 -0
- package/dist/core/web/public/next/assets/dock-icons-DK7QcBXJ.js +2 -0
- package/dist/core/web/public/next/assets/dock-icons-DK7QcBXJ.js.map +1 -0
- package/dist/core/web/public/next/assets/dock-panes-DvQ6t4Nl.js +2 -0
- package/dist/core/web/public/next/assets/dock-panes-DvQ6t4Nl.js.map +1 -0
- package/dist/core/web/public/next/assets/fleet-control-queries-BL-Vlf85.js +2 -0
- package/dist/core/web/public/next/assets/fleet-control-queries-BL-Vlf85.js.map +1 -0
- package/dist/core/web/public/next/assets/fleet-queries-eacERnLm.js +2 -0
- package/dist/core/web/public/next/assets/fleet-queries-eacERnLm.js.map +1 -0
- package/dist/core/web/public/next/assets/fleet-state-DfKcuo4A.js +3 -0
- package/dist/core/web/public/next/assets/fleet-state-DfKcuo4A.js.map +1 -0
- package/dist/core/web/public/next/assets/focus-trap-BZeH0rVB.js +2 -0
- package/dist/core/web/public/next/assets/focus-trap-BZeH0rVB.js.map +1 -0
- package/dist/core/web/public/next/assets/git-model-C1I4z_iQ.js +5 -0
- package/dist/core/web/public/next/assets/git-model-C1I4z_iQ.js.map +1 -0
- package/dist/core/web/public/next/assets/global-w7KDTTi0.js +3 -0
- package/dist/core/web/public/next/assets/global-w7KDTTi0.js.map +1 -0
- package/dist/core/web/public/next/assets/guarded-action-J9umcJgI.js +3 -0
- package/dist/core/web/public/next/assets/guarded-action-J9umcJgI.js.map +1 -0
- package/dist/core/web/public/next/assets/guarded-runners-Da5yA9Im.js +2 -0
- package/dist/core/web/public/next/assets/guarded-runners-Da5yA9Im.js.map +1 -0
- package/dist/core/web/public/next/assets/health-queries-D3HgrdU_.js +2 -0
- package/dist/core/web/public/next/assets/health-queries-D3HgrdU_.js.map +1 -0
- package/dist/core/web/public/next/assets/icons-C3G-y5j2.js +2 -0
- package/dist/core/web/public/next/assets/icons-C3G-y5j2.js.map +1 -0
- package/dist/core/web/public/next/assets/index-BC5Uslm5.js +11 -0
- package/dist/core/web/public/next/assets/index-BC5Uslm5.js.map +1 -0
- package/dist/core/web/public/next/assets/jev-queries-D6JNU-s6.js +2 -0
- package/dist/core/web/public/next/assets/jev-queries-D6JNU-s6.js.map +1 -0
- package/dist/core/web/public/next/assets/ladder-queries-BnYWjJoi.js +2 -0
- package/dist/core/web/public/next/assets/ladder-queries-BnYWjJoi.js.map +1 -0
- package/dist/core/web/public/next/assets/leader-focus-C6LVWgYI.js +2 -0
- package/dist/core/web/public/next/assets/leader-focus-C6LVWgYI.js.map +1 -0
- package/dist/core/web/public/next/assets/live-model-BPyZCTr1.js +2 -0
- package/dist/core/web/public/next/assets/live-model-BPyZCTr1.js.map +1 -0
- package/dist/core/web/public/next/assets/mobile-actions-avKNGddD.js +2 -0
- package/dist/core/web/public/next/assets/mobile-actions-avKNGddD.js.map +1 -0
- package/dist/core/web/public/next/assets/mobile-toast-BqSzGmw1.js +2 -0
- package/dist/core/web/public/next/assets/mobile-toast-BqSzGmw1.js.map +1 -0
- package/dist/core/web/public/next/assets/multimodel-flows-DOHsEKUG.js +7 -0
- package/dist/core/web/public/next/assets/multimodel-flows-DOHsEKUG.js.map +1 -0
- package/dist/core/web/public/next/assets/multimodel-queries-xmBBUT6n.js +2 -0
- package/dist/core/web/public/next/assets/multimodel-queries-xmBBUT6n.js.map +1 -0
- package/dist/core/web/public/next/assets/mutations-CdLi0erM.js +2 -0
- package/dist/core/web/public/next/assets/mutations-CdLi0erM.js.map +1 -0
- package/dist/core/web/public/next/assets/nav-CUXtg-Iw.js +2 -0
- package/dist/core/web/public/next/assets/nav-CUXtg-Iw.js.map +1 -0
- package/dist/core/web/public/next/assets/needs-you-actions-B2tjWO-0.js +2 -0
- package/dist/core/web/public/next/assets/needs-you-actions-B2tjWO-0.js.map +1 -0
- package/dist/core/web/public/next/assets/needs-you-model-DL9EEd2L.js +2 -0
- package/dist/core/web/public/next/assets/needs-you-model-DL9EEd2L.js.map +1 -0
- package/dist/core/web/public/next/assets/open-terminal-BfbxGoYQ.js +2 -0
- package/dist/core/web/public/next/assets/open-terminal-BfbxGoYQ.js.map +1 -0
- package/dist/core/web/public/next/assets/open-terminal-request-BT1UE0fz.js +2 -0
- package/dist/core/web/public/next/assets/open-terminal-request-BT1UE0fz.js.map +1 -0
- package/dist/core/web/public/next/assets/overnight-queries-cjjogTzn.js +2 -0
- package/dist/core/web/public/next/assets/overnight-queries-cjjogTzn.js.map +1 -0
- package/dist/core/web/public/next/assets/palette-handoff-XL2WWc9I.js +2 -0
- package/dist/core/web/public/next/assets/palette-handoff-XL2WWc9I.js.map +1 -0
- package/dist/core/web/public/next/assets/panes-5GU8cuI9.js +3 -0
- package/dist/core/web/public/next/assets/panes-5GU8cuI9.js.map +1 -0
- package/dist/core/web/public/next/assets/path-display-ZSzKoo8T.js +2 -0
- package/dist/core/web/public/next/assets/path-display-ZSzKoo8T.js.map +1 -0
- package/dist/core/web/public/next/assets/playbook-composer-D04tqOmU.js +2 -0
- package/dist/core/web/public/next/assets/playbook-composer-D04tqOmU.js.map +1 -0
- package/dist/core/web/public/next/assets/playbook-focus-DD1VIfkd.js +2 -0
- package/dist/core/web/public/next/assets/playbook-focus-DD1VIfkd.js.map +1 -0
- package/dist/core/web/public/next/assets/playbooks-queries-X7NGzpIn.js +2 -0
- package/dist/core/web/public/next/assets/playbooks-queries-X7NGzpIn.js.map +1 -0
- package/dist/core/web/public/next/assets/preloaded-6hKNGuRp.js +2 -0
- package/dist/core/web/public/next/assets/preloaded-6hKNGuRp.js.map +1 -0
- package/dist/core/web/public/next/assets/primitives-6nAFZkcg.js +1 -0
- package/dist/core/web/public/next/assets/pwa-BzXJXtDt.js +2 -0
- package/dist/core/web/public/next/assets/pwa-BzXJXtDt.js.map +1 -0
- package/dist/core/web/public/next/assets/queries-PgZlvFqO.js +2 -0
- package/dist/core/web/public/next/assets/queries-PgZlvFqO.js.map +1 -0
- package/dist/core/web/public/next/assets/reasoning-pref-BS0PSZ8d.js +2 -0
- package/dist/core/web/public/next/assets/reasoning-pref-BS0PSZ8d.js.map +1 -0
- package/dist/core/web/public/next/assets/remote-session-Bu-dtRcS.js +3 -0
- package/dist/core/web/public/next/assets/remote-session-Bu-dtRcS.js.map +1 -0
- package/dist/core/web/public/next/assets/resolved-store-UYN2k9My.js +2 -0
- package/dist/core/web/public/next/assets/resolved-store-UYN2k9My.js.map +1 -0
- package/dist/core/web/public/next/assets/resources-queries-XfQ8w9In.js +2 -0
- package/dist/core/web/public/next/assets/resources-queries-XfQ8w9In.js.map +1 -0
- package/dist/core/web/public/next/assets/reveal-anchor-3ZUTtB8Q.js +2 -0
- package/dist/core/web/public/next/assets/reveal-anchor-3ZUTtB8Q.js.map +1 -0
- package/dist/core/web/public/next/assets/sheet-DP8ByDWU.js +2 -0
- package/dist/core/web/public/next/assets/sheet-DP8ByDWU.js.map +1 -0
- package/dist/core/web/public/next/assets/slots-DWlj_c7i.js +3 -0
- package/dist/core/web/public/next/assets/slots-DWlj_c7i.js.map +1 -0
- package/dist/core/web/public/next/assets/sources-queries-Cjk1rpDU.js +4 -0
- package/dist/core/web/public/next/assets/sources-queries-Cjk1rpDU.js.map +1 -0
- package/dist/core/web/public/next/assets/sse-Z3U8XhDI.js +2 -0
- package/dist/core/web/public/next/assets/sse-Z3U8XhDI.js.map +1 -0
- package/dist/core/web/public/next/assets/surface-data-hufdOfpz.js +2 -0
- package/dist/core/web/public/next/assets/surface-data-hufdOfpz.js.map +1 -0
- package/dist/core/web/public/next/assets/surface-prefetch-CFtP8imB.js +2 -0
- package/dist/core/web/public/next/assets/surface-prefetch-CFtP8imB.js.map +1 -0
- package/dist/core/web/public/next/assets/terminal-client-CCSvMeEv.js +2 -0
- package/dist/core/web/public/next/assets/terminal-client-CCSvMeEv.js.map +1 -0
- package/dist/core/web/public/next/assets/terminal-icons-Dx6neM-J.js +2 -0
- package/dist/core/web/public/next/assets/terminal-icons-Dx6neM-J.js.map +1 -0
- package/dist/core/web/public/next/assets/terminal-view-BSieiQvi.js +6 -0
- package/dist/core/web/public/next/assets/terminal-view-BSieiQvi.js.map +1 -0
- package/dist/core/web/public/next/assets/thread-data-Cd2DZffn.js +2 -0
- package/dist/core/web/public/next/assets/thread-data-Cd2DZffn.js.map +1 -0
- package/dist/core/web/public/next/assets/ui-parts-wvov2ktB.js +2 -0
- package/dist/core/web/public/next/assets/ui-parts-wvov2ktB.js.map +1 -0
- package/dist/core/web/public/next/assets/usage-queries-nZjJ1aky.js +2 -0
- package/dist/core/web/public/next/assets/usage-queries-nZjJ1aky.js.map +1 -0
- package/dist/core/web/public/next/assets/use-chat-activity-_tBmEPPN.js +2 -0
- package/dist/core/web/public/next/assets/use-chat-activity-_tBmEPPN.js.map +1 -0
- package/dist/core/web/public/next/assets/use-guarded-action-DKKjhPKG.js +2 -0
- package/dist/core/web/public/next/assets/use-guarded-action-DKKjhPKG.js.map +1 -0
- package/dist/core/web/public/next/assets/use-ticker-w1c3SOqK.js +2 -0
- package/dist/core/web/public/next/assets/use-ticker-w1c3SOqK.js.map +1 -0
- package/dist/core/web/public/next/assets/use-token-gate-h5QAERLT.js +2 -0
- package/dist/core/web/public/next/assets/use-token-gate-h5QAERLT.js.map +1 -0
- package/dist/core/web/public/next/assets/useAutoSeat-Dpbn0XUv.js +2 -0
- package/dist/core/web/public/next/assets/useAutoSeat-Dpbn0XUv.js.map +1 -0
- package/dist/core/web/public/next/assets/useOnboarding-VoV1LcuJ.js +2 -0
- package/dist/core/web/public/next/assets/useOnboarding-VoV1LcuJ.js.map +1 -0
- package/dist/core/web/public/next/assets/useSeatHealth-DuSaKdIs.js +2 -0
- package/dist/core/web/public/next/assets/useSeatHealth-DuSaKdIs.js.map +1 -0
- package/dist/core/web/public/next/assets/useSeatsRefresh-DFaR1jSz.js +2 -0
- package/dist/core/web/public/next/assets/useSeatsRefresh-DFaR1jSz.js.map +1 -0
- package/dist/core/web/public/next/assets/useVerseSession-BOsgJzT5.js +2 -0
- package/dist/core/web/public/next/assets/useVerseSession-BOsgJzT5.js.map +1 -0
- package/dist/core/web/public/next/assets/useVerseTranscript-BN_fMz6x.js +2 -0
- package/dist/core/web/public/next/assets/useVerseTranscript-BN_fMz6x.js.map +1 -0
- package/dist/core/web/public/next/assets/verse-bootstrap-query-B3vFD9XK.js +2 -0
- package/dist/core/web/public/next/assets/verse-bootstrap-query-B3vFD9XK.js.map +1 -0
- package/dist/core/web/public/next/assets/verse-icons-vSkflmRB.js +2 -0
- package/dist/core/web/public/next/assets/verse-icons-vSkflmRB.js.map +1 -0
- package/dist/core/web/public/next/assets/warmup-D9MjYs5S.js +3 -0
- package/dist/core/web/public/next/assets/warmup-D9MjYs5S.js.map +1 -0
- package/dist/core/web/public/next/assets/wiki-focus-De8-E48Z.js +2 -0
- package/dist/core/web/public/next/assets/wiki-focus-De8-E48Z.js.map +1 -0
- package/dist/core/web/public/next/index.html +1 -1
- package/dist/release-dependency-inventory.json +1 -1
- package/package.json +1 -1
- package/dist/core/web/public/next/assets/ActionMenu-CebJFKYy.js +0 -2
- package/dist/core/web/public/next/assets/ActionMenu-CebJFKYy.js.map +0 -1
- package/dist/core/web/public/next/assets/Advanced-Dr9aVbXV.js +0 -2
- package/dist/core/web/public/next/assets/Advanced-Dr9aVbXV.js.map +0 -1
- package/dist/core/web/public/next/assets/AgentDetailScreen-DCVf81Vo.js +0 -2
- package/dist/core/web/public/next/assets/AgentDetailScreen-DCVf81Vo.js.map +0 -1
- package/dist/core/web/public/next/assets/AgentToolsSheet-C3SbvEiV.js +0 -2
- package/dist/core/web/public/next/assets/AgentToolsSheet-C3SbvEiV.js.map +0 -1
- package/dist/core/web/public/next/assets/AgentToolsStrip-CZNxj_Iv.js +0 -2
- package/dist/core/web/public/next/assets/AgentToolsStrip-CZNxj_Iv.js.map +0 -1
- package/dist/core/web/public/next/assets/AgentsScreen-zLj4gzPR.js +0 -2
- package/dist/core/web/public/next/assets/AgentsScreen-zLj4gzPR.js.map +0 -1
- package/dist/core/web/public/next/assets/AgentsSection-CIo_nRmi.js +0 -3
- package/dist/core/web/public/next/assets/AgentsSection-CIo_nRmi.js.map +0 -1
- package/dist/core/web/public/next/assets/App-CPKNuUdC.js +0 -8
- package/dist/core/web/public/next/assets/App-CPKNuUdC.js.map +0 -1
- package/dist/core/web/public/next/assets/AppsSection-D2F2CM-E.js +0 -2
- package/dist/core/web/public/next/assets/AppsSection-D2F2CM-E.js.map +0 -1
- package/dist/core/web/public/next/assets/AreaTrend-DiZu8bjc.js +0 -2
- package/dist/core/web/public/next/assets/AreaTrend-DiZu8bjc.js.map +0 -1
- package/dist/core/web/public/next/assets/AutomationsSection-B4rBNUyo.js +0 -2
- package/dist/core/web/public/next/assets/AutomationsSection-B4rBNUyo.js.map +0 -1
- package/dist/core/web/public/next/assets/AutonomyOffState-DEznxI-Q.js +0 -3
- package/dist/core/web/public/next/assets/AutonomyOffState-DEznxI-Q.js.map +0 -1
- package/dist/core/web/public/next/assets/AutonomySection-Dq5n3gs7.js +0 -2
- package/dist/core/web/public/next/assets/AutonomySection-Dq5n3gs7.js.map +0 -1
- package/dist/core/web/public/next/assets/AutonomyStatus-Uydy6-pZ.js +0 -2
- package/dist/core/web/public/next/assets/AutonomyStatus-Uydy6-pZ.js.map +0 -1
- package/dist/core/web/public/next/assets/BranchBar-BzUmUM_j.js +0 -2
- package/dist/core/web/public/next/assets/BranchBar-BzUmUM_j.js.map +0 -1
- package/dist/core/web/public/next/assets/BrowserPanel-C_VI6Awi.js +0 -7
- package/dist/core/web/public/next/assets/BrowserPanel-C_VI6Awi.js.map +0 -1
- package/dist/core/web/public/next/assets/BudgetControl-B23rNAuC.js +0 -2
- package/dist/core/web/public/next/assets/BudgetControl-B23rNAuC.js.map +0 -1
- package/dist/core/web/public/next/assets/Button-DJY_Pu5B.js +0 -2
- package/dist/core/web/public/next/assets/Button-DJY_Pu5B.js.map +0 -1
- package/dist/core/web/public/next/assets/CapacityStrip-B5Yj2PhZ.js +0 -2
- package/dist/core/web/public/next/assets/CapacityStrip-B5Yj2PhZ.js.map +0 -1
- package/dist/core/web/public/next/assets/ChangesPaneHost-LsUonc7P.js +0 -16
- package/dist/core/web/public/next/assets/ChangesPaneHost-LsUonc7P.js.map +0 -1
- package/dist/core/web/public/next/assets/ChartFrame-CakjKkPx.js +0 -2
- package/dist/core/web/public/next/assets/ChartFrame-CakjKkPx.js.map +0 -1
- package/dist/core/web/public/next/assets/ChatPanes-DgKskpXb.js +0 -2
- package/dist/core/web/public/next/assets/ChatPanes-DgKskpXb.js.map +0 -1
- package/dist/core/web/public/next/assets/ChatSection-DXpzV1NW.js +0 -3
- package/dist/core/web/public/next/assets/ChatSection-DXpzV1NW.js.map +0 -1
- package/dist/core/web/public/next/assets/ChecksPanel-BeCJVOJC.js +0 -5
- package/dist/core/web/public/next/assets/ChecksPanel-BeCJVOJC.js.map +0 -1
- package/dist/core/web/public/next/assets/CloudBudgetForm-4SWIGJLs.js +0 -2
- package/dist/core/web/public/next/assets/CloudBudgetForm-4SWIGJLs.js.map +0 -1
- package/dist/core/web/public/next/assets/CommandPalette-B4QaFGY5.js +0 -3
- package/dist/core/web/public/next/assets/CommandPalette-B4QaFGY5.js.map +0 -1
- package/dist/core/web/public/next/assets/CommandSection-8TFjYitt.js +0 -3
- package/dist/core/web/public/next/assets/CommandSection-8TFjYitt.js.map +0 -1
- package/dist/core/web/public/next/assets/CommandWorkflowForm-B2ooVjof.js +0 -9
- package/dist/core/web/public/next/assets/CommandWorkflowForm-B2ooVjof.js.map +0 -1
- package/dist/core/web/public/next/assets/CommandWorkflowPicker-C09vJiUG.js +0 -3
- package/dist/core/web/public/next/assets/CommandWorkflowPicker-C09vJiUG.js.map +0 -1
- package/dist/core/web/public/next/assets/CompareDialog-CaopnGI0.js +0 -4
- package/dist/core/web/public/next/assets/CompareDialog-CaopnGI0.js.map +0 -1
- package/dist/core/web/public/next/assets/ComputerControl-BflC6wd1.js +0 -2
- package/dist/core/web/public/next/assets/ComputerControl-BflC6wd1.js.map +0 -1
- package/dist/core/web/public/next/assets/ConfirmDialog-CTeMFavv.js +0 -2
- package/dist/core/web/public/next/assets/ConfirmDialog-CTeMFavv.js.map +0 -1
- package/dist/core/web/public/next/assets/DeleteChatDialog-B2bUTuZ9.js +0 -2
- package/dist/core/web/public/next/assets/DeleteChatDialog-B2bUTuZ9.js.map +0 -1
- package/dist/core/web/public/next/assets/DevinStopDialog-DPP34cna.js +0 -2
- package/dist/core/web/public/next/assets/DevinStopDialog-DPP34cna.js.map +0 -1
- package/dist/core/web/public/next/assets/Dialog-r4j4R4b6.js +0 -2
- package/dist/core/web/public/next/assets/Dialog-r4j4R4b6.js.map +0 -1
- package/dist/core/web/public/next/assets/DiffPane-CKnpzqaU.js +0 -2
- package/dist/core/web/public/next/assets/DiffPane-CKnpzqaU.js.map +0 -1
- package/dist/core/web/public/next/assets/DiffViewer-BzQ7245p.js +0 -2
- package/dist/core/web/public/next/assets/DiffViewer-BzQ7245p.js.map +0 -1
- package/dist/core/web/public/next/assets/DockHost-BCZtC_lm.js +0 -2
- package/dist/core/web/public/next/assets/DockHost-BCZtC_lm.js.map +0 -1
- package/dist/core/web/public/next/assets/EmptyState-Cwpga8L9.js +0 -2
- package/dist/core/web/public/next/assets/EmptyState-Cwpga8L9.js.map +0 -1
- package/dist/core/web/public/next/assets/Epistemic-BBwXv-C1.js +0 -2
- package/dist/core/web/public/next/assets/Epistemic-BBwXv-C1.js.map +0 -1
- package/dist/core/web/public/next/assets/EvidenceTimeline-hAENJQCa.js +0 -2
- package/dist/core/web/public/next/assets/EvidenceTimeline-hAENJQCa.js.map +0 -1
- package/dist/core/web/public/next/assets/FilesPane-CrPN5zlx.js +0 -2
- package/dist/core/web/public/next/assets/FilesPane-CrPN5zlx.js.map +0 -1
- package/dist/core/web/public/next/assets/FleetScreen-Cz9HQ-st.js +0 -2
- package/dist/core/web/public/next/assets/FleetScreen-Cz9HQ-st.js.map +0 -1
- package/dist/core/web/public/next/assets/FleetSection-CmZKQ1rr.js +0 -5
- package/dist/core/web/public/next/assets/FleetSection-CmZKQ1rr.js.map +0 -1
- package/dist/core/web/public/next/assets/Funnel-Cfg55EZp.js +0 -2
- package/dist/core/web/public/next/assets/Funnel-Cfg55EZp.js.map +0 -1
- package/dist/core/web/public/next/assets/GearTray-D-Mhc8TJ.js +0 -2
- package/dist/core/web/public/next/assets/GearTray-D-Mhc8TJ.js.map +0 -1
- package/dist/core/web/public/next/assets/GitDialogs-e-7RQEGv.js +0 -2
- package/dist/core/web/public/next/assets/GitDialogs-e-7RQEGv.js.map +0 -1
- package/dist/core/web/public/next/assets/GrowthSection-DsIrdTDd.js +0 -3
- package/dist/core/web/public/next/assets/GrowthSection-DsIrdTDd.js.map +0 -1
- package/dist/core/web/public/next/assets/HandoffDialog-1MB2fmT1.js +0 -2
- package/dist/core/web/public/next/assets/HandoffDialog-1MB2fmT1.js.map +0 -1
- package/dist/core/web/public/next/assets/HomeBody-n_t3A58_.js +0 -3
- package/dist/core/web/public/next/assets/HomeBody-n_t3A58_.js.map +0 -1
- package/dist/core/web/public/next/assets/HomeSeats-DA66aOWC.js +0 -2
- package/dist/core/web/public/next/assets/HomeSeats-DA66aOWC.js.map +0 -1
- package/dist/core/web/public/next/assets/Input-Bt6fp051.js +0 -2
- package/dist/core/web/public/next/assets/Input-Bt6fp051.js.map +0 -1
- package/dist/core/web/public/next/assets/LaunchDialog-BCd7XqCv.js +0 -9
- package/dist/core/web/public/next/assets/LaunchDialog-BCd7XqCv.js.map +0 -1
- package/dist/core/web/public/next/assets/LeaderCard-DFAFcyfZ.js +0 -2
- package/dist/core/web/public/next/assets/LeaderCard-DFAFcyfZ.js.map +0 -1
- package/dist/core/web/public/next/assets/LeaderConversation-LSenfZzT.js +0 -3
- package/dist/core/web/public/next/assets/LeaderConversation-LSenfZzT.js.map +0 -1
- package/dist/core/web/public/next/assets/LeaderScreen-B2UxRWUm.js +0 -2
- package/dist/core/web/public/next/assets/LeaderScreen-B2UxRWUm.js.map +0 -1
- package/dist/core/web/public/next/assets/LessonsPanel-D86ZT0we.js +0 -2
- package/dist/core/web/public/next/assets/LessonsPanel-D86ZT0we.js.map +0 -1
- package/dist/core/web/public/next/assets/LiveTimer-AtG5hPwV.js +0 -2
- package/dist/core/web/public/next/assets/LiveTimer-AtG5hPwV.js.map +0 -1
- package/dist/core/web/public/next/assets/LocalSeatBadge-XfGRZCA3.js +0 -2
- package/dist/core/web/public/next/assets/LocalSeatBadge-XfGRZCA3.js.map +0 -1
- package/dist/core/web/public/next/assets/MatrixHeatmap-PSnyMJ2h.js +0 -2
- package/dist/core/web/public/next/assets/MatrixHeatmap-PSnyMJ2h.js.map +0 -1
- package/dist/core/web/public/next/assets/McpSection-BG2FSkgH.js +0 -2
- package/dist/core/web/public/next/assets/McpSection-BG2FSkgH.js.map +0 -1
- package/dist/core/web/public/next/assets/MessageMarkdown-CQEqoMvf.js +0 -3
- package/dist/core/web/public/next/assets/MessageMarkdown-CQEqoMvf.js.map +0 -1
- package/dist/core/web/public/next/assets/MessageMarkdownRenderer-DU-VLDhb.js +0 -72
- package/dist/core/web/public/next/assets/MessageMarkdownRenderer-DU-VLDhb.js.map +0 -1
- package/dist/core/web/public/next/assets/Meter-BfaE-BjY.js +0 -2
- package/dist/core/web/public/next/assets/Meter-BfaE-BjY.js.map +0 -1
- package/dist/core/web/public/next/assets/MicButton-BbGB7y_9.js +0 -2
- package/dist/core/web/public/next/assets/MicButton-BbGB7y_9.js.map +0 -1
- package/dist/core/web/public/next/assets/MindSection-CX0VaHo1.js +0 -3
- package/dist/core/web/public/next/assets/MindSection-CX0VaHo1.js.map +0 -1
- package/dist/core/web/public/next/assets/MobileComposer-CFeLWUCz.js +0 -2
- package/dist/core/web/public/next/assets/MobileComposer-CFeLWUCz.js.map +0 -1
- package/dist/core/web/public/next/assets/MobileGuardSheet-cGW9RCTr.js +0 -2
- package/dist/core/web/public/next/assets/MobileGuardSheet-cGW9RCTr.js.map +0 -1
- package/dist/core/web/public/next/assets/MobileRuntime-BWTZ_QLr.js +0 -3
- package/dist/core/web/public/next/assets/MobileRuntime-BWTZ_QLr.js.map +0 -1
- package/dist/core/web/public/next/assets/MoreScreen-BcHZhVrR.js +0 -2
- package/dist/core/web/public/next/assets/MoreScreen-BcHZhVrR.js.map +0 -1
- package/dist/core/web/public/next/assets/MultiModelBar-COxIRv7m.js +0 -7
- package/dist/core/web/public/next/assets/MultiModelBar-COxIRv7m.js.map +0 -1
- package/dist/core/web/public/next/assets/MutationTokenDialog-Dnf_rcnc.js +0 -2
- package/dist/core/web/public/next/assets/MutationTokenDialog-Dnf_rcnc.js.map +0 -1
- package/dist/core/web/public/next/assets/NeedsYouDrawer-COrUlnd0.js +0 -3
- package/dist/core/web/public/next/assets/NeedsYouDrawer-COrUlnd0.js.map +0 -1
- package/dist/core/web/public/next/assets/NeedsYouList-AXzOe4EL.js +0 -2
- package/dist/core/web/public/next/assets/NeedsYouList-AXzOe4EL.js.map +0 -1
- package/dist/core/web/public/next/assets/NeedsYouScreen-HSXybHgd.js +0 -2
- package/dist/core/web/public/next/assets/NeedsYouScreen-HSXybHgd.js.map +0 -1
- package/dist/core/web/public/next/assets/NewAgentScreen-BI849ZsG.js +0 -2
- package/dist/core/web/public/next/assets/NewAgentScreen-BI849ZsG.js.map +0 -1
- package/dist/core/web/public/next/assets/NewChatDialog-BHoCnP6Q.js +0 -4
- package/dist/core/web/public/next/assets/NewChatDialog-BHoCnP6Q.js.map +0 -1
- package/dist/core/web/public/next/assets/OnboardingFlow-BVljU2uy.js +0 -3
- package/dist/core/web/public/next/assets/OnboardingFlow-BVljU2uy.js.map +0 -1
- package/dist/core/web/public/next/assets/OnboardingGate-DlI4L7Ki.js +0 -3
- package/dist/core/web/public/next/assets/OnboardingGate-DlI4L7Ki.js.map +0 -1
- package/dist/core/web/public/next/assets/PlaybooksSection-hhNpXnsR.js +0 -9
- package/dist/core/web/public/next/assets/PlaybooksSection-hhNpXnsR.js.map +0 -1
- package/dist/core/web/public/next/assets/PreviewPane-BbXr63u2.js +0 -2
- package/dist/core/web/public/next/assets/PreviewPane-BbXr63u2.js.map +0 -1
- package/dist/core/web/public/next/assets/ProviderLogo-BliSWEMw.js +0 -2
- package/dist/core/web/public/next/assets/ProviderLogo-BliSWEMw.js.map +0 -1
- package/dist/core/web/public/next/assets/RailStatus-SnrVxLnp.js +0 -2
- package/dist/core/web/public/next/assets/RailStatus-SnrVxLnp.js.map +0 -1
- package/dist/core/web/public/next/assets/ReasoningPane-C04_bOAi.js +0 -2
- package/dist/core/web/public/next/assets/ReasoningPane-C04_bOAi.js.map +0 -1
- package/dist/core/web/public/next/assets/ReasoningSheet-BvNFwtuX.js +0 -2
- package/dist/core/web/public/next/assets/ReasoningSheet-BvNFwtuX.js.map +0 -1
- package/dist/core/web/public/next/assets/RefreshIndicator-BNptNJiV.js +0 -2
- package/dist/core/web/public/next/assets/RefreshIndicator-BNptNJiV.js.map +0 -1
- package/dist/core/web/public/next/assets/RemoteMobileApp-osaSEvnm.js +0 -2
- package/dist/core/web/public/next/assets/RemoteMobileApp-osaSEvnm.js.map +0 -1
- package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-LO31zjUR.js +0 -7
- package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-LO31zjUR.js.map +0 -1
- package/dist/core/web/public/next/assets/ResourcesChrome-ByZE532G.js +0 -3
- package/dist/core/web/public/next/assets/ResourcesChrome-ByZE532G.js.map +0 -1
- package/dist/core/web/public/next/assets/ResourcesChrome-p_VCkMZH.css +0 -1
- package/dist/core/web/public/next/assets/ResourcesDrawer-BH9uwNE8.js +0 -3
- package/dist/core/web/public/next/assets/ResourcesDrawer-BH9uwNE8.js.map +0 -1
- package/dist/core/web/public/next/assets/ReviewMenu-B2A_YDPi.js +0 -2
- package/dist/core/web/public/next/assets/ReviewMenu-B2A_YDPi.js.map +0 -1
- package/dist/core/web/public/next/assets/RouteErrorBoundary-CVabFM97.js +0 -2
- package/dist/core/web/public/next/assets/RouteErrorBoundary-CVabFM97.js.map +0 -1
- package/dist/core/web/public/next/assets/RunInCloudAction-BpNHE7m8.js +0 -2
- package/dist/core/web/public/next/assets/RunInCloudAction-BpNHE7m8.js.map +0 -1
- package/dist/core/web/public/next/assets/RunInDevinAction-Bkf5Gb3a.js +0 -2
- package/dist/core/web/public/next/assets/RunInDevinAction-Bkf5Gb3a.js.map +0 -1
- package/dist/core/web/public/next/assets/SchedulingEvidence-B08-qhhm.js +0 -2
- package/dist/core/web/public/next/assets/SchedulingEvidence-B08-qhhm.js.map +0 -1
- package/dist/core/web/public/next/assets/ScreenHost-BGSxFyWK.js +0 -3
- package/dist/core/web/public/next/assets/ScreenHost-BGSxFyWK.js.map +0 -1
- package/dist/core/web/public/next/assets/SeatSelector-B4lRZl0K.js +0 -3
- package/dist/core/web/public/next/assets/SeatSelector-B4lRZl0K.js.map +0 -1
- package/dist/core/web/public/next/assets/Segmented-Dokzywy8.js +0 -2
- package/dist/core/web/public/next/assets/Segmented-Dokzywy8.js.map +0 -1
- package/dist/core/web/public/next/assets/Select-tf4lNvWD.js +0 -2
- package/dist/core/web/public/next/assets/Select-tf4lNvWD.js.map +0 -1
- package/dist/core/web/public/next/assets/SessionGate-Bab2qO29.js +0 -2
- package/dist/core/web/public/next/assets/SessionGate-Bab2qO29.js.map +0 -1
- package/dist/core/web/public/next/assets/SessionInsightChip-C-fj8h4A.js +0 -2
- package/dist/core/web/public/next/assets/SessionInsightChip-C-fj8h4A.js.map +0 -1
- package/dist/core/web/public/next/assets/SessionSearch-CqjjwOW2.js +0 -2
- package/dist/core/web/public/next/assets/SessionSearch-CqjjwOW2.js.map +0 -1
- package/dist/core/web/public/next/assets/SettingsSection-DfOsHzl6.js +0 -2
- package/dist/core/web/public/next/assets/SettingsSection-DfOsHzl6.js.map +0 -1
- package/dist/core/web/public/next/assets/SetupChecklist-BsxCTcYY.js +0 -2
- package/dist/core/web/public/next/assets/SetupChecklist-BsxCTcYY.js.map +0 -1
- package/dist/core/web/public/next/assets/ShadowDecisions-B1ZPv7K-.js +0 -3
- package/dist/core/web/public/next/assets/ShadowDecisions-B1ZPv7K-.js.map +0 -1
- package/dist/core/web/public/next/assets/Sheet-DLlZ00Lu.js +0 -2
- package/dist/core/web/public/next/assets/Sheet-DLlZ00Lu.js.map +0 -1
- package/dist/core/web/public/next/assets/ShortcutsOverlay-CDwQdpGV.js +0 -2
- package/dist/core/web/public/next/assets/ShortcutsOverlay-CDwQdpGV.js.map +0 -1
- package/dist/core/web/public/next/assets/Sidebar-H5WNri2S.js +0 -3
- package/dist/core/web/public/next/assets/Sidebar-H5WNri2S.js.map +0 -1
- package/dist/core/web/public/next/assets/SkipToContent-BjJE6yOo.js +0 -2
- package/dist/core/web/public/next/assets/SkipToContent-BjJE6yOo.js.map +0 -1
- package/dist/core/web/public/next/assets/Slider-C68TumXj.js +0 -2
- package/dist/core/web/public/next/assets/Slider-C68TumXj.js.map +0 -1
- package/dist/core/web/public/next/assets/SourcesPane-DHYs4YIg.js +0 -2
- package/dist/core/web/public/next/assets/SourcesPane-DHYs4YIg.js.map +0 -1
- package/dist/core/web/public/next/assets/SourcesPanel-DFyLfYBO.js +0 -2
- package/dist/core/web/public/next/assets/SourcesPanel-DFyLfYBO.js.map +0 -1
- package/dist/core/web/public/next/assets/StatTile-CTUuhOLS.js +0 -2
- package/dist/core/web/public/next/assets/StatTile-CTUuhOLS.js.map +0 -1
- package/dist/core/web/public/next/assets/StatusBadge-DrVbi5dF.js +0 -2
- package/dist/core/web/public/next/assets/StatusBadge-DrVbi5dF.js.map +0 -1
- package/dist/core/web/public/next/assets/StepBand-CXDpnu2R.js +0 -2
- package/dist/core/web/public/next/assets/StepBand-CXDpnu2R.js.map +0 -1
- package/dist/core/web/public/next/assets/Surface-DCL7uORg.js +0 -2
- package/dist/core/web/public/next/assets/Surface-DCL7uORg.js.map +0 -1
- package/dist/core/web/public/next/assets/Swimlane-BAEjfoVU.js +0 -2
- package/dist/core/web/public/next/assets/Swimlane-BAEjfoVU.js.map +0 -1
- package/dist/core/web/public/next/assets/Switch-Z7RmRjWE.js +0 -2
- package/dist/core/web/public/next/assets/Switch-Z7RmRjWE.js.map +0 -1
- package/dist/core/web/public/next/assets/Tag-Ciht3C94.js +0 -2
- package/dist/core/web/public/next/assets/Tag-Ciht3C94.js.map +0 -1
- package/dist/core/web/public/next/assets/TerminalPane-BdIyhtzJ.js +0 -26
- package/dist/core/web/public/next/assets/TerminalPane-BdIyhtzJ.js.map +0 -1
- package/dist/core/web/public/next/assets/TerminalPane-DJKT600N.js +0 -3
- package/dist/core/web/public/next/assets/TerminalPane-DJKT600N.js.map +0 -1
- package/dist/core/web/public/next/assets/ThinkingBlock-CHRZX_fJ.js +0 -2
- package/dist/core/web/public/next/assets/ThinkingBlock-CHRZX_fJ.js.map +0 -1
- package/dist/core/web/public/next/assets/UniverseConsoleApp-QSoaY_Fk.js +0 -2
- package/dist/core/web/public/next/assets/UniverseConsoleApp-QSoaY_Fk.js.map +0 -1
- package/dist/core/web/public/next/assets/UniverseView-ZXAOJ0Rq.js +0 -9
- package/dist/core/web/public/next/assets/UniverseView-ZXAOJ0Rq.js.map +0 -1
- package/dist/core/web/public/next/assets/UsageSection-BEAa-W_q.js +0 -3
- package/dist/core/web/public/next/assets/UsageSection-BEAa-W_q.js.map +0 -1
- package/dist/core/web/public/next/assets/UsePlaybookAction-S7Yky_M8.js +0 -2
- package/dist/core/web/public/next/assets/UsePlaybookAction-S7Yky_M8.js.map +0 -1
- package/dist/core/web/public/next/assets/VerseConsoleApp-Cj6yPJo3.js +0 -3
- package/dist/core/web/public/next/assets/VerseConsoleApp-Cj6yPJo3.js.map +0 -1
- package/dist/core/web/public/next/assets/VerseConsoleApp-n6qr3lCF.css +0 -1
- package/dist/core/web/public/next/assets/VerseMobileApp-BRayqF_2.js +0 -3
- package/dist/core/web/public/next/assets/VerseMobileApp-BRayqF_2.js.map +0 -1
- package/dist/core/web/public/next/assets/VerseShared-CH8mV5ew.js +0 -2
- package/dist/core/web/public/next/assets/VerseShared-CH8mV5ew.js.map +0 -1
- package/dist/core/web/public/next/assets/VoiceHud-CO4yGRlr.js +0 -2
- package/dist/core/web/public/next/assets/VoiceHud-CO4yGRlr.js.map +0 -1
- package/dist/core/web/public/next/assets/VoiceInput-fSLnbGJ4.js +0 -2
- package/dist/core/web/public/next/assets/VoiceInput-fSLnbGJ4.js.map +0 -1
- package/dist/core/web/public/next/assets/WikiSection-CN-HansV.js +0 -2
- package/dist/core/web/public/next/assets/WikiSection-CN-HansV.js.map +0 -1
- package/dist/core/web/public/next/assets/Workspace-dufi6DmW.js +0 -6
- package/dist/core/web/public/next/assets/Workspace-dufi6DmW.js.map +0 -1
- package/dist/core/web/public/next/assets/actions-gBplqbpY.js +0 -2
- package/dist/core/web/public/next/assets/actions-gBplqbpY.js.map +0 -1
- package/dist/core/web/public/next/assets/agent-tools-client-ClFut2J1.js +0 -2
- package/dist/core/web/public/next/assets/agent-tools-client-ClFut2J1.js.map +0 -1
- package/dist/core/web/public/next/assets/agents-focus-DjBz83BQ.js +0 -2
- package/dist/core/web/public/next/assets/agents-focus-DjBz83BQ.js.map +0 -1
- package/dist/core/web/public/next/assets/app-version-B0FcXqqB.js +0 -2
- package/dist/core/web/public/next/assets/app-version-B0FcXqqB.js.map +0 -1
- package/dist/core/web/public/next/assets/apps-model-C-SdWY0N.js +0 -2
- package/dist/core/web/public/next/assets/apps-model-C-SdWY0N.js.map +0 -1
- package/dist/core/web/public/next/assets/ask-seat-DhGxiGSd.js +0 -2
- package/dist/core/web/public/next/assets/ask-seat-DhGxiGSd.js.map +0 -1
- package/dist/core/web/public/next/assets/authority-model-CoXAS-Z6.js +0 -2
- package/dist/core/web/public/next/assets/authority-model-CoXAS-Z6.js.map +0 -1
- package/dist/core/web/public/next/assets/automations-focus-CeneF7lP.js +0 -2
- package/dist/core/web/public/next/assets/automations-focus-CeneF7lP.js.map +0 -1
- package/dist/core/web/public/next/assets/budget-queries-DCZevH2S.js +0 -2
- package/dist/core/web/public/next/assets/budget-queries-DCZevH2S.js.map +0 -1
- package/dist/core/web/public/next/assets/capacity-strip-model-Wna9o0dS.js +0 -2
- package/dist/core/web/public/next/assets/capacity-strip-model-Wna9o0dS.js.map +0 -1
- package/dist/core/web/public/next/assets/charts-CzqC55eL.js +0 -2
- package/dist/core/web/public/next/assets/charts-CzqC55eL.js.map +0 -1
- package/dist/core/web/public/next/assets/chat-pane-data-BBA55Pw-.js +0 -2
- package/dist/core/web/public/next/assets/chat-pane-data-BBA55Pw-.js.map +0 -1
- package/dist/core/web/public/next/assets/checkpoint-queries-gP6Vh70H.js +0 -2
- package/dist/core/web/public/next/assets/checkpoint-queries-gP6Vh70H.js.map +0 -1
- package/dist/core/web/public/next/assets/cloud-queries-Bsqo7wye.js +0 -2
- package/dist/core/web/public/next/assets/cloud-queries-Bsqo7wye.js.map +0 -1
- package/dist/core/web/public/next/assets/command-catalog-Dnx-iMLX.js +0 -2
- package/dist/core/web/public/next/assets/command-catalog-Dnx-iMLX.js.map +0 -1
- package/dist/core/web/public/next/assets/composer-queries-DHGJlnFJ.js +0 -2
- package/dist/core/web/public/next/assets/composer-queries-DHGJlnFJ.js.map +0 -1
- package/dist/core/web/public/next/assets/connectivity-BViMMNcD.js +0 -2
- package/dist/core/web/public/next/assets/connectivity-BViMMNcD.js.map +0 -1
- package/dist/core/web/public/next/assets/context-queries-Bsl-w0q-.js +0 -2
- package/dist/core/web/public/next/assets/context-queries-Bsl-w0q-.js.map +0 -1
- package/dist/core/web/public/next/assets/control-queries-CUNa6TAx.js +0 -2
- package/dist/core/web/public/next/assets/control-queries-CUNa6TAx.js.map +0 -1
- package/dist/core/web/public/next/assets/copy-setup-C2goNcTZ.js +0 -2
- package/dist/core/web/public/next/assets/copy-setup-C2goNcTZ.js.map +0 -1
- package/dist/core/web/public/next/assets/deep-link-Dg_zaqAl.js +0 -2
- package/dist/core/web/public/next/assets/deep-link-Dg_zaqAl.js.map +0 -1
- package/dist/core/web/public/next/assets/device-permissions-CEXY0Vor.js +0 -2
- package/dist/core/web/public/next/assets/device-permissions-CEXY0Vor.js.map +0 -1
- package/dist/core/web/public/next/assets/devin-queries-Cu_YYhw2.js +0 -2
- package/dist/core/web/public/next/assets/devin-queries-Cu_YYhw2.js.map +0 -1
- package/dist/core/web/public/next/assets/dock-icons-DGZoDN6N.js +0 -2
- package/dist/core/web/public/next/assets/dock-icons-DGZoDN6N.js.map +0 -1
- package/dist/core/web/public/next/assets/dock-panes-BgSO9q_f.js +0 -2
- package/dist/core/web/public/next/assets/dock-panes-BgSO9q_f.js.map +0 -1
- package/dist/core/web/public/next/assets/fleet-control-queries-clsJWanE.js +0 -2
- package/dist/core/web/public/next/assets/fleet-control-queries-clsJWanE.js.map +0 -1
- package/dist/core/web/public/next/assets/fleet-queries-DX1AwHEt.js +0 -2
- package/dist/core/web/public/next/assets/fleet-queries-DX1AwHEt.js.map +0 -1
- package/dist/core/web/public/next/assets/fleet-state-EgNiSDxu.js +0 -3
- package/dist/core/web/public/next/assets/fleet-state-EgNiSDxu.js.map +0 -1
- package/dist/core/web/public/next/assets/focus-trap-B1vuEhZX.js +0 -2
- package/dist/core/web/public/next/assets/focus-trap-B1vuEhZX.js.map +0 -1
- package/dist/core/web/public/next/assets/git-model-Bu59fz1m.js +0 -5
- package/dist/core/web/public/next/assets/git-model-Bu59fz1m.js.map +0 -1
- package/dist/core/web/public/next/assets/global-BJ_kVFpD.js +0 -3
- package/dist/core/web/public/next/assets/global-BJ_kVFpD.js.map +0 -1
- package/dist/core/web/public/next/assets/guarded-action-CzvG7Qgc.js +0 -3
- package/dist/core/web/public/next/assets/guarded-action-CzvG7Qgc.js.map +0 -1
- package/dist/core/web/public/next/assets/guarded-runners-BPM0KdoQ.js +0 -2
- package/dist/core/web/public/next/assets/guarded-runners-BPM0KdoQ.js.map +0 -1
- package/dist/core/web/public/next/assets/health-queries-CMxSsJKS.js +0 -2
- package/dist/core/web/public/next/assets/health-queries-CMxSsJKS.js.map +0 -1
- package/dist/core/web/public/next/assets/icons-MYfI6vZr.js +0 -2
- package/dist/core/web/public/next/assets/icons-MYfI6vZr.js.map +0 -1
- package/dist/core/web/public/next/assets/index-DOAOxiKl.js +0 -11
- package/dist/core/web/public/next/assets/index-DOAOxiKl.js.map +0 -1
- package/dist/core/web/public/next/assets/jev-queries-CS2A5uWe.js +0 -2
- package/dist/core/web/public/next/assets/jev-queries-CS2A5uWe.js.map +0 -1
- package/dist/core/web/public/next/assets/ladder-queries-CBoG3heV.js +0 -2
- package/dist/core/web/public/next/assets/ladder-queries-CBoG3heV.js.map +0 -1
- package/dist/core/web/public/next/assets/leader-focus-DDQlv0TB.js +0 -2
- package/dist/core/web/public/next/assets/leader-focus-DDQlv0TB.js.map +0 -1
- package/dist/core/web/public/next/assets/live-model-CCjYFk48.js +0 -2
- package/dist/core/web/public/next/assets/live-model-CCjYFk48.js.map +0 -1
- package/dist/core/web/public/next/assets/mobile-actions-XqB_h7a8.js +0 -2
- package/dist/core/web/public/next/assets/mobile-actions-XqB_h7a8.js.map +0 -1
- package/dist/core/web/public/next/assets/mobile-toast-eIrghd9o.js +0 -2
- package/dist/core/web/public/next/assets/mobile-toast-eIrghd9o.js.map +0 -1
- package/dist/core/web/public/next/assets/multimodel-flows-CzI-yHg5.js +0 -7
- package/dist/core/web/public/next/assets/multimodel-flows-CzI-yHg5.js.map +0 -1
- package/dist/core/web/public/next/assets/multimodel-queries-DxIT9AZY.js +0 -2
- package/dist/core/web/public/next/assets/multimodel-queries-DxIT9AZY.js.map +0 -1
- package/dist/core/web/public/next/assets/mutations-BlGALvmG.js +0 -2
- package/dist/core/web/public/next/assets/mutations-BlGALvmG.js.map +0 -1
- package/dist/core/web/public/next/assets/nav-ByibvQW1.js +0 -2
- package/dist/core/web/public/next/assets/nav-ByibvQW1.js.map +0 -1
- package/dist/core/web/public/next/assets/needs-you-actions-Dp5UxM3X.js +0 -2
- package/dist/core/web/public/next/assets/needs-you-actions-Dp5UxM3X.js.map +0 -1
- package/dist/core/web/public/next/assets/needs-you-model-DYsqHMqy.js +0 -2
- package/dist/core/web/public/next/assets/needs-you-model-DYsqHMqy.js.map +0 -1
- package/dist/core/web/public/next/assets/open-terminal-dOVyLFvn.js +0 -2
- package/dist/core/web/public/next/assets/open-terminal-dOVyLFvn.js.map +0 -1
- package/dist/core/web/public/next/assets/open-terminal-request-BIhvirIl.js +0 -2
- package/dist/core/web/public/next/assets/open-terminal-request-BIhvirIl.js.map +0 -1
- package/dist/core/web/public/next/assets/overnight-queries-KxqH6BRN.js +0 -2
- package/dist/core/web/public/next/assets/overnight-queries-KxqH6BRN.js.map +0 -1
- package/dist/core/web/public/next/assets/palette-handoff-69pw9oBv.js +0 -2
- package/dist/core/web/public/next/assets/palette-handoff-69pw9oBv.js.map +0 -1
- package/dist/core/web/public/next/assets/panes-CHt3427X.js +0 -3
- package/dist/core/web/public/next/assets/panes-CHt3427X.js.map +0 -1
- package/dist/core/web/public/next/assets/path-display-DuIZF5G3.js +0 -2
- package/dist/core/web/public/next/assets/path-display-DuIZF5G3.js.map +0 -1
- package/dist/core/web/public/next/assets/playbook-composer-DipWgX7t.js +0 -2
- package/dist/core/web/public/next/assets/playbook-composer-DipWgX7t.js.map +0 -1
- package/dist/core/web/public/next/assets/playbook-focus-EXJPMBBI.js +0 -2
- package/dist/core/web/public/next/assets/playbook-focus-EXJPMBBI.js.map +0 -1
- package/dist/core/web/public/next/assets/playbooks-queries-BlpGBpOV.js +0 -2
- package/dist/core/web/public/next/assets/playbooks-queries-BlpGBpOV.js.map +0 -1
- package/dist/core/web/public/next/assets/preloaded-TmpzuCEi.js +0 -2
- package/dist/core/web/public/next/assets/preloaded-TmpzuCEi.js.map +0 -1
- package/dist/core/web/public/next/assets/primitives-CDKCUR2v.js +0 -1
- package/dist/core/web/public/next/assets/pwa-CTGMm-wR.js +0 -2
- package/dist/core/web/public/next/assets/pwa-CTGMm-wR.js.map +0 -1
- package/dist/core/web/public/next/assets/queries--mGK10fL.js +0 -2
- package/dist/core/web/public/next/assets/queries--mGK10fL.js.map +0 -1
- package/dist/core/web/public/next/assets/reasoning-pref-CWGL9MD2.js +0 -2
- package/dist/core/web/public/next/assets/reasoning-pref-CWGL9MD2.js.map +0 -1
- package/dist/core/web/public/next/assets/remote-session-I4RXlsas.js +0 -3
- package/dist/core/web/public/next/assets/remote-session-I4RXlsas.js.map +0 -1
- package/dist/core/web/public/next/assets/resolved-store-DwGn9hb_.js +0 -2
- package/dist/core/web/public/next/assets/resolved-store-DwGn9hb_.js.map +0 -1
- package/dist/core/web/public/next/assets/resources-queries-T6ER_hPN.js +0 -2
- package/dist/core/web/public/next/assets/resources-queries-T6ER_hPN.js.map +0 -1
- package/dist/core/web/public/next/assets/reveal-anchor-CHtvhrYm.js +0 -2
- package/dist/core/web/public/next/assets/reveal-anchor-CHtvhrYm.js.map +0 -1
- package/dist/core/web/public/next/assets/sheet-BlzGO1wo.js +0 -2
- package/dist/core/web/public/next/assets/sheet-BlzGO1wo.js.map +0 -1
- package/dist/core/web/public/next/assets/slots-40edgV7X.js +0 -3
- package/dist/core/web/public/next/assets/slots-40edgV7X.js.map +0 -1
- package/dist/core/web/public/next/assets/sources-queries-BrM41X16.js +0 -4
- package/dist/core/web/public/next/assets/sources-queries-BrM41X16.js.map +0 -1
- package/dist/core/web/public/next/assets/sse-CAFwslNC.js +0 -2
- package/dist/core/web/public/next/assets/sse-CAFwslNC.js.map +0 -1
- package/dist/core/web/public/next/assets/surface-data-D_oFOgkh.js +0 -2
- package/dist/core/web/public/next/assets/surface-data-D_oFOgkh.js.map +0 -1
- package/dist/core/web/public/next/assets/surface-prefetch-wqfiATYQ.js +0 -2
- package/dist/core/web/public/next/assets/surface-prefetch-wqfiATYQ.js.map +0 -1
- package/dist/core/web/public/next/assets/terminal-client-iL4DagCN.js +0 -2
- package/dist/core/web/public/next/assets/terminal-client-iL4DagCN.js.map +0 -1
- package/dist/core/web/public/next/assets/terminal-icons-BakeOpKV.js +0 -2
- package/dist/core/web/public/next/assets/terminal-icons-BakeOpKV.js.map +0 -1
- package/dist/core/web/public/next/assets/terminal-view-D6AAh08q.js +0 -6
- package/dist/core/web/public/next/assets/terminal-view-D6AAh08q.js.map +0 -1
- package/dist/core/web/public/next/assets/thread-data-CSDZ514s.js +0 -2
- package/dist/core/web/public/next/assets/thread-data-CSDZ514s.js.map +0 -1
- package/dist/core/web/public/next/assets/ui-parts-DubQJIoq.js +0 -2
- package/dist/core/web/public/next/assets/ui-parts-DubQJIoq.js.map +0 -1
- package/dist/core/web/public/next/assets/usage-queries-BONqdout.js +0 -2
- package/dist/core/web/public/next/assets/usage-queries-BONqdout.js.map +0 -1
- package/dist/core/web/public/next/assets/use-chat-activity-BZjdPPNP.js +0 -2
- package/dist/core/web/public/next/assets/use-chat-activity-BZjdPPNP.js.map +0 -1
- package/dist/core/web/public/next/assets/use-guarded-action-xJ4rxyVo.js +0 -2
- package/dist/core/web/public/next/assets/use-guarded-action-xJ4rxyVo.js.map +0 -1
- package/dist/core/web/public/next/assets/use-ticker-Bsu0cMvl.js +0 -2
- package/dist/core/web/public/next/assets/use-ticker-Bsu0cMvl.js.map +0 -1
- package/dist/core/web/public/next/assets/use-token-gate-E-xzEAu6.js +0 -2
- package/dist/core/web/public/next/assets/use-token-gate-E-xzEAu6.js.map +0 -1
- package/dist/core/web/public/next/assets/useAutoSeat-CXC9e4vx.js +0 -2
- package/dist/core/web/public/next/assets/useAutoSeat-CXC9e4vx.js.map +0 -1
- package/dist/core/web/public/next/assets/useOnboarding-Csw_AXrj.js +0 -2
- package/dist/core/web/public/next/assets/useOnboarding-Csw_AXrj.js.map +0 -1
- package/dist/core/web/public/next/assets/useSeatHealth-B6AXxre9.js +0 -2
- package/dist/core/web/public/next/assets/useSeatHealth-B6AXxre9.js.map +0 -1
- package/dist/core/web/public/next/assets/useSeatsRefresh-BIAa7Exn.js +0 -2
- package/dist/core/web/public/next/assets/useSeatsRefresh-BIAa7Exn.js.map +0 -1
- package/dist/core/web/public/next/assets/useVerseSession-BOyvOEDi.js +0 -2
- package/dist/core/web/public/next/assets/useVerseSession-BOyvOEDi.js.map +0 -1
- package/dist/core/web/public/next/assets/useVerseTranscript-BOhcfdp7.js +0 -2
- package/dist/core/web/public/next/assets/useVerseTranscript-BOhcfdp7.js.map +0 -1
- package/dist/core/web/public/next/assets/verse-bootstrap-query-D-fU89IT.js +0 -2
- package/dist/core/web/public/next/assets/verse-bootstrap-query-D-fU89IT.js.map +0 -1
- package/dist/core/web/public/next/assets/verse-icons-UKbUG3gv.js +0 -2
- package/dist/core/web/public/next/assets/verse-icons-UKbUG3gv.js.map +0 -1
- package/dist/core/web/public/next/assets/warmup-CZ-IBU5L.js +0 -3
- package/dist/core/web/public/next/assets/warmup-CZ-IBU5L.js.map +0 -1
- package/dist/core/web/public/next/assets/wiki-focus-DhAvbMnX.js +0 -2
- package/dist/core/web/public/next/assets/wiki-focus-DhAvbMnX.js.map +0 -1
|
@@ -39795,7 +39795,9 @@ var init_quota = __esm({
|
|
|
39795
39795
|
"nim",
|
|
39796
39796
|
"opencode",
|
|
39797
39797
|
"meta-muse",
|
|
39798
|
-
"grok"
|
|
39798
|
+
"grok",
|
|
39799
|
+
"grok-cli",
|
|
39800
|
+
"devin-cli"
|
|
39799
39801
|
]);
|
|
39800
39802
|
MAX_AUTHORITY_EVENTS = MAX_EVENTS2 * ENGINE_IDS4.size;
|
|
39801
39803
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,o as n,s as r}from"./index-BC5Uslm5.js";var i=e(r(),1),a=e(n(),1),o={menu:`_menu_130xc_5`,"menu-in":`_menu-in_130xc_1`,row:`_row_130xc_21`,item:`_item_130xc_27`,icon:`_icon_130xc_53`,label:`_label_130xc_60`,reason:`_reason_130xc_65`},s=t(),c=8;function l({label:e,items:t,anchor:n,onClose:r,returnFocus:l=null}){let u=(0,i.useRef)(null),d=(0,i.useRef)([]),[f,p]=(0,i.useState)({left:n.x,top:n.y}),m=(0,i.useRef)(r);m.current=r;let h=(0,i.useRef)(l);h.current=l;let g=t.map((e,t)=>e.disabled?-1:t).filter(e=>e>=0);(0,i.useLayoutEffect)(()=>{let e=u.current;if(!e)return;let t=e.getBoundingClientRect(),r=window.innerWidth||document.documentElement.clientWidth,i=window.innerHeight||document.documentElement.clientHeight,a=n.x,o=n.y;t.width>0&&a+t.width>r-c&&(a=Math.max(c,r-c-t.width)),t.height>0&&o+t.height>i-c&&(o=Math.max(c,n.y-t.height)),p({left:a,top:o})},[n.x,n.y]),(0,i.useEffect)(()=>{let e=g[0];e===void 0?u.current?.focus():d.current[e]?.focus()},[]),(0,i.useEffect)(()=>{let e=e=>{u.current&&e.target instanceof Node&&u.current.contains(e.target)||m.current(`dismiss`)},t=e=>{u.current&&e.target instanceof Node&&u.current.contains(e.target)||m.current(`dismiss`)};document.addEventListener(`pointerdown`,e,!0),window.addEventListener(`resize`,t),document.addEventListener(`scroll`,t,!0);let n=u.current;return()=>{document.removeEventListener(`pointerdown`,e,!0),window.removeEventListener(`resize`,t),document.removeEventListener(`scroll`,t,!0);let r=document.activeElement,i=r===null||r===document.body||n!==null&&n.contains(r),a=h.current;i&&a&&document.contains(a)&&a.focus({preventScroll:!0})}},[]);function _(e,t){if(g.length===0)return;let n=g.indexOf(e),r=n<0?t>0?0:g.length-1:(n+t+g.length)%g.length;d.current[g[r]]?.focus()}function v(e){let n=d.current.findIndex(e=>e===document.activeElement);switch(e.key){case`ArrowDown`:e.preventDefault(),_(n,1);return;case`ArrowUp`:e.preventDefault(),_(n,-1);return;case`Home`:e.preventDefault(),d.current[g[0]??0]?.focus();return;case`End`:e.preventDefault(),d.current[g[g.length-1]??0]?.focus();return;case`Escape`:e.preventDefault(),e.stopPropagation(),r(`dismiss`);return;case`Tab`:r(`dismiss`);return;default:if(e.key.length===1&&/\S/.test(e.key)&&!e.metaKey&&!e.ctrlKey&&!e.altKey){let r=e.key.toLowerCase(),i=[...g.filter(e=>e>n),...g.filter(e=>e<=n)].find(e=>t[e].label.toLowerCase().startsWith(r));i!==void 0&&(e.preventDefault(),d.current[i]?.focus())}}}return(0,a.createPortal)((0,s.jsx)(`div`,{ref:u,className:o.menu,role:`menu`,"aria-label":e,tabIndex:-1,style:{left:f.left,top:f.top},onKeyDown:v,onContextMenu:e=>e.preventDefault(),children:t.map((e,t)=>(0,s.jsx)(`div`,{className:o.row,"data-separated":e.separated||void 0,role:`none`,children:(0,s.jsxs)(`button`,{ref:e=>{d.current[t]=e},type:`button`,role:`menuitem`,className:o.item,"data-danger":e.danger||void 0,"aria-disabled":e.disabled||void 0,tabIndex:-1,onClick:()=>{e.disabled||(r(`select`),e.onSelect())},children:[e.icon?(0,s.jsx)(`span`,{className:o.icon,"aria-hidden":`true`,children:e.icon}):null,(0,s.jsxs)(`span`,{className:o.label,children:[e.label,e.description?(0,s.jsx)(`span`,{className:o.reason,children:e.description}):null,e.disabled&&e.reason?(0,s.jsx)(`span`,{className:o.reason,children:e.reason}):null]})]})},e.id))}),document.body)}function u(e,t=`end`,n=220){let r=e.getBoundingClientRect();return{x:t===`end`?r.right-n:r.left,y:r.bottom+4}}export{u as n,l as t};
|
|
2
|
+
//# sourceMappingURL=ActionMenu-Z14OhnFI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionMenu-Z14OhnFI.js","names":[],"sources":["../../../../../../src/web-ui/routes/verse/chat/ActionMenu.module.css","../../../../../../src/web-ui/routes/verse/chat/ActionMenu.tsx"],"sourcesContent":["/**\n * chat/ActionMenu.module.css — the chat surface's action menu. Raised\n * surface, hairline border, the menu shadow; rows are density-sm.\n */\n.menu {\n position: fixed;\n z-index: var(--z-dropdown);\n display: flex;\n flex-direction: column;\n min-width: 200px;\n max-width: min(320px, calc(100vw - 16px));\n padding: var(--space-1);\n border: 1px solid var(--border-default);\n border-radius: var(--radius-md);\n background: var(--bg-surface-raised);\n box-shadow: var(--shadow-menu);\n animation: menu-in var(--duration-fast) var(--ease-decelerate);\n}\n.menu:focus { outline: none; }\n\n.row[data-separated] {\n margin-top: var(--space-1);\n padding-top: var(--space-1);\n border-top: 1px solid var(--border-subtle);\n}\n\n.item {\n display: flex;\n align-items: flex-start;\n gap: var(--space-2);\n width: 100%;\n min-height: var(--density-row-sm);\n padding: var(--space-1) var(--space-2);\n border: 0;\n border-radius: var(--radius-sm);\n background: transparent;\n color: var(--text-primary);\n font: inherit;\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n text-align: left;\n cursor: pointer;\n}\n.item:hover,\n.item:focus { outline: none; background: var(--bg-hover); }\n.item:focus-visible { box-shadow: inset 0 0 0 1px var(--border-focus); }\n.item[data-danger] { color: var(--status-danger-fg); }\n.item[data-danger]:hover,\n.item[data-danger]:focus { background: var(--status-danger-bg); }\n.item[aria-disabled='true'] { color: var(--text-disabled); cursor: not-allowed; }\n.item[aria-disabled='true']:hover { background: transparent; }\n\n.icon {\n flex: none;\n display: inline-flex;\n width: 16px;\n margin-top: 2px;\n color: var(--text-tertiary);\n}\n.label {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n.reason {\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line);\n color: var(--text-tertiary);\n}\n\n@keyframes menu-in {\n from { opacity: 0; transform: translateY(-2px); }\n to { opacity: 1; transform: none; }\n}\n@media (prefers-reduced-motion: reduce) {\n :root:not([data-motion='full']) .menu { animation: none; }\n}\n:root[data-motion='reduce'] .menu { animation: none; }\n","/**\n * routes/verse/chat/ActionMenu.tsx — the chat surface's small action menu\n * (unit C2): the header's ⋯ and a sidebar row's hover / right-click menu.\n *\n * The primitives have no menu, and the ones scattered through the console\n * are each hand-rolled for one place; this one is written once for both of\n * C2's uses and follows the WAI-ARIA menu pattern properly:\n * - `role=\"menu\"` of `menuitem`s, focus moves INTO the menu on open;\n * - ↑/↓ wrap, Home/End jump, a letter jumps to the next item starting\n * with it, Enter/Space choose;\n * - Esc, Tab, a click outside or choosing an item close it and hand focus\n * back to whatever opened it (the ⋯ button, or the row that was\n * right-clicked);\n * - a disabled item stays in the list with its reason as a description, so\n * the operator learns WHY instead of wondering where it went.\n *\n * Portalled and position:fixed so the sidebar's own overflow cannot clip it,\n * and clamped to the viewport (a right-click near the bottom opens upward).\n */\nimport { useEffect, useLayoutEffect, useRef, useState, type KeyboardEvent, type ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\nimport styles from './ActionMenu.module.css';\n\nexport interface ActionMenuItem {\n id: string;\n label: string;\n onSelect: () => void;\n /** Painted as destructive (Delete). */\n danger?: boolean;\n disabled?: boolean;\n /** Shown under a disabled item. */\n reason?: string | null;\n /** A second line under the label, always shown (a cost, a consequence). */\n description?: string | null;\n /** A leading glyph. */\n icon?: ReactNode;\n /** A separator above this item. */\n separated?: boolean;\n}\n\nexport interface MenuAnchor {\n /** Viewport coordinates of the menu's preferred top-left. */\n x: number;\n y: number;\n}\n\nexport interface ActionMenuProps {\n label: string;\n items: readonly ActionMenuItem[];\n anchor: MenuAnchor;\n onClose: (reason: 'select' | 'dismiss') => void;\n /** Focus returns here on close. */\n returnFocus?: HTMLElement | null;\n}\n\nconst EDGE = 8;\n\nexport function ActionMenu({ label, items, anchor, onClose, returnFocus = null }: ActionMenuProps) {\n const ref = useRef<HTMLDivElement>(null);\n const itemRefs = useRef<(HTMLButtonElement | null)[]>([]);\n const [position, setPosition] = useState<{ left: number; top: number }>({ left: anchor.x, top: anchor.y });\n // Read through refs: the listeners below are installed ONCE per open, and a\n // parent passing an inline onClose must not tear them down (and bounce\n // focus back to the trigger) on every render.\n const onCloseRef = useRef(onClose);\n onCloseRef.current = onClose;\n const returnFocusRef = useRef(returnFocus);\n returnFocusRef.current = returnFocus;\n const enabled = items.map((item, i) => (item.disabled ? -1 : i)).filter((i) => i >= 0);\n\n // Clamp into the viewport once the menu has a size.\n useLayoutEffect(() => {\n const node = ref.current;\n if (!node) return;\n const rect = node.getBoundingClientRect();\n const vw = window.innerWidth || document.documentElement.clientWidth;\n const vh = window.innerHeight || document.documentElement.clientHeight;\n let left = anchor.x;\n let top = anchor.y;\n if (rect.width > 0 && left + rect.width > vw - EDGE) left = Math.max(EDGE, vw - EDGE - rect.width);\n if (rect.height > 0 && top + rect.height > vh - EDGE) top = Math.max(EDGE, anchor.y - rect.height);\n setPosition({ left, top });\n }, [anchor.x, anchor.y]);\n\n useEffect(() => {\n const first = enabled[0];\n if (first !== undefined) itemRefs.current[first]?.focus();\n else ref.current?.focus();\n // Focus moves in once, on open.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const onPointer = (event: PointerEvent) => {\n if (ref.current && event.target instanceof Node && ref.current.contains(event.target)) return;\n onCloseRef.current('dismiss');\n };\n const onScroll = (event: Event) => {\n if (ref.current && event.target instanceof Node && ref.current.contains(event.target)) return;\n onCloseRef.current('dismiss');\n };\n document.addEventListener('pointerdown', onPointer, true);\n window.addEventListener('resize', onScroll);\n document.addEventListener('scroll', onScroll, true);\n const menu = ref.current;\n return () => {\n document.removeEventListener('pointerdown', onPointer, true);\n window.removeEventListener('resize', onScroll);\n document.removeEventListener('scroll', onScroll, true);\n // Hand focus back only if it is still ours (in the menu, or dropped to\n // <body> by the unmount) — never yank it from a field the chosen action\n // just focused.\n const active = document.activeElement;\n const ours = active === null || active === document.body || (menu !== null && menu.contains(active));\n const back = returnFocusRef.current;\n if (ours && back && document.contains(back)) back.focus({ preventScroll: true });\n };\n }, []);\n\n function move(from: number, delta: number) {\n if (enabled.length === 0) return;\n const at = enabled.indexOf(from);\n const next = at < 0 ? (delta > 0 ? 0 : enabled.length - 1) : (at + delta + enabled.length) % enabled.length;\n itemRefs.current[enabled[next]!]?.focus();\n }\n\n function onKeyDown(event: KeyboardEvent<HTMLDivElement>) {\n const index = itemRefs.current.findIndex((node) => node === document.activeElement);\n switch (event.key) {\n case 'ArrowDown': event.preventDefault(); move(index, 1); return;\n case 'ArrowUp': event.preventDefault(); move(index, -1); return;\n case 'Home': event.preventDefault(); itemRefs.current[enabled[0] ?? 0]?.focus(); return;\n case 'End': event.preventDefault(); itemRefs.current[enabled[enabled.length - 1] ?? 0]?.focus(); return;\n case 'Escape': event.preventDefault(); event.stopPropagation(); onClose('dismiss'); return;\n case 'Tab': onClose('dismiss'); return;\n default:\n if (event.key.length === 1 && /\\S/.test(event.key) && !event.metaKey && !event.ctrlKey && !event.altKey) {\n const letter = event.key.toLowerCase();\n const order = [...enabled.filter((i) => i > index), ...enabled.filter((i) => i <= index)];\n const hit = order.find((i) => items[i]!.label.toLowerCase().startsWith(letter));\n if (hit !== undefined) {\n event.preventDefault();\n itemRefs.current[hit]?.focus();\n }\n }\n }\n }\n\n return createPortal(\n <div ref={ref} className={styles.menu} role=\"menu\" aria-label={label} tabIndex={-1}\n style={{ left: position.left, top: position.top }} onKeyDown={onKeyDown}\n onContextMenu={(event) => event.preventDefault()}>\n {items.map((item, i) => (\n <div key={item.id} className={styles.row} data-separated={item.separated || undefined} role=\"none\">\n <button\n ref={(node) => { itemRefs.current[i] = node; }}\n type=\"button\"\n role=\"menuitem\"\n className={styles.item}\n data-danger={item.danger || undefined}\n aria-disabled={item.disabled || undefined}\n tabIndex={-1}\n onClick={() => {\n if (item.disabled) return;\n onClose('select');\n item.onSelect();\n }}\n >\n {item.icon ? <span className={styles.icon} aria-hidden=\"true\">{item.icon}</span> : null}\n <span className={styles.label}>\n {item.label}\n {item.description ? <span className={styles.reason}>{item.description}</span> : null}\n {item.disabled && item.reason ? <span className={styles.reason}>{item.reason}</span> : null}\n </span>\n </button>\n </div>\n ))}\n </div>,\n document.body,\n );\n}\n\n/** Anchor a menu under (and right-aligned to) a button. */\nexport function anchorBelow(node: HTMLElement, align: 'start' | 'end' = 'end', menuWidth = 220): MenuAnchor {\n const rect = node.getBoundingClientRect();\n return { x: align === 'end' ? rect.right - menuWidth : rect.left, y: rect.bottom + 4 };\n}\n"],"mappings":"iTCuDM,EAAO,EAEb,SAAgB,EAAW,CAAE,QAAO,QAAO,SAAQ,UAAS,cAAc,MAAyB,CACjG,IAAM,GAAA,EAAM,EAAA,OAAA,CAAuB,IAAI,EACjC,GAAA,EAAW,EAAA,OAAA,CAAqC,CAAC,CAAC,EAClD,CAAC,EAAU,IAAA,EAAe,EAAA,SAAA,CAAwC,CAAE,KAAM,EAAO,EAAG,IAAK,EAAO,CAAE,CAAC,EAInG,GAAA,EAAa,EAAA,OAAA,CAAO,CAAO,EACjC,EAAW,QAAU,EACrB,IAAM,GAAA,EAAiB,EAAA,OAAA,CAAO,CAAW,EACzC,EAAe,QAAU,EACzB,IAAM,EAAU,EAAM,KAAK,EAAM,IAAO,EAAK,SAAW,GAAK,CAAE,CAAC,CAAC,OAAQ,GAAM,GAAK,CAAC,GAGrF,EAAA,EAAA,gBAAA,KAAsB,CACpB,IAAM,EAAO,EAAI,QACjB,GAAI,CAAC,EAAM,OACX,IAAM,EAAO,EAAK,sBAAsB,EAClC,EAAK,OAAO,YAAc,SAAS,gBAAgB,YACnD,EAAK,OAAO,aAAe,SAAS,gBAAgB,aACtD,EAAO,EAAO,EACd,EAAM,EAAO,EACb,EAAK,MAAQ,GAAK,EAAO,EAAK,MAAQ,EAAK,IAAM,EAAO,KAAK,IAAI,EAAM,EAAK,EAAO,EAAK,KAAK,GAC7F,EAAK,OAAS,GAAK,EAAM,EAAK,OAAS,EAAK,IAAM,EAAM,KAAK,IAAI,EAAM,EAAO,EAAI,EAAK,MAAM,GACjG,EAAY,CAAE,OAAM,KAAI,CAAC,CAC3B,EAAG,CAAC,EAAO,EAAG,EAAO,CAAC,CAAC,GAEvB,EAAA,EAAA,UAAA,KAAgB,CACd,IAAM,EAAQ,EAAQ,GAClB,IAAU,IAAA,GACT,EAAI,SAAS,MAAM,EADC,EAAS,QAAQ,EAAM,EAAE,MAAM,CAI1D,EAAG,CAAC,CAAC,GAEL,EAAA,EAAA,UAAA,KAAgB,CACd,IAAM,EAAa,GAAwB,CACrC,EAAI,SAAW,EAAM,kBAAkB,MAAQ,EAAI,QAAQ,SAAS,EAAM,MAAM,GACpF,EAAW,QAAQ,SAAS,CAC9B,EACM,EAAY,GAAiB,CAC7B,EAAI,SAAW,EAAM,kBAAkB,MAAQ,EAAI,QAAQ,SAAS,EAAM,MAAM,GACpF,EAAW,QAAQ,SAAS,CAC9B,EACA,SAAS,iBAAiB,cAAe,EAAW,EAAI,EACxD,OAAO,iBAAiB,SAAU,CAAQ,EAC1C,SAAS,iBAAiB,SAAU,EAAU,EAAI,EAClD,IAAM,EAAO,EAAI,QACjB,UAAa,CACX,SAAS,oBAAoB,cAAe,EAAW,EAAI,EAC3D,OAAO,oBAAoB,SAAU,CAAQ,EAC7C,SAAS,oBAAoB,SAAU,EAAU,EAAI,EAIrD,IAAM,EAAS,SAAS,cAClB,EAAO,IAAW,MAAQ,IAAW,SAAS,MAAS,IAAS,MAAQ,EAAK,SAAS,CAAM,EAC5F,EAAO,EAAe,QACxB,GAAQ,GAAQ,SAAS,SAAS,CAAI,GAAG,EAAK,MAAM,CAAE,cAAe,EAAK,CAAC,CACjF,CACF,EAAG,CAAC,CAAC,EAEL,SAAS,EAAK,EAAc,EAAe,CACzC,GAAI,EAAQ,SAAW,EAAG,OAC1B,IAAM,EAAK,EAAQ,QAAQ,CAAI,EACzB,EAAO,EAAK,EAAK,EAAQ,EAAI,EAAI,EAAQ,OAAS,GAAM,EAAK,EAAQ,EAAQ,QAAU,EAAQ,OACrG,EAAS,QAAQ,EAAQ,GAAO,EAAE,MAAM,CAC1C,CAEA,SAAS,EAAU,EAAsC,CACvD,IAAM,EAAQ,EAAS,QAAQ,UAAW,GAAS,IAAS,SAAS,aAAa,EAClF,OAAQ,EAAM,IAAd,CACE,IAAK,YAAa,EAAM,eAAe,EAAG,EAAK,EAAO,CAAC,EAAG,OAC1D,IAAK,UAAW,EAAM,eAAe,EAAG,EAAK,EAAO,EAAE,EAAG,OACzD,IAAK,OAAQ,EAAM,eAAe,EAAG,EAAS,QAAQ,EAAQ,IAAM,EAAE,EAAE,MAAM,EAAG,OACjF,IAAK,MAAO,EAAM,eAAe,EAAG,EAAS,QAAQ,EAAQ,EAAQ,OAAS,IAAM,EAAE,EAAE,MAAM,EAAG,OACjG,IAAK,SAAU,EAAM,eAAe,EAAG,EAAM,gBAAgB,EAAG,EAAQ,SAAS,EAAG,OACpF,IAAK,MAAO,EAAQ,SAAS,EAAG,OAChC,QACE,GAAI,EAAM,IAAI,SAAW,GAAK,KAAK,KAAK,EAAM,GAAG,GAAK,CAAC,EAAM,SAAW,CAAC,EAAM,SAAW,CAAC,EAAM,OAAQ,CACvG,IAAM,EAAS,EAAM,IAAI,YAAY,EAE/B,EAAM,CADG,GAAG,EAAQ,OAAQ,GAAM,EAAI,CAAK,EAAG,GAAG,EAAQ,OAAQ,GAAM,GAAK,CAAK,CAC3E,CAAA,CAAM,KAAM,GAAM,EAAM,EAAE,CAAE,MAAM,YAAY,CAAC,CAAC,WAAW,CAAM,CAAC,EAC1E,IAAQ,IAAA,KACV,EAAM,eAAe,EACrB,EAAS,QAAQ,EAAI,EAAE,MAAM,EAEjC,CACJ,CACF,CAEA,OAAA,EAAO,EAAA,aAAA,EACL,EAAA,EAAA,IAAA,CAAC,MAAD,CAAU,MAAK,UAAW,EAAO,KAAM,KAAK,OAAO,aAAY,EAAO,SAAU,GAC9E,MAAO,CAAE,KAAM,EAAS,KAAM,IAAK,EAAS,GAAI,EAAc,YAC9D,cAAgB,GAAU,EAAM,eAAe,EAC9C,SAAA,EAAM,KAAK,EAAM,KAChB,EAAA,EAAA,IAAA,CAAC,MAAD,CAAmB,UAAW,EAAO,IAAK,iBAAgB,EAAK,WAAa,IAAA,GAAW,KAAK,OAC1F,UAAA,EAAA,EAAA,KAAA,CAAC,SAAD,CACE,IAAM,GAAS,CAAE,EAAS,QAAQ,GAAK,CAAM,EAC7C,KAAK,SACL,KAAK,WACL,UAAW,EAAO,KAClB,cAAa,EAAK,QAAU,IAAA,GAC5B,gBAAe,EAAK,UAAY,IAAA,GAChC,SAAU,GACV,YAAe,CACT,EAAK,WACT,EAAQ,QAAQ,EAChB,EAAK,SAAS,EAChB,EAZF,SAAA,CAcG,EAAK,MAAO,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAW,EAAO,KAAM,cAAY,OAAQ,SAAA,EAAK,IAAW,CAAA,EAAI,MACnF,EAAA,EAAA,KAAA,CAAC,OAAD,CAAM,UAAW,EAAO,MAAxB,SAAA,CACG,EAAK,MACL,EAAK,aAAc,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAW,EAAO,OAAS,SAAA,EAAK,WAAkB,CAAA,EAAI,KAC/E,EAAK,UAAY,EAAK,QAAS,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAW,EAAO,OAAS,SAAA,EAAK,MAAa,CAAA,EAAI,IACnF,CACA,CAAA,CAAA,GACL,EAtBK,EAAK,EAsBV,CACN,CACE,CAAA,EACL,SAAS,IACX,CACF,CAGA,SAAgB,EAAY,EAAmB,EAAyB,MAAO,EAAY,IAAiB,CAC1G,IAAM,EAAO,EAAK,sBAAsB,EACxC,MAAO,CAAE,EAAG,IAAU,MAAQ,EAAK,MAAQ,EAAY,EAAK,KAAM,EAAG,EAAK,OAAS,CAAE,CACvF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-hePW80VL.js";import{n,s as r}from"./index-BC5Uslm5.js";import{B as i,K as a,d as o,l as s}from"./global-w7KDTTi0.js";import{r as c}from"./Epistemic-tp0ZNAKZ.js";import{n as l}from"./StatusBadge-Yz7S3kZ2.js";import{t as u}from"./MutationTokenDialog-DlY2VLVh.js";import{t as d}from"./ConfirmDialog-CdCzzk0I.js";import{t as f}from"./RefreshIndicator-D96C9qiH.js";import{a as p,i as m}from"./SkipToContent-BynsXs9i.js";import{wt as h}from"./VerseConsoleApp-DjPpZLo1.js";import{x as g}from"./VerseShared-Bf-XTHCh.js";import{n as _}from"./verse-bootstrap-query-B3vFD9XK.js";import{s as v}from"./verse-model-DAOz9LrY.js";import{t as y}from"./Segmented-BA8RmKYq.js";import{a as b,d as x,f as S,g as C,i as w,l as T,n as E,o as D,p as O,r as k,s as A,t as j,u as M,v as N,y as P}from"./format-V6IiIMAL.js";import{n as F,r as I}from"./workspace-model-C-q_I8xN.js";import{t as L}from"./Button-CstSJwha.js";import{a as R}from"./icons-C3G-y5j2.js";import{t as z}from"./Meter-VXI75VNe.js";import{a as ee,c as te,d as ne,f as re,g as B,h as ie,i as ae,l as oe,m as se,o as V,p as ce,s as H,u as le}from"./control-queries-BG53otwz.js";import{t as ue}from"./Select-B8GqZOX9.js";import{n as de,t as fe}from"./use-guarded-action-DKKjhPKG.js";import{t as pe}from"./use-ticker-w1c3SOqK.js";import{a as me,d as he,f as ge,i as _e,n as ve,o as ye,p as be,r as xe,s as Se,t as Ce}from"./fleet-model-D4n8ErhA.js";import{a as we,i as Te,n as Ee,o as De,r as Oe,s as ke}from"./fleet-queries-eacERnLm.js";import{a as Ae,c as je,d as Me,i as Ne,l as Pe,n as Fe,o as Ie,r as Le,s as Re,t as ze,u as Be}from"./overnight-queries-cjjogTzn.js";var U=t(r(),1),W=n();function Ve(e){let t=e.limit;if(typeof t!=`number`||!Number.isFinite(t)||t<=0)return`unlimited`;let n=typeof e.callsToday==`number`&&Number.isFinite(e.callsToday)?e.callsToday:0;return n>=t?`over`:n>=t*.8?`warn`:`ok`}var G={panel:`_panel_1pr20_12`,panelHead:`_panelHead_1pr20_15`,panelTitle:`_panelTitle_1pr20_16`,panelHeadSpaced:`_panelHeadSpaced_1pr20_25`,panelNote:`_panelNote_1pr20_26`,panelActions:`_panelActions_1pr20_27`,status:`_status_1pr20_30`,statusTop:`_statusTop_1pr20_31`,runState:`_runState_1pr20_32`,runDot:`_runDot_1pr20_33`,facts:`_facts_1pr20_39`,fact:`_fact_1pr20_39`,factLabel:`_factLabel_1pr20_41`,factValue:`_factValue_1pr20_42`,budget:`_budget_1pr20_49`,budgetLine:`_budgetLine_1pr20_50`,budgetLabel:`_budgetLabel_1pr20_51`,budgetNote:`_budgetNote_1pr20_52`,meter:`_meter_1pr20_53`,meterFill:`_meterFill_1pr20_58`,controls:`_controls_1pr20_61`,button:`_button_1pr20_62`,buttonPrimary:`_buttonPrimary_1pr20_76`,emergency:`_emergency_1pr20_80`,emergencyButton:`_emergencyButton_1pr20_81`,emergencyNote:`_emergencyNote_1pr20_102`,capGrid:`_capGrid_1pr20_105`,goalNote:`_goalNote_1pr20_106`,goalSummary:`_goalSummary_1pr20_107`,goalSummaryLabel:`_goalSummaryLabel_1pr20_108`,goalChevron:`_goalChevron_1pr20_109`,goalDisclosure:`_goalDisclosure_1pr20_110`,goalFields:`_goalFields_1pr20_113`,goalLabel:`_goalLabel_1pr20_114`,goalChoice:`_goalChoice_1pr20_115`,goalActions:`_goalActions_1pr20_118`,goalFocus:`_goalFocus_1pr20_119`,cap:`_cap_1pr20_105`,capLabel:`_capLabel_1pr20_122`,capRow:`_capRow_1pr20_123`,capInput:`_capInput_1pr20_124`,capInputInvalid:`_capInputInvalid_1pr20_138`,capUnit:`_capUnit_1pr20_139`,capHelp:`_capHelp_1pr20_140`,capUsage:`_capUsage_1pr20_141`,capError:`_capError_1pr20_142`,actionNote:`_actionNote_1pr20_145`,capApplied:`_capApplied_1pr20_146`,repoList:`_repoList_1pr20_150`,repoRow:`_repoRow_1pr20_151`,repoName:`_repoName_1pr20_152`,repoPath:`_repoPath_1pr20_153`,repoMissing:`_repoMissing_1pr20_154`,addRow:`_addRow_1pr20_155`,addInput:`_addInput_1pr20_156`,tableScroll:`_tableScroll_1pr20_171`,table:`_table_1pr20_171`,cellAction:`_cellAction_1pr20_191`,cellTime:`_cellTime_1pr20_192`,cellSummary:`_cellSummary_1pr20_193`,cellRepo:`_cellRepo_1pr20_194`,resultTag:`_resultTag_1pr20_203`,filters:`_filters_1pr20_212`,filterField:`_filterField_1pr20_213`,filterLabel:`_filterLabel_1pr20_214`,filterSelect:`_filterSelect_1pr20_229`,checkList:`_checkList_1pr20_244`,check:`_check_1pr20_244`,checkMark:`_checkMark_1pr20_246`,checkLabel:`_checkLabel_1pr20_249`,checkDetail:`_checkDetail_1pr20_250`,summaryColumns:`_summaryColumns_1pr20_253`,summaryList:`_summaryList_1pr20_254`,summaryRow:`_summaryRow_1pr20_255`,summaryTitle:`_summaryTitle_1pr20_256`,summaryMeta:`_summaryMeta_1pr20_257`,empty:`_empty_1pr20_260`,emptyStrong:`_emptyStrong_1pr20_261`,error:`_error_1pr20_264`,readOnly:`_readOnly_1pr20_265`,skeletons:`_skeletons_1pr20_267`,srOnly:`_srOnly_1pr20_268`,runtimeTop:`_runtimeTop_1pr20_283`,runtimeState:`_runtimeState_1pr20_284`,runtimeStateText:`_runtimeStateText_1pr20_285`,factWide:`_factWide_1pr20_292`,factMono:`_factMono_1pr20_293`,capacityBlock:`_capacityBlock_1pr20_297`,capacityHead:`_capacityHead_1pr20_298`,capacityBig:`_capacityBig_1pr20_299`,capacityWords:`_capacityWords_1pr20_313`,capacityHeadline:`_capacityHeadline_1pr20_314`,capacityDetail:`_capacityDetail_1pr20_315`,evidence:`_evidence_1pr20_318`,evidenceLead:`_evidenceLead_1pr20_319`,evidenceScroll:`_evidenceScroll_1pr20_320`,evidenceTable:`_evidenceTable_1pr20_321`,evidenceNums:`_evidenceNums_1pr20_326`,evidenceCode:`_evidenceCode_1pr20_327`,utilisation:`_utilisation_1pr20_329`,toggleRow:`_toggleRow_1pr20_332`,toggleState:`_toggleState_1pr20_333`,policyExplain:`_policyExplain_1pr20_334`,impact:`_impact_1pr20_337`,impactTitle:`_impactTitle_1pr20_338`,impactSummary:`_impactSummary_1pr20_339`,seatList:`_seatList_1pr20_340`,seatRow:`_seatRow_1pr20_341`,seatEngine:`_seatEngine_1pr20_342`,seatLabel:`_seatLabel_1pr20_358`,seatRefusal:`_seatRefusal_1pr20_359`,pressure:`_pressure_1pr20_362`,pressureHead:`_pressureHead_1pr20_363`,pressureHeadline:`_pressureHeadline_1pr20_364`,pressureDetail:`_pressureDetail_1pr20_367`,fleetMeters:`_fleetMeters_1pr20_369`,elapsedQualifier:`_elapsedQualifier_1pr20_370`,noteList:`_noteList_1pr20_371`,repoStanding:`_repoStanding_1pr20_375`,repoPriority:`_repoPriority_1pr20_382`,repoSection:`_repoSection_1pr20_383`,repoOutsideFocus:`_repoOutsideFocus_1pr20_384`},He=20,Ue=40;function We({snapshot:e}){let t=e.daemon?.ticks??null,n=(0,U.useMemo)(()=>t?[...t].slice(-20).reverse():[],[t]),r=(0,U.useMemo)(()=>{if(!t)return[];let e=[];for(let n=t.length-1;n>=0&&e.length<Ue;--n){let r=t[n];if(r?.dispatches)for(let t=r.dispatches.length-1;t>=0&&e.length<Ue;--t)e.push({...r.dispatches[t],tickTs:r.ts})}return e},[t]);return(0,W.jsxs)(`section`,{className:G.panel,"aria-label":`Activity`,children:[(0,W.jsxs)(`div`,{className:G.panelHead,children:[(0,W.jsx)(`h3`,{className:G.panelTitle,children:`Recent ticks`}),(0,W.jsxs)(`p`,{className:G.panelNote,children:[`Newest first · last `,He]})]}),t===null?(0,W.jsx)(`p`,{className:G.empty,children:`The daemon ledger is not readable right now, so tick history is unknown.`}):n.length===0?(0,W.jsx)(`p`,{className:G.empty,children:`No ticks have been recorded yet. Start the loop, or run one tick, to produce the first.`}):(0,W.jsx)(`div`,{className:G.tableScroll,children:(0,W.jsxs)(`table`,{className:G.table,children:[(0,W.jsx)(`thead`,{children:(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`th`,{scope:`col`,children:`Time`}),(0,W.jsx)(`th`,{scope:`col`,children:`Outcome`}),(0,W.jsx)(`th`,{scope:`col`,children:`Items`}),(0,W.jsx)(`th`,{scope:`col`,children:`Proposals`}),(0,W.jsx)(`th`,{scope:`col`,children:`Dispatched`}),(0,W.jsx)(`th`,{scope:`col`,children:`Spend`}),(0,W.jsx)(`th`,{scope:`col`,children:`Direction`})]})}),(0,W.jsx)(`tbody`,{children:n.map(e=>{let t=b(e.reason);return(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`td`,{className:G.cellTime,title:M(e.ts),children:x(e.ts)}),(0,W.jsxs)(`td`,{className:G.cellSummary,"data-tone":t.tone,children:[t.label,e.dryRun?` (dry run)`:``]}),(0,W.jsx)(`td`,{className:G.cellTime,children:A(e.itemsConsidered)}),(0,W.jsx)(`td`,{className:G.cellTime,children:A(e.proposalsCreated)}),(0,W.jsx)(`td`,{className:G.cellTime,children:e.dispatches?e.dispatches.length:`—`}),(0,W.jsx)(`td`,{className:G.cellTime,children:S(e.spentUsd)}),(0,W.jsx)(`td`,{className:G.cellSummary,children:e.directionMode??`—`})]},`${e.ts}-${e.reason}`)})})]})}),(0,W.jsxs)(`div`,{className:`${G.panelHead} ${G.panelHeadSpaced}`,children:[(0,W.jsx)(`h3`,{className:G.panelTitle,children:`Recent dispatches`}),(0,W.jsxs)(`p`,{className:G.panelNote,children:[`Newest first · last `,Ue]})]}),r.length===0?(0,W.jsx)(`p`,{className:G.empty,children:`No dispatches in the recorded ticks. Run one tick from Controls to see what it would pick up.`}):(0,W.jsx)(`div`,{className:G.tableScroll,children:(0,W.jsxs)(`table`,{className:G.table,children:[(0,W.jsx)(`thead`,{children:(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`th`,{scope:`col`,children:`Time`}),(0,W.jsx)(`th`,{scope:`col`,children:`Item`}),(0,W.jsx)(`th`,{scope:`col`,children:`Repo`}),(0,W.jsx)(`th`,{scope:`col`,children:`Engine`}),(0,W.jsx)(`th`,{scope:`col`,children:`Outcome`}),(0,W.jsx)(`th`,{scope:`col`,children:`Spend`})]})}),(0,W.jsx)(`tbody`,{children:r.map((e,t)=>(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`td`,{className:G.cellTime,title:M(e.tickTs),children:x(e.tickTs)}),(0,W.jsx)(`td`,{className:G.cellSummary,title:e.title,children:e.title}),(0,W.jsx)(`td`,{className:G.cellRepo,title:e.repo,children:e.repo?N(e.repo):`—`}),(0,W.jsx)(`td`,{className:G.cellAction,children:e.backend??`not routed`}),(0,W.jsx)(`td`,{className:G.cellSummary,children:e.dispatched?`dispatched`:`skipped — ${P(e.reason)}`}),(0,W.jsx)(`td`,{className:G.cellTime,children:S(e.spentUsd)})]},`${e.tickTs}-${e.itemId}-${t}`))})]})}),(0,W.jsx)(Ge,{})]})}function Ge(){let[e,t]=(0,U.useState)(``),[n,r]=(0,U.useState)(``),[i,a]=(0,U.useState)(``),[c,l]=(0,U.useState)(200),u=(0,U.useMemo)(()=>oe({limit:c,action:n||void 0,result:i||void 0}),[c,n,i]),d=s(u),m=o(u),h=d.data?.entries??[];return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`div`,{className:`${G.panelHead} ${G.panelHeadSpaced}`,children:[(0,W.jsx)(`h3`,{className:G.panelTitle,children:`Audit trail`}),(0,W.jsxs)(`div`,{className:G.panelActions,children:[d.status===`refreshing`?(0,W.jsx)(f,{}):null,(0,W.jsx)(`button`,{type:`button`,className:G.button,onClick:m,children:`Refresh`})]})]}),(0,W.jsxs)(`div`,{className:G.filters,children:[(0,W.jsxs)(`label`,{className:G.filterField,children:[(0,W.jsx)(`span`,{className:G.filterLabel,children:`Action`}),(0,W.jsx)(`input`,{type:`search`,value:e,placeholder:`e.g. enroll.add`,onChange:e=>t(e.target.value),onBlur:()=>r(e.trim()),onKeyDown:t=>{t.key===`Enter`&&(t.preventDefault(),r(e.trim()))}})]}),(0,W.jsxs)(ue,{className:G.filterSelect,label:`Result`,value:i,onChange:e=>a(e.target.value),children:[(0,W.jsx)(`option`,{value:``,children:`Any result`}),(0,W.jsx)(`option`,{value:`ok`,children:`ok`}),(0,W.jsx)(`option`,{value:`refused`,children:`refused`}),(0,W.jsx)(`option`,{value:`error`,children:`error`})]}),(0,W.jsxs)(ue,{className:G.filterSelect,label:`Rows`,value:c,onChange:e=>l(Number(e.target.value)),children:[(0,W.jsx)(`option`,{value:50,children:`50`}),(0,W.jsx)(`option`,{value:200,children:`200`}),(0,W.jsx)(`option`,{value:500,children:`500`})]})]}),d.status===`loading`?(0,W.jsxs)(`div`,{className:G.skeletons,children:[(0,W.jsx)(p,{}),(0,W.jsx)(p,{}),(0,W.jsx)(p,{})]}):d.status===`error`?(0,W.jsx)(`p`,{className:G.error,role:`alert`,children:d.error?.message??`Could not read the audit trail.`}):h.length===0?(0,W.jsx)(`p`,{className:G.empty,children:n||i?`No audit entries match this filter. Clear the Action or Result filter to see every entry.`:`No audit entries recorded yet. Every autonomous or sandbox action appends one here, and none are ever deleted.`}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`p`,{className:G.panelNote,"aria-live":`polite`,children:[h.length,` `,h.length===1?`entry`:`entries`,` · newest first`,d.data?.truncated?` · capped by the server, narrow the filter to see more`:``]}),(0,W.jsx)(`div`,{className:G.tableScroll,children:(0,W.jsxs)(`table`,{className:G.table,children:[(0,W.jsx)(`thead`,{children:(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`th`,{scope:`col`,children:`Time`}),(0,W.jsx)(`th`,{scope:`col`,children:`Action`}),(0,W.jsx)(`th`,{scope:`col`,children:`Result`}),(0,W.jsx)(`th`,{scope:`col`,children:`Repo`}),(0,W.jsx)(`th`,{scope:`col`,children:`Summary`})]})}),(0,W.jsx)(`tbody`,{children:h.map((e,t)=>(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`td`,{className:G.cellTime,title:M(e.ts),children:x(e.ts)}),(0,W.jsx)(`td`,{className:G.cellAction,children:e.action}),(0,W.jsx)(`td`,{children:(0,W.jsx)(`span`,{className:G.resultTag,"data-result":e.result,children:e.result})}),(0,W.jsx)(`td`,{className:G.cellRepo,title:e.repo??void 0,children:e.repo?N(e.repo):`—`}),(0,W.jsx)(`td`,{className:G.cellSummary,children:P(e.summary)})]},`${e.ts}-${e.action}-${t}`))})]})})]})]})}var K=e=>e,Ke=6e4,qe=[{key:`dailyBudgetUsd`,label:`Daily budget`,unit:`USD / day`,min:0,max:B.dailyBudgetUsd.max,integer:!1,step:1,help:`Hard ceiling on what the loop may spend in a calendar day. 0 stops the loop.`,toDisplay:K,fromDisplay:K},{key:`perTickItems`,label:`Items per tick`,unit:`items`,min:1,max:B.perTickItems.max,integer:!0,step:1,help:`Requested items per tick. Queue, journal, account, and resource admission still apply.`,toDisplay:K,fromDisplay:K},{key:`parallel`,label:`Parallel swarms`,unit:`swarms`,min:1,max:B.parallel.max,integer:!0,step:1,help:`Requested simultaneous swarms in batch mode. Available work and resource admission still apply.`,toDisplay:K,fromDisplay:K},{key:`intervalMs`,label:`Tick interval`,unit:`minutes`,min:.5,max:1440,integer:!1,step:.5,help:`Gap between ticks in loop mode. 30 seconds minimum, 24 hours maximum.`,toDisplay:e=>Math.round(e/Ke*100)/100,fromDisplay:e=>Math.round(e*Ke)},{key:`maxConcurrent`,label:`Max concurrent`,unit:`dispatches`,min:1,max:B.maxConcurrent.max,integer:!0,step:1,help:`Absolute ceiling on in-flight dispatches in continuous mode. Takes precedence over the per-tier totals.`,toDisplay:K,fromDisplay:K},{key:`concurrency.local`,label:`Local tier`,unit:`slots`,min:1,max:B.concurrency.max,integer:!0,step:1,help:`On-device engines. GPU/RAM bound — keep this low.`,toDisplay:K,fromDisplay:K},{key:`concurrency.cloud`,label:`Cloud tier`,unit:`slots`,min:1,max:B.concurrency.max,integer:!0,step:1,help:`Subscription cloud agents. I/O bound — many can run at once.`,toDisplay:K,fromDisplay:K},{key:`concurrency.total`,label:`All tiers`,unit:`slots`,min:1,max:B.concurrency.max,integer:!0,step:1,help:`Hard cap across every tier combined.`,toDisplay:K,fromDisplay:K},{key:`subscriptionMaxPercent`,label:`Subscription ceiling`,unit:`% of window`,min:1,max:100,integer:!0,step:1,help:`How much of a flat-fee provider window the fleet may consume before it backs off.`,toDisplay:K,fromDisplay:K}];function Je(e,t){if(!e)return null;let n=t===`concurrency.local`?e.concurrency?.local:t===`concurrency.cloud`?e.concurrency?.cloud:t===`concurrency.total`?e.concurrency?.total:e[t];return typeof n==`number`&&Number.isFinite(n)?n:null}function Ye(e,t){return t.startsWith(`%`)?`${e}${t}`:`${e} ${t}`}function Xe(e,t){let n=t.trim();if(n===``)return{ok:!1,error:`${e.label} cannot be blank.`};let r=Number(n);if(!Number.isFinite(r))return{ok:!1,error:`${e.label} must be a number.`};if(e.integer&&!Number.isInteger(r)){let t=e.unit.startsWith(`%`)?`a whole percentage`:`a whole number of ${e.unit}`;return{ok:!1,error:`${e.label} must be ${t}.`}}return e.integer&&!Number.isSafeInteger(r)?{ok:!1,error:`${e.label} must be a safe whole number.`}:r<e.min||r>e.max?{ok:!1,error:`${e.label} must be between ${e.min} and ${Ye(e.max,e.unit)}.`}:{ok:!0,stored:e.fromDisplay(r),display:r}}function Ze(e,t){switch(e){case`concurrency.local`:return{concurrency:{local:t}};case`concurrency.cloud`:return{concurrency:{cloud:t}};case`concurrency.total`:return{concurrency:{total:t}};default:return{[e]:t}}}var q=B.foundryLimitMax;function Qe(e,t){let n=e.trim();if(n===``)return{ok:!1,error:`${t} limit cannot be blank.`};let r=Number(n);return Number.isFinite(r)?Number.isInteger(r)?r<q.min?{ok:!1,error:`${t} limit cannot be negative.`}:r>q.max?{ok:!1,error:`${t} limit must be at most ${q.max} dispatches.`}:{ok:!0,stored:r,display:r}:{ok:!1,error:`${t} limit must be a whole number of dispatches.`}:{ok:!1,error:`${t} limit must be a number.`}}var J=[{key:`maxOpenGoals`,label:`Active goals`,help:`Goals Leader can keep open at once.`,defaultValue:4},{key:`maxNewGoalsPerDay`,label:`New goals per day`,help:`New goals Leader can create each day.`,defaultValue:3},{key:`maxGoalProposalsPerMemo`,label:`New goal proposals`,help:`New goals Leader can propose in each plan or check-in.`,defaultValue:3},{key:`maxGoalsPerConductorCycle`,label:`Goals per planning pass`,help:`Goals Leader can schedule in one planning pass.`,defaultValue:3}];function $e(e,t){return typeof e==`boolean`&&typeof t==`number`&&Number.isSafeInteger(t)&&t>0?{mode:e,threshold:t}:null}function et(e,t){if(e&&typeof e==`object`)try{return Array.isArray(e)?void 0:Object.getOwnPropertyDescriptor(e,t)?.value}catch{return}}function tt(e){if(e===void 0)return{state:`unsupported`};let t=et(e,`sourceState`);if(t!==`ready`)return{state:t===`unavailable`?`unavailable`:`invalid`};let n={};for(let t of J){let r=et(e,t.key);if(r!==null&&(typeof r!=`number`||!Number.isSafeInteger(r)||r<=0))return{state:`invalid`};n[t.key]=r}let r=et(e,`defaulted`),i=[];try{if(Array.isArray(r)&&r.length<=J.length)for(let e=0;e<r.length;e++){let t=Object.getOwnPropertyDescriptor(r,String(e))?.value,a=J.find(e=>e.key===t);a&&n[a.key]!==null&&!i.includes(a.key)&&i.push(a.key)}}catch{}return{state:`ready`,values:n,defaulted:i}}function nt(e){return Object.fromEntries(J.map(t=>[t.key,{text:String(e[t.key]??t.defaultValue),unlimited:e[t.key]===null}]))}function rt(e,t){if(t)return{ok:!0,value:null};let n=e.trim(),r=Number(n);return!/^\d+$/.test(n)||!Number.isSafeInteger(r)||r<=0?{ok:!1,error:`Enter a positive whole number, or choose No preference limit.`}:{ok:!0,value:r}}function it(e,t){let n={},r={};for(let i of J){let a=rt(e[i.key].text,e[i.key].unlimited);a.ok?a.value!==t[i.key]&&(n[i.key]=a.value):r[i.key]=a.error}return{patch:n,errors:r}}function at({preferences:e,focusMode:t,focusThreshold:n,focusDefaulted:r=!1,guard:i,dispatchEnabled:a}){let o=tt(e);return(0,W.jsx)(`section`,{className:G.panel,"aria-label":`Goal preferences`,children:(0,W.jsxs)(`details`,{className:G.goalDisclosure,children:[(0,W.jsxs)(`summary`,{className:G.goalSummary,children:[(0,W.jsxs)(`span`,{className:G.goalSummaryLabel,children:[(0,W.jsx)(R,{size:14,className:G.goalChevron}),(0,W.jsx)(`span`,{className:G.panelTitle,children:`Goal preferences`})]}),(0,W.jsx)(`span`,{className:G.panelNote,children:o.state===`ready`?`Advanced`:`Unavailable`})]}),(0,W.jsx)(`p`,{className:G.goalNote,children:`Guide how much work Leader proposes and keeps open. Available agent slots, provider limits and your signed permissions still determine what runs.`}),o.state===`ready`?(0,W.jsx)(ot,{read:o,serverValue:e,focusMode:t,focusThreshold:n,focusDefaulted:r,guard:i,dispatchEnabled:a}):(0,W.jsx)(`p`,{className:G.empty,role:`status`,children:o.state===`unsupported`?`Goal preferences are unavailable from this server. Update Hub to view and change them.`:o.state===`unavailable`?`Saved goal preferences could not be read. Refresh the connection before changing them.`:`Saved goal preferences need attention. Correct the configuration and refresh before changing them here.`})]})})}function ot({read:e,serverValue:t,focusMode:n,focusThreshold:r,focusDefaulted:i,guard:a,dispatchEnabled:o}){let[s,c]=(0,U.useState)(e.values),[l,u]=(0,U.useState)(e.defaulted),d=(0,U.useRef)(s),[f,p]=(0,U.useState)(()=>nt(e.values)),[m,h]=(0,U.useState)({}),[g,_]=(0,U.useState)(null),[v,y]=(0,U.useState)(null),[b,x]=(0,U.useState)(!1),S=$e(n,r),[C,w]=(0,U.useState)(S),T=(0,U.useRef)(C),[E,D]=(0,U.useState)(S?.mode??null),O=(0,U.useRef)(!1),[k,A]=(0,U.useState)(i),j=(0,U.useRef)(!1),M=(0,U.useRef)(!0);(0,U.useEffect)(()=>(M.current=!0,()=>{M.current=!1}),[]);let N=JSON.stringify({values:e.values,defaulted:e.defaulted,focus:S,focusDefaulted:i});(0,U.useEffect)(()=>{let t=e.values,n=d.current;u(e.defaulted),A(i);let r=T.current;JSON.stringify(r)!==JSON.stringify(S)&&(O.current||D(S?.mode??null),T.current=S,w(S),y(null)),JSON.stringify(n)!==JSON.stringify(t)&&(p(e=>{let r=nt(t),i={...e};for(let t of J){let a=rt(e[t.key].text,e[t.key].unlimited);a.ok&&a.value===n[t.key]&&(i[t.key]=r[t.key])}return i}),d.current=t,c(t),y(null))},[N,t]);let P=it(f,s),F=O.current&&S!==null&&E!==null&&E!==C?.mode,I=Object.keys(P.patch).length>0||Object.keys(P.errors).length>0||F,R=!o||a.readOnly||a.busy||a.tokenOpen||b;function z(e,t){p(n=>({...n,[e]:{...n[e],...t}})),h(t=>({...t,[e]:void 0})),_(null),y(null)}function ee(){if(R||j.current)return;let e=it(f,s);if(h(e.errors),_(null),y(null),Object.keys(e.errors).length||!Object.keys(e.patch).length&&!F)return;let t={...Object.keys(e.patch).length?{goalPreferences:e.patch}:{},...F&&E!==null?{goalFocusMode:E}:{}};a.request(async()=>{if(!M.current)throw Error(`Review goal preferences again before saving.`);if(j.current)throw Error(`A goal preferences save is already in progress.`);j.current=!0,x(!0);try{let n=await H(t),r=tt(n?.caps?.goalPreferences);if(r.state!==`ready`)throw Error(`The server did not confirm saved goal preferences. Refresh before trying again.`);if(Object.keys(e.patch).some(t=>r.values[t]!==e.patch[t]))throw Error(`The server returned different goal preferences. Refresh and review them before trying again.`);let i=$e(n.caps.goalFocusMode,n.caps.goalFocusActiveThreshold);if(F&&(!i||i.mode!==E))throw Error(`The server did not confirm the finishing preference. Refresh before trying again.`);return{confirmed:r,confirmedFocus:i,defaultFocus:Array.isArray(n.caps.defaulted)&&n.caps.defaulted.length<=32&&n.caps.defaulted.includes(`goalFocusMode`)}}catch(e){throw M.current&&_(fe(e)),e}finally{j.current=!1,M.current&&x(!1)}},`Saving goal preferences requires the dispatch token.`,({confirmed:e,confirmedFocus:t,defaultFocus:n})=>{M.current&&(d.current=e.values,c(e.values),u(e.defaulted),p(nt(e.values)),T.current=t,w(t),D(t?.mode??null),O.current=!1,A(n),h({}),y(`Goal preferences saved. Leader uses them on its next planning pass.`))})}return(0,W.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),ee()},"aria-busy":b||void 0,children:[(0,W.jsxs)(`fieldset`,{className:G.goalFields,disabled:R,children:[(0,W.jsx)(`legend`,{className:G.srOnly,children:`Leader goal preferences`}),(0,W.jsx)(`div`,{className:G.capGrid,children:J.map(e=>{let t=`goal-preference-${e.key}`,n=f[e.key];return(0,W.jsxs)(`div`,{className:G.cap,children:[(0,W.jsx)(`label`,{className:G.goalLabel,htmlFor:t,children:e.label}),(0,W.jsx)(`input`,{id:t,className:`${G.capInput} ${m[e.key]?G.capInputInvalid:``}`,type:`text`,inputMode:`numeric`,autoComplete:`off`,value:n.unlimited?``:n.text,placeholder:n.unlimited?`No preference limit`:void 0,disabled:n.unlimited,"aria-invalid":m[e.key]?!0:void 0,"aria-describedby":`${t}-help${m[e.key]?` ${t}-error`:``}`,onChange:t=>z(e.key,{text:t.target.value})}),(0,W.jsxs)(`label`,{className:G.goalChoice,children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:n.unlimited,"aria-label":`No preference limit for ${e.label.toLowerCase()}`,onChange:t=>z(e.key,{unlimited:t.target.checked})}),(0,W.jsx)(`span`,{children:`No preference limit`})]}),(0,W.jsxs)(`span`,{className:G.capHelp,id:`${t}-help`,children:[e.help,l.includes(e.key)?` Current default: ${s[e.key]}.`:``]}),m[e.key]?(0,W.jsx)(`span`,{className:G.capError,id:`${t}-error`,role:`alert`,children:m[e.key]}):null]},e.key)})}),(0,W.jsx)(`div`,{className:G.goalFocus,children:S&&C?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`label`,{className:G.goalChoice,children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:E===!0,"aria-describedby":`goal-focus-help`,onChange:e=>{O.current=e.target.checked!==C.mode,D(e.target.checked),_(null),y(null)}}),(0,W.jsx)(`span`,{children:`Prefer finishing current work before expanding`})]}),(0,W.jsxs)(`p`,{className:G.capHelp,id:`goal-focus-help`,children:[`At `,C.threshold,` or more active goals, defer new planning and invention. Clear this preference to plan new work alongside current goals.`,k?` On by default.`:``,` This is separate from the active-goal limit above.`]})]}):(0,W.jsx)(`p`,{className:G.capHelp,children:`The finishing preference is unavailable from this server. A separate planning preference may still defer new goals.`})}),(0,W.jsxs)(`div`,{className:G.goalActions,children:[(0,W.jsx)(L,{type:`submit`,busy:b,disabled:!I,children:`Save goal preferences`}),I?(0,W.jsx)(L,{variant:`ghost`,onClick:()=>{p(nt(s)),D(C?.mode??null),O.current=!1,h({}),_(null),y(null)},children:`Discard changes`}):null]})]}),!o||a.readOnly?(0,W.jsx)(`p`,{className:G.capHelp,children:`This connection is read-only. Goal preferences cannot be changed here.`}):null,g?(0,W.jsx)(`p`,{className:G.capError,role:`alert`,children:g}):null,b?(0,W.jsx)(`p`,{className:G.capHelp,role:`status`,children:`Saving goal preferences…`}):null,v?(0,W.jsx)(`p`,{className:G.capApplied,role:`status`,children:v}):null]})}var Y=[{key:`maxFullRunsPerDay`,label:`Full plans per day`,help:`Daily full planning runs. These also count toward total runs.`},{key:`maxTotalRunsPerDay`,label:`Total runs per day`,help:`Daily planning runs and check-ins combined.`},{key:`maxGrokLanes`,label:`Parallel Grok lanes`,help:`Maximum Grok lanes Leader may request. Available accounts and execution slots still determine what runs.`}];function st(e,t){try{return e&&typeof e==`object`&&!Array.isArray(e)?Object.getOwnPropertyDescriptor(e,t)?.value:void 0}catch{return}}function ct(e){if(e===void 0)return{state:`unsupported`};let t=st(e,`sourceState`);if(t!==`ready`)return{state:t===`unavailable`?`unavailable`:`invalid`};let n={};for(let t of Y){let r=st(e,t.key);if(r!==null&&(typeof r!=`number`||!Number.isSafeInteger(r)||r<=0))return{state:`invalid`};n[t.key]=r}let r=[],i=st(e,`defaulted`);try{if(Array.isArray(i)&&i.length<=Y.length)for(let e=0;e<i.length;e++){let t=Object.getOwnPropertyDescriptor(i,String(e))?.value,a=Y.find(e=>e.key===t);a&&n[a.key]!==null&&!r.includes(a.key)&&r.push(a.key)}}catch{}return{state:`ready`,values:n,defaulted:r}}function lt(e){return Object.fromEntries(Y.map(({key:t})=>[t,{text:e[t]===null?``:String(e[t]),unlimited:e[t]===null}]))}function ut(e,t){let n={},r={};for(let{key:i}of Y){let a=rt(e[i].text,e[i].unlimited);a.ok?a.value!==t[i]&&(n[i]=a.value):r[i]=a.error}return{patch:n,errors:r}}function dt({preferences:e,guard:t,dispatchEnabled:n}){let r=ct(e);return(0,W.jsx)(`section`,{className:G.panel,"aria-label":`Leader preferences`,children:(0,W.jsxs)(`details`,{className:G.goalDisclosure,children:[(0,W.jsxs)(`summary`,{className:G.goalSummary,children:[(0,W.jsxs)(`span`,{className:G.goalSummaryLabel,children:[(0,W.jsx)(R,{size:14,className:G.goalChevron}),(0,W.jsx)(`span`,{className:G.panelTitle,children:`Leader preferences`})]}),(0,W.jsx)(`span`,{className:G.panelNote,children:r.state===`ready`?`Advanced`:`Unavailable`})]}),(0,W.jsx)(`p`,{className:G.goalNote,children:`Choose daily run preferences and requested capacity. Run intervals, account availability, Stop and your signed permissions still apply. Removing a preference limit does not start work.`}),r.state===`ready`?(0,W.jsx)(ft,{read:r,serverValue:e,guard:t,dispatchEnabled:n}):(0,W.jsx)(`p`,{className:G.empty,role:`status`,children:r.state===`unsupported`?`Leader preferences are unavailable from this server. Update Hub to view and change them.`:r.state===`unavailable`?`Saved Leader preferences could not be read. Refresh the connection before changing them.`:`Saved Leader preferences need attention. Correct the configuration and refresh before changing them here.`})]})})}function ft({read:e,serverValue:t,guard:n,dispatchEnabled:r}){let[i,a]=(0,U.useState)(e.values),o=(0,U.useRef)(i),[s,c]=(0,U.useState)(e.defaulted),[l,u]=(0,U.useState)(()=>lt(i)),[d,f]=(0,U.useState)({}),[p,m]=(0,U.useState)(null),[h,g]=(0,U.useState)(null),[_,v]=(0,U.useState)(!1),y=(0,U.useRef)(!1),b=(0,U.useRef)(!0);(0,U.useEffect)(()=>(b.current=!0,()=>{b.current=!1}),[]);let x=JSON.stringify({values:e.values,defaulted:e.defaulted});(0,U.useEffect)(()=>{c(e.defaulted);let t=o.current;JSON.stringify(t)!==JSON.stringify(e.values)&&(u(n=>{let r=lt(e.values),i={...n};for(let{key:e}of Y){let a=rt(n[e].text,n[e].unlimited);a.ok&&a.value===t[e]&&(i[e]=r[e])}return i}),o.current=e.values,a(e.values),g(null))},[x,t]);let S=ut(l,i),C=Object.keys(S.patch).length>0||Object.keys(S.errors).length>0,w=!r||n.readOnly||n.busy||n.tokenOpen||_;function T(e,t){u(n=>({...n,[e]:{...n[e],...t}})),f(t=>({...t,[e]:void 0})),m(null),g(null)}function E(){if(w||y.current)return;let e=ut(l,i);f(e.errors),m(null),g(null),!Object.keys(e.errors).length&&Object.keys(e.patch).length&&n.request(async()=>{if(!b.current)throw Error(`Review Leader preferences again before saving.`);if(y.current)throw Error(`A Leader preferences save is already in progress.`);y.current=!0,v(!0);try{let t=ct((await H({leaderPreferences:e.patch}))?.caps?.leaderPreferences);if(t.state!==`ready`)throw Error(`The server did not confirm saved Leader preferences. Refresh before trying again.`);if(Object.keys(e.patch).some(n=>t.values[n]!==e.patch[n]))throw Error(`The server returned different Leader preferences. Refresh and review them before trying again.`);return t}catch(e){throw b.current&&m(fe(e)),e}finally{y.current=!1,b.current&&v(!1)}},`Saving Leader preferences requires the dispatch token.`,e=>{b.current&&(o.current=e.values,a(e.values),c(e.defaulted),u(lt(e.values)),f({}),g(`Leader preferences saved. They apply when Leader next considers a run.`))})}return(0,W.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),E()},"aria-busy":_||void 0,children:[(0,W.jsxs)(`fieldset`,{className:G.goalFields,disabled:w,children:[(0,W.jsx)(`legend`,{className:G.srOnly,children:`Leader run preferences`}),(0,W.jsx)(`div`,{className:G.capGrid,children:Y.map(e=>{let t=`leader-preference-${e.key}`,n=l[e.key];return(0,W.jsxs)(`div`,{className:G.cap,children:[(0,W.jsx)(`label`,{className:G.goalLabel,htmlFor:t,children:e.label}),(0,W.jsx)(`input`,{id:t,className:`${G.capInput} ${d[e.key]?G.capInputInvalid:``}`,type:`text`,inputMode:`numeric`,autoComplete:`off`,value:n.unlimited?``:n.text,placeholder:n.unlimited?`No preference limit`:void 0,disabled:n.unlimited,"aria-invalid":d[e.key]?!0:void 0,"aria-describedby":`${t}-help${d[e.key]?` ${t}-error`:``}`,onChange:t=>T(e.key,{text:t.target.value})}),(0,W.jsxs)(`label`,{className:G.goalChoice,children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:n.unlimited,"aria-label":`No preference limit for ${e.label.toLowerCase()}`,onChange:t=>T(e.key,{unlimited:t.target.checked})}),(0,W.jsx)(`span`,{children:`No preference limit`})]}),(0,W.jsxs)(`span`,{className:G.capHelp,id:`${t}-help`,children:[e.help,s.includes(e.key)?` Current default: ${i[e.key]}.`:``]}),d[e.key]?(0,W.jsx)(`span`,{className:G.capError,id:`${t}-error`,role:`alert`,children:d[e.key]}):null]},e.key)})}),(0,W.jsxs)(`div`,{className:G.goalActions,children:[(0,W.jsx)(L,{type:`submit`,busy:_,disabled:!C,children:`Save Leader preferences`}),C?(0,W.jsx)(L,{variant:`ghost`,onClick:()=>{u(lt(i)),f({}),m(null),g(null)},children:`Discard changes`}):null]})]}),!r||n.readOnly?(0,W.jsx)(`p`,{className:G.capHelp,children:`This connection is read-only. Leader preferences cannot be changed here.`}):null,p?(0,W.jsx)(`p`,{className:G.capError,role:`alert`,children:p}):null,_?(0,W.jsx)(`p`,{className:G.capHelp,role:`status`,children:`Saving Leader preferences…`}):null,h?(0,W.jsx)(`p`,{className:G.capApplied,role:`status`,children:h}):null]})}function pt(e,t,n){let r=n.daemon,i=r?.ticks?.[r.ticks.length-1]??null;switch(e){case`dailyBudgetUsd`:{let e=t.dailyBudgetUsd;if(e===0)return`Loop stopped ($0 budget).`;let i=n.spend,a=i?k(i.todayUsd,e,i.todayDate):k(r?.todaySpentUsd??null,e,null);return a.state===`unknown`?a.note:`${S(i?i.todayUsd:r?.todaySpentUsd??null)} spent today`}case`perTickItems`:return i?`${A(i.itemsConsidered)} considered on the last tick`:null;case`parallel`:return i?.dispatches?`${i.dispatches.length} dispatched on the last tick`:null;case`intervalMs`:return r?.lastTickAt?`last tick ${D(r.lastTickAt)} ago`:null;default:return null}}function mt({caps:e,snapshot:t,guard:n,dispatchEnabled:r}){let[i,a]=(0,U.useState)(null),[o,s]=(0,U.useState)(null),[c,l]=(0,U.useState)(null),u=!r||n.readOnly||n.busy||n.tokenOpen;function d(e,t,r){a(e),l(null),n.request(async()=>{s(e);try{await r(),l(e)}finally{s(null)}},t)}let f=e.foundryLimits??[];return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`section`,{className:G.panel,"aria-label":`Budget and limits`,children:[(0,W.jsxs)(`div`,{className:G.panelHead,children:[(0,W.jsx)(`h3`,{className:G.panelTitle,children:`Budget and limits`}),(0,W.jsx)(`p`,{className:G.panelNote,children:`Committed on blur or Enter. The daemon re-reads config each tick, so changes apply live.`})]}),(0,W.jsx)(`div`,{className:G.capGrid,children:qe.map(r=>(0,W.jsx)(_t,{spec:r.key===`perTickItems`?{...r,help:Number.isSafeInteger(e.journalItemCapacity)&&(e.journalItemCapacity??0)>0?`${r.help} At most ${e.journalItemCapacity} items are journaled per tick; remaining work continues on later ticks.`:`${r.help} Journal capacity is unavailable from this server.`}:r,stored:Je(e,r.key),usage:pt(r.key,e,t),disabled:u||o!==null&&o!==r.key,busy:o===r.key,applied:c===r.key,error:i===r.key?n.error:null,onCommit:e=>d(r.key,`Changing ${r.label.toLowerCase()} requires the dispatch token.`,()=>H(Ze(r.key,e)))},r.key))}),(0,W.jsx)(`div`,{className:`${G.panelHead} ${G.panelHeadSpaced}`,children:(0,W.jsx)(`h3`,{className:G.panelTitle,children:`Per-engine dispatch limits`})}),f.length===0?(0,W.jsxs)(`p`,{className:G.empty,children:[`No per-engine dispatch limits are configured. Every engine is bounded only by the caps above and by its own provider quota. To cap one, add it under `,(0,W.jsx)(`code`,{children:`foundry.limits`}),` in `,(0,W.jsx)(`code`,{children:`~/.ashlr/config.json`}),` `,`(a `,(0,W.jsx)(`code`,{children:`max`}),` and a `,(0,W.jsx)(`code`,{children:`window`}),`); it then appears here to edit.`]}):(0,W.jsx)(`div`,{className:G.capGrid,children:f.map((e,r)=>(0,W.jsx)(vt,{limit:e,usage:ht(e.engine,t),disabled:u||o!==null&&o!==X(e),busy:o===X(e),applied:c===X(e),error:i===X(e)?n.error:null,onCommit:t=>d(X(e),`Changing the ${e.engine} dispatch limit requires the dispatch token.`,()=>{let e=f.map((e,n)=>n===r?{...e,max:t}:e);return H({foundryLimits:e})})},`${e.engine}:${e.window}`))})]}),(0,W.jsx)(at,{preferences:e.goalPreferences,focusMode:e.goalFocusMode,focusThreshold:e.goalFocusActiveThreshold,focusDefaulted:e.defaulted.includes(`goalFocusMode`),guard:n,dispatchEnabled:r&&o===null}),(0,W.jsx)(dt,{preferences:e.leaderPreferences,guard:n,dispatchEnabled:r&&o===null})]})}function X(e){return`foundry:${e.engine}:${e.window}`}function ht(e,t){let n=t.quota?.find(t=>t.engine===e);if(!n)return null;let r=Ve(n),i=r===`unlimited`?`no limit configured`:r;return`${A(n.callsToday)} dispatched in the last ${n.limitWindow??`1d`} · ${i}`}function gt(e){let t=[e.usage?`${e.id}-usage`:null,e.help?`${e.id}-help`:null].filter(e=>e!==null).join(` `);return(0,W.jsxs)(`div`,{className:G.cap,children:[(0,W.jsx)(`label`,{className:G.capLabel,htmlFor:e.id,children:e.label}),(0,W.jsxs)(`div`,{className:G.capRow,children:[(0,W.jsx)(`input`,{id:e.id,type:`number`,inputMode:`decimal`,className:`${G.capInput} ${e.invalid?G.capInputInvalid:``}`,value:e.value,step:e.step,min:e.min,max:e.max,disabled:e.disabled||e.busy,"aria-invalid":e.invalid?!0:void 0,"aria-describedby":t||void 0,onChange:t=>e.onChange(t.target.value),onBlur:e.onCommit,onKeyDown:t=>{t.key===`Enter`&&(t.preventDefault(),e.onCommit())}}),(0,W.jsx)(`span`,{className:G.capUnit,children:e.unit})]}),e.usage?(0,W.jsx)(`span`,{className:G.capUsage,id:`${e.id}-usage`,children:e.usage}):null,e.help?(0,W.jsx)(`span`,{className:G.capHelp,id:`${e.id}-help`,children:e.help}):null,e.invalid?(0,W.jsx)(`span`,{className:G.capError,role:`alert`,children:e.invalid}):null,e.error&&!e.invalid?(0,W.jsx)(`span`,{className:G.capError,role:`alert`,children:e.error}):null,e.applied&&!e.invalid&&!e.error?(0,W.jsx)(`span`,{className:G.capApplied,children:`applied live`}):null]})}function _t({spec:e,stored:t,usage:n,disabled:r,busy:i,applied:a,error:o,onCommit:s}){let c=t===null?``:String(e.toDisplay(t)),[l,u]=(0,U.useState)(c),[d,f]=(0,U.useState)(null);(0,U.useEffect)(()=>{d===null&&u(c)},[c]);function p(){if(l===c){f(null);return}let t=Xe(e,l);if(!t.ok){f(t.error);return}f(null),s(t.stored)}return(0,W.jsx)(gt,{id:`cap-${e.key.replace(`.`,`-`)}`,label:e.label,unit:e.unit,help:e.help,usage:n,value:l,invalid:d,disabled:r,busy:i,applied:a,error:o,step:e.step,min:e.min,max:e.max,onChange:e=>{u(e),d&&f(null)},onCommit:p})}function vt({limit:e,usage:t,disabled:n,busy:r,applied:i,error:a,onCommit:o}){let s=String(e.max),[c,l]=(0,U.useState)(s),[u,d]=(0,U.useState)(null);(0,U.useEffect)(()=>{u===null&&l(s)},[s]);function f(){if(c===s){d(null);return}let t=Qe(c,e.engine);if(!t.ok){d(t.error);return}d(null),o(t.stored)}return(0,W.jsx)(gt,{id:`cap-foundry-${e.engine}-${e.window}`,label:e.engine,unit:`dispatches / ${e.window}`,usage:t,value:c,invalid:u,disabled:n,busy:r,applied:i,error:a,step:1,min:q.min,max:q.max,onChange:e=>{l(e),u&&d(null)},onCommit:f})}function yt(e){if(e.killSwitch?.state===`active`)return{state:`killed`,label:`Kill switch engaged`};let t=e.daemon;return!t||!c(t.sourceQuality)?{state:`unknown`,label:`Run state unknown`}:t.runtimeState===`running`?{state:`running`,label:`Running`}:t.runtimeState===`stopped`?{state:`stopped`,label:`Stopped`}:{state:`unknown`,label:`Run state unknown`}}function bt({snapshot:e}){let t=pe(1e3),{state:n,label:r}=yt(e),i=e.daemon,a=c(i?.sourceQuality),o=i?.ticks?.[i.ticks.length-1]??null,s=b(o?.reason),l=e.fleet?.directionMode??o?.directionMode??null,u=e.scope?.repos??null,d=e.caps?.intervalMs??null,f=n===`running`?C(i?.lastTickAt,d):null,p=e.spend,m=p?k(p.todayUsd,e.caps?.dailyBudgetUsd??null,p.todayDate):k(i?.todaySpentUsd??null,e.caps?.dailyBudgetUsd??null,null);return(0,W.jsxs)(`section`,{className:G.status,"aria-label":`Autonomy status`,children:[(0,W.jsxs)(`div`,{className:G.statusTop,children:[(0,W.jsxs)(`span`,{className:G.runState,"data-state":n,children:[(0,W.jsx)(`span`,{className:G.runDot,"aria-hidden":`true`}),r]}),(0,W.jsxs)(`div`,{className:G.facts,children:[(0,W.jsxs)(`div`,{className:G.fact,children:[(0,W.jsx)(`span`,{className:G.factLabel,children:`Direction`}),(0,W.jsx)(`span`,{className:G.factValue,children:l??`default`})]}),(0,W.jsxs)(`div`,{className:G.fact,children:[(0,W.jsx)(`span`,{className:G.factLabel,children:`Last tick`}),(0,W.jsx)(`span`,{className:G.factValue,"data-tone":s.tone,children:a&&i?.lastTickAt?`${x(i.lastTickAt)} · ${s.label}`:s.label})]}),(0,W.jsxs)(`div`,{className:G.fact,children:[(0,W.jsx)(`span`,{className:G.factLabel,children:`Next tick`}),(0,W.jsx)(`span`,{className:G.factValue,children:n===`running`?w(f,t):n===`killed`?`blocked`:`not scheduled`})]}),(0,W.jsxs)(`div`,{className:G.fact,children:[(0,W.jsx)(`span`,{className:G.factLabel,children:`Interval`}),(0,W.jsx)(`span`,{className:G.factValue,children:T(d)})]}),(0,W.jsxs)(`div`,{className:G.fact,children:[(0,W.jsx)(`span`,{className:G.factLabel,children:`Scope`}),(0,W.jsx)(`span`,{className:G.factValue,"data-tone":(u?.length??0)===0?`warning`:void 0,children:u?`${u.length} ${u.length===1?`repo`:`repos`}`:`—`})]}),(0,W.jsxs)(`div`,{className:G.fact,children:[(0,W.jsx)(`span`,{className:G.factLabel,children:`Awaiting you`}),(0,W.jsx)(`span`,{className:G.factValue,children:typeof e.pendingApprovals==`number`?`${e.pendingApprovals} ${e.pendingApprovals===1?`approval`:`approvals`}`:`—`})]}),(0,W.jsxs)(`div`,{className:G.fact,children:[(0,W.jsx)(`span`,{className:G.factLabel,children:`Started`}),(0,W.jsx)(`span`,{className:G.factValue,children:a?M(i?.startedAt):`—`})]})]})]}),(0,W.jsxs)(`div`,{className:G.budget,children:[(0,W.jsxs)(`div`,{className:G.budgetLine,children:[(0,W.jsx)(`span`,{className:G.budgetLabel,children:m.label}),(0,W.jsx)(`span`,{className:G.budgetNote,children:m.note})]}),(0,W.jsx)(`div`,{className:G.meter,"data-state":m.state,role:`meter`,"aria-label":`Today's spend against the daily budget`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":m.percent??void 0,"aria-valuetext":`${m.label}. ${m.note}`,children:(0,W.jsx)(`div`,{className:G.meterFill,style:{width:`${m.percent??0}%`}})})]})]})}function xt({snapshot:e,guard:t,dispatchEnabled:n}){let[r,i]=(0,U.useState)(null),[a,o]=(0,U.useState)(null),{state:s}=yt(e),c=e.killSwitch?.state===`active`,l=e.killSwitch?.state===`unknown`,u=e.pause?.state??`unknown`,f=u!==`running`,p=u===`unknown`,m=!n||t.readOnly||t.busy,g=e=>o(e.note?P(e.note):null);return(0,W.jsxs)(`section`,{className:G.panel,"aria-label":`Loop controls`,children:[(0,W.jsx)(`div`,{className:G.panelHead,children:(0,W.jsx)(`h3`,{className:G.panelTitle,children:`Controls`})}),(0,W.jsxs)(`div`,{className:G.controls,children:[f?(0,W.jsx)(`button`,{type:`button`,className:`${G.button} ${G.buttonPrimary}`,disabled:m,onClick:()=>t.request(()=>V(`resume`),`Resuming autonomous dispatch requires the dispatch token.`,g),children:`Resume`}):(0,W.jsx)(`button`,{type:`button`,className:`${G.button} ${G.buttonPrimary}`,disabled:m,onClick:()=>t.request(()=>V(`pause`),`Pausing autonomous dispatch requires the dispatch token.`,g),children:`Pause`}),(0,W.jsx)(h,{label:c?`Release the emergency stop before starting the loop.`:f?`Dispatch is paused — resume before starting the loop.`:``,children:(0,W.jsx)(`button`,{type:`button`,className:G.button,disabled:m||s===`running`||c||f,onClick:()=>t.request(()=>V(`start`),`Starting the autonomous loop requires the dispatch token.`,g),children:`Start loop`})}),(0,W.jsx)(`button`,{type:`button`,className:G.button,disabled:m||s===`stopped`,onClick:()=>i(`stop`),children:`Stop loop`}),(0,W.jsx)(h,{label:f?`Dispatch is paused — resume before running a tick.`:``,children:(0,W.jsx)(`button`,{type:`button`,className:G.button,disabled:m||c||f,onClick:()=>t.request(()=>V(`once`),`Running one tick requires the dispatch token.`,g),children:`Run one tick`})})]}),f?(0,W.jsx)(`p`,{className:G.actionNote,role:`status`,children:p?`Treated as paused — the pause sentinel is unreadable.`:`Autonomous dispatch is paused. The loop parks between ticks; your own write tools are unaffected, and the global kill switch is not engaged.`}):null,(0,W.jsx)(`div`,{className:G.emergency,children:c?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`button`,{type:`button`,className:G.button,disabled:m,onClick:()=>i(`release`),children:`Release emergency stop`}),(0,W.jsxs)(`p`,{className:G.emergencyNote,children:[`The global kill switch is engaged. The daemon refuses to tick `,(0,W.jsx)(`em`,{children:`and`}),` the agent’s own write tools refuse to edit anything, anywhere — not just in enrolled repos.`]})]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`button`,{type:`button`,className:G.emergencyButton,disabled:m,onClick:()=>i(`engage`),children:`Emergency stop`}),(0,W.jsxs)(`p`,{className:G.emergencyNote,children:[`Engages the global kill switch. Wider than “stop the loop”: it also disables the agent’s own write tools everywhere until you release it. To halt only the loop, use `,(0,W.jsx)(`strong`,{children:`Pause`}),`.`,l?` The switch’s current state could not be read.`:``]})]})}),t.error&&r===null?(0,W.jsx)(`p`,{className:G.capError,role:`alert`,children:t.error}):null,a&&!t.error?(0,W.jsx)(`p`,{className:G.actionNote,role:`status`,children:a}):null,(0,W.jsx)(d,{open:r===`stop`,onClose:()=>i(null),title:`Stop the autonomous loop?`,body:(0,W.jsxs)(W.Fragment,{children:[`This is the ordinary stop, but it works by engaging the global kill switch — the same`,(0,W.jsx)(`code`,{children:` ~/.ashlr/KILL `}),` sentinel the emergency stop writes. While it is set, the agent’s own write tools also refuse to edit anything, anywhere, until you release it from this panel.`,(0,W.jsx)(`br`,{}),(0,W.jsx)(`br`,{}),`If you only want the loop to stop working, `,(0,W.jsx)(`strong`,{children:`Pause`}),` does exactly that and nothing else — it leaves your own tools alone and undoes in one click.`,(0,W.jsx)(`br`,{}),(0,W.jsx)(`br`,{}),`Nothing in flight is rolled back. The loop will not restart by itself.`]}),confirmLabel:`Stop loop`,destructive:!0,busy:t.busy,error:t.error,onConfirm:()=>t.request(()=>V(`stop`),`Stopping the autonomous loop requires the dispatch token.`,e=>{g(e),i(null)})}),(0,W.jsx)(d,{open:r===`engage`,onClose:()=>i(null),title:`Engage the emergency stop?`,body:(0,W.jsxs)(W.Fragment,{children:[`This writes the global kill switch. It stops the autonomous loop `,(0,W.jsx)(`strong`,{children:`and`}),` disables the agent’s own write tools — every edit, apply, and merge path refuses while it is engaged, in every repo, not only the enrolled ones. Nothing in flight is rolled back; nothing new can start.`,(0,W.jsx)(`br`,{}),(0,W.jsx)(`br`,{}),(0,W.jsx)(`strong`,{children:`Pause`}),` halts autonomous dispatch only and leaves everything else working.`,` `,(0,W.jsx)(`strong`,{children:`Stop loop`}),` is not narrower than this button: it engages the same global kill switch.`]}),confirmLabel:`Engage emergency stop`,destructive:!0,busy:t.busy,error:t.error,onConfirm:()=>t.request(async()=>{await ae(),i(null)},`Engaging the emergency stop requires the dispatch token.`)}),(0,W.jsx)(d,{open:r===`release`,onClose:()=>i(null),title:`Release the emergency stop?`,body:(0,W.jsxs)(W.Fragment,{children:[`This clears the global kill switch. Write tools become usable again immediately. The autonomous loop does not restart by itself — use `,(0,W.jsx)(`strong`,{children:`Start loop`}),` when you want it running.`]}),confirmLabel:`Release emergency stop`,busy:t.busy,error:t.error,onConfirm:()=>t.request(async()=>{await ee(),i(null)},`Releasing the emergency stop requires the dispatch token.`)})]})}var St={idle:`neutral`,working:`running`,saturated:`running`,queued:`warning`,unknown:`unknown`},Ct={running:`running`,finishing:`running`,queued:`neutral`};function wt({read:e,runtime:t,loading:n=!1}){let r=pe(1e3),i=e?.value??null,a=he(t),o=i?.slotsBusy??t?.slotsBusy??null,s=be(o,a.effectiveConcurrency),c=xe(i,s,a),u=i?Se(i.agents):[],d=i?.queueDepth??u.filter(e=>e.state===`queued`).length;return(0,W.jsxs)(`section`,{className:G.panel,"aria-labelledby":`verse-fleet-title`,children:[(0,W.jsxs)(`div`,{className:G.panelHead,children:[(0,W.jsx)(`h3`,{id:`verse-fleet-title`,className:G.panelTitle,children:`Fleet in flight`}),(0,W.jsx)(`p`,{className:G.panelNote,children:`Every agent mid-turn right now, what it is working on, and how long it has been at it.`})]}),n&&e===null?(0,W.jsx)(`p`,{className:G.empty,children:`Reading the fleet…`}):e===null||!e.available&&e.value===null?(0,W.jsxs)(`p`,{className:G.empty,children:[(0,W.jsx)(`span`,{className:G.emptyStrong,children:`Fleet status unavailable. `}),e?.reason??null]}):i===null?(0,W.jsxs)(`p`,{className:G.empty,children:[(0,W.jsx)(`span`,{className:G.emptyStrong,children:`Unreadable reading. `}),e.reason??`Unrecognized response — update Ashlr.`]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`div`,{className:G.pressure,"data-state":c.state,children:[(0,W.jsxs)(`span`,{className:G.pressureHead,children:[(0,W.jsx)(`span`,{className:G.pressureHeadline,children:c.headline}),(0,W.jsx)(l,{status:c.state,tone:St[c.state]??`unknown`,children:c.state})]}),(0,W.jsx)(`p`,{className:G.pressureDetail,children:c.detail})]}),(0,W.jsxs)(`div`,{className:G.fleetMeters,children:[(0,W.jsx)(z,{value:s.busy,max:s.total,label:`Slot utilisation`,valueText:s.percentText===null?`unknown`:`${s.busy} / ${s.total} · ${s.percentText}`,tone:s.saturated?`warning`:void 0}),(0,W.jsxs)(`div`,{className:G.fact,children:[(0,W.jsx)(`span`,{className:G.factLabel,children:`Queue depth`}),(0,W.jsx)(`span`,{className:G.factValue,"data-tone":d>0?`warning`:void 0,children:i.queueDepth===null&&u.length===0?`—`:`${A(d)} waiting`})]})]}),s.saturated&&d===0?(0,W.jsx)(`p`,{className:G.capHelp,children:`Every slot is occupied. Nothing is waiting yet, but the next turn will.`}):null,u.length===0?(0,W.jsxs)(`p`,{className:G.empty,children:[(0,W.jsx)(`span`,{className:G.emptyStrong,children:`Nothing in flight. `}),`No agent is mid-turn. The fleet answered and reported an empty list — an idle fleet, not a missing reading. Run one tick from Controls to put work in flight.`]}):(0,W.jsx)(`div`,{className:G.tableScroll,children:(0,W.jsxs)(`table`,{className:G.table,children:[(0,W.jsx)(`caption`,{className:G.srOnly,children:`Agents in flight: state, task, repository, model, slot and elapsed time`}),(0,W.jsx)(`thead`,{children:(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`th`,{scope:`col`,children:`State`}),(0,W.jsx)(`th`,{scope:`col`,children:`Working on`}),(0,W.jsx)(`th`,{scope:`col`,children:`Repo`}),(0,W.jsx)(`th`,{scope:`col`,children:`Model`}),(0,W.jsx)(`th`,{scope:`col`,children:`Slot`}),(0,W.jsx)(`th`,{scope:`col`,children:`Elapsed`})]})}),(0,W.jsx)(`tbody`,{children:u.map(e=>(0,W.jsx)(Tt,{agent:e,now:r,capacity:a},e.id))})]})}),i.notes.length>0?(0,W.jsx)(`ul`,{className:G.noteList,children:i.notes.map(e=>(0,W.jsx)(`li`,{className:G.capHelp,children:P(e)},e))}):null]})]})}function Tt({agent:e,now:t,capacity:n}){let r=ve(e.startedAt,t),i=e.state===`queued`;return(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`td`,{children:(0,W.jsx)(l,{status:e.state,tone:Ct[e.state],children:e.state})}),(0,W.jsx)(`td`,{className:G.cellSummary,children:e.task??(0,W.jsx)(`span`,{className:G.capHelp,children:`not reported`})}),(0,W.jsx)(`td`,{className:G.cellRepo,title:e.repo??void 0,children:e.repo?N(e.repo):`—`}),(0,W.jsx)(`td`,{className:G.cellRepo,children:e.model??e.engine??`—`}),(0,W.jsx)(`td`,{className:G.cellTime,children:e.slot===null?i?(0,W.jsx)(`span`,{className:G.capHelp,title:n.verdict===`serialized`?`This runtime serializes, so only one slot ever frees up at a time.`:void 0,children:`no slot`}):`—`:`#${e.slot}`}),(0,W.jsxs)(`td`,{className:G.cellTime,children:[r,i?(0,W.jsx)(`span`,{className:G.elapsedQualifier,children:` queued`}):null]})]})}var Et=8;function Dt(){let e=s(ce),t=s(le),[n,r]=(0,U.useState)(!1),[i,a]=(0,U.useState)(!1),o=(0,U.useId)(),c=(0,U.useId)(),l=(e.data??[]).filter(e=>e.status!==`done`&&e.status!==`archived`),u=l.filter(e=>e.status===`active`).length,d=l.filter(e=>e.status===`paused`).length,f=l.filter(e=>e.status===`planning`).length,m=t.data?.items??[];return(0,W.jsxs)(`section`,{className:G.panel,"aria-label":`Goals and backlog`,children:[(0,W.jsxs)(`div`,{className:G.panelHead,children:[(0,W.jsx)(`h3`,{className:G.panelTitle,children:`Goals and backlog`}),(0,W.jsx)(`p`,{className:G.panelNote,children:`Read-only in this view.`})]}),(0,W.jsxs)(`div`,{className:G.summaryColumns,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`p`,{className:G.factLabel,children:`Goals`}),e.data&&e.status!==`error`&&e.status!==`loading`?(0,W.jsxs)(`p`,{className:G.panelNote,children:[u,` active · `,d,` paused · `,f,` planning`]}):null,e.status!==`error`&&(e.status===`loading`||e.data===void 0)?(0,W.jsxs)(`div`,{className:G.skeletons,children:[(0,W.jsx)(p,{}),(0,W.jsx)(p,{})]}):e.status===`error`?(0,W.jsx)(`p`,{className:G.error,role:`alert`,children:e.error?.message??`Could not read goals.`}):l.length===0?(0,W.jsxs)(`p`,{className:G.empty,children:[`No active goals, paused goals or planning goals. Add one with`,` `,(0,W.jsx)(`code`,{children:`ashlr goals add "<objective>"`}),`.`]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{className:G.summaryList,id:o,children:(n?l:l.slice(0,Et)).map(e=>{let t=e.progress?O(e.progress.fractionDone):`—`;return(0,W.jsxs)(`div`,{className:G.summaryRow,children:[(0,W.jsx)(`span`,{className:G.summaryTitle,title:e.objective,children:e.objective}),(0,W.jsxs)(`span`,{className:G.summaryMeta,children:[t,` · `,e.status]})]},e.id)})}),l.length>Et?(0,W.jsx)(`button`,{type:`button`,className:G.button,"aria-expanded":n,"aria-controls":o,"aria-label":n?`Collapse goals`:`Expand all goals (${l.length})`,onClick:()=>r(e=>!e),children:n?`Collapse`:`Expand all (${l.length})`}):null]})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`p`,{className:G.factLabel,children:`Backlog`}),t.status!==`error`&&(t.status===`loading`||t.data===void 0)?(0,W.jsxs)(`div`,{className:G.skeletons,children:[(0,W.jsx)(p,{}),(0,W.jsx)(p,{})]}):t.status===`error`?(0,W.jsx)(`p`,{className:G.error,role:`alert`,children:t.error?.message??`Could not read the backlog.`}):t.data?.absent?(0,W.jsxs)(`p`,{className:G.empty,children:[`No backlog has been built yet. Run one tick from Controls, or `,(0,W.jsx)(`code`,{children:`ashlr backlog`}),`, to produce one.`]}):m.length===0?(0,W.jsxs)(`p`,{className:G.empty,children:[`The backlog is empty, so a tick records `,(0,W.jsx)(`code`,{children:`no-backlog`}),` and idles. Enroll another repository in Scope, or add a goal, to give it work.`]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{className:G.summaryList,id:c,children:(i?m:m.slice(0,Et)).map((e,t)=>(0,W.jsxs)(`div`,{className:G.summaryRow,children:[(0,W.jsx)(`span`,{className:G.summaryTitle,title:e.title,children:e.title??e.id??`untitled item`}),(0,W.jsxs)(`span`,{className:G.summaryMeta,title:e.repo??void 0,children:[e.repo?N(e.repo):`—`,typeof e.score==`number`?` · ${e.score}`:``]})]},e.id??`${e.title??`item`}-${t}`))}),m.length>Et?(0,W.jsx)(`button`,{type:`button`,className:G.button,"aria-expanded":i,"aria-controls":c,"aria-label":i?`Collapse backlog`:`Expand all backlog items (${m.length})`,onClick:()=>a(e=>!e),children:i?`Collapse`:`Expand all (${m.length})`}):null]})]})]})]})}function Ot({read:e,seats:t,guard:n,dispatchEnabled:r,loading:i=!1}){let[a,o]=(0,U.useState)(!1),[s,c]=(0,U.useState)(null),u=e?.value??null,f=me(u,t),p=ye(u),m=u?.enabled??!1,h=!r||n.readOnly||n.busy||!(u?.mutable??!1),g=e=>{n.request(()=>De(e),e?`Turning local-only on requires the dispatch token.`:`Turning local-only off requires the dispatch token.`,e=>{c(e.note?P(e.note):null),o(!1)})};return(0,W.jsxs)(`section`,{className:G.panel,"aria-labelledby":`verse-local-only-title`,children:[(0,W.jsxs)(`div`,{className:G.panelHead,children:[(0,W.jsx)(`h3`,{id:`verse-local-only-title`,className:G.panelTitle,children:`Local only`}),(0,W.jsx)(`p`,{className:G.panelNote,children:`While on, cloud engines are unreachable.`})]}),i&&e===null?(0,W.jsx)(`p`,{className:G.empty,children:`Reading the local-only policy…`}):e===null||u===null?(0,W.jsxs)(`p`,{className:G.empty,children:[(0,W.jsx)(`span`,{className:G.emptyStrong,children:`No local-only source. `}),e?.reason??`Nothing answered for the local-only policy, so whether cloud engines are reachable cannot be stated here. It is not shown as off — an unread switch is not a switch that is off.`]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`div`,{className:G.toggleRow,children:[(0,W.jsx)(`span`,{className:G.toggleState,"data-on":m?`true`:`false`,children:(0,W.jsx)(l,{status:m?`local-only-on`:`local-only-off`,tone:m?`success`:`neutral`,children:m?`on — cloud refused`:`off — cloud reachable`})}),(0,W.jsx)(`button`,{type:`button`,className:`${G.button} ${m?``:G.buttonPrimary}`,disabled:h,"aria-pressed":m,onClick:()=>m?g(!1):o(!0),children:m?`Turn local-only off`:`Turn local-only on`})]}),(0,W.jsx)(`p`,{className:G.policyExplain,children:m?(0,W.jsxs)(W.Fragment,{children:[`Every non-local engine is `,(0,W.jsx)(`strong`,{children:`refused at dispatch`}),`. A turn sent to one does not fall back, does not queue, and does not run more slowly — it fails with a named refusal. Nothing can spend money while this is on.`]}):(0,W.jsxs)(W.Fragment,{children:[`Cloud engines are reachable. Turning this on makes them `,(0,W.jsx)(`strong`,{children:`unreachable`}),`: a dispatch to one fails outright.`]})}),p?(0,W.jsx)(`p`,{className:G.capHelp,children:p}):null,!u.mutable&&r&&!n.readOnly?(0,W.jsx)(`p`,{className:G.actionNote,role:`status`,children:`Read-only here.`}):null,(0,W.jsxs)(`div`,{className:G.impact,children:[(0,W.jsx)(`h4`,{className:G.impactTitle,children:m?`What is blocked right now`:`What this would block`}),(0,W.jsx)(`p`,{className:G.impactSummary,children:f.summary}),f.blocked.length>0?(0,W.jsx)(`ul`,{className:G.seatList,children:f.blocked.map(e=>(0,W.jsxs)(`li`,{className:G.seatRow,children:[(0,W.jsx)(`span`,{className:G.seatEngine,"data-engine":e.engine,children:e.engine}),(0,W.jsx)(`span`,{className:G.seatLabel,children:e.label}),(0,W.jsx)(`span`,{className:G.seatRefusal,children:f.refusalFor(e.engine)})]},e.id))}):null,f.allowed.length>0?(0,W.jsxs)(`p`,{className:G.capHelp,children:[`Still reachable:`,` `,f.allowed.map(e=>e.label).join(`, `),`. Local seats cost nothing to run and are unaffected by this switch.`]}):(0,W.jsx)(`p`,{className:G.capHelp,children:`No local seat is configured. With local-only on there would be nothing left to dispatch to — add a local seat before relying on this switch.`})]}),s&&!n.error?(0,W.jsx)(`p`,{className:G.actionNote,role:`status`,children:s}):null,n.error&&!a?(0,W.jsx)(`p`,{className:G.capError,role:`alert`,children:n.error}):null,(0,W.jsx)(d,{open:a,onClose:()=>o(!1),title:`Make cloud engines unreachable?`,body:(0,W.jsxs)(W.Fragment,{children:[`While local-only is on, a dispatch to a non-local engine `,(0,W.jsx)(`strong`,{children:`fails`}),` with a named refusal — no fallback to a local seat, no waiting.`,(0,W.jsx)(`br`,{}),(0,W.jsx)(`br`,{}),f.blocked.length===0?`No seat on this machine is affected today: every configured seat is local.`:`${f.blocked.length} of your ${t.length} ${t.length===1?`seat`:`seats`} ${f.blocked.length===1?`stops`:`stop`} working: ${f.blocked.map(e=>e.label).join(`, `)}.`,(0,W.jsx)(`br`,{}),(0,W.jsx)(`br`,{}),`It is reversible from this panel at any time.`]}),confirmLabel:`Turn local-only on`,busy:n.busy,error:n.error,onConfirm:()=>g(!0)})]})]})}var kt={running:`success`,starting:`running`,stopping:`running`,stopped:`neutral`,unknown:`unknown`},At={success:`success`,warning:`warning`,danger:`danger`,neutral:`neutral`,unknown:`unknown`},jt=/^local lane is off this tick: (.+)$/s,Mt=/^lane cap (\d+) is below (\d+) \([^)]*\): (.+)$/s;function Nt(e){let t=e?.find(e=>typeof e==`string`&&e.startsWith(`bounded by this tick's lane cap, not by slots: `));if(!t)return null;let n=t.slice(47).trim(),r=jt.exec(n);if(r)return{off:!0,limit:null,uncapped:null,why:j(P(r[1]))};let i=Mt.exec(n);return i?{off:!1,limit:Number(i[1]),uncapped:Number(i[2]),why:j(P(i[3]))}:{off:!1,limit:null,uncapped:null,why:j(P(n))}}function Pt(){return(0,U.useSyncExternalStore)((0,U.useCallback)(e=>a(`verse-fleet`,e),[]),()=>i(`verse-fleet`),()=>i(`verse-fleet`)).data??null}function Ft({read:e,guard:t,dispatchEnabled:n,loading:r=!1,fleet:i}){let a=pe(1e3),o=Pt(),s=i===void 0?o:i,c=Nt(s?.value?.notes),u=s?.value?.notes.some(e=>e.startsWith(`snapshot is `))??!1,[f,p]=(0,U.useState)(null),[m,h]=(0,U.useState)(null),g=e?.value??null,_=he(g),y=be(g?.slotsBusy??null,_.effectiveConcurrency),b=!n||t.readOnly,x=g?.supervised??!1,S=b||t.busy||!x,C=g?.state===`running`,w=(e,n)=>{t.request(()=>Te(e),n,e=>{h(e.note?P(e.note):null),p(null)})};return(0,W.jsxs)(`section`,{className:G.panel,"aria-labelledby":`verse-runtime-title`,children:[(0,W.jsxs)(`div`,{className:G.panelHead,children:[(0,W.jsx)(`h3`,{id:`verse-runtime-title`,className:G.panelTitle,children:`Serving runtime`}),(0,W.jsx)(`p`,{className:G.panelNote,children:`The process that answers local agent turns. Without it, a local fleet has nowhere to run.`})]}),r&&e===null?(0,W.jsx)(`p`,{className:G.empty,children:`Reading the serving runtime…`}):e===null||!e.available&&e.value===null?(0,W.jsxs)(`p`,{className:G.empty,children:[(0,W.jsx)(`span`,{className:G.emptyStrong,children:`No serving-runtime source. `}),e?.reason??`Serving runtime unavailable.`]}):g===null?(0,W.jsxs)(`p`,{className:G.empty,children:[(0,W.jsx)(`span`,{className:G.emptyStrong,children:`Unreadable reading. `}),e.reason??`Unrecognized response — update Ashlr.`]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`div`,{className:G.runtimeTop,children:[(0,W.jsxs)(`span`,{className:G.runtimeState,"data-state":g.state,children:[(0,W.jsx)(`span`,{className:G.runDot,"aria-hidden":`true`}),(0,W.jsxs)(`span`,{className:G.runtimeStateText,children:[ge(g.kind),` · `,g.state===`unknown`?`state unknown`:g.state]})]}),(0,W.jsx)(l,{status:g.state,tone:kt[g.state],children:g.state===`running`?`serving`:g.state}),g.reason?(0,W.jsx)(`code`,{className:G.evidenceCode,children:P(g.reason)}):null]}),(0,W.jsxs)(`div`,{className:G.facts,children:[(0,W.jsx)(Z,{label:`Model`,value:g.model??`—`,wide:!0}),(0,W.jsx)(Z,{label:`Endpoint`,value:g.endpoint??`—`,mono:!0}),(0,W.jsx)(Z,{label:`Context`,value:v(g.contextTokens)}),(0,W.jsx)(Z,{label:`Slots configured`,value:g.slotsTotal===null?`—`:String(g.slotsTotal)}),(0,W.jsx)(Z,{label:`Uptime`,value:C?_e(g.startedAt,a):`not running`})]}),(0,W.jsxs)(`div`,{className:G.capacityBlock,"data-verdict":_.verdict,children:[(0,W.jsxs)(`div`,{className:G.capacityHead,children:[(0,W.jsx)(`span`,{className:G.capacityBig,children:_.effectiveConcurrency===null?`—`:_.effectiveConcurrency}),(0,W.jsxs)(`div`,{className:G.capacityWords,children:[(0,W.jsxs)(`span`,{className:G.capacityHeadline,children:[_.headline,(0,W.jsx)(l,{status:_.verdict,tone:At[_.tone],children:_.verdict===`batched`?`batches`:_.verdict===`serialized`?`serializes`:_.verdict===`offline`?`not serving`:`unconfirmed`})]}),(0,W.jsx)(`span`,{className:G.capacityDetail,children:_.detail})]})]}),c?(0,W.jsxs)(`p`,{className:G.capacityDetail,"data-limiter":`lane-cap`,role:`note`,children:[(0,W.jsx)(l,{status:`lane-cap`,tone:c.off?`neutral`:`warning`,children:c.off?`lane off`:`lane-capped`}),` `,c.off?`The fleet runs no local agent ${u?`as of its last tick`:`this tick`}: ${E(c.why)}`:`The fleet runs ${c.limit===null?`fewer`:`at most ${c.limit}`} local ${c.limit===1?`agent`:`agents`} ${u?`as of its last tick`:`this tick`}${c.uncapped===null?``:`, not ${c.uncapped}`} — a lane cap is tighter than this runtime: ${E(c.why)}`]}):null,_.overstated?(0,W.jsx)(It,{configured:_.configuredSlots,refusal:g.parallel.refusal}):null]}),(0,W.jsxs)(`div`,{className:G.utilisation,children:[(0,W.jsx)(z,{value:y.busy,max:y.total,label:`Slots in use`,valueText:y.percent===null?`unknown`:`${y.busy} / ${y.total}`,tone:y.saturated?`warning`:void 0}),(0,W.jsx)(`p`,{className:G.capHelp,children:y.label})]}),(0,W.jsxs)(`div`,{className:G.controls,children:[(0,W.jsx)(`button`,{type:`button`,className:`${G.button} ${G.buttonPrimary}`,disabled:S||C,onClick:()=>w(`start`,`Starting the serving runtime requires the dispatch token.`),children:`Start runtime`}),(0,W.jsx)(`button`,{type:`button`,className:G.button,disabled:S||!C,onClick:()=>p(`stop`),children:`Stop runtime`}),(0,W.jsx)(`button`,{type:`button`,className:G.button,disabled:S,onClick:()=>p(`restart`),children:`Restart runtime`})]}),x?null:(0,W.jsx)(`p`,{className:G.actionNote,role:`status`,children:`Managed outside the hub (a login item or terminal owns it) — start and stop it there.`}),m&&!t.error?(0,W.jsx)(`p`,{className:G.actionNote,role:`status`,children:m}):null,t.error&&f===null?(0,W.jsx)(`p`,{className:G.capError,role:`alert`,children:t.error}):null,(0,W.jsx)(d,{open:f===`stop`,onClose:()=>p(null),title:`Stop the serving runtime?`,body:(0,W.jsxs)(W.Fragment,{children:[`Every local agent turn in flight is answered by this process. Stopping it ends those turns — nothing in flight is rolled back, and no local seat can take a new turn until it is running again.`,(0,W.jsx)(`br`,{}),(0,W.jsx)(`br`,{}),`This does not touch the autonomous loop, the kill switch, or your own write tools.`]}),confirmLabel:`Stop runtime`,destructive:!0,busy:t.busy,error:t.error,onConfirm:()=>w(`stop`,`Stopping the serving runtime requires the dispatch token.`)}),(0,W.jsx)(d,{open:f===`restart`,onClose:()=>p(null),title:`Restart the serving runtime?`,body:(0,W.jsxs)(W.Fragment,{children:[`The process is stopped and started again. Turns in flight end with it, and the first turn afterwards pays the model load — on a 27 GB model that is not instant.`,(0,W.jsx)(`br`,{}),(0,W.jsx)(`br`,{}),`Restart is the way to pick up a changed slot count or context size, since both are fixed at launch.`]}),confirmLabel:`Restart runtime`,destructive:!0,busy:t.busy,error:t.error,onConfirm:()=>w(`restart`,`Restarting the serving runtime requires the dispatch token.`)})]})]})}function It({configured:e,refusal:t}){return(0,W.jsxs)(`div`,{className:G.evidence,children:[(0,W.jsx)(`p`,{className:G.evidenceLead,children:e===null?`The configured slot count is not a concurrency on this runtime.`:`${e} slots are configured, but this runtime will not run them in parallel. Measured on this machine, four concurrent requests to the same model:`}),(0,W.jsx)(`div`,{className:G.evidenceScroll,children:(0,W.jsxs)(`table`,{className:G.evidenceTable,children:[(0,W.jsx)(`caption`,{className:G.srOnly,children:`Four concurrent requests to the same Qwen3.8 model file, per-runtime completion times in seconds`}),(0,W.jsx)(`thead`,{children:(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`th`,{scope:`col`,children:`Runtime`}),(0,W.jsx)(`th`,{scope:`col`,children:`Per request (s)`}),(0,W.jsx)(`th`,{scope:`col`,children:`Wall (s)`}),(0,W.jsx)(`th`,{scope:`col`,children:`Finished`})]})}),(0,W.jsx)(`tbody`,{children:Ce.map(e=>(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`th`,{scope:`row`,children:e.runtime}),(0,W.jsx)(`td`,{className:G.evidenceNums,children:e.perRequestSeconds.join(` · `)}),(0,W.jsx)(`td`,{className:G.evidenceNums,children:e.wallSeconds.toFixed(1)}),(0,W.jsx)(`td`,{children:e.verdict})]},e.runtime))})]})}),t?(0,W.jsxs)(`p`,{className:G.capHelp,children:[`The runtime’s own words: `,(0,W.jsx)(`code`,{className:G.evidenceCode,children:t})]}):null]})}function Z({label:e,value:t,mono:n=!1,wide:r=!1}){return(0,W.jsxs)(`div`,{className:`${G.fact} ${r?G.factWide:``}`,children:[(0,W.jsx)(`span`,{className:G.factLabel,children:e}),(0,W.jsx)(`span`,{className:`${G.factValue} ${n?G.factMono:``}`,title:n||r?t:void 0,children:t})]})}var Q={armedTop:`_armedTop_8ujh1_22`,armedState:`_armedState_8ujh1_30`,haltRow:`_haltRow_8ujh1_36`,haltNote:`_haltNote_8ujh1_43`,heavier:`_heavier_8ujh1_53`,facts:`_facts_8ujh1_69`,fact:`_fact_8ujh1_69`,factWide:`_factWide_8ujh1_83`,factLabel:`_factLabel_8ujh1_87`,factValue:`_factValue_8ujh1_95`,factMono:`_factMono_8ujh1_106`,stop:`_stop_8ujh1_112`,stopHead:`_stopHead_8ujh1_121`,stopHeadline:`_stopHeadline_8ujh1_129`,stopRemaining:`_stopRemaining_8ujh1_137`,stopDetail:`_stopDetail_8ujh1_146`,ledger:`_ledger_8ujh1_154`,ledgerTitle:`_ledgerTitle_8ujh1_158`,ledgerCount:`_ledgerCount_8ujh1_171`,ledgerEmpty:`_ledgerEmpty_8ujh1_177`,ledgerList:`_ledgerList_8ujh1_183`,ledgerRow:`_ledgerRow_8ujh1_189`,ledgerRepo:`_ledgerRepo_8ujh1_203`,ledgerChange:`_ledgerChange_8ujh1_212`,ledgerMeta:`_ledgerMeta_8ujh1_222`,form:`_form_8ujh1_232`,field:`_field_8ujh1_239`,fieldLabel:`_fieldLabel_8ujh1_246`,input:`_input_8ujh1_254`,rulePreview:`_rulePreview_8ujh1_277`,armRow:`_armRow_8ujh1_285`,authorisation:`_authorisation_8ujh1_17`,authorisationTitle:`_authorisationTitle_8ujh1_305`,authorisationBody:`_authorisationBody_8ujh1_315`,authorisationCaveat:`_authorisationCaveat_8ujh1_327`},Lt=[{value:`until-paused`,label:`Until I pause it`},{value:`at-time`,label:`At a time`},{value:`after-iterations`,label:`After N iterations`}],Rt=`07:00`,zt=`20`;function Bt({read:e,snapshot:t,guard:n,dispatchEnabled:r,loading:i=!1}){let a=pe(1e3),[o,s]=(0,U.useState)(`until-paused`),[c,u]=(0,U.useState)(Rt),[d,f]=(0,U.useState)(zt),[p,m]=(0,U.useState)(null),[g,_]=(0,U.useState)(null),v=e=>_(e?P(e):null),b=e?.value??null,x=b?.run??null,S=t.pause?.state??`unknown`,C=S!==`running`,w=S===`unknown`,T=t.killSwitch?.state===`active`,E=!r||n.readOnly,D=E||n.busy,O=b?.repos??t.scope?.repos?.length??null,k=b?.mirrors,A=b?.gate??null,M=Re(A),F=je(A),I=A?.branch??`master`,L=Vt(o,c,d),R=Me(x?.stopRule??null,x,a),ee=E?`This server runs without dispatch, so an overnight run cannot be armed from here.`:T?`Release the emergency stop before arming an overnight run.`:``,te=()=>{m(null),n.request(()=>V(`pause`),`Pausing autonomous dispatch requires the dispatch token.`,e=>v(e.note||null))},ne=()=>{m(null),n.request(()=>V(`resume`),`Resuming autonomous dispatch requires the dispatch token.`,e=>v(e.note||null))},re=()=>{if(L===null){m(o===`at-time`?`Enter a stop time as HH:MM before arming.`:`Enter a number of iterations between 1 and 500 before arming.`);return}m(null),n.request(()=>ze(L),`Arming an overnight run requires the dispatch token.`,e=>v(e.note||null))},B=()=>{m(null),n.request(()=>Fe(),`Disarming the overnight run requires the dispatch token.`,e=>v(e.note||null))},ie=(0,W.jsxs)(`div`,{className:Q.authorisation,children:[(0,W.jsx)(`h4`,{className:Q.authorisationTitle,children:`What it does while you sleep`}),(0,W.jsxs)(`p`,{className:Q.authorisationBody,children:[`Local models work through`,` `,(0,W.jsx)(`strong`,{children:O===null?`your enrolled repositories`:`your ${O} enrolled ${O===1?`repository`:`repositories`}`}),` `,`unattended. Each change it writes is put through the gate`,M.length>0?(0,W.jsxs)(W.Fragment,{children:[` `,`— `,(0,W.jsx)(`strong`,{children:Pe(M)}),` must pass`]}):null,`. A change that passes the gate is `,(0,W.jsxs)(`strong`,{children:[`merged to `,I,` without asking you`]}),`. A change that fails is discarded and the repository is left as it was.`]}),typeof k==`number`&&k>0?(0,W.jsxs)(`p`,{className:Q.authorisationBody,"data-testid":`overnight-mirrors`,children:[`Fleet mirrors: `,(0,W.jsx)(`strong`,{children:k}),` — the standing fleet’s own`,` `,k===1?`clone`:`clones`,` of enrolled repositories, counted apart. A mirror is not an additional repository.`]}):k===null&&b?.armed?(0,W.jsx)(`p`,{className:Q.authorisationCaveat,"data-testid":`overnight-mirrors`,children:`Fleet mirrors were not recorded for this run, so how many the standing fleet works in is unknown.`}):null,F.length>0?(0,W.jsxs)(`p`,{className:Q.authorisationCaveat,children:[`Not reported whether `,Pe(F),` `,F.length===1?`runs`:`run`,` in the gate — don't count `,F.length===1?`it`:`them`,` as passing.`]}):null,A?.autoMerge===!1?(0,W.jsxs)(`p`,{className:Q.authorisationCaveat,children:[`This build reports that passing changes are `,(0,W.jsx)(`strong`,{children:`not`}),` merged automatically — they wait for you in Approvals.`]}):null]});return(0,W.jsxs)(`section`,{className:G.panel,"aria-labelledby":`verse-overnight-title`,children:[(0,W.jsxs)(`div`,{className:G.panelHead,children:[(0,W.jsx)(`h3`,{id:`verse-overnight-title`,className:G.panelTitle,children:`Overnight`}),(0,W.jsx)(`p`,{className:G.panelNote,children:`Arm this when you walk away. One stop rule per run; pause halts it at any time.`})]}),i&&e===null?(0,W.jsx)(`p`,{className:G.empty,children:`Reading the overnight lane…`}):e===null||!e.available&&e.value===null?(0,W.jsxs)(`p`,{className:G.empty,children:[(0,W.jsx)(`span`,{className:G.emptyStrong,children:`Not available in this build. `}),e?.reason??`Nothing answered for the overnight lane, so a run cannot be armed or reported here. Nothing is running because of this panel.`]}):b===null?(0,W.jsxs)(`p`,{className:G.empty,children:[(0,W.jsx)(`span`,{className:G.emptyStrong,children:`Unreadable reading. `}),e.reason??`Unrecognized response — update Ashlr.`]}):b.armed?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`div`,{className:Q.armedTop,children:[(0,W.jsx)(`span`,{className:Q.armedState,children:(0,W.jsx)(l,{status:C?`paused`:`running`,tone:C?`warning`:`running`,children:C?`armed — dispatch paused`:`armed — running`})}),(0,W.jsxs)(`div`,{className:Q.haltRow,children:[C?(0,W.jsx)(`button`,{type:`button`,className:`${G.button} ${G.buttonPrimary}`,disabled:D,onClick:ne,children:`Resume now`}):(0,W.jsx)(`button`,{type:`button`,className:`${G.button} ${G.buttonPrimary}`,disabled:D,onClick:te,children:`Pause now`}),(0,W.jsx)(`button`,{type:`button`,className:G.button,disabled:D,onClick:B,children:`Disarm`})]})]}),(0,W.jsx)(`p`,{className:Q.haltNote,children:C?w?`Treated as paused — the pause sentinel is unreadable. Nothing is being dispatched.`:`Autonomous dispatch is paused. The loop parks between iterations; your own write tools are unaffected and the global kill switch is not engaged.`:`Pause halts autonomous dispatch and nothing else — it undoes in one click. Disarm stops the next run from starting but leaves this one going.`}),(0,W.jsxs)(`dl`,{className:Q.facts,children:[(0,W.jsx)(Ut,{label:`Doing now`,value:x?.activity?P(x.activity):`—`,wide:!0}),(0,W.jsx)(Ut,{label:`Repository`,value:x?.repo?N(x.repo):`—`,title:x?.repo??void 0,mono:!0}),(0,W.jsx)(Ut,{label:`Running for`,value:Ie(x?.startedAt,a)})]}),(0,W.jsxs)(`div`,{className:Q.stop,children:[(0,W.jsxs)(`div`,{className:Q.stopHead,children:[(0,W.jsx)(`span`,{className:Q.stopHeadline,children:R.headline}),(0,W.jsx)(`span`,{className:Q.stopRemaining,children:R.remaining})]}),R.percent===null?(0,W.jsx)(`p`,{className:Q.stopDetail,children:`No progress is drawn for an open-ended run: there is no finish line to draw it against.`}):(0,W.jsx)(z,{value:R.percent,max:100,variant:`line`,tone:R.reached?`warning`:`accent`,"aria-label":`Progress toward the stop condition`})]}),(0,W.jsx)(Wt,{title:`Merged`,empty:`Nothing merged yet. Changes that pass the gate land here as they merge.`,rows:(x?.merged??[]).map(e=>({id:e.id,repo:e.repo,title:e.title,meta:Ht(e.commit?e.commit.slice(0,7):null,e.at),metaTitle:e.commit??void 0}))}),(0,W.jsx)(Wt,{title:`Discarded`,empty:`Nothing discarded yet. A change that fails the gate is listed here with the reason.`,rows:(x?.discarded??[]).map(e=>({id:e.id,repo:e.repo,title:e.title,meta:Ht(j(P(e.reason)),e.at)}))}),ie]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`div`,{className:Q.form,children:[(0,W.jsxs)(`div`,{className:Q.field,children:[(0,W.jsx)(`span`,{className:Q.fieldLabel,id:`verse-overnight-stop-label`,children:`Stop rule`}),(0,W.jsx)(y,{options:Lt,value:o,onChange:e=>{s(e),m(null)},"aria-labelledby":`verse-overnight-stop-label`,size:`sm`})]}),o===`at-time`?(0,W.jsxs)(`div`,{className:Q.field,children:[(0,W.jsx)(`label`,{className:Q.fieldLabel,htmlFor:`verse-overnight-time`,children:`Stop at`}),(0,W.jsx)(`input`,{id:`verse-overnight-time`,type:`time`,className:Q.input,value:c,disabled:D,onChange:e=>{u(e.target.value),m(null)}})]}):null,o===`after-iterations`?(0,W.jsxs)(`div`,{className:Q.field,children:[(0,W.jsx)(`label`,{className:Q.fieldLabel,htmlFor:`verse-overnight-iterations`,children:`Iterations`}),(0,W.jsx)(`input`,{id:`verse-overnight-iterations`,type:`number`,inputMode:`numeric`,min:1,max:500,className:Q.input,value:d,disabled:D,onChange:e=>{f(e.target.value),m(null)}})]}):null]}),(0,W.jsx)(`p`,{className:Q.rulePreview,children:L===null?o===`at-time`?`Enter a stop time as HH:MM.`:`Enter a number of iterations between 1 and 500.`:Ae(L,new Date(a))}),ie,(0,W.jsxs)(`div`,{className:Q.armRow,children:[(0,W.jsx)(h,{label:ee,children:(0,W.jsx)(`button`,{type:`button`,className:`${G.button} ${G.buttonPrimary}`,disabled:D||T,onClick:re,children:`Arm overnight run`})}),C?(0,W.jsx)(`button`,{type:`button`,className:G.button,disabled:D,onClick:ne,children:`Resume now`}):null]}),C?(0,W.jsx)(`p`,{className:Q.haltNote,role:`status`,children:w?`Treated as paused — the pause sentinel is unreadable. An armed run would park until that is fixed.`:`Autonomous dispatch is paused, so an armed run would park. Resume before walking away.`}):null,(0,W.jsxs)(`p`,{className:Q.heavier,children:[`Pause is the halt for this run and it undoes in one click.`,` `,(0,W.jsx)(`strong`,{children:`Emergency stop`}),`, in Controls above, is heavier on purpose: it engages the global kill switch, which also stops the agent’s own write tools from editing anything, anywhere, until you release it.`]})]}),p?(0,W.jsx)(`p`,{className:G.capError,role:`alert`,children:p}):null,n.error?(0,W.jsx)(`p`,{className:G.capError,role:`alert`,children:n.error}):null,g&&!n.error?(0,W.jsx)(`p`,{className:G.actionNote,role:`status`,children:g}):null]})}function Vt(e,t,n){if(e===`until-paused`)return{kind:`until-paused`};if(e===`at-time`){let e=Be(t);return e===null?null:{kind:`at-time`,at:e}}let r=Number(n);return!Number.isInteger(r)||r<1||r>500?null:{kind:`after-iterations`,iterations:r}}function Ht(e,t){let n=t?x(t):null;return[e,n===`—`?null:n].filter(e=>!!e).join(` · `)}function Ut({label:e,value:t,title:n,mono:r=!1,wide:i=!1}){return(0,W.jsxs)(`div`,{className:`${Q.fact} ${i?Q.factWide:``}`,children:[(0,W.jsx)(`dt`,{className:Q.factLabel,children:e}),(0,W.jsx)(`dd`,{className:`${Q.factValue} ${r?Q.factMono:``}`,title:n??(r||i?t:void 0),children:t})]})}function Wt({title:e,empty:t,rows:n}){return(0,W.jsxs)(`div`,{className:Q.ledger,children:[(0,W.jsxs)(`h4`,{className:Q.ledgerTitle,children:[e,` `,(0,W.jsx)(`span`,{className:Q.ledgerCount,children:n.length})]}),n.length===0?(0,W.jsx)(`p`,{className:Q.ledgerEmpty,children:t}):(0,W.jsx)(`ul`,{className:Q.ledgerList,children:n.map(e=>(0,W.jsxs)(`li`,{className:Q.ledgerRow,children:[(0,W.jsx)(`span`,{className:Q.ledgerRepo,title:e.repo,children:N(e.repo)}),(0,W.jsx)(`span`,{className:Q.ledgerChange,children:e.title}),e.meta?(0,W.jsx)(`span`,{className:Q.ledgerMeta,title:e.metaTitle,children:e.meta}):null]},e.id))})]})}function Gt(){let e=s(se),t=o(se),n=e.data,r=n?.checks?.filter(e=>e.pass).length??0,i=n?.checks?.length??0;return(0,W.jsxs)(`section`,{className:G.panel,"aria-label":`Safety checks`,children:[(0,W.jsxs)(`div`,{className:G.panelHead,children:[(0,W.jsx)(`h3`,{className:G.panelTitle,children:`Safety`}),(0,W.jsxs)(`div`,{className:G.panelActions,children:[e.status===`refreshing`?(0,W.jsx)(f,{}):null,n?(0,W.jsxs)(`span`,{className:G.panelNote,children:[r,`/`,i,` passing`]}):null,(0,W.jsx)(`button`,{type:`button`,className:G.button,onClick:t,disabled:e.status===`loading`,children:`Re-run checks`})]})]}),e.status===`loading`?(0,W.jsxs)(`div`,{className:G.skeletons,children:[(0,W.jsx)(m,{width:`70%`}),(0,W.jsx)(m,{width:`55%`}),(0,W.jsx)(m,{width:`62%`})]}):e.status===`error`?(0,W.jsx)(`p`,{className:G.error,role:`alert`,children:e.error?.message??`Could not run the safety checks.`}):!n||i===0?(0,W.jsxs)(`p`,{className:G.empty,children:[`The safety report came back with no checks. Press `,(0,W.jsx)(`strong`,{children:`Re-run checks`}),`; if it stays empty, treat it as a failure.`]}):(0,W.jsx)(`div`,{className:G.checkList,children:n.checks.map(e=>(0,W.jsxs)(`div`,{className:G.check,"data-pass":e.pass,children:[(0,W.jsx)(`span`,{className:G.checkMark,"aria-hidden":`true`,children:e.pass?`✓`:`✕`}),(0,W.jsxs)(`span`,{className:G.checkLabel,children:[e.label,(0,W.jsx)(`span`,{className:G.srOnly,children:e.pass?` — passed`:` — failed`})]}),(0,W.jsx)(`span`,{className:G.checkDetail,children:e.detail?P(e.detail):e.id})]},e.id))})]})}function Kt(e){let t=e.trim();return t===``?`Enter the absolute path of the repository to enroll.`:t.startsWith(`/`)?t===`/`?`The filesystem root cannot be enrolled as autonomous scope.`:/(^|\/)\.codex\/artifacts(\/|$)/.test(t)?`Paths under ~/.codex/artifacts cannot be enrolled.`:/(^|\/)\.ashlr(\/|$)/.test(t)?`Paths under ~/.ashlr cannot be enrolled — that is the agent’s own control directory.`:null:`Enrollment takes an absolute path, e.g. /Users/you/code/project.`}function qt({path:e,scope:t}){let n=t?.entries.find(t=>t.path===e)??null;if(n===null)return null;let r=n.priority!==`normal`;return!r&&n.sections.length===0?null:(0,W.jsxs)(`span`,{className:G.repoStanding,title:I,children:[r?(0,W.jsx)(`span`,{className:G.repoPriority,children:F[n.priority]}):null,n.sections.map(e=>(0,W.jsx)(`span`,{className:G.repoSection,children:e.name},e.id)),n.outsideFocus?(0,W.jsx)(`span`,{className:G.repoOutsideFocus,children:`outside the focused section`}):null]})}function Jt({guard:e,dispatchEnabled:t}){let n=s(ie),r=s(g),[i,a]=(0,U.useState)(``),[o,c]=(0,U.useState)(null),[l,u]=(0,U.useState)(null),[m,h]=(0,U.useState)(null),_=!t||e.readOnly;function v(){let e=Kt(i);if(e){c(e);return}c(null),h(i.trim())}function y(){let t=m;t&&e.request(async()=>{await te({action:`enroll`,path:t}),a(``),h(null)},`Enrolling a repository for autonomous work requires the dispatch token.`)}let b=n.data?.repos??[];return(0,W.jsxs)(`section`,{className:G.panel,"aria-label":`Scope`,children:[(0,W.jsxs)(`div`,{className:G.panelHead,children:[(0,W.jsx)(`h3`,{className:G.panelTitle,children:`Scope — enrolled repositories`}),n.status===`refreshing`?(0,W.jsx)(f,{}):null]}),n.data?.degradedReason?(0,W.jsxs)(`p`,{className:G.readOnly,children:[`The enrollment registry read is degraded: `,P(n.data.degradedReason)]}):null,n.status===`loading`?(0,W.jsxs)(`div`,{className:G.skeletons,children:[(0,W.jsx)(p,{}),(0,W.jsx)(p,{})]}):n.status===`error`?(0,W.jsx)(`p`,{className:G.error,role:`alert`,children:n.error?.message??`Could not read the enrollment registry.`}):b.length===0?(0,W.jsxs)(`p`,{className:G.empty,children:[(0,W.jsx)(`span`,{className:G.emptyStrong,children:`No repositories are enrolled, so the daemon will do nothing.`}),` `,`That is the default and it is not a bug — nothing autonomous can mutate a real repository until you enroll it here. Add one below to give the loop somewhere to work.`]}):(0,W.jsx)(`div`,{className:G.repoList,children:b.map(t=>(0,W.jsxs)(`div`,{className:G.repoRow,children:[(0,W.jsx)(`span`,{className:G.repoName,children:t.name}),(0,W.jsx)(`span`,{className:G.repoPath,title:t.path,children:(0,W.jsx)(`bdi`,{children:t.path})}),t.exists?null:(0,W.jsx)(`span`,{className:G.repoMissing,children:`⚠ path missing on disk`}),(0,W.jsx)(qt,{path:t.path,scope:r.data??null}),(0,W.jsx)(`button`,{type:`button`,className:G.button,disabled:_||e.busy,onClick:()=>u(t),children:`Remove`})]},t.path))}),(0,W.jsxs)(`div`,{className:G.addRow,children:[(0,W.jsx)(`input`,{className:G.addInput,type:`text`,value:i,placeholder:`/absolute/path/to/repository`,"aria-label":`Repository path to enroll`,"aria-invalid":o?!0:void 0,disabled:_||e.busy,onChange:e=>{a(e.target.value),o&&c(null)},onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),v())}}),(0,W.jsx)(`button`,{type:`button`,className:G.button,disabled:_||e.busy,onClick:v,children:`Enroll repository`})]}),o?(0,W.jsx)(`p`,{className:G.capError,role:`alert`,children:o}):null,e.error&&!o?(0,W.jsx)(`p`,{className:G.capError,role:`alert`,children:e.error}):null,(0,W.jsx)(d,{open:m!==null,onClose:()=>h(null),title:`Give the autonomous loop write authority here?`,body:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`code`,{children:m}),` becomes autonomous scope. The loop may propose work against it, and the agent’s own MCP-native write tools will act on it — enrolment is the gate those tools check.`,(0,W.jsx)(`br`,{}),(0,W.jsx)(`br`,{}),`Nothing is written by enrolling. You can remove it again from this panel at any time.`]}),confirmLabel:`Enroll repository`,busy:e.busy,error:e.error,onConfirm:y}),(0,W.jsx)(d,{open:l!==null,onClose:()=>u(null),title:`Remove this repository from scope?`,body:(0,W.jsxs)(W.Fragment,{children:[`The autonomous loop will stop proposing work for `,(0,W.jsx)(`code`,{children:l?.path}),`. Existing proposals stay in the inbox; nothing on disk is changed or deleted.`]}),confirmLabel:`Remove from scope`,destructive:!0,busy:e.busy,error:e.error,onConfirm:()=>{let t=l;t&&e.request(async()=>{await te({action:`unenroll`,path:t.path}),u(null)},`Removing a repository from autonomous scope requires the dispatch token.`)}})]})}var $={section:`_section_1vgpf_8`,header:`_header_1vgpf_10`,title:`_title_1vgpf_23`,headerActions:`_headerActions_1vgpf_31`,ghost:`_ghost_1vgpf_32`,scroll:`_scroll_1vgpf_45`,measure:`_measure_1vgpf_46`,banner:`_banner_1vgpf_48`,bannerTitle:`_bannerTitle_1vgpf_59`,failure:`_failure_1vgpf_61`,retry:`_retry_1vgpf_70`,loading:`_loading_1vgpf_82`},Yt=e({FleetAdvanced:()=>Xt});function Xt({embedded:e=!1}){let t=s(re),n=s(ne),r=s(_),i=s(we),a=s(Ee),c=s(Oe),l=s(Le),d=o(re),h=de();ke(),Ne(l.data?.value?.armed??!1);let g=(r.data?.dispatchEnabled??!0)&&!h.readOnly,v=t.data,y=(0,U.useMemo)(()=>(r.data?.seats??[]).map(e=>({id:e.id,engine:e.engine,label:e.label})),[r.data]),b=(0,W.jsxs)(W.Fragment,{children:[g?null:(0,W.jsxs)(`div`,{className:$.banner,role:`status`,children:[(0,W.jsx)(`span`,{className:$.bannerTitle,children:`Read-only session`}),`This server was started without dispatch, so starting, stopping, editing caps, and changing scope are unavailable. Everything below is live and accurate — run `,(0,W.jsx)(`code`,{children:`ashlr verse`}),` to get the controls.`]}),t.status===`loading`?(0,W.jsxs)(`div`,{className:$.loading,children:[(0,W.jsx)(m,{width:`42%`}),(0,W.jsx)(m,{width:`68%`}),(0,W.jsx)(p,{}),(0,W.jsx)(p,{})]}):t.status===`error`||!v?(0,W.jsxs)(`div`,{className:$.failure,role:`alert`,children:[t.error?.message??`Could not read the autonomy control snapshot.`,(0,W.jsx)(`br`,{}),`Loop status unknown, so nothing below is shown.`,(0,W.jsx)(`br`,{}),(0,W.jsx)(`button`,{type:`button`,className:$.retry,onClick:d,children:`Try again`})]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(bt,{snapshot:v}),(0,W.jsx)(xt,{snapshot:v,guard:h,dispatchEnabled:g}),(0,W.jsx)(Bt,{read:l.data??null,snapshot:v,guard:h,dispatchEnabled:g,loading:l.status===`loading`}),(0,W.jsx)(Ft,{read:i.data??null,guard:h,dispatchEnabled:g,loading:i.status===`loading`,fleet:a.data??null}),(0,W.jsx)(Ot,{read:c.data??null,seats:y,guard:h,dispatchEnabled:g,loading:c.status===`loading`}),(0,W.jsx)(wt,{read:a.data??null,runtime:i.data?.value??null,loading:a.status===`loading`}),n.status===`loading`?(0,W.jsxs)(`div`,{className:G.panel,children:[(0,W.jsx)(p,{}),(0,W.jsx)(p,{})]}):n.data?(0,W.jsx)(mt,{caps:n.data,snapshot:v,guard:h,dispatchEnabled:g}):(0,W.jsxs)(`section`,{className:G.panel,"aria-label":`Budget and limits`,children:[(0,W.jsx)(`div`,{className:G.panelHead,children:(0,W.jsx)(`h3`,{className:G.panelTitle,children:`Budget and limits`})}),(0,W.jsx)(`p`,{className:G.error,role:`alert`,children:n.error?.message??`Could not read the configured caps, so none are shown or editable.`})]}),(0,W.jsx)(Jt,{guard:h,dispatchEnabled:g}),(0,W.jsx)(We,{snapshot:v}),(0,W.jsx)(Gt,{}),(0,W.jsx)(Dt,{})]})]}),x=(0,W.jsx)(u,{open:h.tokenOpen,onClose:h.closeToken,reason:h.tokenReason,tokenHelp:`the mutation token ashlr verse printed`});return e?(0,W.jsxs)(`div`,{className:$.loading,"data-embedded":`true`,children:[(0,W.jsxs)(`div`,{className:$.headerActions,children:[t.status===`refreshing`?(0,W.jsx)(f,{}):null,(0,W.jsx)(`button`,{type:`button`,className:$.ghost,onClick:d,children:`Refresh`})]}),b,x]}):(0,W.jsxs)(`section`,{className:$.section,"aria-label":`Autonomy`,children:[(0,W.jsxs)(`header`,{className:$.header,"data-app-region":`drag`,children:[(0,W.jsx)(`h2`,{className:$.title,children:`Autonomy`}),(0,W.jsxs)(`div`,{className:$.headerActions,children:[t.status===`refreshing`?(0,W.jsx)(f,{}):null,(0,W.jsx)(`button`,{type:`button`,className:$.ghost,onClick:d,children:`Refresh`})]})]}),(0,W.jsx)(`div`,{className:$.scroll,children:(0,W.jsx)(`div`,{className:$.measure,children:b})}),x]})}export{Xt as n,Yt as t};
|
|
2
|
+
//# sourceMappingURL=Advanced-fUyq-fpH.js.map
|