@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
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{C as e,M as t,V as n,a as r}from"./global-BJ_kVFpD.js";import{n as i}from"./control-queries-CUNa6TAx.js";import{u as a}from"./surface-data-D_oFOgkh.js";function o(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var s=e=>typeof e==`number`&&Number.isFinite(e),c=e=>e===null||s(e),l=e=>s(e)&&Number.isSafeInteger(e)&&e>=0,u=e=>e===null||l(e),d=e=>e===null||s(e)&&e>=0,f=e=>s(e)&&e>=0&&e<=1;function p(e,t,n=!1){return e===void 0||o(e)&&l(e[t])&&l(e.unknownCalls)&&(!n||e.source===`recorded-estimates`)}function m(e){return o(e)&&typeof e.kind==`string`&&l(e.decisions)&&l(e.jev)&&l(e.fallback)&&l(e.calls)&&l(e.cached)&&c(e.avgConfidence)&&f(e.fallbackRate)&&d(e.estCostUsd)&&c(e.avgLatencyMs)&&Array.isArray(e.topFallbackReasons)}function h(e){return o(e)&&typeof e.enabled==`boolean`&&typeof e.keyed==`boolean`&&typeof e.day==`string`&&l(e.decisionsToday)&&l(e.callsToday)&&u(e.dailyCallBudget)&&d(e.estCostUsdToday)&&f(e.fallbackRateToday)&&c(e.avgConfidenceToday)&&c(e.avgLatencyMsToday)&&(e.inputTokensToday===void 0||u(e.inputTokensToday))&&(e.outputTokensToday===void 0||u(e.outputTokensToday))&&p(e.costCoverage,`pricedCalls`,!0)&&p(e.usageCoverage,`reportedCalls`)&&(e.lastSuccessfulCallAt===void 0||e.lastSuccessfulCallAt===null||typeof e.lastSuccessfulCallAt==`string`&&e.lastSuccessfulCallAt.length<=64&&Number.isFinite(Date.parse(e.lastSuccessfulCallAt)))&&Array.isArray(e.byKind)&&e.byKind.length<=128&&e.byKind.every(m)}function g(e){return!o(e)||typeof e.generatedAt!=`string`||!h(e.status)||!Array.isArray(e.kinds)?null:e}function _(e){return e.enabled?e.keyed?e.dailyCallBudget!==null&&e.callsToday>=e.dailyCallBudget?{word:`Budget spent`,tone:`warning`,detail:`Today's call budget is used up; decisions fall back until tomorrow.`}:{word:`Configured`,tone:`neutral`,detail:`Typed decisions when available; the deterministic rule remains the fallback. Configuration is not a live connection check.`}:{word:`Not set up`,tone:`neutral`,detail:`No TypeSafe key. Every decision uses its deterministic rule. Add TYPESAFE_API_KEY to ~/.ashlr/secrets/typesafe.env (mode 0600) in a terminal.`}:{word:`Off`,tone:`neutral`,detail:`Switched off (${e.disabledBy??`kill switch`}). Every decision uses its deterministic rule.`}}function v(e){return e===null||!Number.isFinite(e)?`—`:`${Math.round(e*100)}%`}function y(e){return e===null||!Number.isFinite(e)?`—`:e.toFixed(2)}function b(e){return e===null||!Number.isFinite(e)||e<0?`unknown`:e===0?`$0`:e<.01?`<$0.01`:`$${e.toFixed(2)}`}function x(e){return e===null||!Number.isFinite(e)?`—`:e<1e3?`${Math.round(e)} ms`:`${(e/1e3).toFixed(1)} s`}function S(e){let t=e.decisionsToday;return t===0?`No decisions yet today.`:`${t} decision${t===1?``:`s`} · ${e.callsToday} call${e.callsToday===1?``:`s`} · ${v(e.fallbackRateToday)} fell back`}function C(e){let t=e,n=[`${e.byKind.reduce((e,t)=>e+t.cached,0)} cached decisions · ${e.byKind.reduce((e,t)=>e+t.fallback,0)} deterministic fallbacks today.`],r=t.lastSuccessfulCallAt;n.push(r===null?`No successful Jev call recorded in available history.`:typeof r==`string`&&Number.isFinite(Date.parse(r))?`Last successful call: ${new Date(r).toLocaleString()}. Historical evidence, not a live connection check.`:`Successful-call history unavailable on this server.`);let i=t.costCoverage;o(i)&&l(i.pricedCalls)&&l(i.unknownCalls)?n.push(`Estimated cost ${b(e.estCostUsdToday)} · ${i.pricedCalls} recorded cost estimates · ${i.unknownCalls} calls with unknown cost.`):n.push(`Estimated cost ${b(e.estCostUsdToday)} · price coverage unavailable on this server.`);let a=t.usageCoverage;if(o(a)&&l(a.reportedCalls)&&l(a.unknownCalls)){let e=t.inputTokensToday,r=t.outputTokensToday;n.push(`Reported input/output tokens: ${l(e)?e.toLocaleString():`unknown`} / ${l(r)?r.toLocaleString():`unknown`} · ${a.reportedCalls} calls with usage · ${a.unknownCalls} calls with unknown usage.`)}return n}var w=`Recorded cost estimates; new calls use published concrete-model or configured operator rates. Historical rates may be unverified. Missing usage or pricing stays unknown.`;function T(e){let t=Date.parse(e);return Number.isFinite(t)?`Snapshot read ${new Date(t).toLocaleString()}.`:`Snapshot reading time unavailable.`}var E=`/api/verse/jev`,D=`${E}/config`,O=`verse-jev`,k=6e4,A=a(O,E,`Jev`,g);async function j(a){if(a!==null&&(!Number.isSafeInteger(a)||a<0))throw Error(`Choose a nonnegative whole number or No preference limit.`);let o=e();if(!o)throw new i;let s=g(await r(D,{dailyCallBudget:a},o));if(e()!==o)throw Error(`Session changed. Review the preference again.`);if(!s?.config||s.config.dailyCallBudget!==a)throw Error(`The server did not confirm this preference. Your choice is kept.`);return t(),n(O),s.config.dailyCallBudget}export{y as a,b as c,T as d,S as f,w as i,C as l,A as n,x as o,j as r,v as s,k as t,_ as u};
|
|
2
|
-
//# sourceMappingURL=jev-queries-CS2A5uWe.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jev-queries-CS2A5uWe.js","names":[],"sources":["../../../../../../src/web-ui/routes/verse/jev/jev-model.ts","../../../../../../src/core/decide/jev-types.ts","../../../../../../src/web-ui/routes/verse/jev/jev-queries.ts"],"sourcesContent":["/**\n * routes/verse/jev/jev-model.ts — pure helpers behind the Jev card\n * (Resources ⌘.) and the Jev panel (Usage). Server: core/decide/jev-api.ts.\n *\n * Narrowing is strict on the fields the views read: an unknown shape renders\n * \"Unrecognized response\" rather than a guessed number. Dollar figures are\n * estimates from recorded usage and pricing; missing coverage stays unknown.\n */\nimport type { JevResponse } from '../../../../core/decide/jev-types.js';\nimport type { JevKindStats, JevStatus } from '../../../../core/decide/types.js';\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nconst num = (v: unknown): v is number => typeof v === 'number' && Number.isFinite(v);\nconst numOrNull = (v: unknown): v is number | null => v === null || num(v);\nconst count = (v: unknown): v is number => num(v) && Number.isSafeInteger(v) && v >= 0;\nconst countOrNull = (v: unknown): v is number | null => v === null || count(v);\nconst costOrNull = (v: unknown): v is number | null => v === null || num(v) && v >= 0;\nconst fraction = (v: unknown): v is number => num(v) && v >= 0 && v <= 1;\nfunction optionalCoverage(v: unknown, first: string, source = false): boolean {\n return v === undefined || isRecord(v) && count(v[first]) && count(v['unknownCalls'])\n && (!source || v['source'] === 'recorded-estimates');\n}\n\nfunction isKindStats(v: unknown): v is JevKindStats {\n return isRecord(v) && typeof v['kind'] === 'string' && count(v['decisions']) && count(v['jev']) && count(v['fallback'])\n && count(v['calls']) && count(v['cached']) && numOrNull(v['avgConfidence']) && fraction(v['fallbackRate']) && costOrNull(v['estCostUsd'])\n && numOrNull(v['avgLatencyMs']) && Array.isArray(v['topFallbackReasons']);\n}\n\nfunction isStatus(v: unknown): v is JevStatus {\n return isRecord(v) && typeof v['enabled'] === 'boolean' && typeof v['keyed'] === 'boolean' && typeof v['day'] === 'string'\n && count(v['decisionsToday']) && count(v['callsToday']) && countOrNull(v['dailyCallBudget']) && costOrNull(v['estCostUsdToday'])\n && fraction(v['fallbackRateToday']) && numOrNull(v['avgConfidenceToday']) && numOrNull(v['avgLatencyMsToday'])\n && (v['inputTokensToday'] === undefined || countOrNull(v['inputTokensToday']))\n && (v['outputTokensToday'] === undefined || countOrNull(v['outputTokensToday']))\n && optionalCoverage(v['costCoverage'], 'pricedCalls', true) && optionalCoverage(v['usageCoverage'], 'reportedCalls')\n && (v['lastSuccessfulCallAt'] === undefined || v['lastSuccessfulCallAt'] === null || typeof v['lastSuccessfulCallAt'] === 'string'\n && v['lastSuccessfulCallAt'].length <= 64 && Number.isFinite(Date.parse(v['lastSuccessfulCallAt'])))\n && Array.isArray(v['byKind']) && v['byKind'].length <= 128 && v['byKind'].every(isKindStats);\n}\n\nexport function narrowJevResponse(raw: unknown): JevResponse | null {\n if (!isRecord(raw) || typeof raw['generatedAt'] !== 'string' || !isStatus(raw['status']) || !Array.isArray(raw['kinds'])) return null;\n return raw as unknown as JevResponse;\n}\n\nexport type JevTone = 'success' | 'warning' | 'neutral';\n\nexport function jevHeadline(status: JevStatus): { word: string; tone: JevTone; detail: string } {\n if (!status.enabled) return { word: 'Off', tone: 'neutral', detail: `Switched off (${status.disabledBy ?? 'kill switch'}). Every decision uses its deterministic rule.` };\n if (!status.keyed) {\n return {\n word: 'Not set up',\n tone: 'neutral',\n detail: 'No TypeSafe key. Every decision uses its deterministic rule. Add TYPESAFE_API_KEY to ~/.ashlr/secrets/typesafe.env (mode 0600) in a terminal.',\n };\n }\n if (status.dailyCallBudget !== null && status.callsToday >= status.dailyCallBudget) return { word: 'Budget spent', tone: 'warning', detail: 'Today\\'s call budget is used up; decisions fall back until tomorrow.' };\n return { word: 'Configured', tone: 'neutral', detail: 'Typed decisions when available; the deterministic rule remains the fallback. Configuration is not a live connection check.' };\n}\n\nexport function formatPercent(fraction: number | null): string {\n if (fraction === null || !Number.isFinite(fraction)) return '—';\n return `${Math.round(fraction * 100)}%`;\n}\n\nexport function formatConfidence(value: number | null): string {\n return value === null || !Number.isFinite(value) ? '—' : value.toFixed(2);\n}\n\nexport function formatUsd(value: number | null): string {\n if (value === null || !Number.isFinite(value) || value < 0) return 'unknown';\n if (value === 0) return '$0';\n if (value < 0.01) return '<$0.01';\n return `$${value.toFixed(2)}`;\n}\n\nexport function formatLatency(ms: number | null): string {\n if (ms === null || !Number.isFinite(ms)) return '—';\n return ms < 1000 ? `${Math.round(ms)} ms` : `${(ms / 1000).toFixed(1)} s`;\n}\n\n/** \"12 decisions · 5 calls · 42% fell back\" */\nexport function jevTodayLine(status: JevStatus): string {\n const d = status.decisionsToday;\n if (d === 0) return 'No decisions yet today.';\n return `${d} decision${d === 1 ? '' : 's'} · ${status.callsToday} call${status.callsToday === 1 ? '' : 's'} · ${formatPercent(status.fallbackRateToday)} fell back`;\n}\n\n/** New evidence is optional on older servers. Do not manufacture successful calls or price coverage. */\nexport function jevEvidenceLines(status: JevStatus): string[] {\n const raw = status as unknown as Record<string, unknown>;\n const lines = [`${status.byKind.reduce((n, k) => n + k.cached, 0)} cached decisions · ${status.byKind.reduce((n, k) => n + k.fallback, 0)} deterministic fallbacks today.`];\n const success = raw['lastSuccessfulCallAt'];\n lines.push(success === null ? 'No successful Jev call recorded in available history.'\n : typeof success === 'string' && Number.isFinite(Date.parse(success)) ? `Last successful call: ${new Date(success).toLocaleString()}. Historical evidence, not a live connection check.`\n : 'Successful-call history unavailable on this server.');\n const coverage = raw['costCoverage'];\n if (isRecord(coverage) && count(coverage['pricedCalls']) && count(coverage['unknownCalls'])) {\n lines.push(`Estimated cost ${formatUsd(status.estCostUsdToday)} · ${coverage['pricedCalls']} recorded cost estimates · ${coverage['unknownCalls']} calls with unknown cost.`);\n } else lines.push(`Estimated cost ${formatUsd(status.estCostUsdToday)} · price coverage unavailable on this server.`);\n const usage = raw['usageCoverage'];\n if (isRecord(usage) && count(usage['reportedCalls']) && count(usage['unknownCalls'])) {\n const input = raw['inputTokensToday'], output = raw['outputTokensToday'];\n lines.push(`Reported input/output tokens: ${count(input) ? input.toLocaleString() : 'unknown'} / ${count(output) ? output.toLocaleString() : 'unknown'} · ${usage['reportedCalls']} calls with usage · ${usage['unknownCalls']} calls with unknown usage.`);\n }\n return lines;\n}\n\nexport const JEV_ESTIMATE_NOTE = 'Recorded cost estimates; new calls use published concrete-model or configured operator rates. Historical rates may be unverified. Missing usage or pricing stays unknown.';\n\nexport function jevSnapshotLine(generatedAt: string): string {\n const time = Date.parse(generatedAt);\n return Number.isFinite(time) ? `Snapshot read ${new Date(time).toLocaleString()}.` : 'Snapshot reading time unavailable.';\n}\n","/**\n * decide/jev-types.ts — the wire shape of GET /api/verse/jev.\n *\n * BROWSER-SAFE: the Resources \"Jev\" card and the Usage panel import this —\n * type-only imports and plain consts, nothing that touches node.\n */\n\nimport type { DecisionKind, JevStatus } from './types.js';\n\nexport const VERSE_JEV_PATH = '/api/verse/jev';\nexport const VERSE_JEV_CONFIG_PATH = `${VERSE_JEV_PATH}/config`;\n\nexport interface JevKindInfo {\n readonly kind: DecisionKind;\n readonly description: string;\n readonly threshold: number;\n readonly safetyAdjacent: boolean;\n readonly labels: readonly string[];\n}\n\nexport interface JevResponse {\n readonly generatedAt: string;\n readonly status: JevStatus;\n readonly kinds: readonly JevKindInfo[];\n /** Capability-gated operator preference; null means no call-count preference. */\n readonly config?: { readonly dailyCallBudget: number | null };\n}\n","/**\n * routes/verse/jev/jev-queries.ts — GET /api/verse/jev (core/decide/jev-api.ts).\n *\n * OPTIONAL: a server without the route answers 404 and the views render\n * nothing. The optional call preference uses the existing mutation gate;\n * this page never takes a provider key or switches Jev on.\n */\nimport { VERSE_JEV_PATH, VERSE_JEV_CONFIG_PATH } from '../../../../core/decide/jev-types.js';\nimport { getMutationToken, touchMutationHold } from '../../../data/auth-store.js';\nimport { apiPost } from '../../../data/client.js';\nimport { invalidate } from '../../../data/cache.js';\nimport { VerseControlLockedError } from '../autonomy/control-queries.js';\nimport { optionalQuery } from '../command/surface-data.js';\nimport { narrowJevResponse } from './jev-model.js';\n\nexport const JEV_KEY = 'verse-jev';\nexport const JEV_POLL_MS = 60_000;\n\nexport const jevQuery = optionalQuery(JEV_KEY, VERSE_JEV_PATH, 'Jev', narrowJevResponse);\n\nexport async function updateJevCallPreference(value: number | null): Promise<number | null> {\n if (value !== null && (!Number.isSafeInteger(value) || value < 0)) throw new Error('Choose a nonnegative whole number or No preference limit.');\n const token = getMutationToken();\n if (!token) throw new VerseControlLockedError();\n const response = narrowJevResponse(await apiPost<unknown>(VERSE_JEV_CONFIG_PATH, { dailyCallBudget: value }, token));\n if (getMutationToken() !== token) throw new Error('Session changed. Review the preference again.');\n if (!response?.config || response.config.dailyCallBudget !== value) throw new Error('The server did not confirm this preference. Your choice is kept.');\n touchMutationHold();\n invalidate(JEV_KEY);\n return response.config.dailyCallBudget;\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{u as e}from"./surface-data-D_oFOgkh.js";var t=6e4,n=60*t,r=24*n,i=7*r;function a(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var o=e=>Array.isArray(e)&&e.every(e=>typeof e==`string`);function s(e){return a(e)&&typeof e.id==`string`&&typeof e.index==`number`&&o(e.merging)&&o(e.proposing)&&a(e.criteria)&&(e.counts===`merges`||e.counts===`would-merge digests`)}function c(e){let t=e?e.ladder:null;return!a(t)||t.v!==1||!Array.isArray(t.stages)||!t.stages.every(s)?null:t}function l(e){return a(e)&&typeof e.proposalId==`string`&&typeof e.repo==`string`&&typeof e.outcome==`string`&&Array.isArray(e.gates)&&typeof e.why==`string`&&typeof e.at==`string`}function u(e){return!a(e)||e.v!==1||!Array.isArray(e.decisions)||!Array.isArray(e.moves)?null:{...e,decisions:e.decisions.filter(l),moves:e.moves.filter(e=>a(e)&&typeof e.toStageId==`string`&&typeof e.at==`string`)}}function d(e){return e===`elite-direct`?`Elite direct`:/^[a-z]/.test(e)?e[0].toUpperCase()+e.slice(1):e}function f(e){let t=e.indexOf(`/`);return t>=0?e.slice(t+1):e}function p(e){return e.map(f).join(`, `)}function m(e,i){let a=Date.parse(e);if(!Number.isFinite(a))return`at an unknown time`;let o=Math.max(0,i-a);return o<t?`just now`:o<n?`${Math.floor(o/t)} m ago`:o<r?`${Math.floor(o/n)} h ago`:`${Math.floor(o/r)} d ago`}function h(e){return Number.isInteger(e)?String(e):e.toFixed(1)}function g(e,t){let n=e.index<t?`done`:e.index===t?`current`:e.index===t+1?`next`:`later`,r=e.merging.length>0?`Merging: ${p(e.merging)}`:`Nothing merges — propose only`,i=e.proposing.length>0?`Proposing: ${p(e.proposing)}`:null,a=`${e.maxRisk} risk · ≤ ${e.maxFiles} files / ${e.maxLines} lines${e.maxMergesPerRepoPerDay>0?` · ≤ ${e.maxMergesPerRepoPerDay} merges/repo/day`:``}`,o=e.criteria,s=[`${o.minMerges} ${o.minMerges===1?e.counts.replace(/s$/,``):e.counts}`,`${o.minHours} h`];o.minPostMergeGreenPct>0&&s.push(`≥ ${o.minPostMergeGreenPct}% green`);let c=`Leaves after ${s.join(`, `)}`,l=d(e.id),u=n===`current`?` (current)`:n===`done`?` (passed)`:``;return{id:e.id,label:l,index:e.index,state:n,merging:e.merging,proposing:e.proposing,mergeLine:r,proposeLine:i,capLine:a,exitLine:c,aria:[`Stage ${e.index+1}, ${l}${u}`,r,i,a,c].filter(Boolean).join(`. `)+`.`}}var _=/^\d+ of \d+ (merges|would-merge digests)$|^\d+ h of \d+ h$/;function v(e){if(!e||e.grant.state!==`active`)return null;let t=c(e),n=e.rollout;if(!t||!n||t.stages.length===0)return null;let r=t.stages[n.stageIndex];if(!r||r.id!==n.stageId)return null;let i=n.criteria,a=[{key:`evidence`,label:r.counts===`merges`?`Merges`:`Would-merge digests`,value:n.merges,max:i.minMerges,text:`${n.merges} / ${i.minMerges}`,met:n.merges>=i.minMerges},{key:`hours`,label:`Hours in stage`,value:Math.min(n.hoursInStage,i.minHours),max:i.minHours,text:`${h(Math.floor(n.hoursInStage*10)/10)} h / ${i.minHours} h`,met:n.hoursInStage>=i.minHours}],o=t.stages[n.stageIndex+1]??null,s=o?o.merging.filter(e=>!r.merging.includes(e)):[],l=o?s.length>0?`${d(o.id)} lets ${p(s)} merge`:`${d(o.id)}: ${o.maxRisk} risk, ≤ ${o.maxFiles} files / ${o.maxLines} lines`:null;return{stageId:n.stageId,stageName:d(n.stageId),position:`${n.stageIndex+1} of ${n.stageCount}`,rungs:t.stages.map(e=>g(e,n.stageIndex)),bars:a,nextStageName:n.nextStageId?d(n.nextStageId):null,met:n.met,otherUnmet:n.unmet.filter(e=>!_.test(e)),nextLine:l}}function y(e,a){if(!e||e.grant.state!==`active`||!e.grant.expiresAt)return null;let o=Date.parse(e.grant.expiresAt);if(!Number.isFinite(o))return null;let s=o-a,c=Math.floor(s/r),l=Math.floor((s-c*r)/n);return{text:s<=0?`expired`:s>=3*r?`${c} d left`:s>=r?`${c} d ${l} h left`:s>=n?`${Math.floor(s/n)} h left`:`${Math.max(1,Math.floor(s/t))} m left`,tone:s<r?`danger`:s<6048e5?`warning`:`success`,warn:s<i,until:new Date(o).toLocaleString(`en-US`,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`})}}function b(e){if(e.move===`regressed`){let t=e.breach?`: ${e.breach.replace(/[.]$/,``)}`:``;return{text:`Dropped back to ${d(e.toStageId)}${e.fromStageId?` from ${d(e.fromStageId)}`:``}${t}.`,tone:`danger`,at:e.at}}return{text:`Advanced to ${d(e.toStageId)}${e.fromStageId?` from ${d(e.fromStageId)}`:``}.`,tone:`success`,at:e.at}}var x={"would-merge":`Would merge`,merged:`Merged`,refused:`Refused`,"owner-lane":`Owner lane`,waiting:`Waiting`,"in-progress":`In the gates`},S={"would-merge":`success`,merged:`success`,refused:`danger`,"owner-lane":`warning`,waiting:`neutral`,"in-progress":`neutral`};function C(e){let t=e.prNumber===null?f(e.repo):`${f(e.repo)} #${e.prNumber}`,n=S[e.outcome];switch(e.outcome){case`would-merge`:return{text:`Would merge ${t} — every gate passed.`,tone:n,at:e.at};case`merged`:return e.eliteModel?{text:`Landed directly · elite model ${e.eliteModel} · tests green — ${t}.`,tone:n,at:e.at}:{text:`Merged ${t}.`,tone:n,at:e.at};default:return{text:`${t}: ${e.why}`,tone:n,at:e.at}}}function w(e,t){let n=[];e?.lastMove&&n.push(b(e.lastMove)),t?.moves[0]&&n.push(b(t.moves[0])),t?.decisions[0]&&n.push(C(t.decisions[0]));let r=n.filter(e=>e.at!==null&&Number.isFinite(Date.parse(e.at)));return r.sort((e,t)=>Date.parse(t.at)-Date.parse(e.at)),r[0]?r[0]:t?{text:`Nothing has reached the merge gates yet under this grant.`,tone:`neutral`,at:null}:t===null?{text:`The latest decision could not be read.`,tone:`unknown`,at:null}:{text:`Reading the latest decision…`,tone:`unknown`,at:null}}function T(e,t=3){return(e?.moves??[]).filter(e=>e.move===`regressed`).slice(0,t)}function E(e){if(e.files===null&&e.linesAdded===null)return null;let t=[];return(e.linesAdded!==null||e.linesDeleted!==null)&&t.push(`+${e.linesAdded??0} −${e.linesDeleted??0}`),e.files!==null&&t.push(`${e.files} file${e.files===1?``:`s`}`),e.risk&&t.push(`${e.risk} risk`),t.join(` · `)}function D(e){return e.prNumber===null||!/^[A-Za-z0-9-]+\/[A-Za-z0-9._-]+$/.test(e.repo)?null:`https://github.com/${e.repo}/pull/${e.prNumber}`}function O(e,t){let n=(t??[]).find(t=>t.intake?.proposalId===e.proposalId&&t.repo.toLowerCase()===e.repo.toLowerCase());return n?{id:n.id,title:n.title}:null}function k(e){return e===`pass`?`success`:e===`refuse`?`danger`:e===`owner-lane`?`warning`:`neutral`}var A=`/api/verse/authority/ledger?view=decisions&limit=40`,j=`verse-authority-decisions`,M=3e4,N=e(j,A,`Merge decisions`,u);export{m as a,y as c,c as d,D as f,d as g,E as h,x as i,v as l,f as m,N as n,O as o,T as p,S as r,k as s,M as t,w as u};
|
|
2
|
-
//# sourceMappingURL=ladder-queries-CBoG3heV.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ladder-queries-CBoG3heV.js","names":[],"sources":["../../../../../../src/web-ui/routes/verse/command/ladder-model.ts","../../../../../../src/web-ui/routes/verse/command/ladder-queries.ts"],"sourcesContent":["/**\n * routes/verse/command/ladder-model.ts — the pure decisions behind the\n * active fleet's rollout: Command's Autonomy status and Fleet's Shadow\n * decisions (3.14).\n *\n * Sources (both additive on the existing authority routes,\n * core/verse/autonomy-ladder.ts):\n * GET /api/verse/authority `ladder` + `rollout`\n * GET /api/verse/authority/ledger?view=decisions ShadowDecisionsV1\n *\n * Every number here is the SERVER's (rollout.ts evaluates the criteria); the\n * page only draws them. A value the server did not send is unknown, never 0.\n * Framework-free; tested directly.\n */\nimport type { AuthorityStatusV1 } from '../../../../core/authority/types.js';\nimport type { CloudTaskV1 } from '../../../../core/cloud/types.js';\nimport type {\n AutonomyLadderMoveV1,\n AutonomyLadderStageV1,\n AutonomyLadderV1,\n ShadowDecisionOutcome,\n ShadowDecisionV1,\n ShadowDecisionsV1,\n} from '../../../../core/verse/autonomy-ladder.js';\nimport type { ChipTone } from './authority-model.js';\n\nconst MINUTE = 60_000;\nconst HOUR = 60 * MINUTE;\nconst DAY = 24 * HOUR;\n\n/** Re-approve is offered once the grant has less than this left (the chip warns at 3 days; this card earlier). */\nexport const GRANT_WARN_MS = 7 * DAY;\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nconst strings = (v: unknown): v is string[] => Array.isArray(v) && v.every((s) => typeof s === 'string');\n\nfunction isStage(v: unknown): v is AutonomyLadderStageV1 {\n return isRecord(v) && typeof v['id'] === 'string' && typeof v['index'] === 'number' && strings(v['merging']) && strings(v['proposing'])\n && isRecord(v['criteria']) && (v['counts'] === 'merges' || v['counts'] === 'would-merge digests');\n}\n\n/** The status's `ladder`, when this server sends one this client can read. */\nexport function narrowLadder(status: AuthorityStatusV1 | null): AutonomyLadderV1 | null {\n const raw = status ? (status as AuthorityStatusV1 & { ladder?: unknown }).ladder : null;\n if (!isRecord(raw) || raw['v'] !== 1 || !Array.isArray(raw['stages']) || !raw['stages'].every(isStage)) return null;\n return raw as unknown as AutonomyLadderV1;\n}\n\nfunction isDecision(v: unknown): v is ShadowDecisionV1 {\n return isRecord(v) && typeof v['proposalId'] === 'string' && typeof v['repo'] === 'string' && typeof v['outcome'] === 'string'\n && Array.isArray(v['gates']) && typeof v['why'] === 'string' && typeof v['at'] === 'string';\n}\n\n/** GET …/ledger?view=decisions, narrowed (a row this client cannot read is dropped, never guessed). */\nexport function narrowDecisions(raw: unknown): ShadowDecisionsV1 | null {\n if (!isRecord(raw) || raw['v'] !== 1 || !Array.isArray(raw['decisions']) || !Array.isArray(raw['moves'])) return null;\n return {\n ...(raw as unknown as ShadowDecisionsV1),\n decisions: raw['decisions'].filter(isDecision),\n moves: (raw['moves'] as unknown[]).filter((m): m is AutonomyLadderMoveV1 => isRecord(m) && typeof m['toStageId'] === 'string' && typeof m['at'] === 'string'),\n };\n}\n\n// ---------------------------------------------------------------------------\n// Words\n// ---------------------------------------------------------------------------\n\n/** \"shadow\" → \"Shadow\"; \"2a\" stays \"2a\". */\nexport function stageLabel(id: string): string {\n // 3.15: the elite self-land rung reads as words, not an id.\n if (id === 'elite-direct') return 'Elite direct';\n return /^[a-z]/.test(id) ? id[0]!.toUpperCase() + id.slice(1) : id;\n}\n\n/** \"ashlrai/ashlrcode\" → \"ashlrcode\" (the owner is the same everywhere in a fleet). */\nexport function repoShort(repo: string): string {\n const i = repo.indexOf('/');\n return i >= 0 ? repo.slice(i + 1) : repo;\n}\n\nfunction list(repos: readonly string[]): string {\n return repos.map(repoShort).join(', ');\n}\n\n/** \"just now\", \"12 m ago\", \"3 h ago\", \"2 d ago\" — `now` injected so it tests without a clock. */\nexport function ago(iso: string, now: number): string {\n const t = Date.parse(iso);\n if (!Number.isFinite(t)) return 'at an unknown time';\n const ms = Math.max(0, now - t);\n if (ms < MINUTE) return 'just now';\n if (ms < HOUR) return `${Math.floor(ms / MINUTE)} m ago`;\n if (ms < DAY) return `${Math.floor(ms / HOUR)} h ago`;\n return `${Math.floor(ms / DAY)} d ago`;\n}\n\n/** Hours as the rollout reports them (one decimal), without a trailing \".0\". */\nfunction hours(n: number): string {\n return Number.isInteger(n) ? String(n) : n.toFixed(1);\n}\n\n// ---------------------------------------------------------------------------\n// The ladder\n// ---------------------------------------------------------------------------\n\nexport type RungState = 'done' | 'current' | 'next' | 'later';\n\nexport interface RungView {\n id: string;\n label: string;\n index: number;\n state: RungState;\n merging: string[];\n proposing: string[];\n /** \"Merging: ashlrcode, fleet-canary\" / \"Nothing merges — propose only\". */\n mergeLine: string;\n /** \"Proposing: binshield\"; null when every repo at the stage merges. */\n proposeLine: string | null;\n /** \"low risk · ≤ 4 files / 150 lines · ≤ 6 merges/repo/day\". */\n capLine: string;\n /** \"Leaves after 5 would-merge digests and 12 h\". */\n exitLine: string;\n /** The accessible name: everything the hover card says, in one sentence. */\n aria: string;\n}\n\nexport interface ProgressBar {\n key: 'evidence' | 'hours';\n label: string;\n value: number;\n max: number;\n /** \"2 / 5\" or \"3.5 h / 12 h\". */\n text: string;\n met: boolean;\n}\n\nexport interface LadderView {\n stageId: string;\n /** \"Shadow\". */\n stageName: string;\n /** \"1 of 8\". */\n position: string;\n rungs: RungView[];\n /** The two criteria every stage has; the rest (green %, watches) are in `otherUnmet`. */\n bars: ProgressBar[];\n nextStageName: string | null;\n /** Every criterion met: the daemon advances on its next tick. */\n met: boolean;\n /** Unmet criteria other than the two bars (\"1 post-merge watch still running\"). */\n otherUnmet: string[];\n /** One line on what the NEXT stage changes (\"2a lets ashlrcode, fleet-canary merge\"). */\n nextLine: string | null;\n}\n\nfunction rung(stage: AutonomyLadderStageV1, current: number): RungView {\n const state: RungState = stage.index < current ? 'done' : stage.index === current ? 'current' : stage.index === current + 1 ? 'next' : 'later';\n const mergeLine = stage.merging.length > 0 ? `Merging: ${list(stage.merging)}` : 'Nothing merges — propose only';\n const proposeLine = stage.proposing.length > 0 ? `Proposing: ${list(stage.proposing)}` : null;\n const capLine = `${stage.maxRisk} risk · ≤ ${stage.maxFiles} files / ${stage.maxLines} lines${stage.maxMergesPerRepoPerDay > 0 ? ` · ≤ ${stage.maxMergesPerRepoPerDay} merges/repo/day` : ''}`;\n const c = stage.criteria;\n const exit = [`${c.minMerges} ${c.minMerges === 1 ? stage.counts.replace(/s$/, '') : stage.counts}`, `${c.minHours} h`];\n if (c.minPostMergeGreenPct > 0) exit.push(`≥ ${c.minPostMergeGreenPct}% green`);\n const exitLine = `Leaves after ${exit.join(', ')}`;\n const label = stageLabel(stage.id);\n const where = state === 'current' ? ' (current)' : state === 'done' ? ' (passed)' : '';\n return {\n id: stage.id,\n label,\n index: stage.index,\n state,\n merging: stage.merging,\n proposing: stage.proposing,\n mergeLine,\n proposeLine,\n capLine,\n exitLine,\n aria: [`Stage ${stage.index + 1}, ${label}${where}`, mergeLine, proposeLine, capLine, exitLine].filter(Boolean).join('. ') + '.',\n };\n}\n\n/** Criteria the bars already show (rollout.ts words them \"3 of 5 …\" and \"6 h of 12 h\"). */\nconst BAR_UNMET = /^\\d+ of \\d+ (merges|would-merge digests)$|^\\d+ h of \\d+ h$/;\n\n/**\n * The ladder as Command draws it; null unless a grant is ACTIVE and the\n * server sent both its ladder and its rollout position (anything else is the\n * off-state's job, never a half-drawn ladder).\n */\nexport function ladderView(status: AuthorityStatusV1 | null): LadderView | null {\n if (!status || status.grant.state !== 'active') return null;\n const ladder = narrowLadder(status);\n const rollout = status.rollout;\n if (!ladder || !rollout || ladder.stages.length === 0) return null;\n const current = ladder.stages[rollout.stageIndex];\n if (!current || current.id !== rollout.stageId) return null;\n const c = rollout.criteria;\n const bars: ProgressBar[] = [\n {\n key: 'evidence',\n label: current.counts === 'merges' ? 'Merges' : 'Would-merge digests',\n value: rollout.merges,\n max: c.minMerges,\n text: `${rollout.merges} / ${c.minMerges}`,\n met: rollout.merges >= c.minMerges,\n },\n {\n key: 'hours',\n label: 'Hours in stage',\n value: Math.min(rollout.hoursInStage, c.minHours),\n max: c.minHours,\n text: `${hours(Math.floor(rollout.hoursInStage * 10) / 10)} h / ${c.minHours} h`,\n met: rollout.hoursInStage >= c.minHours,\n },\n ];\n const next = ladder.stages[rollout.stageIndex + 1] ?? null;\n const newlyMerging = next ? next.merging.filter((r) => !current.merging.includes(r)) : [];\n const nextLine = next\n ? newlyMerging.length > 0\n ? `${stageLabel(next.id)} lets ${list(newlyMerging)} merge`\n : `${stageLabel(next.id)}: ${next.maxRisk} risk, ≤ ${next.maxFiles} files / ${next.maxLines} lines`\n : null;\n return {\n stageId: rollout.stageId,\n stageName: stageLabel(rollout.stageId),\n position: `${rollout.stageIndex + 1} of ${rollout.stageCount}`,\n rungs: ladder.stages.map((s) => rung(s, rollout.stageIndex)),\n bars,\n nextStageName: rollout.nextStageId ? stageLabel(rollout.nextStageId) : null,\n met: rollout.met,\n otherUnmet: rollout.unmet.filter((u) => !BAR_UNMET.test(u)),\n nextLine,\n };\n}\n\n// ---------------------------------------------------------------------------\n// Grant expiry\n// ---------------------------------------------------------------------------\n\nexport interface GrantExpiry {\n /** \"23 d left\" / \"4 d 6 h left\" / \"5 h left\". */\n text: string;\n tone: ChipTone;\n /** Under GRANT_WARN_MS: the card offers Re-approve. */\n warn: boolean;\n /** Absolute time, for the tooltip. */\n until: string;\n}\n\nexport function grantExpiry(status: AuthorityStatusV1 | null, now: number): GrantExpiry | null {\n if (!status || status.grant.state !== 'active' || !status.grant.expiresAt) return null;\n const at = Date.parse(status.grant.expiresAt);\n if (!Number.isFinite(at)) return null;\n const left = at - now;\n const d = Math.floor(left / DAY);\n const h = Math.floor((left - d * DAY) / HOUR);\n const text = left <= 0\n ? 'expired'\n : left >= 3 * DAY\n ? `${d} d left`\n : left >= DAY\n ? `${d} d ${h} h left`\n : left >= HOUR\n ? `${Math.floor(left / HOUR)} h left`\n : `${Math.max(1, Math.floor(left / MINUTE))} m left`;\n const tone: ChipTone = left < DAY ? 'danger' : left < GRANT_WARN_MS ? 'warning' : 'success';\n return {\n text,\n tone,\n warn: left < GRANT_WARN_MS,\n until: new Date(at).toLocaleString('en-US', { month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit' }),\n };\n}\n\n// ---------------------------------------------------------------------------\n// What happened last\n// ---------------------------------------------------------------------------\n\nexport interface LastEvent {\n text: string;\n tone: ChipTone;\n at: string | null;\n}\n\nfunction moveText(m: AutonomyLadderMoveV1): LastEvent {\n if (m.move === 'regressed') {\n const why = m.breach ? `: ${m.breach.replace(/[.]$/, '')}` : '';\n return { text: `Dropped back to ${stageLabel(m.toStageId)}${m.fromStageId ? ` from ${stageLabel(m.fromStageId)}` : ''}${why}.`, tone: 'danger', at: m.at };\n }\n return { text: `Advanced to ${stageLabel(m.toStageId)}${m.fromStageId ? ` from ${stageLabel(m.fromStageId)}` : ''}.`, tone: 'success', at: m.at };\n}\n\nexport const OUTCOME_WORD: Readonly<Record<ShadowDecisionOutcome, string>> = {\n 'would-merge': 'Would merge',\n merged: 'Merged',\n refused: 'Refused',\n 'owner-lane': 'Owner lane',\n waiting: 'Waiting',\n 'in-progress': 'In the gates',\n};\n\nexport const OUTCOME_TONE: Readonly<Record<ShadowDecisionOutcome, ChipTone>> = {\n 'would-merge': 'success',\n merged: 'success',\n refused: 'danger',\n 'owner-lane': 'warning',\n waiting: 'neutral',\n 'in-progress': 'neutral',\n};\n\nfunction decisionText(d: ShadowDecisionV1): LastEvent {\n const what = d.prNumber !== null ? `${repoShort(d.repo)} #${d.prNumber}` : repoShort(d.repo);\n const tone = OUTCOME_TONE[d.outcome];\n switch (d.outcome) {\n case 'would-merge':\n return { text: `Would merge ${what} — every gate passed.`, tone, at: d.at };\n case 'merged':\n // 3.15 elite self-land: tests, not a judge, carried it.\n return d.eliteModel\n ? { text: `Landed directly · elite model ${d.eliteModel} · tests green — ${what}.`, tone, at: d.at }\n : { text: `Merged ${what}.`, tone, at: d.at };\n default:\n return { text: `${what}: ${d.why}`, tone, at: d.at };\n }\n}\n\n/**\n * The one line \"what happened last\": the newest of the ladder's last move\n * (from the status — always there when a move happened) and the decisions\n * view's newest decision / move. `decisions`: undefined while the first read\n * is in flight, null when it answered without a readable view.\n */\nexport function lastEvent(ladder: AutonomyLadderV1 | null, decisions: ShadowDecisionsV1 | null | undefined): LastEvent {\n const candidates: LastEvent[] = [];\n if (ladder?.lastMove) candidates.push(moveText(ladder.lastMove));\n if (decisions?.moves[0]) candidates.push(moveText(decisions.moves[0]));\n if (decisions?.decisions[0]) candidates.push(decisionText(decisions.decisions[0]));\n const dated = candidates.filter((c) => c.at !== null && Number.isFinite(Date.parse(c.at)));\n dated.sort((a, b) => Date.parse(b.at!) - Date.parse(a.at!));\n if (dated[0]) return dated[0];\n if (decisions) return { text: 'Nothing has reached the merge gates yet under this grant.', tone: 'neutral', at: null };\n if (decisions === null) return { text: 'The latest decision could not be read.', tone: 'unknown', at: null };\n return { text: 'Reading the latest decision…', tone: 'unknown', at: null };\n}\n\n// ---------------------------------------------------------------------------\n// Fleet: the decisions list\n// ---------------------------------------------------------------------------\n\n/** Regressions shown prominently above the list: the newest few, newest first. */\nexport function recentRegressions(decisions: ShadowDecisionsV1 | null, limit = 3): AutonomyLadderMoveV1[] {\n return (decisions?.moves ?? []).filter((m) => m.move === 'regressed').slice(0, limit);\n}\n\n/** \"+30 −4 · 2 files · low\" for a would-merge digest; null without one. */\nexport function sizeLine(d: ShadowDecisionV1): string | null {\n if (d.files === null && d.linesAdded === null) return null;\n const parts: string[] = [];\n if (d.linesAdded !== null || d.linesDeleted !== null) parts.push(`+${d.linesAdded ?? 0} −${d.linesDeleted ?? 0}`);\n if (d.files !== null) parts.push(`${d.files} file${d.files === 1 ? '' : 's'}`);\n if (d.risk) parts.push(`${d.risk} risk`);\n return parts.join(' · ');\n}\n\n/** GitHub URL of the fleet PR, when the repo is an owner/name slug and a PR exists. */\nexport function prUrl(d: Pick<ShadowDecisionV1, 'repo' | 'prNumber'>): string | null {\n if (d.prNumber === null || !/^[A-Za-z0-9-]+\\/[A-Za-z0-9._-]+$/.test(d.repo)) return null;\n return `https://github.com/${d.repo}/pull/${d.prNumber}`;\n}\n\n/**\n * The cloud task whose intake filed this proposal (3.13 cloud intake), so the\n * row can open that task's evidence timeline. Null when no task names it —\n * a proposal the fleet produced itself has no cloud timeline.\n */\nexport function cloudTaskFor(\n d: Pick<ShadowDecisionV1, 'proposalId' | 'repo'>,\n tasks: readonly Pick<CloudTaskV1, 'id' | 'title' | 'repo' | 'intake'>[] | null | undefined,\n): { id: string; title: string } | null {\n const hit = (tasks ?? []).find((t) => t.intake?.proposalId === d.proposalId && t.repo.toLowerCase() === d.repo.toLowerCase());\n return hit ? { id: hit.id, title: hit.title } : null;\n}\n\n/** Tone of a gate verdict chip. */\nexport function gateTone(verdict: string): ChipTone {\n if (verdict === 'pass') return 'success';\n if (verdict === 'refuse') return 'danger';\n if (verdict === 'owner-lane') return 'warning';\n return 'neutral';\n}\n","/**\n * routes/verse/command/ladder-queries.ts — the shadow-decisions read (3.14).\n *\n * GET /api/verse/authority/ledger?view=decisions&limit=40 ShadowDecisionsV1\n *\n * Optional like every surface read (surface-data.ts): a server without the\n * view answers 400/404, which is \"no decisions in this build\", one card's\n * designed state. The server caches the fold by ledger head, so Command's and\n * Fleet's polls (one shared cache key) cost a read only when the fleet wrote.\n *\n * LAZY ONLY: imported by AutonomyStatus and ShadowDecisions, both behind\n * React.lazy — never on the chat first-paint path.\n */\nimport { optionalQuery } from './surface-data.js';\nimport { narrowDecisions } from './ladder-model.js';\n\nexport const AUTHORITY_DECISIONS_PATH = '/api/verse/authority/ledger?view=decisions&limit=40';\n\nexport const DECISIONS_KEY = 'verse-authority-decisions';\n\n/** Decisions change once per fleet tick at most; half a minute keeps both surfaces current. */\nexport const DECISIONS_POLL_MS = 30_000;\n\nexport const decisionsQuery = optionalQuery(DECISIONS_KEY, AUTHORITY_DECISIONS_PATH, 'Merge decisions', narrowDecisions);\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-hePW80VL.js";import{R as t}from"./VerseConsoleApp-Cj6yPJo3.js";var n=e({REQUEST_TTL_MS:()=>r,getLeaderFocus:()=>l,isLeaderFocusLive:()=>u,requestLeaderFocus:()=>c,subscribeLeaderFocus:()=>f,takeLeaderFocus:()=>d}),r=2e4,i=null,a=0,o=new Set;function s(){for(let e of[...o])e()}function c(e){a+=1,i={...e,seq:a,at:Date.now()},t(`mind`),s()}function l(){return i}function u(e,t=Date.now()){return t-e.at<=r}function d(e){i?.seq===e&&(i=null,s())}function f(e){return o.add(e),()=>o.delete(e)}export{f as a,c as i,u as n,d as o,n as r,l as t};
|
|
2
|
-
//# sourceMappingURL=leader-focus-DDQlv0TB.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"leader-focus-DDQlv0TB.js","names":[],"sources":["../../../../../../src/web-ui/routes/verse/leader/leader-focus.ts"],"sourcesContent":["/**\n * routes/verse/leader/leader-focus.ts — \"take me to the Leader, ready to\n * type\": the one hand-off from anywhere (⌘K, Command's Leader card, a\n * Needs-you question) to Mind's conversation panel.\n *\n * requestLeaderFocus({ kind: 'composer' }) Mind, composer focused\n * requestLeaderFocus({ kind: 'directive' }) Mind, \"+ Add directive\" open\n * requestLeaderFocus({ kind: 'question', … }) Mind, that question's answer box open\n *\n * WHY A STORE, NOT A PARKED COMMAND: Mind and its panel are two lazy chunks;\n * a parked bus command expires in 4 s, a request here waits (up to\n * REQUEST_TTL_MS) until the panel mounts and takes it. Taking it clears it,\n * so a later visit to Mind never re-focuses on a stale ask.\n *\n * Framework-free, tiny: the palette handler, the drawer and Command import it.\n */\nimport { setVerseSection } from '../verse-ui-store.js';\n\nexport type LeaderFocusTarget =\n | { kind: 'composer' }\n | { kind: 'directive' }\n | {\n kind: 'question';\n /** The thread's questionId, `<memoId>:<index>`. */\n questionId: string | null;\n /** The question's words (a fallback when the thread has no question message for it). */\n text: string | null;\n };\n\nexport type LeaderFocusRequest = LeaderFocusTarget & { seq: number; at: number };\n\nexport const REQUEST_TTL_MS = 20_000;\n\nlet current: LeaderFocusRequest | null = null;\nlet seq = 0;\nconst listeners = new Set<() => void>();\n\nfunction emit(): void {\n for (const l of [...listeners]) l();\n}\n\n/** Go to Mind and ask its Leader panel to focus `target`. */\nexport function requestLeaderFocus(target: LeaderFocusTarget): void {\n seq += 1;\n current = { ...target, seq, at: Date.now() };\n setVerseSection('mind');\n emit();\n}\n\n/**\n * The request as stored (useSyncExternalStore's snapshot: it changes only\n * when the store emits). Whether it is still live is `isLeaderFocusLive`.\n */\nexport function getLeaderFocus(): LeaderFocusRequest | null {\n return current;\n}\n\nexport function isLeaderFocusLive(request: LeaderFocusRequest, now: number = Date.now()): boolean {\n return now - request.at <= REQUEST_TTL_MS;\n}\n\n/** Clear the request `seq` (and only that one — a newer ask survives). */\nexport function takeLeaderFocus(requestSeq: number): void {\n if (current?.seq !== requestSeq) return;\n current = null;\n emit();\n}\n\nexport function subscribeLeaderFocus(listener: () => void): () => void {\n listeners.add(listener);\n return () => listeners.delete(listener);\n}\n\n/** Test hygiene. */\nexport function resetLeaderFocus(): void {\n current = null;\n emit();\n}\n"],"mappings":"4PA+Ba,EAAiB,IAE1B,EAAqC,KACrC,EAAM,EACJ,EAAY,IAAI,IAEtB,SAAS,GAAa,CACpB,IAAK,IAAM,IAAK,CAAC,GAAG,CAAS,EAAG,EAAE,CACpC,CAGA,SAAgB,EAAmB,EAAiC,CAClE,GAAO,EACP,EAAU,CAAE,GAAG,EAAQ,MAAK,GAAI,KAAK,IAAI,CAAE,EAC3C,EAAgB,MAAM,EACtB,EAAK,CACP,CAMA,SAAgB,GAA4C,CAC1D,OAAO,CACT,CAEA,SAAgB,EAAkB,EAA6B,EAAc,KAAK,IAAI,EAAY,CAChG,OAAO,EAAM,EAAQ,IAAM,CAC7B,CAGA,SAAgB,EAAgB,EAA0B,CACpD,GAAS,MAAQ,IACrB,EAAU,KACV,EAAK,EACP,CAEA,SAAgB,EAAqB,EAAkC,CAErE,OADA,EAAU,IAAI,CAAQ,MACT,EAAU,OAAO,CAAQ,CACxC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,s as n}from"./index-DOAOxiKl.js";import{C as r,M as i,a,l as o}from"./global-BJ_kVFpD.js";import{o as s,v as c}from"./colors-DvK0wMHH.js";import{L as l,R as u,g as d,p as f}from"./VerseConsoleApp-Cj6yPJo3.js";import{t as p}from"./Segmented-Dokzywy8.js";import{i as m}from"./budget-queries-DCZevH2S.js";import{o as h}from"./budget-model-BZyGzAr4.js";import{t as g}from"./Button-DJY_Pu5B.js";import{C as _,_ as v,i as y,p as b}from"./icons-MYfI6vZr.js";import{a as x}from"./command-catalog-Dnx-iMLX.js";import{t as S}from"./Sheet-DLlZ00Lu.js";import{n as C}from"./control-queries-CUNa6TAx.js";import{t as w}from"./BudgetControl-B23rNAuC.js";import{a as T,c as E,i as D,n as O,r as k,s as A,t as j}from"./authority-model-CoXAS-Z6.js";import{d as M,i as N,r as ee,t as P}from"./surface-data-D_oFOgkh.js";import{i as F,n as I}from"./Surface-DCL7uORg.js";import{r as L}from"./actions-gBplqbpY.js";import{a as R,o as z}from"./why-seat-model-Bn6O26JJ.js";var B=e(n(),1);Object.freeze({off:0,propose:1,autonomous:2}),Object.freeze({reserve:0,balanced:1,"all-in":2}),Object.freeze({maxTtlMs:2592e6,maxRisk:`medium`,maxFiles:2**53-1,maxLines:2**53-1,maxMergesPerRepoPerDay:2**53-1,localAuthored:Object.freeze({maxRisk:`low`,maxFiles:4,maxLines:150}),localEnforcement:Object.freeze({maxRisk:`low`,maxFiles:4,maxLines:150,maxMergesPerDay:4}),minVetoMinutes:30,maxVetoMinutes:1440,maxStageHours:720,maxMeteredUsdPerDay:1e4,maxRepos:32,maxStages:8,maxSeats:64,maxRolesPerSeat:3}),Object.freeze({maxFiles:10,maxLines:300,maxMergesPerRepoPerDay:24});function V(e){return e===2**53-1?`No volume cap`:String(e)}Object.freeze({grantId:/^[a-f0-9]{32}$/u,keyId:/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/u,sha256Hex:/^[a-f0-9]{64}$/u,isoInstant:/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/u,nameWithOwner:/^[A-Za-z0-9][A-Za-z0-9-]{0,38}\/[A-Za-z0-9._-]{1,100}$/u,stageId:/^[a-z0-9][a-z0-9-]{0,31}$/u,seatId:/^[A-Za-z0-9][A-Za-z0-9._:@/+-]{0,199}$/u,signature:/^[A-Za-z0-9+/]{86}==$/u});function H(e){return Object.freeze(Object.keys(e))}Object.freeze({envelope:H({payload:!0,signature:!0}),grant:H({v:!0,grantId:!0,grantSeq:!0,keyId:!0,issuedAt:!0,expiresAt:!0,hostBinding:!0,authoritySurfaceDigest:!0,repos:!0,merge:!0,spend:!0,engines:!0,leader:!0,conductorGoals:!0,rollout:!0}),repo:H({nameWithOwner:!0,stage:!0,enforcement:!0,maxRisk:!0,maxMergesPerDay:!0}),merge:H({maxFiles:!0,maxLines:!0,selfRepo:!0,volumePolicy:!0}),spend:H({maxMode:!0,meteredUsdPerDay:!0,seats:!0}),seat:H({enabled:!0,reserveFloorPercent:!0,maxSessionWindowPercent:!0,roles:!0}),leader:H({classes:!0,vetoMinutes:!0}),rollout:H({stages:!0,autoAdvance:!0}),stage:H({id:!0,repos:!0,engines:!0,maxRisk:!0,maxFiles:!0,maxLines:!0,maxMergesPerRepoPerDay:!0,leaderClasses:!0,criteria:!0}),stageRepo:H({nameWithOwner:!0,stage:!0}),criteria:H({minMerges:!0,minPostMergeGreenPct:!0,maxRevertRatePct:!0,minHours:!0,maxSandboxViolations:!0,reserveBreaches:!0})}),Object.freeze({merge:Object.freeze([`volumePolicy`]),seat:Object.freeze([`maxSessionWindowPercent`])}),`0`.repeat(64),H({"ledger:genesis":!0,"ledger:recovered":!0,"grant:accepted":!0,"grant:rejected":!0,"grant:paused":!0,"grant:revoked":!0,"grant:expired":!0,"switch:changed":!0,"kill:on":!0,"kill:off":!0,"rollout:advanced":!0,"rollout:regressed":!0,"gate:result":!0,"gate:would-merge":!0,"pr:opened":!0,"pr:closed":!0,"pr:reopened":!0,"merge:landed":!0,"post-merge:result":!0,"revert:landed":!0,"revert:failed":!0,"hold:set":!0,"hold:cleared":!0,"sandbox:violation":!0,"reserve:breach":!0,"sandbox:evidence-unknown":!0,"leader:memo":!0,"leader:action":!0,"leader:vetoed":!0,"leader:outcome":!0,"harness:experiment":!0,"harness:adopted":!0,"harness:rolled-back":!0,"harness:rejected":!0,note:!0});var U=t();async function te(e,t,n){let o=r();if(!o)throw new C;let s=await a(P,{kind:e,scope:t,...n===void 0?{}:{eliteDirect:n}},o);return i(),s}var W={"claude-cli":`Claude Code (claude-cli)`,codex:`Codex`,"grok-cli":`Grok (grok-cli)`,devin:`Devin`,"devin-cli":`Devin CLI`,local:`Local models`};function G({label:e,value:t,onChange:n}){let r=(0,B.useId)(),i=t===String(2**53-1);return(0,U.jsxs)(`div`,{children:[(0,U.jsxs)(`label`,{className:L.scopeField,htmlFor:r,children:[(0,U.jsx)(`span`,{children:e}),(0,U.jsx)(`input`,{id:r,type:`number`,min:+(e===`Files per change`||e===`Lines per change`),max:2**53-1,step:1,inputMode:`numeric`,disabled:i,value:i?``:t,onChange:e=>n(e.target.value)})]}),(0,U.jsxs)(`label`,{className:L.scopeCheck,children:[(0,U.jsx)(`input`,{type:`checkbox`,checked:i,"aria-label":`No volume cap: ${e}`,onChange:e=>n(e.target.checked?String(2**53-1):`1`)}),(0,U.jsx)(`span`,{children:`No volume cap`})]})]})}function ne({id:e,value:t,roles:n,onChange:r}){let i=(0,B.useId)();return(0,U.jsxs)(`fieldset`,{className:L.scopeFieldset,children:[(0,U.jsx)(`legend`,{children:e}),(0,U.jsxs)(`label`,{className:L.scopeCheck,children:[(0,U.jsx)(`input`,{type:`checkbox`,checked:t.enabled,onChange:e=>r(`enabled`,{enabled:e.target.checked})}),(0,U.jsxs)(`span`,{children:[`Permit autonomy on `,e]})]}),n.map(n=>(0,U.jsxs)(`label`,{className:L.scopeCheck,children:[(0,U.jsx)(`input`,{type:`checkbox`,checked:t.roles.includes(n),onChange:e=>r(`roles`,{roles:q(t.roles,n,e.target.checked)})}),(0,U.jsxs)(`span`,{children:[e,`: `,n]})]},n)),(0,U.jsxs)(`label`,{className:L.scopeField,htmlFor:`${i}-reserve`,children:[(0,U.jsxs)(`span`,{children:[e,`: reserve for you (%)`]}),(0,U.jsx)(`input`,{id:`${i}-reserve`,type:`number`,min:0,max:100,step:1,inputMode:`numeric`,value:t.reserve,onChange:e=>r(`reserveFloorPercent`,{reserve:e.target.value})})]}),(0,U.jsxs)(`label`,{className:L.scopeCheck,children:[(0,U.jsx)(`input`,{type:`checkbox`,checked:!t.ceiling,onChange:e=>r(`maxSessionWindowPercent`,{ceiling:!e.target.checked})}),(0,U.jsxs)(`span`,{children:[e,`: No session ceiling`]})]}),(0,U.jsxs)(`label`,{className:L.scopeField,htmlFor:`${i}-session`,children:[(0,U.jsxs)(`span`,{children:[e,`: session usage ceiling (%)`]}),(0,U.jsx)(`input`,{id:`${i}-session`,type:`number`,min:1,max:100,step:1,inputMode:`numeric`,disabled:!t.ceiling,value:t.ceiling?t.session:``,onChange:e=>r(`maxSessionWindowPercent`,{session:e.target.value})})]})]})}var K={reserve:`Reserve`,balanced:`Balanced`,"all-in":`All-in`};function q(e,t,n){return n?e.includes(t)?[...e]:[...e,t]:e.filter(e=>e!==t)}function J(e){let t=Math.round((Date.parse(e.payload.expiresAt)-Date.parse(e.payload.issuedAt))/864e5);return Number.isFinite(t)&&t>0?t:30}function re({draft:e,busy:t,onPreview:n,onReset:r,edited:i,onAccountSettings:a,onResources:o,onDirty:s}){let c=e.editable,l=e.payload,[u,d]=(0,B.useState)(()=>l.repos.map(e=>e.nameWithOwner)),[f,p]=(0,B.useState)(()=>[...l.engines]),[m,h]=(0,B.useState)(()=>[...l.leader.classes]),[_,v]=(0,B.useState)(l.spend.maxMode),[y,b]=(0,B.useState)(String(l.spend.meteredUsdPerDay)),[x,S]=(0,B.useState)(String(J(e))),[C,w]=(0,B.useState)(String(l.merge.maxFiles)),[T,E]=(0,B.useState)(String(l.merge.maxLines)),[D,O]=(0,B.useState)(()=>Object.fromEntries(l.repos.map(e=>[e.nameWithOwner,String(e.maxMergesPerDay)]))),[k,A]=(0,B.useState)(!1),[j,M]=(0,B.useState)(()=>Object.fromEntries(Object.entries(l.spend.seats).map(([e,t])=>[e,{enabled:t.enabled,roles:[...t.roles],reserve:String(t.reserveFloorPercent),session:String(t.maxSessionWindowPercent??70),ceiling:t.maxSessionWindowPercent!==void 0}]))),[N,ee]=(0,B.useState)({});function P(e,t,n){M(t=>({...t,[e]:{...t[e],...n}})),ee(n=>({...n,[e]:q(n[e]??[],t,!0)}))}let I={metered:(0,B.useId)(),days:(0,B.useId)(),mode:(0,B.useId)()};if(!c)return(0,U.jsx)(`p`,{className:L.scopeMeta,children:`This server cannot edit a draft yet — update Ashlr to choose repos and engines here.`});let R=Number(y),z=Number(x),V=!k||Number.isSafeInteger(Number(C))&&Number(C)>0&&Number.isSafeInteger(Number(T))&&Number(T)>0&&u.every(e=>D[e]!==void 0&&D[e]!==``&&Number.isSafeInteger(Number(D[e]))&&Number(D[e])>=0),H=Object.keys(N).every(e=>{let t=j[e];return t.roles.length>0&&t.reserve!==``&&Number.isInteger(Number(t.reserve))&&Number(t.reserve)>=0&&Number(t.reserve)<=100&&(!t.ceiling||t.session!==``&&Number.isInteger(Number(t.session))&&Number(t.session)>=1&&Number(t.session)<=100)})&&V&&u.length>0&&f.length>0&&Number.isInteger(R)&&R>=0&&Number.isInteger(z)&&z>=1&&z<=c.maxDays;function te(){n({repos:u,engines:f,leaderClasses:m,maxMode:_,meteredUsdPerDay:R,days:z,...c?.seatPolicies&&Object.keys(N).length?{seatPolicies:Object.fromEntries(Object.entries(N).map(([e,t])=>{let n=j[e],r={};return t.includes(`enabled`)&&(r.enabled=n.enabled),t.includes(`roles`)&&(r.roles=n.roles),t.includes(`reserveFloorPercent`)&&(r.reserveFloorPercent=Number(n.reserve)),t.includes(`maxSessionWindowPercent`)&&(r.maxSessionWindowPercent=n.ceiling?Number(n.session):null),[e,r]}))}:{},...c?.volumeLimits&&k?{maxFiles:Number(C),maxLines:Number(T),repoMaxMergesPerDay:Object.fromEntries(u.map(e=>[e,Number(D[e])]))}:{}})}return(0,U.jsxs)(`div`,{className:L.scopeEditor,"aria-label":`Edit the grant scope`,onChange:s,children:[(0,U.jsxs)(`fieldset`,{className:L.scopeFieldset,children:[(0,U.jsx)(`legend`,{children:(0,U.jsxs)(F,{children:[`Repositories (`,u.length,`/`,c.repos.length,`)`]})}),c.repos.map(e=>(0,U.jsxs)(`label`,{className:L.scopeCheck,children:[(0,U.jsx)(`input`,{type:`checkbox`,checked:u.includes(e),onChange:t=>d(q(u,e,t.target.checked))}),(0,U.jsx)(`span`,{className:L.mono,children:e})]},e)),(0,U.jsx)(`p`,{className:L.scopeMeta,children:`Only enrolled repos can be granted. Enroll another checkout to add it here.`})]}),(0,U.jsxs)(`fieldset`,{className:L.scopeFieldset,children:[(0,U.jsx)(`legend`,{children:(0,U.jsx)(F,{children:`Engines`})}),c.engines.map(e=>(0,U.jsxs)(`label`,{className:L.scopeCheck,children:[(0,U.jsx)(`input`,{type:`checkbox`,checked:f.includes(e),onChange:t=>p(q(f,e,t.target.checked))}),(0,U.jsx)(`span`,{children:W[e]??e})]},e))]}),(0,U.jsxs)(`fieldset`,{className:L.scopeFieldset,children:[(0,U.jsx)(`legend`,{children:(0,U.jsx)(F,{children:`Leader may act`})}),c.leaderClasses.map(e=>(0,U.jsxs)(`label`,{className:L.scopeCheck,children:[(0,U.jsx)(`input`,{type:`checkbox`,checked:m.includes(e),onChange:t=>h(q(m,e,t.target.checked))}),(0,U.jsxs)(`span`,{children:[`Class `,e,e===`A`?` — reversible housekeeping`:` — larger changes, with a veto window`]})]},e))]}),c.volumeLimits?(0,U.jsxs)(`fieldset`,{className:L.scopeFieldset,children:[(0,U.jsx)(`legend`,{children:(0,U.jsx)(F,{children:`Signed volume limits`})}),(0,U.jsxs)(`label`,{className:L.scopeCheck,children:[(0,U.jsx)(`input`,{type:`checkbox`,checked:k,onChange:e=>A(e.target.checked)}),(0,U.jsx)(`span`,{children:`Replace volume limits for all models and enforcement modes`})]}),(0,U.jsx)(`p`,{className:L.scopeMeta,children:`An explicit choice applies these size limits to every rollout stage and these daily limits to merging stages. Local work keeps its risk and verification rules. Unchanged or renewed grants keep their existing volume policy. Preview shows the change before Touch ID.`}),(0,U.jsx)(G,{label:`Files per change`,value:C,onChange:e=>{w(e),A(!0)}}),(0,U.jsx)(G,{label:`Lines per change`,value:T,onChange:e=>{E(e),A(!0)}}),u.map(e=>(0,U.jsx)(G,{label:`${e} merges/day`,value:D[e]??``,onChange:t=>{O(n=>({...n,[e]:t})),A(!0)}},e))]}):null,(0,U.jsxs)(`fieldset`,{className:L.scopeFieldset,children:[(0,U.jsx)(`legend`,{children:(0,U.jsx)(F,{children:`Budget caps`})}),(0,U.jsxs)(`label`,{className:L.scopeField,htmlFor:I.mode,children:[(0,U.jsx)(`span`,{children:`Budget mode up to`}),(0,U.jsx)(`select`,{id:I.mode,value:_,onChange:e=>v(e.target.value),children:[`reserve`,`balanced`,`all-in`].map(e=>(0,U.jsx)(`option`,{value:e,children:K[e]},e))})]}),(0,U.jsxs)(`label`,{className:L.scopeField,htmlFor:I.metered,children:[(0,U.jsx)(`span`,{children:`Metered APIs, $ per day`}),(0,U.jsx)(`input`,{id:I.metered,type:`number`,min:0,step:1,inputMode:`numeric`,value:y,onChange:e=>b(e.target.value)})]}),(0,U.jsxs)(`label`,{className:L.scopeField,htmlFor:I.days,children:[(0,U.jsxs)(`span`,{children:[`Valid for (days, at most `,c.maxDays,`)`]}),(0,U.jsx)(`input`,{id:I.days,type:`number`,min:1,max:c.maxDays,step:1,inputMode:`numeric`,value:x,onChange:e=>S(e.target.value)})]})]}),c.seatPolicies?(0,U.jsxs)(`fieldset`,{className:L.scopeFieldset,children:[(0,U.jsx)(`legend`,{children:(0,U.jsx)(F,{children:`Account permissions and reserves`})}),(0,U.jsx)(`p`,{className:L.scopeMeta,children:`All-in does not remove account reserves or session ceilings. Set 0% reserve or No session ceiling explicitly. These are standing permissions; current budget settings, known usage and provider readiness may tighten them further. A producer role does not qualify an unsupported provider.`}),(0,U.jsx)(`p`,{className:L.scopeMeta,children:`Current Budget settings are in Apps & Accounts; Resources shows usage and readiness. Opening either leaves this unsigned draft.`}),(0,U.jsxs)(`span`,{className:L.sheetButtons,children:[a?(0,U.jsx)(g,{variant:`ghost`,size:`sm`,onClick:a,children:`Current account settings`}):null,o?(0,U.jsx)(g,{variant:`ghost`,size:`sm`,onClick:o,children:`Resources`}):null]}),Object.entries(c.seatPolicies).filter(([e])=>j[e]!==void 0).map(([e,t])=>(0,U.jsx)(ne,{id:e,value:j[e],roles:t.roles,onChange:(t,n)=>P(e,t,n)},e))]}):null,(0,U.jsxs)(`span`,{className:L.sheetButtons,children:[i?(0,U.jsx)(g,{variant:`ghost`,size:`sm`,onClick:r,children:`Back to the default draft`}):null,(0,U.jsx)(g,{variant:`subtle`,size:`sm`,onClick:te,disabled:!H,busy:t,children:`Preview the changes`})]}),H?null:(0,U.jsxs)(`p`,{className:L.scopeMeta,children:[`Keep at least one repo and one engine, whole dollars, at least one role per edited account, whole reserve percentages (0–100) and session ceilings (1–100), positive whole size limits, nonnegative whole merge limits, and 1–`,c.maxDays,` days.`]})]})}var ie={wider:`wider`,narrower:`narrower`,changed:`changed`};function ae({lines:e}){return e?e.length===0?(0,U.jsxs)(`section`,{className:L.scopeBlock,"aria-label":`Changes`,children:[(0,U.jsx)(F,{children:`Changes vs the grant in force`}),(0,U.jsx)(`p`,{className:L.scopeMeta,children:`Same scope as the grant in force.`})]}):(0,U.jsxs)(`section`,{className:L.scopeBlock,"aria-label":`Changes`,children:[(0,U.jsx)(F,{children:`Changes vs the grant in force`}),(0,U.jsxs)(`table`,{className:L.scopeTable,children:[(0,U.jsx)(`thead`,{children:(0,U.jsxs)(`tr`,{children:[(0,U.jsx)(`th`,{scope:`col`,children:`What`}),(0,U.jsx)(`th`,{scope:`col`,children:`Now`}),(0,U.jsx)(`th`,{scope:`col`,children:`After signing`}),(0,U.jsx)(`th`,{scope:`col`,children:`Authority`})]})}),(0,U.jsx)(`tbody`,{children:e.map((e,t)=>(0,U.jsxs)(`tr`,{"data-direction":e.direction,children:[(0,U.jsx)(`td`,{children:e.label}),(0,U.jsx)(`td`,{className:L.mono,children:e.before}),(0,U.jsx)(`td`,{className:L.mono,children:e.after}),(0,U.jsx)(`td`,{className:L.diffDirection,"data-direction":e.direction,children:ie[e.direction]})]},`${e.field}-${t}`))})]})]}):null}var oe=864e5;function Y(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toLocaleString(`en-US`,{weekday:`short`,month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`}):`—`}function se(e){let t=Date.parse(e.issuedAt),n=Date.parse(e.expiresAt);return Number.isFinite(t)&&Number.isFinite(n)?Math.round((n-t)/oe):null}var X=`elite-direct`,ce=`Elite models (Opus 5.5/5, Fable 5.1/5, Sonnet 5, GPT-6 Astra/Sol/Luna, Grok 4.7/4.6, SWE-2, Qwen 3.8 27B) land directly on green tests — no judge. Other models still need an independent judge; changes to authority code still come to you.`;function le(e){let t=e.criteria;if(e.id===X)return`${e.repos.filter(e=>e.stage===`merge`).length} of ${e.repos.length} repos merge · ${e.maxRisk} risk · ≤ ${V(e.maxFiles)} files / ${V(e.maxLines)} lines — one rung, no ramp; elite models land on green tests, no judge`;let n=[`${e.repos.length} repo${e.repos.length===1?``:`s`}`,`${e.maxRisk} risk`,`≤ ${V(e.maxFiles)} files / ${V(e.maxLines)} lines`,`≤ ${V(e.maxMergesPerRepoPerDay)} merges/repo/day`],r=[`${t.minMerges} merges`,`${t.minHours} h`,t.minPostMergeGreenPct?`≥ ${t.minPostMergeGreenPct}% green`:null,`≤ ${t.maxRevertRatePct}% reverts`].filter(Boolean);return`${n.join(` · `)} — advances after ${r.join(`, `)}`}function ue({draft:e}){let t=e.payload,n=se(t);return(0,U.jsxs)(`div`,{className:L.scope,children:[(0,U.jsxs)(`section`,{className:L.scopeBlock,"aria-label":`Expiry`,children:[(0,U.jsx)(F,{children:`Expiry`}),(0,U.jsxs)(`p`,{className:L.scopeLead,children:[n===null?`—`:`${n} days`,`, until `,Y(t.expiresAt)]}),(0,U.jsxs)(`p`,{className:L.scopeMeta,children:[`Signed by key `,(0,U.jsx)(`span`,{className:L.mono,children:t.keyId}),` · sequence `,t.grantSeq,` · bound to this Mac`]})]}),(0,U.jsxs)(`section`,{className:L.scopeBlock,"aria-label":`Repositories`,children:[(0,U.jsxs)(F,{children:[`Repositories (`,t.repos.length,`)`]}),(0,U.jsxs)(`table`,{className:L.scopeTable,children:[(0,U.jsx)(`thead`,{children:(0,U.jsxs)(`tr`,{children:[(0,U.jsx)(`th`,{scope:`col`,children:`Repo`}),(0,U.jsx)(`th`,{scope:`col`,children:`Up to`}),(0,U.jsx)(`th`,{scope:`col`,children:`Checks`}),(0,U.jsx)(`th`,{scope:`col`,children:`Risk`}),(0,U.jsx)(`th`,{scope:`col`,className:L.num,children:`Merges/day`})]})}),(0,U.jsx)(`tbody`,{children:t.repos.map(e=>(0,U.jsxs)(`tr`,{children:[(0,U.jsx)(`td`,{className:L.mono,children:e.nameWithOwner}),(0,U.jsx)(`td`,{children:e.stage===`merge`?`Merge`:`Propose`}),(0,U.jsx)(`td`,{children:e.enforcement===`server`?`GitHub`:`Local only`}),(0,U.jsx)(`td`,{children:e.maxRisk}),(0,U.jsx)(`td`,{className:L.num,children:V(e.maxMergesPerDay)})]},e.nameWithOwner))})]}),(0,U.jsxs)(`p`,{className:L.scopeMeta,children:[`Every merge ≤ `,V(t.merge.maxFiles),` files / `,V(t.merge.maxLines),` lines · ashlr-hub itself: `,t.merge.selfRepo===`propose-only`?`propose only`:`merge outside authority code`]})]}),(0,U.jsx)(`p`,{className:L.scopeMeta,children:t.merge.volumePolicy===`operator-signed`?`Signed volume limits apply to all models and enforcement modes. Risk, CI, spend, Stop and revocation remain binding.`:`Legacy local limits remain: 4 files / 150 lines, and 4 merges/day for locally enforced repos.`}),(0,U.jsxs)(`section`,{className:L.scopeBlock,"aria-label":`Spend`,children:[(0,U.jsx)(F,{children:`Spend`}),(0,U.jsxs)(`p`,{className:L.scopeLead,children:[`Up to `,t.spend.maxMode===`all-in`?`All-in`:t.spend.maxMode===`balanced`?`Balanced`:`Reserve`,` · metered APIs $`,t.spend.meteredUsdPerDay,`/day`]}),(0,U.jsx)(`ul`,{className:L.scopeList,children:Object.entries(t.spend.seats).map(([e,t])=>(0,U.jsxs)(`li`,{children:[(0,U.jsx)(`span`,{className:L.mono,children:e}),t.enabled?`: keeps ${t.reserveFloorPercent}% for you`:`: not used by autonomy`,t.enabled&&t.maxSessionWindowPercent!==void 0?`, never above ${t.maxSessionWindowPercent}% of its 5-hour window`:``,` · permitted roles: ${t.roles.join(`, `)}`,t.enabled&&t.maxSessionWindowPercent===void 0?`, no session ceiling`:``]},e))}),(0,U.jsx)(`p`,{className:L.scopeMeta,children:`Signed account permissions are ceilings. Current Budget settings, usage and Resources readiness still govern dispatch; a listed role does not establish provider support.`})]}),(0,U.jsxs)(`section`,{className:L.scopeBlock,"aria-label":`Engines and Leader`,children:[(0,U.jsx)(F,{children:`Engines and Leader`}),(0,U.jsx)(`p`,{className:L.scopeLead,children:t.engines.join(`, `)||`none`}),(0,U.jsxs)(`p`,{className:L.scopeMeta,children:[`Leader classes `,t.leader.classes.length?t.leader.classes.join(` + `):`none (proposes only)`,` · class-B veto window `,t.leader.vetoMinutes,` min · goal conductor `,t.conductorGoals?`on`:`off`]})]}),(0,U.jsxs)(`section`,{className:L.scopeBlock,"aria-label":`Rollout ladder`,children:[t.rollout.stages.some(e=>e.id===X)?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(F,{children:`Elite direct`}),(0,U.jsx)(`p`,{className:L.scopeLead,children:ce})]}):(0,U.jsxs)(F,{children:[`Rollout ladder (`,t.rollout.stages.length,` stages, advances by itself)`]}),(0,U.jsx)(`ol`,{className:L.ladder,children:t.rollout.stages.map(e=>(0,U.jsxs)(`li`,{children:[(0,U.jsx)(`span`,{className:L.ladderId,children:e.id}),(0,U.jsx)(`span`,{children:le(e)})]},e.id))}),(0,U.jsx)(`p`,{className:L.scopeMeta,children:t.rollout.stages.length===1&&t.rollout.stages[0]?.id===X?`A sandbox violation, reserve breach, or reverts above 10% restart this rung’s evidence window. Elite direct remains the signed merge ceiling until you stop, revoke, or replace the grant.`:`Any sandbox violation or reserve breach drops it back one stage. It can never climb past the last stage.`})]}),(0,U.jsxs)(`p`,{className:L.scopeMeta,children:[`Draft digest `,(0,U.jsxs)(`span`,{className:L.mono,children:[e.digest.slice(0,16),`…`]})]})]})}function de({open:e,intent:t,then:n,busy:r,why:i,onApprove:a,onClose:o,act:s,startEditing:c}){let l=(0,B.useId)();return e?(0,U.jsx)(fe,{titleId:l,intent:t,then:n,busy:r,why:i,onApprove:a,onClose:o,...s?{act:s}:{},startEditing:c===!0}):null}function fe({titleId:e,intent:t,then:n,busy:r,why:i,onApprove:a,onClose:s,act:c,startEditing:d}){let[f,p]=(0,B.useState)(!1),m=(0,B.useId)(),h=o(f?N:ee,{freshMs:0}),_=h.data?.value??null,[v,y]=(0,B.useState)(null),[x,C]=(0,B.useState)(d===!0),[w,T]=(0,B.useState)(0),E=(0,B.useRef)(0),D=(0,B.useRef)(0),[O,k]=(0,B.useState)(0),[A,M]=(0,B.useState)(null),[P,F]=(0,B.useState)(null),R=(0,B.useRef)(null);R.current=_?.digest??null;let[z,V]=(0,B.useState)(null),[H,W]=(0,B.useState)(!1),G=v&&P===_?.digest&&v.eliteDirect===_?.eliteDirect?v:_,ne=h.data?.reason??null,K=c!==void 0&&_?.editable!==void 0,q=_?.kind===`reapprove`&&_.eliteDirect===!0,J=w>0&&(A?.revision!==w||A.sourceDigest!==_?.digest),ie=G!==null&&G.eliteDirect===!0===(f||q);function oe(){E.current++,T(E.current),V(null)}function Y(){E.current++,D.current++,T(0),M(null),y(null),F(null),V(null),W(!1),k(e=>e+1)}function se(e){if(!c||!_)return;let t=_.kind??`auto`,n=++D.current,r=E.current,i=_.digest;V(null),W(!0),c(async()=>{try{return await te(t,e,_.eliteDirect===!0)}catch(e){return n===D.current&&i===R.current&&V(e instanceof Error?e.message:String(e)),null}finally{n===D.current&&W(!1)}},`Preview the edited grant`,{onDone:e=>{n===D.current&&r===E.current&&i===R.current&&e&&typeof e==`object`&&typeof e.digest==`string`&&e.eliteDirect===_.eliteDirect&&(y(e),F(i),M({revision:r,sourceDigest:i}))}})}return(0,U.jsxs)(S,{open:!0,onClose:s,titleId:e,width:600,title:t===`re-approve`?`Re-approve the standing grant`:`Approve a standing grant`,description:i,footer:(0,U.jsxs)(`div`,{className:L.sheetFooter,children:[(0,U.jsxs)(`p`,{className:L.sheetFootnote,children:[`Touch ID appears on this Mac. Lowering authority — Off, Stop, Revoke — never needs it.`,n?` After approval the switch moves to ${j[n]}.`:``]}),(0,U.jsxs)(`span`,{className:L.sheetButtons,children:[(0,U.jsx)(g,{variant:`ghost`,onClick:s,children:`Cancel`}),(0,U.jsx)(g,{variant:`primary`,icon:(0,U.jsx)(b,{}),disabled:!G||!ie||J||H,busy:r,onClick:()=>G&&a(G),children:`Approve with Touch ID`})]})]}),children:[(0,U.jsxs)(`label`,{className:L.eliteToggle,children:[(0,U.jsx)(`input`,{type:`checkbox`,checked:f||q,disabled:H||r||q,onChange:e=>{p(e.target.checked),Y()},"aria-describedby":m}),`Elite direct`]}),(0,U.jsx)(`p`,{id:m,className:L.scopeMeta,children:ce}),h.status===`loading`&&!h.data?(0,U.jsx)(`p`,{className:L.muted,"aria-busy":`true`,children:`Preparing the grant draft…`}):G?(0,U.jsxs)(U.Fragment,{children:[K?(0,U.jsxs)(`div`,{className:L.scopeEditToggle,children:[(0,U.jsx)(g,{variant:`ghost`,size:`sm`,"aria-expanded":x,onClick:()=>C(e=>!e),children:x?`Hide the scope editor`:`Edit scope`}),v?(0,U.jsx)(`span`,{className:L.scopeMeta,children:`Showing your edited draft.`}):null]}):null,K&&x&&_?(0,U.jsx)(re,{draft:_,busy:H,edited:P===_.digest||J,onDirty:oe,onAccountSettings:()=>{s(),u(`apps`)},onResources:()=>{s(),l(!0)},onPreview:se,onReset:Y},O):null,J?(0,U.jsx)(I,{tone:`muted`,children:`Preview your choices before approving. Only the reviewed draft below can be signed.`}):null,z?(0,U.jsx)(I,{tone:`danger`,children:z}):null,(0,U.jsx)(ae,{lines:G.diff}),(0,U.jsx)(ue,{draft:G})]}):(0,U.jsx)(I,{tone:`unknown`,children:ne??`Grant draft unreadable — nothing to approve.`})]})}var Z={"all-in":`All-in`,balanced:`Balanced`,reserve:`Reserve`};function pe(){let e=x(`fleet.stop`)?.guard?.confirm;return{title:e?.title??`Stop the fleet?`,body:e?.body??`Autonomous work halts within one tick and stays stopped until you resume it. Chats keep running.`,confirmLabel:e?.confirmLabel??`Stop fleet`,destructive:!0}}var me={title:`Resume the fleet?`,body:`Autonomy picks up at the switch position on its next tick. Stopping again is one click.`,confirmLabel:`Resume fleet`,destructive:!1};function he({tone:e}){return(0,U.jsx)(`span`,{className:L.dot,"data-tone":e,"aria-hidden":`true`})}function ge(e){let[t,n]=(0,B.useState)(null);function r(r){if(!t)return;let{then:i}=t,a=k(r,t.intent);e.act(()=>M({action:a,draftDigest:r.digest}),a===`re-approve`?`Re-approve the standing grant`:`Sign a new standing grant`,{onDone:t=>{n(null),i&&t&&O[i]<=O[t.maxSwitchWithoutGrant]&&i!==t.switch&&e.act(()=>M({action:`switch`,to:i}),`Switch autonomy to ${j[i]}`)}})}return{open:(e,t,r=null,i={})=>n({intent:e,then:r,why:t,edit:i.edit===!0}),sheet:(0,U.jsx)(de,{open:t!==null,intent:t?.intent??`grant`,then:t?.then??null,why:t?.why??``,busy:e.busy,onApprove:r,onClose:()=>n(null),act:e.act,startEditing:t?.edit===!0})}}function _e({read:e,loading:t,budgetMode:n,actions:r,compact:i,now:a,grantFlow:o}){let s=e?.value??null,c=ge(r),l=o??c,[u,d]=(0,B.useState)(null),[f,m]=(0,B.useState)(!1),h=!s,y=T(s,a);function x(e){if(!s)return;let t=D(s,e);if(t!==`same`){if(t===`raise-needs-grant`){let t=s.grant.state===`paused`;l.open(t?`re-approve`:`grant`,t?`${s.grant.reason??`The grant is paused.`} ${j[e]} needs it re-approved.`:`${j[e]} is beyond what the installed grant allows, so it needs a new grant.`,e);return}r.act(()=>M({action:`switch`,to:e}),`Switch autonomy to ${j[e]}`)}}ye({read:e,status:s,budgetMode:n,actions:r,chip:y,onSwitch:x,openGrant:l.open});let S=E(s||{switch:`off`,maxSwitchWithoutGrant:`off`}),C=s?.kill??!1,w=h||r.busy||r.readOnly,O=(0,U.jsxs)(`div`,{className:L.switchWrap,title:h?e?.reason??`Reading autonomy state…`:void 0,children:[i?null:(0,U.jsx)(`span`,{className:L.barLabel,"aria-hidden":`true`,children:`Autonomy`}),(0,U.jsx)(p,{size:`sm`,"aria-label":`Autonomy`,value:s?.switch??`off`,onChange:x,options:S.map(e=>({value:e.value,label:(0,U.jsxs)(`span`,{className:L.switchOption,children:[i?e.short:e.label,e.needsGrant?(0,U.jsx)(b,{className:L.touchMark,width:12,height:12,"aria-hidden":`true`}):null]}),ariaLabel:e.ariaLabel,disabled:w}))})]}),k=()=>r.act(()=>M({action:`stop`}),`Stop the fleet`,{confirm:pe(),onDone:e=>d(A(e))}),N=()=>r.act(()=>M({action:`clear-stop`}),`Resume the fleet`,{confirm:me,onDone:()=>d(null)}),ee=C?i?(0,U.jsx)(g,{variant:`subtle`,size:`sm`,icon:(0,U.jsx)(v,{}),iconOnly:!0,"aria-label":`Resume the fleet`,disabled:w,onClick:N}):(0,U.jsx)(g,{variant:`subtle`,size:`sm`,icon:(0,U.jsx)(v,{}),disabled:w,onClick:N,children:`Resume`}):i?(0,U.jsx)(g,{variant:`danger`,size:`sm`,icon:(0,U.jsx)(_,{}),iconOnly:!0,"aria-label":`Stop the fleet`,disabled:w,onClick:k}):(0,U.jsx)(g,{variant:`danger`,size:`sm`,icon:(0,U.jsx)(_,{}),disabled:w,onClick:k,children:`Stop`});return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`div`,{className:L.bar,role:`toolbar`,"aria-label":`Autonomy controls`,"data-loading":t||void 0,children:[O,i?null:(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(be,{mode:n,onOpen:()=>m(!0)}),(0,U.jsx)(xe,{chip:y,onOpen:e=>l.open(e,y.detail)})]}),(0,U.jsx)(`span`,{className:L.barSpacer}),ee]}),C&&u?(0,U.jsx)(`p`,{className:L.muted,role:`status`,children:u}):null,i?(0,U.jsxs)(`div`,{className:L.barSecondary,children:[(0,U.jsx)(be,{mode:n,onOpen:()=>m(!0)}),(0,U.jsx)(xe,{chip:y,onOpen:e=>l.open(e,y.detail)})]}):null,o?null:c.sheet,(0,U.jsx)(Se,{open:f,onClose:()=>m(!1),status:s})]})}function ve(e){return e.readOnly?`Read-only session: this server was started without dispatch, so autonomy cannot be changed from here.`:e.status?e.busy?`Another autonomy action is still running. Try again when it finishes.`:null:e.reason??`The autonomy state has not been read yet, so nothing was changed.`}function ye({read:e,status:t,budgetMode:n,actions:r,chip:i,onSwitch:a,openGrant:o}){let s=e!==void 0,c=()=>ve({status:t,reason:e?.reason??null,readOnly:r.readOnly,busy:r.busy}),l=e=>()=>{let n=c();if(n||!t){f(n??`The autonomy state is unknown, so nothing was changed.`,`neutral`);return}if(t.switch===e){f(`Autonomy is already ${j[e]}.`,`neutral`);return}a(e)};d(`autonomy.off`,l(`off`),s),d(`autonomy.propose`,l(`propose`),s),d(`autonomy.autonomous`,l(`autonomous`),s),d(`autonomy.grant`,()=>{let e=c();if(e){f(e,`neutral`);return}if(!i.action){f(i.detail,`neutral`);return}o(i.action,i.detail)},s),d(`autonomy.reapprove`,()=>{let e=c();if(e||!t){f(e??`The autonomy state is unknown, so nothing was changed.`,`neutral`);return}let n=t.grant.state;if(n!==`active`&&n!==`paused`&&n!==`expired`){f(`There is no grant to re-approve. Use "Approve grant…" to sign a new one.`,`neutral`);return}o(`re-approve`,n===`active`?`${i.detail} Re-approving signs a fresh 30 days and continues the rollout from its current stage.`:i.detail)},s);let u=e=>()=>{if(r.readOnly||r.busy){f(c()??`Budget cannot be changed right now.`,`neutral`);return}if(n===e){f(`Budget is already ${Z[e]}.`,`neutral`);return}let i=t?.grant.state===`active`?t.grant.maxMode:null;if(i&&h(e,i)){f(`Your grant allows up to ${Z[i]}, so ${Z[e]} is unavailable. A new grant can raise the ceiling.`,`neutral`);return}r.act(()=>m({mode:e}),`Switch the budget to ${Z[e]}`,{onDone:()=>f(`Budget set to ${Z[e]}.`,`success`)})};d(`budget.all-in`,u(`all-in`),s),d(`budget.balanced`,u(`balanced`),s),d(`budget.reserve`,u(`reserve`),s)}function be({mode:e,onOpen:t}){return(0,U.jsxs)(`button`,{type:`button`,className:L.pill,"aria-haspopup":`dialog`,onClick:t,children:[(0,U.jsx)(`span`,{className:L.pillLabel,children:`Budget`}),(0,U.jsx)(`span`,{children:e?Z[e]:`—`}),(0,U.jsx)(y,{width:14,height:14,"aria-hidden":`true`})]})}function xe({chip:e,onOpen:t}){let n=(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(he,{tone:e.tone}),(0,U.jsx)(`span`,{className:L.pillLabel,children:`Grant`}),(0,U.jsx)(`span`,{children:e.label})]});if(!e.action)return(0,U.jsx)(`span`,{className:L.chip,"data-tone":e.tone,title:e.detail,"aria-label":`Grant: ${e.label}. ${e.detail}`,role:`status`,children:n});let r=e.action;return(0,U.jsx)(`button`,{type:`button`,className:L.chip,"data-tone":e.tone,title:e.detail,"aria-haspopup":`dialog`,onClick:()=>t(r),"aria-label":`Grant: ${e.label}. ${e.detail}`,children:n})}function Se({open:e,onClose:t,status:n}){let r=n?.grant.state===`active`?n.grant.maxMode:null;return(0,U.jsx)(S,{open:e,onClose:t,titleId:`command-budget-sheet`,width:560,title:`Budget`,description:r?`Your grant allows up to ${Z[r]}. Autonomy never spends past it, whatever is selected here — moving toward Reserve is always instant.`:`No active grant: autonomy only proposes. The budget still decides which seats it would use.`,children:e?(0,U.jsx)(w,{maxMode:r}):null})}var Ce={control:`_control_16l3r_6`,head:`_head_16l3r_21`,headline:`_headline_16l3r_29`,stateWord:`_stateWord_16l3r_43`,dot:`_dot_16l3r_47`,buttons:`_buttons_16l3r_71`,inlineButtons:`_inlineButtons_16l3r_72`,kbd:`_kbd_16l3r_78`,blocker:`_blocker_16l3r_86`,blockerReason:`_blockerReason_16l3r_97`,blockerCommand:`_blockerCommand_16l3r_103`,did:`_did_16l3r_110`,muted:`_muted_16l3r_117`,link:`_link_16l3r_124`,progress:`_progress_16l3r_153`,progressLine:`_progressLine_16l3r_171`,command:`_command_16l3r_178`,output:`_output_16l3r_190`,facts:`_facts_16l3r_210`,fact:`_fact_16l3r_210`,factValue:`_factValue_16l3r_229`,factSub:`_factSub_16l3r_239`,list:`_list_16l3r_251`,row:`_row_16l3r_259`,rowHead:`_rowHead_16l3r_271`,rowTitle:`_rowTitle_16l3r_279`,rowMeta:`_rowMeta_16l3r_288`,rowControls:`_rowControls_16l3r_294`,log:`_log_16l3r_301`,interject:`_interject_16l3r_315`,textarea:`_textarea_16l3r_321`,directive:`_directive_16l3r_339`,sectionLabel:`_sectionLabel_16l3r_350`,statusLink:`_statusLink_16l3r_364`,statusLinkLine:`_statusLinkLine_16l3r_381`},Q={local:`local`,"grok-cli":`grok`,"claude-cli":`claude`,codex:`codex`,"devin-cli":`devin`},we={local:`Local`,"grok-cli":`Grok`,"claude-cli":`Claude`,codex:`Codex`,"devin-cli":`Devin CLI`};function Te(e){return{name:we[e.lane],slots:e.slots===0?`off`:`${e.busy}/${e.slots}`}}function Ee(e){let t=e.capReason?.trim();return t?R(t):null}function De(e){let t=new Map;for(let n of e){let e=Ee(n);if(!e)continue;let r=t.get(e)??[];r.push(n.lane),t.set(e,r)}return[...t.entries()].map(([t,n])=>({lanes:n,all:n.length===e.length&&e.length>1,reason:t}))}function Oe(e){return e.phase===`queued`||e.phase===`parked`?e.phase:e.phase===`reverting`?`reverting`:e.outcome??e.phase}var ke={producing:`running`,verifying:`running`,judging:`running`,landing:`running`,watching:`info`,reverting:`danger`,merged:`success`,proposed:`info`,"owner-lane":`warning`,refused:`warning`,failed:`danger`,reverted:`danger`,cancelled:`neutral`,queued:`neutral`,parked:`neutral`};function Ae(e){return ke[e]??`unknown`}function $(e){let t=Date.parse(e.startedAt??e.phaseStartedAt??``);return Number.isFinite(t)?t:null}function je(e){if(!e.endedAt)return null;let t=Date.parse(e.endedAt);return Number.isFinite(t)?t:null}function Me(e){return[e.repo.includes(`/`)?e.repo.split(`/`)[1]:e.repo,e.title,e.model,e.prNumber?`PR #${e.prNumber}`:null].filter(Boolean).join(` · `)}var Ne=[`local`,`grok-cli`,`claude-cli`,`codex`,`devin-cli`,`none`];function Pe(e,t,n,r={}){let i=r.includeParked??!0,a=new Map;for(let r of e){if(!i&&r.phase===`parked`)continue;let e=$(r);if(e===null||(je(r)??n)<t||e>n)continue;let o=r.lane??`none`;a.has(o)||a.set(o,[]),a.get(o).push(r)}let o=[];for(let e of Ne){let t=a.get(e);if(!t?.length)continue;t.sort((e,t)=>$(e)-$(t));let r=[],i=[];for(let e of t){let t=$(e),a=je(e)??n,o=r.findIndex(e=>e<=t);o===-1?(o=r.length,r.push(a),i.push([])):r[o]=a,i[o].push(e)}let s=e===`none`?`Unassigned`:we[e];i.forEach((t,n)=>{o.push({id:`${e}:${n}`,label:i.length>1?`${s} · ${n+1}`:s,...e===`none`?{}:{engine:Q[e]},items:t.map(e=>({id:e.id,start:$(e),end:je(e),status:Oe(e),detail:Me(e)}))})})}return o}function Fe(e,t){let n=e.filter(e=>e.phase===`parked`||e.hold!==null),r=n.map(e=>e.hold?.nextEligibleAt?Date.parse(e.hold.nextEligibleAt):NaN).filter(Number.isFinite),i=n.map(e=>$(e)??t),a=Math.min(t-36e5,...i),o=Math.min(t+1728e5,Math.max(t+72e5,...r)),s=0;return{lanes:n.map(e=>{let n=e.hold?.nextEligibleAt?Date.parse(e.hold.nextEligibleAt):NaN;Number.isFinite(n)||s++;let r=e.repo.includes(`/`)?e.repo.split(`/`)[1]:e.repo;return{id:e.id,label:`${r}: ${e.title}`,...e.lane?{engine:Q[e.lane]}:{},items:[{id:e.id,start:$(e)??t,end:Number.isFinite(n)?n:null,status:e.hold?.kind===`split`?`split`:`parked`,outline:!0,detail:`${z(e.hold?.reason??`parked`,t)}${Number.isFinite(n)?``:` · release time unknown`}`}]}}),from:a,to:o,unknownRelease:s}}var Ie={G0:`Authority`,G1:`Protected paths`,G1b:`Tamper`,G2:`Scope`,G3:`Verify`,G4:`Claims`,G5:`Blast radius`,G6:`Judge or elite`,G7:`GitHub checks`};function Le(e){return!e||e.stages.length===0?[]:[{id:`entered`,label:`Proposals`,value:e.stages[0].entered},...e.stages.map(e=>({id:e.gate,label:`${e.gate} ${Ie[e.gate]??``}`.trim(),value:e.passed}))]}function Re(e,t=5){if(!e)return{categories:[],segments:[],values:[],total:0};let n=new Map;for(let t of e.stages)for(let e of t.refusals){let t=n.get(e.code);n.set(e.code,{reason:t?.reason??e.reason,count:(t?.count??0)+e.count})}let r=[...n.entries()].sort((e,t)=>t[1].count-e[1].count||e[0].localeCompare(t[0])),i=r.slice(0,t).map(([e])=>e),a=r.length>t,o=[...i.map((e,t)=>({id:e,label:n.get(e).reason,color:c(t)})),...a?[{id:`__other`,label:`Other reasons`,color:s}]:[]],l=e.stages.filter(e=>e.refusals.length>0||e.entered!==e.passed);return{categories:l.map(e=>e.gate),segments:o,values:l.map(e=>{let t=i.map(t=>e.refusals.find(e=>e.code===t)?.count??0);return a&&t.push(e.refusals.filter(e=>!i.includes(e.code)).reduce((e,t)=>e+t.count,0)),t}),total:r.reduce((e,[,t])=>e+t.count,0)}}function ze(e){return e.runs.length===0&&Le(e.funnel).length===0&&Re(e.funnel).total===0}function Be(e){if(!e)return null;let t=e.runs.filter(e=>e.seatDecision!==null);if(!t.length)return null;t.sort((e,t)=>($(t)??0)-($(e)??0));let n=t[0];return{decision:n.seatDecision,run:n}}export{pe as _,De as a,Be as c,Re as d,Ae as f,ve as g,he as h,Te as i,ze as l,_e as m,we as n,Ee as o,Ce as p,Le as r,Pe as s,Q as t,Fe as u,ge as v};
|
|
2
|
-
//# sourceMappingURL=live-model-CCjYFk48.js.map
|