@ashlr/hub 3.11.0 → 3.11.2

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 (403) hide show
  1. package/CHANGELOG.md +96 -0
  2. package/dist/authority-surface.json +12 -7
  3. package/dist/build-identity.json +2 -2
  4. package/dist/core/universe/builtins/preparation/manifest.json +1 -1
  5. package/dist/core/universe/builtins/preparation/preparation-bridge.mjs +5 -4
  6. package/dist/core/universe/builtins/preparation/preparation-verification-fixtures.mjs +4 -3
  7. package/dist/core/universe/campaign.js +9 -1
  8. package/dist/core/universe/campaign.js.map +1 -1
  9. package/dist/core/universe/runner.d.ts +3 -0
  10. package/dist/core/universe/runner.js +7 -3
  11. package/dist/core/universe/runner.js.map +1 -1
  12. package/dist/core/verse/compaction-point.d.ts +55 -0
  13. package/dist/core/verse/compaction-point.js +75 -0
  14. package/dist/core/verse/compaction-point.js.map +1 -0
  15. package/dist/core/verse/context-math.d.ts +1 -38
  16. package/dist/core/verse/context-math.js +5 -59
  17. package/dist/core/verse/context-math.js.map +1 -1
  18. package/dist/core/web/public/next/assets/{ActionMenu-CQvNJvHY.js → ActionMenu-_DhtX2gO.js} +2 -2
  19. package/dist/core/web/public/next/assets/{ActionMenu-CQvNJvHY.js.map → ActionMenu-_DhtX2gO.js.map} +1 -1
  20. package/dist/core/web/public/next/assets/Advanced-CAAfaBke.js +2 -0
  21. package/dist/core/web/public/next/assets/{Advanced-DEM93sKI.js.map → Advanced-CAAfaBke.js.map} +1 -1
  22. package/dist/core/web/public/next/assets/App-BAywyjE8.js +7 -0
  23. package/dist/core/web/public/next/assets/{App-CimXmK0L.js.map → App-BAywyjE8.js.map} +1 -1
  24. package/dist/core/web/public/next/assets/AppsSection-CUypKeog.js +2 -0
  25. package/dist/core/web/public/next/assets/{AppsSection-D6U-dSj6.js.map → AppsSection-CUypKeog.js.map} +1 -1
  26. package/dist/core/web/public/next/assets/{AreaTrend-LD9lCPkT.js → AreaTrend-CblDqC8Q.js} +2 -2
  27. package/dist/core/web/public/next/assets/{AreaTrend-LD9lCPkT.js.map → AreaTrend-CblDqC8Q.js.map} +1 -1
  28. package/dist/core/web/public/next/assets/AutonomySection-D3d8lYO3.js +2 -0
  29. package/dist/core/web/public/next/assets/{AutonomySection-3V9pUyxm.js.map → AutonomySection-D3d8lYO3.js.map} +1 -1
  30. package/dist/core/web/public/next/assets/BranchBar-DU0jAV1E.js +2 -0
  31. package/dist/core/web/public/next/assets/{BranchBar-U8UdpfEB.js.map → BranchBar-DU0jAV1E.js.map} +1 -1
  32. package/dist/core/web/public/next/assets/{BudgetControl-DOTlMSmW.js → BudgetControl-Mm1ZL4u6.js} +2 -2
  33. package/dist/core/web/public/next/assets/{BudgetControl-DOTlMSmW.js.map → BudgetControl-Mm1ZL4u6.js.map} +1 -1
  34. package/dist/core/web/public/next/assets/{BurnDown-x4PWH9JF.js → BurnDown-C1fgcFqo.js} +2 -2
  35. package/dist/core/web/public/next/assets/{BurnDown-x4PWH9JF.js.map → BurnDown-C1fgcFqo.js.map} +1 -1
  36. package/dist/core/web/public/next/assets/{Button-DYv_KKxr.js → Button-DqgLUZvd.js} +2 -2
  37. package/dist/core/web/public/next/assets/{Button-DYv_KKxr.js.map → Button-DqgLUZvd.js.map} +1 -1
  38. package/dist/core/web/public/next/assets/CapacityStrip-nWFHvqFB.js +2 -0
  39. package/dist/core/web/public/next/assets/CapacityStrip-nWFHvqFB.js.map +1 -0
  40. package/dist/core/web/public/next/assets/ChatSection-DUZNpiVr.js +3 -0
  41. package/dist/core/web/public/next/assets/ChatSection-DUZNpiVr.js.map +1 -0
  42. package/dist/core/web/public/next/assets/{CloudBudgetForm-DJeJvBEu.js → CloudBudgetForm-2OW38o_C.js} +2 -2
  43. package/dist/core/web/public/next/assets/{CloudBudgetForm-DJeJvBEu.js.map → CloudBudgetForm-2OW38o_C.js.map} +1 -1
  44. package/dist/core/web/public/next/assets/CommandPalette-C5w2o1-r.js +2 -0
  45. package/dist/core/web/public/next/assets/{CommandPalette-FiD4N8XD.js.map → CommandPalette-C5w2o1-r.js.map} +1 -1
  46. package/dist/core/web/public/next/assets/CommandSection-Bx2knNqY.js +2 -0
  47. package/dist/core/web/public/next/assets/{CommandSection-DN8KwH-X.js.map → CommandSection-Bx2knNqY.js.map} +1 -1
  48. package/dist/core/web/public/next/assets/ConfirmDialog-B7ZwCQOX.js +2 -0
  49. package/dist/core/web/public/next/assets/ConfirmDialog-B7ZwCQOX.js.map +1 -0
  50. package/dist/core/web/public/next/assets/ConfirmDialog-Dx15x0Ho.css +1 -0
  51. package/dist/core/web/public/next/assets/Dialog-BpgcEW6b.js +2 -0
  52. package/dist/core/web/public/next/assets/Dialog-BpgcEW6b.js.map +1 -0
  53. package/dist/core/web/public/next/assets/Dialog-tQ8kFulD.css +1 -0
  54. package/dist/core/web/public/next/assets/{DiffPane-DLJ3gGGK.js → DiffPane-DpqRUtCx.js} +2 -2
  55. package/dist/core/web/public/next/assets/{DiffPane-DLJ3gGGK.js.map → DiffPane-DpqRUtCx.js.map} +1 -1
  56. package/dist/core/web/public/next/assets/{DiffViewer-B7NWPjIO.js → DiffViewer-CoV5-nUf.js} +2 -2
  57. package/dist/core/web/public/next/assets/{DiffViewer-B7NWPjIO.js.map → DiffViewer-CoV5-nUf.js.map} +1 -1
  58. package/dist/core/web/public/next/assets/DockHost-C0Pq7Jak.js +2 -0
  59. package/dist/core/web/public/next/assets/{DockHost-DvR-hPhZ.js.map → DockHost-C0Pq7Jak.js.map} +1 -1
  60. package/dist/core/web/public/next/assets/{EmptyState-DhNgDDrF.js → EmptyState-DYW29ncw.js} +2 -2
  61. package/dist/core/web/public/next/assets/{EmptyState-DhNgDDrF.js.map → EmptyState-DYW29ncw.js.map} +1 -1
  62. package/dist/core/web/public/next/assets/{Epistemic-uARPnx9x.js → Epistemic-DVx6oHzp.js} +2 -2
  63. package/dist/core/web/public/next/assets/{Epistemic-uARPnx9x.js.map → Epistemic-DVx6oHzp.js.map} +1 -1
  64. package/dist/core/web/public/next/assets/FleetSection-DSETviPK.js +3 -0
  65. package/dist/core/web/public/next/assets/{FleetSection-D_zRBCub.js.map → FleetSection-DSETviPK.js.map} +1 -1
  66. package/dist/core/web/public/next/assets/{Funnel-CL8uHONq.js → Funnel-DxiGqJrt.js} +2 -2
  67. package/dist/core/web/public/next/assets/{Funnel-CL8uHONq.js.map → Funnel-DxiGqJrt.js.map} +1 -1
  68. package/dist/core/web/public/next/assets/GearTray-C3I89sIt.js +2 -0
  69. package/dist/core/web/public/next/assets/{GearTray-C7k4l_BW.js.map → GearTray-C3I89sIt.js.map} +1 -1
  70. package/dist/core/web/public/next/assets/{GrowthSection-DwdNSGj8.js → GrowthSection-C3m2bPEz.js} +2 -2
  71. package/dist/core/web/public/next/assets/{GrowthSection-DwdNSGj8.js.map → GrowthSection-C3m2bPEz.js.map} +1 -1
  72. package/dist/core/web/public/next/assets/HandoffDialog-Bjb96a0N.js +2 -0
  73. package/dist/core/web/public/next/assets/{HandoffDialog-FPVOqOMN.js.map → HandoffDialog-Bjb96a0N.js.map} +1 -1
  74. package/dist/core/web/public/next/assets/{Input-B9-VLcHS.js → Input-ekTehVaH.js} +2 -2
  75. package/dist/core/web/public/next/assets/{Input-B9-VLcHS.js.map → Input-ekTehVaH.js.map} +1 -1
  76. package/dist/core/web/public/next/assets/LeaderCard-85VBbbaZ.js +2 -0
  77. package/dist/core/web/public/next/assets/{LeaderCard-4R0BhDzT.js.map → LeaderCard-85VBbbaZ.js.map} +1 -1
  78. package/dist/core/web/public/next/assets/{MatrixHeatmap-DiuushcS.js → MatrixHeatmap-Bo8j0QPC.js} +2 -2
  79. package/dist/core/web/public/next/assets/{MatrixHeatmap-DiuushcS.js.map → MatrixHeatmap-Bo8j0QPC.js.map} +1 -1
  80. package/dist/core/web/public/next/assets/McpSection-DvHFaVyp.js +2 -0
  81. package/dist/core/web/public/next/assets/{McpSection-CJ__OJKl.js.map → McpSection-DvHFaVyp.js.map} +1 -1
  82. package/dist/core/web/public/next/assets/{MessageMarkdown-qWKyJvAQ.js → MessageMarkdown-fsY_ltVa.js} +3 -3
  83. package/dist/core/web/public/next/assets/{MessageMarkdown-qWKyJvAQ.js.map → MessageMarkdown-fsY_ltVa.js.map} +1 -1
  84. package/dist/core/web/public/next/assets/{MessageMarkdownRenderer-x05TrsrW.js → MessageMarkdownRenderer-DDdtu82l.js} +2 -2
  85. package/dist/core/web/public/next/assets/{MessageMarkdownRenderer-x05TrsrW.js.map → MessageMarkdownRenderer-DDdtu82l.js.map} +1 -1
  86. package/dist/core/web/public/next/assets/{Meter-D-hncpkO.js → Meter-CeGDXdDM.js} +2 -2
  87. package/dist/core/web/public/next/assets/{Meter-D-hncpkO.js.map → Meter-CeGDXdDM.js.map} +1 -1
  88. package/dist/core/web/public/next/assets/MindSection-CDVhHvXl.js +2 -0
  89. package/dist/core/web/public/next/assets/{MindSection-BjXHkQPS.js.map → MindSection-CDVhHvXl.js.map} +1 -1
  90. package/dist/core/web/public/next/assets/MutationTokenDialog-CrfJ0PdD.css +1 -0
  91. package/dist/core/web/public/next/assets/MutationTokenDialog-DTQzEOHR.js +2 -0
  92. package/dist/core/web/public/next/assets/MutationTokenDialog-DTQzEOHR.js.map +1 -0
  93. package/dist/core/web/public/next/assets/NeedsYouDrawer-6AuN0BF3.js +2 -0
  94. package/dist/core/web/public/next/assets/{NeedsYouDrawer-rSd1ZHAR.js.map → NeedsYouDrawer-6AuN0BF3.js.map} +1 -1
  95. package/dist/core/web/public/next/assets/{NeedsYouList-CG-nB1tr.js → NeedsYouList-ChnRmbSk.js} +2 -2
  96. package/dist/core/web/public/next/assets/{NeedsYouList-CG-nB1tr.js.map → NeedsYouList-ChnRmbSk.js.map} +1 -1
  97. package/dist/core/web/public/next/assets/NewChatDialog-B06E7sqg.js +3 -0
  98. package/dist/core/web/public/next/assets/{NewChatDialog-BeDQ1eW3.js.map → NewChatDialog-B06E7sqg.js.map} +1 -1
  99. package/dist/core/web/public/next/assets/OnboardingFlow-C2M3zov9.js +2 -0
  100. package/dist/core/web/public/next/assets/{OnboardingFlow-CkTZtt-m.js.map → OnboardingFlow-C2M3zov9.js.map} +1 -1
  101. package/dist/core/web/public/next/assets/PreviewPane-Bd6HsX1k.js +2 -0
  102. package/dist/core/web/public/next/assets/{PreviewPane-kzbbSK4u.js.map → PreviewPane-Bd6HsX1k.js.map} +1 -1
  103. package/dist/core/web/public/next/assets/ProviderLogo-Bz7KR5j3.js +2 -0
  104. package/dist/core/web/public/next/assets/ProviderLogo-Bz7KR5j3.js.map +1 -0
  105. package/dist/core/web/public/next/assets/{RailStatus-D-t2gPae.js → RailStatus-CctCuuLy.js} +2 -2
  106. package/dist/core/web/public/next/assets/{RailStatus-D-t2gPae.js.map → RailStatus-CctCuuLy.js.map} +1 -1
  107. package/dist/core/web/public/next/assets/{RefreshIndicator-BLnr9IOM.js → RefreshIndicator-CKY5BGdD.js} +2 -2
  108. package/dist/core/web/public/next/assets/{RefreshIndicator-BLnr9IOM.js.map → RefreshIndicator-CKY5BGdD.js.map} +1 -1
  109. package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-CM_8pJs6.css → ResourcePoolConsoleApp-BX9JLkT4.css} +1 -1
  110. package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-BeG0gBif.js → ResourcePoolConsoleApp-CspIsW_G.js} +5 -5
  111. package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-BeG0gBif.js.map → ResourcePoolConsoleApp-CspIsW_G.js.map} +1 -1
  112. package/dist/core/web/public/next/assets/ResourcesChrome-B7fHZ6zX.js +3 -0
  113. package/dist/core/web/public/next/assets/ResourcesChrome-B7fHZ6zX.js.map +1 -0
  114. package/dist/core/web/public/next/assets/ResourcesChrome-uZEqC2EM.css +1 -0
  115. package/dist/core/web/public/next/assets/ResourcesDrawer-B7-N9n7-.js +2 -0
  116. package/dist/core/web/public/next/assets/ResourcesDrawer-B7-N9n7-.js.map +1 -0
  117. package/dist/core/web/public/next/assets/RouteErrorBoundary-C_B11J0s.js +2 -0
  118. package/dist/core/web/public/next/assets/RouteErrorBoundary-C_B11J0s.js.map +1 -0
  119. package/dist/core/web/public/next/assets/RouteErrorBoundary-DdxhTdZ6.css +1 -0
  120. package/dist/core/web/public/next/assets/{RunInCloudAction-C3LBp7C4.js → RunInCloudAction-_juw4EXd.js} +2 -2
  121. package/dist/core/web/public/next/assets/{RunInCloudAction-C3LBp7C4.js.map → RunInCloudAction-_juw4EXd.js.map} +1 -1
  122. package/dist/core/web/public/next/assets/SeatSelector-D_YXvkPy.js +3 -0
  123. package/dist/core/web/public/next/assets/{SeatSelector-DpvvbjNm.js.map → SeatSelector-D_YXvkPy.js.map} +1 -1
  124. package/dist/core/web/public/next/assets/{Segmented-BL40udoO.js → Segmented-DnKP6rr7.js} +2 -2
  125. package/dist/core/web/public/next/assets/{Segmented-BL40udoO.js.map → Segmented-DnKP6rr7.js.map} +1 -1
  126. package/dist/core/web/public/next/assets/{Select-FWLnAw_j.js → Select-DlbUupTX.js} +2 -2
  127. package/dist/core/web/public/next/assets/{Select-FWLnAw_j.js.map → Select-DlbUupTX.js.map} +1 -1
  128. package/dist/core/web/public/next/assets/SessionGate-DnuTZACL.js +2 -0
  129. package/dist/core/web/public/next/assets/SessionGate-DnuTZACL.js.map +1 -0
  130. package/dist/core/web/public/next/assets/SessionGate-DvMpXNpJ.css +1 -0
  131. package/dist/core/web/public/next/assets/SessionInsightChip-C33-k-Q5.js +2 -0
  132. package/dist/core/web/public/next/assets/{SessionInsightChip-CWye87Ju.js.map → SessionInsightChip-C33-k-Q5.js.map} +1 -1
  133. package/dist/core/web/public/next/assets/{SessionSearch-YvCHFUuN.js → SessionSearch-DhhR9Csg.js} +2 -2
  134. package/dist/core/web/public/next/assets/{SessionSearch-YvCHFUuN.js.map → SessionSearch-DhhR9Csg.js.map} +1 -1
  135. package/dist/core/web/public/next/assets/SettingsSection-C0xQvCz3.js +2 -0
  136. package/dist/core/web/public/next/assets/SettingsSection-C0xQvCz3.js.map +1 -0
  137. package/dist/core/web/public/next/assets/Sheet-BvNYOYv5.js +2 -0
  138. package/dist/core/web/public/next/assets/{Sheet-DZKcQXQg.js.map → Sheet-BvNYOYv5.js.map} +1 -1
  139. package/dist/core/web/public/next/assets/ShortcutsOverlay-1nUBVO-Z.js +2 -0
  140. package/dist/core/web/public/next/assets/{ShortcutsOverlay-BpDimdPq.js.map → ShortcutsOverlay-1nUBVO-Z.js.map} +1 -1
  141. package/dist/core/web/public/next/assets/Sidebar-YrVvvBNM.js +3 -0
  142. package/dist/core/web/public/next/assets/{Sidebar-BoBzBEFX.js.map → Sidebar-YrVvvBNM.js.map} +1 -1
  143. package/dist/core/web/public/next/assets/{Slider-DUMo9HDD.js → Slider-B2c-dbQb.js} +2 -2
  144. package/dist/core/web/public/next/assets/{Slider-DUMo9HDD.js.map → Slider-B2c-dbQb.js.map} +1 -1
  145. package/dist/core/web/public/next/assets/{StatusBadge-BwnBNFQr.js → StatusBadge-Q9YYkijx.js} +2 -2
  146. package/dist/core/web/public/next/assets/{StatusBadge-BwnBNFQr.js.map → StatusBadge-Q9YYkijx.js.map} +1 -1
  147. package/dist/core/web/public/next/assets/{StepBand-PDXMIlRk.js → StepBand-Ci-C0GUG.js} +2 -2
  148. package/dist/core/web/public/next/assets/{StepBand-PDXMIlRk.js.map → StepBand-Ci-C0GUG.js.map} +1 -1
  149. package/dist/core/web/public/next/assets/{Surface-B3TZVoER.js → Surface-DBovMq4P.js} +2 -2
  150. package/dist/core/web/public/next/assets/{Surface-B3TZVoER.js.map → Surface-DBovMq4P.js.map} +1 -1
  151. package/dist/core/web/public/next/assets/{Swimlane-DR4OgON_.js → Swimlane-Cdc4TqDe.js} +2 -2
  152. package/dist/core/web/public/next/assets/{Swimlane-DR4OgON_.js.map → Swimlane-Cdc4TqDe.js.map} +1 -1
  153. package/dist/core/web/public/next/assets/{Switch-CcR5Llk5.js → Switch-CUrvzO2k.js} +2 -2
  154. package/dist/core/web/public/next/assets/{Switch-CcR5Llk5.js.map → Switch-CUrvzO2k.js.map} +1 -1
  155. package/dist/core/web/public/next/assets/{Tag-_-K1h7Hk.js → Tag-Bv8u6APt.js} +2 -2
  156. package/dist/core/web/public/next/assets/{Tag-_-K1h7Hk.js.map → Tag-Bv8u6APt.js.map} +1 -1
  157. package/dist/core/web/public/next/assets/TerminalPane-BE4Xlqi5.js +7 -0
  158. package/dist/core/web/public/next/assets/{TerminalPane-_1aH4ndN.js.map → TerminalPane-BE4Xlqi5.js.map} +1 -1
  159. package/dist/core/web/public/next/assets/UniverseConsoleApp-BGwejf0m.js +2 -0
  160. package/dist/core/web/public/next/assets/{UniverseConsoleApp-BUsq-inZ.js.map → UniverseConsoleApp-BGwejf0m.js.map} +1 -1
  161. package/dist/core/web/public/next/assets/{UniverseConsoleApp-Dh7A-hLD.css → UniverseConsoleApp-DfuT-wFw.css} +1 -1
  162. package/dist/core/web/public/next/assets/{UniverseView-Dogy_dsB.js → UniverseView-CgKa-WXC.js} +4 -4
  163. package/dist/core/web/public/next/assets/{UniverseView-Dogy_dsB.js.map → UniverseView-CgKa-WXC.js.map} +1 -1
  164. package/dist/core/web/public/next/assets/UsageSection-CazsHm1f.js +2 -0
  165. package/dist/core/web/public/next/assets/{UsageSection-DiX_dTyo.js.map → UsageSection-CazsHm1f.js.map} +1 -1
  166. package/dist/core/web/public/next/assets/VerseConsoleApp-CTF3Shs0.js +3 -0
  167. package/dist/core/web/public/next/assets/VerseConsoleApp-CTF3Shs0.js.map +1 -0
  168. package/dist/core/web/public/next/assets/Workspace-CgdyXiEV.js +10 -0
  169. package/dist/core/web/public/next/assets/Workspace-CgdyXiEV.js.map +1 -0
  170. package/dist/core/web/public/next/assets/Workspace-Dwri2jFJ.css +1 -0
  171. package/dist/core/web/public/next/assets/actions-MtxBGS5B.js +2 -0
  172. package/dist/core/web/public/next/assets/{actions-s2lfm_5k.js.map → actions-MtxBGS5B.js.map} +1 -1
  173. package/dist/core/web/public/next/assets/budget-queries-CP7hgR-p.js +2 -0
  174. package/dist/core/web/public/next/assets/{budget-queries-wUshcovN.js.map → budget-queries-CP7hgR-p.js.map} +1 -1
  175. package/dist/core/web/public/next/assets/{capacity-strip-model-Bj_9ztzs.js → capacity-strip-model-fHfu5cph.js} +2 -2
  176. package/dist/core/web/public/next/assets/{capacity-strip-model-Bj_9ztzs.js.map → capacity-strip-model-fHfu5cph.js.map} +1 -1
  177. package/dist/core/web/public/next/assets/{charts-CMSgAUKn.js → charts-Bis9WSiS.js} +2 -2
  178. package/dist/core/web/public/next/assets/{charts-CMSgAUKn.js.map → charts-Bis9WSiS.js.map} +1 -1
  179. package/dist/core/web/public/next/assets/cloud-queries-BsOepFz6.js +2 -0
  180. package/dist/core/web/public/next/assets/{cloud-queries-CnV1yaNG.js.map → cloud-queries-BsOepFz6.js.map} +1 -1
  181. package/dist/core/web/public/next/assets/{cloud.module-CiwatLj3.js → cloud.module-DoFnr8ZH.js} +2 -2
  182. package/dist/core/web/public/next/assets/{cloud.module-CiwatLj3.js.map → cloud.module-DoFnr8ZH.js.map} +1 -1
  183. package/dist/core/web/public/next/assets/{command-bus-DqimKCUY.js → command-bus-CMvbYP5K.js} +2 -2
  184. package/dist/core/web/public/next/assets/{command-bus-DqimKCUY.js.map → command-bus-CMvbYP5K.js.map} +1 -1
  185. package/dist/core/web/public/next/assets/command-catalog-Bb_PxC5w.js +2 -0
  186. package/dist/core/web/public/next/assets/command-catalog-Bb_PxC5w.js.map +1 -0
  187. package/dist/core/web/public/next/assets/compaction-point-VL9oegWS.js +2 -0
  188. package/dist/core/web/public/next/assets/compaction-point-VL9oegWS.js.map +1 -0
  189. package/dist/core/web/public/next/assets/{composer-keys-DBRymxQn.js → composer-keys-su0g1h9o.js} +2 -2
  190. package/dist/core/web/public/next/assets/{composer-keys-DBRymxQn.js.map → composer-keys-su0g1h9o.js.map} +1 -1
  191. package/dist/core/web/public/next/assets/context-model-Ci3Ch9t5.js +2 -0
  192. package/dist/core/web/public/next/assets/{context-model-Dwd49-dp.js.map → context-model-Ci3Ch9t5.js.map} +1 -1
  193. package/dist/core/web/public/next/assets/context-model-CjiJTnf1.js +2 -0
  194. package/dist/core/web/public/next/assets/{context-model-MT17V86_.js.map → context-model-CjiJTnf1.js.map} +1 -1
  195. package/dist/core/web/public/next/assets/context-queries-BDXT6LQ3.js +2 -0
  196. package/dist/core/web/public/next/assets/{context-queries-xVKIeynP.js.map → context-queries-BDXT6LQ3.js.map} +1 -1
  197. package/dist/core/web/public/next/assets/control-queries-Dv-h1Clu.js +2 -0
  198. package/dist/core/web/public/next/assets/{control-queries-DOZR-D8G.js.map → control-queries-Dv-h1Clu.js.map} +1 -1
  199. package/dist/core/web/public/next/assets/{dock-icons-8EtARwUm.js → dock-icons-t--Eugrd.js} +2 -2
  200. package/dist/core/web/public/next/assets/{dock-icons-8EtARwUm.js.map → dock-icons-t--Eugrd.js.map} +1 -1
  201. package/dist/core/web/public/next/assets/{dock-store-BA1cHOYA.js → dock-store-qIu7kSQE.js} +2 -2
  202. package/dist/core/web/public/next/assets/{dock-store-BA1cHOYA.js.map → dock-store-qIu7kSQE.js.map} +1 -1
  203. package/dist/core/web/public/next/assets/{fleet-model-CNe8Wh-s.js → fleet-model-IRbwfhkR.js} +2 -2
  204. package/dist/core/web/public/next/assets/{fleet-model-CNe8Wh-s.js.map → fleet-model-IRbwfhkR.js.map} +1 -1
  205. package/dist/core/web/public/next/assets/fleet-queries-7FVNByX1.js +2 -0
  206. package/dist/core/web/public/next/assets/{fleet-queries-BSdRlUwJ.js.map → fleet-queries-7FVNByX1.js.map} +1 -1
  207. package/dist/core/web/public/next/assets/focus-trap-QqQxQdvH.js +2 -0
  208. package/dist/core/web/public/next/assets/focus-trap-QqQxQdvH.js.map +1 -0
  209. package/dist/core/web/public/next/assets/{format-B8DAVcn2.js → format-CaMmVQCn.js} +2 -2
  210. package/dist/core/web/public/next/assets/{format-B8DAVcn2.js.map → format-CaMmVQCn.js.map} +1 -1
  211. package/dist/core/web/public/next/assets/git-model-B4S_GUNA.js +5 -0
  212. package/dist/core/web/public/next/assets/{git-model-CivuBY_D.js.map → git-model-B4S_GUNA.js.map} +1 -1
  213. package/dist/core/web/public/next/assets/global-BkNl4e6E.js +2 -0
  214. package/dist/core/web/public/next/assets/global-BkNl4e6E.js.map +1 -0
  215. package/dist/core/web/public/next/assets/global-BlI2BYa1.css +1 -0
  216. package/dist/core/web/public/next/assets/guarded-action-DHiL8tY5.js +3 -0
  217. package/dist/core/web/public/next/assets/guarded-action-DHiL8tY5.js.map +1 -0
  218. package/dist/core/web/public/next/assets/guarded-runners-DmGEkM2P.js +2 -0
  219. package/dist/core/web/public/next/assets/guarded-runners-DmGEkM2P.js.map +1 -0
  220. package/dist/core/web/public/next/assets/icon-base-NtFmP2yB.js +2 -0
  221. package/dist/core/web/public/next/assets/icon-base-NtFmP2yB.js.map +1 -0
  222. package/dist/core/web/public/next/assets/icons-C5EFt_Ts.js +2 -0
  223. package/dist/core/web/public/next/assets/icons-C5EFt_Ts.js.map +1 -0
  224. package/dist/core/web/public/next/assets/{index-oAAq8XJa.js → index-DbDw9UAs.js} +3 -3
  225. package/dist/core/web/public/next/assets/{index-oAAq8XJa.js.map → index-DbDw9UAs.js.map} +1 -1
  226. package/dist/core/web/public/next/assets/{live-model-DCw_IFRI.js → live-model-DEwrl7_A.js} +2 -2
  227. package/dist/core/web/public/next/assets/{live-model-DCw_IFRI.js.map → live-model-DEwrl7_A.js.map} +1 -1
  228. package/dist/core/web/public/next/assets/{mind.module-vnuJcwvD.js → mind.module-CLhqMQak.js} +2 -2
  229. package/dist/core/web/public/next/assets/{mind.module-vnuJcwvD.js.map → mind.module-CLhqMQak.js.map} +1 -1
  230. package/dist/core/web/public/next/assets/mutations-Kvzsg-iK.js +2 -0
  231. package/dist/core/web/public/next/assets/{mutations-Dpsql5t7.js.map → mutations-Kvzsg-iK.js.map} +1 -1
  232. package/dist/core/web/public/next/assets/nav-C0IunEYF.js +2 -0
  233. package/dist/core/web/public/next/assets/nav-C0IunEYF.js.map +1 -0
  234. package/dist/core/web/public/next/assets/overnight-queries-C_AfcL7q.js +2 -0
  235. package/dist/core/web/public/next/assets/{overnight-queries-X-44Gsw5.js.map → overnight-queries-C_AfcL7q.js.map} +1 -1
  236. package/dist/core/web/public/next/assets/preloaded-CctOitLu.js +2 -0
  237. package/dist/core/web/public/next/assets/preloaded-CctOitLu.js.map +1 -0
  238. package/dist/core/web/public/next/assets/primitives-CbAGCNKt.js +1 -0
  239. package/dist/core/web/public/next/assets/{queries-BA4rNGD-.js → queries-THD05gHP.js} +2 -2
  240. package/dist/core/web/public/next/assets/{queries-BA4rNGD-.js.map → queries-THD05gHP.js.map} +1 -1
  241. package/dist/core/web/public/next/assets/reasoning-pref-BVPu0SME.js +2 -0
  242. package/dist/core/web/public/next/assets/{reasoning-pref-B9-DJUXP.js.map → reasoning-pref-BVPu0SME.js.map} +1 -1
  243. package/dist/core/web/public/next/assets/reveal-anchor-wCT5b4m3.js +2 -0
  244. package/dist/core/web/public/next/assets/reveal-anchor-wCT5b4m3.js.map +1 -0
  245. package/dist/core/web/public/next/assets/seat-subscription-CR_VylsK.js +2 -0
  246. package/dist/core/web/public/next/assets/{seat-subscription-CH6fW4fJ.js.map → seat-subscription-CR_VylsK.js.map} +1 -1
  247. package/dist/core/web/public/next/assets/{section-visibility-qFqc_d4Z.js → section-visibility-B0xXUQJ0.js} +2 -2
  248. package/dist/core/web/public/next/assets/{section-visibility-qFqc_d4Z.js.map → section-visibility-B0xXUQJ0.js.map} +1 -1
  249. package/dist/core/web/public/next/assets/{sidebar-model-M1GaQU5l.js → sidebar-model-C5wVXGpb.js} +2 -2
  250. package/dist/core/web/public/next/assets/{sidebar-model-M1GaQU5l.js.map → sidebar-model-C5wVXGpb.js.map} +1 -1
  251. package/dist/core/web/public/next/assets/slots-DDd8cEoh.js +3 -0
  252. package/dist/core/web/public/next/assets/{slots-Ds9ZIqUL.js.map → slots-DDd8cEoh.js.map} +1 -1
  253. package/dist/core/web/public/next/assets/surface-data-BFxAlefI.js +2 -0
  254. package/dist/core/web/public/next/assets/{surface-data-J52iIGMD.js.map → surface-data-BFxAlefI.js.map} +1 -1
  255. package/dist/core/web/public/next/assets/surface-prefetch-CHusyO9q.js +2 -0
  256. package/dist/core/web/public/next/assets/{surface-prefetch-CgZ-LEJK.js.map → surface-prefetch-CHusyO9q.js.map} +1 -1
  257. package/dist/core/web/public/next/assets/{tasks-model-ent8f0jZ.js → tasks-model-DvkWveXs.js} +2 -2
  258. package/dist/core/web/public/next/assets/{tasks-model-ent8f0jZ.js.map → tasks-model-DvkWveXs.js.map} +1 -1
  259. package/dist/core/web/public/next/assets/{terminal-icons-DJTK7QpR.js → terminal-icons-Dp6pJgV2.js} +2 -2
  260. package/dist/core/web/public/next/assets/{terminal-icons-DJTK7QpR.js.map → terminal-icons-Dp6pJgV2.js.map} +1 -1
  261. package/dist/core/web/public/next/assets/{usage-queries-Bn8ccqyN.js → usage-queries-CUTmnegA.js} +2 -2
  262. package/dist/core/web/public/next/assets/{usage-queries-Bn8ccqyN.js.map → usage-queries-CUTmnegA.js.map} +1 -1
  263. package/dist/core/web/public/next/assets/use-guarded-action-UCX2u1t1.js +2 -0
  264. package/dist/core/web/public/next/assets/{use-guarded-action-C2HlSzkz.js.map → use-guarded-action-UCX2u1t1.js.map} +1 -1
  265. package/dist/core/web/public/next/assets/{use-ticker-BNc1H4ZC.js → use-ticker-OXAjob3y.js} +2 -2
  266. package/dist/core/web/public/next/assets/{use-ticker-BNc1H4ZC.js.map → use-ticker-OXAjob3y.js.map} +1 -1
  267. package/dist/core/web/public/next/assets/use-token-gate-CDDRAoKH.js +2 -0
  268. package/dist/core/web/public/next/assets/{use-token-gate-B3IJL6bf.js.map → use-token-gate-CDDRAoKH.js.map} +1 -1
  269. package/dist/core/web/public/next/assets/useChartWidth-BW6SwYIK.css +1 -0
  270. package/dist/core/web/public/next/assets/useChartWidth-D9M7kUw7.js +2 -0
  271. package/dist/core/web/public/next/assets/{useChartWidth-lZ9PrQn0.js.map → useChartWidth-D9M7kUw7.js.map} +1 -1
  272. package/dist/core/web/public/next/assets/{useSeatsRefresh-CG4jczeL.js → useSeatsRefresh-B2dCVcj9.js} +2 -2
  273. package/dist/core/web/public/next/assets/{useSeatsRefresh-CG4jczeL.js.map → useSeatsRefresh-B2dCVcj9.js.map} +1 -1
  274. package/dist/core/web/public/next/assets/useVerseTranscript-BL3CljSI.js +2 -0
  275. package/dist/core/web/public/next/assets/useVerseTranscript-BL3CljSI.js.map +1 -0
  276. package/dist/core/web/public/next/assets/verse-icons-DASWdYuE.js +2 -0
  277. package/dist/core/web/public/next/assets/verse-icons-DASWdYuE.js.map +1 -0
  278. package/dist/core/web/public/next/assets/verse-model-BQ0Y2CSr.js +2 -0
  279. package/dist/core/web/public/next/assets/verse-model-BQ0Y2CSr.js.map +1 -0
  280. package/dist/core/web/public/next/assets/verse-store-b_Lek_c5.js +3 -0
  281. package/dist/core/web/public/next/assets/verse-store-b_Lek_c5.js.map +1 -0
  282. package/dist/core/web/public/next/assets/verse-ui-store-D7YXi63q.js +3 -0
  283. package/dist/core/web/public/next/assets/{verse-ui-store-zafyzXKD.js.map → verse-ui-store-D7YXi63q.js.map} +1 -1
  284. package/dist/core/web/public/next/assets/{viewport-BEqGUoTA.js → viewport-BYGH5EgA.js} +2 -2
  285. package/dist/core/web/public/next/assets/{viewport-BEqGUoTA.js.map → viewport-BYGH5EgA.js.map} +1 -1
  286. package/dist/core/web/public/next/assets/warmup-AsqwWCUi.js +3 -0
  287. package/dist/core/web/public/next/assets/{warmup-BR6pxAKs.js.map → warmup-AsqwWCUi.js.map} +1 -1
  288. package/dist/core/web/public/next/assets/{workspace-model-D_tWD5Wt.js → workspace-model-CXorJr0G.js} +2 -2
  289. package/dist/core/web/public/next/assets/{workspace-model-D_tWD5Wt.js.map → workspace-model-CXorJr0G.js.map} +1 -1
  290. package/dist/core/web/public/next/index.html +1 -1
  291. package/dist/release-dependency-inventory.json +1 -1
  292. package/package.json +5 -2
  293. package/dist/cli/activation.d.ts +0 -41
  294. package/dist/cli/activation.js +0 -485
  295. package/dist/cli/activation.js.map +0 -1
  296. package/dist/core/fleet/generated-repair-resolution.d.ts +0 -36
  297. package/dist/core/fleet/generated-repair-resolution.js +0 -245
  298. package/dist/core/fleet/generated-repair-resolution.js.map +0 -1
  299. package/dist/core/local-runtime/llama/port.d.ts +0 -17
  300. package/dist/core/local-runtime/llama/port.js +0 -47
  301. package/dist/core/local-runtime/llama/port.js.map +0 -1
  302. package/dist/core/local-runtime/llama/proxy-host.d.ts +0 -54
  303. package/dist/core/local-runtime/llama/proxy-host.js +0 -159
  304. package/dist/core/local-runtime/llama/proxy-host.js.map +0 -1
  305. package/dist/core/local-runtime/llama/proxy-process.d.ts +0 -148
  306. package/dist/core/local-runtime/llama/proxy-process.js +0 -250
  307. package/dist/core/local-runtime/llama/proxy-process.js.map +0 -1
  308. package/dist/core/local-runtime/llama/proxy-record.d.ts +0 -40
  309. package/dist/core/local-runtime/llama/proxy-record.js +0 -133
  310. package/dist/core/local-runtime/llama/proxy-record.js.map +0 -1
  311. package/dist/core/local-runtime/llama/proxy-supervisor.d.ts +0 -118
  312. package/dist/core/local-runtime/llama/proxy-supervisor.js +0 -511
  313. package/dist/core/local-runtime/llama/proxy-supervisor.js.map +0 -1
  314. package/dist/core/web/public/next/assets/Advanced-DEM93sKI.js +0 -2
  315. package/dist/core/web/public/next/assets/App-CimXmK0L.js +0 -7
  316. package/dist/core/web/public/next/assets/AppsSection-D6U-dSj6.js +0 -2
  317. package/dist/core/web/public/next/assets/AutonomySection-3V9pUyxm.js +0 -2
  318. package/dist/core/web/public/next/assets/BranchBar-U8UdpfEB.js +0 -2
  319. package/dist/core/web/public/next/assets/CapacityStrip-C667yQe8.js +0 -2
  320. package/dist/core/web/public/next/assets/CapacityStrip-C667yQe8.js.map +0 -1
  321. package/dist/core/web/public/next/assets/ChatSection-CCcIPpOq.js +0 -3
  322. package/dist/core/web/public/next/assets/ChatSection-CCcIPpOq.js.map +0 -1
  323. package/dist/core/web/public/next/assets/CommandPalette-FiD4N8XD.js +0 -2
  324. package/dist/core/web/public/next/assets/CommandSection-DN8KwH-X.js +0 -2
  325. package/dist/core/web/public/next/assets/DockHost-DvR-hPhZ.js +0 -2
  326. package/dist/core/web/public/next/assets/FleetSection-D_zRBCub.js +0 -3
  327. package/dist/core/web/public/next/assets/GearTray-C7k4l_BW.js +0 -2
  328. package/dist/core/web/public/next/assets/HandoffDialog-FPVOqOMN.js +0 -2
  329. package/dist/core/web/public/next/assets/LeaderCard-4R0BhDzT.js +0 -2
  330. package/dist/core/web/public/next/assets/McpSection-CJ__OJKl.js +0 -2
  331. package/dist/core/web/public/next/assets/MindSection-BjXHkQPS.js +0 -2
  332. package/dist/core/web/public/next/assets/MutationTokenDialog-Cum_DqQZ.css +0 -1
  333. package/dist/core/web/public/next/assets/MutationTokenDialog-SkRxqV_I.js +0 -2
  334. package/dist/core/web/public/next/assets/MutationTokenDialog-SkRxqV_I.js.map +0 -1
  335. package/dist/core/web/public/next/assets/NeedsYouDrawer-rSd1ZHAR.js +0 -2
  336. package/dist/core/web/public/next/assets/NewChatDialog-BeDQ1eW3.js +0 -3
  337. package/dist/core/web/public/next/assets/OnboardingFlow-CkTZtt-m.js +0 -2
  338. package/dist/core/web/public/next/assets/PreviewPane-kzbbSK4u.js +0 -2
  339. package/dist/core/web/public/next/assets/ResourcesChrome-B3Z3O98t.css +0 -1
  340. package/dist/core/web/public/next/assets/ResourcesChrome-BzV6bkIa.js +0 -3
  341. package/dist/core/web/public/next/assets/ResourcesChrome-BzV6bkIa.js.map +0 -1
  342. package/dist/core/web/public/next/assets/ResourcesDrawer-o4ILHdep.js +0 -2
  343. package/dist/core/web/public/next/assets/ResourcesDrawer-o4ILHdep.js.map +0 -1
  344. package/dist/core/web/public/next/assets/RouteErrorBoundary-6RMd_aZg.css +0 -1
  345. package/dist/core/web/public/next/assets/RouteErrorBoundary-C5SxA2Dg.js +0 -2
  346. package/dist/core/web/public/next/assets/RouteErrorBoundary-C5SxA2Dg.js.map +0 -1
  347. package/dist/core/web/public/next/assets/SeatSelector-DpvvbjNm.js +0 -3
  348. package/dist/core/web/public/next/assets/SessionInsightChip-CWye87Ju.js +0 -2
  349. package/dist/core/web/public/next/assets/SettingsSection-Dr18upeE.js +0 -2
  350. package/dist/core/web/public/next/assets/SettingsSection-Dr18upeE.js.map +0 -1
  351. package/dist/core/web/public/next/assets/Sheet-DZKcQXQg.js +0 -2
  352. package/dist/core/web/public/next/assets/ShortcutsOverlay-BpDimdPq.js +0 -2
  353. package/dist/core/web/public/next/assets/Sidebar-BoBzBEFX.js +0 -3
  354. package/dist/core/web/public/next/assets/TerminalPane-_1aH4ndN.js +0 -7
  355. package/dist/core/web/public/next/assets/UniverseConsoleApp-BUsq-inZ.js +0 -2
  356. package/dist/core/web/public/next/assets/UsageSection-DiX_dTyo.js +0 -2
  357. package/dist/core/web/public/next/assets/VerseConsoleApp-WVeyJnW7.js +0 -3
  358. package/dist/core/web/public/next/assets/VerseConsoleApp-WVeyJnW7.js.map +0 -1
  359. package/dist/core/web/public/next/assets/Workspace-BYW9dm90.css +0 -1
  360. package/dist/core/web/public/next/assets/Workspace-BbxZHwQd.js +0 -10
  361. package/dist/core/web/public/next/assets/Workspace-BbxZHwQd.js.map +0 -1
  362. package/dist/core/web/public/next/assets/actions-s2lfm_5k.js +0 -2
  363. package/dist/core/web/public/next/assets/budget-queries-wUshcovN.js +0 -2
  364. package/dist/core/web/public/next/assets/cloud-queries-CnV1yaNG.js +0 -2
  365. package/dist/core/web/public/next/assets/command-catalog-BdtDH93o.js +0 -2
  366. package/dist/core/web/public/next/assets/command-catalog-BdtDH93o.js.map +0 -1
  367. package/dist/core/web/public/next/assets/context-model-Dwd49-dp.js +0 -2
  368. package/dist/core/web/public/next/assets/context-model-MT17V86_.js +0 -2
  369. package/dist/core/web/public/next/assets/context-queries-xVKIeynP.js +0 -2
  370. package/dist/core/web/public/next/assets/control-queries-DOZR-D8G.js +0 -2
  371. package/dist/core/web/public/next/assets/dock-panes-UKS-mXhr.js +0 -2
  372. package/dist/core/web/public/next/assets/dock-panes-UKS-mXhr.js.map +0 -1
  373. package/dist/core/web/public/next/assets/fleet-queries-BSdRlUwJ.js +0 -2
  374. package/dist/core/web/public/next/assets/git-model-CivuBY_D.js +0 -5
  375. package/dist/core/web/public/next/assets/global-Di2PUgj4.js +0 -2
  376. package/dist/core/web/public/next/assets/global-Di2PUgj4.js.map +0 -1
  377. package/dist/core/web/public/next/assets/global-_tOCFt9y.css +0 -1
  378. package/dist/core/web/public/next/assets/guarded-action-CvOHcqyH.js +0 -2
  379. package/dist/core/web/public/next/assets/guarded-action-CvOHcqyH.js.map +0 -1
  380. package/dist/core/web/public/next/assets/icons-B_yuAgdN.js +0 -2
  381. package/dist/core/web/public/next/assets/icons-B_yuAgdN.js.map +0 -1
  382. package/dist/core/web/public/next/assets/mutations-Dpsql5t7.js +0 -2
  383. package/dist/core/web/public/next/assets/overnight-queries-X-44Gsw5.js +0 -2
  384. package/dist/core/web/public/next/assets/primitives-BDIcUvob.js +0 -1
  385. package/dist/core/web/public/next/assets/reasoning-pref-B9-DJUXP.js +0 -2
  386. package/dist/core/web/public/next/assets/seat-subscription-CH6fW4fJ.js +0 -2
  387. package/dist/core/web/public/next/assets/slots-Ds9ZIqUL.js +0 -3
  388. package/dist/core/web/public/next/assets/surface-data-J52iIGMD.js +0 -2
  389. package/dist/core/web/public/next/assets/surface-prefetch-CgZ-LEJK.js +0 -2
  390. package/dist/core/web/public/next/assets/use-guarded-action-C2HlSzkz.js +0 -2
  391. package/dist/core/web/public/next/assets/use-token-gate-B3IJL6bf.js +0 -2
  392. package/dist/core/web/public/next/assets/useActivity-Bk3XgXjL.js +0 -2
  393. package/dist/core/web/public/next/assets/useActivity-Bk3XgXjL.js.map +0 -1
  394. package/dist/core/web/public/next/assets/useChartWidth-BAtVgn2n.css +0 -1
  395. package/dist/core/web/public/next/assets/useChartWidth-lZ9PrQn0.js +0 -2
  396. package/dist/core/web/public/next/assets/verse-model-D7NZQFAR.js +0 -2
  397. package/dist/core/web/public/next/assets/verse-model-D7NZQFAR.js.map +0 -1
  398. package/dist/core/web/public/next/assets/verse-queries-DvIJcn6Z.js +0 -2
  399. package/dist/core/web/public/next/assets/verse-queries-DvIJcn6Z.js.map +0 -1
  400. package/dist/core/web/public/next/assets/verse-store-DjBWj04q.js +0 -3
  401. package/dist/core/web/public/next/assets/verse-store-DjBWj04q.js.map +0 -1
  402. package/dist/core/web/public/next/assets/verse-ui-store-zafyzXKD.js +0 -3
  403. package/dist/core/web/public/next/assets/warmup-BR6pxAKs.js +0 -3
@@ -0,0 +1 @@
1
+ ._slot_ka933_6{gap:var(--space-1);box-sizing:border-box;width:100%;max-width:calc(var(--measure-read) + 2 * var(--space-6));padding:var(--space-2) var(--space-6) 0;flex-direction:column;flex-shrink:0;margin:0 auto;display:flex}._list_ka933_18{gap:var(--space-2);overscroll-behavior:contain;flex-direction:column;max-height:45vh;display:flex;overflow-y:auto}._notice_ka933_29{min-width:0;animation:_notice-in_ka933_1 var(--duration-base) var(--ease-decelerate)}._more_ka933_34{min-height:var(--control-h-xs);padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--text-secondary);font:inherit;font-size:var(--text-xs-size);cursor:pointer;background:0 0;border:0;align-self:flex-end}._more_ka933_34:hover{color:var(--text-primary);background:var(--bg-hover)}._more_ka933_34:focus-visible{box-shadow:var(--shadow-focus-ring);outline:none}@keyframes _notice-in_ka933_1{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) ._notice_ka933_29{animation:none}}:root[data-motion=reduce] ._notice_ka933_29{animation:none}@media (max-width:479.98px){._slot_ka933_6{padding:var(--space-2) var(--space-3) 0}}._tray_10ld6_5{align-items:center;gap:var(--space-1);min-height:var(--control-h-xs);padding:0 var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--bg-surface);color:var(--text-secondary);font:inherit;font-size:var(--text-xs-size);white-space:nowrap;cursor:pointer;transition:color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);flex:none;display:inline-flex}._tray_10ld6_5:hover{color:var(--text-primary);background:var(--bg-hover);border-color:var(--border-default)}._tray_10ld6_5:focus-visible{box-shadow:var(--shadow-focus-ring);outline:none}._tray_10ld6_5[aria-pressed=true]{border-color:var(--border-strong);color:var(--text-primary)}._ring_10ld6_27{border:1.5px dashed var(--status-running-solid);border-radius:var(--radius-full);width:10px;height:10px;animation:_tray-turn_10ld6_1 calc(var(--duration-pulse) * 3) linear infinite}._count_10ld6_34{font-family:var(--font-display);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;color:var(--text-primary)}@keyframes _tray-turn_10ld6_1{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) ._ring_10ld6_27{animation:none}}:root[data-motion=reduce] ._ring_10ld6_27{animation:none}@media (max-width:479.98px){._word_10ld6_48{display:none}}._footer_hpc1p_15{gap:var(--space-2);flex-wrap:nowrap}._footerLeft_hpc1p_16,._footerRight_hpc1p_17{align-items:center;gap:var(--space-2);flex:none;display:flex}._footerLeft_hpc1p_16{flex:1 0 auto}._footerRight_hpc1p_17{justify-content:flex-end}._iconButton_hpc1p_21{width:var(--control-h-sm);height:var(--control-h-sm);border-radius:var(--radius-xs);color:var(--text-tertiary);font-size:var(--text-base-size);transition:background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}._iconButton_hpc1p_21:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}._iconButton_hpc1p_21:active:not(:disabled){background:var(--bg-active)}._iconButton_hpc1p_21:disabled{opacity:.45;cursor:not-allowed}._iconButton_hpc1p_21[aria-disabled=true]{opacity:.55}._iconButtonDanger_hpc1p_37{color:var(--status-danger-fg)}._boxDragging_hpc1p_39{border-color:var(--accent-500);background:var(--accent-50,var(--bg-hover));border-style:dashed}._boxBypass_hpc1p_41{border-color:var(--status-danger-solid)}._boxBypass_hpc1p_41._boxBypass_hpc1p_41:has(>textarea:focus){border-color:var(--status-danger-solid);box-shadow:0 0 0 1px var(--status-danger-solid)}._composerCompact_hpc1p_46 ._footer_hpc1p_15,._composerCompact_hpc1p_46 ._footerLeft_hpc1p_16,._composerCompact_hpc1p_46 ._footerRight_hpc1p_17{gap:var(--space-1)}._controlWrap_hpc1p_51{flex:none;display:inline-flex;position:relative}._control_hpc1p_51{align-items:center;gap:var(--space-1);min-height:var(--control-h-sm);padding:0 var(--space-2);border-radius:var(--radius-xs);color:var(--text-secondary);font-size:var(--text-xs-size);font-weight:var(--font-weight-medium);white-space:nowrap;transition:background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);display:inline-flex}._control_hpc1p_51:hover:not(:disabled),._control_hpc1p_51[aria-expanded=true]{background:var(--bg-hover);color:var(--text-primary)}._control_hpc1p_51:active:not(:disabled){background:var(--bg-active)}._control_hpc1p_51:disabled{opacity:.55;cursor:not-allowed}._controlDanger_hpc1p_69,._controlDanger_hpc1p_69:hover:not(:disabled),._controlDanger_hpc1p_69[aria-expanded=true]{color:var(--status-danger-fg);background:var(--status-danger-bg)}._controlIconOnly_hpc1p_72{padding:0 var(--space-2)}._controlIcon_hpc1p_72{font-size:var(--text-xs-size);flex-shrink:0;line-height:1;display:inline-flex}._controlText_hpc1p_75{white-space:nowrap}._caret_hpc1p_76{opacity:.7;border-top:4px solid;border-left:3px solid #0000;border-right:3px solid #0000;flex-shrink:0;width:0;height:0}._controlStatic_hpc1p_87{min-height:var(--control-h-sm);padding:0 var(--space-2);color:var(--text-secondary);font-size:var(--text-xs-size);font-weight:var(--font-weight-medium);white-space:nowrap;flex:none;align-items:center;display:inline-flex}._menu_hpc1p_99{bottom:calc(100% + var(--space-2));z-index:var(--z-dropdown);min-width:240px;max-width:min(360px, calc(100vw - var(--space-8)));max-height:min(420px,60vh);padding:var(--space-1);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface-raised);color:var(--text-primary);box-shadow:var(--shadow-menu,var(--shadow-md));flex-direction:column;gap:1px;display:flex;position:absolute;right:0;overflow-y:auto}._footerLeft_hpc1p_16 ._menu_hpc1p_99{left:0;right:auto}._menuWide_hpc1p_119{min-width:280px}._menuHeading_hpc1p_120{justify-content:space-between;align-items:center;gap:var(--space-2);margin:0 0 var(--space-1);padding:var(--space-2);border-bottom:1px solid var(--border-subtle);font-size:var(--text-xs-size);color:var(--text-tertiary);display:flex}._menuHeading_hpc1p_120 strong{color:var(--text-primary);font-weight:var(--font-weight-medium)}._menuKbd_hpc1p_132{font-family:var(--font-mono);font-size:var(--text-2xs-size);padding:0 var(--space-1);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);color:var(--text-secondary)}._menuNote_hpc1p_140{margin:0 0 var(--space-1);padding:0 var(--space-2) var(--space-1);font-size:var(--text-xs-size);color:var(--text-tertiary)}._menuItem_hpc1p_146{align-items:flex-start;gap:var(--space-2);width:100%;padding:var(--space-2);border-radius:var(--radius-xs);text-align:left;color:var(--text-primary);cursor:pointer;outline:none;display:flex}._menuItem_hpc1p_146:hover,._menuItem_hpc1p_146:focus-visible,._menuItem_hpc1p_146:focus{background:var(--bg-hover)}._menuItem_hpc1p_146:focus-visible{box-shadow:inset 0 0 0 1px var(--accent-500)}._menuItem_hpc1p_146[aria-disabled=true]{cursor:not-allowed}._menuItem_hpc1p_146[aria-disabled=true] ._menuLabel_hpc1p_163{color:var(--text-tertiary)}._menuItem_hpc1p_146[aria-checked=true] ._menuLabel_hpc1p_163{font-weight:var(--font-weight-medium)}._menuItemDanger_hpc1p_165 ._menuLabel_hpc1p_163,._menuItemDanger_hpc1p_165 ._menuCheck_hpc1p_166{color:var(--status-danger-fg)}._menuItem_hpc1p_146[data-capacity=tight] ._menuDesc_hpc1p_167{color:var(--status-warning-fg)}._menuItem_hpc1p_146[data-capacity=blocked] ._menuDesc_hpc1p_167{color:var(--status-danger-fg)}._menuCheck_hpc1p_166{width:1.1em;color:var(--accent-600);font-size:var(--text-sm-size);line-height:var(--text-sm-line);text-align:center;flex-shrink:0}._menuText_hpc1p_177{flex-direction:column;gap:1px;min-width:0;display:flex}._menuLabel_hpc1p_163{font-size:var(--text-sm-size);line-height:var(--text-sm-line)}._menuDesc_hpc1p_167{font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-tertiary)}._menuSeparator_hpc1p_180{height:1px;margin:var(--space-1) 0;background:var(--border-subtle)}._controlList_hpc1p_183{padding-bottom:var(--space-3);flex-direction:column;gap:1px;display:flex}._controlList_hpc1p_183+._controlList_hpc1p_183{border-top:1px solid var(--border-subtle);padding-top:var(--space-2)}._controlList_hpc1p_183 ._menuHeading_hpc1p_120{font-family:var(--font-display);font-size:var(--text-2xs-size);line-height:var(--text-2xs-line);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase;border-bottom:0;justify-content:flex-start;margin:0}._controlList_hpc1p_183 ._menuItem_hpc1p_146{min-height:var(--control-h);align-items:center}._engine-claude_hpc1p_198{--verse-engine:var(--engine-claude)}._engine-codex_hpc1p_199{--verse-engine:var(--engine-codex)}._engine-grok_hpc1p_200{--verse-engine:var(--engine-grok)}._engine-local_hpc1p_201{--verse-engine:var(--engine-local)}._seatChipWrap_hpc1p_202{flex:none;display:inline-flex;position:relative}._seatChip_hpc1p_202{align-items:center;gap:var(--space-2);min-height:var(--control-h-sm);padding:0 var(--space-2);border-radius:var(--radius-xs);color:var(--text-secondary);font-size:var(--text-xs-size);font-weight:var(--font-weight-medium);transition:background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);display:inline-flex}._seatChip_hpc1p_202:hover:not(:disabled),._seatChip_hpc1p_202[aria-expanded=true]{background:var(--bg-hover);color:var(--text-primary)}._seatChip_hpc1p_202:disabled{opacity:.55;cursor:not-allowed}._seatChipCompact_hpc1p_218{gap:var(--space-1)}._seatChipText_hpc1p_219{white-space:nowrap}._monogram_hpc1p_220{width:var(--engine-marker-h,14px);height:var(--engine-marker-h,14px);border-radius:var(--radius-xs);border-left:2px solid var(--verse-engine,var(--text-tertiary));background:var(--bg-hover);color:var(--text-primary);font-family:var(--font-display);font-size:var(--text-2xs-size);font-weight:var(--font-weight-semibold,600);flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:inline-flex}._menuItem_hpc1p_146 ._monogram_hpc1p_220{margin-top:2px}._ring_hpc1p_238{flex-shrink:0}._ringTrack_hpc1p_239{stroke:var(--border-default)}._ringFill_hpc1p_240{stroke:var(--data-seq-5);transition:stroke-dasharray var(--duration-base) var(--ease-standard)}._ring_hpc1p_238[data-tone=tight] ._ringFill_hpc1p_240{stroke:var(--status-warning-solid)}._ring_hpc1p_238[data-tone=limit] ._ringFill_hpc1p_240{stroke:var(--status-danger-solid)}._ring_hpc1p_238[data-tone=unknown] ._ringTrack_hpc1p_239{stroke-dasharray:2 2}._seatTip_hpc1p_245{bottom:calc(100% + var(--space-2));z-index:var(--z-dropdown);width:max-content;max-width:min(320px, calc(100vw - var(--space-8)));padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--bg-surface-raised);color:var(--text-primary);font-size:var(--text-xs-size);line-height:var(--text-xs-line);box-shadow:var(--shadow-menu,var(--shadow-md));pointer-events:none;position:absolute;right:0}._tip_hpc1p_262{text-align:left;flex-direction:column;gap:2px;max-width:320px;display:flex}._tip_hpc1p_262 strong{font-weight:var(--font-weight-medium)}._tipMuted_hpc1p_264{opacity:.75}._budgetDialog_hpc1p_266{width:min(640px, calc(100vw - var(--space-8)))}._contextRing_hpc1p_270{align-items:center;gap:var(--space-1);min-height:var(--control-h-sm);padding:0 var(--space-1);border-radius:var(--radius-xs);color:var(--text-tertiary);font-size:var(--text-xs-size);font-variant-numeric:tabular-nums;cursor:default;flex:none;display:inline-flex}._contextRing_hpc1p_270:focus-visible{outline:2px solid var(--accent-500);outline-offset:1px}._contextRing_hpc1p_270 circle{fill:none;stroke-width:2px}._contextFill_hpc1p_285{stroke:var(--data-seq-5);stroke-linecap:round;transition:stroke-dasharray var(--duration-base) var(--ease-standard)}._contextTick_hpc1p_290{stroke:var(--text-secondary);stroke-width:1.25px;stroke-linecap:round}._contextRing_hpc1p_270[data-tone=warn] ._contextFill_hpc1p_285{stroke:var(--status-warning-solid)}._contextRing_hpc1p_270[data-tone=warn]{color:var(--status-warning-fg)}._contextRing_hpc1p_270[data-tone=danger] ._contextFill_hpc1p_285,._contextRing_hpc1p_270[data-tone=over] ._contextFill_hpc1p_285{stroke:var(--status-danger-solid)}._contextRing_hpc1p_270[data-tone=danger],._contextRing_hpc1p_270[data-tone=over]{color:var(--status-danger-fg)}._contextRing_hpc1p_270[data-tone=unknown] ._ringTrack_hpc1p_239{stroke-dasharray:2 2}._contextRing_hpc1p_270[data-exact=false] ._contextFill_hpc1p_285{opacity:.55}._contextText_hpc1p_301{min-width:4ch}._sendKey_hpc1p_304{font-size:var(--text-2xs-size);opacity:.8;line-height:1}._queue_hpc1p_307{max-width:var(--measure-read);margin:0 auto var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--border-subtle);border-left:2px solid var(--status-running-solid);border-radius:var(--radius-sm);background:var(--bg-surface-raised)}._queueHeld_hpc1p_316{border-left-color:var(--status-warning-solid)}._queueHeading_hpc1p_317{margin:0 0 var(--space-1);font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-secondary)}._queueHeld_hpc1p_316 ._queueHeading_hpc1p_317{color:var(--status-warning-fg)}._queueList_hpc1p_324{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}._queueItem_hpc1p_325{align-items:center;gap:var(--space-2);min-width:0;display:flex}._queueIndex_hpc1p_326{width:1.4em;color:var(--text-tertiary);font-size:var(--text-xs-size);font-variant-numeric:tabular-nums;text-align:right;flex-shrink:0}._queueText_hpc1p_334{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-sm-size);color:var(--text-primary);flex:auto;overflow:hidden}._queueActions_hpc1p_343{align-items:center;gap:var(--space-1);flex-shrink:0;display:inline-flex}._queueButton_hpc1p_344{min-height:var(--control-h-xs);padding:0 var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-xs);color:var(--text-secondary);font-size:var(--text-xs-size)}._queueButton_hpc1p_344:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-primary)}._queueButtonPrimary_hpc1p_353{border-color:var(--accent-600);color:var(--accent-700)}._queueButtonPrimary_hpc1p_353:hover:not(:disabled){background:var(--accent-600);border-color:var(--accent-600);color:var(--accent-contrast)}._queueRemove_hpc1p_355{width:var(--control-h-xs);height:var(--control-h-xs);border-radius:var(--radius-xs);color:var(--text-tertiary);justify-content:center;align-items:center;display:inline-flex}._queueRemove_hpc1p_355:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}._chips_hpc1p_367{gap:var(--space-2);padding:var(--space-3) var(--space-3) 0;flex-wrap:wrap;margin:0;list-style:none;display:flex}._chip_hpc1p_367{align-items:center;gap:var(--space-2);max-width:240px;padding:var(--space-1) var(--space-1) var(--space-1) var(--space-1);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-surface);display:flex}._chip_hpc1p_367[data-status=error]{border-color:var(--status-danger-solid)}._chipThumb_hpc1p_379,._chipExt_hpc1p_380{border-radius:var(--radius-xs);object-fit:cover;flex-shrink:0;width:36px;height:36px}._chipExt_hpc1p_380{background:var(--bg-hover);color:var(--text-secondary);font-family:var(--font-display);font-size:var(--text-2xs-size);letter-spacing:var(--tracking-label,.06em);justify-content:center;align-items:center;display:inline-flex}._chipText_hpc1p_397{flex-direction:column;min-width:0;display:flex}._chipName_hpc1p_398{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs-size);color:var(--text-primary);overflow:hidden}._chipMeta_hpc1p_399{align-items:center;gap:var(--space-1);font-size:var(--text-2xs-size);color:var(--text-tertiary);display:inline-flex}._chip_hpc1p_367[data-status=error] ._chipMeta_hpc1p_399{color:var(--status-danger-fg);white-space:normal}._chipSpinner_hpc1p_401{border-radius:var(--radius-full);border:1.5px solid var(--border-default);border-top-color:var(--status-running-solid);width:8px;height:8px;animation:_composer-spin_hpc1p_1 var(--duration-pulse,1.6s) linear infinite}._chipRemove_hpc1p_409{width:var(--control-h-xs);height:var(--control-h-xs);border-radius:var(--radius-xs);color:var(--text-tertiary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}._chipRemove_hpc1p_409:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}._suggest_hpc1p_422{left:var(--space-2);right:var(--space-2);bottom:calc(100% + var(--space-2));z-index:var(--z-dropdown);max-height:min(320px,50vh);padding:var(--space-1);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface-raised);box-shadow:var(--shadow-menu,var(--shadow-md));position:absolute;overflow-y:auto}._suggestHeading_hpc1p_436{padding:var(--space-1) var(--space-2);font-family:var(--font-display);font-size:var(--text-2xs-size);line-height:var(--text-2xs-line);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase;color:var(--text-tertiary);margin:0}._suggestList_hpc1p_446{margin:0;padding:0;list-style:none}._suggestItem_hpc1p_447{align-items:baseline;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs);cursor:pointer;display:flex}._suggestItem_hpc1p_447[aria-selected=true]{background:var(--bg-hover);box-shadow:inset 2px 0 0 var(--accent-500)}._suggestItem_hpc1p_447[aria-disabled=true]{cursor:not-allowed}._suggestItem_hpc1p_447[aria-disabled=true] ._suggestPrimary_hpc1p_457{color:var(--text-tertiary)}._suggestPrimary_hpc1p_457{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-mono);font-size:var(--text-xs-size);color:var(--text-primary);overflow:hidden}._suggestSecondary_hpc1p_467{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-xs-size);color:var(--text-tertiary);flex-shrink:1;overflow:hidden}._suggestStatus_hpc1p_476{padding:var(--space-2);font-size:var(--text-xs-size);color:var(--text-tertiary);margin:0}._bypassList_hpc1p_479{margin:0 0 var(--space-4);padding-left:var(--space-4);color:var(--text-secondary);font-size:var(--text-sm-size);line-height:var(--text-sm-line-relaxed,var(--text-sm-line))}._bypassList_hpc1p_479 kbd{font-family:var(--font-mono);font-size:var(--text-2xs-size);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);padding:0 3px}._bypassActions_hpc1p_493{justify-content:flex-end;gap:var(--space-2);display:flex}._sheetBackdrop_hpc1p_496{z-index:var(--z-dialog);background:var(--bg-overlay,#00000052);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}._sheet_hpc1p_496{width:100%;max-height:75vh;padding:var(--space-3) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border-default);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--bg-surface-raised);color:var(--text-primary);animation:_composer-rise_hpc1p_1 var(--duration-slow,.22s) var(--ease-standard);overflow-y:auto}._sheetHeader_hpc1p_516{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}._sheetTitle_hpc1p_517{font-size:var(--text-base-size);font-weight:var(--font-weight-medium);margin:0}._sheetClose_hpc1p_518{min-height:var(--control-h);padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--accent-700);font-size:var(--text-sm-size);font-weight:var(--font-weight-medium)}._sheetNote_hpc1p_526{margin:var(--space-1) 0 var(--space-3);font-size:var(--text-xs-size);color:var(--text-tertiary)}._sheetBody_hpc1p_527{gap:var(--space-2);flex-direction:column;display:flex}@keyframes _composer-spin_hpc1p_1{to{transform:rotate(360deg)}}@keyframes _composer-rise_hpc1p_1{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) ._chipSpinner_hpc1p_401,:root:not([data-motion=full]) ._sheet_hpc1p_496{animation:none}:root:not([data-motion=full]) ._contextFill_hpc1p_285{transition:none}}:root[data-motion=reduce] ._chipSpinner_hpc1p_401,:root[data-motion=reduce] ._sheet_hpc1p_496{animation:none}._workspace_c3ra8_1{background:var(--bg-surface);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}._header_c3ra8_14{align-items:center;gap:var(--space-3);height:var(--strip-height);padding:0 var(--space-3);border-bottom:1px solid var(--border-subtle);flex-wrap:nowrap;flex-shrink:0;display:flex;position:relative}._headerSpacer_c3ra8_14{flex:1 1 var(--space-4);min-width:var(--space-2)}._identity_c3ra8_41{flex-direction:column;flex:0 auto;justify-content:center;gap:1px;min-width:0;display:flex;overflow:hidden}._eyebrow_c3ra8_50{max-width:100%;color:var(--text-tertiary);font-size:var(--text-2xs-size,11px);line-height:1.2;font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._eyebrowSkeleton_c3ra8_60{height:calc(var(--text-2xs-size,11px) * 1.2);border-radius:var(--radius-xs);width:9ch}._title_c3ra8_68,._titleStatic_c3ra8_69{min-width:0;max-width:100%;font-family:var(--font-display);font-size:var(--text-md-size);line-height:1.2;font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-display,-.02em)}._titleStatic_c3ra8_69{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._titleStatic_c3ra8_69[data-state=empty]{color:var(--text-secondary)}._title_c3ra8_68{margin-left:calc(-1 * var(--space-2));max-width:calc(100% + var(--space-2))}._titleButton_c3ra8_94{max-width:100%;padding:2px var(--space-2);border-radius:var(--radius-xs);color:inherit;font:inherit;letter-spacing:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}._titleButton_c3ra8_94:hover:not(:disabled){background:var(--bg-hover)}._titleButton_c3ra8_94:active:not(:disabled){background:var(--bg-active)}._titleButton_c3ra8_94:disabled{cursor:default}._titleInput_c3ra8_123{width:calc(100% + var(--space-2));max-width:48ch;padding:2px var(--space-2);margin-left:calc(-1 * var(--space-2));border:1px solid var(--accent-500);border-radius:var(--radius-xs);background:var(--bg-input);color:var(--text-primary);font-family:var(--font-display);font-size:var(--text-md-size);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-display,-.02em)}._titleSkeleton_c3ra8_141{height:calc(var(--text-md-size) * 1.2);border-radius:var(--radius-xs);width:22ch;max-width:40%}._seatPill_c3ra8_153{align-items:center;gap:var(--space-2);min-width:0;max-width:28ch;padding:0 var(--space-2);height:var(--control-h-xs);border-radius:var(--radius-xs);background:color-mix(in srgb, var(--verse-engine,var(--text-tertiary)) 10%, transparent);color:var(--text-secondary);font-size:var(--text-2xs-size,11px);flex:0 auto;display:inline-flex}._seatPill_c3ra8_153[data-seat-capacity]{max-width:40ch}._engineDot_c3ra8_174{border-radius:var(--radius-full);background:var(--verse-engine,var(--text-tertiary));flex-shrink:0;width:5px;height:5px}._seatText_c3ra8_157{text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);font-weight:var(--font-weight-medium);overflow:hidden}._seatPill_c3ra8_153[data-status=running] ._seatText_c3ra8_157{color:var(--status-running-fg)}._seatPill_c3ra8_153[data-status=error] ._seatText_c3ra8_157{color:var(--status-danger-fg)}._engine-claude_c3ra8_190{--verse-engine:var(--engine-claude,#c96442)}._engine-codex_c3ra8_191{--verse-engine:var(--engine-codex,#10a37f)}._engine-grok_c3ra8_192{--verse-engine:var(--engine-grok,#6b7280)}._engine-local_c3ra8_193{--verse-engine:var(--engine-local,#7c5cff)}._streamState_c3ra8_195{font-size:var(--text-2xs-size,11px);color:var(--text-tertiary);flex-shrink:0}._actions_c3ra8_203{align-items:center;gap:var(--space-1);flex:none;display:flex}._actionDivider_c3ra8_212{width:1px;height:var(--space-4);margin:0 var(--space-1);background:var(--border-default);flex-shrink:0}._toggles_c3ra8_221{flex-shrink:0;align-items:center;gap:2px;display:flex}._ghost_c3ra8_228,._ghostIcon_c3ra8_229,._danger_c3ra8_230{border-radius:var(--radius-xs);color:var(--text-tertiary);font-size:var(--text-xs-size);font-weight:var(--font-weight-medium);transition:color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard);flex-shrink:0}._ghostIcon_c3ra8_229{width:var(--control-h-sm);height:var(--control-h-sm);justify-content:center;align-items:center;display:flex}._ghost_c3ra8_228{min-height:var(--control-h-xs);padding:0 var(--space-2)}._ghostIcon_c3ra8_229:hover:not(:disabled),._ghost_c3ra8_228:hover:not(:disabled){color:var(--text-primary);background:var(--bg-hover)}._ghostIcon_c3ra8_229:active:not(:disabled),._ghost_c3ra8_228:active:not(:disabled){background:var(--bg-active)}._ghostIcon_c3ra8_229:disabled,._ghost_c3ra8_228:disabled{opacity:.4;cursor:not-allowed}._ghostIcon_c3ra8_229[aria-pressed=true]{color:var(--text-primary);background:var(--bg-hover)}._ghostIcon_c3ra8_229[aria-pressed=true]:hover:not(:disabled){background:var(--bg-active)}._danger_c3ra8_230{min-height:var(--control-h-xs);padding:0 var(--space-2);color:var(--status-danger-fg)}._danger_c3ra8_230:hover:not(:disabled){background:var(--status-danger-bg)}._danger_c3ra8_230:active:not(:disabled){background:var(--status-danger-bg);border-color:var(--status-danger-solid)}._confirm_c3ra8_262{align-items:center;gap:var(--space-1);display:inline-flex}._confirmText_c3ra8_263{font-size:var(--text-xs-size);color:var(--text-secondary);white-space:nowrap;flex-shrink:0}._meter_c3ra8_274,._ring_c3ra8_275{--meter-color:var(--data-seq-5);--meter-text:var(--text-secondary);align-items:baseline;gap:var(--space-2);flex-shrink:0;display:inline-flex}._meter-warn_c3ra8_285{--meter-color:var(--status-warning-solid);--meter-text:var(--status-warning-fg)}._meter-danger_c3ra8_286{--meter-color:var(--status-danger-solid);--meter-text:var(--status-danger-fg)}._meter-unknown_c3ra8_287{--meter-color:var(--border-strong);--meter-text:var(--text-tertiary)}._meter-over_c3ra8_290{--meter-color:var(--status-danger-solid);--meter-text:var(--status-danger-fg)}._meterTrack_c3ra8_293{background:0 0;height:2px;position:absolute;bottom:-1px;left:0;right:0}._meterFill_c3ra8_301{background:var(--meter-color);height:100%;transition:width var(--duration-slow) var(--ease-decelerate), background var(--duration-base) var(--ease-standard)}._meterTick_c3ra8_310{background:var(--text-tertiary);border-radius:var(--radius-xs);pointer-events:none;width:2px;height:6px;margin-left:-1px;position:absolute;bottom:0}._meterInline_c3ra8_320 ._meterTrack_c3ra8_293{background:var(--meter-track);border-radius:var(--radius-full);width:64px;position:relative;overflow:hidden}._meterText_c3ra8_328{align-items:baseline;gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-2xs-size,11px);font-variant-numeric:tabular-nums;color:var(--text-tertiary);display:inline-flex}._meterTokens_c3ra8_337,._meterCompact_c3ra8_338{white-space:nowrap}._meterPercent_c3ra8_342{text-align:right;min-width:4ch;color:var(--meter-text);font-weight:var(--font-weight-medium)}._modeWrap_c3ra8_348{flex-shrink:0;display:inline-flex;position:relative}._modeChip_c3ra8_349{min-height:var(--control-h-xs);padding:0 var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--text-2xs-size,11px);font-weight:var(--font-weight-medium);white-space:nowrap;transition:color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);align-items:center;display:inline-flex}._modeChip_c3ra8_349:hover:not(:disabled){color:var(--text-primary);background:var(--bg-hover)}._modeChip_c3ra8_349:active:not(:disabled){background:var(--bg-active)}._modeChip_c3ra8_349:disabled{opacity:.4;cursor:not-allowed}._modeChip_c3ra8_349[data-mode=expansive]{border-color:var(--accent-500);color:var(--text-primary)}._modeMenu_c3ra8_366{top:calc(100% + var(--space-2));z-index:var(--z-dropdown);width:max-content;min-width:280px;max-width:min(380px, calc(100vw - var(--space-6)));padding:var(--space-1);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface-raised);color:var(--text-primary);box-shadow:var(--shadow-menu,var(--shadow-md));flex-direction:column;gap:1px;display:flex;position:absolute;right:0}._modeMenuHeading_c3ra8_387{padding:var(--space-2) var(--space-2) var(--space-1);color:var(--text-secondary);font-size:var(--text-xs-size);line-height:var(--text-xs-line,1.4)}._modeItem_c3ra8_393{width:100%;padding:var(--space-2);border-radius:var(--radius-xs);text-align:left;color:var(--text-primary);flex-direction:column;gap:1px;display:flex}._modeItem_c3ra8_393:hover:not(:disabled),._modeItem_c3ra8_393:focus-visible{background:var(--bg-hover)}._modeItem_c3ra8_393:active:not(:disabled){background:var(--bg-active)}._modeItem_c3ra8_393:disabled{opacity:.5;cursor:not-allowed}._modeItem_c3ra8_393[aria-checked=true]{box-shadow:inset 2px 0 0 var(--accent-500)}._modeItemPrimary_c3ra8_408{font-size:var(--text-sm-size);font-weight:var(--font-weight-medium)}._modeItemSecondary_c3ra8_409{font-size:var(--text-2xs-size,11px);color:var(--text-tertiary)}._modeMenuNote_c3ra8_410{padding:var(--space-1) var(--space-2);color:var(--text-tertiary);font-size:var(--text-xs-size);line-height:var(--text-xs-line,1.4)}._modeMenuWarn_c3ra8_418{margin:0 var(--space-1);padding:var(--space-1) var(--space-2);border-left:2px solid var(--status-warning-fg,var(--accent-500));color:var(--text-secondary);font-size:var(--text-xs-size);line-height:var(--text-xs-line,1.4)}._modeMenuError_c3ra8_426{padding:var(--space-1) var(--space-2) var(--space-2);color:var(--status-danger-fg);font-size:var(--text-xs-size)}._advice_c3ra8_436{gap:var(--space-2);box-sizing:border-box;width:100%;max-width:calc(var(--measure-read) + 2 * var(--space-6));padding:var(--space-3) var(--space-6) 0;flex-direction:column;flex-shrink:0;margin:0 auto;display:flex}._adviceNote_c3ra8_448{align-items:flex-start;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-left:2px solid var(--status-warning-solid);border-radius:var(--radius-xs);background:var(--status-warning-bg);display:flex}._adviceNote_c3ra8_448[data-level=urge]{border-left-color:var(--status-danger-solid);background:var(--status-danger-bg)}._adviceNote_c3ra8_448[data-kind=expansive]{border-left-color:var(--accent-500);background:var(--bg-hover)}._adviceNote_c3ra8_448[data-kind=compact]{border-left-color:var(--border-strong,var(--border-default));background:var(--bg-hover)}._compactForm_c3ra8_462{align-items:flex-start;gap:var(--space-3);flex:1;min-width:0;display:flex}._compactLabel_c3ra8_463{margin-top:var(--space-1);color:var(--text-secondary);font-size:var(--text-xs-size);font-weight:var(--font-weight-medium)}._compactInput_c3ra8_464{width:100%;min-height:var(--control-h-xs);padding:0 var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);font-size:var(--text-xs-size)}._compactInput_c3ra8_464:focus-visible{outline:2px solid var(--accent-500);outline-offset:1px}._modeItemAction_c3ra8_476{margin-top:var(--space-1);border-top:1px solid var(--border-subtle);border-radius:0 0 var(--radius-xs) var(--radius-xs)}._adviceBody_c3ra8_477{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}._adviceTitle_c3ra8_478{font-size:var(--text-sm-size);font-weight:var(--font-weight-medium);color:var(--text-primary)}._adviceReasons_c3ra8_479{padding-left:var(--space-4);color:var(--text-secondary);font-size:var(--text-xs-size);line-height:var(--text-xs-line,1.4);margin:0;list-style:outside}._adviceFine_c3ra8_487{color:var(--text-secondary);font-size:var(--text-xs-size);line-height:var(--text-xs-line,1.4)}._adviceActions_c3ra8_488{align-items:flex-end;gap:var(--space-1);flex-direction:column;flex-shrink:0;display:flex}._adviceAction_c3ra8_488{min-height:var(--control-h-xs);padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);font-size:var(--text-xs-size);font-weight:var(--font-weight-medium);white-space:nowrap;transition:border-color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard);align-items:center;display:inline-flex}._adviceAction_c3ra8_488:hover:not(:disabled){border-color:var(--accent-500)}._adviceAction_c3ra8_488:active:not(:disabled){background:var(--bg-active)}._adviceAction_c3ra8_488:disabled{opacity:.5;cursor:not-allowed}._adviceStatus_c3ra8_507{padding:var(--space-2) var(--space-3);border-left:2px solid var(--accent-500);color:var(--text-secondary);font-size:var(--text-xs-size);line-height:var(--text-xs-line,1.4)}._emptyState_c3ra8_516{justify-content:center;align-items:flex-start;gap:var(--space-3);max-width:52ch;padding:var(--space-8) var(--space-6);flex-direction:column;flex:1;margin:0 auto;display:flex}._emptyMark_c3ra8_527{color:var(--accent-500)}._emptyTitle_c3ra8_528{font-family:var(--font-display);font-size:var(--text-2xl-size);line-height:var(--text-2xl-line);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-display,-.02em)}._emptyBody_c3ra8_535{color:var(--text-secondary);font-size:var(--text-md-size);line-height:var(--text-md-line)}._emptyButton_c3ra8_536{align-items:center;gap:var(--space-2);min-height:var(--control-h);padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-sm-size);font-weight:var(--font-weight-medium);transition:border-color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard);display:inline-flex}._emptyButton_c3ra8_536:hover{border-color:var(--accent-500)}._emptyButton_c3ra8_536:active{background:var(--bg-active)}._emptyButton_c3ra8_536 kbd{font-family:var(--font-mono);font-size:var(--text-2xs-size,11px);color:var(--text-tertiary)}._emptyWarn_c3ra8_552{padding-left:var(--space-3);border-left:2px solid var(--status-warning-solid);color:var(--text-secondary);font-size:var(--text-sm-size);line-height:var(--text-sm-line)}._emptyWarn_c3ra8_552 code{font-size:var(--text-xs-size);color:var(--text-primary)}@media (max-width:1100px){._meterCompact_c3ra8_338{display:none}}@media (max-width:900px){._seatPill_c3ra8_153{max-width:20ch}._seatPill_c3ra8_153[data-seat-capacity]{max-width:28ch}}@media (max-width:760px){._meterTokens_c3ra8_337{display:none}._seatPill_c3ra8_153{max-width:14ch}._seatPill_c3ra8_153[data-seat-capacity]{max-width:22ch}}@media (max-width:620px){._seatPill_c3ra8_153{display:none}._header_c3ra8_14{gap:var(--space-2)}._advice_c3ra8_436{padding:var(--space-2) var(--space-3) 0}._adviceNote_c3ra8_448,._compactForm_c3ra8_462{flex-direction:column}._adviceActions_c3ra8_488{flex-direction:row;align-items:center}}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) ._meterFill_c3ra8_301{transition:none}}._header_c3ra8_14{padding-left:max(var(--space-3), calc(var(--app-traffic-light-inset,0px) - var(--rail-width,56px) + var(--space-2)))}._ring_c3ra8_275{--meter-text:var(--text-secondary);align-items:center;gap:var(--space-1);min-height:var(--control-h-xs);padding:0 var(--space-1);border-radius:var(--radius-sm);cursor:default;flex-shrink:0;display:inline-flex}._ringSvg_c3ra8_640{flex:none;overflow:visible}._ringTrack_c3ra8_641{fill:none;stroke:var(--meter-track);stroke-width:2px}._ringFill_c3ra8_642{fill:none;stroke:var(--meter-color);stroke-width:2px;stroke-linecap:round;transition:stroke-dasharray var(--duration-base) var(--ease-standard)}._ringTick_c3ra8_649{stroke:var(--text-secondary);stroke-width:1.25px;stroke-linecap:round}._ringText_c3ra8_650{font-family:var(--font-display);font-size:var(--text-2xs-size);font-variant-numeric:tabular-nums;color:var(--meter-text)}._ring_c3ra8_275[data-exact=false] ._ringFill_c3ra8_642{opacity:.55}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) ._ringFill_c3ra8_642{transition:none}}._adviceStack_c3ra8_663{gap:var(--space-2);flex-direction:column;display:flex}._crumbSep_c3ra8_670{color:var(--text-tertiary)}._crumbBranch_c3ra8_671{font-family:var(--font-mono);font-size:var(--text-2xs-size);color:var(--text-secondary)}._engineTick_c3ra8_678{background:var(--verse-engine,var(--text-tertiary));border-radius:1px;flex-shrink:0;width:2px;height:12px}._monogram_c3ra8_685{font-family:var(--font-display);font-size:var(--text-2xs-size);font-weight:var(--font-weight-semibold);color:var(--text-secondary);flex-shrink:0;align-items:center;display:inline-flex}._modeError_c3ra8_694{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:28ch;font-size:var(--text-2xs-size);color:var(--status-danger-fg);flex-shrink:1;overflow:hidden}._queueHost_c3ra8_709{box-sizing:border-box;width:100%;padding:var(--space-2) var(--space-6) 0;flex-shrink:0}._queueHost_c3ra8_709:empty{display:none}._queueHost_c3ra8_709>*{margin-bottom:0}@media (max-width:900px){._queueHost_c3ra8_709{padding:var(--space-2) var(--space-4) 0}}._liveRow_c3ra8_722{align-items:center;gap:var(--space-3);box-sizing:border-box;width:100%;max-width:calc(var(--measure-read) + 2 * var(--space-6));padding:var(--space-2) var(--space-6) 0;flex-shrink:0;margin:0 auto;display:flex}._liveRow_c3ra8_722>:first-child{flex:1;min-width:0}._liveRow_c3ra8_722[data-running]>:first-child{padding-top:var(--space-1);border-top:1px solid var(--status-running-solid)}._liveSpacer_c3ra8_738{flex:1}._engineNotice_c3ra8_741{align-items:baseline;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-left:2px solid var(--status-warning-solid);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--status-warning-bg);color:var(--text-primary);font-size:var(--text-sm-size);line-height:var(--text-sm-line);margin:0;display:flex}._engineNotice_c3ra8_741[data-kind=watchdog]{border-left-color:var(--status-running-solid);background:var(--status-running-bg)}._engineNoticeWord_c3ra8_755{font-weight:var(--font-weight-semibold);color:var(--status-warning-fg);flex-shrink:0}._engineNotice_c3ra8_741[data-kind=watchdog] ._engineNoticeWord_c3ra8_755{color:var(--status-running-fg)}@media (max-width:479.98px){._liveRow_c3ra8_722{padding:var(--space-2) var(--space-3) 0}._seatPill_c3ra8_153 ._seatText_c3ra8_157,._paneToggle_c3ra8_768{display:none}}._banner_tv0om_4{gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);font-size:var(--text-sm-size);border-left-width:3px;min-width:0;max-width:100%;display:grid}._banner_tv0om_4[data-tone=danger]{border-left-color:var(--status-danger-solid)}._banner_tv0om_4[data-tone=warning]{border-left-color:var(--status-warning-solid)}._banner_tv0om_4[data-tone=neutral]{border-left-color:var(--status-neutral-solid)}._head_tv0om_22{align-items:center;gap:var(--space-2);min-width:0;display:flex}._headline_tv0om_29{min-width:0;font-weight:var(--font-weight-medium);overflow-wrap:anywhere;flex:auto}._list_tv0om_36{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}._row_tv0om_44{gap:var(--space-1);min-width:0;display:grid}._rowHead_tv0om_50{align-items:baseline;gap:var(--space-1) var(--space-2);flex-wrap:wrap;display:flex}._dot_tv0om_57{background:var(--status-neutral-solid);border-radius:50%;flex:none;align-self:center;width:8px;height:8px}._row_tv0om_44[data-tone=danger] ._dot_tv0om_57{background:var(--status-danger-solid)}._row_tv0om_44[data-tone=warning] ._dot_tv0om_57{background:var(--status-warning-solid)}._row_tv0om_44[data-tone=success] ._dot_tv0om_57{background:var(--status-success-solid)}._label_tv0om_70{font-weight:var(--font-weight-medium)}._word_tv0om_72{color:var(--text-secondary)}._row_tv0om_44[data-tone=danger] ._word_tv0om_72{color:var(--status-danger-fg)}._row_tv0om_44[data-tone=warning] ._word_tv0om_72{color:var(--status-warning-fg)}._reset_tv0om_76{color:var(--text-tertiary);font-variant-numeric:tabular-nums}._detail_tv0om_81{color:var(--text-secondary);font-size:var(--text-xs-size);overflow-wrap:anywhere;margin:0}._actions_tv0om_88{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}._command_tv0om_95{min-width:0;padding:2px var(--space-1);border-radius:var(--radius-xs);background:var(--bg-code);font-size:var(--text-xs-size);overflow-wrap:anywhere;flex:16rem}._status_tv0om_105{color:var(--text-tertiary);font-size:var(--text-xs-size);margin:0}._status_tv0om_105[data-error=true]{color:var(--status-danger-fg)}._block_tv0om_114{gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--status-danger-solid);border-radius:var(--radius-sm);background:var(--status-danger-bg);color:var(--text-primary);font-size:var(--text-sm-size);min-width:0;display:grid}._blockReason_tv0om_126{font-weight:var(--font-weight-medium);overflow-wrap:anywhere;margin:0}._alternatives_tv0om_132{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;display:flex}._alternativesLabel_tv0om_139{color:var(--text-secondary);font-size:var(--text-xs-size)}@media (max-width:480px){._banner_tv0om_4,._block_tv0om_114{padding:var(--space-2)}._command_tv0om_95{flex-basis:100%}}._group_12xsh_9{font-size:var(--text-sm-size)}._line_12xsh_13{align-items:center;gap:var(--space-2);width:100%;min-height:var(--density-row-sm);padding:0 var(--space-2) 0 var(--space-3);border:0;border-left:2px solid var(--border-subtle);color:var(--text-secondary);font:inherit;text-align:left;cursor:pointer;transition:color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard);background:0 0;display:flex}._line_12xsh_13:hover{color:var(--text-primary);background:var(--bg-hover)}._line_12xsh_13:active{background:var(--bg-active)}._line_12xsh_13:focus-visible{box-shadow:var(--shadow-focus-ring);outline:none}._group_12xsh_9[data-failed]>._line_12xsh_13{border-left-color:var(--status-danger-solid)}._group_12xsh_9[data-running]:not([data-failed])>._line_12xsh_13{border-left-color:var(--status-running-solid)}._chevron_12xsh_37{opacity:.7;width:0;height:0;transition:transform var(--duration-fast) var(--ease-standard);border-top:4px solid #0000;border-bottom:4px solid #0000;border-left:5px solid;flex:none;margin:0 3px 0 2px}._group_12xsh_9:not([data-view=collapsed])>._line_12xsh_13 ._chevron_12xsh_37{transform:rotate(90deg)}._work_12xsh_50{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}._state_12xsh_58{white-space:nowrap;font-size:var(--text-xs-size);flex:none;align-items:center;display:inline-flex}._state_12xsh_58:before{content:"·";margin-right:var(--space-2);color:var(--text-tertiary)}._failed_12xsh_70{color:var(--status-danger-fg);font-weight:var(--font-weight-medium)}._sep_12xsh_71{color:var(--text-tertiary);white-space:pre}._running_12xsh_72{align-items:center;gap:var(--space-1);color:var(--status-running-fg);display:inline-flex}._pulse_12xsh_78{border-radius:var(--radius-full);background:var(--status-running-solid);width:6px;height:6px;animation:_activity-pulse_12xsh_1 var(--duration-pulse) ease-in-out infinite}._time_12xsh_86{padding-left:var(--space-2);font-family:var(--font-display);font-size:var(--text-2xs-size);font-variant-numeric:tabular-nums;color:var(--text-tertiary);white-space:nowrap;flex:none;margin-left:auto}._line_12xsh_13:hover ._time_12xsh_86{color:var(--text-secondary)}._body_12xsh_98{gap:var(--space-2);margin-top:var(--space-2);padding-left:var(--space-3);border-left:2px solid var(--border-subtle);display:grid}._body_12xsh_98[hidden]{display:none}._list_12xsh_106{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}._list_12xsh_106>li{min-width:0}._more_12xsh_116{min-height:var(--control-h-xs);padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--text-link);font:inherit;font-size:var(--text-xs-size);cursor:pointer;background:0 0;border:0;justify-self:start}._more_12xsh_116:hover{background:var(--bg-hover)}._more_12xsh_116:focus-visible{box-shadow:var(--shadow-focus-ring);outline:none}@keyframes _activity-pulse_12xsh_1{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) ._pulse_12xsh_78{animation:none}}:root[data-motion=reduce] ._pulse_12xsh_78{animation:none}@media (max-width:479.98px){._state_12xsh_58:before{display:none}}._rail_99z8l_7{top:var(--space-6);bottom:var(--space-6);right:var(--space-4);z-index:var(--z-sticky);flex-direction:column;align-items:center;width:22px;display:flex;position:absolute}._handoff_99z8l_20{margin-bottom:var(--space-1);color:var(--text-tertiary);font-size:var(--text-2xs-size);flex:none;line-height:1}._track_99z8l_28{flex:1;width:100%;min-height:0;position:relative}._tick_99z8l_36{border-radius:var(--radius-xs);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:100%;height:12px;padding:0;display:flex;position:absolute;left:0;transform:translateY(-50%)}._tick_99z8l_36:hover,._tick_99z8l_36:focus-visible{background:var(--bg-hover)}._tick_99z8l_36:focus-visible{box-shadow:var(--shadow-focus-ring);outline:none}._bar_99z8l_55{border-radius:var(--radius-full);background:var(--border-strong);width:10px;height:2px;transition:width var(--duration-fast) var(--ease-standard)}._tick_99z8l_36:hover ._bar_99z8l_55,._tick_99z8l_36:focus-visible ._bar_99z8l_55{width:14px}._tick_99z8l_36[data-status=error] ._bar_99z8l_55{background:var(--status-danger-solid);height:3px}._tick_99z8l_36[data-status=running] ._bar_99z8l_55{background:var(--status-running-solid);height:3px;animation:_rail-pulse_99z8l_1 var(--duration-pulse) ease-in-out infinite}._tick_99z8l_36[data-status=stopped] ._bar_99z8l_55{background:var(--text-tertiary)}._markers_99z8l_72{pointer-events:none;gap:1px;display:inline-flex;position:absolute;left:-2px;transform:translate(-100%)}._marker_99z8l_72{color:var(--text-tertiary);font-size:var(--text-2xs-size);line-height:1}._marker_99z8l_72[data-marker=recovered]{color:var(--status-info-fg)}._card_99z8l_88{right:calc(100% + var(--space-2));gap:var(--space-1);width:max-content;max-width:min(320px,60vw);padding:var(--space-2) var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-surface-raised);box-shadow:var(--shadow-menu);pointer-events:none;display:grid;position:absolute;transform:translateY(-50%)}._cardMeta_99z8l_103{font-family:var(--font-display);font-size:var(--text-2xs-size);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-tertiary)}._cardTitle_99z8l_110{font-size:var(--text-sm-size);line-height:var(--text-sm-line);color:var(--text-primary);overflow-wrap:anywhere}@keyframes _rail-pulse_99z8l_1{0%,to{opacity:1}50%{opacity:.4}}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) ._tick_99z8l_36[data-status=running] ._bar_99z8l_55{animation:none}:root:not([data-motion=full]) ._bar_99z8l_55{transition:none}}:root[data-motion=reduce] ._tick_99z8l_36[data-status=running] ._bar_99z8l_55{animation:none}@media (max-width:767.98px){._rail_99z8l_7{display:none}}._markerIcon_99z8l_133{width:1em;height:1em;display:block}._diff_1x50e_30{--diff-add:color-mix(in srgb, var(--status-success-solid) 22%, var(--bg-code));--diff-del:color-mix(in srgb, var(--status-danger-solid) 22%, var(--bg-code));border:1px solid var(--border-subtle);border-radius:var(--radius-xs);background:var(--bg-code);overflow:hidden}._visuallyHidden_1x50e_46{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}._diffMulti_1x50e_58{min-width:0}._diffHead_1x50e_60{align-items:center;gap:var(--space-3);min-height:var(--control-h-xs);padding:0 var(--space-2) 0 var(--space-3);border-bottom:1px solid var(--border-subtle);display:flex}._diffPath_1x50e_68{text-overflow:ellipsis;white-space:nowrap;text-align:left;min-width:0;font-family:var(--font-mono);font-size:var(--text-xs-size);color:var(--text-secondary);direction:rtl;flex:auto;overflow:hidden}._diffOldPath_1x50e_83{text-overflow:ellipsis;white-space:nowrap;text-align:left;min-width:0;font-family:var(--font-mono);font-size:var(--text-xs-size);color:var(--text-tertiary);direction:rtl;flex:0 auto;overflow:hidden}._diffOldPath_1x50e_83:after{content:" →";color:var(--text-tertiary)}._diffStatus_1x50e_101{font-family:var(--font-display);font-size:var(--text-2xs-size,11px);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase;color:var(--text-secondary);flex:none}._diffStats_1x50e_110{gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-2xs-size,11px);font-variant-numeric:tabular-nums;flex:none;display:flex}._diffAdd_1x50e_118{color:var(--status-success-fg)}._diffDel_1x50e_119{color:var(--status-danger-fg)}._diffNotice_1x50e_121{padding:var(--space-2) var(--space-3);font-family:var(--font-mono);font-size:var(--text-xs-size);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-secondary);margin:0}._diffEmpty_1x50e_130{padding:var(--space-3);color:var(--text-tertiary);font-size:var(--text-xs-size)}._diffTable_1x50e_136{border-collapse:collapse;table-layout:fixed;width:100%;font-family:var(--font-mono);font-size:var(--text-xs-size);line-height:var(--text-xs-line-relaxed)}._diffNo_1x50e_121{width:42px;min-width:42px;padding:0 var(--space-2);text-align:right;vertical-align:top;-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums;color:var(--text-secondary)}._diffMarker_1x50e_30{text-align:center;vertical-align:top;-webkit-user-select:none;user-select:none;width:14px;min-width:14px;color:var(--text-secondary)}._diffText_1x50e_159{padding:0 var(--space-2) 0 0;vertical-align:top;white-space:pre-wrap;overflow-wrap:anywhere}._diffCode_1x50e_179{font-family:inherit}._diffRow_add_1x50e_181{background:var(--diff-add)}._diffRow_del_1x50e_182{background:var(--diff-del)}._diffRow_context_1x50e_183{background:0 0}._diffHunkRow_1x50e_185>*{padding-top:var(--space-1);padding-bottom:var(--space-1);border-top:1px solid var(--border-subtle);background:var(--bg-canvas)}._diffHunkRow_1x50e_185:first-child>*{border-top:0}._diffHunkHead_1x50e_192{font-family:var(--font-display);font-size:var(--text-2xs-size,11px);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase;color:var(--text-tertiary)}._diffMore_1x50e_200,._commandMore_1x50e_201,._activityMore_1x50e_202{width:100%;min-height:var(--control-h-xs);padding:0 var(--space-3);border-top:1px solid var(--border-subtle);color:var(--text-secondary);font-family:var(--font-ui);font-size:var(--text-2xs-size,11px);font-weight:var(--font-weight-medium);text-align:left;cursor:pointer;transition:background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);background:0 0;display:block}._diffMore_1x50e_200:hover,._commandMore_1x50e_201:hover,._activityMore_1x50e_202:hover{background:var(--bg-hover);color:var(--text-primary)}._diffUnanchored_1x50e_221{padding:var(--space-2) var(--space-3);border-top:1px solid var(--border-subtle);color:var(--text-tertiary);font-size:var(--text-xs-size);line-height:var(--text-xs-line-relaxed);margin:0}._tok_plain_1x50e_232{color:var(--text-primary)}._tok_comment_1x50e_233{color:var(--text-tertiary);font-style:italic}._tok_string_1x50e_234{color:var(--status-success-fg)}._tok_number_1x50e_235{color:var(--status-warning-fg)}._tok_keyword_1x50e_236{color:var(--accent-600);font-weight:var(--font-weight-medium)}._command_1x50e_201{border:1px solid var(--border-subtle);border-radius:var(--radius-xs);background:var(--bg-code);overflow:hidden}._command_1x50e_201[data-failed=true]{border-left:2px solid var(--status-danger-solid)}._commandLine_1x50e_250{align-items:baseline;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle);display:flex}._commandPrompt_1x50e_257{font-family:var(--font-mono);font-size:var(--text-xs-size);color:var(--text-tertiary);-webkit-user-select:none;user-select:none;flex:none}._commandText_1x50e_264{min-width:0;font-family:var(--font-mono);font-size:var(--text-xs-size);line-height:var(--text-xs-line-relaxed);color:var(--text-primary);white-space:pre-wrap;overflow-wrap:anywhere;flex:1}._commandStatus_1x50e_275{align-items:center;gap:var(--space-3);min-height:var(--control-h-xs);padding:0 var(--space-3);border-bottom:1px solid var(--border-subtle);display:flex}._commandStatusText_1x50e_283{font-family:var(--font-display);font-size:var(--text-2xs-size,11px);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase;font-variant-numeric:tabular-nums;color:var(--text-secondary)}._commandStatusText_1x50e_283[data-tone=bad]{color:var(--status-danger-fg)}._commandStatusText_1x50e_283[data-tone=pending]{color:var(--status-warning-fg)}._commandMeta_1x50e_293{font-size:var(--text-2xs-size,11px);color:var(--text-tertiary)}._commandPre_1x50e_298{max-height:420px;padding:var(--space-3);font-family:var(--font-mono);font-size:var(--text-xs-size);line-height:var(--text-xs-line-relaxed);white-space:pre;color:var(--text-primary);tab-size:8;margin:0;overflow:auto}._commandPending_1x50e_310{padding:var(--space-3);color:var(--text-tertiary);font-size:var(--text-xs-size);margin:0}._activity_1x50e_202{margin-top:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}._activityHead_1x50e_330{align-items:baseline;gap:var(--space-2);min-height:var(--control-h-xs);padding:var(--space-1) var(--space-3);border-bottom:1px solid var(--border-subtle);background:var(--bg-canvas);font-size:var(--text-xs-size);display:flex}._activityLabel_1x50e_340{font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums;color:var(--text-secondary)}._activityBreakdown_1x50e_345{color:var(--text-tertiary);margin-left:auto}._activityList_1x50e_350{margin:0;padding:0;list-style:none}._activityList_1x50e_350>li>span:not([role=tooltip]),._activityList_1x50e_350>li>span>span:not([role=tooltip]){width:100%;min-width:0;display:block}._activityRow_1x50e_363{grid-template-columns:2px calc(var(--space-3) + 7.5ch) minmax(0, 1fr) auto auto;align-items:center;gap:var(--space-2);width:100%;min-height:var(--density-row-sm);padding:0 var(--space-3) 0 0;text-align:left;cursor:pointer;transition:background var(--duration-fast) var(--ease-standard);background:0 0;border:0;display:grid}._activityRow_1x50e_363:hover{background:var(--bg-hover)}._activityRow_1x50e_363:active{background:var(--bg-active)}._activityRule_1x50e_385{background:var(--border-default);align-self:stretch}._activityRow_1x50e_363[data-action=edit] ._activityRule_1x50e_385{background:var(--status-info-solid)}._activityRow_1x50e_363[data-action=create] ._activityRule_1x50e_385{background:var(--status-success-solid)}._activityRow_1x50e_363[data-action=delete] ._activityRule_1x50e_385,._activityRow_1x50e_363[data-failed=true] ._activityRule_1x50e_385{background:var(--status-danger-solid)}._activityVerb_1x50e_380{font-size:var(--text-xs-size);color:var(--text-tertiary);padding-left:var(--space-3);white-space:nowrap}._activityRow_1x50e_363[data-action=edit] ._activityVerb_1x50e_380,._activityRow_1x50e_363[data-action=create] ._activityVerb_1x50e_380,._activityRow_1x50e_363[data-action=delete] ._activityVerb_1x50e_380{color:var(--text-secondary)}._activityFailed_1x50e_384{font-size:var(--text-xs-size);font-weight:var(--font-weight-medium);white-space:nowrap;color:var(--status-danger-fg);flex:none}._activityPath_1x50e_411{align-items:baseline;gap:var(--space-2);min-width:0;font-family:var(--font-mono);font-size:var(--text-xs-size);display:flex}._activityName_1x50e_419{color:var(--text-primary);white-space:nowrap}._activityDir_1x50e_420{text-overflow:ellipsis;white-space:nowrap;text-align:left;min-width:0;color:var(--text-tertiary);font-size:var(--text-2xs-size,11px);direction:rtl;overflow:hidden}._activityTimes_1x50e_430,._activityDelta_1x50e_431{font-family:var(--font-display);font-size:var(--text-2xs-size,11px);font-variant-numeric:tabular-nums;color:var(--text-tertiary);white-space:nowrap}._activityDelta_1x50e_431{gap:var(--space-2);display:flex}._activityAdd_1x50e_439{color:var(--status-success-fg)}._activityDel_1x50e_431{color:var(--status-danger-fg)}._nav_1x50e_446{z-index:1;align-items:center;gap:var(--space-2);min-height:var(--density-row,32px);padding:0 var(--space-3);border-bottom:1px solid var(--border-subtle);flex-shrink:0;display:flex;position:relative}._navSpacer_1x50e_457{flex:1}._navOutlineButton_1x50e_459{align-items:center;gap:var(--space-1);min-height:var(--control-h-xs);padding:0 var(--space-2);border-radius:var(--radius-xs);color:var(--text-secondary);cursor:pointer;transition:background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);background:0 0;border:0;display:inline-flex}._navOutlineButton_1x50e_459:hover{background:var(--bg-hover);color:var(--text-primary)}._navChevron_1x50e_473{transition:transform var(--duration-fast) var(--ease-standard);display:inline-flex}._navChevron_1x50e_473[data-open=true]{transform:rotate(90deg)}._navCount_1x50e_475{font-family:var(--font-display);font-size:var(--text-xs-size);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}._navWord_1x50e_481{font-family:var(--font-display);font-size:var(--text-2xs-size,11px);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase}._navSearch_1x50e_488{align-items:center;gap:var(--space-2);min-width:12ch;height:var(--control-h-xs);padding:0 var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);background:var(--bg-input);transition:border-color var(--duration-fast) var(--ease-standard);flex:0 26ch;display:flex}._navSearch_1x50e_488:focus-within{border-color:var(--accent-500);box-shadow:var(--shadow-focus-ring)}._navSearchIcon_1x50e_512{color:var(--text-tertiary);display:inline-flex}._navSearch_1x50e_488 input{min-width:0;color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-xs-size);background:0 0;border:0;flex:1}._navSearch_1x50e_488 input::-webkit-search-cancel-button{display:none}._navSearch_1x50e_488 input:focus-visible{box-shadow:none;outline:none}._navMatches_1x50e_525{font-family:var(--font-display);font-size:var(--text-2xs-size,11px);font-variant-numeric:tabular-nums;color:var(--text-secondary);white-space:nowrap}._navStep_1x50e_532{gap:2px;display:inline-flex}._navStep_1x50e_532 button{min-width:var(--control-h-xs);min-height:var(--control-h-xs);border-radius:var(--radius-xs);color:var(--text-secondary);cursor:pointer;background:0 0;border:0;line-height:1}._navStep_1x50e_532 button:hover{background:var(--bg-hover);color:var(--text-primary)}._navError_1x50e_545{align-items:center;gap:var(--space-2);min-height:var(--control-h-xs);padding:0 var(--space-2);border:0;border-left:2px solid var(--status-danger-solid);border-radius:0 var(--radius-xs) var(--radius-xs) 0;color:var(--status-danger-fg);font-size:var(--text-2xs-size,11px);font-weight:var(--font-weight-medium);white-space:nowrap;cursor:pointer;transition:background var(--duration-fast) var(--ease-standard);background:0 0;display:inline-flex}._navError_1x50e_545:hover{background:var(--status-danger-bg)}._navErrorGlyph_1x50e_563{font-family:var(--font-display);font-weight:var(--font-weight-semibold)}._outline_1x50e_568{top:calc(100% + 2px);left:var(--space-2);right:var(--space-2);max-width:var(--measure-read);max-height:min(60vh,520px);padding:var(--space-1);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface-raised);box-shadow:var(--shadow-menu,var(--shadow-md));position:absolute;overflow-y:auto}._outlineEmpty_1x50e_582{padding:var(--space-3);color:var(--text-tertiary);font-size:var(--text-xs-size)}._outlineList_1x50e_587{margin:0;padding:0;list-style:none}._outlineRow_1x50e_588{gap:var(--space-2);width:100%;padding:var(--space-2);border-radius:var(--radius-xs);text-align:left;cursor:pointer;transition:background var(--duration-fast) var(--ease-standard);background:0 0;border:0;grid-template-columns:3ch minmax(0,1fr) auto;display:grid}._outlineRow_1x50e_588:hover{background:var(--bg-hover)}._outlineIndex_1x50e_602{font-family:var(--font-display);font-size:var(--text-2xs-size,11px);font-variant-numeric:tabular-nums;color:var(--text-tertiary);padding-top:2px}._outlineBody_1x50e_609{gap:2px;min-width:0;display:grid}._outlineTitle_1x50e_610{font-size:var(--text-xs-size);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._outlineSnippet_1x50e_617{font-family:var(--font-mono);font-size:var(--text-xs-size);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._outlineMeta_1x50e_627{font-size:var(--text-2xs-size,11px);color:var(--text-tertiary)}._outlineStatus_1x50e_631{font-family:var(--font-display);font-size:var(--text-2xs-size,11px);font-weight:var(--font-weight-semibold);color:var(--text-tertiary)}._outlineRow_1x50e_588[data-status=error] ._outlineStatus_1x50e_631{color:var(--status-danger-fg)}._outlineRow_1x50e_588[data-status=running] ._outlineStatus_1x50e_631{color:var(--status-running-fg)}@media (max-width:900px){._navSearch_1x50e_488{flex-basis:14ch}._activityDir_1x50e_420{display:none}}._commandRun_1x50e_646{min-height:var(--control-h-xs);padding:0 var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-secondary);font:inherit;font-size:var(--text-2xs-size);white-space:nowrap;cursor:pointer;background:0 0;flex:none;align-self:center}._commandRun_1x50e_646:hover{color:var(--text-primary);background:var(--bg-hover);border-color:var(--border-default)}._commandRun_1x50e_646:focus-visible{box-shadow:var(--shadow-focus-ring);outline:none}._thinking_lm3ty_11{color:var(--text-tertiary);font-size:var(--text-sm-size);line-height:var(--text-sm-line);min-width:0}._summary_lm3ty_18,._line_lm3ty_19{align-items:center;gap:var(--space-2);min-height:var(--control-h-xs);max-width:100%;padding-left:var(--space-3);border-left:2px solid #0000;display:inline-flex}._line_lm3ty_19{padding-left:calc(var(--space-3) + 10px + var(--space-2))}._summary_lm3ty_18{cursor:pointer;border-radius:var(--radius-xs);padding-right:var(--space-2);transition:color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard);list-style:none}._summary_lm3ty_18::-webkit-details-marker{display:none}._summary_lm3ty_18:hover{color:var(--text-secondary);background:var(--bg-hover)}._chevron_lm3ty_40{opacity:.7;width:0;height:0;transition:transform var(--duration-fast) var(--ease-standard);border-top:4px solid #0000;border-bottom:4px solid #0000;border-left:5px solid;flex:none;margin:0 3px 0 2px}._thinking_lm3ty_11[open] ._chevron_lm3ty_40{transform:rotate(90deg)}._glyph_lm3ty_55{border-radius:var(--radius-full);background:var(--status-running-solid);width:6px;height:6px;animation:_thinking-breathe_lm3ty_1 1.6s var(--ease-standard) infinite;flex:none}._label_lm3ty_64{font-family:var(--font-display);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}._kind_lm3ty_73,._hidden_lm3ty_74{font-size:var(--text-xs-size);color:var(--text-tertiary);white-space:nowrap}._kind_lm3ty_73{padding:0 var(--space-1);border:1px solid var(--border-subtle);border-radius:var(--radius-xs)}._body_lm3ty_85{margin-top:var(--space-2);padding-left:var(--space-4);border-left:2px solid var(--border-subtle);white-space:pre-wrap;overflow-wrap:anywhere;line-height:var(--text-sm-line-relaxed);color:var(--text-secondary);overscroll-behavior:contain;max-height:min(40vh,480px);overflow-y:auto}._thinking_lm3ty_11[data-streaming] ._body_lm3ty_85{border-left-color:var(--status-running-solid)}._body_lm3ty_85[data-window]{max-height:calc(3 * var(--text-sm-line-relaxed));cursor:pointer;overflow:hidden}._body_lm3ty_85[data-window][data-clipped]{-webkit-mask-image:linear-gradient(#0000 0,#000 1.2em);mask-image:linear-gradient(#0000 0,#000 1.2em)}@keyframes _thinking-breathe_lm3ty_1{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) ._glyph_lm3ty_55{animation:none}:root:not([data-motion=full]) ._chevron_lm3ty_40{transition:none}}:root[data-motion=reduce] ._glyph_lm3ty_55{animation:none}:root[data-motion=reduce] ._chevron_lm3ty_40{transition:none}._chip_15tdd_8{align-items:center;gap:var(--space-1);font-family:var(--font-display);font-size:var(--text-2xs-size,11px);line-height:var(--text-2xs-line,14px);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase;color:var(--status-unknown-fg);white-space:nowrap;flex:none;display:inline-flex}._chipGlyph_15tdd_22{font-family:var(--font-ui);font-size:var(--text-2xs-size);letter-spacing:0;line-height:1}._chip_15tdd_8[data-capacity=ready]{color:var(--status-success-fg)}._chip_15tdd_8[data-capacity=tight]{color:var(--status-warning-fg)}._chip_15tdd_8[data-capacity=blocked]{color:var(--status-danger-fg)}._chip_15tdd_8[data-capacity=unread]{color:var(--status-unknown-fg)}._window_15tdd_36,._windowLead_15tdd_37{flex-direction:column;gap:2px;min-width:0;display:flex}._windowLead_15tdd_37 ._windowLabel_15tdd_44,._windowLead_15tdd_37 ._pct_15tdd_45{color:var(--text-primary)}._windowLabel_15tdd_44{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-2xs-size,11px);line-height:var(--text-2xs-line,14px);color:var(--text-secondary);overflow:hidden}._pct_15tdd_45{font-variant-numeric:tabular-nums;font-size:var(--text-2xs-size,11px);line-height:var(--text-2xs-line,14px);color:var(--text-secondary)}._flag_15tdd_61{font-family:var(--font-ui);font-size:var(--text-2xs-size,11px);line-height:var(--text-2xs-line,14px);font-weight:var(--font-weight-medium);color:var(--status-danger-fg);white-space:nowrap}._unknownHead_15tdd_70{justify-content:space-between;align-items:baseline;gap:var(--space-2);min-width:0;display:flex}._unknownValue_15tdd_77{font-family:var(--font-ui);font-style:italic;font-size:var(--text-2xs-size,11px);line-height:var(--text-2xs-line,14px);color:var(--status-unknown-fg);flex:none}._unknownRule_15tdd_86{border:0;border-top:1px dashed var(--border-strong);width:100%;height:0;margin:3px 0 0}._reset_15tdd_94{text-overflow:ellipsis;font-size:var(--text-2xs-size,11px);line-height:var(--text-2xs-line,14px);color:var(--text-tertiary);margin:0;overflow:hidden}._note_15tdd_105{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}._noteHead_15tdd_111{align-items:baseline;gap:var(--space-1) var(--space-2);flex-wrap:wrap;min-width:0;display:flex}._plan_15tdd_118{padding:0 var(--space-1);border:1px solid var(--border-default);border-radius:var(--radius-xs);font-family:var(--font-display);font-size:var(--text-2xs-size,11px);line-height:var(--text-2xs-line,14px);letter-spacing:var(--tracking-label,.06em);text-transform:uppercase;color:var(--text-secondary);white-space:nowrap;flex:none}._noteSummary_15tdd_131{min-width:0;font-size:var(--text-xs-size);line-height:var(--text-xs-line);color:var(--text-secondary);flex:100%}._credits_15tdd_138{font-size:var(--text-2xs-size,11px);line-height:var(--text-2xs-line,14px);color:var(--text-tertiary);margin:0}
@@ -0,0 +1,2 @@
1
+ import{a as e,n as t,s as n}from"./index-DbDw9UAs.js";import{t as r}from"./Dialog-BpgcEW6b.js";import{t as i}from"./MutationTokenDialog-DTQzEOHR.js";import{t as a}from"./Button-DqgLUZvd.js";import{n as o}from"./use-guarded-action-UCX2u1t1.js";var s=n(e(),1),c={lead:`_lead_w05r1_8`,bar:`_bar_w05r1_14`,barSpacer:`_barSpacer_w05r1_22`,barSecondary:`_barSecondary_w05r1_26`,switchWrap:`_switchWrap_w05r1_32`,barLabel:`_barLabel_w05r1_38`,pillLabel:`_pillLabel_w05r1_39`,switchOption:`_switchOption_w05r1_48`,touchMark:`_touchMark_w05r1_54`,pill:`_pill_w05r1_39`,chip:`_chip_w05r1_59`,linkButton:`_linkButton_w05r1_88`,moreLink:`_moreLink_w05r1_89`,dot:`_dot_w05r1_103`,verdict:`_verdict_w05r1_126`,verdictPart:`_verdictPart_w05r1_135`,verdictSep:`_verdictSep_w05r1_149`,since:`_since_w05r1_153`,sinceLead:`_sinceLead_w05r1_162`,sinceEmpty:`_sinceEmpty_w05r1_166`,sinceChip:`_sinceChip_w05r1_170`,actionNote:`_actionNote_w05r1_196`,actionError:`_actionError_w05r1_197`,kbd:`_kbd_w05r1_251`,muted:`_muted_w05r1_260`,mono:`_mono_w05r1_267`,num:`_num_w05r1_272`,confirmBody:`_confirmBody_w05r1_277`,confirmActions:`_confirmActions_w05r1_283`,needsList:`_needsList_w05r1_291`,needsRow:`_needsRow_w05r1_299`,sevDot:`_sevDot_w05r1_313`,needsText:`_needsText_w05r1_327`,needsKind:`_needsKind_w05r1_335`,needsTitle:`_needsTitle_w05r1_347`,needsDetail:`_needsDetail_w05r1_359`,needsMeta:`_needsMeta_w05r1_367`,needsRepo:`_needsRepo_w05r1_376`,needsActions:`_needsActions_w05r1_380`,allClear:`_allClear_w05r1_388`,allClearTitle:`_allClearTitle_w05r1_395`,allClearBody:`_allClearBody_w05r1_403`,memo:`_memo_w05r1_409`,memoRow:`_memoRow_w05r1_416`,memoText:`_memoText_w05r1_427`,delta:`_delta_w05r1_433`,dryRun:`_dryRun_w05r1_446`,actionList:`_actionList_w05r1_458`,actionRow:`_actionRow_w05r1_467`,actionSummary:`_actionSummary_w05r1_476`,classBadge:`_classBadge_w05r1_481`,actionText:`_actionText_w05r1_504`,actionWhy:`_actionWhy_w05r1_517`,actionState:`_actionState_w05r1_524`,statusWord:`_statusWord_w05r1_530`,vetoChip:`_vetoChip_w05r1_545`,ring:`_ring_w05r1_549`,ringTrack:`_ringTrack_w05r1_559`,ringFill:`_ringFill_w05r1_565`,ringText:`_ringText_w05r1_572`,kpis:`_kpis_w05r1_577`,burnGrid:`_burnGrid_w05r1_592`,burnStrip:`_burnStrip_w05r1_604`,burnItem:`_burnItem_w05r1_615`,freeSeat:`_freeSeat_w05r1_623`,freeHead:`_freeHead_w05r1_633`,freeTitle:`_freeTitle_w05r1_639`,freeValue:`_freeValue_w05r1_646`,freeBody:`_freeBody_w05r1_653`,scope:`_scope_w05r1_660`,scopeBlock:`_scopeBlock_w05r1_666`,scopeLead:`_scopeLead_w05r1_672`,scopeMeta:`_scopeMeta_w05r1_679`,scopeTable:`_scopeTable_w05r1_686`,scopeList:`_scopeList_w05r1_706`,ladder:`_ladder_w05r1_714`,ladderId:`_ladderId_w05r1_733`,sheetFooter:`_sheetFooter_w05r1_738`,sheetFootnote:`_sheetFootnote_w05r1_744`,sheetButtons:`_sheetButtons_w05r1_751`},l=t();function u({spec:e,onConfirm:t,onCancel:n}){let i=(0,s.useId)(),o=(0,s.useRef)(null),u=(0,s.useRef)(null);return(0,l.jsxs)(r,{open:e!==null,onClose:n,titleId:i,title:e?.title??``,initialFocusRef:e?.destructive?o:u,children:[(0,l.jsx)(`div`,{className:c.confirmBody,children:e?.body}),(0,l.jsxs)(`div`,{className:c.confirmActions,children:[(0,l.jsx)(a,{ref:o,variant:`ghost`,onClick:n,children:`Cancel`}),(0,l.jsx)(a,{ref:u,variant:e?.destructive?`danger`:`primary`,onClick:t,children:e?.confirmLabel??`Confirm`})]})]})}function d(){let e=o(),[t,n]=(0,s.useState)(null),{request:r}=e,a=(0,s.useCallback)((e,t,i={})=>{let a=()=>r(e,t,i.onDone);i.confirm?n({spec:i.confirm,run:a}):a()},[r]),c=(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(u,{spec:t?.spec??null,onCancel:()=>n(null),onConfirm:()=>{let e=t;n(null),e?.run()}}),(0,l.jsx)(i,{open:e.tokenOpen,onClose:e.closeToken,reason:e.tokenReason,tokenHelp:`the mutation token ashlr verse printed`})]});return{act:a,busy:e.busy,error:e.error,clearError:e.clearError,readOnly:e.readOnly,dialogs:c}}function f({actions:e}){return e.readOnly?(0,l.jsx)(`p`,{className:c.actionNote,role:`status`,children:`Read-only session: this server was started without dispatch, so switching, stopping and vetoing are unavailable. Everything shown is live.`}):e.error?(0,l.jsxs)(`p`,{className:c.actionError,role:`alert`,children:[e.error,(0,l.jsx)(`button`,{type:`button`,className:c.linkButton,onClick:e.clearError,children:`Dismiss`})]}):null}export{d as n,c as r,f as t};
2
+ //# sourceMappingURL=actions-MtxBGS5B.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions-s2lfm_5k.js","names":[],"sources":["../../../../../../src/web-ui/routes/verse/command/command.module.css","../../../../../../src/web-ui/routes/verse/command/actions.tsx"],"sourcesContent":["/*\n * routes/verse/command/command.module.css — Command's cards and top bar\n * (unit C7). Tokens only: style-scan-310 bans raw hex colours and px font\n * sizes in this folder, and every colour here follows the theme.\n */\n\n/* ---- lead: top bar, verdict, since ------------------------------------ */\n.lead {\n display: flex;\n flex-direction: column;\n gap: var(--space-3);\n}\n\n.bar {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--space-2) var(--space-3);\n min-height: var(--control-h);\n}\n\n.barSpacer {\n flex: 1;\n}\n\n.barSecondary {\n display: flex;\n flex-wrap: wrap;\n gap: var(--space-2);\n}\n\n.switchWrap {\n display: inline-flex;\n align-items: center;\n gap: var(--space-2);\n}\n\n.barLabel,\n.pillLabel {\n font-family: var(--font-display);\n font-size: var(--text-2xs-size);\n line-height: var(--text-2xs-line);\n letter-spacing: var(--tracking-label);\n text-transform: uppercase;\n color: var(--text-tertiary);\n}\n\n.switchOption {\n display: inline-flex;\n align-items: center;\n gap: var(--space-1);\n}\n\n.touchMark {\n color: var(--text-tertiary);\n}\n\n.pill,\n.chip {\n display: inline-flex;\n align-items: center;\n gap: var(--space-2);\n min-height: var(--control-h-sm);\n padding: 0 var(--space-3);\n border: 1px solid var(--border-default);\n border-radius: var(--radius-full);\n background: var(--bg-surface);\n color: var(--text-primary);\n font-family: var(--font-ui);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line);\n white-space: nowrap;\n}\n\nbutton.pill,\nbutton.chip {\n cursor: pointer;\n transition: background-color var(--duration-fast) var(--ease-standard);\n}\n\nbutton.pill:hover,\nbutton.chip:hover {\n background: var(--bg-hover);\n}\n\n.pill:focus-visible,\n.chip:focus-visible,\n.linkButton:focus-visible,\n.moreLink:focus-visible {\n outline: 2px solid var(--border-focus);\n outline-offset: 2px;\n}\n\n.chip[data-tone='warning'] {\n border-color: var(--status-warning-solid);\n}\n\n.chip[data-tone='danger'] {\n border-color: var(--status-danger-solid);\n color: var(--status-danger-fg);\n}\n\n.dot {\n width: 8px;\n height: 8px;\n border-radius: var(--radius-full);\n flex: none;\n background: var(--status-neutral-solid);\n}\n\n.dot[data-tone='success'] {\n background: var(--status-success-solid);\n}\n.dot[data-tone='warning'] {\n background: var(--status-warning-solid);\n}\n.dot[data-tone='danger'] {\n background: var(--status-danger-solid);\n}\n.dot[data-tone='unknown'] {\n background: var(--chart-unknown-hatch);\n border: 1px solid var(--status-unknown-solid);\n}\n\n/* Verdict: 17/24, weight 500 (SPEC-310C §6). */\n.verdict {\n margin: 0;\n font-size: var(--text-lg-size);\n line-height: var(--text-lg-line);\n font-weight: var(--font-weight-medium);\n color: var(--text-primary);\n font-variant-numeric: tabular-nums;\n}\n\n.verdictPart[data-tone='danger'] {\n color: var(--status-danger-fg);\n}\n.verdictPart[data-tone='warning'] {\n color: var(--status-warning-fg);\n}\n.verdictPart[data-tone='success'] {\n color: var(--status-success-fg);\n}\n.verdictPart[data-tone='unknown'] {\n color: var(--status-unknown-fg);\n font-style: italic;\n}\n\n.verdictSep {\n color: var(--text-tertiary);\n}\n\n.since {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--space-2);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line);\n}\n\n.sinceLead {\n color: var(--text-tertiary);\n}\n\n.sinceEmpty {\n color: var(--text-tertiary);\n}\n\n.sinceChip {\n display: inline-flex;\n align-items: center;\n padding: 1px var(--space-2);\n border-radius: var(--radius-full);\n background: var(--status-neutral-bg);\n color: var(--status-neutral-fg);\n font-variant-numeric: tabular-nums;\n}\n.sinceChip[data-tone='success'] {\n background: var(--status-success-bg);\n color: var(--status-success-fg);\n}\n.sinceChip[data-tone='danger'] {\n background: var(--status-danger-bg);\n color: var(--status-danger-fg);\n}\n.sinceChip[data-tone='warning'] {\n background: var(--status-warning-bg);\n color: var(--status-warning-fg);\n}\n.sinceChip[data-tone='info'] {\n background: var(--status-info-bg);\n color: var(--status-info-fg);\n}\n\n.actionNote,\n.actionError {\n margin: 0;\n padding: var(--space-2) var(--space-3);\n border-radius: var(--radius-md);\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n}\n\n.actionNote {\n background: var(--bg-hover);\n color: var(--text-secondary);\n}\n\n.actionError {\n display: flex;\n align-items: baseline;\n gap: var(--space-3);\n background: var(--status-danger-bg);\n color: var(--status-danger-fg);\n}\n\n/* ---- shared small controls ------------------------------------------- */\n.linkButton,\n.moreLink {\n display: inline-flex;\n align-items: center;\n gap: var(--space-1);\n padding: 0;\n border: 0;\n background: none;\n color: var(--text-link);\n font: inherit;\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line);\n text-decoration: none;\n cursor: pointer;\n white-space: nowrap;\n}\n\n.linkButton:hover,\n.moreLink:hover {\n text-decoration: underline;\n}\n\n.moreLink {\n align-self: flex-start;\n}\n\n.moreLink:disabled {\n color: var(--text-disabled);\n cursor: default;\n text-decoration: none;\n}\n\n.kbd {\n padding: 0 var(--space-1);\n border: 1px solid var(--border-subtle);\n border-radius: var(--radius-xs);\n color: var(--text-tertiary);\n font-family: var(--font-mono);\n font-size: var(--text-2xs-size);\n}\n\n.muted {\n margin: 0;\n color: var(--text-tertiary);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line);\n}\n\n.mono {\n font-family: var(--font-mono);\n font-size: var(--text-xs-size);\n}\n\n.num {\n text-align: right;\n font-variant-numeric: tabular-nums;\n}\n\n.confirmBody {\n color: var(--text-secondary);\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line-relaxed);\n}\n\n.confirmActions {\n display: flex;\n justify-content: flex-end;\n gap: var(--space-2);\n margin-top: var(--space-5);\n}\n\n/* ---- Needs you ------------------------------------------------------- */\n.needsList {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.needsRow {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto;\n align-items: start;\n gap: var(--space-2) var(--space-3);\n padding: var(--space-2) 0;\n border-top: 1px solid var(--border-subtle);\n}\n\n.needsRow:first-child {\n border-top: 0;\n padding-top: 0;\n}\n\n.sevDot {\n width: 8px;\n height: 8px;\n margin-top: 6px;\n border-radius: var(--radius-full);\n background: var(--status-info-solid);\n}\n.sevDot[data-severity='warn'] {\n background: var(--status-warning-solid);\n}\n.sevDot[data-severity='high'] {\n background: var(--status-danger-solid);\n}\n\n.needsText {\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n}\n\n/* \"Patch · Claude run\" — the proposal kind and engine the wire title led with. */\n.needsKind {\n font-family: var(--font-display);\n font-size: var(--text-2xs-size);\n line-height: var(--text-2xs-line);\n letter-spacing: var(--tracking-label);\n text-transform: uppercase;\n color: var(--text-secondary);\n}\n\n/* Two lines at most, wrapped at word boundaries. The text already ends on a\n whole word (needs-you-model readableItemTitle); the full server title rides\n in `title`. */\n.needsTitle {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n overflow: hidden;\n color: var(--text-primary);\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n overflow-wrap: break-word;\n}\n\n.needsDetail {\n color: var(--text-secondary);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line);\n overflow-wrap: anywhere;\n}\n\n/* \"binshield · #81 · 38 days ago\". */\n.needsMeta {\n display: flex;\n flex-wrap: wrap;\n gap: 0 var(--space-1);\n color: var(--text-tertiary);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line);\n}\n\n.needsRepo {\n font-weight: var(--font-weight-medium);\n}\n\n.needsActions {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n align-items: center;\n gap: var(--space-2);\n}\n\n.allClear {\n display: flex;\n flex-direction: column;\n gap: var(--space-1);\n padding: var(--space-4) 0;\n}\n\n.allClearTitle {\n font-family: var(--font-display);\n font-size: var(--text-md-size);\n line-height: var(--text-md-line);\n font-weight: var(--font-weight-semibold);\n color: var(--text-primary);\n}\n\n.allClearBody {\n color: var(--text-secondary);\n font-size: var(--text-sm-size);\n}\n\n/* ---- Leader ---------------------------------------------------------- */\n.memo {\n display: flex;\n flex-direction: column;\n gap: var(--space-2);\n margin: 0;\n}\n\n.memoRow {\n display: grid;\n grid-template-columns: 96px minmax(0, 1fr);\n gap: var(--space-3);\n align-items: baseline;\n}\n\n.memoRow dd {\n margin: 0;\n}\n\n.memoText {\n color: var(--text-primary);\n font-size: var(--text-base-size);\n line-height: var(--text-base-line);\n}\n\n.delta {\n display: inline-block;\n margin-left: var(--space-2);\n padding: 0 var(--space-2);\n border-radius: var(--radius-full);\n background: var(--status-info-bg);\n color: var(--status-info-fg);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line-relaxed);\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n.dryRun {\n font-family: var(--font-display); /* micro-labels follow the Display-font setting */\n padding: 0 var(--space-2);\n border: 1px dashed var(--border-strong);\n border-radius: var(--radius-full);\n color: var(--text-secondary);\n font-size: var(--text-2xs-size);\n line-height: var(--text-xs-line);\n text-transform: uppercase;\n letter-spacing: var(--tracking-label);\n}\n\n.actionList {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style: none;\n border-top: 1px solid var(--border-subtle);\n}\n\n.actionRow {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto;\n gap: var(--space-3);\n align-items: center;\n padding: var(--space-2) 0;\n border-bottom: 1px solid var(--border-subtle);\n}\n\n.actionRow[data-status='vetoed'] .actionSummary {\n text-decoration: line-through;\n color: var(--text-tertiary);\n}\n\n.classBadge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border: 1px solid var(--border-default);\n border-radius: var(--radius-sm);\n color: var(--text-secondary);\n font-family: var(--font-display);\n font-size: var(--text-2xs-size);\n font-weight: var(--font-weight-semibold);\n}\n\n.classBadge[data-class='B'] {\n border-color: var(--status-warning-solid);\n color: var(--status-warning-fg);\n}\n\n.classBadge[data-class='C'] {\n border-style: dashed;\n}\n\n.actionText {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n\n.actionSummary {\n color: var(--text-primary);\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n overflow-wrap: anywhere;\n}\n\n.actionWhy {\n color: var(--text-tertiary);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line);\n overflow-wrap: anywhere;\n}\n\n.actionState {\n display: inline-flex;\n align-items: center;\n gap: var(--space-2);\n}\n\n.statusWord {\n color: var(--text-tertiary);\n font-size: var(--text-xs-size);\n white-space: nowrap;\n}\n\n.statusWord[data-status='escalated'] {\n color: var(--status-warning-fg);\n}\n\n.statusWord[data-status='failed'],\n.statusWord[data-status='refused'] {\n color: var(--status-danger-fg);\n}\n\n.vetoChip {\n border: 1px solid var(--border-default);\n}\n\n.ring {\n display: inline-flex;\n align-items: center;\n gap: var(--space-1);\n color: var(--status-warning-fg);\n font-size: var(--text-xs-size);\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n.ringTrack {\n fill: none;\n stroke: var(--border-subtle);\n stroke-width: 2.5;\n}\n\n.ringFill {\n fill: none;\n stroke: var(--status-warning-solid);\n stroke-width: 2.5;\n stroke-linecap: round;\n}\n\n.ringText {\n min-width: 4ch;\n}\n\n/* ---- KPIs and burn-downs --------------------------------------------- */\n.kpis {\n display: grid;\n grid-template-columns: repeat(5, minmax(0, 1fr));\n gap: var(--surface-gap);\n align-items: start;\n}\n\n[data-viewport='medium'] .kpis {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n\n[data-viewport='compact'] .kpis {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n.burnGrid {\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: var(--surface-gap);\n align-items: start;\n}\n\n[data-viewport='medium'] .burnGrid {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n/* 375: one card at a time, snapping — the next card peeks in at the edge. */\n.burnStrip {\n display: grid;\n grid-auto-flow: column;\n grid-auto-columns: 86%;\n gap: var(--space-3);\n overflow-x: auto;\n overscroll-behavior-x: contain;\n scroll-snap-type: x mandatory;\n padding-bottom: var(--space-1);\n}\n\n.burnStrip > .burnItem {\n scroll-snap-align: start;\n}\n\n.burnItem {\n min-width: 0;\n}\n\n.freeSeat {\n display: flex;\n flex-direction: column;\n gap: var(--space-2);\n padding: var(--card-pad);\n border: 1px solid var(--border-subtle);\n border-radius: var(--radius-lg);\n background: var(--bg-surface);\n}\n\n.freeHead {\n display: inline-flex;\n align-items: center;\n gap: var(--space-2);\n}\n\n.freeTitle {\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n font-weight: var(--font-weight-semibold);\n color: var(--text-primary);\n}\n\n.freeValue {\n font-size: var(--text-2xl-size);\n line-height: var(--text-2xl-line);\n font-weight: var(--font-weight-semibold);\n color: var(--text-secondary);\n}\n\n.freeBody {\n color: var(--text-tertiary);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line-relaxed);\n}\n\n/* ---- Touch ID sheet -------------------------------------------------- */\n.scope {\n display: flex;\n flex-direction: column;\n gap: var(--space-5);\n}\n\n.scopeBlock {\n display: flex;\n flex-direction: column;\n gap: var(--space-2);\n}\n\n.scopeLead {\n margin: 0;\n color: var(--text-primary);\n font-size: var(--text-base-size);\n line-height: var(--text-base-line);\n}\n\n.scopeMeta {\n margin: 0;\n color: var(--text-tertiary);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line-relaxed);\n}\n\n.scopeTable {\n width: 100%;\n border-collapse: collapse;\n font-size: var(--text-xs-size);\n}\n\n.scopeTable th {\n padding: var(--space-1) var(--space-2) var(--space-1) 0;\n border-bottom: 1px solid var(--border-subtle);\n color: var(--text-tertiary);\n font-weight: var(--font-weight-medium);\n text-align: left;\n}\n\n.scopeTable td {\n padding: var(--space-1) var(--space-2) var(--space-1) 0;\n border-bottom: 1px solid var(--border-subtle);\n color: var(--text-primary);\n}\n\n.scopeList {\n margin: 0;\n padding-left: var(--space-4);\n color: var(--text-secondary);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line-relaxed);\n}\n\n.ladder {\n display: flex;\n flex-direction: column;\n gap: var(--space-2);\n margin: 0;\n padding: 0;\n list-style: none;\n counter-reset: rung;\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line-relaxed);\n color: var(--text-secondary);\n}\n\n.ladder li {\n display: grid;\n grid-template-columns: 56px minmax(0, 1fr);\n gap: var(--space-2);\n}\n\n.ladderId {\n font-family: var(--font-mono);\n color: var(--text-primary);\n}\n\n.sheetFooter {\n display: flex;\n flex-direction: column;\n gap: var(--space-3);\n}\n\n.sheetFootnote {\n margin: 0;\n color: var(--text-tertiary);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line-relaxed);\n}\n\n.sheetButtons {\n display: flex;\n justify-content: flex-end;\n gap: var(--space-2);\n}\n\n@media (prefers-reduced-motion: reduce) {\n button.pill,\n button.chip {\n transition: none;\n }\n}\n","/**\n * routes/verse/command/actions.tsx — how every write on the four surfaces\n * reaches the server (unit C7).\n *\n * Order is fixed and the same for a click, a key and the palette\n * (SPEC-310C §1 \"Guarded actions ask for confirmation, then the mutation\n * token\"):\n *\n * 1. a confirmation dialog, when the action asks for one (Stop, Veto,\n * Resume, every Needs-you approve / reject / veto);\n * 2. the mutation token, when none is held (useGuardedAction);\n * 3. the request, one at a time, with the server's own refusal sentence\n * shown on failure and read-only sessions explained, never errored.\n *\n * LOWERING needs no confirmation (SPEC-310B I1: \"lowering authority is\n * instant\") — callers simply omit `confirm` for the switch-down path.\n */\nimport { useCallback, useId, useRef, useState, type ReactNode } from 'react';\nimport { MutationTokenDialog } from '../../../components/auth/MutationTokenDialog.js';\nimport { Dialog } from '../../../components/primitives/Dialog.js';\nimport { Button } from '../../../components/primitives/Button.js';\nimport { useGuardedAction } from '../autonomy/use-guarded-action.js';\nimport styles from './command.module.css';\n\nexport interface ConfirmSpec {\n title: string;\n body: ReactNode;\n confirmLabel: string;\n destructive?: boolean;\n}\n\nexport function ConfirmDialog({ spec, onConfirm, onCancel }: { spec: ConfirmSpec | null; onConfirm: () => void; onCancel: () => void }) {\n const titleId = useId();\n const cancelRef = useRef<HTMLButtonElement>(null);\n const confirmRef = useRef<HTMLButtonElement>(null);\n return (\n <Dialog\n open={spec !== null}\n onClose={onCancel}\n titleId={titleId}\n title={spec?.title ?? ''}\n // A destructive confirm starts on Cancel, so a stray Enter never stops the fleet.\n initialFocusRef={spec?.destructive ? cancelRef : confirmRef}\n >\n <div className={styles.confirmBody}>{spec?.body}</div>\n <div className={styles.confirmActions}>\n <Button ref={cancelRef} variant=\"ghost\" onClick={onCancel}>\n Cancel\n </Button>\n <Button ref={confirmRef} variant={spec?.destructive ? 'danger' : 'primary'} onClick={onConfirm}>\n {spec?.confirmLabel ?? 'Confirm'}\n </Button>\n </div>\n </Dialog>\n );\n}\n\nexport interface SurfaceActions {\n /** Confirm (when asked), then token (when needed), then run `fn`. */\n act: <T>(fn: () => Promise<T>, reason: string, options?: { confirm?: ConfirmSpec; onDone?: (result: T) => void }) => void;\n busy: boolean;\n error: string | null;\n clearError: () => void;\n readOnly: boolean;\n /** Render once per surface. */\n dialogs: ReactNode;\n}\n\nexport function useSurfaceActions(): SurfaceActions {\n const guard = useGuardedAction();\n const [pending, setPending] = useState<{ spec: ConfirmSpec; run: () => void } | null>(null);\n const { request } = guard;\n\n const act = useCallback(\n <T,>(fn: () => Promise<T>, reason: string, options: { confirm?: ConfirmSpec; onDone?: (result: T) => void } = {}) => {\n const run = () => request(fn, reason, options.onDone);\n if (options.confirm) setPending({ spec: options.confirm, run });\n else run();\n },\n [request],\n );\n\n const dialogs = (\n <>\n <ConfirmDialog\n spec={pending?.spec ?? null}\n onCancel={() => setPending(null)}\n onConfirm={() => {\n const next = pending;\n setPending(null);\n next?.run();\n }}\n />\n <MutationTokenDialog open={guard.tokenOpen} onClose={guard.closeToken} reason={guard.tokenReason} tokenHelp=\"the mutation token ashlr verse printed\" />\n </>\n );\n\n return { act, busy: guard.busy, error: guard.error, clearError: guard.clearError, readOnly: guard.readOnly, dialogs };\n}\n\n/** The error / read-only line a surface shows under its top bar. */\nexport function ActionStatus({ actions }: { actions: Pick<SurfaceActions, 'error' | 'clearError' | 'readOnly'> }) {\n if (actions.readOnly) {\n return (\n <p className={styles.actionNote} role=\"status\">\n Read-only session: this server was started without dispatch, so switching, stopping and vetoing are unavailable. Everything shown is live.\n </p>\n );\n }\n if (!actions.error) return null;\n return (\n <p className={styles.actionError} role=\"alert\">\n {actions.error}\n <button type=\"button\" className={styles.linkButton} onClick={actions.clearError}>\n Dismiss\n </button>\n </p>\n );\n}\n"],"mappings":"gtFC+BA,SAAgB,EAAc,CAAE,OAAM,YAAW,YAAuF,CACtI,IAAM,GAAA,EAAU,EAAA,MAAA,CAAM,EAChB,GAAA,EAAY,EAAA,OAAA,CAA0B,IAAI,EAC1C,GAAA,EAAa,EAAA,OAAA,CAA0B,IAAI,EACjD,OACE,EAAA,EAAA,KAAA,CAAC,EAAD,CACE,KAAM,IAAS,KACf,QAAS,EACA,UACT,MAAO,GAAM,OAAS,GAEtB,gBAAiB,GAAM,YAAc,EAAY,EANnD,SAAA,EAQE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAO,YAAc,SAAA,GAAM,IAAU,CAAA,GACrD,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,EAAO,eAAvB,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,IAAK,EAAW,QAAQ,QAAQ,QAAS,EAAU,SAAA,QAEnD,CAAA,GACR,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,IAAK,EAAY,QAAS,GAAM,YAAc,SAAW,UAAW,QAAS,EAClF,SAAA,GAAM,cAAgB,SACjB,CAAA,CACL,CACC,CAAA,CAAA,GAEZ,CAaA,SAAgB,GAAoC,CAClD,IAAM,EAAQ,EAAiB,EACzB,CAAC,EAAS,IAAA,EAAc,EAAA,SAAA,CAAwD,IAAI,EACpF,CAAE,WAAY,EAEd,GAAA,EAAM,EAAA,YAAA,EACL,EAAsB,EAAgB,EAAmE,CAAC,IAAM,CACnH,IAAM,MAAY,EAAQ,EAAI,EAAQ,EAAQ,MAAM,EAChD,EAAQ,QAAS,EAAW,CAAE,KAAM,EAAQ,QAAS,KAAI,CAAC,EACzD,EAAI,CACX,EACA,CAAC,CAAO,CACV,EAEM,GACJ,EAAA,EAAA,KAAA,CAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,KAAM,GAAS,MAAQ,KACvB,aAAgB,EAAW,IAAI,EAC/B,cAAiB,CACf,IAAM,EAAO,EACb,EAAW,IAAI,EACf,GAAM,IAAI,CACZ,CACD,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,EAAD,CAAqB,KAAM,EAAM,UAAW,QAAS,EAAM,WAAY,OAAQ,EAAM,YAAa,UAAU,wCAA0C,CAAA,CACtJ,CAAA,CAAA,EAGJ,MAAO,CAAE,MAAK,KAAM,EAAM,KAAM,MAAO,EAAM,MAAO,WAAY,EAAM,WAAY,SAAU,EAAM,SAAU,SAAQ,CACtH,CAGA,SAAgB,EAAa,CAAE,WAAmF,CAShH,OARI,EAAQ,UAER,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAW,EAAO,WAAY,KAAK,SAAS,SAAA,4IAE5C,CAAA,EAGF,EAAQ,OAEX,EAAA,EAAA,KAAA,CAAC,IAAD,CAAG,UAAW,EAAO,YAAa,KAAK,QAAvC,SAAA,CACG,EAAQ,OACT,EAAA,EAAA,IAAA,CAAC,SAAD,CAAQ,KAAK,SAAS,UAAW,EAAO,WAAY,QAAS,EAAQ,WAAY,SAAA,SAEzE,CAAA,CACP,IAPsB,IAS7B"}
1
+ {"version":3,"file":"actions-MtxBGS5B.js","names":[],"sources":["../../../../../../src/web-ui/routes/verse/command/command.module.css","../../../../../../src/web-ui/routes/verse/command/actions.tsx"],"sourcesContent":["/*\n * routes/verse/command/command.module.css — Command's cards and top bar\n * (unit C7). Tokens only: style-scan-310 bans raw hex colours and px font\n * sizes in this folder, and every colour here follows the theme.\n */\n\n/* ---- lead: top bar, verdict, since ------------------------------------ */\n.lead {\n display: flex;\n flex-direction: column;\n gap: var(--space-3);\n}\n\n.bar {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--space-2) var(--space-3);\n min-height: var(--control-h);\n}\n\n.barSpacer {\n flex: 1;\n}\n\n.barSecondary {\n display: flex;\n flex-wrap: wrap;\n gap: var(--space-2);\n}\n\n.switchWrap {\n display: inline-flex;\n align-items: center;\n gap: var(--space-2);\n}\n\n.barLabel,\n.pillLabel {\n font-family: var(--font-display);\n font-size: var(--text-2xs-size);\n line-height: var(--text-2xs-line);\n letter-spacing: var(--tracking-label);\n text-transform: uppercase;\n color: var(--text-tertiary);\n}\n\n.switchOption {\n display: inline-flex;\n align-items: center;\n gap: var(--space-1);\n}\n\n.touchMark {\n color: var(--text-tertiary);\n}\n\n.pill,\n.chip {\n display: inline-flex;\n align-items: center;\n gap: var(--space-2);\n min-height: var(--control-h-sm);\n padding: 0 var(--space-3);\n border: 1px solid var(--border-default);\n border-radius: var(--radius-full);\n background: var(--bg-surface);\n color: var(--text-primary);\n font-family: var(--font-ui);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line);\n white-space: nowrap;\n}\n\nbutton.pill,\nbutton.chip {\n cursor: pointer;\n transition: background-color var(--duration-fast) var(--ease-standard);\n}\n\nbutton.pill:hover,\nbutton.chip:hover {\n background: var(--bg-hover);\n}\n\n.pill:focus-visible,\n.chip:focus-visible,\n.linkButton:focus-visible,\n.moreLink:focus-visible {\n outline: 2px solid var(--border-focus);\n outline-offset: 2px;\n}\n\n.chip[data-tone='warning'] {\n border-color: var(--status-warning-solid);\n}\n\n.chip[data-tone='danger'] {\n border-color: var(--status-danger-solid);\n color: var(--status-danger-fg);\n}\n\n.dot {\n width: 8px;\n height: 8px;\n border-radius: var(--radius-full);\n flex: none;\n background: var(--status-neutral-solid);\n}\n\n.dot[data-tone='success'] {\n background: var(--status-success-solid);\n}\n.dot[data-tone='warning'] {\n background: var(--status-warning-solid);\n}\n.dot[data-tone='danger'] {\n background: var(--status-danger-solid);\n}\n.dot[data-tone='unknown'] {\n background: var(--chart-unknown-hatch);\n border: 1px solid var(--status-unknown-solid);\n}\n\n/* Verdict: 17/24, weight 500 (SPEC-310C §6). */\n.verdict {\n margin: 0;\n font-size: var(--text-lg-size);\n line-height: var(--text-lg-line);\n font-weight: var(--font-weight-medium);\n color: var(--text-primary);\n font-variant-numeric: tabular-nums;\n}\n\n.verdictPart[data-tone='danger'] {\n color: var(--status-danger-fg);\n}\n.verdictPart[data-tone='warning'] {\n color: var(--status-warning-fg);\n}\n.verdictPart[data-tone='success'] {\n color: var(--status-success-fg);\n}\n.verdictPart[data-tone='unknown'] {\n color: var(--status-unknown-fg);\n font-style: italic;\n}\n\n.verdictSep {\n color: var(--text-tertiary);\n}\n\n.since {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--space-2);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line);\n}\n\n.sinceLead {\n color: var(--text-tertiary);\n}\n\n.sinceEmpty {\n color: var(--text-tertiary);\n}\n\n.sinceChip {\n display: inline-flex;\n align-items: center;\n padding: 1px var(--space-2);\n border-radius: var(--radius-full);\n background: var(--status-neutral-bg);\n color: var(--status-neutral-fg);\n font-variant-numeric: tabular-nums;\n}\n.sinceChip[data-tone='success'] {\n background: var(--status-success-bg);\n color: var(--status-success-fg);\n}\n.sinceChip[data-tone='danger'] {\n background: var(--status-danger-bg);\n color: var(--status-danger-fg);\n}\n.sinceChip[data-tone='warning'] {\n background: var(--status-warning-bg);\n color: var(--status-warning-fg);\n}\n.sinceChip[data-tone='info'] {\n background: var(--status-info-bg);\n color: var(--status-info-fg);\n}\n\n.actionNote,\n.actionError {\n margin: 0;\n padding: var(--space-2) var(--space-3);\n border-radius: var(--radius-md);\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n}\n\n.actionNote {\n background: var(--bg-hover);\n color: var(--text-secondary);\n}\n\n.actionError {\n display: flex;\n align-items: baseline;\n gap: var(--space-3);\n background: var(--status-danger-bg);\n color: var(--status-danger-fg);\n}\n\n/* ---- shared small controls ------------------------------------------- */\n.linkButton,\n.moreLink {\n display: inline-flex;\n align-items: center;\n gap: var(--space-1);\n padding: 0;\n border: 0;\n background: none;\n color: var(--text-link);\n font: inherit;\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line);\n text-decoration: none;\n cursor: pointer;\n white-space: nowrap;\n}\n\n.linkButton:hover,\n.moreLink:hover {\n text-decoration: underline;\n}\n\n.moreLink {\n align-self: flex-start;\n}\n\n.moreLink:disabled {\n color: var(--text-disabled);\n cursor: default;\n text-decoration: none;\n}\n\n.kbd {\n padding: 0 var(--space-1);\n border: 1px solid var(--border-subtle);\n border-radius: var(--radius-xs);\n color: var(--text-tertiary);\n font-family: var(--font-mono);\n font-size: var(--text-2xs-size);\n}\n\n.muted {\n margin: 0;\n color: var(--text-tertiary);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line);\n}\n\n.mono {\n font-family: var(--font-mono);\n font-size: var(--text-xs-size);\n}\n\n.num {\n text-align: right;\n font-variant-numeric: tabular-nums;\n}\n\n.confirmBody {\n color: var(--text-secondary);\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line-relaxed);\n}\n\n.confirmActions {\n display: flex;\n justify-content: flex-end;\n gap: var(--space-2);\n margin-top: var(--space-5);\n}\n\n/* ---- Needs you ------------------------------------------------------- */\n.needsList {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.needsRow {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto;\n align-items: start;\n gap: var(--space-2) var(--space-3);\n padding: var(--space-2) 0;\n border-top: 1px solid var(--border-subtle);\n}\n\n.needsRow:first-child {\n border-top: 0;\n padding-top: 0;\n}\n\n.sevDot {\n width: 8px;\n height: 8px;\n margin-top: 6px;\n border-radius: var(--radius-full);\n background: var(--status-info-solid);\n}\n.sevDot[data-severity='warn'] {\n background: var(--status-warning-solid);\n}\n.sevDot[data-severity='high'] {\n background: var(--status-danger-solid);\n}\n\n.needsText {\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n}\n\n/* \"Patch · Claude run\" — the proposal kind and engine the wire title led with. */\n.needsKind {\n font-family: var(--font-display);\n font-size: var(--text-2xs-size);\n line-height: var(--text-2xs-line);\n letter-spacing: var(--tracking-label);\n text-transform: uppercase;\n color: var(--text-secondary);\n}\n\n/* Two lines at most, wrapped at word boundaries. The text already ends on a\n whole word (needs-you-model readableItemTitle); the full server title rides\n in `title`. */\n.needsTitle {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n overflow: hidden;\n color: var(--text-primary);\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n overflow-wrap: break-word;\n}\n\n.needsDetail {\n color: var(--text-secondary);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line);\n overflow-wrap: anywhere;\n}\n\n/* \"binshield · #81 · 38 days ago\". */\n.needsMeta {\n display: flex;\n flex-wrap: wrap;\n gap: 0 var(--space-1);\n color: var(--text-tertiary);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line);\n}\n\n.needsRepo {\n font-weight: var(--font-weight-medium);\n}\n\n.needsActions {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n align-items: center;\n gap: var(--space-2);\n}\n\n.allClear {\n display: flex;\n flex-direction: column;\n gap: var(--space-1);\n padding: var(--space-4) 0;\n}\n\n.allClearTitle {\n font-family: var(--font-display);\n font-size: var(--text-md-size);\n line-height: var(--text-md-line);\n font-weight: var(--font-weight-semibold);\n color: var(--text-primary);\n}\n\n.allClearBody {\n color: var(--text-secondary);\n font-size: var(--text-sm-size);\n}\n\n/* ---- Leader ---------------------------------------------------------- */\n.memo {\n display: flex;\n flex-direction: column;\n gap: var(--space-2);\n margin: 0;\n}\n\n.memoRow {\n display: grid;\n grid-template-columns: 96px minmax(0, 1fr);\n gap: var(--space-3);\n align-items: baseline;\n}\n\n.memoRow dd {\n margin: 0;\n}\n\n.memoText {\n color: var(--text-primary);\n font-size: var(--text-base-size);\n line-height: var(--text-base-line);\n}\n\n.delta {\n display: inline-block;\n margin-left: var(--space-2);\n padding: 0 var(--space-2);\n border-radius: var(--radius-full);\n background: var(--status-info-bg);\n color: var(--status-info-fg);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line-relaxed);\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n.dryRun {\n font-family: var(--font-display); /* micro-labels follow the Display-font setting */\n padding: 0 var(--space-2);\n border: 1px dashed var(--border-strong);\n border-radius: var(--radius-full);\n color: var(--text-secondary);\n font-size: var(--text-2xs-size);\n line-height: var(--text-xs-line);\n text-transform: uppercase;\n letter-spacing: var(--tracking-label);\n}\n\n.actionList {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style: none;\n border-top: 1px solid var(--border-subtle);\n}\n\n.actionRow {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto;\n gap: var(--space-3);\n align-items: center;\n padding: var(--space-2) 0;\n border-bottom: 1px solid var(--border-subtle);\n}\n\n.actionRow[data-status='vetoed'] .actionSummary {\n text-decoration: line-through;\n color: var(--text-tertiary);\n}\n\n.classBadge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border: 1px solid var(--border-default);\n border-radius: var(--radius-sm);\n color: var(--text-secondary);\n font-family: var(--font-display);\n font-size: var(--text-2xs-size);\n font-weight: var(--font-weight-semibold);\n}\n\n.classBadge[data-class='B'] {\n border-color: var(--status-warning-solid);\n color: var(--status-warning-fg);\n}\n\n.classBadge[data-class='C'] {\n border-style: dashed;\n}\n\n.actionText {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n\n.actionSummary {\n color: var(--text-primary);\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n overflow-wrap: anywhere;\n}\n\n.actionWhy {\n color: var(--text-tertiary);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line);\n overflow-wrap: anywhere;\n}\n\n.actionState {\n display: inline-flex;\n align-items: center;\n gap: var(--space-2);\n}\n\n.statusWord {\n color: var(--text-tertiary);\n font-size: var(--text-xs-size);\n white-space: nowrap;\n}\n\n.statusWord[data-status='escalated'] {\n color: var(--status-warning-fg);\n}\n\n.statusWord[data-status='failed'],\n.statusWord[data-status='refused'] {\n color: var(--status-danger-fg);\n}\n\n.vetoChip {\n border: 1px solid var(--border-default);\n}\n\n.ring {\n display: inline-flex;\n align-items: center;\n gap: var(--space-1);\n color: var(--status-warning-fg);\n font-size: var(--text-xs-size);\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n.ringTrack {\n fill: none;\n stroke: var(--border-subtle);\n stroke-width: 2.5;\n}\n\n.ringFill {\n fill: none;\n stroke: var(--status-warning-solid);\n stroke-width: 2.5;\n stroke-linecap: round;\n}\n\n.ringText {\n min-width: 4ch;\n}\n\n/* ---- KPIs and burn-downs --------------------------------------------- */\n.kpis {\n display: grid;\n grid-template-columns: repeat(5, minmax(0, 1fr));\n gap: var(--surface-gap);\n align-items: start;\n}\n\n[data-viewport='medium'] .kpis {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n\n[data-viewport='compact'] .kpis {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n.burnGrid {\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: var(--surface-gap);\n align-items: start;\n}\n\n[data-viewport='medium'] .burnGrid {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n/* 375: one card at a time, snapping — the next card peeks in at the edge. */\n.burnStrip {\n display: grid;\n grid-auto-flow: column;\n grid-auto-columns: 86%;\n gap: var(--space-3);\n overflow-x: auto;\n overscroll-behavior-x: contain;\n scroll-snap-type: x mandatory;\n padding-bottom: var(--space-1);\n}\n\n.burnStrip > .burnItem {\n scroll-snap-align: start;\n}\n\n.burnItem {\n min-width: 0;\n}\n\n.freeSeat {\n display: flex;\n flex-direction: column;\n gap: var(--space-2);\n padding: var(--card-pad);\n border: 1px solid var(--border-subtle);\n border-radius: var(--radius-lg);\n background: var(--bg-surface);\n}\n\n.freeHead {\n display: inline-flex;\n align-items: center;\n gap: var(--space-2);\n}\n\n.freeTitle {\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n font-weight: var(--font-weight-semibold);\n color: var(--text-primary);\n}\n\n.freeValue {\n font-size: var(--text-2xl-size);\n line-height: var(--text-2xl-line);\n font-weight: var(--font-weight-semibold);\n color: var(--text-secondary);\n}\n\n.freeBody {\n color: var(--text-tertiary);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line-relaxed);\n}\n\n/* ---- Touch ID sheet -------------------------------------------------- */\n.scope {\n display: flex;\n flex-direction: column;\n gap: var(--space-5);\n}\n\n.scopeBlock {\n display: flex;\n flex-direction: column;\n gap: var(--space-2);\n}\n\n.scopeLead {\n margin: 0;\n color: var(--text-primary);\n font-size: var(--text-base-size);\n line-height: var(--text-base-line);\n}\n\n.scopeMeta {\n margin: 0;\n color: var(--text-tertiary);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line-relaxed);\n}\n\n.scopeTable {\n width: 100%;\n border-collapse: collapse;\n font-size: var(--text-xs-size);\n}\n\n.scopeTable th {\n padding: var(--space-1) var(--space-2) var(--space-1) 0;\n border-bottom: 1px solid var(--border-subtle);\n color: var(--text-tertiary);\n font-weight: var(--font-weight-medium);\n text-align: left;\n}\n\n.scopeTable td {\n padding: var(--space-1) var(--space-2) var(--space-1) 0;\n border-bottom: 1px solid var(--border-subtle);\n color: var(--text-primary);\n}\n\n.scopeList {\n margin: 0;\n padding-left: var(--space-4);\n color: var(--text-secondary);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line-relaxed);\n}\n\n.ladder {\n display: flex;\n flex-direction: column;\n gap: var(--space-2);\n margin: 0;\n padding: 0;\n list-style: none;\n counter-reset: rung;\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line-relaxed);\n color: var(--text-secondary);\n}\n\n.ladder li {\n display: grid;\n grid-template-columns: 56px minmax(0, 1fr);\n gap: var(--space-2);\n}\n\n.ladderId {\n font-family: var(--font-mono);\n color: var(--text-primary);\n}\n\n.sheetFooter {\n display: flex;\n flex-direction: column;\n gap: var(--space-3);\n}\n\n.sheetFootnote {\n margin: 0;\n color: var(--text-tertiary);\n font-size: var(--text-xs-size);\n line-height: var(--text-xs-line-relaxed);\n}\n\n.sheetButtons {\n display: flex;\n justify-content: flex-end;\n gap: var(--space-2);\n}\n\n@media (prefers-reduced-motion: reduce) {\n button.pill,\n button.chip {\n transition: none;\n }\n}\n","/**\n * routes/verse/command/actions.tsx — how every write on the four surfaces\n * reaches the server (unit C7).\n *\n * Order is fixed and the same for a click, a key and the palette\n * (SPEC-310C §1 \"Guarded actions ask for confirmation, then the mutation\n * token\"):\n *\n * 1. a confirmation dialog, when the action asks for one (Stop, Veto,\n * Resume, every Needs-you approve / reject / veto);\n * 2. the mutation token, when none is held (useGuardedAction);\n * 3. the request, one at a time, with the server's own refusal sentence\n * shown on failure and read-only sessions explained, never errored.\n *\n * LOWERING needs no confirmation (SPEC-310B I1: \"lowering authority is\n * instant\") — callers simply omit `confirm` for the switch-down path.\n */\nimport { useCallback, useId, useRef, useState, type ReactNode } from 'react';\nimport { MutationTokenDialog } from '../../../components/auth/MutationTokenDialog.js';\nimport { Dialog } from '../../../components/primitives/Dialog.js';\nimport { Button } from '../../../components/primitives/Button.js';\nimport { useGuardedAction } from '../autonomy/use-guarded-action.js';\nimport styles from './command.module.css';\n\nexport interface ConfirmSpec {\n title: string;\n body: ReactNode;\n confirmLabel: string;\n destructive?: boolean;\n}\n\nexport function ConfirmDialog({ spec, onConfirm, onCancel }: { spec: ConfirmSpec | null; onConfirm: () => void; onCancel: () => void }) {\n const titleId = useId();\n const cancelRef = useRef<HTMLButtonElement>(null);\n const confirmRef = useRef<HTMLButtonElement>(null);\n return (\n <Dialog\n open={spec !== null}\n onClose={onCancel}\n titleId={titleId}\n title={spec?.title ?? ''}\n // A destructive confirm starts on Cancel, so a stray Enter never stops the fleet.\n initialFocusRef={spec?.destructive ? cancelRef : confirmRef}\n >\n <div className={styles.confirmBody}>{spec?.body}</div>\n <div className={styles.confirmActions}>\n <Button ref={cancelRef} variant=\"ghost\" onClick={onCancel}>\n Cancel\n </Button>\n <Button ref={confirmRef} variant={spec?.destructive ? 'danger' : 'primary'} onClick={onConfirm}>\n {spec?.confirmLabel ?? 'Confirm'}\n </Button>\n </div>\n </Dialog>\n );\n}\n\nexport interface SurfaceActions {\n /** Confirm (when asked), then token (when needed), then run `fn`. */\n act: <T>(fn: () => Promise<T>, reason: string, options?: { confirm?: ConfirmSpec; onDone?: (result: T) => void }) => void;\n busy: boolean;\n error: string | null;\n clearError: () => void;\n readOnly: boolean;\n /** Render once per surface. */\n dialogs: ReactNode;\n}\n\nexport function useSurfaceActions(): SurfaceActions {\n const guard = useGuardedAction();\n const [pending, setPending] = useState<{ spec: ConfirmSpec; run: () => void } | null>(null);\n const { request } = guard;\n\n const act = useCallback(\n <T,>(fn: () => Promise<T>, reason: string, options: { confirm?: ConfirmSpec; onDone?: (result: T) => void } = {}) => {\n const run = () => request(fn, reason, options.onDone);\n if (options.confirm) setPending({ spec: options.confirm, run });\n else run();\n },\n [request],\n );\n\n const dialogs = (\n <>\n <ConfirmDialog\n spec={pending?.spec ?? null}\n onCancel={() => setPending(null)}\n onConfirm={() => {\n const next = pending;\n setPending(null);\n next?.run();\n }}\n />\n <MutationTokenDialog open={guard.tokenOpen} onClose={guard.closeToken} reason={guard.tokenReason} tokenHelp=\"the mutation token ashlr verse printed\" />\n </>\n );\n\n return { act, busy: guard.busy, error: guard.error, clearError: guard.clearError, readOnly: guard.readOnly, dialogs };\n}\n\n/** The error / read-only line a surface shows under its top bar. */\nexport function ActionStatus({ actions }: { actions: Pick<SurfaceActions, 'error' | 'clearError' | 'readOnly'> }) {\n if (actions.readOnly) {\n return (\n <p className={styles.actionNote} role=\"status\">\n Read-only session: this server was started without dispatch, so switching, stopping and vetoing are unavailable. Everything shown is live.\n </p>\n );\n }\n if (!actions.error) return null;\n return (\n <p className={styles.actionError} role=\"alert\">\n {actions.error}\n <button type=\"button\" className={styles.linkButton} onClick={actions.clearError}>\n Dismiss\n </button>\n </p>\n );\n}\n"],"mappings":"kvFC+BA,SAAgB,EAAc,CAAE,OAAM,YAAW,YAAuF,CACtI,IAAM,GAAA,EAAU,EAAA,MAAA,CAAM,EAChB,GAAA,EAAY,EAAA,OAAA,CAA0B,IAAI,EAC1C,GAAA,EAAa,EAAA,OAAA,CAA0B,IAAI,EACjD,OACE,EAAA,EAAA,KAAA,CAAC,EAAD,CACE,KAAM,IAAS,KACf,QAAS,EACA,UACT,MAAO,GAAM,OAAS,GAEtB,gBAAiB,GAAM,YAAc,EAAY,EANnD,SAAA,EAQE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAO,YAAc,SAAA,GAAM,IAAU,CAAA,GACrD,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,EAAO,eAAvB,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,IAAK,EAAW,QAAQ,QAAQ,QAAS,EAAU,SAAA,QAEnD,CAAA,GACR,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,IAAK,EAAY,QAAS,GAAM,YAAc,SAAW,UAAW,QAAS,EAClF,SAAA,GAAM,cAAgB,SACjB,CAAA,CACL,CACC,CAAA,CAAA,GAEZ,CAaA,SAAgB,GAAoC,CAClD,IAAM,EAAQ,EAAiB,EACzB,CAAC,EAAS,IAAA,EAAc,EAAA,SAAA,CAAwD,IAAI,EACpF,CAAE,WAAY,EAEd,GAAA,EAAM,EAAA,YAAA,EACL,EAAsB,EAAgB,EAAmE,CAAC,IAAM,CACnH,IAAM,MAAY,EAAQ,EAAI,EAAQ,EAAQ,MAAM,EAChD,EAAQ,QAAS,EAAW,CAAE,KAAM,EAAQ,QAAS,KAAI,CAAC,EACzD,EAAI,CACX,EACA,CAAC,CAAO,CACV,EAEM,GACJ,EAAA,EAAA,KAAA,CAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,KAAM,GAAS,MAAQ,KACvB,aAAgB,EAAW,IAAI,EAC/B,cAAiB,CACf,IAAM,EAAO,EACb,EAAW,IAAI,EACf,GAAM,IAAI,CACZ,CACD,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,EAAD,CAAqB,KAAM,EAAM,UAAW,QAAS,EAAM,WAAY,OAAQ,EAAM,YAAa,UAAU,wCAA0C,CAAA,CACtJ,CAAA,CAAA,EAGJ,MAAO,CAAE,MAAK,KAAM,EAAM,KAAM,MAAO,EAAM,MAAO,WAAY,EAAM,WAAY,SAAU,EAAM,SAAU,SAAQ,CACtH,CAGA,SAAgB,EAAa,CAAE,WAAmF,CAShH,OARI,EAAQ,UAER,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAW,EAAO,WAAY,KAAK,SAAS,SAAA,4IAE5C,CAAA,EAGF,EAAQ,OAEX,EAAA,EAAA,KAAA,CAAC,IAAD,CAAG,UAAW,EAAO,YAAa,KAAK,QAAvC,SAAA,CACG,EAAQ,OACT,EAAA,EAAA,IAAA,CAAC,SAAD,CAAQ,KAAK,SAAS,UAAW,EAAO,WAAY,QAAS,EAAQ,WAAY,SAAA,SAEzE,CAAA,CACP,IAPsB,IAS7B"}
@@ -0,0 +1,2 @@
1
+ import{D as e,F as t,U as n,c as r,l as i}from"./global-BkNl4e6E.js";import{r as a}from"./VerseConsoleApp-CTF3Shs0.js";var o=`verse-budget`,s=`verse-budget-preview`,c=`/api/verse/budget`,l=`/api/verse/budget/preview?task=code&difficulty=medium&autonomous=true`,u={key:o,fetch:e=>r(c,e)},d={key:s,fetch:e=>r(l,e)};async function f(r){let l=e();if(!l)throw new a;let u=await i(c,r,l);return t(),n(o),n(s),u}export{u as n,f as r,d as t};
2
+ //# sourceMappingURL=budget-queries-CP7hgR-p.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"budget-queries-wUshcovN.js","names":[],"sources":["../../../../../../src/web-ui/routes/verse/budget/budget-queries.ts"],"sourcesContent":["/**\n * routes/verse/budget/budget-queries.ts — the reads and the one write behind\n * the Budget panel (core/routing/budget-api.ts).\n *\n * GET /api/verse/budget → BudgetView (policy + live headroom)\n * GET /api/verse/budget/preview → SeatDecision for \"the next medium\n * autonomous code task\"\n * POST /api/verse/budget → BudgetView after ONE change\n *\n * Nothing here spends: every route is a file read / pure computation on the\n * server. Writes pull the held mutation token (like verse-queries.ts), touch\n * the hold on success, and invalidate both keys so the headroom bars and the\n * \"next task goes to…\" line move together.\n */\nimport type { BudgetView } from '../../../../core/routing/policy.js';\nimport type { BudgetUpdateRequest, SeatDecision } from '../../../../core/routing/types.js';\nimport { getMutationToken, touchMutationHold } from '../../../data/auth-store.js';\nimport { apiGet, apiPost } from '../../../data/client.js';\nimport { invalidate } from '../../../data/cache.js';\nimport type { QueryDef } from '../../../data/queries.js';\nimport { VerseMutationLockedError } from '../verse-queries.js';\n\nexport const BUDGET_KEY = 'verse-budget';\nexport const BUDGET_PREVIEW_KEY = 'verse-budget-preview';\nexport const BUDGET_PATH = '/api/verse/budget';\nexport const BUDGET_PREVIEW_PATH = '/api/verse/budget/preview?task=code&difficulty=medium&autonomous=true';\n\nexport const budgetQuery: QueryDef<BudgetView> = {\n key: BUDGET_KEY,\n fetch: (signal) => apiGet<BudgetView>(BUDGET_PATH, signal),\n};\n\nexport const budgetPreviewQuery: QueryDef<SeatDecision> = {\n key: BUDGET_PREVIEW_KEY,\n fetch: (signal) => apiGet<SeatDecision>(BUDGET_PREVIEW_PATH, signal),\n};\n\n/**\n * The per-seat patch as it goes on the wire. `null` clears an optional field\n * (the server's parser accepts it; the frozen contract's Partial<> cannot say\n * \"remove\" because JSON has no `undefined`).\n */\nexport interface BudgetSeatPatchWire {\n enabled?: boolean;\n reservePercent?: number;\n maxSessionWindowPercent?: number | null;\n dailyUsdCap?: number | null;\n}\n\n/** `BudgetUpdateRequest`, widened only by the `null`-clears rule above. */\nexport type BudgetUpdateWire = Extract<BudgetUpdateRequest, { mode: unknown }>\n | { seatId: string; policy: BudgetSeatPatchWire };\n\nexport async function updateBudget(update: BudgetUpdateWire): Promise<BudgetView> {\n const token = getMutationToken();\n if (!token) throw new VerseMutationLockedError();\n const view = await apiPost<BudgetView>(BUDGET_PATH, update, token);\n touchMutationHold();\n invalidate(BUDGET_KEY);\n invalidate(BUDGET_PREVIEW_KEY);\n return view;\n}\n"],"mappings":"sHAsBA,IAAa,EAAa,eACb,EAAqB,uBACrB,EAAc,oBACd,EAAsB,wEAEtB,EAAoC,CAC/C,IAAK,EACL,MAAQ,GAAW,EAAmB,EAAa,CAAM,CAC3D,EAEa,EAA6C,CACxD,IAAK,EACL,MAAQ,GAAW,EAAqB,EAAqB,CAAM,CACrE,EAkBA,eAAsB,EAAa,EAA+C,CAChF,IAAM,EAAQ,EAAiB,EAC/B,GAAI,CAAC,EAAO,MAAM,IAAI,EACtB,IAAM,EAAO,MAAM,EAAoB,EAAa,EAAQ,CAAK,EAIjE,OAHA,EAAkB,EAClB,EAAW,CAAU,EACrB,EAAW,CAAkB,EACtB,CACT"}
1
+ {"version":3,"file":"budget-queries-CP7hgR-p.js","names":[],"sources":["../../../../../../src/web-ui/routes/verse/budget/budget-queries.ts"],"sourcesContent":["/**\n * routes/verse/budget/budget-queries.ts — the reads and the one write behind\n * the Budget panel (core/routing/budget-api.ts).\n *\n * GET /api/verse/budget → BudgetView (policy + live headroom)\n * GET /api/verse/budget/preview → SeatDecision for \"the next medium\n * autonomous code task\"\n * POST /api/verse/budget → BudgetView after ONE change\n *\n * Nothing here spends: every route is a file read / pure computation on the\n * server. Writes pull the held mutation token (like verse-queries.ts), touch\n * the hold on success, and invalidate both keys so the headroom bars and the\n * \"next task goes to…\" line move together.\n */\nimport type { BudgetView } from '../../../../core/routing/policy.js';\nimport type { BudgetUpdateRequest, SeatDecision } from '../../../../core/routing/types.js';\nimport { getMutationToken, touchMutationHold } from '../../../data/auth-store.js';\nimport { apiGet, apiPost } from '../../../data/client.js';\nimport { invalidate } from '../../../data/cache.js';\nimport type { QueryDef } from '../../../data/queries.js';\nimport { VerseMutationLockedError } from '../verse-queries.js';\n\nexport const BUDGET_KEY = 'verse-budget';\nexport const BUDGET_PREVIEW_KEY = 'verse-budget-preview';\nexport const BUDGET_PATH = '/api/verse/budget';\nexport const BUDGET_PREVIEW_PATH = '/api/verse/budget/preview?task=code&difficulty=medium&autonomous=true';\n\nexport const budgetQuery: QueryDef<BudgetView> = {\n key: BUDGET_KEY,\n fetch: (signal) => apiGet<BudgetView>(BUDGET_PATH, signal),\n};\n\nexport const budgetPreviewQuery: QueryDef<SeatDecision> = {\n key: BUDGET_PREVIEW_KEY,\n fetch: (signal) => apiGet<SeatDecision>(BUDGET_PREVIEW_PATH, signal),\n};\n\n/**\n * The per-seat patch as it goes on the wire. `null` clears an optional field\n * (the server's parser accepts it; the frozen contract's Partial<> cannot say\n * \"remove\" because JSON has no `undefined`).\n */\nexport interface BudgetSeatPatchWire {\n enabled?: boolean;\n reservePercent?: number;\n maxSessionWindowPercent?: number | null;\n dailyUsdCap?: number | null;\n}\n\n/** `BudgetUpdateRequest`, widened only by the `null`-clears rule above. */\nexport type BudgetUpdateWire = Extract<BudgetUpdateRequest, { mode: unknown }>\n | { seatId: string; policy: BudgetSeatPatchWire };\n\nexport async function updateBudget(update: BudgetUpdateWire): Promise<BudgetView> {\n const token = getMutationToken();\n if (!token) throw new VerseMutationLockedError();\n const view = await apiPost<BudgetView>(BUDGET_PATH, update, token);\n touchMutationHold();\n invalidate(BUDGET_KEY);\n invalidate(BUDGET_PREVIEW_KEY);\n return view;\n}\n"],"mappings":"uHAsBA,IAAa,EAAa,eACb,EAAqB,uBACrB,EAAc,oBACd,EAAsB,wEAEtB,EAAoC,CAC/C,IAAK,EACL,MAAQ,GAAW,EAAmB,EAAa,CAAM,CAC3D,EAEa,EAA6C,CACxD,IAAK,EACL,MAAQ,GAAW,EAAqB,EAAqB,CAAM,CACrE,EAkBA,eAAsB,EAAa,EAA+C,CAChF,IAAM,EAAQ,EAAiB,EAC/B,GAAI,CAAC,EAAO,MAAM,IAAI,EACtB,IAAM,EAAO,MAAM,EAAoB,EAAa,EAAQ,CAAK,EAIjE,OAHA,EAAkB,EAClB,EAAW,CAAU,EACrB,EAAW,CAAkB,EACtB,CACT"}
@@ -1,2 +1,2 @@
1
- import{t as e}from"./workbench-types-DzN-5trg.js";import{g as t,v as n,y as r}from"./format-B8DAVcn2.js";import{r as i}from"./verse-model-D7NZQFAR.js";import{n as a,t as o}from"./seat-subscription-CH6fW4fJ.js";import{v as s}from"./context-model-Dwd49-dp.js";Object.freeze({"all-in":Object.freeze({claude:Object.freeze({enabled:!0,reservePercent:0}),codex:Object.freeze({enabled:!1,reservePercent:0}),grok:Object.freeze({enabled:!0,reservePercent:0}),local:Object.freeze({enabled:!0,reservePercent:0})}),balanced:Object.freeze({claude:Object.freeze({enabled:!0,reservePercent:40,maxSessionWindowPercent:70}),codex:Object.freeze({enabled:!1,reservePercent:40,maxSessionWindowPercent:70}),grok:Object.freeze({enabled:!0,reservePercent:0}),local:Object.freeze({enabled:!0,reservePercent:0})}),reserve:Object.freeze({claude:Object.freeze({enabled:!0,reservePercent:85,maxSessionWindowPercent:50}),codex:Object.freeze({enabled:!1,reservePercent:85,maxSessionWindowPercent:50}),grok:Object.freeze({enabled:!0,reservePercent:85}),local:Object.freeze({enabled:!0,reservePercent:0})})});var c=Object.freeze({"all-in":`Autonomy may use all available usage on every enabled seat.`,balanced:`Autonomy stops at each seat’s reserve, so you keep headroom for your own sessions.`,reserve:`Autonomy runs on free local models, plus only a small slice of paid seats.`}),l={eligible:`Eligible`,held:`Held back`,off:`Off`,unknown:`No reading`},u=[{value:`reserve`,label:`Reserve`,description:c.reserve},{value:`balanced`,label:`Balanced`,description:c.balanced},{value:`all-in`,label:`All-in`,description:c[`all-in`]}];function d(e,t){if(!t)return!1;let n=e=>u.findIndex(t=>t.value===e);return n(e)>n(t)}function f(e){return Math.round(e)}function p(e,t,n){return t.enabled?n?.eligibleForAutonomy?`eligible`:!e&&(n===null||n.sessionUsedPercent===null&&n.weeklyUsedPercent===null)?`unknown`:`held`:`off`}function m(e,n,r,i){if(n||i===null)return[];let a=[],o=100-r.reservePercent,s=i.weeklyUsedPercent!==null||e===`claude`||e===`grok`;if(s){let n=i.weeklyUsedPercent;a.push({kind:`weekly`,label:e===`grok`?`Billing period`:`Weekly`,usedPercent:n,ceilingPercent:o,binding:i.bindingWindow===`weekly`,description:n===null?`Weekly window: no reading.`:`Weekly window ${t(n)} used; autonomy stops at ${f(o)}%, ${f(r.reservePercent)}% kept for you.`})}if(i.sessionUsedPercent!==null||e===`claude`){let e=i.sessionUsedPercent,n=r.maxSessionWindowPercent??100,c=s?n:Math.min(n,o);a.push({kind:`session`,label:`5-hour`,usedPercent:e,ceilingPercent:c,binding:i.bindingWindow===`session`,description:e===null?`5-hour window: no reading.`:`5-hour window ${t(e)} used; ${c>=100?`no autonomy ceiling`:`autonomy stops at ${f(c)}%`}.`})}return a}function ee(e,t=Date.now()){let r=new Map(e.headroom.map(e=>[e.seatId,e]));return e.seatInfo.map(i=>{let a=e.effective[i.seatId]??{seatId:i.seatId,enabled:!1,reservePercent:100},o=r.get(i.seatId)??null,s=(o?.reasons??[]).map(e=>n(e,t).trim()).filter(e=>e.length>0);return{seatId:i.seatId,label:i.label,engine:i.engine,free:i.free,policy:a,headroom:o,status:p(i.free,a,o),why:s[0]??(i.free?`Local model — free.`:`No reading yet.`),more:s.slice(1),bars:m(i.engine,i.free,a,o),hasSessionCeiling:!i.free&&(i.engine===`claude`||i.engine===`codex`)}})}function te(e){let t=e.filter(e=>e.status===`eligible`).length,n=e.length;if(n===0)return{eligible:t,total:n,sentence:`No seats are known yet.`};let r=e.filter(e=>e.status===`eligible`&&!e.free).length,i=t-r,a=[];return r>0&&a.push(`${r} paid`),i>0&&a.push(`${i} local`),{eligible:t,total:n,sentence:t===0?`No seat can take autonomous work right now.`:`${t} of ${n} seats can take autonomous work (${a.join(`, `)}).`}}function h(e,t){let n=Date.parse(e);if(!Number.isFinite(n))return`unknown`;let r=Math.max(0,Math.round((t-n)/6e4));return r<1?`just now`:r<120?`${r} min ago`:`${Math.round(r/60)} h ago`}function g(e,t=0,n=100){return Number.isFinite(e)?Math.max(t,Math.min(n,Math.round(e))):t}var _={available:`ready`,credits:`ready`,tight:`tight`,exhausted:`blocked`,"signed-out":`blocked`,"probe-unsupported":`blocked`,unknown:`unread`};function v(e,t,n){return e===1?t:n}function y(e){let{ready:t,tight:n,blocked:r,unread:i,total:a,local:o}=e;if(a===0)return`No seats are reported at all. This is an empty roster, not a set of seats at zero.`;let s=o===null?``:o.reachable&&o.residentCount>0?` ${o.residentCount} local ${v(o.residentCount,`model is`,`models are`)} resident and answer with no load delay.`:o.reachable&&o.agenticCount>0?` No local model is resident, but ${o.agenticCount} installed ${v(o.agenticCount,`one can`,`ones can`)} drive a session after a load.`:o.reachable?` No local model is resident.`:` The local runtime did not answer, so local capacity is unknown.`,c=i===0?``:` ${i} ${v(i,`seat has`,`seats have`)} no reading at all — unread, not exhausted.`;return t>0?`${t} of ${a} ${v(a,`seat is`,`seats are`)} usable right now.${c}${s}`:n>0?`No seat is clear: ${n} ${v(n,`is`,`are`)} running tight and ${r} ${v(r,`is`,`are`)} blocked.${c}${s}`:r>0?`No cloud seat reports headroom — ${r} blocked.${c}${s}`:`No seat reported a usable window.${c}${s}`}function b(e){let t=e.binding;return{id:e.id,label:e.label,kind:`account`,color:e.color,cls:_[e.verdict.state],headline:e.verdict.headline,usedPct:t&&t.measured&&!t.limitReached?t.usedPct:null,measured:t!==null&&t.measured&&!t.limitReached}}function x(e){return{id:`local`,label:`Local`,kind:`local`,color:e.color,cls:_[e.verdict.state],headline:e.verdict.headline,usedPct:e.usedPct,measured:e.usedPct!==null}}function S(e,t){let n=[],r=[],i=new Set;for(let a of e)for(let e of a.windows){if(e.resetsAt!==null){let r=Date.parse(e.resetsAt);if(!Number.isNaN(r)){let i=r-t;n.push({seatLabel:a.label,windowLabel:e.label,atMs:r,inMs:i,overdue:i<=0});continue}}if(e.resetText!==null){let t=`${a.label}|${e.label}|${e.resetText}`;if(i.has(t))continue;i.add(t),r.push({seatLabel:a.label,windowLabel:e.label,text:e.resetText})}}return{instants:n,prose:r}}function C(e){let t=e.filter(e=>!e.overdue);return t.length>0?t.reduce((e,t)=>t.inMs<e.inMs?t:e):e.length===0?null:e.reduce((e,t)=>t.atMs>e.atMs?t:e)}function w(e,t){let n=e.filter(e=>e.atMs>t);return n.length>0?n.reduce((e,t)=>t.atMs<e.atMs?t:e):e.length===0?null:e.reduce((e,t)=>t.atMs>e.atMs?t:e)}function T(e,t){if(e===null&&t===null)return null;let n=e?.residentBytes??t?.residentBytes??null,r=e?.memoryBudgetBytes??t?.memoryBudgetBytes??null;return{reachable:t?.reachable??e?.verdict.state!==`unknown`,residentCount:e?.residentCount??t?.rows.filter(e=>e.resident).length??0,installedCount:e?.installedCount??t?.rows.length??0,agenticCount:t?.agenticCount??0,unknownToolCount:t?.unknownToolCount??0,residentBytes:n,memoryBudgetBytes:r,headroomBytes:n!==null&&r!==null?Math.max(0,r-n):null,freeMemoryBytes:t?.freeMemoryBytes??null,usedPct:e?.usedPct??t?.memoryUsedPct??null}}function E(e){let t=e.nowMs??Date.now(),n=e.cards.map(b);e.localCard&&n.push(x(e.localCard));let r=e=>n.filter(t=>t.cls===e).length,i=r(`ready`),a=r(`tight`),o=r(`blocked`),s=r(`unread`),{instants:c,prose:l}=S(e.cards.map(e=>({label:e.label,windows:e.allWindows})),t),u=T(e.localCard,e.localView);return{seats:n,ready:i,tight:a,blocked:o,unread:s,total:n.length,resets:c,nextReset:C(c),proseResets:l,local:u,headline:y({ready:i,tight:a,blocked:o,unread:s,total:n.length,local:u}),noCapacity:n.length>0&&i===0&&a===0&&s<n.length}}function D(e){if(!Number.isFinite(e))return`—`;if(e<=0)return`overdue`;let t=Math.floor(e/1e3),n=Math.floor(t/86400),r=Math.floor(t%86400/3600),i=Math.floor(t%3600/60);return n>0?`${n}d ${r}h`:r>0?`${r}h ${i}m`:i>0?`${i}m`:`${t}s`}var O={connected:`connected`,expiring:`sign-in expiring`,"signed-out":`signed out`,exhausted:`out of usage`,"binary-skew":`older CLI pinned`,unknown:`not checked`},k={connected:`success`,expiring:`warning`,"signed-out":`danger`,exhausted:`danger`,"binary-skew":`warning`,unknown:`neutral`},A={"signed-out":0,exhausted:1,expiring:2,"binary-skew":3,unknown:4,connected:5};function j(e,t=Date.now()){if(typeof e!=`string`)return null;let n=Date.parse(e);return!Number.isFinite(n)||n<=t?null:`usable again in ${D(n-t)}`}function M(e){return e.connection===`connected`?!1:e.connection!==`unknown`||e.reasons.length>0&&!e.reasons[0].includes(`has not reached this seat`)}function N(e,t=[],i=Date.now()){let s=new Map(t.map(e=>[e.id,e]));return e.filter(M).map(e=>{let t=s.get(e.seatId),c=e.connection===`exhausted`&&t!==void 0?o(a(t,i),e.resetAt):e.resetAt,l=r(c,i);return{report:e,label:t?.label??e.seatId,word:O[e.connection],tone:k[e.connection],detail:e.reasons[0]?n(e.reasons[0],i):null,reset:l===null?null:`resets ${l}`,usableAgain:e.connection===`exhausted`?j(c,i):null}}).sort((e,t)=>A[e.report.connection]-A[t.report.connection])}function P(e){return e.map(e=>/^[A-Za-z0-9_@%+=:,./-]+$/.test(e)||e.startsWith(`~/`)&&/^[A-Za-z0-9_@%+=:,./~-]+$/.test(e)?e:e.startsWith(`~/`)?`~/'${e.slice(2).replaceAll(`'`,`'\\''`)}'`:`'${e.replaceAll(`'`,`'\\''`)}'`).join(` `)}function F(e){if(e.length===0)return`All seats are connected.`;let t=e.filter(e=>e.tone===`danger`).length;return t>0?t===1?`${e.find(e=>e.tone===`danger`).label} can't run turns right now.`:`${t} seats can't run turns right now.`:e.length===1?`${e[0].label} needs attention.`:`${e.length} seats need attention.`}var I={ready:`success`,tight:`warning`,blocked:`danger`,unread:`neutral`};function L(e){return I[e]}function R(e,t){return{id:e.id,label:e.label,usedPercent:e.usedPercent,limitReached:e.limitReached,resetText:e.resetText,resetsAt:e.resetsAt,binding:t}}function z(e){return typeof e==`string`&&Number.isFinite(Date.parse(e))}function B(e){return e.limitReached||e.usedPercent!==null&&e.usedPercent>=100}function V(e,t){return e?{connection:e.connection,word:O[e.connection],tone:k[e.connection],reasons:H(e.reasons,t),fixKind:e.fix.kind,fixCommand:e.fix.command&&e.fix.command.length>0?[...e.fix.command]:null}:null}function H(e,t){return e.map(e=>n(e,t).trim()).filter(e=>e.length>0)}function U(e){if(!e||e.free)return null;let{policy:t}=e,n=Math.max(0,Math.min(100,Math.round(t.reservePercent))),r=t.enabled?n===0?`No reserve — autonomy may use all of it`:`Reserved for you ${n}%`:`Autonomy off — all yours`;return{percent:t.enabled?n:null,label:r,autonomy:e.status,autonomyWord:l[e.status],why:e.why}}function W(t,n,r,s){let c=a(t,s),l=[];c.binding&&l.push(R(c.binding,!0));for(let e of c.others){if(l.length>=3)break;l.push(R(e,!1))}let u=n.get(t.id),d=V(u,s),f=d!==null&&(d.connection===`signed-out`||d.connection===`exhausted`);return{seatId:t.id,label:t.label,engine:t.engine,monogram:e[t.engine],kind:c.kind,plan:c.plan,cls:f?`blocked`:c.cls,word:f?i.blocked:c.word,summary:f?d.reasons[0]??d.word:c.summary,connection:d,windows:l,credits:c.credits,reserve:U(r.get(t.id)),notes:[...c.notes],localCount:1,checkedAt:z(u?.checkedAt)?u.checkedAt:z(c.observedAt)?c.observedAt:null,resetAt:o(c,u?.resetAt),signedOut:d?.connection===`signed-out`||t.capacity?.usability===`signed-out`}}function ne(t,n,r){let i=t.map(e=>a(e,r)),o=i.filter(e=>e.cls===`ready`).length,s=i.filter(e=>e.cls===`blocked`).length,c=o>0?`ready`:s===i.length?`blocked`:`unread`,l=t.map(e=>n.get(e.id)).find(e=>e!==void 0),u=t.length;return{seatId:`local`,label:`Local models`,engine:`local`,monogram:e.local,kind:`local`,plan:null,cls:c,word:i.find(e=>e.cls===c)?.word??`no reading`,summary:c===`ready`?`${u} ${u===1?`model`:`models`} on this machine · free`:c===`blocked`?i[0]?.summary??`local runtime unavailable`:`readiness not reported`,connection:V(l,r),windows:[],credits:null,reserve:null,notes:[],localCount:u,checkedAt:z(l?.checkedAt)?l.checkedAt:i.map(e=>e.observedAt).filter(z).sort((e,t)=>Date.parse(t)-Date.parse(e))[0]??null,resetAt:null,signedOut:!1}}function G(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var K=e=>typeof e==`number`&&Number.isFinite(e)?e:null;function q(e){if(!G(e)||typeof e.seatId!=`string`)return null;let t=e.bindingWindow;return{seatId:e.seatId,sessionUsedPercent:K(e.sessionUsedPercent),weeklyUsedPercent:K(e.weeklyUsedPercent),bindingWindow:t===`session`||t===`weekly`?t:null,autonomyHeadroomPercent:K(e.autonomyHeadroomPercent),resetAt:typeof e.resetAt==`string`?e.resetAt:null,eligibleForAutonomy:e.eligibleForAutonomy===!0,reasons:Array.isArray(e.reasons)?e.reasons.filter(e=>typeof e==`string`):[]}}function J(e,t){if(!G(t)||typeof t.enabled!=`boolean`)return null;let n=t.reservePercent;if(typeof n!=`number`||!Number.isFinite(n))return null;let r={seatId:e,enabled:t.enabled,reservePercent:n},i=t.maxSessionWindowPercent;return typeof i==`number`&&Number.isFinite(i)&&(r.maxSessionWindowPercent=i),r}function Y(e){if(!G(e)||!Array.isArray(e.seatInfo))return new Map;let t=G(e.effective)?e.effective:{},n={},r=[];for(let i of e.seatInfo){if(!G(i)||typeof i.seatId!=`string`)continue;let e=i.seatId,a=i.engine;if(a===`claude`||a===`codex`||a===`grok`||a===`local`){if(Object.prototype.hasOwnProperty.call(t,e)){let r=J(e,t[e]);if(r===null)continue;n[e]=r}r.push({seatId:e,label:typeof i.label==`string`?i.label:e,engine:a,free:i.free===!0})}}let i=Array.isArray(e.headroom)?e.headroom.map(q).filter(e=>e!==null):[],a={...e,seatInfo:r,effective:n,headroom:i};try{return new Map(ee(a).map(e=>[e.seatId,e]))}catch{return new Map}}function X(e){let t=new Map;if(!Array.isArray(e))return t;for(let n of e){if(!G(n)||typeof n.seatId!=`string`)continue;let e=n.connection;if(typeof e!=`string`||!Object.prototype.hasOwnProperty.call(O,e))continue;let r=G(n.fix)?n.fix:{},i=r.kind,a=Array.isArray(r.command)&&r.command.every(e=>typeof e==`string`)?r.command:void 0;t.set(n.seatId,{...n,reasons:Array.isArray(n.reasons)?n.reasons.filter(e=>typeof e==`string`):[],fix:{kind:i===`reauth`||i===`repin`||i===`wait`?i:`none`,...a?{command:a}:{}}})}return t}function Z(e,t={}){let n=X(t.health),r=Y(t.budget),i=Array.isArray(e)?e.filter(e=>G(e)&&typeof e.id==`string`):[],a=t.local??`collapse`,o=t.now??Date.now(),s=i;if(t.seatIds){let e=new Map(i.map(e=>[e.id,e]));s=t.seatIds.map(t=>e.get(t)).filter(e=>e!==void 0)}let c=[],l=[],u=-1;for(let e of s){if(e.engine===`local`){if(a===`hide`)continue;if(a===`collapse`){u===-1&&(u=c.length),l.push(e);continue}}c.push(W(e,n,r,o))}if(l.length>0){let e=l.length===1?W(l[0],n,r,o):ne(l,n,o);c.splice(u,0,e)}return c}function re(e){let t=e.filter(e=>e.kind===`subscription`),n=e.filter(e=>e.kind===`local`),r=t.filter(e=>e.cls===`ready`||e.cls===`tight`).length,i=t.filter(e=>e.cls===`unread`).length,a=[];return t.length===0?a.push(`No accounts connected`):a.push(`${r} of ${t.length} ${t.length===1?`account`:`accounts`} usable`),i>0&&a.push(`${i} not read yet`),n.some(e=>e.cls===`ready`)?a.push(`local models ready`):n.length>0&&a.push(`local models not ready`),a.join(` · `)}function ie(e){let t=null;for(let n of e){if(n.kind!==`subscription`)continue;let e=n.windows.find(e=>e.binding)??null,r;if(n.cls===`blocked`||e?.limitReached)r=300;else if(e?.usedPercent!=null)r=(n.cls===`tight`?100:0)+e.usedPercent;else continue;(t===null||r>t.score)&&(t={row:n,score:r})}return t?.row??null}function ae(e,t,n={}){return Z(e,{...n,seatIds:[t],local:`each`})[0]??null}function oe(e,n,r){let i=`${e.label} ${n.label}`,a=n.resetText===null?``:`, ${n.resetText}`;if(n.limitReached)return`${i}: limit reached${a}`;if(n.usedPercent===null)return`${i}: no reading${a}`;let o=r!==null&&r>0?`; ${r}% kept for you`:``;return`${i}: ${t(n.usedPercent)} used${o}${a}`}var se={usable:`success`,low:`warning`,spent:`danger`,"signed-out":`danger`,unavailable:`danger`,"not-checked":`neutral`,checking:`neutral`},Q={usable:0,low:1,checking:2,"not-checked":3,spent:4,unavailable:5,"signed-out":6};function ce(e,t){let n=s(e.checkedAt,t);if(n===null||e.checkedAt===null)return{checked:null,checkedTitle:null};let r=new Date(e.checkedAt);return{checked:`checked ${n}`,checkedTitle:`Last checked ${r.toLocaleString([],{weekday:`short`,month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`})}`}}function $(e,t){let n=t.now??Date.now(),{checked:i,checkedTitle:a}=ce(e,n),o=(e,t,n,r={})=>({kind:e,label:t,detail:n,tone:se[e],usableAgain:null,checked:i,checkedTitle:a,coversConnection:!1,...r});if(t.checking)return o(`checking`,`Checking…`,null);if(e.kind===`local`)return e.cls===`ready`?o(`usable`,`Ready`,e.localCount>1?`${e.localCount} models on this machine · free`:`runs on this machine · free`):e.cls===`blocked`?o(`unavailable`,`Not running`,e.summary):t.healthRead?o(`not-checked`,`Not checked`,`readiness not reported yet`):o(`checking`,`Checking…`,null);let s=e.connection?.connection??null;if(e.signedOut)return o(`signed-out`,`Signed out`,`reconnect to use it`,{coversConnection:!0});let c=e.windows.find(e=>e.binding)??null;if(s===`exhausted`||e.cls===`blocked`&&c!==null&&B(c)){let t=r(e.resetAt,n),i=e.resetAt!==null&&Date.parse(e.resetAt)>n,a=(e.windows.find(e=>B(e)&&!z(e.resetsAt)&&e.resetText!==null)??null)?.resetText??(c!==null&&!z(c.resetsAt)?c.resetText:null);return o(`spent`,`Spent`,t===null?a??`reset time not reported`:i?`resets ${t}`:`was due to reset ${t}`,{usableAgain:j(e.resetAt,n),coversConnection:s===`exhausted`})}if(e.cls===`blocked`)return o(`unavailable`,`Unavailable`,e.summary);if(e.cls===`unread`)return t.healthRead?s===null||s===`unknown`?o(`not-checked`,`Not checked`,`no reading yet`):o(`usable`,`Connected`,`no usage reading yet`):o(`checking`,`Checking…`,null);let l=s===null||s===`unknown`?`Usable`:`Connected`;if(e.cls===`tight`){let t=c!==null&&B(c)&&e.credits!==null;return l===`Usable`?o(`low`,`Usable`,t?`on credits`:`running low`):o(`low`,l,t?`usable on credits`:`running low`)}return l===`Usable`?o(`usable`,`Usable now`,null):o(`usable`,`Connected`,`usable now`)}function le(e,t){let n=e.map((e,n)=>({row:e,index:n,rank:Q[$(e,{...t,checking:!1}).kind],local:+(e.kind===`local`)}));return n.sort((e,t)=>e.rank-t.rank||e.local-t.local||e.index-t.index),n.map(e=>e.row)}export{l as _,L as a,d as b,ie as c,N as d,P as f,u as g,w as h,ae as i,oe as l,D as m,Z as n,le as o,E as p,re as r,Y as s,$ as t,F as u,te as v,h as x,g as y};
2
- //# sourceMappingURL=capacity-strip-model-Bj_9ztzs.js.map
1
+ import{t as e}from"./workbench-types-DzN-5trg.js";import{r as t}from"./verse-model-BQ0Y2CSr.js";import{g as n,v as r,y as i}from"./format-CaMmVQCn.js";import{n as a,t as o}from"./seat-subscription-CR_VylsK.js";import{v as s}from"./context-model-Ci3Ch9t5.js";Object.freeze({"all-in":Object.freeze({claude:Object.freeze({enabled:!0,reservePercent:0}),codex:Object.freeze({enabled:!1,reservePercent:0}),grok:Object.freeze({enabled:!0,reservePercent:0}),local:Object.freeze({enabled:!0,reservePercent:0})}),balanced:Object.freeze({claude:Object.freeze({enabled:!0,reservePercent:40,maxSessionWindowPercent:70}),codex:Object.freeze({enabled:!1,reservePercent:40,maxSessionWindowPercent:70}),grok:Object.freeze({enabled:!0,reservePercent:0}),local:Object.freeze({enabled:!0,reservePercent:0})}),reserve:Object.freeze({claude:Object.freeze({enabled:!0,reservePercent:85,maxSessionWindowPercent:50}),codex:Object.freeze({enabled:!1,reservePercent:85,maxSessionWindowPercent:50}),grok:Object.freeze({enabled:!0,reservePercent:85}),local:Object.freeze({enabled:!0,reservePercent:0})})});var c=Object.freeze({"all-in":`Autonomy may use all available usage on every enabled seat.`,balanced:`Autonomy stops at each seat’s reserve, so you keep headroom for your own sessions.`,reserve:`Autonomy runs on free local models, plus only a small slice of paid seats.`}),l={eligible:`Eligible`,held:`Held back`,off:`Off`,unknown:`No reading`},u=[{value:`reserve`,label:`Reserve`,description:c.reserve},{value:`balanced`,label:`Balanced`,description:c.balanced},{value:`all-in`,label:`All-in`,description:c[`all-in`]}];function d(e,t){if(!t)return!1;let n=e=>u.findIndex(t=>t.value===e);return n(e)>n(t)}function f(e){return Math.round(e)}function p(e,t,n){return t.enabled?n?.eligibleForAutonomy?`eligible`:!e&&(n===null||n.sessionUsedPercent===null&&n.weeklyUsedPercent===null)?`unknown`:`held`:`off`}function m(e,t,r,i){if(t||i===null)return[];let a=[],o=100-r.reservePercent,s=i.weeklyUsedPercent!==null||e===`claude`||e===`grok`;if(s){let t=i.weeklyUsedPercent;a.push({kind:`weekly`,label:e===`grok`?`Billing period`:`Weekly`,usedPercent:t,ceilingPercent:o,binding:i.bindingWindow===`weekly`,description:t===null?`Weekly window: no reading.`:`Weekly window ${n(t)} used; autonomy stops at ${f(o)}%, ${f(r.reservePercent)}% kept for you.`})}if(i.sessionUsedPercent!==null||e===`claude`){let e=i.sessionUsedPercent,t=r.maxSessionWindowPercent??100,c=s?t:Math.min(t,o);a.push({kind:`session`,label:`5-hour`,usedPercent:e,ceilingPercent:c,binding:i.bindingWindow===`session`,description:e===null?`5-hour window: no reading.`:`5-hour window ${n(e)} used; ${c>=100?`no autonomy ceiling`:`autonomy stops at ${f(c)}%`}.`})}return a}function ee(e,t=Date.now()){let n=new Map(e.headroom.map(e=>[e.seatId,e]));return e.seatInfo.map(i=>{let a=e.effective[i.seatId]??{seatId:i.seatId,enabled:!1,reservePercent:100},o=n.get(i.seatId)??null,s=(o?.reasons??[]).map(e=>r(e,t).trim()).filter(e=>e.length>0);return{seatId:i.seatId,label:i.label,engine:i.engine,free:i.free,policy:a,headroom:o,status:p(i.free,a,o),why:s[0]??(i.free?`Local model — free.`:`No reading yet.`),more:s.slice(1),bars:m(i.engine,i.free,a,o),hasSessionCeiling:!i.free&&(i.engine===`claude`||i.engine===`codex`)}})}function te(e){let t=e.filter(e=>e.status===`eligible`).length,n=e.length;if(n===0)return{eligible:t,total:n,sentence:`No seats are known yet.`};let r=e.filter(e=>e.status===`eligible`&&!e.free).length,i=t-r,a=[];return r>0&&a.push(`${r} paid`),i>0&&a.push(`${i} local`),{eligible:t,total:n,sentence:t===0?`No seat can take autonomous work right now.`:`${t} of ${n} seats can take autonomous work (${a.join(`, `)}).`}}function h(e,t){let n=Date.parse(e);if(!Number.isFinite(n))return`unknown`;let r=Math.max(0,Math.round((t-n)/6e4));return r<1?`just now`:r<120?`${r} min ago`:`${Math.round(r/60)} h ago`}function g(e,t=0,n=100){return Number.isFinite(e)?Math.max(t,Math.min(n,Math.round(e))):t}var _={available:`ready`,credits:`ready`,tight:`tight`,exhausted:`blocked`,"signed-out":`blocked`,"probe-unsupported":`blocked`,unknown:`unread`};function v(e,t,n){return e===1?t:n}function y(e){let{ready:t,tight:n,blocked:r,unread:i,total:a,local:o}=e;if(a===0)return`No seats are reported at all. This is an empty roster, not a set of seats at zero.`;let s=o===null?``:o.reachable&&o.residentCount>0?` ${o.residentCount} local ${v(o.residentCount,`model is`,`models are`)} resident and answer with no load delay.`:o.reachable&&o.agenticCount>0?` No local model is resident, but ${o.agenticCount} installed ${v(o.agenticCount,`one can`,`ones can`)} drive a session after a load.`:o.reachable?` No local model is resident.`:` The local runtime did not answer, so local capacity is unknown.`,c=i===0?``:` ${i} ${v(i,`seat has`,`seats have`)} no reading at all — unread, not exhausted.`;return t>0?`${t} of ${a} ${v(a,`seat is`,`seats are`)} usable right now.${c}${s}`:n>0?`No seat is clear: ${n} ${v(n,`is`,`are`)} running tight and ${r} ${v(r,`is`,`are`)} blocked.${c}${s}`:r>0?`No cloud seat reports headroom — ${r} blocked.${c}${s}`:`No seat reported a usable window.${c}${s}`}function b(e){let t=e.binding;return{id:e.id,label:e.label,kind:`account`,color:e.color,cls:_[e.verdict.state],headline:e.verdict.headline,usedPct:t&&t.measured&&!t.limitReached?t.usedPct:null,measured:t!==null&&t.measured&&!t.limitReached}}function x(e){return{id:`local`,label:`Local`,kind:`local`,color:e.color,cls:_[e.verdict.state],headline:e.verdict.headline,usedPct:e.usedPct,measured:e.usedPct!==null}}function S(e,t){let n=[],r=[],i=new Set;for(let a of e)for(let e of a.windows){if(e.resetsAt!==null){let r=Date.parse(e.resetsAt);if(!Number.isNaN(r)){let i=r-t;n.push({seatLabel:a.label,windowLabel:e.label,atMs:r,inMs:i,overdue:i<=0});continue}}if(e.resetText!==null){let t=`${a.label}|${e.label}|${e.resetText}`;if(i.has(t))continue;i.add(t),r.push({seatLabel:a.label,windowLabel:e.label,text:e.resetText})}}return{instants:n,prose:r}}function C(e){let t=e.filter(e=>!e.overdue);return t.length>0?t.reduce((e,t)=>t.inMs<e.inMs?t:e):e.length===0?null:e.reduce((e,t)=>t.atMs>e.atMs?t:e)}function w(e,t){let n=e.filter(e=>e.atMs>t);return n.length>0?n.reduce((e,t)=>t.atMs<e.atMs?t:e):e.length===0?null:e.reduce((e,t)=>t.atMs>e.atMs?t:e)}function T(e,t){if(e===null&&t===null)return null;let n=e?.residentBytes??t?.residentBytes??null,r=e?.memoryBudgetBytes??t?.memoryBudgetBytes??null;return{reachable:t?.reachable??e?.verdict.state!==`unknown`,residentCount:e?.residentCount??t?.rows.filter(e=>e.resident).length??0,installedCount:e?.installedCount??t?.rows.length??0,agenticCount:t?.agenticCount??0,unknownToolCount:t?.unknownToolCount??0,residentBytes:n,memoryBudgetBytes:r,headroomBytes:n!==null&&r!==null?Math.max(0,r-n):null,freeMemoryBytes:t?.freeMemoryBytes??null,usedPct:e?.usedPct??t?.memoryUsedPct??null}}function E(e){let t=e.nowMs??Date.now(),n=e.cards.map(b);e.localCard&&n.push(x(e.localCard));let r=e=>n.filter(t=>t.cls===e).length,i=r(`ready`),a=r(`tight`),o=r(`blocked`),s=r(`unread`),{instants:c,prose:l}=S(e.cards.map(e=>({label:e.label,windows:e.allWindows})),t),u=T(e.localCard,e.localView);return{seats:n,ready:i,tight:a,blocked:o,unread:s,total:n.length,resets:c,nextReset:C(c),proseResets:l,local:u,headline:y({ready:i,tight:a,blocked:o,unread:s,total:n.length,local:u}),noCapacity:n.length>0&&i===0&&a===0&&s<n.length}}function D(e){if(!Number.isFinite(e))return`—`;if(e<=0)return`overdue`;let t=Math.floor(e/1e3),n=Math.floor(t/86400),r=Math.floor(t%86400/3600),i=Math.floor(t%3600/60);return n>0?`${n}d ${r}h`:r>0?`${r}h ${i}m`:i>0?`${i}m`:`${t}s`}var O={connected:`connected`,expiring:`sign-in expiring`,"signed-out":`signed out`,exhausted:`out of usage`,"binary-skew":`older CLI pinned`,unknown:`not checked`},k={connected:`success`,expiring:`warning`,"signed-out":`danger`,exhausted:`danger`,"binary-skew":`warning`,unknown:`neutral`},A={"signed-out":0,exhausted:1,expiring:2,"binary-skew":3,unknown:4,connected:5};function j(e,t=Date.now()){if(typeof e!=`string`)return null;let n=Date.parse(e);return!Number.isFinite(n)||n<=t?null:`usable again in ${D(n-t)}`}function M(e){return e.connection===`connected`?!1:e.connection!==`unknown`||e.reasons.length>0&&!e.reasons[0].includes(`has not reached this seat`)}function N(e,t=[],n=Date.now()){let s=new Map(t.map(e=>[e.id,e]));return e.filter(M).map(e=>{let t=s.get(e.seatId),c=e.connection===`exhausted`&&t!==void 0?o(a(t,n),e.resetAt):e.resetAt,l=i(c,n);return{report:e,label:t?.label??e.seatId,word:O[e.connection],tone:k[e.connection],detail:e.reasons[0]?r(e.reasons[0],n):null,reset:l===null?null:`resets ${l}`,usableAgain:e.connection===`exhausted`?j(c,n):null}}).sort((e,t)=>A[e.report.connection]-A[t.report.connection])}function P(e){return e.map(e=>/^[A-Za-z0-9_@%+=:,./-]+$/.test(e)||e.startsWith(`~/`)&&/^[A-Za-z0-9_@%+=:,./~-]+$/.test(e)?e:e.startsWith(`~/`)?`~/'${e.slice(2).replaceAll(`'`,`'\\''`)}'`:`'${e.replaceAll(`'`,`'\\''`)}'`).join(` `)}function F(e){if(e.length===0)return`All seats are connected.`;let t=e.filter(e=>e.tone===`danger`).length;return t>0?t===1?`${e.find(e=>e.tone===`danger`).label} can't run turns right now.`:`${t} seats can't run turns right now.`:e.length===1?`${e[0].label} needs attention.`:`${e.length} seats need attention.`}var I={ready:`success`,tight:`warning`,blocked:`danger`,unread:`neutral`};function L(e){return I[e]}function R(e,t){return{id:e.id,label:e.label,usedPercent:e.usedPercent,limitReached:e.limitReached,resetText:e.resetText,resetsAt:e.resetsAt,binding:t}}function z(e){return typeof e==`string`&&Number.isFinite(Date.parse(e))}function B(e){return e.limitReached||e.usedPercent!==null&&e.usedPercent>=100}function V(e,t){return e?{connection:e.connection,word:O[e.connection],tone:k[e.connection],reasons:H(e.reasons,t),fixKind:e.fix.kind,fixCommand:e.fix.command&&e.fix.command.length>0?[...e.fix.command]:null}:null}function H(e,t){return e.map(e=>r(e,t).trim()).filter(e=>e.length>0)}function U(e){if(!e||e.free)return null;let{policy:t}=e,n=Math.max(0,Math.min(100,Math.round(t.reservePercent))),r=t.enabled?n===0?`No reserve — autonomy may use all of it`:`Reserved for you ${n}%`:`Autonomy off — all yours`;return{percent:t.enabled?n:null,label:r,autonomy:e.status,autonomyWord:l[e.status],why:e.why}}function W(n,r,i,s){let c=a(n,s),l=[];c.binding&&l.push(R(c.binding,!0));for(let e of c.others){if(l.length>=3)break;l.push(R(e,!1))}let u=r.get(n.id),d=V(u,s),f=d!==null&&(d.connection===`signed-out`||d.connection===`exhausted`);return{seatId:n.id,label:n.label,engine:n.engine,monogram:e[n.engine],kind:c.kind,plan:c.plan,cls:f?`blocked`:c.cls,word:f?t.blocked:c.word,summary:f?d.reasons[0]??d.word:c.summary,connection:d,windows:l,credits:c.credits,reserve:U(i.get(n.id)),notes:[...c.notes],localCount:1,checkedAt:z(u?.checkedAt)?u.checkedAt:z(c.observedAt)?c.observedAt:null,resetAt:o(c,u?.resetAt),signedOut:d?.connection===`signed-out`||n.capacity?.usability===`signed-out`}}function ne(t,n,r){let i=t.map(e=>a(e,r)),o=i.filter(e=>e.cls===`ready`).length,s=i.filter(e=>e.cls===`blocked`).length,c=o>0?`ready`:s===i.length?`blocked`:`unread`,l=t.map(e=>n.get(e.id)).find(e=>e!==void 0),u=t.length;return{seatId:`local`,label:`Local models`,engine:`local`,monogram:e.local,kind:`local`,plan:null,cls:c,word:i.find(e=>e.cls===c)?.word??`no reading`,summary:c===`ready`?`${u} ${u===1?`model`:`models`} on this machine · free`:c===`blocked`?i[0]?.summary??`local runtime unavailable`:`readiness not reported`,connection:V(l,r),windows:[],credits:null,reserve:null,notes:[],localCount:u,checkedAt:z(l?.checkedAt)?l.checkedAt:i.map(e=>e.observedAt).filter(z).sort((e,t)=>Date.parse(t)-Date.parse(e))[0]??null,resetAt:null,signedOut:!1}}function G(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var K=e=>typeof e==`number`&&Number.isFinite(e)?e:null;function q(e){if(!G(e)||typeof e.seatId!=`string`)return null;let t=e.bindingWindow;return{seatId:e.seatId,sessionUsedPercent:K(e.sessionUsedPercent),weeklyUsedPercent:K(e.weeklyUsedPercent),bindingWindow:t===`session`||t===`weekly`?t:null,autonomyHeadroomPercent:K(e.autonomyHeadroomPercent),resetAt:typeof e.resetAt==`string`?e.resetAt:null,eligibleForAutonomy:e.eligibleForAutonomy===!0,reasons:Array.isArray(e.reasons)?e.reasons.filter(e=>typeof e==`string`):[]}}function J(e,t){if(!G(t)||typeof t.enabled!=`boolean`)return null;let n=t.reservePercent;if(typeof n!=`number`||!Number.isFinite(n))return null;let r={seatId:e,enabled:t.enabled,reservePercent:n},i=t.maxSessionWindowPercent;return typeof i==`number`&&Number.isFinite(i)&&(r.maxSessionWindowPercent=i),r}function Y(e){if(!G(e)||!Array.isArray(e.seatInfo))return new Map;let t=G(e.effective)?e.effective:{},n={},r=[];for(let i of e.seatInfo){if(!G(i)||typeof i.seatId!=`string`)continue;let e=i.seatId,a=i.engine;if(a===`claude`||a===`codex`||a===`grok`||a===`local`){if(Object.prototype.hasOwnProperty.call(t,e)){let r=J(e,t[e]);if(r===null)continue;n[e]=r}r.push({seatId:e,label:typeof i.label==`string`?i.label:e,engine:a,free:i.free===!0})}}let i=Array.isArray(e.headroom)?e.headroom.map(q).filter(e=>e!==null):[],a={...e,seatInfo:r,effective:n,headroom:i};try{return new Map(ee(a).map(e=>[e.seatId,e]))}catch{return new Map}}function X(e){let t=new Map;if(!Array.isArray(e))return t;for(let n of e){if(!G(n)||typeof n.seatId!=`string`)continue;let e=n.connection;if(typeof e!=`string`||!Object.prototype.hasOwnProperty.call(O,e))continue;let r=G(n.fix)?n.fix:{},i=r.kind,a=Array.isArray(r.command)&&r.command.every(e=>typeof e==`string`)?r.command:void 0;t.set(n.seatId,{...n,reasons:Array.isArray(n.reasons)?n.reasons.filter(e=>typeof e==`string`):[],fix:{kind:i===`reauth`||i===`repin`||i===`wait`?i:`none`,...a?{command:a}:{}}})}return t}function Z(e,t={}){let n=X(t.health),r=Y(t.budget),i=Array.isArray(e)?e.filter(e=>G(e)&&typeof e.id==`string`):[],a=t.local??`collapse`,o=t.now??Date.now(),s=i;if(t.seatIds){let e=new Map(i.map(e=>[e.id,e]));s=t.seatIds.map(t=>e.get(t)).filter(e=>e!==void 0)}let c=[],l=[],u=-1;for(let e of s){if(e.engine===`local`){if(a===`hide`)continue;if(a===`collapse`){u===-1&&(u=c.length),l.push(e);continue}}c.push(W(e,n,r,o))}if(l.length>0){let e=l.length===1?W(l[0],n,r,o):ne(l,n,o);c.splice(u,0,e)}return c}function re(e){let t=e.filter(e=>e.kind===`subscription`),n=e.filter(e=>e.kind===`local`),r=t.filter(e=>e.cls===`ready`||e.cls===`tight`).length,i=t.filter(e=>e.cls===`unread`).length,a=[];return t.length===0?a.push(`No accounts connected`):a.push(`${r} of ${t.length} ${t.length===1?`account`:`accounts`} usable`),i>0&&a.push(`${i} not read yet`),n.some(e=>e.cls===`ready`)?a.push(`local models ready`):n.length>0&&a.push(`local models not ready`),a.join(` · `)}function ie(e){let t=null;for(let n of e){if(n.kind!==`subscription`)continue;let e=n.windows.find(e=>e.binding)??null,r;if(n.cls===`blocked`||e?.limitReached)r=300;else if(e?.usedPercent!=null)r=(n.cls===`tight`?100:0)+e.usedPercent;else continue;(t===null||r>t.score)&&(t={row:n,score:r})}return t?.row??null}function ae(e,t,n={}){return Z(e,{...n,seatIds:[t],local:`each`})[0]??null}function oe(e,t,r){let i=`${e.label} ${t.label}`,a=t.resetText===null?``:`, ${t.resetText}`;if(t.limitReached)return`${i}: limit reached${a}`;if(t.usedPercent===null)return`${i}: no reading${a}`;let o=r!==null&&r>0?`; ${r}% kept for you`:``;return`${i}: ${n(t.usedPercent)} used${o}${a}`}var se={usable:`success`,low:`warning`,spent:`danger`,"signed-out":`danger`,unavailable:`danger`,"not-checked":`neutral`,checking:`neutral`},Q={usable:0,low:1,checking:2,"not-checked":3,spent:4,unavailable:5,"signed-out":6};function ce(e,t){let n=s(e.checkedAt,t);if(n===null||e.checkedAt===null)return{checked:null,checkedTitle:null};let r=new Date(e.checkedAt);return{checked:`checked ${n}`,checkedTitle:`Last checked ${r.toLocaleString([],{weekday:`short`,month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`})}`}}function $(e,t){let n=t.now??Date.now(),{checked:r,checkedTitle:a}=ce(e,n),o=(e,t,n,i={})=>({kind:e,label:t,detail:n,tone:se[e],usableAgain:null,checked:r,checkedTitle:a,coversConnection:!1,...i});if(t.checking)return o(`checking`,`Checking…`,null);if(e.kind===`local`)return e.cls===`ready`?o(`usable`,`Ready`,e.localCount>1?`${e.localCount} models on this machine · free`:`runs on this machine · free`):e.cls===`blocked`?o(`unavailable`,`Not running`,e.summary):t.healthRead?o(`not-checked`,`Not checked`,`readiness not reported yet`):o(`checking`,`Checking…`,null);let s=e.connection?.connection??null;if(e.signedOut)return o(`signed-out`,`Signed out`,`reconnect to use it`,{coversConnection:!0});let c=e.windows.find(e=>e.binding)??null;if(s===`exhausted`||e.cls===`blocked`&&c!==null&&B(c)){let t=i(e.resetAt,n),r=e.resetAt!==null&&Date.parse(e.resetAt)>n,a=(e.windows.find(e=>B(e)&&!z(e.resetsAt)&&e.resetText!==null)??null)?.resetText??(c!==null&&!z(c.resetsAt)?c.resetText:null);return o(`spent`,`Spent`,t===null?a??`reset time not reported`:r?`resets ${t}`:`was due to reset ${t}`,{usableAgain:j(e.resetAt,n),coversConnection:s===`exhausted`})}if(e.cls===`blocked`)return o(`unavailable`,`Unavailable`,e.summary);if(e.cls===`unread`)return t.healthRead?s===null||s===`unknown`?o(`not-checked`,`Not checked`,`no reading yet`):o(`usable`,`Connected`,`no usage reading yet`):o(`checking`,`Checking…`,null);let l=s===null||s===`unknown`?`Usable`:`Connected`;if(e.cls===`tight`){let t=c!==null&&B(c)&&e.credits!==null;return l===`Usable`?o(`low`,`Usable`,t?`on credits`:`running low`):o(`low`,l,t?`usable on credits`:`running low`)}return l===`Usable`?o(`usable`,`Usable now`,null):o(`usable`,`Connected`,`usable now`)}function le(e,t){let n=e.map((e,n)=>({row:e,index:n,rank:Q[$(e,{...t,checking:!1}).kind],local:+(e.kind===`local`)}));return n.sort((e,t)=>e.rank-t.rank||e.local-t.local||e.index-t.index),n.map(e=>e.row)}export{l as _,L as a,d as b,ie as c,N as d,P as f,u as g,w as h,ae as i,oe as l,D as m,Z as n,le as o,E as p,re as r,Y as s,$ as t,F as u,te as v,h as x,g as y};
2
+ //# sourceMappingURL=capacity-strip-model-fHfu5cph.js.map