@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.
Files changed (929) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +5 -5
  3. package/dist/authority-surface.json +16 -11
  4. package/dist/build-identity.json +2 -2
  5. package/dist/cli/verify-safety-sources.d.ts +4 -0
  6. package/dist/cli/verify-safety-sources.js +41 -0
  7. package/dist/cli/verify-safety-sources.js.map +1 -0
  8. package/dist/cli/verify-safety.js +16 -1
  9. package/dist/cli/verify-safety.js.map +1 -1
  10. package/dist/core/decide/needs-you.d.ts +3 -1
  11. package/dist/core/decide/needs-you.js +52 -28
  12. package/dist/core/decide/needs-you.js.map +1 -1
  13. package/dist/core/fleet/fleet-control-model.d.ts +2 -1
  14. package/dist/core/fleet/fleet-control-model.js +5 -0
  15. package/dist/core/fleet/fleet-control-model.js.map +1 -1
  16. package/dist/core/fleet/fleet-control-types.d.ts +11 -1
  17. package/dist/core/fleet/fleet-control.d.ts +4 -0
  18. package/dist/core/fleet/fleet-control.js +23 -1
  19. package/dist/core/fleet/fleet-control.js.map +1 -1
  20. package/dist/core/fleet/quota.js +1 -1
  21. package/dist/core/fleet/quota.js.map +1 -1
  22. package/dist/core/universe/builtins/preparation/manifest.json +1 -1
  23. package/dist/core/universe/builtins/preparation/preparation-bridge.mjs +4 -2
  24. package/dist/core/universe/builtins/preparation/preparation-verification-fixtures.mjs +3 -1
  25. package/dist/core/web/public/next/assets/ActionMenu-Z14OhnFI.js +2 -0
  26. package/dist/core/web/public/next/assets/ActionMenu-Z14OhnFI.js.map +1 -0
  27. package/dist/core/web/public/next/assets/Advanced-fUyq-fpH.js +2 -0
  28. package/dist/core/web/public/next/assets/Advanced-fUyq-fpH.js.map +1 -0
  29. package/dist/core/web/public/next/assets/AgentDetailScreen-C8h--Nah.js +2 -0
  30. package/dist/core/web/public/next/assets/AgentDetailScreen-C8h--Nah.js.map +1 -0
  31. package/dist/core/web/public/next/assets/AgentToolsSheet-BP3h-UbZ.js +2 -0
  32. package/dist/core/web/public/next/assets/AgentToolsSheet-BP3h-UbZ.js.map +1 -0
  33. package/dist/core/web/public/next/assets/AgentToolsStrip--hf18knJ.js +2 -0
  34. package/dist/core/web/public/next/assets/AgentToolsStrip--hf18knJ.js.map +1 -0
  35. package/dist/core/web/public/next/assets/AgentsScreen-BR-j0Fzd.js +2 -0
  36. package/dist/core/web/public/next/assets/AgentsScreen-BR-j0Fzd.js.map +1 -0
  37. package/dist/core/web/public/next/assets/AgentsSection-OKKOuYed.js +3 -0
  38. package/dist/core/web/public/next/assets/AgentsSection-OKKOuYed.js.map +1 -0
  39. package/dist/core/web/public/next/assets/App-ttVrZYp5.js +8 -0
  40. package/dist/core/web/public/next/assets/App-ttVrZYp5.js.map +1 -0
  41. package/dist/core/web/public/next/assets/AppsSection-sqsXqENO.js +2 -0
  42. package/dist/core/web/public/next/assets/AppsSection-sqsXqENO.js.map +1 -0
  43. package/dist/core/web/public/next/assets/AreaTrend-LVgaB49b.js +2 -0
  44. package/dist/core/web/public/next/assets/AreaTrend-LVgaB49b.js.map +1 -0
  45. package/dist/core/web/public/next/assets/AutomationsSection-BITmxjuB.js +2 -0
  46. package/dist/core/web/public/next/assets/AutomationsSection-BITmxjuB.js.map +1 -0
  47. package/dist/core/web/public/next/assets/AutonomyOffState-nO9lIcCv.js +3 -0
  48. package/dist/core/web/public/next/assets/AutonomyOffState-nO9lIcCv.js.map +1 -0
  49. package/dist/core/web/public/next/assets/AutonomySection-DWYUPDP6.js +2 -0
  50. package/dist/core/web/public/next/assets/AutonomySection-DWYUPDP6.js.map +1 -0
  51. package/dist/core/web/public/next/assets/AutonomyStatus-C4Yp1JTY.js +2 -0
  52. package/dist/core/web/public/next/assets/AutonomyStatus-C4Yp1JTY.js.map +1 -0
  53. package/dist/core/web/public/next/assets/BranchBar-CkiZSNqB.js +2 -0
  54. package/dist/core/web/public/next/assets/BranchBar-CkiZSNqB.js.map +1 -0
  55. package/dist/core/web/public/next/assets/BrowserPanel-CECVGJBS.js +7 -0
  56. package/dist/core/web/public/next/assets/BrowserPanel-CECVGJBS.js.map +1 -0
  57. package/dist/core/web/public/next/assets/BudgetControl-De1TPzvX.js +2 -0
  58. package/dist/core/web/public/next/assets/BudgetControl-De1TPzvX.js.map +1 -0
  59. package/dist/core/web/public/next/assets/Button-CstSJwha.js +2 -0
  60. package/dist/core/web/public/next/assets/Button-CstSJwha.js.map +1 -0
  61. package/dist/core/web/public/next/assets/CapacityStrip-nIJcB_lA.js +2 -0
  62. package/dist/core/web/public/next/assets/CapacityStrip-nIJcB_lA.js.map +1 -0
  63. package/dist/core/web/public/next/assets/ChangesPaneHost-Bnj_NcRa.js +16 -0
  64. package/dist/core/web/public/next/assets/ChangesPaneHost-Bnj_NcRa.js.map +1 -0
  65. package/dist/core/web/public/next/assets/ChartFrame-Dljee9y6.js +2 -0
  66. package/dist/core/web/public/next/assets/ChartFrame-Dljee9y6.js.map +1 -0
  67. package/dist/core/web/public/next/assets/ChatPanes-x_ySUIyR.js +2 -0
  68. package/dist/core/web/public/next/assets/ChatPanes-x_ySUIyR.js.map +1 -0
  69. package/dist/core/web/public/next/assets/ChatSection-CXJa8QOi.js +3 -0
  70. package/dist/core/web/public/next/assets/ChatSection-CXJa8QOi.js.map +1 -0
  71. package/dist/core/web/public/next/assets/ChecksPanel-D9r8koxq.js +5 -0
  72. package/dist/core/web/public/next/assets/ChecksPanel-D9r8koxq.js.map +1 -0
  73. package/dist/core/web/public/next/assets/CloudBudgetForm-D5ajpoMe.js +2 -0
  74. package/dist/core/web/public/next/assets/CloudBudgetForm-D5ajpoMe.js.map +1 -0
  75. package/dist/core/web/public/next/assets/CommandPalette-ONyqYZzt.js +3 -0
  76. package/dist/core/web/public/next/assets/CommandPalette-ONyqYZzt.js.map +1 -0
  77. package/dist/core/web/public/next/assets/CommandSection-DxNIibnI.js +3 -0
  78. package/dist/core/web/public/next/assets/CommandSection-DxNIibnI.js.map +1 -0
  79. package/dist/core/web/public/next/assets/CommandWorkflowForm-Bz3PuZXH.js +9 -0
  80. package/dist/core/web/public/next/assets/CommandWorkflowForm-Bz3PuZXH.js.map +1 -0
  81. package/dist/core/web/public/next/assets/CommandWorkflowPicker-COVyeer0.js +3 -0
  82. package/dist/core/web/public/next/assets/CommandWorkflowPicker-COVyeer0.js.map +1 -0
  83. package/dist/core/web/public/next/assets/CompareDialog-PVqv0Tx9.js +4 -0
  84. package/dist/core/web/public/next/assets/CompareDialog-PVqv0Tx9.js.map +1 -0
  85. package/dist/core/web/public/next/assets/ComputerControl-DkSIUrYm.js +2 -0
  86. package/dist/core/web/public/next/assets/ComputerControl-DkSIUrYm.js.map +1 -0
  87. package/dist/core/web/public/next/assets/ConfirmDialog-CdCzzk0I.js +2 -0
  88. package/dist/core/web/public/next/assets/ConfirmDialog-CdCzzk0I.js.map +1 -0
  89. package/dist/core/web/public/next/assets/DeleteChatDialog-BTzOgqho.js +2 -0
  90. package/dist/core/web/public/next/assets/DeleteChatDialog-BTzOgqho.js.map +1 -0
  91. package/dist/core/web/public/next/assets/DevinStopDialog-CGsDqfan.js +2 -0
  92. package/dist/core/web/public/next/assets/DevinStopDialog-CGsDqfan.js.map +1 -0
  93. package/dist/core/web/public/next/assets/Dialog-DDHg9cuT.js +2 -0
  94. package/dist/core/web/public/next/assets/Dialog-DDHg9cuT.js.map +1 -0
  95. package/dist/core/web/public/next/assets/DiffPane-BR3HU7pC.js +2 -0
  96. package/dist/core/web/public/next/assets/DiffPane-BR3HU7pC.js.map +1 -0
  97. package/dist/core/web/public/next/assets/DiffViewer-hJK75qko.js +2 -0
  98. package/dist/core/web/public/next/assets/DiffViewer-hJK75qko.js.map +1 -0
  99. package/dist/core/web/public/next/assets/DockHost-DhOosHbo.js +2 -0
  100. package/dist/core/web/public/next/assets/DockHost-DhOosHbo.js.map +1 -0
  101. package/dist/core/web/public/next/assets/EmptyState-CGVr0VO2.js +2 -0
  102. package/dist/core/web/public/next/assets/EmptyState-CGVr0VO2.js.map +1 -0
  103. package/dist/core/web/public/next/assets/Epistemic-tp0ZNAKZ.js +2 -0
  104. package/dist/core/web/public/next/assets/Epistemic-tp0ZNAKZ.js.map +1 -0
  105. package/dist/core/web/public/next/assets/EvidenceTimeline-YmKIoxNx.js +2 -0
  106. package/dist/core/web/public/next/assets/EvidenceTimeline-YmKIoxNx.js.map +1 -0
  107. package/dist/core/web/public/next/assets/FilesPane-CoNjfkPP.js +2 -0
  108. package/dist/core/web/public/next/assets/FilesPane-CoNjfkPP.js.map +1 -0
  109. package/dist/core/web/public/next/assets/FleetScreen-CstwycnB.js +2 -0
  110. package/dist/core/web/public/next/assets/FleetScreen-CstwycnB.js.map +1 -0
  111. package/dist/core/web/public/next/assets/FleetSection-D0xk0s5J.js +5 -0
  112. package/dist/core/web/public/next/assets/FleetSection-D0xk0s5J.js.map +1 -0
  113. package/dist/core/web/public/next/assets/Funnel-UPrk7fcy.js +2 -0
  114. package/dist/core/web/public/next/assets/Funnel-UPrk7fcy.js.map +1 -0
  115. package/dist/core/web/public/next/assets/GearTray-BSjga1J_.js +2 -0
  116. package/dist/core/web/public/next/assets/GearTray-BSjga1J_.js.map +1 -0
  117. package/dist/core/web/public/next/assets/GitDialogs-ekwzxl76.js +2 -0
  118. package/dist/core/web/public/next/assets/GitDialogs-ekwzxl76.js.map +1 -0
  119. package/dist/core/web/public/next/assets/GrowthSection-Dh-gnkgc.js +3 -0
  120. package/dist/core/web/public/next/assets/GrowthSection-Dh-gnkgc.js.map +1 -0
  121. package/dist/core/web/public/next/assets/HandoffDialog-BDiyA3u-.js +2 -0
  122. package/dist/core/web/public/next/assets/HandoffDialog-BDiyA3u-.js.map +1 -0
  123. package/dist/core/web/public/next/assets/HomeBody-Ce3HBIEb.js +3 -0
  124. package/dist/core/web/public/next/assets/HomeBody-Ce3HBIEb.js.map +1 -0
  125. package/dist/core/web/public/next/assets/HomeSeats-BFLCWCFp.js +2 -0
  126. package/dist/core/web/public/next/assets/HomeSeats-BFLCWCFp.js.map +1 -0
  127. package/dist/core/web/public/next/assets/Input-Cpn9uYj2.js +2 -0
  128. package/dist/core/web/public/next/assets/Input-Cpn9uYj2.js.map +1 -0
  129. package/dist/core/web/public/next/assets/LaunchDialog-CrPEf652.js +9 -0
  130. package/dist/core/web/public/next/assets/LaunchDialog-CrPEf652.js.map +1 -0
  131. package/dist/core/web/public/next/assets/LeaderCard-Dhq-w_Mf.js +2 -0
  132. package/dist/core/web/public/next/assets/LeaderCard-Dhq-w_Mf.js.map +1 -0
  133. package/dist/core/web/public/next/assets/LeaderConversation-CiWqhsoa.js +3 -0
  134. package/dist/core/web/public/next/assets/LeaderConversation-CiWqhsoa.js.map +1 -0
  135. package/dist/core/web/public/next/assets/LeaderScreen-Z5KPjxBV.js +2 -0
  136. package/dist/core/web/public/next/assets/LeaderScreen-Z5KPjxBV.js.map +1 -0
  137. package/dist/core/web/public/next/assets/LessonsPanel-B6XVKAPE.js +2 -0
  138. package/dist/core/web/public/next/assets/LessonsPanel-B6XVKAPE.js.map +1 -0
  139. package/dist/core/web/public/next/assets/LiveTimer-B8t2iX5h.js +2 -0
  140. package/dist/core/web/public/next/assets/LiveTimer-B8t2iX5h.js.map +1 -0
  141. package/dist/core/web/public/next/assets/LocalSeatBadge-HMxIrMiL.js +2 -0
  142. package/dist/core/web/public/next/assets/LocalSeatBadge-HMxIrMiL.js.map +1 -0
  143. package/dist/core/web/public/next/assets/MatrixHeatmap-BlFI5oao.js +2 -0
  144. package/dist/core/web/public/next/assets/MatrixHeatmap-BlFI5oao.js.map +1 -0
  145. package/dist/core/web/public/next/assets/McpSection-snZNKexW.js +2 -0
  146. package/dist/core/web/public/next/assets/McpSection-snZNKexW.js.map +1 -0
  147. package/dist/core/web/public/next/assets/MessageMarkdown-CS0mAtSs.js +3 -0
  148. package/dist/core/web/public/next/assets/MessageMarkdown-CS0mAtSs.js.map +1 -0
  149. package/dist/core/web/public/next/assets/MessageMarkdownRenderer-D5R-zr-W.js +72 -0
  150. package/dist/core/web/public/next/assets/MessageMarkdownRenderer-D5R-zr-W.js.map +1 -0
  151. package/dist/core/web/public/next/assets/Meter-VXI75VNe.js +2 -0
  152. package/dist/core/web/public/next/assets/Meter-VXI75VNe.js.map +1 -0
  153. package/dist/core/web/public/next/assets/MicButton-DORAXsUU.js +2 -0
  154. package/dist/core/web/public/next/assets/MicButton-DORAXsUU.js.map +1 -0
  155. package/dist/core/web/public/next/assets/MindSection-DZLHz29Q.js +3 -0
  156. package/dist/core/web/public/next/assets/MindSection-DZLHz29Q.js.map +1 -0
  157. package/dist/core/web/public/next/assets/MobileComposer-B8nWsIJO.js +2 -0
  158. package/dist/core/web/public/next/assets/MobileComposer-B8nWsIJO.js.map +1 -0
  159. package/dist/core/web/public/next/assets/MobileGuardSheet-BRwOfD9o.js +2 -0
  160. package/dist/core/web/public/next/assets/MobileGuardSheet-BRwOfD9o.js.map +1 -0
  161. package/dist/core/web/public/next/assets/MobileRuntime-kMob_MjB.js +3 -0
  162. package/dist/core/web/public/next/assets/MobileRuntime-kMob_MjB.js.map +1 -0
  163. package/dist/core/web/public/next/assets/MoreScreen-92dC6Bj7.js +2 -0
  164. package/dist/core/web/public/next/assets/MoreScreen-92dC6Bj7.js.map +1 -0
  165. package/dist/core/web/public/next/assets/MultiModelBar-BhAUUQOq.js +7 -0
  166. package/dist/core/web/public/next/assets/MultiModelBar-BhAUUQOq.js.map +1 -0
  167. package/dist/core/web/public/next/assets/MutationTokenDialog-DlY2VLVh.js +2 -0
  168. package/dist/core/web/public/next/assets/MutationTokenDialog-DlY2VLVh.js.map +1 -0
  169. package/dist/core/web/public/next/assets/NeedsYouDrawer-BH0ffbht.js +3 -0
  170. package/dist/core/web/public/next/assets/NeedsYouDrawer-BH0ffbht.js.map +1 -0
  171. package/dist/core/web/public/next/assets/NeedsYouList-CI_Dy-hi.js +2 -0
  172. package/dist/core/web/public/next/assets/NeedsYouList-CI_Dy-hi.js.map +1 -0
  173. package/dist/core/web/public/next/assets/NeedsYouScreen-CvDiEphJ.js +2 -0
  174. package/dist/core/web/public/next/assets/NeedsYouScreen-CvDiEphJ.js.map +1 -0
  175. package/dist/core/web/public/next/assets/NewAgentScreen-BpTRKp9z.js +2 -0
  176. package/dist/core/web/public/next/assets/NewAgentScreen-BpTRKp9z.js.map +1 -0
  177. package/dist/core/web/public/next/assets/NewChatDialog-O1LwwBc4.js +4 -0
  178. package/dist/core/web/public/next/assets/NewChatDialog-O1LwwBc4.js.map +1 -0
  179. package/dist/core/web/public/next/assets/OnboardingFlow-uMNBVHvK.js +3 -0
  180. package/dist/core/web/public/next/assets/OnboardingFlow-uMNBVHvK.js.map +1 -0
  181. package/dist/core/web/public/next/assets/OnboardingGate-sdzxSPZF.js +3 -0
  182. package/dist/core/web/public/next/assets/OnboardingGate-sdzxSPZF.js.map +1 -0
  183. package/dist/core/web/public/next/assets/PlaybooksSection-CnWfwZv8.js +9 -0
  184. package/dist/core/web/public/next/assets/PlaybooksSection-CnWfwZv8.js.map +1 -0
  185. package/dist/core/web/public/next/assets/PreviewPane-D1WaefIG.js +2 -0
  186. package/dist/core/web/public/next/assets/PreviewPane-D1WaefIG.js.map +1 -0
  187. package/dist/core/web/public/next/assets/ProviderLogo-g2YWCmNY.js +2 -0
  188. package/dist/core/web/public/next/assets/ProviderLogo-g2YWCmNY.js.map +1 -0
  189. package/dist/core/web/public/next/assets/RailStatus-OrvAuyzs.js +2 -0
  190. package/dist/core/web/public/next/assets/RailStatus-OrvAuyzs.js.map +1 -0
  191. package/dist/core/web/public/next/assets/ReasoningPane-BARDPl4-.js +2 -0
  192. package/dist/core/web/public/next/assets/ReasoningPane-BARDPl4-.js.map +1 -0
  193. package/dist/core/web/public/next/assets/ReasoningSheet-rPTXyt-b.js +2 -0
  194. package/dist/core/web/public/next/assets/ReasoningSheet-rPTXyt-b.js.map +1 -0
  195. package/dist/core/web/public/next/assets/RefreshIndicator-D96C9qiH.js +2 -0
  196. package/dist/core/web/public/next/assets/RefreshIndicator-D96C9qiH.js.map +1 -0
  197. package/dist/core/web/public/next/assets/RemoteMobileApp-DfDjiBTR.js +2 -0
  198. package/dist/core/web/public/next/assets/RemoteMobileApp-DfDjiBTR.js.map +1 -0
  199. package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-CcfULh_p.js +7 -0
  200. package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-CcfULh_p.js.map +1 -0
  201. package/dist/core/web/public/next/assets/ResourcesChrome-DuEa7WOo.css +1 -0
  202. package/dist/core/web/public/next/assets/ResourcesChrome-e9ifgnWf.js +3 -0
  203. package/dist/core/web/public/next/assets/ResourcesChrome-e9ifgnWf.js.map +1 -0
  204. package/dist/core/web/public/next/assets/ResourcesDrawer-DOv_mxpe.js +3 -0
  205. package/dist/core/web/public/next/assets/ResourcesDrawer-DOv_mxpe.js.map +1 -0
  206. package/dist/core/web/public/next/assets/ReviewMenu-Ba3saQlX.js +2 -0
  207. package/dist/core/web/public/next/assets/ReviewMenu-Ba3saQlX.js.map +1 -0
  208. package/dist/core/web/public/next/assets/RouteErrorBoundary-BaJ1ZePy.js +2 -0
  209. package/dist/core/web/public/next/assets/RouteErrorBoundary-BaJ1ZePy.js.map +1 -0
  210. package/dist/core/web/public/next/assets/RunInCloudAction-DRSX84Jy.js +2 -0
  211. package/dist/core/web/public/next/assets/RunInCloudAction-DRSX84Jy.js.map +1 -0
  212. package/dist/core/web/public/next/assets/RunInDevinAction-BMji-YN2.js +2 -0
  213. package/dist/core/web/public/next/assets/RunInDevinAction-BMji-YN2.js.map +1 -0
  214. package/dist/core/web/public/next/assets/SchedulingEvidence-xxjV6HF_.js +2 -0
  215. package/dist/core/web/public/next/assets/SchedulingEvidence-xxjV6HF_.js.map +1 -0
  216. package/dist/core/web/public/next/assets/ScreenHost-Dv6z76Ta.js +3 -0
  217. package/dist/core/web/public/next/assets/ScreenHost-Dv6z76Ta.js.map +1 -0
  218. package/dist/core/web/public/next/assets/SeatSelector-YRNdNpP8.js +3 -0
  219. package/dist/core/web/public/next/assets/SeatSelector-YRNdNpP8.js.map +1 -0
  220. package/dist/core/web/public/next/assets/Segmented-BA8RmKYq.js +2 -0
  221. package/dist/core/web/public/next/assets/Segmented-BA8RmKYq.js.map +1 -0
  222. package/dist/core/web/public/next/assets/Select-B8GqZOX9.js +2 -0
  223. package/dist/core/web/public/next/assets/Select-B8GqZOX9.js.map +1 -0
  224. package/dist/core/web/public/next/assets/SessionGate-CnASHl7g.js +2 -0
  225. package/dist/core/web/public/next/assets/SessionGate-CnASHl7g.js.map +1 -0
  226. package/dist/core/web/public/next/assets/SessionInsightChip-DIKfih6i.js +2 -0
  227. package/dist/core/web/public/next/assets/SessionInsightChip-DIKfih6i.js.map +1 -0
  228. package/dist/core/web/public/next/assets/SessionSearch-K6lvMlji.js +2 -0
  229. package/dist/core/web/public/next/assets/SessionSearch-K6lvMlji.js.map +1 -0
  230. package/dist/core/web/public/next/assets/SettingsSection-C-c3f_6J.js +2 -0
  231. package/dist/core/web/public/next/assets/SettingsSection-C-c3f_6J.js.map +1 -0
  232. package/dist/core/web/public/next/assets/SetupChecklist-DAbAdrX4.js +2 -0
  233. package/dist/core/web/public/next/assets/SetupChecklist-DAbAdrX4.js.map +1 -0
  234. package/dist/core/web/public/next/assets/ShadowDecisions-C41uRSw4.js +3 -0
  235. package/dist/core/web/public/next/assets/ShadowDecisions-C41uRSw4.js.map +1 -0
  236. package/dist/core/web/public/next/assets/Sheet-Bk64-Hlt.js +2 -0
  237. package/dist/core/web/public/next/assets/Sheet-Bk64-Hlt.js.map +1 -0
  238. package/dist/core/web/public/next/assets/ShortcutsOverlay-CcP96zqy.js +2 -0
  239. package/dist/core/web/public/next/assets/ShortcutsOverlay-CcP96zqy.js.map +1 -0
  240. package/dist/core/web/public/next/assets/Sidebar-sSNKd57n.js +3 -0
  241. package/dist/core/web/public/next/assets/Sidebar-sSNKd57n.js.map +1 -0
  242. package/dist/core/web/public/next/assets/SkipToContent-BynsXs9i.js +2 -0
  243. package/dist/core/web/public/next/assets/SkipToContent-BynsXs9i.js.map +1 -0
  244. package/dist/core/web/public/next/assets/Slider-DS5HrVzl.js +2 -0
  245. package/dist/core/web/public/next/assets/Slider-DS5HrVzl.js.map +1 -0
  246. package/dist/core/web/public/next/assets/SourcesPane-QffcyDfA.js +2 -0
  247. package/dist/core/web/public/next/assets/SourcesPane-QffcyDfA.js.map +1 -0
  248. package/dist/core/web/public/next/assets/SourcesPanel-DlttePk7.js +2 -0
  249. package/dist/core/web/public/next/assets/SourcesPanel-DlttePk7.js.map +1 -0
  250. package/dist/core/web/public/next/assets/StatTile-mYm1GPj7.js +2 -0
  251. package/dist/core/web/public/next/assets/StatTile-mYm1GPj7.js.map +1 -0
  252. package/dist/core/web/public/next/assets/StatusBadge-Yz7S3kZ2.js +2 -0
  253. package/dist/core/web/public/next/assets/StatusBadge-Yz7S3kZ2.js.map +1 -0
  254. package/dist/core/web/public/next/assets/StepBand-Bdkv7iGd.js +2 -0
  255. package/dist/core/web/public/next/assets/StepBand-Bdkv7iGd.js.map +1 -0
  256. package/dist/core/web/public/next/assets/Surface-DVOAKl2g.js +2 -0
  257. package/dist/core/web/public/next/assets/Surface-DVOAKl2g.js.map +1 -0
  258. package/dist/core/web/public/next/assets/Swimlane-CeMBD_FC.js +2 -0
  259. package/dist/core/web/public/next/assets/Swimlane-CeMBD_FC.js.map +1 -0
  260. package/dist/core/web/public/next/assets/Switch-Cqc_bSoh.js +2 -0
  261. package/dist/core/web/public/next/assets/Switch-Cqc_bSoh.js.map +1 -0
  262. package/dist/core/web/public/next/assets/Tag-BvOxSxYi.js +2 -0
  263. package/dist/core/web/public/next/assets/Tag-BvOxSxYi.js.map +1 -0
  264. package/dist/core/web/public/next/assets/TerminalPane-D3f02aI4.js +3 -0
  265. package/dist/core/web/public/next/assets/TerminalPane-D3f02aI4.js.map +1 -0
  266. package/dist/core/web/public/next/assets/TerminalPane-XZ5n3Pns.js +26 -0
  267. package/dist/core/web/public/next/assets/TerminalPane-XZ5n3Pns.js.map +1 -0
  268. package/dist/core/web/public/next/assets/ThinkingBlock-DZNlOGaV.js +2 -0
  269. package/dist/core/web/public/next/assets/ThinkingBlock-DZNlOGaV.js.map +1 -0
  270. package/dist/core/web/public/next/assets/UniverseConsoleApp-CzBI6Upl.js +2 -0
  271. package/dist/core/web/public/next/assets/UniverseConsoleApp-CzBI6Upl.js.map +1 -0
  272. package/dist/core/web/public/next/assets/UniverseView-Dsi3Kk8o.js +9 -0
  273. package/dist/core/web/public/next/assets/UniverseView-Dsi3Kk8o.js.map +1 -0
  274. package/dist/core/web/public/next/assets/UsageSection-rVvLat9z.js +3 -0
  275. package/dist/core/web/public/next/assets/UsageSection-rVvLat9z.js.map +1 -0
  276. package/dist/core/web/public/next/assets/UsePlaybookAction-B4XAzSeI.js +2 -0
  277. package/dist/core/web/public/next/assets/UsePlaybookAction-B4XAzSeI.js.map +1 -0
  278. package/dist/core/web/public/next/assets/VerseConsoleApp-BmckthwC.css +1 -0
  279. package/dist/core/web/public/next/assets/VerseConsoleApp-DjPpZLo1.js +3 -0
  280. package/dist/core/web/public/next/assets/VerseConsoleApp-DjPpZLo1.js.map +1 -0
  281. package/dist/core/web/public/next/assets/VerseMobileApp-ePNuVERe.js +3 -0
  282. package/dist/core/web/public/next/assets/VerseMobileApp-ePNuVERe.js.map +1 -0
  283. package/dist/core/web/public/next/assets/VerseShared-Bf-XTHCh.js +2 -0
  284. package/dist/core/web/public/next/assets/VerseShared-Bf-XTHCh.js.map +1 -0
  285. package/dist/core/web/public/next/assets/VoiceHud-BG5FV2h0.js +2 -0
  286. package/dist/core/web/public/next/assets/VoiceHud-BG5FV2h0.js.map +1 -0
  287. package/dist/core/web/public/next/assets/VoiceInput-k3vB_FxV.js +2 -0
  288. package/dist/core/web/public/next/assets/VoiceInput-k3vB_FxV.js.map +1 -0
  289. package/dist/core/web/public/next/assets/WikiSection-DeBKNqd6.js +2 -0
  290. package/dist/core/web/public/next/assets/WikiSection-DeBKNqd6.js.map +1 -0
  291. package/dist/core/web/public/next/assets/Workspace-CvwS2-RN.js +6 -0
  292. package/dist/core/web/public/next/assets/Workspace-CvwS2-RN.js.map +1 -0
  293. package/dist/core/web/public/next/assets/actions-Dg6UJTLn.js +2 -0
  294. package/dist/core/web/public/next/assets/actions-Dg6UJTLn.js.map +1 -0
  295. package/dist/core/web/public/next/assets/agent-tools-client-DmJq7zlr.js +2 -0
  296. package/dist/core/web/public/next/assets/agent-tools-client-DmJq7zlr.js.map +1 -0
  297. package/dist/core/web/public/next/assets/agents-focus-B1LKhUVg.js +2 -0
  298. package/dist/core/web/public/next/assets/agents-focus-B1LKhUVg.js.map +1 -0
  299. package/dist/core/web/public/next/assets/app-version-Cb1z8iCO.js +2 -0
  300. package/dist/core/web/public/next/assets/app-version-Cb1z8iCO.js.map +1 -0
  301. package/dist/core/web/public/next/assets/apps-model-_chbcQeN.js +2 -0
  302. package/dist/core/web/public/next/assets/apps-model-_chbcQeN.js.map +1 -0
  303. package/dist/core/web/public/next/assets/ask-seat-O60AydbV.js +2 -0
  304. package/dist/core/web/public/next/assets/ask-seat-O60AydbV.js.map +1 -0
  305. package/dist/core/web/public/next/assets/authority-model-BeDDHF22.js +2 -0
  306. package/dist/core/web/public/next/assets/authority-model-BeDDHF22.js.map +1 -0
  307. package/dist/core/web/public/next/assets/automations-focus-BXaRZ8nX.js +2 -0
  308. package/dist/core/web/public/next/assets/automations-focus-BXaRZ8nX.js.map +1 -0
  309. package/dist/core/web/public/next/assets/budget-queries-Nvx0H2XE.js +2 -0
  310. package/dist/core/web/public/next/assets/budget-queries-Nvx0H2XE.js.map +1 -0
  311. package/dist/core/web/public/next/assets/capacity-strip-model-CBMJ2U-w.js +2 -0
  312. package/dist/core/web/public/next/assets/capacity-strip-model-CBMJ2U-w.js.map +1 -0
  313. package/dist/core/web/public/next/assets/charts-DT9PYS49.js +2 -0
  314. package/dist/core/web/public/next/assets/charts-DT9PYS49.js.map +1 -0
  315. package/dist/core/web/public/next/assets/chat-pane-data-CfbpeAYX.js +2 -0
  316. package/dist/core/web/public/next/assets/chat-pane-data-CfbpeAYX.js.map +1 -0
  317. package/dist/core/web/public/next/assets/checkpoint-queries-BKD2evmX.js +2 -0
  318. package/dist/core/web/public/next/assets/checkpoint-queries-BKD2evmX.js.map +1 -0
  319. package/dist/core/web/public/next/assets/cloud-queries-CsU54eNn.js +2 -0
  320. package/dist/core/web/public/next/assets/cloud-queries-CsU54eNn.js.map +1 -0
  321. package/dist/core/web/public/next/assets/command-catalog-B0ApAGD0.js +2 -0
  322. package/dist/core/web/public/next/assets/command-catalog-B0ApAGD0.js.map +1 -0
  323. package/dist/core/web/public/next/assets/composer-queries-D1H4E0Ye.js +2 -0
  324. package/dist/core/web/public/next/assets/composer-queries-D1H4E0Ye.js.map +1 -0
  325. package/dist/core/web/public/next/assets/connectivity-xQ0Nh0j3.js +2 -0
  326. package/dist/core/web/public/next/assets/connectivity-xQ0Nh0j3.js.map +1 -0
  327. package/dist/core/web/public/next/assets/context-queries-bnI3P0Wt.js +2 -0
  328. package/dist/core/web/public/next/assets/context-queries-bnI3P0Wt.js.map +1 -0
  329. package/dist/core/web/public/next/assets/control-queries-BG53otwz.js +2 -0
  330. package/dist/core/web/public/next/assets/control-queries-BG53otwz.js.map +1 -0
  331. package/dist/core/web/public/next/assets/copy-setup-COMDnur3.js +2 -0
  332. package/dist/core/web/public/next/assets/copy-setup-COMDnur3.js.map +1 -0
  333. package/dist/core/web/public/next/assets/deep-link-CqOP-JEm.js +2 -0
  334. package/dist/core/web/public/next/assets/deep-link-CqOP-JEm.js.map +1 -0
  335. package/dist/core/web/public/next/assets/device-permissions-DpsJJcUW.js +2 -0
  336. package/dist/core/web/public/next/assets/device-permissions-DpsJJcUW.js.map +1 -0
  337. package/dist/core/web/public/next/assets/devin-queries-BSEOfLuZ.js +2 -0
  338. package/dist/core/web/public/next/assets/devin-queries-BSEOfLuZ.js.map +1 -0
  339. package/dist/core/web/public/next/assets/dock-icons-DK7QcBXJ.js +2 -0
  340. package/dist/core/web/public/next/assets/dock-icons-DK7QcBXJ.js.map +1 -0
  341. package/dist/core/web/public/next/assets/dock-panes-DvQ6t4Nl.js +2 -0
  342. package/dist/core/web/public/next/assets/dock-panes-DvQ6t4Nl.js.map +1 -0
  343. package/dist/core/web/public/next/assets/fleet-control-queries-BL-Vlf85.js +2 -0
  344. package/dist/core/web/public/next/assets/fleet-control-queries-BL-Vlf85.js.map +1 -0
  345. package/dist/core/web/public/next/assets/fleet-queries-eacERnLm.js +2 -0
  346. package/dist/core/web/public/next/assets/fleet-queries-eacERnLm.js.map +1 -0
  347. package/dist/core/web/public/next/assets/fleet-state-DfKcuo4A.js +3 -0
  348. package/dist/core/web/public/next/assets/fleet-state-DfKcuo4A.js.map +1 -0
  349. package/dist/core/web/public/next/assets/focus-trap-BZeH0rVB.js +2 -0
  350. package/dist/core/web/public/next/assets/focus-trap-BZeH0rVB.js.map +1 -0
  351. package/dist/core/web/public/next/assets/git-model-C1I4z_iQ.js +5 -0
  352. package/dist/core/web/public/next/assets/git-model-C1I4z_iQ.js.map +1 -0
  353. package/dist/core/web/public/next/assets/global-w7KDTTi0.js +3 -0
  354. package/dist/core/web/public/next/assets/global-w7KDTTi0.js.map +1 -0
  355. package/dist/core/web/public/next/assets/guarded-action-J9umcJgI.js +3 -0
  356. package/dist/core/web/public/next/assets/guarded-action-J9umcJgI.js.map +1 -0
  357. package/dist/core/web/public/next/assets/guarded-runners-Da5yA9Im.js +2 -0
  358. package/dist/core/web/public/next/assets/guarded-runners-Da5yA9Im.js.map +1 -0
  359. package/dist/core/web/public/next/assets/health-queries-D3HgrdU_.js +2 -0
  360. package/dist/core/web/public/next/assets/health-queries-D3HgrdU_.js.map +1 -0
  361. package/dist/core/web/public/next/assets/icons-C3G-y5j2.js +2 -0
  362. package/dist/core/web/public/next/assets/icons-C3G-y5j2.js.map +1 -0
  363. package/dist/core/web/public/next/assets/index-BC5Uslm5.js +11 -0
  364. package/dist/core/web/public/next/assets/index-BC5Uslm5.js.map +1 -0
  365. package/dist/core/web/public/next/assets/jev-queries-D6JNU-s6.js +2 -0
  366. package/dist/core/web/public/next/assets/jev-queries-D6JNU-s6.js.map +1 -0
  367. package/dist/core/web/public/next/assets/ladder-queries-BnYWjJoi.js +2 -0
  368. package/dist/core/web/public/next/assets/ladder-queries-BnYWjJoi.js.map +1 -0
  369. package/dist/core/web/public/next/assets/leader-focus-C6LVWgYI.js +2 -0
  370. package/dist/core/web/public/next/assets/leader-focus-C6LVWgYI.js.map +1 -0
  371. package/dist/core/web/public/next/assets/live-model-BPyZCTr1.js +2 -0
  372. package/dist/core/web/public/next/assets/live-model-BPyZCTr1.js.map +1 -0
  373. package/dist/core/web/public/next/assets/mobile-actions-avKNGddD.js +2 -0
  374. package/dist/core/web/public/next/assets/mobile-actions-avKNGddD.js.map +1 -0
  375. package/dist/core/web/public/next/assets/mobile-toast-BqSzGmw1.js +2 -0
  376. package/dist/core/web/public/next/assets/mobile-toast-BqSzGmw1.js.map +1 -0
  377. package/dist/core/web/public/next/assets/multimodel-flows-DOHsEKUG.js +7 -0
  378. package/dist/core/web/public/next/assets/multimodel-flows-DOHsEKUG.js.map +1 -0
  379. package/dist/core/web/public/next/assets/multimodel-queries-xmBBUT6n.js +2 -0
  380. package/dist/core/web/public/next/assets/multimodel-queries-xmBBUT6n.js.map +1 -0
  381. package/dist/core/web/public/next/assets/mutations-CdLi0erM.js +2 -0
  382. package/dist/core/web/public/next/assets/mutations-CdLi0erM.js.map +1 -0
  383. package/dist/core/web/public/next/assets/nav-CUXtg-Iw.js +2 -0
  384. package/dist/core/web/public/next/assets/nav-CUXtg-Iw.js.map +1 -0
  385. package/dist/core/web/public/next/assets/needs-you-actions-B2tjWO-0.js +2 -0
  386. package/dist/core/web/public/next/assets/needs-you-actions-B2tjWO-0.js.map +1 -0
  387. package/dist/core/web/public/next/assets/needs-you-model-DL9EEd2L.js +2 -0
  388. package/dist/core/web/public/next/assets/needs-you-model-DL9EEd2L.js.map +1 -0
  389. package/dist/core/web/public/next/assets/open-terminal-BfbxGoYQ.js +2 -0
  390. package/dist/core/web/public/next/assets/open-terminal-BfbxGoYQ.js.map +1 -0
  391. package/dist/core/web/public/next/assets/open-terminal-request-BT1UE0fz.js +2 -0
  392. package/dist/core/web/public/next/assets/open-terminal-request-BT1UE0fz.js.map +1 -0
  393. package/dist/core/web/public/next/assets/overnight-queries-cjjogTzn.js +2 -0
  394. package/dist/core/web/public/next/assets/overnight-queries-cjjogTzn.js.map +1 -0
  395. package/dist/core/web/public/next/assets/palette-handoff-XL2WWc9I.js +2 -0
  396. package/dist/core/web/public/next/assets/palette-handoff-XL2WWc9I.js.map +1 -0
  397. package/dist/core/web/public/next/assets/panes-5GU8cuI9.js +3 -0
  398. package/dist/core/web/public/next/assets/panes-5GU8cuI9.js.map +1 -0
  399. package/dist/core/web/public/next/assets/path-display-ZSzKoo8T.js +2 -0
  400. package/dist/core/web/public/next/assets/path-display-ZSzKoo8T.js.map +1 -0
  401. package/dist/core/web/public/next/assets/playbook-composer-D04tqOmU.js +2 -0
  402. package/dist/core/web/public/next/assets/playbook-composer-D04tqOmU.js.map +1 -0
  403. package/dist/core/web/public/next/assets/playbook-focus-DD1VIfkd.js +2 -0
  404. package/dist/core/web/public/next/assets/playbook-focus-DD1VIfkd.js.map +1 -0
  405. package/dist/core/web/public/next/assets/playbooks-queries-X7NGzpIn.js +2 -0
  406. package/dist/core/web/public/next/assets/playbooks-queries-X7NGzpIn.js.map +1 -0
  407. package/dist/core/web/public/next/assets/preloaded-6hKNGuRp.js +2 -0
  408. package/dist/core/web/public/next/assets/preloaded-6hKNGuRp.js.map +1 -0
  409. package/dist/core/web/public/next/assets/primitives-6nAFZkcg.js +1 -0
  410. package/dist/core/web/public/next/assets/pwa-BzXJXtDt.js +2 -0
  411. package/dist/core/web/public/next/assets/pwa-BzXJXtDt.js.map +1 -0
  412. package/dist/core/web/public/next/assets/queries-PgZlvFqO.js +2 -0
  413. package/dist/core/web/public/next/assets/queries-PgZlvFqO.js.map +1 -0
  414. package/dist/core/web/public/next/assets/reasoning-pref-BS0PSZ8d.js +2 -0
  415. package/dist/core/web/public/next/assets/reasoning-pref-BS0PSZ8d.js.map +1 -0
  416. package/dist/core/web/public/next/assets/remote-session-Bu-dtRcS.js +3 -0
  417. package/dist/core/web/public/next/assets/remote-session-Bu-dtRcS.js.map +1 -0
  418. package/dist/core/web/public/next/assets/resolved-store-UYN2k9My.js +2 -0
  419. package/dist/core/web/public/next/assets/resolved-store-UYN2k9My.js.map +1 -0
  420. package/dist/core/web/public/next/assets/resources-queries-XfQ8w9In.js +2 -0
  421. package/dist/core/web/public/next/assets/resources-queries-XfQ8w9In.js.map +1 -0
  422. package/dist/core/web/public/next/assets/reveal-anchor-3ZUTtB8Q.js +2 -0
  423. package/dist/core/web/public/next/assets/reveal-anchor-3ZUTtB8Q.js.map +1 -0
  424. package/dist/core/web/public/next/assets/sheet-DP8ByDWU.js +2 -0
  425. package/dist/core/web/public/next/assets/sheet-DP8ByDWU.js.map +1 -0
  426. package/dist/core/web/public/next/assets/slots-DWlj_c7i.js +3 -0
  427. package/dist/core/web/public/next/assets/slots-DWlj_c7i.js.map +1 -0
  428. package/dist/core/web/public/next/assets/sources-queries-Cjk1rpDU.js +4 -0
  429. package/dist/core/web/public/next/assets/sources-queries-Cjk1rpDU.js.map +1 -0
  430. package/dist/core/web/public/next/assets/sse-Z3U8XhDI.js +2 -0
  431. package/dist/core/web/public/next/assets/sse-Z3U8XhDI.js.map +1 -0
  432. package/dist/core/web/public/next/assets/surface-data-hufdOfpz.js +2 -0
  433. package/dist/core/web/public/next/assets/surface-data-hufdOfpz.js.map +1 -0
  434. package/dist/core/web/public/next/assets/surface-prefetch-CFtP8imB.js +2 -0
  435. package/dist/core/web/public/next/assets/surface-prefetch-CFtP8imB.js.map +1 -0
  436. package/dist/core/web/public/next/assets/terminal-client-CCSvMeEv.js +2 -0
  437. package/dist/core/web/public/next/assets/terminal-client-CCSvMeEv.js.map +1 -0
  438. package/dist/core/web/public/next/assets/terminal-icons-Dx6neM-J.js +2 -0
  439. package/dist/core/web/public/next/assets/terminal-icons-Dx6neM-J.js.map +1 -0
  440. package/dist/core/web/public/next/assets/terminal-view-BSieiQvi.js +6 -0
  441. package/dist/core/web/public/next/assets/terminal-view-BSieiQvi.js.map +1 -0
  442. package/dist/core/web/public/next/assets/thread-data-Cd2DZffn.js +2 -0
  443. package/dist/core/web/public/next/assets/thread-data-Cd2DZffn.js.map +1 -0
  444. package/dist/core/web/public/next/assets/ui-parts-wvov2ktB.js +2 -0
  445. package/dist/core/web/public/next/assets/ui-parts-wvov2ktB.js.map +1 -0
  446. package/dist/core/web/public/next/assets/usage-queries-nZjJ1aky.js +2 -0
  447. package/dist/core/web/public/next/assets/usage-queries-nZjJ1aky.js.map +1 -0
  448. package/dist/core/web/public/next/assets/use-chat-activity-_tBmEPPN.js +2 -0
  449. package/dist/core/web/public/next/assets/use-chat-activity-_tBmEPPN.js.map +1 -0
  450. package/dist/core/web/public/next/assets/use-guarded-action-DKKjhPKG.js +2 -0
  451. package/dist/core/web/public/next/assets/use-guarded-action-DKKjhPKG.js.map +1 -0
  452. package/dist/core/web/public/next/assets/use-ticker-w1c3SOqK.js +2 -0
  453. package/dist/core/web/public/next/assets/use-ticker-w1c3SOqK.js.map +1 -0
  454. package/dist/core/web/public/next/assets/use-token-gate-h5QAERLT.js +2 -0
  455. package/dist/core/web/public/next/assets/use-token-gate-h5QAERLT.js.map +1 -0
  456. package/dist/core/web/public/next/assets/useAutoSeat-Dpbn0XUv.js +2 -0
  457. package/dist/core/web/public/next/assets/useAutoSeat-Dpbn0XUv.js.map +1 -0
  458. package/dist/core/web/public/next/assets/useOnboarding-VoV1LcuJ.js +2 -0
  459. package/dist/core/web/public/next/assets/useOnboarding-VoV1LcuJ.js.map +1 -0
  460. package/dist/core/web/public/next/assets/useSeatHealth-DuSaKdIs.js +2 -0
  461. package/dist/core/web/public/next/assets/useSeatHealth-DuSaKdIs.js.map +1 -0
  462. package/dist/core/web/public/next/assets/useSeatsRefresh-DFaR1jSz.js +2 -0
  463. package/dist/core/web/public/next/assets/useSeatsRefresh-DFaR1jSz.js.map +1 -0
  464. package/dist/core/web/public/next/assets/useVerseSession-BOsgJzT5.js +2 -0
  465. package/dist/core/web/public/next/assets/useVerseSession-BOsgJzT5.js.map +1 -0
  466. package/dist/core/web/public/next/assets/useVerseTranscript-BN_fMz6x.js +2 -0
  467. package/dist/core/web/public/next/assets/useVerseTranscript-BN_fMz6x.js.map +1 -0
  468. package/dist/core/web/public/next/assets/verse-bootstrap-query-B3vFD9XK.js +2 -0
  469. package/dist/core/web/public/next/assets/verse-bootstrap-query-B3vFD9XK.js.map +1 -0
  470. package/dist/core/web/public/next/assets/verse-icons-vSkflmRB.js +2 -0
  471. package/dist/core/web/public/next/assets/verse-icons-vSkflmRB.js.map +1 -0
  472. package/dist/core/web/public/next/assets/warmup-D9MjYs5S.js +3 -0
  473. package/dist/core/web/public/next/assets/warmup-D9MjYs5S.js.map +1 -0
  474. package/dist/core/web/public/next/assets/wiki-focus-De8-E48Z.js +2 -0
  475. package/dist/core/web/public/next/assets/wiki-focus-De8-E48Z.js.map +1 -0
  476. package/dist/core/web/public/next/index.html +1 -1
  477. package/dist/release-dependency-inventory.json +1 -1
  478. package/package.json +1 -1
  479. package/dist/core/web/public/next/assets/ActionMenu-CebJFKYy.js +0 -2
  480. package/dist/core/web/public/next/assets/ActionMenu-CebJFKYy.js.map +0 -1
  481. package/dist/core/web/public/next/assets/Advanced-Dr9aVbXV.js +0 -2
  482. package/dist/core/web/public/next/assets/Advanced-Dr9aVbXV.js.map +0 -1
  483. package/dist/core/web/public/next/assets/AgentDetailScreen-DCVf81Vo.js +0 -2
  484. package/dist/core/web/public/next/assets/AgentDetailScreen-DCVf81Vo.js.map +0 -1
  485. package/dist/core/web/public/next/assets/AgentToolsSheet-C3SbvEiV.js +0 -2
  486. package/dist/core/web/public/next/assets/AgentToolsSheet-C3SbvEiV.js.map +0 -1
  487. package/dist/core/web/public/next/assets/AgentToolsStrip-CZNxj_Iv.js +0 -2
  488. package/dist/core/web/public/next/assets/AgentToolsStrip-CZNxj_Iv.js.map +0 -1
  489. package/dist/core/web/public/next/assets/AgentsScreen-zLj4gzPR.js +0 -2
  490. package/dist/core/web/public/next/assets/AgentsScreen-zLj4gzPR.js.map +0 -1
  491. package/dist/core/web/public/next/assets/AgentsSection-CIo_nRmi.js +0 -3
  492. package/dist/core/web/public/next/assets/AgentsSection-CIo_nRmi.js.map +0 -1
  493. package/dist/core/web/public/next/assets/App-CPKNuUdC.js +0 -8
  494. package/dist/core/web/public/next/assets/App-CPKNuUdC.js.map +0 -1
  495. package/dist/core/web/public/next/assets/AppsSection-D2F2CM-E.js +0 -2
  496. package/dist/core/web/public/next/assets/AppsSection-D2F2CM-E.js.map +0 -1
  497. package/dist/core/web/public/next/assets/AreaTrend-DiZu8bjc.js +0 -2
  498. package/dist/core/web/public/next/assets/AreaTrend-DiZu8bjc.js.map +0 -1
  499. package/dist/core/web/public/next/assets/AutomationsSection-B4rBNUyo.js +0 -2
  500. package/dist/core/web/public/next/assets/AutomationsSection-B4rBNUyo.js.map +0 -1
  501. package/dist/core/web/public/next/assets/AutonomyOffState-DEznxI-Q.js +0 -3
  502. package/dist/core/web/public/next/assets/AutonomyOffState-DEznxI-Q.js.map +0 -1
  503. package/dist/core/web/public/next/assets/AutonomySection-Dq5n3gs7.js +0 -2
  504. package/dist/core/web/public/next/assets/AutonomySection-Dq5n3gs7.js.map +0 -1
  505. package/dist/core/web/public/next/assets/AutonomyStatus-Uydy6-pZ.js +0 -2
  506. package/dist/core/web/public/next/assets/AutonomyStatus-Uydy6-pZ.js.map +0 -1
  507. package/dist/core/web/public/next/assets/BranchBar-BzUmUM_j.js +0 -2
  508. package/dist/core/web/public/next/assets/BranchBar-BzUmUM_j.js.map +0 -1
  509. package/dist/core/web/public/next/assets/BrowserPanel-C_VI6Awi.js +0 -7
  510. package/dist/core/web/public/next/assets/BrowserPanel-C_VI6Awi.js.map +0 -1
  511. package/dist/core/web/public/next/assets/BudgetControl-B23rNAuC.js +0 -2
  512. package/dist/core/web/public/next/assets/BudgetControl-B23rNAuC.js.map +0 -1
  513. package/dist/core/web/public/next/assets/Button-DJY_Pu5B.js +0 -2
  514. package/dist/core/web/public/next/assets/Button-DJY_Pu5B.js.map +0 -1
  515. package/dist/core/web/public/next/assets/CapacityStrip-B5Yj2PhZ.js +0 -2
  516. package/dist/core/web/public/next/assets/CapacityStrip-B5Yj2PhZ.js.map +0 -1
  517. package/dist/core/web/public/next/assets/ChangesPaneHost-LsUonc7P.js +0 -16
  518. package/dist/core/web/public/next/assets/ChangesPaneHost-LsUonc7P.js.map +0 -1
  519. package/dist/core/web/public/next/assets/ChartFrame-CakjKkPx.js +0 -2
  520. package/dist/core/web/public/next/assets/ChartFrame-CakjKkPx.js.map +0 -1
  521. package/dist/core/web/public/next/assets/ChatPanes-DgKskpXb.js +0 -2
  522. package/dist/core/web/public/next/assets/ChatPanes-DgKskpXb.js.map +0 -1
  523. package/dist/core/web/public/next/assets/ChatSection-DXpzV1NW.js +0 -3
  524. package/dist/core/web/public/next/assets/ChatSection-DXpzV1NW.js.map +0 -1
  525. package/dist/core/web/public/next/assets/ChecksPanel-BeCJVOJC.js +0 -5
  526. package/dist/core/web/public/next/assets/ChecksPanel-BeCJVOJC.js.map +0 -1
  527. package/dist/core/web/public/next/assets/CloudBudgetForm-4SWIGJLs.js +0 -2
  528. package/dist/core/web/public/next/assets/CloudBudgetForm-4SWIGJLs.js.map +0 -1
  529. package/dist/core/web/public/next/assets/CommandPalette-B4QaFGY5.js +0 -3
  530. package/dist/core/web/public/next/assets/CommandPalette-B4QaFGY5.js.map +0 -1
  531. package/dist/core/web/public/next/assets/CommandSection-8TFjYitt.js +0 -3
  532. package/dist/core/web/public/next/assets/CommandSection-8TFjYitt.js.map +0 -1
  533. package/dist/core/web/public/next/assets/CommandWorkflowForm-B2ooVjof.js +0 -9
  534. package/dist/core/web/public/next/assets/CommandWorkflowForm-B2ooVjof.js.map +0 -1
  535. package/dist/core/web/public/next/assets/CommandWorkflowPicker-C09vJiUG.js +0 -3
  536. package/dist/core/web/public/next/assets/CommandWorkflowPicker-C09vJiUG.js.map +0 -1
  537. package/dist/core/web/public/next/assets/CompareDialog-CaopnGI0.js +0 -4
  538. package/dist/core/web/public/next/assets/CompareDialog-CaopnGI0.js.map +0 -1
  539. package/dist/core/web/public/next/assets/ComputerControl-BflC6wd1.js +0 -2
  540. package/dist/core/web/public/next/assets/ComputerControl-BflC6wd1.js.map +0 -1
  541. package/dist/core/web/public/next/assets/ConfirmDialog-CTeMFavv.js +0 -2
  542. package/dist/core/web/public/next/assets/ConfirmDialog-CTeMFavv.js.map +0 -1
  543. package/dist/core/web/public/next/assets/DeleteChatDialog-B2bUTuZ9.js +0 -2
  544. package/dist/core/web/public/next/assets/DeleteChatDialog-B2bUTuZ9.js.map +0 -1
  545. package/dist/core/web/public/next/assets/DevinStopDialog-DPP34cna.js +0 -2
  546. package/dist/core/web/public/next/assets/DevinStopDialog-DPP34cna.js.map +0 -1
  547. package/dist/core/web/public/next/assets/Dialog-r4j4R4b6.js +0 -2
  548. package/dist/core/web/public/next/assets/Dialog-r4j4R4b6.js.map +0 -1
  549. package/dist/core/web/public/next/assets/DiffPane-CKnpzqaU.js +0 -2
  550. package/dist/core/web/public/next/assets/DiffPane-CKnpzqaU.js.map +0 -1
  551. package/dist/core/web/public/next/assets/DiffViewer-BzQ7245p.js +0 -2
  552. package/dist/core/web/public/next/assets/DiffViewer-BzQ7245p.js.map +0 -1
  553. package/dist/core/web/public/next/assets/DockHost-BCZtC_lm.js +0 -2
  554. package/dist/core/web/public/next/assets/DockHost-BCZtC_lm.js.map +0 -1
  555. package/dist/core/web/public/next/assets/EmptyState-Cwpga8L9.js +0 -2
  556. package/dist/core/web/public/next/assets/EmptyState-Cwpga8L9.js.map +0 -1
  557. package/dist/core/web/public/next/assets/Epistemic-BBwXv-C1.js +0 -2
  558. package/dist/core/web/public/next/assets/Epistemic-BBwXv-C1.js.map +0 -1
  559. package/dist/core/web/public/next/assets/EvidenceTimeline-hAENJQCa.js +0 -2
  560. package/dist/core/web/public/next/assets/EvidenceTimeline-hAENJQCa.js.map +0 -1
  561. package/dist/core/web/public/next/assets/FilesPane-CrPN5zlx.js +0 -2
  562. package/dist/core/web/public/next/assets/FilesPane-CrPN5zlx.js.map +0 -1
  563. package/dist/core/web/public/next/assets/FleetScreen-Cz9HQ-st.js +0 -2
  564. package/dist/core/web/public/next/assets/FleetScreen-Cz9HQ-st.js.map +0 -1
  565. package/dist/core/web/public/next/assets/FleetSection-CmZKQ1rr.js +0 -5
  566. package/dist/core/web/public/next/assets/FleetSection-CmZKQ1rr.js.map +0 -1
  567. package/dist/core/web/public/next/assets/Funnel-Cfg55EZp.js +0 -2
  568. package/dist/core/web/public/next/assets/Funnel-Cfg55EZp.js.map +0 -1
  569. package/dist/core/web/public/next/assets/GearTray-D-Mhc8TJ.js +0 -2
  570. package/dist/core/web/public/next/assets/GearTray-D-Mhc8TJ.js.map +0 -1
  571. package/dist/core/web/public/next/assets/GitDialogs-e-7RQEGv.js +0 -2
  572. package/dist/core/web/public/next/assets/GitDialogs-e-7RQEGv.js.map +0 -1
  573. package/dist/core/web/public/next/assets/GrowthSection-DsIrdTDd.js +0 -3
  574. package/dist/core/web/public/next/assets/GrowthSection-DsIrdTDd.js.map +0 -1
  575. package/dist/core/web/public/next/assets/HandoffDialog-1MB2fmT1.js +0 -2
  576. package/dist/core/web/public/next/assets/HandoffDialog-1MB2fmT1.js.map +0 -1
  577. package/dist/core/web/public/next/assets/HomeBody-n_t3A58_.js +0 -3
  578. package/dist/core/web/public/next/assets/HomeBody-n_t3A58_.js.map +0 -1
  579. package/dist/core/web/public/next/assets/HomeSeats-DA66aOWC.js +0 -2
  580. package/dist/core/web/public/next/assets/HomeSeats-DA66aOWC.js.map +0 -1
  581. package/dist/core/web/public/next/assets/Input-Bt6fp051.js +0 -2
  582. package/dist/core/web/public/next/assets/Input-Bt6fp051.js.map +0 -1
  583. package/dist/core/web/public/next/assets/LaunchDialog-BCd7XqCv.js +0 -9
  584. package/dist/core/web/public/next/assets/LaunchDialog-BCd7XqCv.js.map +0 -1
  585. package/dist/core/web/public/next/assets/LeaderCard-DFAFcyfZ.js +0 -2
  586. package/dist/core/web/public/next/assets/LeaderCard-DFAFcyfZ.js.map +0 -1
  587. package/dist/core/web/public/next/assets/LeaderConversation-LSenfZzT.js +0 -3
  588. package/dist/core/web/public/next/assets/LeaderConversation-LSenfZzT.js.map +0 -1
  589. package/dist/core/web/public/next/assets/LeaderScreen-B2UxRWUm.js +0 -2
  590. package/dist/core/web/public/next/assets/LeaderScreen-B2UxRWUm.js.map +0 -1
  591. package/dist/core/web/public/next/assets/LessonsPanel-D86ZT0we.js +0 -2
  592. package/dist/core/web/public/next/assets/LessonsPanel-D86ZT0we.js.map +0 -1
  593. package/dist/core/web/public/next/assets/LiveTimer-AtG5hPwV.js +0 -2
  594. package/dist/core/web/public/next/assets/LiveTimer-AtG5hPwV.js.map +0 -1
  595. package/dist/core/web/public/next/assets/LocalSeatBadge-XfGRZCA3.js +0 -2
  596. package/dist/core/web/public/next/assets/LocalSeatBadge-XfGRZCA3.js.map +0 -1
  597. package/dist/core/web/public/next/assets/MatrixHeatmap-PSnyMJ2h.js +0 -2
  598. package/dist/core/web/public/next/assets/MatrixHeatmap-PSnyMJ2h.js.map +0 -1
  599. package/dist/core/web/public/next/assets/McpSection-BG2FSkgH.js +0 -2
  600. package/dist/core/web/public/next/assets/McpSection-BG2FSkgH.js.map +0 -1
  601. package/dist/core/web/public/next/assets/MessageMarkdown-CQEqoMvf.js +0 -3
  602. package/dist/core/web/public/next/assets/MessageMarkdown-CQEqoMvf.js.map +0 -1
  603. package/dist/core/web/public/next/assets/MessageMarkdownRenderer-DU-VLDhb.js +0 -72
  604. package/dist/core/web/public/next/assets/MessageMarkdownRenderer-DU-VLDhb.js.map +0 -1
  605. package/dist/core/web/public/next/assets/Meter-BfaE-BjY.js +0 -2
  606. package/dist/core/web/public/next/assets/Meter-BfaE-BjY.js.map +0 -1
  607. package/dist/core/web/public/next/assets/MicButton-BbGB7y_9.js +0 -2
  608. package/dist/core/web/public/next/assets/MicButton-BbGB7y_9.js.map +0 -1
  609. package/dist/core/web/public/next/assets/MindSection-CX0VaHo1.js +0 -3
  610. package/dist/core/web/public/next/assets/MindSection-CX0VaHo1.js.map +0 -1
  611. package/dist/core/web/public/next/assets/MobileComposer-CFeLWUCz.js +0 -2
  612. package/dist/core/web/public/next/assets/MobileComposer-CFeLWUCz.js.map +0 -1
  613. package/dist/core/web/public/next/assets/MobileGuardSheet-cGW9RCTr.js +0 -2
  614. package/dist/core/web/public/next/assets/MobileGuardSheet-cGW9RCTr.js.map +0 -1
  615. package/dist/core/web/public/next/assets/MobileRuntime-BWTZ_QLr.js +0 -3
  616. package/dist/core/web/public/next/assets/MobileRuntime-BWTZ_QLr.js.map +0 -1
  617. package/dist/core/web/public/next/assets/MoreScreen-BcHZhVrR.js +0 -2
  618. package/dist/core/web/public/next/assets/MoreScreen-BcHZhVrR.js.map +0 -1
  619. package/dist/core/web/public/next/assets/MultiModelBar-COxIRv7m.js +0 -7
  620. package/dist/core/web/public/next/assets/MultiModelBar-COxIRv7m.js.map +0 -1
  621. package/dist/core/web/public/next/assets/MutationTokenDialog-Dnf_rcnc.js +0 -2
  622. package/dist/core/web/public/next/assets/MutationTokenDialog-Dnf_rcnc.js.map +0 -1
  623. package/dist/core/web/public/next/assets/NeedsYouDrawer-COrUlnd0.js +0 -3
  624. package/dist/core/web/public/next/assets/NeedsYouDrawer-COrUlnd0.js.map +0 -1
  625. package/dist/core/web/public/next/assets/NeedsYouList-AXzOe4EL.js +0 -2
  626. package/dist/core/web/public/next/assets/NeedsYouList-AXzOe4EL.js.map +0 -1
  627. package/dist/core/web/public/next/assets/NeedsYouScreen-HSXybHgd.js +0 -2
  628. package/dist/core/web/public/next/assets/NeedsYouScreen-HSXybHgd.js.map +0 -1
  629. package/dist/core/web/public/next/assets/NewAgentScreen-BI849ZsG.js +0 -2
  630. package/dist/core/web/public/next/assets/NewAgentScreen-BI849ZsG.js.map +0 -1
  631. package/dist/core/web/public/next/assets/NewChatDialog-BHoCnP6Q.js +0 -4
  632. package/dist/core/web/public/next/assets/NewChatDialog-BHoCnP6Q.js.map +0 -1
  633. package/dist/core/web/public/next/assets/OnboardingFlow-BVljU2uy.js +0 -3
  634. package/dist/core/web/public/next/assets/OnboardingFlow-BVljU2uy.js.map +0 -1
  635. package/dist/core/web/public/next/assets/OnboardingGate-DlI4L7Ki.js +0 -3
  636. package/dist/core/web/public/next/assets/OnboardingGate-DlI4L7Ki.js.map +0 -1
  637. package/dist/core/web/public/next/assets/PlaybooksSection-hhNpXnsR.js +0 -9
  638. package/dist/core/web/public/next/assets/PlaybooksSection-hhNpXnsR.js.map +0 -1
  639. package/dist/core/web/public/next/assets/PreviewPane-BbXr63u2.js +0 -2
  640. package/dist/core/web/public/next/assets/PreviewPane-BbXr63u2.js.map +0 -1
  641. package/dist/core/web/public/next/assets/ProviderLogo-BliSWEMw.js +0 -2
  642. package/dist/core/web/public/next/assets/ProviderLogo-BliSWEMw.js.map +0 -1
  643. package/dist/core/web/public/next/assets/RailStatus-SnrVxLnp.js +0 -2
  644. package/dist/core/web/public/next/assets/RailStatus-SnrVxLnp.js.map +0 -1
  645. package/dist/core/web/public/next/assets/ReasoningPane-C04_bOAi.js +0 -2
  646. package/dist/core/web/public/next/assets/ReasoningPane-C04_bOAi.js.map +0 -1
  647. package/dist/core/web/public/next/assets/ReasoningSheet-BvNFwtuX.js +0 -2
  648. package/dist/core/web/public/next/assets/ReasoningSheet-BvNFwtuX.js.map +0 -1
  649. package/dist/core/web/public/next/assets/RefreshIndicator-BNptNJiV.js +0 -2
  650. package/dist/core/web/public/next/assets/RefreshIndicator-BNptNJiV.js.map +0 -1
  651. package/dist/core/web/public/next/assets/RemoteMobileApp-osaSEvnm.js +0 -2
  652. package/dist/core/web/public/next/assets/RemoteMobileApp-osaSEvnm.js.map +0 -1
  653. package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-LO31zjUR.js +0 -7
  654. package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-LO31zjUR.js.map +0 -1
  655. package/dist/core/web/public/next/assets/ResourcesChrome-ByZE532G.js +0 -3
  656. package/dist/core/web/public/next/assets/ResourcesChrome-ByZE532G.js.map +0 -1
  657. package/dist/core/web/public/next/assets/ResourcesChrome-p_VCkMZH.css +0 -1
  658. package/dist/core/web/public/next/assets/ResourcesDrawer-BH9uwNE8.js +0 -3
  659. package/dist/core/web/public/next/assets/ResourcesDrawer-BH9uwNE8.js.map +0 -1
  660. package/dist/core/web/public/next/assets/ReviewMenu-B2A_YDPi.js +0 -2
  661. package/dist/core/web/public/next/assets/ReviewMenu-B2A_YDPi.js.map +0 -1
  662. package/dist/core/web/public/next/assets/RouteErrorBoundary-CVabFM97.js +0 -2
  663. package/dist/core/web/public/next/assets/RouteErrorBoundary-CVabFM97.js.map +0 -1
  664. package/dist/core/web/public/next/assets/RunInCloudAction-BpNHE7m8.js +0 -2
  665. package/dist/core/web/public/next/assets/RunInCloudAction-BpNHE7m8.js.map +0 -1
  666. package/dist/core/web/public/next/assets/RunInDevinAction-Bkf5Gb3a.js +0 -2
  667. package/dist/core/web/public/next/assets/RunInDevinAction-Bkf5Gb3a.js.map +0 -1
  668. package/dist/core/web/public/next/assets/SchedulingEvidence-B08-qhhm.js +0 -2
  669. package/dist/core/web/public/next/assets/SchedulingEvidence-B08-qhhm.js.map +0 -1
  670. package/dist/core/web/public/next/assets/ScreenHost-BGSxFyWK.js +0 -3
  671. package/dist/core/web/public/next/assets/ScreenHost-BGSxFyWK.js.map +0 -1
  672. package/dist/core/web/public/next/assets/SeatSelector-B4lRZl0K.js +0 -3
  673. package/dist/core/web/public/next/assets/SeatSelector-B4lRZl0K.js.map +0 -1
  674. package/dist/core/web/public/next/assets/Segmented-Dokzywy8.js +0 -2
  675. package/dist/core/web/public/next/assets/Segmented-Dokzywy8.js.map +0 -1
  676. package/dist/core/web/public/next/assets/Select-tf4lNvWD.js +0 -2
  677. package/dist/core/web/public/next/assets/Select-tf4lNvWD.js.map +0 -1
  678. package/dist/core/web/public/next/assets/SessionGate-Bab2qO29.js +0 -2
  679. package/dist/core/web/public/next/assets/SessionGate-Bab2qO29.js.map +0 -1
  680. package/dist/core/web/public/next/assets/SessionInsightChip-C-fj8h4A.js +0 -2
  681. package/dist/core/web/public/next/assets/SessionInsightChip-C-fj8h4A.js.map +0 -1
  682. package/dist/core/web/public/next/assets/SessionSearch-CqjjwOW2.js +0 -2
  683. package/dist/core/web/public/next/assets/SessionSearch-CqjjwOW2.js.map +0 -1
  684. package/dist/core/web/public/next/assets/SettingsSection-DfOsHzl6.js +0 -2
  685. package/dist/core/web/public/next/assets/SettingsSection-DfOsHzl6.js.map +0 -1
  686. package/dist/core/web/public/next/assets/SetupChecklist-BsxCTcYY.js +0 -2
  687. package/dist/core/web/public/next/assets/SetupChecklist-BsxCTcYY.js.map +0 -1
  688. package/dist/core/web/public/next/assets/ShadowDecisions-B1ZPv7K-.js +0 -3
  689. package/dist/core/web/public/next/assets/ShadowDecisions-B1ZPv7K-.js.map +0 -1
  690. package/dist/core/web/public/next/assets/Sheet-DLlZ00Lu.js +0 -2
  691. package/dist/core/web/public/next/assets/Sheet-DLlZ00Lu.js.map +0 -1
  692. package/dist/core/web/public/next/assets/ShortcutsOverlay-CDwQdpGV.js +0 -2
  693. package/dist/core/web/public/next/assets/ShortcutsOverlay-CDwQdpGV.js.map +0 -1
  694. package/dist/core/web/public/next/assets/Sidebar-H5WNri2S.js +0 -3
  695. package/dist/core/web/public/next/assets/Sidebar-H5WNri2S.js.map +0 -1
  696. package/dist/core/web/public/next/assets/SkipToContent-BjJE6yOo.js +0 -2
  697. package/dist/core/web/public/next/assets/SkipToContent-BjJE6yOo.js.map +0 -1
  698. package/dist/core/web/public/next/assets/Slider-C68TumXj.js +0 -2
  699. package/dist/core/web/public/next/assets/Slider-C68TumXj.js.map +0 -1
  700. package/dist/core/web/public/next/assets/SourcesPane-DHYs4YIg.js +0 -2
  701. package/dist/core/web/public/next/assets/SourcesPane-DHYs4YIg.js.map +0 -1
  702. package/dist/core/web/public/next/assets/SourcesPanel-DFyLfYBO.js +0 -2
  703. package/dist/core/web/public/next/assets/SourcesPanel-DFyLfYBO.js.map +0 -1
  704. package/dist/core/web/public/next/assets/StatTile-CTUuhOLS.js +0 -2
  705. package/dist/core/web/public/next/assets/StatTile-CTUuhOLS.js.map +0 -1
  706. package/dist/core/web/public/next/assets/StatusBadge-DrVbi5dF.js +0 -2
  707. package/dist/core/web/public/next/assets/StatusBadge-DrVbi5dF.js.map +0 -1
  708. package/dist/core/web/public/next/assets/StepBand-CXDpnu2R.js +0 -2
  709. package/dist/core/web/public/next/assets/StepBand-CXDpnu2R.js.map +0 -1
  710. package/dist/core/web/public/next/assets/Surface-DCL7uORg.js +0 -2
  711. package/dist/core/web/public/next/assets/Surface-DCL7uORg.js.map +0 -1
  712. package/dist/core/web/public/next/assets/Swimlane-BAEjfoVU.js +0 -2
  713. package/dist/core/web/public/next/assets/Swimlane-BAEjfoVU.js.map +0 -1
  714. package/dist/core/web/public/next/assets/Switch-Z7RmRjWE.js +0 -2
  715. package/dist/core/web/public/next/assets/Switch-Z7RmRjWE.js.map +0 -1
  716. package/dist/core/web/public/next/assets/Tag-Ciht3C94.js +0 -2
  717. package/dist/core/web/public/next/assets/Tag-Ciht3C94.js.map +0 -1
  718. package/dist/core/web/public/next/assets/TerminalPane-BdIyhtzJ.js +0 -26
  719. package/dist/core/web/public/next/assets/TerminalPane-BdIyhtzJ.js.map +0 -1
  720. package/dist/core/web/public/next/assets/TerminalPane-DJKT600N.js +0 -3
  721. package/dist/core/web/public/next/assets/TerminalPane-DJKT600N.js.map +0 -1
  722. package/dist/core/web/public/next/assets/ThinkingBlock-CHRZX_fJ.js +0 -2
  723. package/dist/core/web/public/next/assets/ThinkingBlock-CHRZX_fJ.js.map +0 -1
  724. package/dist/core/web/public/next/assets/UniverseConsoleApp-QSoaY_Fk.js +0 -2
  725. package/dist/core/web/public/next/assets/UniverseConsoleApp-QSoaY_Fk.js.map +0 -1
  726. package/dist/core/web/public/next/assets/UniverseView-ZXAOJ0Rq.js +0 -9
  727. package/dist/core/web/public/next/assets/UniverseView-ZXAOJ0Rq.js.map +0 -1
  728. package/dist/core/web/public/next/assets/UsageSection-BEAa-W_q.js +0 -3
  729. package/dist/core/web/public/next/assets/UsageSection-BEAa-W_q.js.map +0 -1
  730. package/dist/core/web/public/next/assets/UsePlaybookAction-S7Yky_M8.js +0 -2
  731. package/dist/core/web/public/next/assets/UsePlaybookAction-S7Yky_M8.js.map +0 -1
  732. package/dist/core/web/public/next/assets/VerseConsoleApp-Cj6yPJo3.js +0 -3
  733. package/dist/core/web/public/next/assets/VerseConsoleApp-Cj6yPJo3.js.map +0 -1
  734. package/dist/core/web/public/next/assets/VerseConsoleApp-n6qr3lCF.css +0 -1
  735. package/dist/core/web/public/next/assets/VerseMobileApp-BRayqF_2.js +0 -3
  736. package/dist/core/web/public/next/assets/VerseMobileApp-BRayqF_2.js.map +0 -1
  737. package/dist/core/web/public/next/assets/VerseShared-CH8mV5ew.js +0 -2
  738. package/dist/core/web/public/next/assets/VerseShared-CH8mV5ew.js.map +0 -1
  739. package/dist/core/web/public/next/assets/VoiceHud-CO4yGRlr.js +0 -2
  740. package/dist/core/web/public/next/assets/VoiceHud-CO4yGRlr.js.map +0 -1
  741. package/dist/core/web/public/next/assets/VoiceInput-fSLnbGJ4.js +0 -2
  742. package/dist/core/web/public/next/assets/VoiceInput-fSLnbGJ4.js.map +0 -1
  743. package/dist/core/web/public/next/assets/WikiSection-CN-HansV.js +0 -2
  744. package/dist/core/web/public/next/assets/WikiSection-CN-HansV.js.map +0 -1
  745. package/dist/core/web/public/next/assets/Workspace-dufi6DmW.js +0 -6
  746. package/dist/core/web/public/next/assets/Workspace-dufi6DmW.js.map +0 -1
  747. package/dist/core/web/public/next/assets/actions-gBplqbpY.js +0 -2
  748. package/dist/core/web/public/next/assets/actions-gBplqbpY.js.map +0 -1
  749. package/dist/core/web/public/next/assets/agent-tools-client-ClFut2J1.js +0 -2
  750. package/dist/core/web/public/next/assets/agent-tools-client-ClFut2J1.js.map +0 -1
  751. package/dist/core/web/public/next/assets/agents-focus-DjBz83BQ.js +0 -2
  752. package/dist/core/web/public/next/assets/agents-focus-DjBz83BQ.js.map +0 -1
  753. package/dist/core/web/public/next/assets/app-version-B0FcXqqB.js +0 -2
  754. package/dist/core/web/public/next/assets/app-version-B0FcXqqB.js.map +0 -1
  755. package/dist/core/web/public/next/assets/apps-model-C-SdWY0N.js +0 -2
  756. package/dist/core/web/public/next/assets/apps-model-C-SdWY0N.js.map +0 -1
  757. package/dist/core/web/public/next/assets/ask-seat-DhGxiGSd.js +0 -2
  758. package/dist/core/web/public/next/assets/ask-seat-DhGxiGSd.js.map +0 -1
  759. package/dist/core/web/public/next/assets/authority-model-CoXAS-Z6.js +0 -2
  760. package/dist/core/web/public/next/assets/authority-model-CoXAS-Z6.js.map +0 -1
  761. package/dist/core/web/public/next/assets/automations-focus-CeneF7lP.js +0 -2
  762. package/dist/core/web/public/next/assets/automations-focus-CeneF7lP.js.map +0 -1
  763. package/dist/core/web/public/next/assets/budget-queries-DCZevH2S.js +0 -2
  764. package/dist/core/web/public/next/assets/budget-queries-DCZevH2S.js.map +0 -1
  765. package/dist/core/web/public/next/assets/capacity-strip-model-Wna9o0dS.js +0 -2
  766. package/dist/core/web/public/next/assets/capacity-strip-model-Wna9o0dS.js.map +0 -1
  767. package/dist/core/web/public/next/assets/charts-CzqC55eL.js +0 -2
  768. package/dist/core/web/public/next/assets/charts-CzqC55eL.js.map +0 -1
  769. package/dist/core/web/public/next/assets/chat-pane-data-BBA55Pw-.js +0 -2
  770. package/dist/core/web/public/next/assets/chat-pane-data-BBA55Pw-.js.map +0 -1
  771. package/dist/core/web/public/next/assets/checkpoint-queries-gP6Vh70H.js +0 -2
  772. package/dist/core/web/public/next/assets/checkpoint-queries-gP6Vh70H.js.map +0 -1
  773. package/dist/core/web/public/next/assets/cloud-queries-Bsqo7wye.js +0 -2
  774. package/dist/core/web/public/next/assets/cloud-queries-Bsqo7wye.js.map +0 -1
  775. package/dist/core/web/public/next/assets/command-catalog-Dnx-iMLX.js +0 -2
  776. package/dist/core/web/public/next/assets/command-catalog-Dnx-iMLX.js.map +0 -1
  777. package/dist/core/web/public/next/assets/composer-queries-DHGJlnFJ.js +0 -2
  778. package/dist/core/web/public/next/assets/composer-queries-DHGJlnFJ.js.map +0 -1
  779. package/dist/core/web/public/next/assets/connectivity-BViMMNcD.js +0 -2
  780. package/dist/core/web/public/next/assets/connectivity-BViMMNcD.js.map +0 -1
  781. package/dist/core/web/public/next/assets/context-queries-Bsl-w0q-.js +0 -2
  782. package/dist/core/web/public/next/assets/context-queries-Bsl-w0q-.js.map +0 -1
  783. package/dist/core/web/public/next/assets/control-queries-CUNa6TAx.js +0 -2
  784. package/dist/core/web/public/next/assets/control-queries-CUNa6TAx.js.map +0 -1
  785. package/dist/core/web/public/next/assets/copy-setup-C2goNcTZ.js +0 -2
  786. package/dist/core/web/public/next/assets/copy-setup-C2goNcTZ.js.map +0 -1
  787. package/dist/core/web/public/next/assets/deep-link-Dg_zaqAl.js +0 -2
  788. package/dist/core/web/public/next/assets/deep-link-Dg_zaqAl.js.map +0 -1
  789. package/dist/core/web/public/next/assets/device-permissions-CEXY0Vor.js +0 -2
  790. package/dist/core/web/public/next/assets/device-permissions-CEXY0Vor.js.map +0 -1
  791. package/dist/core/web/public/next/assets/devin-queries-Cu_YYhw2.js +0 -2
  792. package/dist/core/web/public/next/assets/devin-queries-Cu_YYhw2.js.map +0 -1
  793. package/dist/core/web/public/next/assets/dock-icons-DGZoDN6N.js +0 -2
  794. package/dist/core/web/public/next/assets/dock-icons-DGZoDN6N.js.map +0 -1
  795. package/dist/core/web/public/next/assets/dock-panes-BgSO9q_f.js +0 -2
  796. package/dist/core/web/public/next/assets/dock-panes-BgSO9q_f.js.map +0 -1
  797. package/dist/core/web/public/next/assets/fleet-control-queries-clsJWanE.js +0 -2
  798. package/dist/core/web/public/next/assets/fleet-control-queries-clsJWanE.js.map +0 -1
  799. package/dist/core/web/public/next/assets/fleet-queries-DX1AwHEt.js +0 -2
  800. package/dist/core/web/public/next/assets/fleet-queries-DX1AwHEt.js.map +0 -1
  801. package/dist/core/web/public/next/assets/fleet-state-EgNiSDxu.js +0 -3
  802. package/dist/core/web/public/next/assets/fleet-state-EgNiSDxu.js.map +0 -1
  803. package/dist/core/web/public/next/assets/focus-trap-B1vuEhZX.js +0 -2
  804. package/dist/core/web/public/next/assets/focus-trap-B1vuEhZX.js.map +0 -1
  805. package/dist/core/web/public/next/assets/git-model-Bu59fz1m.js +0 -5
  806. package/dist/core/web/public/next/assets/git-model-Bu59fz1m.js.map +0 -1
  807. package/dist/core/web/public/next/assets/global-BJ_kVFpD.js +0 -3
  808. package/dist/core/web/public/next/assets/global-BJ_kVFpD.js.map +0 -1
  809. package/dist/core/web/public/next/assets/guarded-action-CzvG7Qgc.js +0 -3
  810. package/dist/core/web/public/next/assets/guarded-action-CzvG7Qgc.js.map +0 -1
  811. package/dist/core/web/public/next/assets/guarded-runners-BPM0KdoQ.js +0 -2
  812. package/dist/core/web/public/next/assets/guarded-runners-BPM0KdoQ.js.map +0 -1
  813. package/dist/core/web/public/next/assets/health-queries-CMxSsJKS.js +0 -2
  814. package/dist/core/web/public/next/assets/health-queries-CMxSsJKS.js.map +0 -1
  815. package/dist/core/web/public/next/assets/icons-MYfI6vZr.js +0 -2
  816. package/dist/core/web/public/next/assets/icons-MYfI6vZr.js.map +0 -1
  817. package/dist/core/web/public/next/assets/index-DOAOxiKl.js +0 -11
  818. package/dist/core/web/public/next/assets/index-DOAOxiKl.js.map +0 -1
  819. package/dist/core/web/public/next/assets/jev-queries-CS2A5uWe.js +0 -2
  820. package/dist/core/web/public/next/assets/jev-queries-CS2A5uWe.js.map +0 -1
  821. package/dist/core/web/public/next/assets/ladder-queries-CBoG3heV.js +0 -2
  822. package/dist/core/web/public/next/assets/ladder-queries-CBoG3heV.js.map +0 -1
  823. package/dist/core/web/public/next/assets/leader-focus-DDQlv0TB.js +0 -2
  824. package/dist/core/web/public/next/assets/leader-focus-DDQlv0TB.js.map +0 -1
  825. package/dist/core/web/public/next/assets/live-model-CCjYFk48.js +0 -2
  826. package/dist/core/web/public/next/assets/live-model-CCjYFk48.js.map +0 -1
  827. package/dist/core/web/public/next/assets/mobile-actions-XqB_h7a8.js +0 -2
  828. package/dist/core/web/public/next/assets/mobile-actions-XqB_h7a8.js.map +0 -1
  829. package/dist/core/web/public/next/assets/mobile-toast-eIrghd9o.js +0 -2
  830. package/dist/core/web/public/next/assets/mobile-toast-eIrghd9o.js.map +0 -1
  831. package/dist/core/web/public/next/assets/multimodel-flows-CzI-yHg5.js +0 -7
  832. package/dist/core/web/public/next/assets/multimodel-flows-CzI-yHg5.js.map +0 -1
  833. package/dist/core/web/public/next/assets/multimodel-queries-DxIT9AZY.js +0 -2
  834. package/dist/core/web/public/next/assets/multimodel-queries-DxIT9AZY.js.map +0 -1
  835. package/dist/core/web/public/next/assets/mutations-BlGALvmG.js +0 -2
  836. package/dist/core/web/public/next/assets/mutations-BlGALvmG.js.map +0 -1
  837. package/dist/core/web/public/next/assets/nav-ByibvQW1.js +0 -2
  838. package/dist/core/web/public/next/assets/nav-ByibvQW1.js.map +0 -1
  839. package/dist/core/web/public/next/assets/needs-you-actions-Dp5UxM3X.js +0 -2
  840. package/dist/core/web/public/next/assets/needs-you-actions-Dp5UxM3X.js.map +0 -1
  841. package/dist/core/web/public/next/assets/needs-you-model-DYsqHMqy.js +0 -2
  842. package/dist/core/web/public/next/assets/needs-you-model-DYsqHMqy.js.map +0 -1
  843. package/dist/core/web/public/next/assets/open-terminal-dOVyLFvn.js +0 -2
  844. package/dist/core/web/public/next/assets/open-terminal-dOVyLFvn.js.map +0 -1
  845. package/dist/core/web/public/next/assets/open-terminal-request-BIhvirIl.js +0 -2
  846. package/dist/core/web/public/next/assets/open-terminal-request-BIhvirIl.js.map +0 -1
  847. package/dist/core/web/public/next/assets/overnight-queries-KxqH6BRN.js +0 -2
  848. package/dist/core/web/public/next/assets/overnight-queries-KxqH6BRN.js.map +0 -1
  849. package/dist/core/web/public/next/assets/palette-handoff-69pw9oBv.js +0 -2
  850. package/dist/core/web/public/next/assets/palette-handoff-69pw9oBv.js.map +0 -1
  851. package/dist/core/web/public/next/assets/panes-CHt3427X.js +0 -3
  852. package/dist/core/web/public/next/assets/panes-CHt3427X.js.map +0 -1
  853. package/dist/core/web/public/next/assets/path-display-DuIZF5G3.js +0 -2
  854. package/dist/core/web/public/next/assets/path-display-DuIZF5G3.js.map +0 -1
  855. package/dist/core/web/public/next/assets/playbook-composer-DipWgX7t.js +0 -2
  856. package/dist/core/web/public/next/assets/playbook-composer-DipWgX7t.js.map +0 -1
  857. package/dist/core/web/public/next/assets/playbook-focus-EXJPMBBI.js +0 -2
  858. package/dist/core/web/public/next/assets/playbook-focus-EXJPMBBI.js.map +0 -1
  859. package/dist/core/web/public/next/assets/playbooks-queries-BlpGBpOV.js +0 -2
  860. package/dist/core/web/public/next/assets/playbooks-queries-BlpGBpOV.js.map +0 -1
  861. package/dist/core/web/public/next/assets/preloaded-TmpzuCEi.js +0 -2
  862. package/dist/core/web/public/next/assets/preloaded-TmpzuCEi.js.map +0 -1
  863. package/dist/core/web/public/next/assets/primitives-CDKCUR2v.js +0 -1
  864. package/dist/core/web/public/next/assets/pwa-CTGMm-wR.js +0 -2
  865. package/dist/core/web/public/next/assets/pwa-CTGMm-wR.js.map +0 -1
  866. package/dist/core/web/public/next/assets/queries--mGK10fL.js +0 -2
  867. package/dist/core/web/public/next/assets/queries--mGK10fL.js.map +0 -1
  868. package/dist/core/web/public/next/assets/reasoning-pref-CWGL9MD2.js +0 -2
  869. package/dist/core/web/public/next/assets/reasoning-pref-CWGL9MD2.js.map +0 -1
  870. package/dist/core/web/public/next/assets/remote-session-I4RXlsas.js +0 -3
  871. package/dist/core/web/public/next/assets/remote-session-I4RXlsas.js.map +0 -1
  872. package/dist/core/web/public/next/assets/resolved-store-DwGn9hb_.js +0 -2
  873. package/dist/core/web/public/next/assets/resolved-store-DwGn9hb_.js.map +0 -1
  874. package/dist/core/web/public/next/assets/resources-queries-T6ER_hPN.js +0 -2
  875. package/dist/core/web/public/next/assets/resources-queries-T6ER_hPN.js.map +0 -1
  876. package/dist/core/web/public/next/assets/reveal-anchor-CHtvhrYm.js +0 -2
  877. package/dist/core/web/public/next/assets/reveal-anchor-CHtvhrYm.js.map +0 -1
  878. package/dist/core/web/public/next/assets/sheet-BlzGO1wo.js +0 -2
  879. package/dist/core/web/public/next/assets/sheet-BlzGO1wo.js.map +0 -1
  880. package/dist/core/web/public/next/assets/slots-40edgV7X.js +0 -3
  881. package/dist/core/web/public/next/assets/slots-40edgV7X.js.map +0 -1
  882. package/dist/core/web/public/next/assets/sources-queries-BrM41X16.js +0 -4
  883. package/dist/core/web/public/next/assets/sources-queries-BrM41X16.js.map +0 -1
  884. package/dist/core/web/public/next/assets/sse-CAFwslNC.js +0 -2
  885. package/dist/core/web/public/next/assets/sse-CAFwslNC.js.map +0 -1
  886. package/dist/core/web/public/next/assets/surface-data-D_oFOgkh.js +0 -2
  887. package/dist/core/web/public/next/assets/surface-data-D_oFOgkh.js.map +0 -1
  888. package/dist/core/web/public/next/assets/surface-prefetch-wqfiATYQ.js +0 -2
  889. package/dist/core/web/public/next/assets/surface-prefetch-wqfiATYQ.js.map +0 -1
  890. package/dist/core/web/public/next/assets/terminal-client-iL4DagCN.js +0 -2
  891. package/dist/core/web/public/next/assets/terminal-client-iL4DagCN.js.map +0 -1
  892. package/dist/core/web/public/next/assets/terminal-icons-BakeOpKV.js +0 -2
  893. package/dist/core/web/public/next/assets/terminal-icons-BakeOpKV.js.map +0 -1
  894. package/dist/core/web/public/next/assets/terminal-view-D6AAh08q.js +0 -6
  895. package/dist/core/web/public/next/assets/terminal-view-D6AAh08q.js.map +0 -1
  896. package/dist/core/web/public/next/assets/thread-data-CSDZ514s.js +0 -2
  897. package/dist/core/web/public/next/assets/thread-data-CSDZ514s.js.map +0 -1
  898. package/dist/core/web/public/next/assets/ui-parts-DubQJIoq.js +0 -2
  899. package/dist/core/web/public/next/assets/ui-parts-DubQJIoq.js.map +0 -1
  900. package/dist/core/web/public/next/assets/usage-queries-BONqdout.js +0 -2
  901. package/dist/core/web/public/next/assets/usage-queries-BONqdout.js.map +0 -1
  902. package/dist/core/web/public/next/assets/use-chat-activity-BZjdPPNP.js +0 -2
  903. package/dist/core/web/public/next/assets/use-chat-activity-BZjdPPNP.js.map +0 -1
  904. package/dist/core/web/public/next/assets/use-guarded-action-xJ4rxyVo.js +0 -2
  905. package/dist/core/web/public/next/assets/use-guarded-action-xJ4rxyVo.js.map +0 -1
  906. package/dist/core/web/public/next/assets/use-ticker-Bsu0cMvl.js +0 -2
  907. package/dist/core/web/public/next/assets/use-ticker-Bsu0cMvl.js.map +0 -1
  908. package/dist/core/web/public/next/assets/use-token-gate-E-xzEAu6.js +0 -2
  909. package/dist/core/web/public/next/assets/use-token-gate-E-xzEAu6.js.map +0 -1
  910. package/dist/core/web/public/next/assets/useAutoSeat-CXC9e4vx.js +0 -2
  911. package/dist/core/web/public/next/assets/useAutoSeat-CXC9e4vx.js.map +0 -1
  912. package/dist/core/web/public/next/assets/useOnboarding-Csw_AXrj.js +0 -2
  913. package/dist/core/web/public/next/assets/useOnboarding-Csw_AXrj.js.map +0 -1
  914. package/dist/core/web/public/next/assets/useSeatHealth-B6AXxre9.js +0 -2
  915. package/dist/core/web/public/next/assets/useSeatHealth-B6AXxre9.js.map +0 -1
  916. package/dist/core/web/public/next/assets/useSeatsRefresh-BIAa7Exn.js +0 -2
  917. package/dist/core/web/public/next/assets/useSeatsRefresh-BIAa7Exn.js.map +0 -1
  918. package/dist/core/web/public/next/assets/useVerseSession-BOyvOEDi.js +0 -2
  919. package/dist/core/web/public/next/assets/useVerseSession-BOyvOEDi.js.map +0 -1
  920. package/dist/core/web/public/next/assets/useVerseTranscript-BOhcfdp7.js +0 -2
  921. package/dist/core/web/public/next/assets/useVerseTranscript-BOhcfdp7.js.map +0 -1
  922. package/dist/core/web/public/next/assets/verse-bootstrap-query-D-fU89IT.js +0 -2
  923. package/dist/core/web/public/next/assets/verse-bootstrap-query-D-fU89IT.js.map +0 -1
  924. package/dist/core/web/public/next/assets/verse-icons-UKbUG3gv.js +0 -2
  925. package/dist/core/web/public/next/assets/verse-icons-UKbUG3gv.js.map +0 -1
  926. package/dist/core/web/public/next/assets/warmup-CZ-IBU5L.js +0 -3
  927. package/dist/core/web/public/next/assets/warmup-CZ-IBU5L.js.map +0 -1
  928. package/dist/core/web/public/next/assets/wiki-focus-DhAvbMnX.js +0 -2
  929. 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":"+CA0BA,IAAM,EAAS,IACT,EAAO,GAAK,EACZ,EAAM,GAAK,EAGJ,EAAgB,EAAI,EAEjC,SAAS,EAAS,EAAkD,CAClE,OAAyB,OAAO,GAAU,YAAnC,GAA+C,CAAC,MAAM,QAAQ,CAAK,CAC5E,CAEA,IAAM,EAAW,GAA8B,MAAM,QAAQ,CAAC,GAAK,EAAE,MAAO,GAAM,OAAO,GAAM,QAAQ,EAEvG,SAAS,EAAQ,EAAwC,CACvD,OAAO,EAAS,CAAC,GAAK,OAAO,EAAE,IAAU,UAAY,OAAO,EAAE,OAAa,UAAY,EAAQ,EAAE,OAAU,GAAK,EAAQ,EAAE,SAAY,GACjI,EAAS,EAAE,QAAW,IAAM,EAAE,SAAc,UAAY,EAAE,SAAc,sBAC/E,CAGA,SAAgB,EAAa,EAA2D,CACtF,IAAM,EAAM,EAAU,EAAoD,OAAS,KAEnF,MADI,CAAC,EAAS,CAAG,GAAK,EAAI,IAAS,GAAK,CAAC,MAAM,QAAQ,EAAI,MAAS,GAAK,CAAC,EAAI,OAAU,MAAM,CAAO,EAAU,KACxG,CACT,CAEA,SAAS,EAAW,EAAmC,CACrD,OAAO,EAAS,CAAC,GAAK,OAAO,EAAE,YAAkB,UAAY,OAAO,EAAE,MAAY,UAAY,OAAO,EAAE,SAAe,UACjH,MAAM,QAAQ,EAAE,KAAQ,GAAK,OAAO,EAAE,KAAW,UAAY,OAAO,EAAE,IAAU,QACvF,CAGA,SAAgB,EAAgB,EAAwC,CAEtE,MADI,CAAC,EAAS,CAAG,GAAK,EAAI,IAAS,GAAK,CAAC,MAAM,QAAQ,EAAI,SAAY,GAAK,CAAC,MAAM,QAAQ,EAAI,KAAQ,EAAU,KAC1G,CACL,GAAI,EACJ,UAAW,EAAI,UAAa,OAAO,CAAU,EAC7C,MAAQ,EAAI,MAAuB,OAAQ,GAAiC,EAAS,CAAC,GAAK,OAAO,EAAE,WAAiB,UAAY,OAAO,EAAE,IAAU,QAAQ,CAC9J,CACF,CAOA,SAAgB,EAAW,EAAoB,CAG7C,OADI,IAAO,eAAuB,eAC3B,SAAS,KAAK,CAAE,EAAI,EAAG,EAAE,CAAE,YAAY,EAAI,EAAG,MAAM,CAAC,EAAI,CAClE,CAGA,SAAgB,EAAU,EAAsB,CAC9C,IAAM,EAAI,EAAK,QAAQ,GAAG,EAC1B,OAAO,GAAK,EAAI,EAAK,MAAM,EAAI,CAAC,EAAI,CACtC,CAEA,SAAS,EAAK,EAAkC,CAC9C,OAAO,EAAM,IAAI,CAAS,CAAC,CAAC,KAAK,IAAI,CACvC,CAGA,SAAgB,EAAI,EAAa,EAAqB,CACpD,IAAM,EAAI,KAAK,MAAM,CAAG,EACxB,GAAI,CAAC,OAAO,SAAS,CAAC,EAAG,MAAO,qBAChC,IAAM,EAAK,KAAK,IAAI,EAAG,EAAM,CAAC,EAI9B,OAHI,EAAK,EAAe,WACpB,EAAK,EAAa,GAAG,KAAK,MAAM,EAAK,CAAM,EAAE,QAC7C,EAAK,EAAY,GAAG,KAAK,MAAM,EAAK,CAAI,EAAE,QACvC,GAAG,KAAK,MAAM,EAAK,CAAG,EAAE,OACjC,CAGA,SAAS,EAAM,EAAmB,CAChC,OAAO,OAAO,UAAU,CAAC,EAAI,OAAO,CAAC,EAAI,EAAE,QAAQ,CAAC,CACtD,CAuDA,SAAS,EAAK,EAA8B,EAA2B,CACrE,IAAM,EAAmB,EAAM,MAAQ,EAAU,OAAS,EAAM,QAAU,EAAU,UAAY,EAAM,QAAU,EAAU,EAAI,OAAS,QACjI,EAAY,EAAM,QAAQ,OAAS,EAAI,YAAY,EAAK,EAAM,OAAO,IAAM,gCAC3E,EAAc,EAAM,UAAU,OAAS,EAAI,cAAc,EAAK,EAAM,SAAS,IAAM,KACnF,EAAU,GAAG,EAAM,QAAQ,YAAY,EAAM,SAAS,WAAW,EAAM,SAAS,QAAQ,EAAM,uBAAyB,EAAI,QAAQ,EAAM,uBAAuB,kBAAoB,KACpL,EAAI,EAAM,SACV,EAAO,CAAC,GAAG,EAAE,UAAU,GAAG,EAAE,YAAc,EAAI,EAAM,OAAO,QAAQ,KAAM,EAAE,EAAI,EAAM,SAAU,GAAG,EAAE,SAAS,GAAG,EAClH,EAAE,qBAAuB,GAAG,EAAK,KAAK,KAAK,EAAE,qBAAqB,QAAQ,EAC9E,IAAM,EAAW,gBAAgB,EAAK,KAAK,IAAI,IACzC,EAAQ,EAAW,EAAM,EAAE,EAC3B,EAAQ,IAAU,UAAY,aAAe,IAAU,OAAS,YAAc,GACpF,MAAO,CACL,GAAI,EAAM,GACV,QACA,MAAO,EAAM,MACb,QACA,QAAS,EAAM,QACf,UAAW,EAAM,UACjB,YACA,cACA,UACA,WACA,KAAM,CAAC,SAAS,EAAM,MAAQ,EAAE,IAAI,IAAQ,IAAS,EAAW,EAAa,EAAS,CAAQ,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,IAAI,EAAI,GAC/H,CACF,CAGA,IAAM,EAAY,6DAOlB,SAAgB,EAAW,EAAqD,CAC9E,GAAI,CAAC,GAAU,EAAO,MAAM,QAAU,SAAU,OAAO,KACvD,IAAM,EAAS,EAAa,CAAM,EAC5B,EAAU,EAAO,QACvB,GAAI,CAAC,GAAU,CAAC,GAAW,EAAO,OAAO,SAAW,EAAG,OAAO,KAC9D,IAAM,EAAU,EAAO,OAAO,EAAQ,YACtC,GAAI,CAAC,GAAW,EAAQ,KAAO,EAAQ,QAAS,OAAO,KACvD,IAAM,EAAI,EAAQ,SACZ,EAAsB,CAC1B,CACE,IAAK,WACL,MAAO,EAAQ,SAAW,SAAW,SAAW,sBAChD,MAAO,EAAQ,OACf,IAAK,EAAE,UACP,KAAM,GAAG,EAAQ,OAAO,KAAK,EAAE,YAC/B,IAAK,EAAQ,QAAU,EAAE,SAC3B,EACA,CACE,IAAK,QACL,MAAO,iBACP,MAAO,KAAK,IAAI,EAAQ,aAAc,EAAE,QAAQ,EAChD,IAAK,EAAE,SACP,KAAM,GAAG,EAAM,KAAK,MAAM,EAAQ,aAAe,EAAE,EAAI,EAAE,EAAE,OAAO,EAAE,SAAS,IAC7E,IAAK,EAAQ,cAAgB,EAAE,QACjC,CACF,EACM,EAAO,EAAO,OAAO,EAAQ,WAAa,IAAM,KAChD,EAAe,EAAO,EAAK,QAAQ,OAAQ,GAAM,CAAC,EAAQ,QAAQ,SAAS,CAAC,CAAC,EAAI,CAAC,EAClF,EAAW,EACb,EAAa,OAAS,EACpB,GAAG,EAAW,EAAK,EAAE,EAAE,QAAQ,EAAK,CAAY,EAAE,QAClD,GAAG,EAAW,EAAK,EAAE,EAAE,IAAI,EAAK,QAAQ,WAAW,EAAK,SAAS,WAAW,EAAK,SAAS,QAC5F,KACJ,MAAO,CACL,QAAS,EAAQ,QACjB,UAAW,EAAW,EAAQ,OAAO,EACrC,SAAU,GAAG,EAAQ,WAAa,EAAE,MAAM,EAAQ,aAClD,MAAO,EAAO,OAAO,IAAK,GAAM,EAAK,EAAG,EAAQ,UAAU,CAAC,EAC3D,OACA,cAAe,EAAQ,YAAc,EAAW,EAAQ,WAAW,EAAI,KACvE,IAAK,EAAQ,IACb,WAAY,EAAQ,MAAM,OAAQ,GAAM,CAAC,EAAU,KAAK,CAAC,CAAC,EAC1D,UACF,CACF,CAgBA,SAAgB,EAAY,EAAkC,EAAiC,CAC7F,GAAI,CAAC,GAAU,EAAO,MAAM,QAAU,UAAY,CAAC,EAAO,MAAM,UAAW,OAAO,KAClF,IAAM,EAAK,KAAK,MAAM,EAAO,MAAM,SAAS,EAC5C,GAAI,CAAC,OAAO,SAAS,CAAE,EAAG,OAAO,KACjC,IAAM,EAAO,EAAK,EACZ,EAAI,KAAK,MAAM,EAAO,CAAG,EACzB,EAAI,KAAK,OAAO,EAAO,EAAI,GAAO,CAAI,EAW5C,MAAO,CACL,KAXW,GAAQ,EACjB,UACA,GAAQ,EAAI,EACV,GAAG,EAAE,SACL,GAAQ,EACN,GAAG,EAAE,KAAK,EAAE,SACZ,GAAQ,EACN,GAAG,KAAK,MAAM,EAAO,CAAI,EAAE,SAC3B,GAAG,KAAK,IAAI,EAAG,KAAK,MAAM,EAAO,CAAM,CAAC,EAAE,SAIlD,KAHqB,EAAO,EAAM,SAAW,EAAA,OAAuB,UAAY,UAIhF,KAAM,EAAO,EACb,MAAO,IAAI,KAAK,CAAE,CAAC,CAAC,eAAe,QAAS,CAAE,MAAO,QAAS,IAAK,UAAW,KAAM,UAAW,OAAQ,SAAU,CAAC,CACpH,CACF,CAYA,SAAS,EAAS,EAAoC,CACpD,GAAI,EAAE,OAAS,YAAa,CAC1B,IAAM,EAAM,EAAE,OAAS,KAAK,EAAE,OAAO,QAAQ,OAAQ,EAAE,IAAM,GAC7D,MAAO,CAAE,KAAM,mBAAmB,EAAW,EAAE,SAAS,IAAI,EAAE,YAAc,SAAS,EAAW,EAAE,WAAW,IAAM,KAAK,EAAI,GAAI,KAAM,SAAU,GAAI,EAAE,EAAG,CAC3J,CACA,MAAO,CAAE,KAAM,eAAe,EAAW,EAAE,SAAS,IAAI,EAAE,YAAc,SAAS,EAAW,EAAE,WAAW,IAAM,GAAG,GAAI,KAAM,UAAW,GAAI,EAAE,EAAG,CAClJ,CAEA,IAAa,EAAgE,CAC3E,cAAe,cACf,OAAQ,SACR,QAAS,UACT,aAAc,aACd,QAAS,UACT,cAAe,cACjB,EAEa,EAAkE,CAC7E,cAAe,UACf,OAAQ,UACR,QAAS,SACT,aAAc,UACd,QAAS,UACT,cAAe,SACjB,EAEA,SAAS,EAAa,EAAgC,CACpD,IAAM,EAAO,EAAE,WAAa,KAA+C,EAAU,EAAE,IAAI,EAAxD,GAAG,EAAU,EAAE,IAAI,EAAE,IAAI,EAAE,WACxD,EAAO,EAAa,EAAE,SAC5B,OAAQ,EAAE,QAAV,CACE,IAAK,cACH,MAAO,CAAE,KAAM,eAAe,EAAK,uBAAwB,OAAM,GAAI,EAAE,EAAG,EAC5E,IAAK,SAEH,OAAO,EAAE,WACL,CAAE,KAAM,iCAAiC,EAAE,WAAW,mBAAmB,EAAK,GAAI,OAAM,GAAI,EAAE,EAAG,EACjG,CAAE,KAAM,UAAU,EAAK,GAAI,OAAM,GAAI,EAAE,EAAG,EAChD,QACE,MAAO,CAAE,KAAM,GAAG,EAAK,IAAI,EAAE,MAAO,OAAM,GAAI,EAAE,EAAG,CACvD,CACF,CAQA,SAAgB,EAAU,EAAiC,EAA4D,CACrH,IAAM,EAA0B,CAAC,EAC7B,GAAQ,UAAU,EAAW,KAAK,EAAS,EAAO,QAAQ,CAAC,EAC3D,GAAW,MAAM,IAAI,EAAW,KAAK,EAAS,EAAU,MAAM,EAAE,CAAC,EACjE,GAAW,UAAU,IAAI,EAAW,KAAK,EAAa,EAAU,UAAU,EAAE,CAAC,EACjF,IAAM,EAAQ,EAAW,OAAQ,GAAM,EAAE,KAAO,MAAQ,OAAO,SAAS,KAAK,MAAM,EAAE,EAAE,CAAC,CAAC,EAKzF,OAJA,EAAM,MAAM,EAAG,IAAM,KAAK,MAAM,EAAE,EAAG,EAAI,KAAK,MAAM,EAAE,EAAG,CAAC,EACtD,EAAM,GAAW,EAAM,GACvB,EAAkB,CAAE,KAAM,4DAA6D,KAAM,UAAW,GAAI,IAAK,EACjH,IAAc,KAAa,CAAE,KAAM,yCAA0C,KAAM,UAAW,GAAI,IAAK,EACpG,CAAE,KAAM,+BAAgC,KAAM,UAAW,GAAI,IAAK,CAC3E,CAOA,SAAgB,EAAkB,EAAqC,EAAQ,EAA2B,CACxG,OAAQ,GAAW,OAAS,CAAC,EAAA,CAAG,OAAQ,GAAM,EAAE,OAAS,WAAW,CAAC,CAAC,MAAM,EAAG,CAAK,CACtF,CAGA,SAAgB,EAAS,EAAoC,CAC3D,GAAI,EAAE,QAAU,MAAQ,EAAE,aAAe,KAAM,OAAO,KACtD,IAAM,EAAkB,CAAC,EAIzB,OAHI,EAAE,aAAe,MAAQ,EAAE,eAAiB,OAAM,EAAM,KAAK,IAAI,EAAE,YAAc,EAAE,IAAI,EAAE,cAAgB,GAAG,EAC5G,EAAE,QAAU,MAAM,EAAM,KAAK,GAAG,EAAE,MAAM,OAAO,EAAE,QAAU,EAAI,GAAK,KAAK,EACzE,EAAE,MAAM,EAAM,KAAK,GAAG,EAAE,KAAK,MAAM,EAChC,EAAM,KAAK,KAAK,CACzB,CAGA,SAAgB,EAAM,EAA+D,CAEnF,OADI,EAAE,WAAa,MAAQ,CAAC,mCAAmC,KAAK,EAAE,IAAI,EAAU,KAC7E,sBAAsB,EAAE,KAAK,QAAQ,EAAE,UAChD,CAOA,SAAgB,EACd,EACA,EACsC,CACtC,IAAM,GAAO,GAAS,CAAC,EAAA,CAAG,KAAM,GAAM,EAAE,QAAQ,aAAe,EAAE,YAAc,EAAE,KAAK,YAAY,IAAM,EAAE,KAAK,YAAY,CAAC,EAC5H,OAAO,EAAM,CAAE,GAAI,EAAI,GAAI,MAAO,EAAI,KAAM,EAAI,IAClD,CAGA,SAAgB,EAAS,EAA2B,CAIlD,OAHI,IAAY,OAAe,UAC3B,IAAY,SAAiB,SAC7B,IAAY,aAAqB,UAC9B,SACT,CCtXA,IAAa,EAA2B,sDAE3B,EAAgB,4BAGhB,EAAoB,IAEpB,EAAiB,EAAc,EAAe,EAA0B,kBAAmB,CAAe"}
@@ -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