@ashlr/hub 3.12.0 → 3.14.0

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 (719) hide show
  1. package/CHANGELOG.md +157 -0
  2. package/README.md +29 -16
  3. package/dist/authority-surface.json +274 -148
  4. package/dist/build-identity.json +2 -2
  5. package/dist/cli/authority.d.ts +145 -33
  6. package/dist/cli/authority.js +1292 -315
  7. package/dist/cli/authority.js.map +1 -1
  8. package/dist/cli/cloud.js +12 -3
  9. package/dist/cli/cloud.js.map +1 -1
  10. package/dist/cli/comms.d.ts +33 -19
  11. package/dist/cli/comms.js +128 -151
  12. package/dist/cli/comms.js.map +1 -1
  13. package/dist/cli/completions.js +1 -1
  14. package/dist/cli/completions.js.map +1 -1
  15. package/dist/cli/daemon.js +29 -0
  16. package/dist/cli/daemon.js.map +1 -1
  17. package/dist/cli/director.d.ts +8 -12
  18. package/dist/cli/director.js +17 -52
  19. package/dist/cli/director.js.map +1 -1
  20. package/dist/cli/fleet.js +4 -1
  21. package/dist/cli/fleet.js.map +1 -1
  22. package/dist/cli/help.js +1 -0
  23. package/dist/cli/help.js.map +1 -1
  24. package/dist/cli/leader.d.ts +27 -3
  25. package/dist/cli/leader.js +253 -4
  26. package/dist/cli/leader.js.map +1 -1
  27. package/dist/core/authority/protected-paths.js +11 -0
  28. package/dist/core/authority/protected-paths.js.map +1 -1
  29. package/dist/core/authority/resident.d.ts +101 -0
  30. package/dist/core/authority/resident.js +246 -0
  31. package/dist/core/authority/resident.js.map +1 -0
  32. package/dist/core/authority/server-enforcement.d.ts +110 -0
  33. package/dist/core/authority/server-enforcement.js +260 -0
  34. package/dist/core/authority/server-enforcement.js.map +1 -0
  35. package/dist/core/authority/standing-grant.d.ts +24 -4
  36. package/dist/core/authority/standing-grant.js +19 -3
  37. package/dist/core/authority/standing-grant.js.map +1 -1
  38. package/dist/core/authority/types.d.ts +43 -0
  39. package/dist/core/authority/types.js +6 -0
  40. package/dist/core/authority/types.js.map +1 -1
  41. package/dist/core/cloud/budget.js +11 -1
  42. package/dist/core/cloud/budget.js.map +1 -1
  43. package/dist/core/cloud/cloud-api.d.ts +25 -2
  44. package/dist/core/cloud/cloud-api.js +139 -5
  45. package/dist/core/cloud/cloud-api.js.map +1 -1
  46. package/dist/core/cloud/pr-actions.d.ts +93 -0
  47. package/dist/core/cloud/pr-actions.js +436 -0
  48. package/dist/core/cloud/pr-actions.js.map +1 -0
  49. package/dist/core/cloud/pr-preview.d.ts +128 -0
  50. package/dist/core/cloud/pr-preview.js +228 -0
  51. package/dist/core/cloud/pr-preview.js.map +1 -0
  52. package/dist/core/cloud/store.d.ts +2 -0
  53. package/dist/core/cloud/store.js +28 -0
  54. package/dist/core/cloud/store.js.map +1 -1
  55. package/dist/core/cloud/timeline-api.d.ts +24 -0
  56. package/dist/core/cloud/timeline-api.js +46 -0
  57. package/dist/core/cloud/timeline-api.js.map +1 -0
  58. package/dist/core/cloud/timeline-types.d.ts +62 -0
  59. package/dist/core/cloud/timeline-types.js +36 -0
  60. package/dist/core/cloud/timeline-types.js.map +1 -0
  61. package/dist/core/cloud/timeline.d.ts +102 -0
  62. package/dist/core/cloud/timeline.js +925 -0
  63. package/dist/core/cloud/timeline.js.map +1 -0
  64. package/dist/core/cloud/tracker.js +67 -0
  65. package/dist/core/cloud/tracker.js.map +1 -1
  66. package/dist/core/cloud/types.d.ts +38 -0
  67. package/dist/core/cloud/types.js +1 -1
  68. package/dist/core/cloud/types.js.map +1 -1
  69. package/dist/core/comms/change-digest.d.ts +130 -0
  70. package/dist/core/comms/change-digest.js +451 -0
  71. package/dist/core/comms/change-digest.js.map +1 -0
  72. package/dist/core/comms/director-prompt.d.ts +4 -5
  73. package/dist/core/comms/director-prompt.js +4 -71
  74. package/dist/core/comms/director-prompt.js.map +1 -1
  75. package/dist/core/comms/director.d.ts +24 -61
  76. package/dist/core/comms/director.js +29 -382
  77. package/dist/core/comms/director.js.map +1 -1
  78. package/dist/core/comms/dispatch.d.ts +37 -12
  79. package/dist/core/comms/dispatch.js +244 -177
  80. package/dist/core/comms/dispatch.js.map +1 -1
  81. package/dist/core/comms/elon-dialogue.d.ts +23 -15
  82. package/dist/core/comms/elon-dialogue.js +36 -307
  83. package/dist/core/comms/elon-dialogue.js.map +1 -1
  84. package/dist/core/comms/fleet-pulse.js +4 -7
  85. package/dist/core/comms/fleet-pulse.js.map +1 -1
  86. package/dist/core/comms/handlers.d.ts +10 -6
  87. package/dist/core/comms/handlers.js +14 -48
  88. package/dist/core/comms/handlers.js.map +1 -1
  89. package/dist/core/comms/migrations.d.ts +47 -0
  90. package/dist/core/comms/migrations.js +125 -0
  91. package/dist/core/comms/migrations.js.map +1 -0
  92. package/dist/core/comms/requests.d.ts +32 -5
  93. package/dist/core/comms/requests.js +101 -5
  94. package/dist/core/comms/requests.js.map +1 -1
  95. package/dist/core/comms/telegram-channel.d.ts +104 -0
  96. package/dist/core/comms/telegram-channel.js +622 -0
  97. package/dist/core/comms/telegram-channel.js.map +1 -0
  98. package/dist/core/comms/telegram-thread-map.d.ts +56 -0
  99. package/dist/core/comms/telegram-thread-map.js +144 -0
  100. package/dist/core/comms/telegram-thread-map.js.map +1 -0
  101. package/dist/core/daemon/capacity-publisher.d.ts +8 -1
  102. package/dist/core/daemon/capacity-publisher.js +40 -2
  103. package/dist/core/daemon/capacity-publisher.js.map +1 -1
  104. package/dist/core/daemon/loop.js +18 -4
  105. package/dist/core/daemon/loop.js.map +1 -1
  106. package/dist/core/daemon/service-install-authority.d.ts +10 -2
  107. package/dist/core/daemon/service-install-authority.js +14 -5
  108. package/dist/core/daemon/service-install-authority.js.map +1 -1
  109. package/dist/core/daemon/service.d.ts +15 -0
  110. package/dist/core/daemon/service.js +26 -0
  111. package/dist/core/daemon/service.js.map +1 -1
  112. package/dist/core/daemon/tick-deadline.d.ts +44 -0
  113. package/dist/core/daemon/tick-deadline.js +83 -0
  114. package/dist/core/daemon/tick-deadline.js.map +1 -0
  115. package/dist/core/daemon/tick-hooks.d.ts +7 -0
  116. package/dist/core/daemon/tick-hooks.js.map +1 -1
  117. package/dist/core/daemon/tick-progress.d.ts +39 -0
  118. package/dist/core/daemon/tick-progress.js +194 -0
  119. package/dist/core/daemon/tick-progress.js.map +1 -0
  120. package/dist/core/dashboard.js +3 -1
  121. package/dist/core/dashboard.js.map +1 -1
  122. package/dist/core/fleet/cloud-intake.d.ts +95 -0
  123. package/dist/core/fleet/cloud-intake.js +557 -0
  124. package/dist/core/fleet/cloud-intake.js.map +1 -0
  125. package/dist/core/fleet/dispatch-router.d.ts +13 -0
  126. package/dist/core/fleet/dispatch-router.js +32 -8
  127. package/dist/core/fleet/dispatch-router.js.map +1 -1
  128. package/dist/core/fleet/fleet-merge-state.d.ts +16 -0
  129. package/dist/core/fleet/fleet-merge-state.js.map +1 -1
  130. package/dist/core/fleet/host-merge.d.ts +14 -0
  131. package/dist/core/fleet/host-merge.js +24 -2
  132. package/dist/core/fleet/host-merge.js.map +1 -1
  133. package/dist/core/fleet/merge-gates.d.ts +21 -0
  134. package/dist/core/fleet/merge-gates.js +39 -5
  135. package/dist/core/fleet/merge-gates.js.map +1 -1
  136. package/dist/core/fleet/mirrors.d.ts +162 -6
  137. package/dist/core/fleet/mirrors.js +1051 -49
  138. package/dist/core/fleet/mirrors.js.map +1 -1
  139. package/dist/core/fleet/standing-merge-pass.d.ts +8 -0
  140. package/dist/core/fleet/standing-merge-pass.js +102 -1
  141. package/dist/core/fleet/standing-merge-pass.js.map +1 -1
  142. package/dist/core/fleet/status.d.ts +17 -0
  143. package/dist/core/fleet/status.js +22 -0
  144. package/dist/core/fleet/status.js.map +1 -1
  145. package/dist/core/fleet/tick-hooks-live.d.ts +10 -1
  146. package/dist/core/fleet/tick-hooks-live.js +57 -8
  147. package/dist/core/fleet/tick-hooks-live.js.map +1 -1
  148. package/dist/core/fleet/verify-check-run.d.ts +90 -0
  149. package/dist/core/fleet/verify-check-run.js +274 -0
  150. package/dist/core/fleet/verify-check-run.js.map +1 -0
  151. package/dist/core/git.d.ts +17 -0
  152. package/dist/core/git.js +124 -25
  153. package/dist/core/git.js.map +1 -1
  154. package/dist/core/goals/open-goals.d.ts +47 -0
  155. package/dist/core/goals/open-goals.js +33 -0
  156. package/dist/core/goals/open-goals.js.map +1 -0
  157. package/dist/core/inbox/merge.d.ts +5 -0
  158. package/dist/core/inbox/merge.js +58 -2
  159. package/dist/core/inbox/merge.js.map +1 -1
  160. package/dist/core/integrations/locus.d.ts +28 -0
  161. package/dist/core/integrations/locus.js +155 -30
  162. package/dist/core/integrations/locus.js.map +1 -1
  163. package/dist/core/integrations/telegram-format.d.ts +40 -0
  164. package/dist/core/integrations/telegram-format.js +123 -0
  165. package/dist/core/integrations/telegram-format.js.map +1 -0
  166. package/dist/core/integrations/telegram.d.ts +60 -4
  167. package/dist/core/integrations/telegram.js +161 -28
  168. package/dist/core/integrations/telegram.js.map +1 -1
  169. package/dist/core/mcp-registry.d.ts +12 -0
  170. package/dist/core/mcp-registry.js +70 -0
  171. package/dist/core/mcp-registry.js.map +1 -1
  172. package/dist/core/observability/rollup.d.ts +12 -10
  173. package/dist/core/observability/rollup.js +44 -17
  174. package/dist/core/observability/rollup.js.map +1 -1
  175. package/dist/core/resources/connection-monitor.d.ts +9 -0
  176. package/dist/core/resources/connection-monitor.js +19 -9
  177. package/dist/core/resources/connection-monitor.js.map +1 -1
  178. package/dist/core/resources/quota-refresh-lease.d.ts +17 -0
  179. package/dist/core/resources/quota-refresh-lease.js +34 -1
  180. package/dist/core/resources/quota-refresh-lease.js.map +1 -1
  181. package/dist/core/routing/budget-api.d.ts +18 -1
  182. package/dist/core/routing/budget-api.js +120 -10
  183. package/dist/core/routing/budget-api.js.map +1 -1
  184. package/dist/core/routing/budget-store.d.ts +22 -1
  185. package/dist/core/routing/budget-store.js +22 -8
  186. package/dist/core/routing/budget-store.js.map +1 -1
  187. package/dist/core/routing/readiness-types.d.ts +82 -0
  188. package/dist/core/routing/readiness-types.js +23 -0
  189. package/dist/core/routing/readiness-types.js.map +1 -0
  190. package/dist/core/routing/readiness.d.ts +103 -0
  191. package/dist/core/routing/readiness.js +480 -0
  192. package/dist/core/routing/readiness.js.map +1 -0
  193. package/dist/core/sandbox/confine.js +22 -1
  194. package/dist/core/sandbox/confine.js.map +1 -1
  195. package/dist/core/sandbox/policy.d.ts +23 -0
  196. package/dist/core/sandbox/policy.js +100 -0
  197. package/dist/core/sandbox/policy.js.map +1 -1
  198. package/dist/core/types.d.ts +13 -0
  199. package/dist/core/types.js.map +1 -1
  200. package/dist/core/universe/builtins/preparation/manifest.json +1 -1
  201. package/dist/core/universe/builtins/preparation/preparation-bridge.mjs +1204 -939
  202. package/dist/core/universe/builtins/preparation/preparation-verification-fixtures.mjs +1319 -1054
  203. package/dist/core/usage/frontier-usage.d.ts +20 -2
  204. package/dist/core/usage/frontier-usage.js +75 -17
  205. package/dist/core/usage/frontier-usage.js.map +1 -1
  206. package/dist/core/verse/account-health.js +9 -3
  207. package/dist/core/verse/account-health.js.map +1 -1
  208. package/dist/core/verse/accounts.d.ts +45 -0
  209. package/dist/core/verse/accounts.js +246 -17
  210. package/dist/core/verse/accounts.js.map +1 -1
  211. package/dist/core/verse/activity-api.d.ts +5 -1
  212. package/dist/core/verse/activity-api.js +62 -14
  213. package/dist/core/verse/activity-api.js.map +1 -1
  214. package/dist/core/verse/apps-api.js +23 -11
  215. package/dist/core/verse/apps-api.js.map +1 -1
  216. package/dist/core/verse/apps.d.ts +11 -9
  217. package/dist/core/verse/apps.js +2 -2
  218. package/dist/core/verse/apps.js.map +1 -1
  219. package/dist/core/verse/authority-api.d.ts +17 -3
  220. package/dist/core/verse/authority-api.js +122 -7
  221. package/dist/core/verse/authority-api.js.map +1 -1
  222. package/dist/core/verse/autonomy-ladder.d.ts +172 -0
  223. package/dist/core/verse/autonomy-ladder.js +251 -0
  224. package/dist/core/verse/autonomy-ladder.js.map +1 -0
  225. package/dist/core/verse/context-fit.js +7 -5
  226. package/dist/core/verse/context-fit.js.map +1 -1
  227. package/dist/core/verse/control-api.d.ts +23 -1
  228. package/dist/core/verse/control-api.js +117 -10
  229. package/dist/core/verse/control-api.js.map +1 -1
  230. package/dist/core/verse/fleet-live-api.js +13 -5
  231. package/dist/core/verse/fleet-live-api.js.map +1 -1
  232. package/dist/core/verse/folder-io.d.ts +50 -0
  233. package/dist/core/verse/folder-io.js +142 -0
  234. package/dist/core/verse/folder-io.js.map +1 -0
  235. package/dist/core/verse/git-api.js +5 -4
  236. package/dist/core/verse/git-api.js.map +1 -1
  237. package/dist/core/verse/git-ops.d.ts +10 -1
  238. package/dist/core/verse/git-ops.js +18 -2
  239. package/dist/core/verse/git-ops.js.map +1 -1
  240. package/dist/core/verse/github-api.d.ts +1 -1
  241. package/dist/core/verse/github-api.js +5 -4
  242. package/dist/core/verse/github-api.js.map +1 -1
  243. package/dist/core/verse/github-repo.js +118 -14
  244. package/dist/core/verse/github-repo.js.map +1 -1
  245. package/dist/core/verse/leader-api.d.ts +5 -4
  246. package/dist/core/verse/leader-api.js +237 -10
  247. package/dist/core/verse/leader-api.js.map +1 -1
  248. package/dist/core/verse/local-models.d.ts +10 -0
  249. package/dist/core/verse/local-models.js +10 -1
  250. package/dist/core/verse/local-models.js.map +1 -1
  251. package/dist/core/verse/login-path.d.ts +73 -0
  252. package/dist/core/verse/login-path.js +123 -14
  253. package/dist/core/verse/login-path.js.map +1 -1
  254. package/dist/core/verse/mcp-control-api.js +4 -4
  255. package/dist/core/verse/mcp-control-api.js.map +1 -1
  256. package/dist/core/verse/mcp-scope.d.ts +22 -0
  257. package/dist/core/verse/mcp-scope.js +41 -1
  258. package/dist/core/verse/mcp-scope.js.map +1 -1
  259. package/dist/core/verse/mcp-seat-view.d.ts +10 -0
  260. package/dist/core/verse/mcp-seat-view.js +30 -4
  261. package/dist/core/verse/mcp-seat-view.js.map +1 -1
  262. package/dist/core/verse/overnight-api.js +20 -2
  263. package/dist/core/verse/overnight-api.js.map +1 -1
  264. package/dist/core/verse/path-guard.d.ts +24 -0
  265. package/dist/core/verse/path-guard.js +91 -22
  266. package/dist/core/verse/path-guard.js.map +1 -1
  267. package/dist/core/verse/preview-api.js +22 -0
  268. package/dist/core/verse/preview-api.js.map +1 -1
  269. package/dist/core/verse/projects.d.ts +21 -0
  270. package/dist/core/verse/projects.js +82 -0
  271. package/dist/core/verse/projects.js.map +1 -1
  272. package/dist/core/verse/seat-readiness.d.ts +25 -0
  273. package/dist/core/verse/seat-readiness.js +43 -6
  274. package/dist/core/verse/seat-readiness.js.map +1 -1
  275. package/dist/core/verse/session-controls-api.js +5 -3
  276. package/dist/core/verse/session-controls-api.js.map +1 -1
  277. package/dist/core/verse/session-handoff.d.ts +26 -0
  278. package/dist/core/verse/session-handoff.js +90 -12
  279. package/dist/core/verse/session-handoff.js.map +1 -1
  280. package/dist/core/verse/terminal-api.js +7 -4
  281. package/dist/core/verse/terminal-api.js.map +1 -1
  282. package/dist/core/verse/terminal.js +9 -5
  283. package/dist/core/verse/terminal.js.map +1 -1
  284. package/dist/core/verse/verse-api.d.ts +3 -1
  285. package/dist/core/verse/verse-api.js +87 -27
  286. package/dist/core/verse/verse-api.js.map +1 -1
  287. package/dist/core/verse/workspaces.d.ts +51 -0
  288. package/dist/core/verse/workspaces.js +177 -47
  289. package/dist/core/verse/workspaces.js.map +1 -1
  290. package/dist/core/vision/leader-apply.d.ts +40 -0
  291. package/dist/core/vision/leader-apply.js +101 -30
  292. package/dist/core/vision/leader-apply.js.map +1 -1
  293. package/dist/core/vision/leader-cadence.d.ts +114 -0
  294. package/dist/core/vision/leader-cadence.js +127 -0
  295. package/dist/core/vision/leader-cadence.js.map +1 -0
  296. package/dist/core/vision/leader-goal-evidence.d.ts +25 -0
  297. package/dist/core/vision/leader-goal-evidence.js +36 -0
  298. package/dist/core/vision/leader-goal-evidence.js.map +1 -0
  299. package/dist/core/vision/leader-health.d.ts +53 -0
  300. package/dist/core/vision/leader-health.js +92 -0
  301. package/dist/core/vision/leader-health.js.map +1 -0
  302. package/dist/core/vision/leader-operator.d.ts +176 -0
  303. package/dist/core/vision/leader-operator.js +355 -0
  304. package/dist/core/vision/leader-operator.js.map +1 -0
  305. package/dist/core/vision/leader-run-chain.d.ts +41 -0
  306. package/dist/core/vision/leader-run-chain.js +54 -0
  307. package/dist/core/vision/leader-run-chain.js.map +1 -0
  308. package/dist/core/vision/leader-seat-plan.d.ts +68 -0
  309. package/dist/core/vision/leader-seat-plan.js +93 -0
  310. package/dist/core/vision/leader-seat-plan.js.map +1 -0
  311. package/dist/core/vision/leader-seat.d.ts +71 -5
  312. package/dist/core/vision/leader-seat.js +235 -33
  313. package/dist/core/vision/leader-seat.js.map +1 -1
  314. package/dist/core/vision/leader-thread-types.d.ts +104 -0
  315. package/dist/core/vision/leader-thread-types.js +9 -0
  316. package/dist/core/vision/leader-thread-types.js.map +1 -0
  317. package/dist/core/vision/leader-thread.d.ts +138 -0
  318. package/dist/core/vision/leader-thread.js +926 -0
  319. package/dist/core/vision/leader-thread.js.map +1 -0
  320. package/dist/core/vision/leader-types.d.ts +75 -1
  321. package/dist/core/vision/leader.d.ts +88 -18
  322. package/dist/core/vision/leader.js +269 -69
  323. package/dist/core/vision/leader.js.map +1 -1
  324. package/dist/core/web/public/next/assets/{ActionMenu-B4-39f2S.js → ActionMenu-CIiX2X8w.js} +2 -2
  325. package/dist/core/web/public/next/assets/{ActionMenu-B4-39f2S.js.map → ActionMenu-CIiX2X8w.js.map} +1 -1
  326. package/dist/core/web/public/next/assets/Advanced-DHsysoIL.js +2 -0
  327. package/dist/core/web/public/next/assets/{Advanced-B-LqYXvd.js.map → Advanced-DHsysoIL.js.map} +1 -1
  328. package/dist/core/web/public/next/assets/App-CMeAocmW.js +7 -0
  329. package/dist/core/web/public/next/assets/{App-E2zCDRxm.js.map → App-CMeAocmW.js.map} +1 -1
  330. package/dist/core/web/public/next/assets/AppsSection-DISYnMnc.js +2 -0
  331. package/dist/core/web/public/next/assets/{AppsSection-8wXPPhZb.js.map → AppsSection-DISYnMnc.js.map} +1 -1
  332. package/dist/core/web/public/next/assets/AreaTrend-DK2Y2TbZ.js +2 -0
  333. package/dist/core/web/public/next/assets/AreaTrend-DK2Y2TbZ.js.map +1 -0
  334. package/dist/core/web/public/next/assets/AutonomyOffState-CEPSZToP.js +3 -0
  335. package/dist/core/web/public/next/assets/AutonomyOffState-CEPSZToP.js.map +1 -0
  336. package/dist/core/web/public/next/assets/AutonomyOffState-CmSSTHVe.css +1 -0
  337. package/dist/core/web/public/next/assets/AutonomySection-DWc3ciAD.js +2 -0
  338. package/dist/core/web/public/next/assets/{AutonomySection-B46igJKR.js.map → AutonomySection-DWc3ciAD.js.map} +1 -1
  339. package/dist/core/web/public/next/assets/AutonomyStatus-CYaHjJ9U.js +2 -0
  340. package/dist/core/web/public/next/assets/AutonomyStatus-CYaHjJ9U.js.map +1 -0
  341. package/dist/core/web/public/next/assets/{BranchBar-BRkrEQGs.js → BranchBar-BxhdiIpx.js} +2 -2
  342. package/dist/core/web/public/next/assets/{BranchBar-BRkrEQGs.js.map → BranchBar-BxhdiIpx.js.map} +1 -1
  343. package/dist/core/web/public/next/assets/BudgetControl-C-0KhjRS.js +2 -0
  344. package/dist/core/web/public/next/assets/BudgetControl-C-0KhjRS.js.map +1 -0
  345. package/dist/core/web/public/next/assets/{Button-BhO-WKPp.js → Button-D90dzI_o.js} +2 -2
  346. package/dist/core/web/public/next/assets/{Button-BhO-WKPp.js.map → Button-D90dzI_o.js.map} +1 -1
  347. package/dist/core/web/public/next/assets/{CapacityStrip-CkFz5vq2.js → CapacityStrip-qKDBC65C.js} +2 -2
  348. package/dist/core/web/public/next/assets/{CapacityStrip-CkFz5vq2.js.map → CapacityStrip-qKDBC65C.js.map} +1 -1
  349. package/dist/core/web/public/next/assets/ChartFrame-DY-GVUb3.js +2 -0
  350. package/dist/core/web/public/next/assets/ChartFrame-DY-GVUb3.js.map +1 -0
  351. package/dist/core/web/public/next/assets/ChartFrame-DyjmyV8N.css +1 -0
  352. package/dist/core/web/public/next/assets/ChatSection-DlT4QU6a.js +3 -0
  353. package/dist/core/web/public/next/assets/ChatSection-DlT4QU6a.js.map +1 -0
  354. package/dist/core/web/public/next/assets/{CloudBudgetForm-Bd91iStN.js → CloudBudgetForm-BrNun_Yu.js} +2 -2
  355. package/dist/core/web/public/next/assets/{CloudBudgetForm-Bd91iStN.js.map → CloudBudgetForm-BrNun_Yu.js.map} +1 -1
  356. package/dist/core/web/public/next/assets/CommandPalette-C5lDDKN0.js +2 -0
  357. package/dist/core/web/public/next/assets/CommandPalette-C5lDDKN0.js.map +1 -0
  358. package/dist/core/web/public/next/assets/CommandSection-B0xuU-yZ.css +1 -0
  359. package/dist/core/web/public/next/assets/CommandSection-DXFvPgKp.js +3 -0
  360. package/dist/core/web/public/next/assets/CommandSection-DXFvPgKp.js.map +1 -0
  361. package/dist/core/web/public/next/assets/{ConfirmDialog-Bv4hdK2T.js → ConfirmDialog-BR4nZQ2D.js} +2 -2
  362. package/dist/core/web/public/next/assets/{ConfirmDialog-Bv4hdK2T.js.map → ConfirmDialog-BR4nZQ2D.js.map} +1 -1
  363. package/dist/core/web/public/next/assets/{DeleteChatDialog-CH1Ix8Eh.js → DeleteChatDialog-BCfP12GH.js} +2 -2
  364. package/dist/core/web/public/next/assets/{DeleteChatDialog-CH1Ix8Eh.js.map → DeleteChatDialog-BCfP12GH.js.map} +1 -1
  365. package/dist/core/web/public/next/assets/{Dialog-BSsIFNqD.js → Dialog-D3msQlCj.js} +2 -2
  366. package/dist/core/web/public/next/assets/{Dialog-BSsIFNqD.js.map → Dialog-D3msQlCj.js.map} +1 -1
  367. package/dist/core/web/public/next/assets/{DiffPane-BpNuJmth.js → DiffPane-Ix6hvXlY.js} +2 -2
  368. package/dist/core/web/public/next/assets/{DiffPane-BpNuJmth.js.map → DiffPane-Ix6hvXlY.js.map} +1 -1
  369. package/dist/core/web/public/next/assets/{DiffViewer-CJarUvs0.js → DiffViewer-C4WKsCIe.js} +2 -2
  370. package/dist/core/web/public/next/assets/{DiffViewer-CJarUvs0.js.map → DiffViewer-C4WKsCIe.js.map} +1 -1
  371. package/dist/core/web/public/next/assets/DockHost-aWP7liri.js +2 -0
  372. package/dist/core/web/public/next/assets/{DockHost-DW9q0NdR.js.map → DockHost-aWP7liri.js.map} +1 -1
  373. package/dist/core/web/public/next/assets/{EmptyState-DPrd2aak.js → EmptyState-D2IRy3Cg.js} +2 -2
  374. package/dist/core/web/public/next/assets/{EmptyState-DPrd2aak.js.map → EmptyState-D2IRy3Cg.js.map} +1 -1
  375. package/dist/core/web/public/next/assets/{Epistemic-D7MxSmED.js → Epistemic-DMr18muX.js} +2 -2
  376. package/dist/core/web/public/next/assets/{Epistemic-D7MxSmED.js.map → Epistemic-DMr18muX.js.map} +1 -1
  377. package/dist/core/web/public/next/assets/EvidenceTimeline-DXmmz6Fi.js +2 -0
  378. package/dist/core/web/public/next/assets/EvidenceTimeline-DXmmz6Fi.js.map +1 -0
  379. package/dist/core/web/public/next/assets/EvidenceTimeline-PBDAiSuG.css +1 -0
  380. package/dist/core/web/public/next/assets/FleetSection-BfplcwFU.js +3 -0
  381. package/dist/core/web/public/next/assets/FleetSection-BfplcwFU.js.map +1 -0
  382. package/dist/core/web/public/next/assets/Funnel-Dh2yVHws.js +2 -0
  383. package/dist/core/web/public/next/assets/Funnel-Dh2yVHws.js.map +1 -0
  384. package/dist/core/web/public/next/assets/{GearTray-CIPtzeIx.js → GearTray-Dt-ee32-.js} +2 -2
  385. package/dist/core/web/public/next/assets/{GearTray-CIPtzeIx.js.map → GearTray-Dt-ee32-.js.map} +1 -1
  386. package/dist/core/web/public/next/assets/GrowthSection-P9EUfGeA.js +2 -0
  387. package/dist/core/web/public/next/assets/{GrowthSection-iiQg6wvK.js.map → GrowthSection-P9EUfGeA.js.map} +1 -1
  388. package/dist/core/web/public/next/assets/{HandoffDialog-DrQ6ofuy.js → HandoffDialog-CLJQLe7M.js} +2 -2
  389. package/dist/core/web/public/next/assets/{HandoffDialog-DrQ6ofuy.js.map → HandoffDialog-CLJQLe7M.js.map} +1 -1
  390. package/dist/core/web/public/next/assets/{Input-C0MQxEM6.js → Input-D_KRJA9V.js} +2 -2
  391. package/dist/core/web/public/next/assets/{Input-C0MQxEM6.js.map → Input-D_KRJA9V.js.map} +1 -1
  392. package/dist/core/web/public/next/assets/LeaderCard-D-7DlJuR.js +2 -0
  393. package/dist/core/web/public/next/assets/LeaderCard-D-7DlJuR.js.map +1 -0
  394. package/dist/core/web/public/next/assets/LeaderCard-DNsbLwY3.css +1 -0
  395. package/dist/core/web/public/next/assets/LeaderConversation-DGZjWI-E.js +2 -0
  396. package/dist/core/web/public/next/assets/LeaderConversation-DGZjWI-E.js.map +1 -0
  397. package/dist/core/web/public/next/assets/LeaderConversation-DPHUTq6W.css +1 -0
  398. package/dist/core/web/public/next/assets/MatrixHeatmap-C7BCG2d7.js +2 -0
  399. package/dist/core/web/public/next/assets/MatrixHeatmap-C7BCG2d7.js.map +1 -0
  400. package/dist/core/web/public/next/assets/McpSection-DGbRcyv8.js +2 -0
  401. package/dist/core/web/public/next/assets/{McpSection-BRuCcTjT.js.map → McpSection-DGbRcyv8.js.map} +1 -1
  402. package/dist/core/web/public/next/assets/{MessageMarkdown-bRvD5nSc.js → MessageMarkdown-DFvk06qG.js} +3 -3
  403. package/dist/core/web/public/next/assets/{MessageMarkdown-bRvD5nSc.js.map → MessageMarkdown-DFvk06qG.js.map} +1 -1
  404. package/dist/core/web/public/next/assets/{MessageMarkdownRenderer-FjjkPKA2.js → MessageMarkdownRenderer-BAv4oEUf.js} +2 -2
  405. package/dist/core/web/public/next/assets/{MessageMarkdownRenderer-FjjkPKA2.js.map → MessageMarkdownRenderer-BAv4oEUf.js.map} +1 -1
  406. package/dist/core/web/public/next/assets/{Meter-CFNLpwA-.js → Meter-CMj-VafN.js} +2 -2
  407. package/dist/core/web/public/next/assets/{Meter-CFNLpwA-.js.map → Meter-CMj-VafN.js.map} +1 -1
  408. package/dist/core/web/public/next/assets/MindSection-C6kLPIjt.js +3 -0
  409. package/dist/core/web/public/next/assets/MindSection-C6kLPIjt.js.map +1 -0
  410. package/dist/core/web/public/next/assets/{MutationTokenDialog-T7gv3a9r.js → MutationTokenDialog-DbnO8aYi.js} +2 -2
  411. package/dist/core/web/public/next/assets/{MutationTokenDialog-T7gv3a9r.js.map → MutationTokenDialog-DbnO8aYi.js.map} +1 -1
  412. package/dist/core/web/public/next/assets/NeedsYouDrawer-crsiX-Nc.js +3 -0
  413. package/dist/core/web/public/next/assets/NeedsYouDrawer-crsiX-Nc.js.map +1 -0
  414. package/dist/core/web/public/next/assets/NeedsYouList-CCsijdWt.js +2 -0
  415. package/dist/core/web/public/next/assets/{NeedsYouList-BgH8ezqf.js.map → NeedsYouList-CCsijdWt.js.map} +1 -1
  416. package/dist/core/web/public/next/assets/NeedsYouList-CH6Mq-E_.css +1 -0
  417. package/dist/core/web/public/next/assets/NewChatDialog-BlCHtOIr.js +3 -0
  418. package/dist/core/web/public/next/assets/{NewChatDialog-Db5Xjrk8.js.map → NewChatDialog-BlCHtOIr.js.map} +1 -1
  419. package/dist/core/web/public/next/assets/OnboardingFlow-Cy9BA9eR.js +3 -0
  420. package/dist/core/web/public/next/assets/OnboardingFlow-Cy9BA9eR.js.map +1 -0
  421. package/dist/core/web/public/next/assets/OnboardingGate-BXpNFoLt.js +3 -0
  422. package/dist/core/web/public/next/assets/{OnboardingGate-C4VXn7BJ.js.map → OnboardingGate-BXpNFoLt.js.map} +1 -1
  423. package/dist/core/web/public/next/assets/PreviewPane-COid5A0f.js +2 -0
  424. package/dist/core/web/public/next/assets/{PreviewPane-BPBbcROb.js.map → PreviewPane-COid5A0f.js.map} +1 -1
  425. package/dist/core/web/public/next/assets/{ProviderLogo-CT2cSfkg.js → ProviderLogo-Cq-CYIwT.js} +2 -2
  426. package/dist/core/web/public/next/assets/{ProviderLogo-CT2cSfkg.js.map → ProviderLogo-Cq-CYIwT.js.map} +1 -1
  427. package/dist/core/web/public/next/assets/{RailStatus-Vgl0GYtd.js → RailStatus-Co5UB6We.js} +2 -2
  428. package/dist/core/web/public/next/assets/{RailStatus-Vgl0GYtd.js.map → RailStatus-Co5UB6We.js.map} +1 -1
  429. package/dist/core/web/public/next/assets/{RefreshIndicator-CSyqpY_q.js → RefreshIndicator-DO9ibnSq.js} +2 -2
  430. package/dist/core/web/public/next/assets/{RefreshIndicator-CSyqpY_q.js.map → RefreshIndicator-DO9ibnSq.js.map} +1 -1
  431. package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-Dr2WRgkq.js +7 -0
  432. package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-BX2nkdmZ.js.map → ResourcePoolConsoleApp-Dr2WRgkq.js.map} +1 -1
  433. package/dist/core/web/public/next/assets/ResourcesChrome-CwMnbqI1.js +3 -0
  434. package/dist/core/web/public/next/assets/ResourcesChrome-CwMnbqI1.js.map +1 -0
  435. package/dist/core/web/public/next/assets/ResourcesDrawer-B_Xp_JNc.js +2 -0
  436. package/dist/core/web/public/next/assets/ResourcesDrawer-B_Xp_JNc.js.map +1 -0
  437. package/dist/core/web/public/next/assets/ResourcesDrawer-DrGoO8KG.css +1 -0
  438. package/dist/core/web/public/next/assets/{RouteErrorBoundary-BaC7YVzR.js → RouteErrorBoundary-SkNhhUbt.js} +2 -2
  439. package/dist/core/web/public/next/assets/{RouteErrorBoundary-BaC7YVzR.js.map → RouteErrorBoundary-SkNhhUbt.js.map} +1 -1
  440. package/dist/core/web/public/next/assets/{RunInCloudAction-D5PDHJPE.js → RunInCloudAction-BXPlZwJQ.js} +2 -2
  441. package/dist/core/web/public/next/assets/{RunInCloudAction-D5PDHJPE.js.map → RunInCloudAction-BXPlZwJQ.js.map} +1 -1
  442. package/dist/core/web/public/next/assets/{SeatSelector-Cg75LInq.js → SeatSelector-J5R3zDkB.js} +3 -3
  443. package/dist/core/web/public/next/assets/{SeatSelector-Cg75LInq.js.map → SeatSelector-J5R3zDkB.js.map} +1 -1
  444. package/dist/core/web/public/next/assets/{Segmented-CametjLt.js → Segmented-CGh_-tBb.js} +2 -2
  445. package/dist/core/web/public/next/assets/{Segmented-CametjLt.js.map → Segmented-CGh_-tBb.js.map} +1 -1
  446. package/dist/core/web/public/next/assets/{Select-De52fghU.js → Select-CWnmUzs3.js} +2 -2
  447. package/dist/core/web/public/next/assets/{Select-De52fghU.js.map → Select-CWnmUzs3.js.map} +1 -1
  448. package/dist/core/web/public/next/assets/{SessionGate-CzlcNq3O.js → SessionGate-sp4KsnUo.js} +2 -2
  449. package/dist/core/web/public/next/assets/{SessionGate-CzlcNq3O.js.map → SessionGate-sp4KsnUo.js.map} +1 -1
  450. package/dist/core/web/public/next/assets/{SessionInsightChip-Bk_Owa7u.js → SessionInsightChip-DLFAzdbi.js} +2 -2
  451. package/dist/core/web/public/next/assets/{SessionInsightChip-Bk_Owa7u.js.map → SessionInsightChip-DLFAzdbi.js.map} +1 -1
  452. package/dist/core/web/public/next/assets/{SessionSearch-C6C8DHN8.js → SessionSearch-DbFjwR1h.js} +2 -2
  453. package/dist/core/web/public/next/assets/{SessionSearch-C6C8DHN8.js.map → SessionSearch-DbFjwR1h.js.map} +1 -1
  454. package/dist/core/web/public/next/assets/{SettingsSection-mI9wQYZg.js → SettingsSection-Ch23msJ5.js} +2 -2
  455. package/dist/core/web/public/next/assets/SettingsSection-Ch23msJ5.js.map +1 -0
  456. package/dist/core/web/public/next/assets/SetupChecklist-Bd76MBAR.js +2 -0
  457. package/dist/core/web/public/next/assets/SetupChecklist-Bd76MBAR.js.map +1 -0
  458. package/dist/core/web/public/next/assets/SetupChecklist-BhZpFLsj.css +1 -0
  459. package/dist/core/web/public/next/assets/ShadowDecisions-C5RAY91f.js +3 -0
  460. package/dist/core/web/public/next/assets/ShadowDecisions-C5RAY91f.js.map +1 -0
  461. package/dist/core/web/public/next/assets/{Sheet-CJhK9Dqv.js → Sheet-BZ2AG4Eo.js} +2 -2
  462. package/dist/core/web/public/next/assets/{Sheet-CJhK9Dqv.js.map → Sheet-BZ2AG4Eo.js.map} +1 -1
  463. package/dist/core/web/public/next/assets/{ShortcutsOverlay-DDW-i9Fc.js → ShortcutsOverlay-C8n8y3zf.js} +2 -2
  464. package/dist/core/web/public/next/assets/{ShortcutsOverlay-DDW-i9Fc.js.map → ShortcutsOverlay-C8n8y3zf.js.map} +1 -1
  465. package/dist/core/web/public/next/assets/Sidebar-DN--cPYN.js +3 -0
  466. package/dist/core/web/public/next/assets/Sidebar-DN--cPYN.js.map +1 -0
  467. package/dist/core/web/public/next/assets/{Slider-Bwd9HfXl.js → Slider-KVoJLDD6.js} +2 -2
  468. package/dist/core/web/public/next/assets/{Slider-Bwd9HfXl.js.map → Slider-KVoJLDD6.js.map} +1 -1
  469. package/dist/core/web/public/next/assets/StatTile-C4KgjltA.js +2 -0
  470. package/dist/core/web/public/next/assets/StatTile-C4KgjltA.js.map +1 -0
  471. package/dist/core/web/public/next/assets/StatTile-CNCqDoPO.css +1 -0
  472. package/dist/core/web/public/next/assets/{StatusBadge-DHKRtttH.js → StatusBadge-CXsYqmdU.js} +2 -2
  473. package/dist/core/web/public/next/assets/{StatusBadge-DHKRtttH.js.map → StatusBadge-CXsYqmdU.js.map} +1 -1
  474. package/dist/core/web/public/next/assets/StepBand-BMtVOFpK.js +2 -0
  475. package/dist/core/web/public/next/assets/StepBand-BMtVOFpK.js.map +1 -0
  476. package/dist/core/web/public/next/assets/{Surface-D--LXgQm.js → Surface-BfDmQcKe.js} +2 -2
  477. package/dist/core/web/public/next/assets/{Surface-D--LXgQm.js.map → Surface-BfDmQcKe.js.map} +1 -1
  478. package/dist/core/web/public/next/assets/Swimlane-B9Exxekk.js +2 -0
  479. package/dist/core/web/public/next/assets/Swimlane-B9Exxekk.js.map +1 -0
  480. package/dist/core/web/public/next/assets/Swimlane-Bf4Rjoy9.css +1 -0
  481. package/dist/core/web/public/next/assets/{Switch-PMixU6b0.js → Switch-9NtO_6Lj.js} +2 -2
  482. package/dist/core/web/public/next/assets/{Switch-PMixU6b0.js.map → Switch-9NtO_6Lj.js.map} +1 -1
  483. package/dist/core/web/public/next/assets/{Tag-fordBsrJ.js → Tag-DscCRFcN.js} +2 -2
  484. package/dist/core/web/public/next/assets/{Tag-fordBsrJ.js.map → Tag-DscCRFcN.js.map} +1 -1
  485. package/dist/core/web/public/next/assets/{TerminalPane-BSnGdUuF.js → TerminalPane-B668-DJW.js} +5 -5
  486. package/dist/core/web/public/next/assets/{TerminalPane-BSnGdUuF.js.map → TerminalPane-B668-DJW.js.map} +1 -1
  487. package/dist/core/web/public/next/assets/UniverseConsoleApp-BUV_brY7.js +2 -0
  488. package/dist/core/web/public/next/assets/{UniverseConsoleApp-DtXFhAhw.js.map → UniverseConsoleApp-BUV_brY7.js.map} +1 -1
  489. package/dist/core/web/public/next/assets/{UniverseView-sWm3pnTW.js → UniverseView-DG70zH0W.js} +4 -4
  490. package/dist/core/web/public/next/assets/{UniverseView-sWm3pnTW.js.map → UniverseView-DG70zH0W.js.map} +1 -1
  491. package/dist/core/web/public/next/assets/UsageSection-DY7uOTm1.js +3 -0
  492. package/dist/core/web/public/next/assets/UsageSection-DY7uOTm1.js.map +1 -0
  493. package/dist/core/web/public/next/assets/VerseConsoleApp-CWU6R3By.js +3 -0
  494. package/dist/core/web/public/next/assets/VerseConsoleApp-CWU6R3By.js.map +1 -0
  495. package/dist/core/web/public/next/assets/Workspace-D1nP9BhD.js +10 -0
  496. package/dist/core/web/public/next/assets/{Workspace-BQSZFSeO.js.map → Workspace-D1nP9BhD.js.map} +1 -1
  497. package/dist/core/web/public/next/assets/actions-CY-PjpGc.js +2 -0
  498. package/dist/core/web/public/next/assets/{actions-Ci6I4C0l.js.map → actions-CY-PjpGc.js.map} +1 -1
  499. package/dist/core/web/public/next/assets/actions-DkWhhWIg.css +1 -0
  500. package/dist/core/web/public/next/assets/{apps-model-DlwnfqwJ.js → apps-model-Du02KhAf.js} +2 -2
  501. package/dist/core/web/public/next/assets/{apps-model-DlwnfqwJ.js.map → apps-model-Du02KhAf.js.map} +1 -1
  502. package/dist/core/web/public/next/assets/{authority-model-BFuPezSo.js → authority-model-79SeuKlJ.js} +2 -2
  503. package/dist/core/web/public/next/assets/{authority-model-BFuPezSo.js.map → authority-model-79SeuKlJ.js.map} +1 -1
  504. package/dist/core/web/public/next/assets/autonomy-ladder-BGWmZzP7.css +1 -0
  505. package/dist/core/web/public/next/assets/autonomy-ladder.module-ArDv4bkr.js +2 -0
  506. package/dist/core/web/public/next/assets/autonomy-ladder.module-ArDv4bkr.js.map +1 -0
  507. package/dist/core/web/public/next/assets/budget-queries-D8QV5XtH.js +2 -0
  508. package/dist/core/web/public/next/assets/{budget-queries-DsAjH8ac.js.map → budget-queries-D8QV5XtH.js.map} +1 -1
  509. package/dist/core/web/public/next/assets/{capacity-strip-model-Dn1cNOhz.js → capacity-strip-model-BwZ1ZbkU.js} +2 -2
  510. package/dist/core/web/public/next/assets/{capacity-strip-model-Dn1cNOhz.js.map → capacity-strip-model-BwZ1ZbkU.js.map} +1 -1
  511. package/dist/core/web/public/next/assets/charts-BZ50mZD_.js +2 -0
  512. package/dist/core/web/public/next/assets/charts-BZ50mZD_.js.map +1 -0
  513. package/dist/core/web/public/next/assets/charts-ClCB18la.css +1 -0
  514. package/dist/core/web/public/next/assets/cloud-model-BDivRMqv.js +2 -0
  515. package/dist/core/web/public/next/assets/{cloud-model-CX407gPY.js.map → cloud-model-BDivRMqv.js.map} +1 -1
  516. package/dist/core/web/public/next/assets/{cloud-queries-QAhpExlz.js → cloud-queries-BPQQ5_pJ.js} +2 -2
  517. package/dist/core/web/public/next/assets/{cloud-queries-QAhpExlz.js.map → cloud-queries-BPQQ5_pJ.js.map} +1 -1
  518. package/dist/core/web/public/next/assets/{colors-BZ3a9wFf.js → colors-DvK0wMHH.js} +2 -2
  519. package/dist/core/web/public/next/assets/{colors-BZ3a9wFf.js.map → colors-DvK0wMHH.js.map} +1 -1
  520. package/dist/core/web/public/next/assets/{command-catalog-CF0cQQac.js → command-catalog-BIntSa9l.js} +2 -2
  521. package/dist/core/web/public/next/assets/command-catalog-BIntSa9l.js.map +1 -0
  522. package/dist/core/web/public/next/assets/{context-model-Co4wh3SM.js → context-model-Br8t9jgG.js} +2 -2
  523. package/dist/core/web/public/next/assets/{context-model-Co4wh3SM.js.map → context-model-Br8t9jgG.js.map} +1 -1
  524. package/dist/core/web/public/next/assets/{context-model-DV1zCfAm.js → context-model-CokrgEUq.js} +3 -3
  525. package/dist/core/web/public/next/assets/{context-model-DV1zCfAm.js.map → context-model-CokrgEUq.js.map} +1 -1
  526. package/dist/core/web/public/next/assets/context-queries-eL3caKVG.js +2 -0
  527. package/dist/core/web/public/next/assets/{context-queries-CktFQqSS.js.map → context-queries-eL3caKVG.js.map} +1 -1
  528. package/dist/core/web/public/next/assets/{control-queries-DAvlh_YM.js → control-queries-B9K-wmcB.js} +2 -2
  529. package/dist/core/web/public/next/assets/{control-queries-DAvlh_YM.js.map → control-queries-B9K-wmcB.js.map} +1 -1
  530. package/dist/core/web/public/next/assets/copy-setup-XMgCC5f8.js +2 -0
  531. package/dist/core/web/public/next/assets/copy-setup-XMgCC5f8.js.map +1 -0
  532. package/dist/core/web/public/next/assets/{dock-icons-BFuBbqJl.js → dock-icons-BJ6ZqB2t.js} +2 -2
  533. package/dist/core/web/public/next/assets/{dock-icons-BFuBbqJl.js.map → dock-icons-BJ6ZqB2t.js.map} +1 -1
  534. package/dist/core/web/public/next/assets/{fleet-model-Dfd5JyLR.js → fleet-model-BvDR3gjp.js} +2 -2
  535. package/dist/core/web/public/next/assets/{fleet-model-Dfd5JyLR.js.map → fleet-model-BvDR3gjp.js.map} +1 -1
  536. package/dist/core/web/public/next/assets/{fleet-queries-RtMTd5rR.js → fleet-queries-W2UFVMZJ.js} +2 -2
  537. package/dist/core/web/public/next/assets/{fleet-queries-RtMTd5rR.js.map → fleet-queries-W2UFVMZJ.js.map} +1 -1
  538. package/dist/core/web/public/next/assets/{focus-trap-BdrbWfC4.js → focus-trap-CtI1SlMX.js} +2 -2
  539. package/dist/core/web/public/next/assets/{focus-trap-BdrbWfC4.js.map → focus-trap-CtI1SlMX.js.map} +1 -1
  540. package/dist/core/web/public/next/assets/format-CH4g_sl1.js +2 -0
  541. package/dist/core/web/public/next/assets/format-CH4g_sl1.js.map +1 -0
  542. package/dist/core/web/public/next/assets/{format-DKrNjdwD.js → format-D7nBg2bn.js} +2 -2
  543. package/dist/core/web/public/next/assets/{format-DKrNjdwD.js.map → format-D7nBg2bn.js.map} +1 -1
  544. package/dist/core/web/public/next/assets/{git-model-_BnI_Ogh.js → git-model-Dnkd1TnK.js} +2 -2
  545. package/dist/core/web/public/next/assets/{git-model-_BnI_Ogh.js.map → git-model-Dnkd1TnK.js.map} +1 -1
  546. package/dist/core/web/public/next/assets/global-CMNW_dqn.js +2 -0
  547. package/dist/core/web/public/next/assets/{global-CNNGMril.js.map → global-CMNW_dqn.js.map} +1 -1
  548. package/dist/core/web/public/next/assets/guarded-runners-YeAc9wLQ.js +2 -0
  549. package/dist/core/web/public/next/assets/{guarded-runners-DPh2d32e.js.map → guarded-runners-YeAc9wLQ.js.map} +1 -1
  550. package/dist/core/web/public/next/assets/{icons-0haWy6nh.js → icons-D1sYbCTQ.js} +2 -2
  551. package/dist/core/web/public/next/assets/{icons-0haWy6nh.js.map → icons-D1sYbCTQ.js.map} +1 -1
  552. package/dist/core/web/public/next/assets/{index-QesfXBsb.js → index-DZ-UQ7v8.js} +3 -3
  553. package/dist/core/web/public/next/assets/{index-QesfXBsb.js.map → index-DZ-UQ7v8.js.map} +1 -1
  554. package/dist/core/web/public/next/assets/leader-focus-BjeJv7CW.js +2 -0
  555. package/dist/core/web/public/next/assets/leader-focus-BjeJv7CW.js.map +1 -0
  556. package/dist/core/web/public/next/assets/leader-thread-types-CDb-VPPO.js +2 -0
  557. package/dist/core/web/public/next/assets/leader-thread-types-CDb-VPPO.js.map +1 -0
  558. package/dist/core/web/public/next/assets/{live-model-De-q0ZFK.js → live-model-D_32RAOR.js} +2 -2
  559. package/dist/core/web/public/next/assets/live-model-D_32RAOR.js.map +1 -0
  560. package/dist/core/web/public/next/assets/{mind.module-BrK2nFOL.js → mind.module-7hA92hRg.js} +2 -2
  561. package/dist/core/web/public/next/assets/{mind.module-BrK2nFOL.js.map → mind.module-7hA92hRg.js.map} +1 -1
  562. package/dist/core/web/public/next/assets/mutations-DQPbFdRJ.js +2 -0
  563. package/dist/core/web/public/next/assets/{mutations-DTCtKCn_.js.map → mutations-DQPbFdRJ.js.map} +1 -1
  564. package/dist/core/web/public/next/assets/{nav-KmGX0CVz.js → nav-0dOYe2rJ.js} +2 -2
  565. package/dist/core/web/public/next/assets/{nav-KmGX0CVz.js.map → nav-0dOYe2rJ.js.map} +1 -1
  566. package/dist/core/web/public/next/assets/{overnight-queries-mlO0xzsr.js → overnight-queries-C4wOnFtE.js} +2 -2
  567. package/dist/core/web/public/next/assets/{overnight-queries-mlO0xzsr.js.map → overnight-queries-C4wOnFtE.js.map} +1 -1
  568. package/dist/core/web/public/next/assets/primitives-2A5Eq8FQ.js +1 -0
  569. package/dist/core/web/public/next/assets/{queries-CyBE8nsW.js → queries-BTXWdZzU.js} +2 -2
  570. package/dist/core/web/public/next/assets/{queries-CyBE8nsW.js.map → queries-BTXWdZzU.js.map} +1 -1
  571. package/dist/core/web/public/next/assets/{reasoning-pref-CaoA4_Vl.js → reasoning-pref-Ca6lN6x_.js} +2 -2
  572. package/dist/core/web/public/next/assets/{reasoning-pref-CaoA4_Vl.js.map → reasoning-pref-Ca6lN6x_.js.map} +1 -1
  573. package/dist/core/web/public/next/assets/{reveal-anchor-BP1VqnPU.js → reveal-anchor-DfNLgK_I.js} +2 -2
  574. package/dist/core/web/public/next/assets/{reveal-anchor-BP1VqnPU.js.map → reveal-anchor-DfNLgK_I.js.map} +1 -1
  575. package/dist/core/web/public/next/assets/seat-subscription-C5uPHBsN.js +2 -0
  576. package/dist/core/web/public/next/assets/{seat-subscription-C5Tvr0WQ.js.map → seat-subscription-C5uPHBsN.js.map} +1 -1
  577. package/dist/core/web/public/next/assets/{sidebar-model-B5Qk95k_.js → sidebar-model-CLCdqwkR.js} +2 -2
  578. package/dist/core/web/public/next/assets/{sidebar-model-B5Qk95k_.js.map → sidebar-model-CLCdqwkR.js.map} +1 -1
  579. package/dist/core/web/public/next/assets/{slots-DHKQDoE6.js → slots-C-qBeu-8.js} +3 -3
  580. package/dist/core/web/public/next/assets/{slots-DHKQDoE6.js.map → slots-C-qBeu-8.js.map} +1 -1
  581. package/dist/core/web/public/next/assets/{surface-data-CchClvHo.js → surface-data-Dj71tdD-.js} +2 -2
  582. package/dist/core/web/public/next/assets/{surface-data-CchClvHo.js.map → surface-data-Dj71tdD-.js.map} +1 -1
  583. package/dist/core/web/public/next/assets/surface-prefetch-B0WdJOJG.js +2 -0
  584. package/dist/core/web/public/next/assets/surface-prefetch-B0WdJOJG.js.map +1 -0
  585. package/dist/core/web/public/next/assets/{tasks-model-D6WFVULI.js → tasks-model-O8yR5YXp.js} +2 -2
  586. package/dist/core/web/public/next/assets/{tasks-model-D6WFVULI.js.map → tasks-model-O8yR5YXp.js.map} +1 -1
  587. package/dist/core/web/public/next/assets/{terminal-icons-BvCvuXk2.js → terminal-icons-CoRZq9iO.js} +2 -2
  588. package/dist/core/web/public/next/assets/{terminal-icons-BvCvuXk2.js.map → terminal-icons-CoRZq9iO.js.map} +1 -1
  589. package/dist/core/web/public/next/assets/thread-data-DQB_g66d.js +2 -0
  590. package/dist/core/web/public/next/assets/thread-data-DQB_g66d.js.map +1 -0
  591. package/dist/core/web/public/next/assets/types-IYKrYLku.js +2 -0
  592. package/dist/core/web/public/next/assets/types-IYKrYLku.js.map +1 -0
  593. package/dist/core/web/public/next/assets/{usage-queries-D1SU1t7r.js → usage-queries-AdjEyEtn.js} +2 -2
  594. package/dist/core/web/public/next/assets/{usage-queries-D1SU1t7r.js.map → usage-queries-AdjEyEtn.js.map} +1 -1
  595. package/dist/core/web/public/next/assets/{use-guarded-action-BZmBv7CJ.js → use-guarded-action-CuuMHeDX.js} +2 -2
  596. package/dist/core/web/public/next/assets/{use-guarded-action-BZmBv7CJ.js.map → use-guarded-action-CuuMHeDX.js.map} +1 -1
  597. package/dist/core/web/public/next/assets/{use-ticker-CkJ4-0wU.js → use-ticker-BBcp02SZ.js} +2 -2
  598. package/dist/core/web/public/next/assets/{use-ticker-CkJ4-0wU.js.map → use-ticker-BBcp02SZ.js.map} +1 -1
  599. package/dist/core/web/public/next/assets/{use-token-gate-CYcfk_GS.js → use-token-gate-CbXVYQYI.js} +2 -2
  600. package/dist/core/web/public/next/assets/{use-token-gate-CYcfk_GS.js.map → use-token-gate-CbXVYQYI.js.map} +1 -1
  601. package/dist/core/web/public/next/assets/{useOnboarding-CujRS6PK.js → useOnboarding-C_Fpe_sH.js} +2 -2
  602. package/dist/core/web/public/next/assets/{useOnboarding-CujRS6PK.js.map → useOnboarding-C_Fpe_sH.js.map} +1 -1
  603. package/dist/core/web/public/next/assets/{useSeatsRefresh-BEaQdkZs.js → useSeatsRefresh-Co1CnxLc.js} +2 -2
  604. package/dist/core/web/public/next/assets/{useSeatsRefresh-BEaQdkZs.js.map → useSeatsRefresh-Co1CnxLc.js.map} +1 -1
  605. package/dist/core/web/public/next/assets/{useVerseTranscript-BQ0J6Xhx.js → useVerseTranscript-DgbigUlV.js} +2 -2
  606. package/dist/core/web/public/next/assets/{useVerseTranscript-BQ0J6Xhx.js.map → useVerseTranscript-DgbigUlV.js.map} +1 -1
  607. package/dist/core/web/public/next/assets/{verse-icons-DndgEgKS.js → verse-icons-S56hIiXS.js} +2 -2
  608. package/dist/core/web/public/next/assets/{verse-icons-DndgEgKS.js.map → verse-icons-S56hIiXS.js.map} +1 -1
  609. package/dist/core/web/public/next/assets/verse-model-DAVevkNe.js +2 -0
  610. package/dist/core/web/public/next/assets/{verse-model-MMySehjj.js.map → verse-model-DAVevkNe.js.map} +1 -1
  611. package/dist/core/web/public/next/assets/{warmup-CNEH_-be.js → warmup-B_RAtNZ_.js} +3 -3
  612. package/dist/core/web/public/next/assets/{warmup-CNEH_-be.js.map → warmup-B_RAtNZ_.js.map} +1 -1
  613. package/dist/core/web/public/next/assets/why-seat-model-M_r0wX3b.js +2 -0
  614. package/dist/core/web/public/next/assets/why-seat-model-M_r0wX3b.js.map +1 -0
  615. package/dist/core/web/public/next/assets/{workspace-model-Dukb2wwv.js → workspace-model-dji5-Al3.js} +2 -2
  616. package/dist/core/web/public/next/assets/{workspace-model-Dukb2wwv.js.map → workspace-model-dji5-Al3.js.map} +1 -1
  617. package/dist/core/web/public/next/index.html +1 -1
  618. package/dist/core/web/read-projection-worker.js +2 -1
  619. package/dist/core/web/read-projection-worker.js.map +1 -1
  620. package/dist/core/web/read-projections.d.ts +3 -0
  621. package/dist/core/web/read-projections.js +2 -2
  622. package/dist/core/web/read-projections.js.map +1 -1
  623. package/dist/core/web/visibility.js +3 -4
  624. package/dist/core/web/visibility.js.map +1 -1
  625. package/dist/release-dependency-inventory.json +1 -1
  626. package/docs/AUTONOMY-GAP.md +1 -1
  627. package/package.json +3 -2
  628. package/dist/core/web/public/next/assets/Advanced-B-LqYXvd.js +0 -2
  629. package/dist/core/web/public/next/assets/App-E2zCDRxm.js +0 -7
  630. package/dist/core/web/public/next/assets/AppsSection-8wXPPhZb.js +0 -2
  631. package/dist/core/web/public/next/assets/AreaTrend-BFimExYn.js +0 -2
  632. package/dist/core/web/public/next/assets/AreaTrend-BFimExYn.js.map +0 -1
  633. package/dist/core/web/public/next/assets/AutonomyOffState-B5eEkmiz.js +0 -2
  634. package/dist/core/web/public/next/assets/AutonomyOffState-B5eEkmiz.js.map +0 -1
  635. package/dist/core/web/public/next/assets/AutonomyOffState-DmbE71vI.css +0 -1
  636. package/dist/core/web/public/next/assets/AutonomySection-B46igJKR.js +0 -2
  637. package/dist/core/web/public/next/assets/BudgetControl-T_RjPrw9.js +0 -2
  638. package/dist/core/web/public/next/assets/BudgetControl-T_RjPrw9.js.map +0 -1
  639. package/dist/core/web/public/next/assets/ChartFrame-BVuBe6RP.css +0 -1
  640. package/dist/core/web/public/next/assets/ChartFrame-SygZ7B3x.js +0 -2
  641. package/dist/core/web/public/next/assets/ChartFrame-SygZ7B3x.js.map +0 -1
  642. package/dist/core/web/public/next/assets/ChatSection-D6WybBpB.js +0 -3
  643. package/dist/core/web/public/next/assets/ChatSection-D6WybBpB.js.map +0 -1
  644. package/dist/core/web/public/next/assets/CommandPalette-B6SgDJH-.js +0 -2
  645. package/dist/core/web/public/next/assets/CommandPalette-B6SgDJH-.js.map +0 -1
  646. package/dist/core/web/public/next/assets/CommandSection-CvAVd1w4.css +0 -1
  647. package/dist/core/web/public/next/assets/CommandSection-DgMGoepd.js +0 -2
  648. package/dist/core/web/public/next/assets/CommandSection-DgMGoepd.js.map +0 -1
  649. package/dist/core/web/public/next/assets/DockHost-DW9q0NdR.js +0 -2
  650. package/dist/core/web/public/next/assets/FleetSection-BdZN6rGS.js +0 -3
  651. package/dist/core/web/public/next/assets/FleetSection-BdZN6rGS.js.map +0 -1
  652. package/dist/core/web/public/next/assets/Funnel-BeNQZWv2.js +0 -2
  653. package/dist/core/web/public/next/assets/Funnel-BeNQZWv2.js.map +0 -1
  654. package/dist/core/web/public/next/assets/GrowthSection-iiQg6wvK.js +0 -2
  655. package/dist/core/web/public/next/assets/LeaderCard-BRr3_yE-.js +0 -2
  656. package/dist/core/web/public/next/assets/LeaderCard-BRr3_yE-.js.map +0 -1
  657. package/dist/core/web/public/next/assets/MatrixHeatmap-DZvZeWXL.js +0 -2
  658. package/dist/core/web/public/next/assets/MatrixHeatmap-DZvZeWXL.js.map +0 -1
  659. package/dist/core/web/public/next/assets/McpSection-BRuCcTjT.js +0 -2
  660. package/dist/core/web/public/next/assets/MindSection-BTIiQS8P.js +0 -2
  661. package/dist/core/web/public/next/assets/MindSection-BTIiQS8P.js.map +0 -1
  662. package/dist/core/web/public/next/assets/NeedsYouDrawer-lYN4G_aM.js +0 -2
  663. package/dist/core/web/public/next/assets/NeedsYouDrawer-lYN4G_aM.js.map +0 -1
  664. package/dist/core/web/public/next/assets/NeedsYouList-BgH8ezqf.js +0 -2
  665. package/dist/core/web/public/next/assets/NeedsYouList-CruOt4JT.css +0 -1
  666. package/dist/core/web/public/next/assets/NewChatDialog-Db5Xjrk8.js +0 -3
  667. package/dist/core/web/public/next/assets/OnboardingFlow-LoY-zuSe.js +0 -2
  668. package/dist/core/web/public/next/assets/OnboardingFlow-LoY-zuSe.js.map +0 -1
  669. package/dist/core/web/public/next/assets/OnboardingGate-C4VXn7BJ.js +0 -3
  670. package/dist/core/web/public/next/assets/PreviewPane-BPBbcROb.js +0 -2
  671. package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-BX2nkdmZ.js +0 -7
  672. package/dist/core/web/public/next/assets/ResourcesChrome-B2U2lO1H.js +0 -3
  673. package/dist/core/web/public/next/assets/ResourcesChrome-B2U2lO1H.js.map +0 -1
  674. package/dist/core/web/public/next/assets/ResourcesDrawer-BCFJ2Uq8.css +0 -1
  675. package/dist/core/web/public/next/assets/ResourcesDrawer-DlUKOjl9.js +0 -2
  676. package/dist/core/web/public/next/assets/ResourcesDrawer-DlUKOjl9.js.map +0 -1
  677. package/dist/core/web/public/next/assets/SettingsSection-mI9wQYZg.js.map +0 -1
  678. package/dist/core/web/public/next/assets/Sidebar-DT7ykaqS.js +0 -3
  679. package/dist/core/web/public/next/assets/Sidebar-DT7ykaqS.js.map +0 -1
  680. package/dist/core/web/public/next/assets/StatTile-BuLMsJMx.css +0 -1
  681. package/dist/core/web/public/next/assets/StatTile-DPZ5yyaU.js +0 -2
  682. package/dist/core/web/public/next/assets/StatTile-DPZ5yyaU.js.map +0 -1
  683. package/dist/core/web/public/next/assets/StepBand-DQykLkk_.js +0 -2
  684. package/dist/core/web/public/next/assets/StepBand-DQykLkk_.js.map +0 -1
  685. package/dist/core/web/public/next/assets/Swimlane-BzH6OCee.js +0 -2
  686. package/dist/core/web/public/next/assets/Swimlane-BzH6OCee.js.map +0 -1
  687. package/dist/core/web/public/next/assets/Swimlane-o6_Zsrnr.css +0 -1
  688. package/dist/core/web/public/next/assets/UniverseConsoleApp-DtXFhAhw.js +0 -2
  689. package/dist/core/web/public/next/assets/UsageSection-CiD1DbuF.js +0 -3
  690. package/dist/core/web/public/next/assets/UsageSection-CiD1DbuF.js.map +0 -1
  691. package/dist/core/web/public/next/assets/VerseConsoleApp-BCY5uSok.js +0 -3
  692. package/dist/core/web/public/next/assets/VerseConsoleApp-BCY5uSok.js.map +0 -1
  693. package/dist/core/web/public/next/assets/Workspace-BQSZFSeO.js +0 -10
  694. package/dist/core/web/public/next/assets/actions-BmIf9avl.css +0 -1
  695. package/dist/core/web/public/next/assets/actions-Ci6I4C0l.js +0 -2
  696. package/dist/core/web/public/next/assets/budget-queries-DsAjH8ac.js +0 -2
  697. package/dist/core/web/public/next/assets/charts-C_xJbJiw.js +0 -2
  698. package/dist/core/web/public/next/assets/charts-C_xJbJiw.js.map +0 -1
  699. package/dist/core/web/public/next/assets/charts-DhKTrQLw.css +0 -1
  700. package/dist/core/web/public/next/assets/cloud-model-CX407gPY.js +0 -2
  701. package/dist/core/web/public/next/assets/command-catalog-CF0cQQac.js.map +0 -1
  702. package/dist/core/web/public/next/assets/context-queries-CktFQqSS.js +0 -2
  703. package/dist/core/web/public/next/assets/copy-setup-CqRSfELB.js +0 -2
  704. package/dist/core/web/public/next/assets/copy-setup-CqRSfELB.js.map +0 -1
  705. package/dist/core/web/public/next/assets/format-Dk4Fmxax.js +0 -2
  706. package/dist/core/web/public/next/assets/format-Dk4Fmxax.js.map +0 -1
  707. package/dist/core/web/public/next/assets/global-CNNGMril.js +0 -2
  708. package/dist/core/web/public/next/assets/guarded-runners-DPh2d32e.js +0 -2
  709. package/dist/core/web/public/next/assets/live-model-De-q0ZFK.js.map +0 -1
  710. package/dist/core/web/public/next/assets/mutations-DTCtKCn_.js +0 -2
  711. package/dist/core/web/public/next/assets/primitives-D0Fb3TtS.js +0 -1
  712. package/dist/core/web/public/next/assets/seat-subscription-C5Tvr0WQ.js +0 -2
  713. package/dist/core/web/public/next/assets/surface-prefetch-BWr0LBQn.js +0 -2
  714. package/dist/core/web/public/next/assets/surface-prefetch-BWr0LBQn.js.map +0 -1
  715. package/dist/core/web/public/next/assets/types-D5XOdyw8.js +0 -2
  716. package/dist/core/web/public/next/assets/types-D5XOdyw8.js.map +0 -1
  717. package/dist/core/web/public/next/assets/verse-model-MMySehjj.js +0 -2
  718. package/dist/core/web/public/next/assets/why-seat-model-jlDTwYSc.js +0 -2
  719. package/dist/core/web/public/next/assets/why-seat-model-jlDTwYSc.js.map +0 -1
@@ -0,0 +1,3 @@
1
+ import{a as e,c as t,n}from"./index-DZ-UQ7v8.js";import{U as r,Y as i,_ as a,g as o,h as s,i as c,o as l,r as u}from"./global-CMNW_dqn.js";import{t as d}from"./Epistemic-DMr18muX.js";import{n as f}from"./StatusBadge-CXsYqmdU.js";import{r as p}from"./queries-BTXWdZzU.js";import{A as m,C as h,I as g,P as ee,R as te,S as ne,W as _,a as re,i as ie,j as ae,k as oe,n as v,r as y,t as b,u as x}from"./ChartFrame-DY-GVUb3.js";import{a as S,i as C,n as w,r as T,t as E}from"./charts-BZ50mZD_.js";import{c as D,f as O,p as se,v as k}from"./colors-DvK0wMHH.js";import{i as ce,l as A,n as j,r as le,t as M}from"./format-D7nBg2bn.js";import{n as ue,t as N}from"./StatTile-C4KgjltA.js";import{t as P}from"./calendar-day-BxBYHfX1.js";import{L as de,S as fe,kt as pe}from"./VerseConsoleApp-CWU6R3By.js";import{O as me,n as he,s as F}from"./verse-model-DAVevkNe.js";import{_ as I,b as L,h as ge,m as _e,n as R,p as ve,t as ye,y as be}from"./format-CH4g_sl1.js";import{S as xe,d as Se}from"./context-model-Br8t9jgG.js";import{t as Ce}from"./Tag-DscCRFcN.js";import{i as we,n as Te}from"./CapacityStrip-qKDBC65C.js";import{h as Ee,m as De,p as Oe}from"./capacity-strip-model-BwZ1ZbkU.js";import{v as ke}from"./context-model-CokrgEUq.js";import{c as Ae}from"./icons-D1sYbCTQ.js";import{t as je}from"./Meter-CMj-VafN.js";import{t as Me}from"./types-IYKrYLku.js";import{a as Ne,b as Pe,f as Fe,h as Ie,r as Le,u as Re,v as ze}from"./cloud-model-BDivRMqv.js";import{c as Be,n as Ve,r as He}from"./cloud-queries-BPQQ5_pJ.js";import{t as z}from"./cloud.module-DOP-N4Ch.js";import{m as Ue}from"./surface-data-Dj71tdD-.js";import{n as We}from"./Surface-BfDmQcKe.js";import{n as Ge,r as B,t as Ke}from"./actions-CY-PjpGc.js";import{t as qe}from"./use-ticker-BBcp02SZ.js";import{d as Je}from"./fleet-model-BvDR3gjp.js";import{a as Ye,c as Xe,i as Ze,n as Qe,o as $e,r as et,s as tt,t as nt}from"./usage-queries-AdjEyEtn.js";import{a as rt,i as it,n as at,r as V,t as ot}from"./local-model-C9xNi9fN.js";import{d as st,i as ct,l as lt,n as ut,s as dt,t as ft,u as pt}from"./CloudBudgetForm-BrNun_Yu.js";import"./why-seat-model-M_r0wX3b.js";var H=t(e(),1),mt={claude:O(`claude`),codex:O(`codex`),grok:O(`grok`),local:O(`local`)},ht={claude:`Claude publishes no local utilization signal, so there is no window percentage to read. Ashlr deliberately never throttles this seat on a guess.`,grok:`Grok is absent from the per-engine usage snapshot, so this fallback roster has no window data for it. Its real state comes from the per-account probe.`},gt=`Only a dispatch-ledger figure against a configured cap is available — see Dispatch limits.`,_t=`Local models have no subscription and no quota window — only whether the runtime is up.`,vt={"account-observation":`from this account’s observed windows`,"subscription-tracker":`from the subscription tracker`};function U(e){return{sourceState:`unknown`,complete:!1,reason:e}}function W(e){return e>=90?`danger`:e>=80?`warn`:`ok`}function yt(e){return Number.isFinite(e)?Math.max(0,Math.min(100,e)):0}function bt(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function xt(e,t,n){return{kind:`measured`,source:e,scope:t,windows:n}}function St(e){return{kind:`unknown`,reason:ht[e]??`No subscription window reading is reported for this engine.`}}function Ct(e){let{engine:t,seat:n,subscription:r,frontier:i,engineSeatCount:a=1}=e;if(t===`local`)return{kind:`not-applicable`,reason:_t};let o=(n?.health.windows??[]).filter(e=>typeof e.usedPercent==`number`&&Number.isFinite(e.usedPercent));if(o.length>0)return xt(`account-observation`,`account`,o.map(e=>{let t=yt(e.usedPercent),n=e.resetsAt?Date.parse(e.resetsAt):NaN;return{id:e.id,label:e.id,usedPct:t,resetsAt:Number.isNaN(n)?null:Math.round(n/1e3),tone:W(t)}}));if(r&&r.hasData&&r.windows.length>0)return xt(`subscription-tracker`,a>1?`engine`:`account`,r.windows.map((e,t)=>{let n=yt(e.usedPercent);return{id:`${e.label}-${t}`,label:e.label,usedPct:n,resetsAt:bt(e.resetsAt),tone:W(n)}}));if(r&&!r.hasData)return St(t);if(i&&i.subscriptionWindow.state!==`unknown`){if(i.limit===void 0){let e=yt(i.subscriptionWindow.usedPct);return xt(`subscription-tracker`,a>1?`engine`:`account`,[{id:i.subscriptionWindow.windowLabel??`window`,label:i.subscriptionWindow.windowLabel??`window`,usedPct:e,resetsAt:bt(i.subscriptionWindow.resetsAt),tone:W(e)}])}return{kind:`unknown`,reason:gt}}return St(t)}function wt(e){if(!e)return null;let t=(e.byProvider??[]).map(e=>({provider:e.provider,tier:e.tier,tokens:e.tokens,costUsd:e.costUsd,sharePct:e.sharePct})),n=(e,n)=>t.filter(t=>t.tier===e).reduce((e,t)=>e+(t[n]||0),0);return{window:e.window,totalTokens:e.totalTokens,totalCostUsd:e.totalCostUsd,localSavingsUsd:e.localSavingsUsd,localTokens:n(`local`,`tokens`),cloudTokens:n(`cloud`,`tokens`),localCostUsd:n(`local`,`costUsd`),cloudCostUsd:n(`cloud`,`costUsd`),byProvider:[...t].sort((e,t)=>t.tokens-e.tokens),empty:t.length===0&&e.totalTokens===0}}function Tt(e,t){let n=[],r=new Set;for(let t of e??[]){let e=`${t.backend}:${t.window}`;r.add(e);let i=t.max>0?yt(t.used/t.max*100):null;n.push({id:e,backend:t.backend,window:t.window,max:t.max,used:t.used,standing:t.standing,usedPct:i,configuredOnly:!1})}for(let e of t??[]){let t=`${e.engine}:${e.window}`;r.has(t)||(r.add(t),n.push({id:t,backend:e.engine,window:e.window,max:e.max,used:null,standing:`unknown`,usedPct:null,configuredOnly:!0}))}return n.sort((e,t)=>e.backend.localeCompare(t.backend)||e.window.localeCompare(t.window))}var Et=`No per-day series — these sources report aggregate spend only.`;function Dt(e){if(!e)return{available:!1,reason:Et};if(e.sourceQuality?.sourceState!==`healthy`)return{available:!1,reason:`No per-day series: the daemon ledger is ${e.sourceQuality?.sourceState??`unavailable`}${e.sourceQuality?.reason?` (${e.sourceQuality.reason})`:``}.`};let t=e.ticks;if(!t||t.length===0)return{available:!1,reason:Et};let n=new Map;for(let e of t){let t=Date.parse(e.ts);if(Number.isNaN(t))continue;let r=ge(new Date(t));n.set(r,(n.get(r)??0)+(Number.isFinite(e.spentUsd)?e.spentUsd:0))}if(n.size<2)return{available:!1,reason:`No per-day series: only ${n.size} day${n.size===1?``:`s`} of daemon ticks is retained, which is not a trend.`};let r=[...n.keys()].sort(),i=r[0],a=r[r.length-1],o=[],s=P(a);for(let e=new Date(P(i));e.getTime()<=s;e=new Date(e.getFullYear(),e.getMonth(),e.getDate()+1)){let t=ge(e);o.push({day:t,usd:n.has(t)?n.get(t):null})}return{available:!0,days:o,tickCount:t.length,caveat:`Last ${t.length} daemon ticks · autonomous work only, chats excluded.`}}var Ot={available:!1,reason:null,dailyBudgetUsd:null,subscriptionMaxPercent:null,todaySpentUsd:null,todaySpentDate:null,foundryLimits:[]};function G(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function K(e,t){if(!e)return null;for(let n of t){let t=e[n];if(typeof t==`number`&&Number.isFinite(t))return t}return null}function kt(e,t=null){let n=G(e);if(!n)return{...Ot,reason:t};let r=G(n.caps)??n,i=G(n.daemon),a=G(n.spend),o=[],s=r.foundryLimits;if(Array.isArray(s))for(let e of s){let t=G(e);if(!t)continue;let n=typeof t.engine==`string`?t.engine:null,r=K(t,[`max`]);n!==null&&r!==null&&o.push({engine:n,window:typeof t.window==`string`?t.window:`1d`,max:r})}return{available:!0,reason:t,dailyBudgetUsd:K(r,[`dailyBudgetUsd`]),subscriptionMaxPercent:K(r,[`subscriptionMaxPercent`]),todaySpentUsd:a?K(a,[`todayUsd`]):K(n,[`todaySpentUsd`,`todaySpendUsd`,`spendTodayUsd`])??K(i,[`todaySpentUsd`]),todaySpentDate:a&&typeof a.todayDate==`string`?a.todayDate:null,foundryLimits:o}}function At(e){return{...Ot,reason:e}}var q={section:`_section_trwms_11`,header:`_header_trwms_20`,headerTitle:`_headerTitle_trwms_33`,headerMeta:`_headerMeta_trwms_41`,ghostButton:`_ghostButton_trwms_50`,scroll:`_scroll_trwms_67`,panel:`_panel_trwms_75`,panelHead:`_panelHead_trwms_83`,panelTitle:`_panelTitle_trwms_95`,panelNote:`_panelNote_trwms_104`,muted:`_muted_trwms_111`,noteList:`_noteList_trwms_124`,num:`_num_trwms_135`,tiles:`_tiles_trwms_142`,cards:`_cards_trwms_150`,card:`_card_trwms_150`,cardHead:`_cardHead_trwms_177`,cardLabel:`_cardLabel_trwms_187`,cardMeta:`_cardMeta_trwms_198`,cardFigures:`_cardFigures_trwms_208`,figure:`_figure_trwms_217`,figureLabel:`_figureLabel_trwms_224`,figureValue:`_figureValue_trwms_232`,windows:`_windows_trwms_241`,windowHead:`_windowHead_trwms_248`,windowPct:`_windowPct_trwms_258`,windowReset:`_windowReset_trwms_264`,track:`_track_trwms_277`,fill:`_fill_trwms_285`,unknownRule:`_unknownRule_trwms_313`,signalRow:`_signalRow_trwms_320`,reason:`_reason_trwms_327`,sourceLine:`_sourceLine_trwms_335`,split:`_split_trwms_350`,splitRow:`_splitRow_trwms_357`,splitBar:`_splitBar_trwms_366`,splitFill:`_splitFill_trwms_373`,limitList:`_limitList_trwms_379`,limitRow:`_limitRow_trwms_384`,limitName:`_limitName_trwms_397`,limitWindow:`_limitWindow_trwms_406`,limitValue:`_limitValue_trwms_411`,verdictDetail:`_verdictDetail_trwms_427`,bindingLabel:`_bindingLabel_trwms_435`,windowBlock:`_windowBlock_trwms_445`,windowBlockLead:`_windowBlockLead_trwms_454`,windowFlag:`_windowFlag_trwms_467`,creditsRow:`_creditsRow_trwms_475`,actionBlock:`_actionBlock_trwms_490`,command:`_command_trwms_496`,commandInline:`_commandInline_trwms_497`,negative:`_negative_trwms_512`,segmented:`_segmented_trwms_518`,segment:`_segment_trwms_518`,charts:`_charts_trwms_560`,tableScroll:`_tableScroll_trwms_572`,stateBlock:`_stateBlock_trwms_580`,stateTitle:`_stateTitle_trwms_588`,stateBody:`_stateBody_trwms_597`,stateActions:`_stateActions_trwms_603`,skeletonGrid:`_skeletonGrid_trwms_607`,capacity:`_capacity_trwms_662`,capacityHeadline:`_capacityHeadline_trwms_667`,chips:`_chips_trwms_682`,chip:`_chip_trwms_682`,chipLabel:`_chipLabel_trwms_729`,chipState:`_chipState_trwms_739`,chipPct:`_chipPct_trwms_759`,capacityFacts:`_capacityFacts_trwms_765`,capacityFact:`_capacityFact_trwms_765`,capacityMuted:`_capacityMuted_trwms_779`,proseResets:`_proseResets_trwms_785`,visuallyHidden:`_visuallyHidden_trwms_789`,cardTrigger:`_cardTrigger_trwms_809`,cardChevron:`_cardChevron_trwms_825`,detail:`_detail_trwms_850`,detailHead:`_detailHead_trwms_858`,detailTitle:`_detailTitle_trwms_865`,detailGrid:`_detailGrid_trwms_873`,detailColumn:`_detailColumn_trwms_880`,evidenceList:`_evidenceList_trwms_884`,evidenceRow:`_evidenceRow_trwms_891`,evidenceValue:`_evidenceValue_trwms_898`,figureTile:`_figureTile_trwms_909`,figureBig:`_figureBig_trwms_920`,figureCaption:`_figureCaption_trwms_928`,panelActions:`_panelActions_trwms_936`,placement:`_placement_trwms_949`,placementBar:`_placementBar_trwms_956`,placementGpu:`_placementGpu_trwms_966`,placementCpu:`_placementCpu_trwms_967`,placementText:`_placementText_trwms_973`,staleNotice:`_staleNotice_trwms_986`,staleFlag:`_staleFlag_trwms_1000`},J=n();function jt({view:e,ariaPrefix:t,prominent:n=!1,historical:r=!1}){let i=`${t} ${e.label}`;if(e.limitReached)return(0,J.jsxs)(`div`,{className:n?q.windowBlockLead:q.windowBlock,children:[(0,J.jsxs)(`div`,{className:q.windowHead,children:[(0,J.jsx)(`span`,{children:e.label}),(0,J.jsx)(`span`,{className:q.windowFlag,children:r?`limit reached · prior reading`:`limit reached`})]}),(0,J.jsx)(`div`,{className:q.track,"data-tone":`danger`,role:`img`,"aria-label":`${i}: ${r?`prior reading; `:``}the provider flagged this window as rate-limited, so no percentage is shown${r?`; current access unconfirmed`:``}`,children:(0,J.jsx)(`div`,{className:q.fill,style:{width:`100%`}})}),e.resetText?(0,J.jsxs)(`p`,{className:q.windowReset,children:[r?`Prior report: `:null,e.resetText]}):null]});if(e.usedPct===null)return(0,J.jsxs)(`div`,{className:n?q.windowBlockLead:q.windowBlock,children:[(0,J.jsxs)(`div`,{className:q.windowHead,children:[(0,J.jsx)(`span`,{children:e.label}),(0,J.jsx)(d,{quality:U(r?`No percentage was reported for this prior window reading.`:`No percentage was reported for this window.`),label:r?`${i} prior reading`:i,children:null})]}),(0,J.jsx)(`hr`,{className:q.unknownRule,"aria-hidden":`true`})]});let a=Math.round(e.usedPct);return(0,J.jsxs)(`div`,{className:n?q.windowBlockLead:q.windowBlock,children:[(0,J.jsxs)(`div`,{className:q.windowHead,children:[(0,J.jsx)(`span`,{children:e.label}),(0,J.jsxs)(`span`,{className:q.windowPct,children:[I(e.usedPct),r?` · prior`:null]})]}),(0,J.jsx)(`div`,{className:q.track,"data-tone":e.tone,role:`meter`,"aria-label":`${i} ${r?`prior reading used`:`used`}`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":a,"aria-valuetext":`${r?`Prior reading: `:``}${I(e.usedPct)} used${e.resetText?`, ${r?`prior report: `:``}${e.resetText}`:``}${r?`; current access unconfirmed`:``}`,children:(0,J.jsx)(`div`,{className:q.fill,style:{width:`${a}%`}})}),e.resetText?(0,J.jsxs)(`p`,{className:q.windowReset,children:[r?`Prior report: `:null,e.resetText]}):null]})}var Mt={available:`success`,credits:`success`,tight:`warning`,exhausted:`danger`,"signed-out":`warning`,"probe-unsupported":`warning`,unknown:`unknown`};function Nt({credits:e,historical:t}){if(!e)return null;let n=e.unlimited?`unlimited`:e.balance===null?null:e.balanceValue===null?e.balance:e.balanceValue.toLocaleString(`en-US`,{maximumFractionDigits:2});return(0,J.jsxs)(`div`,{className:q.creditsRow,children:[(0,J.jsx)(`span`,{className:q.figureLabel,children:t?`Last reported credits`:`Credits`}),(0,J.jsx)(`span`,{className:q.num,title:e.balance??void 0,children:n??`not reported`}),(0,J.jsx)(`p`,{className:q.reason,children:t?`Prior balance for context only; current access and spendability are unconfirmed.`:`Separate from the window above — spendable even when the window is full.`})]})}function Pt({card:e,onOpen:t,expanded:n=!1,triggerId:r,detailId:i}){let a={"--engine-color":e.color},o=e.verdict.state===`signed-out`,s=t!==void 0&&e.hasDetail,c=e.evidence.state!==`observed`,l=(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`span`,{className:q.cardLabel,children:e.label}),(0,J.jsx)(f,{status:e.verdict.state,tone:Mt[e.verdict.state],children:e.verdict.headline})]});return(0,J.jsxs)(`article`,{className:q.card,style:a,"aria-label":`${e.label} usage`,"data-selected":n?`true`:void 0,children:[s?(0,J.jsxs)(`button`,{type:`button`,id:r,className:`${q.cardHead} ${q.cardTrigger}`,"aria-expanded":n,...i?{"aria-controls":i}:{},onClick:()=>t(e.id),children:[l,(0,J.jsx)(`span`,{className:q.cardChevron,"aria-hidden":`true`,children:n?`−`:`+`})]}):(0,J.jsx)(`div`,{className:q.cardHead,children:l}),(0,J.jsxs)(`div`,{className:q.cardMeta,children:[(0,J.jsx)(`span`,{children:he[e.engine]}),(0,J.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,J.jsx)(`span`,{children:e.plan?`${e.plan} plan`:`plan not reported`})]}),(0,J.jsx)(`p`,{className:q.verdictDetail,children:e.verdict.detail}),e.verdict.code?(0,J.jsxs)(`p`,{className:q.sourceLine,children:[`Probe reason `,(0,J.jsx)(`code`,{className:q.commandInline,children:e.verdict.code})]}):null,e.binding?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`span`,{className:q.bindingLabel,children:c?`Last reported window`:`Binding constraint`}),(0,J.jsx)(jt,{view:e.binding,ariaPrefix:e.label,prominent:!0,historical:c})]}):null,e.others.length>0?(0,J.jsx)(`div`,{className:q.windows,children:e.others.map(t=>(0,J.jsx)(jt,{view:t,ariaPrefix:e.label,historical:c},t.id))}):null,(0,J.jsx)(Nt,{credits:e.credits,historical:c}),o?(0,J.jsx)(`div`,{className:q.actionBlock,children:e.reconnectCommand?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`span`,{className:q.figureLabel,children:`Reconnect`}),(0,J.jsx)(`code`,{className:q.command,children:e.reconnectCommand})]}):(0,J.jsxs)(`p`,{className:q.reason,children:[`Sign this account back in through its own provider CLI under its pinned profile. Ashlr does not print that invocation here, because the pinned-profile launcher path is never allowed onto a surface. `,(0,J.jsx)(`code`,{className:q.commandInline,children:`ashlr resources`}),` `,`shows the connection state once it is back.`]})}):null,e.sourceNote?(0,J.jsx)(`p`,{className:q.sourceLine,children:e.sourceNote}):null]})}var Ft={available:`success`,credits:`success`,tight:`warning`,exhausted:`danger`,"signed-out":`warning`,"probe-unsupported":`warning`,unknown:`unknown`},It=`No per-account history is retained by any source this view reads: the accounts route is a point-in-time snapshot and the usage series carries no per-account breakdown. A trend is not drawn from one reading.`;function Lt(e,t){return e===null?`The source behind this card reports no health verdict at all.`:e===`unknown`?t===`claude`?`Health reads unknown, which is how this provider always reads — the probe has no health channel for it. It is not a fault.`:`Health reads unknown: the monitor took no verdict on this account.`:`Monitor health: ${e}.`}function Y({label:e,children:t}){return(0,J.jsxs)(`div`,{className:q.evidenceRow,children:[(0,J.jsx)(`dt`,{className:q.figureLabel,children:e}),(0,J.jsx)(`dd`,{className:q.evidenceValue,children:t})]})}function Rt({card:e,onClose:t,headingId:n}){let{evidence:r}=e,i=e.credits,a=r.state!==`observed`,o=(0,H.useRef)(null);return(0,H.useEffect)(()=>{o.current?.focus()},[e.id]),(0,J.jsxs)(`section`,{className:q.detail,"aria-labelledby":n,children:[(0,J.jsxs)(`div`,{className:q.detailHead,children:[(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`h4`,{id:n,ref:o,tabIndex:-1,className:q.detailTitle,children:e.label}),(0,J.jsxs)(`div`,{className:q.cardMeta,children:[(0,J.jsx)(`span`,{children:he[e.engine]}),(0,J.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,J.jsx)(`span`,{children:e.plan?`${e.plan} plan`:`plan not reported`}),(0,J.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,J.jsx)(f,{status:e.verdict.state,tone:Ft[e.verdict.state],children:e.verdict.headline})]})]}),(0,J.jsx)(`button`,{type:`button`,className:q.ghostButton,onClick:t,children:`Close`})]}),(0,J.jsx)(`p`,{className:q.verdictDetail,children:e.verdict.detail}),(0,J.jsxs)(`div`,{className:q.detailGrid,children:[(0,J.jsxs)(`div`,{className:q.detailColumn,children:[(0,J.jsxs)(`span`,{className:q.figureLabel,children:[a&&e.allWindows.length>0?`Last reported windows`:`All windows`,` (`,e.allWindows.length,`)`]}),e.allWindows.length===0?(0,J.jsx)(`p`,{className:q.reason,children:`No windows reported.`}):(0,J.jsx)(`div`,{className:q.windows,children:e.allWindows.map((t,n)=>(0,J.jsx)(jt,{view:t,ariaPrefix:e.label,prominent:n===0,historical:a},t.id))}),e.allWindows.some(e=>!e.measured)?(0,J.jsx)(`p`,{className:q.reason,children:`Flagged windows show no percentage — the provider sent only a limit flag.`}):null]}),(0,J.jsxs)(`div`,{className:q.detailColumn,children:[(0,J.jsx)(`span`,{className:q.figureLabel,children:`Probe evidence`}),(0,J.jsxs)(`dl`,{className:q.evidenceList,children:[(0,J.jsx)(Y,{label:`Connection`,children:r.state}),(0,J.jsx)(Y,{label:`Authentication`,children:r.authentication}),(0,J.jsx)(Y,{label:`Health`,children:Lt(r.health,e.engine)}),(0,J.jsx)(Y,{label:`Observed`,children:r.observedAt===null?(0,J.jsx)(`span`,{className:q.capacityMuted,children:`no observation timestamp was reported`}):(0,J.jsx)(`span`,{className:q.num,title:new Date(r.observedAt).toLocaleString(),children:ke(r.observedAt)??new Date(r.observedAt).toLocaleString()})}),(0,J.jsx)(Y,{label:`Probe reason`,children:r.reasonCode===null?(0,J.jsx)(`span`,{className:q.capacityMuted,children:`none reported`}):(0,J.jsx)(`code`,{className:q.commandInline,children:r.reasonCode})}),r.unsupported?(0,J.jsxs)(Y,{label:`Version pin`,children:[(0,J.jsx)(`code`,{className:q.commandInline,children:r.unsupported.code}),r.unsupported.pinnedVersion?(0,J.jsxs)(J.Fragment,{children:[` `,`pinned to `,(0,J.jsx)(`span`,{className:q.num,children:r.unsupported.pinnedVersion}),`. A one-line constant bump, not an outage.`]}):null]}):null]}),i?(0,J.jsxs)(`div`,{className:q.creditsRow,children:[(0,J.jsx)(`span`,{className:q.figureLabel,children:a?`Last reported credits`:`Credits`}),(0,J.jsx)(`span`,{className:q.num,title:i.balance??void 0,children:i.unlimited?`unlimited`:i.balanceValue===null?i.balance??`not reported`:i.balanceValue.toLocaleString(`en-US`,{maximumFractionDigits:2})}),(0,J.jsx)(`p`,{className:q.reason,children:a?`Prior balance for context only; current access and spendability are unconfirmed.`:`Separate from the windows above; shown as the provider reports it.`})]}):null,r.notes.length>0?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`span`,{className:q.figureLabel,children:`Provider notes`}),(0,J.jsx)(`ul`,{className:q.noteList,children:r.notes.map(e=>(0,J.jsx)(`li`,{className:q.capacityMuted,children:e},e))})]}):null]})]}),(0,J.jsx)(`p`,{className:q.sourceLine,children:It})]})}function zt(e,t=3e4){let[n,r]=(0,H.useState)(()=>Date.now());return(0,H.useEffect)(()=>{if(!e)return;let n=setInterval(()=>r(Date.now()),t);return()=>clearInterval(n)},[e,t]),n}function Bt({overview:e}){let t=zt(e.resets.length>0),n=(0,H.useMemo)(()=>Ee(e.resets,t),[e.resets,t]),r=n===null?0:n.atMs-t,i=r<=0,a=e.local;return(0,J.jsxs)(`section`,{className:q.capacity,"aria-label":`Resets and local headroom`,children:[(0,J.jsxs)(`dl`,{className:q.capacityFacts,children:[(0,J.jsxs)(`div`,{className:q.capacityFact,children:[(0,J.jsx)(`dt`,{className:q.figureLabel,children:`Nearest reset`}),(0,J.jsx)(`dd`,{children:n===null?(0,J.jsx)(`span`,{className:q.capacityMuted,children:`No seat reported a reset time.`}):i?(0,J.jsxs)(`span`,{className:q.capacityMuted,children:[(0,J.jsx)(`span`,{className:q.num,children:n.seatLabel}),` · `,n.windowLabel,` was due to reset `,L(new Date(n.atMs).toISOString(),t),` — this reading predates the rollover.`]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`span`,{className:q.num,children:De(r)}),` `,(0,J.jsxs)(`span`,{className:q.capacityMuted,children:[`· `,n.seatLabel,` `,n.windowLabel,`, resets`,` `,L(new Date(n.atMs).toISOString(),t)]})]})})]}),(0,J.jsxs)(`div`,{className:q.capacityFact,children:[(0,J.jsx)(`dt`,{className:q.figureLabel,children:`Local headroom`}),(0,J.jsx)(`dd`,{children:a===null?(0,J.jsx)(`span`,{className:q.capacityMuted,children:`No local source answered.`}):a.reachable?a.headroomBytes===null?(0,J.jsx)(`span`,{className:q.capacityMuted,children:`Either the resident total or the machine budget was not reported, so headroom cannot be computed.`}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`span`,{className:q.num,children:V(a.headroomBytes)}),` `,(0,J.jsxs)(`span`,{className:q.capacityMuted,children:[`free of `,V(a.memoryBudgetBytes),` · `,a.residentCount,` resident,`,` `,a.installedCount,` installed`]})]}):(0,J.jsx)(`span`,{className:q.capacityMuted,children:`The local runtime did not answer this probe, so headroom is unknown — not zero, and not full.`})})]}),(0,J.jsxs)(`div`,{className:q.capacityFact,children:[(0,J.jsx)(`dt`,{className:q.figureLabel,children:`Agentic locally`}),(0,J.jsx)(`dd`,{children:a===null||!a.reachable?(0,J.jsx)(`span`,{className:q.capacityMuted,children:`unknown`}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`span`,{className:q.num,children:a.agenticCount}),` `,(0,J.jsxs)(`span`,{className:q.capacityMuted,children:[`of `,a.installedCount,` installed models can drive a session`,a.unknownToolCount>0?`; ${a.unknownToolCount} did not report a capability list`:``]})]})})]})]}),e.proseResets.length>0?(0,J.jsxs)(`div`,{className:q.proseResets,children:[(0,J.jsx)(`span`,{className:q.figureLabel,children:`Resets reported as text`}),(0,J.jsx)(`ul`,{className:q.noteList,children:e.proseResets.map(e=>(0,J.jsxs)(`li`,{className:q.capacityMuted,children:[e.seatLabel,` · `,e.windowLabel,` — `,e.text]},`${e.seatLabel}-${e.windowLabel}-${e.text}`))}),(0,J.jsx)(`p`,{className:q.capacityMuted,children:`Shown as the provider wrote it — no countdown.`})]}):null]})}function Vt(e){let t=e.fullest;if(t===null)return`—`;let n=`${t.exact?``:`≤`}${me(t.tokens)}`;if(t.window===null)return n;let r=t.tokens/t.window*100;return`${n} / ${F(t.window)} · ${r<=100?I(r):ce(r/100)}`}var Ht=[{key:`seat`,label:`Seat`,render:e=>(0,J.jsxs)(J.Fragment,{children:[e.label,(0,J.jsxs)(`span`,{className:q.limitWindow,children:[` · ${he[e.engine]}`,e.retired?` · no longer connected`:``]})]})},{key:`chats`,label:`Chats`,numeric:!0,render:e=>M(e.sessions)},{key:`turns`,label:`Turns`,numeric:!0,render:e=>M(e.turns)},{key:`prompt`,label:`Prompt tokens`,numeric:!0,render:e=>me(e.promptTokens)},{key:`hit`,label:`Cache hit`,numeric:!0,render:e=>e.cacheHitRatio===null?e.promptTokens>0?`none reported`:`—`:Se(e.cacheHitRatio)},{key:`compactions`,label:`Compactions`,numeric:!0,render:e=>M(e.compactions)},{key:`expansive`,label:`Expansive chats`,numeric:!0,render:e=>M(e.expansiveSessions)},{key:`fullest`,label:`Fullest context`,numeric:!0,render:e=>Vt(e)}];function Ut({rows:e,unavailableReason:t}){return(0,J.jsxs)(`section`,{className:q.panel,"aria-labelledby":`verse-usage-efficiency`,children:[(0,J.jsxs)(`div`,{className:q.panelHead,children:[(0,J.jsx)(`h3`,{id:`verse-usage-efficiency`,className:q.panelTitle,children:`Context efficiency`}),(0,J.jsx)(`p`,{className:q.panelNote,children:`Per seat, across every chat on this machine. Cache hit is the share of prompt tokens served from the provider's cache.`})]}),t===null?e.length===0?(0,J.jsx)(`p`,{className:q.muted,children:`No chats yet.`}):(0,J.jsx)(`div`,{className:q.tableScroll,children:(0,J.jsx)(v,{caption:`Context efficiency per seat: chats, turns, prompt tokens, cache-hit ratio, compactions, expansive chats and the fullest context`,columns:Ht,rows:[...e],rowKey:e=>e.seatId})}):(0,J.jsx)(`p`,{className:q.muted,children:t}),(0,J.jsx)(`p`,{className:q.sourceLine,children:`Computed in this browser from each chat's recorded totals — no extra request, no spend. “None reported” means the provider reported no cache activity, not a 0% hit rate; a figure marked ≤ is an upper bound. Compactions are counted from Verse 3.9 on; earlier ones were not recorded.`})]})}function Wt(e){switch(e){case`ok`:return`success`;case`warn`:return`warning`;case`over`:return`danger`;case`unlimited`:return`neutral`;default:return`unknown`}}function Gt({rows:e,capsNote:t}){return(0,J.jsxs)(`section`,{className:q.panel,"aria-labelledby":`verse-usage-limits`,children:[(0,J.jsxs)(`div`,{className:q.panelHead,children:[(0,J.jsx)(`h3`,{id:`verse-usage-limits`,className:q.panelTitle,children:`Dispatch limits`}),(0,J.jsx)(`p`,{className:q.panelNote,children:`Calls recorded in the dispatch ledger against each configured foundry cap. This is not subscription utilization.`})]}),t?(0,J.jsx)(`p`,{className:q.muted,children:t}):null,e.length===0?(0,J.jsx)(`p`,{className:q.muted,children:`No foundry limits are configured, so dispatches are uncapped on this machine. Nothing here is being throttled.`}):(0,J.jsx)(`div`,{className:q.limitList,children:e.map(e=>(0,J.jsxs)(`div`,{className:q.limitRow,children:[(0,J.jsxs)(`span`,{className:q.limitName,children:[e.backend,(0,J.jsxs)(`span`,{className:q.limitWindow,children:[`per `,e.window]}),(0,J.jsx)(f,{status:e.standing,tone:Wt(e.standing),children:e.standing===`unknown`?`no reading`:e.standing})]}),e.usedPct===null?(0,J.jsx)(`hr`,{className:q.unknownRule,"aria-hidden":`true`}):(0,J.jsx)(`div`,{className:q.track,"data-tone":e.usedPct>=100?`danger`:e.usedPct>=80?`warn`:`ok`,role:`meter`,"aria-label":`${e.backend} dispatches against its ${e.window} cap`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(e.usedPct),children:(0,J.jsx)(`div`,{className:q.fill,style:{width:`${Math.round(e.usedPct)}%`}})}),(0,J.jsx)(`span`,{className:q.limitValue,children:e.used===null?`configured ${M(e.max)}`:`${M(e.used)} / ${M(e.max)}`})]},e.id))})]})}var Kt=`Cost is ESTIMATED from a static price table in this repo, not billed. It will not match a provider invoice.`,qt=`Codex reports cacheRead and cacheWrite as a hardcoded 0 upstream, so any window containing Codex traffic understates cache activity — its cache economics are not comparable to Claude’s.`,Jt=`A flat heuristic of $3 per 1M local tokens, not a quote and not a measured price.`,Yt=`Fewer than two days in this window carry a rollup row, which is not a trend.`,Xt=`The daily rollup carries no per-engine or local/cloud columns, and the only tier split available is a single aggregate with no dates on it. Apportioning the daily totals by that aggregate’s ratio would invent a shape nobody measured, so no per-day split is drawn — the aggregate below is the real figure.`;function Zt(e,t){return e.reduce((e,n)=>e+(t(n)===null?0:1),0)}function X(e,t){return e.map(e=>({x:P(e.day),y:t(e)}))}function Qt(e){return e.reduce((e,t)=>({tokensIn:e.tokensIn+t.tokensIn,tokensOut:e.tokensOut+t.tokensOut,estCostUsd:e.estCostUsd+t.estCostUsd,sessions:e.sessions+t.sessions,dayCount:e.dayCount+1}),{tokensIn:0,tokensOut:0,estCostUsd:0,sessions:0,dayCount:0})}function $t(e){return e?e.days.length<2?{available:!1,reason:Yt}:{available:!0,days:e.days,series:[{id:`tokensIn`,label:`Tokens in`,points:X(e.days,e=>e.tokensIn)},{id:`tokensOut`,label:`Tokens out`,points:X(e.days,e=>e.tokensOut)}]}:{available:!1,reason:`No usage series has been loaded.`}}function en(e){return e?e.days.length<2?{available:!1,reason:Yt}:{available:!0,days:e.days,series:[{id:`estCostUsd`,label:`Estimated spend`,points:X(e.days,e=>e.estCostUsd)}]}:{available:!1,reason:`No usage series has been loaded.`}}function tn(e){if(!e)return{available:!1,reason:`No usage series has been loaded.`};let t=Zt(e.days,e=>e.cacheHitRate);return t===0?{available:!1,reason:`No cache data in this window.`}:t<2?{available:!1,reason:`Only ${t} day in this window reported a cache hit rate, which is not a trend.`}:{available:!0,days:e.days,series:[{id:`cacheHitRate`,label:`Cache hit rate`,points:X(e.days,e=>e.cacheHitRate)}]}}function nn(e){return e?Zt(e.days,e=>e.cacheRead)+Zt(e.days,e=>e.cacheWrite)===0?{available:!1,reason:`No cache data in this window.`}:e.days.length<2?{available:!1,reason:Yt}:{available:!0,days:e.days,series:[{id:`cacheRead`,label:`Cache read`,points:X(e.days,e=>e.cacheRead)},{id:`cacheWrite`,label:`Cache write`,points:X(e.days,e=>e.cacheWrite)}]}:{available:!1,reason:`No usage series has been loaded.`}}function rn(e){if(e.length===0)return{tokensInPerDay:null,tokensOutPerDay:null,estCostUsdPerDay:null,peakCostDay:null};let t=Qt(e),n=e.reduce((e,t)=>t.estCostUsd>e.estCostUsd?t:e);return{tokensInPerDay:t.tokensIn/e.length,tokensOutPerDay:t.tokensOut/e.length,estCostUsdPerDay:t.estCostUsd/e.length,peakCostDay:{day:n.day,usd:n.estCostUsd}}}function an(e,t){if(!(!e||e.days.length<2))return e.days.map(t)}var Z={"7d":`Last 7 days`,"30d":`Last 30 days`},on=k(0),sn=k(1),cn=[{key:`provider`,label:`Provider`,render:e=>e.provider},{key:`tier`,label:`Tier`,render:e=>e.tier},{key:`tokens`,label:`Tokens`,numeric:!0,render:e=>M(e.tokens)},{key:`cost`,label:`Cost`,numeric:!0,render:e=>A(e.costUsd)},{key:`share`,label:`Share`,numeric:!0,render:e=>I(e.sharePct)}];function ln({label:e,tokens:t,total:n,color:r}){let i=n>0?t/n*100:0,a=Math.round(i);return(0,J.jsxs)(`div`,{className:q.splitRow,children:[(0,J.jsx)(`span`,{children:e}),(0,J.jsx)(`div`,{className:q.splitBar,role:`meter`,"aria-label":`${e} share of tokens`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":a,children:(0,J.jsx)(`div`,{className:q.splitFill,style:{width:`${a}%`,"--split-color":r}})}),(0,J.jsxs)(`span`,{className:q.num,children:[M(t),` · `,I(i)]})]})}function un({split:e,savingsNote:t}){let n=e.localTokens+e.cloudTokens,r=e.byProvider.map(e=>({label:e.provider,value:e.tokens}));return(0,J.jsxs)(`section`,{className:q.panel,"aria-labelledby":`verse-usage-split`,children:[(0,J.jsx)(`div`,{className:q.panelHead,children:(0,J.jsxs)(`h3`,{id:`verse-usage-split`,className:q.panelTitle,children:[`Local vs cloud · `,e.window]})}),(0,J.jsxs)(`div`,{className:q.tiles,children:[(0,J.jsx)(N,{label:`Not spent (ran locally)`,value:(0,J.jsx)(`span`,{className:q.num,children:A(e.localSavingsUsd)}),caption:`Estimated cloud list price of the ${e.window} local tokens. ${t??`A heuristic, not a quote.`}`}),(0,J.jsx)(N,{label:`Estimated cloud spend · ${e.window}`,value:(0,J.jsx)(`span`,{className:q.num,children:A(e.cloudCostUsd)}),caption:Kt}),(0,J.jsx)(N,{label:`Tokens · ${e.window}`,value:(0,J.jsx)(`span`,{className:q.num,children:M(e.totalTokens)}),caption:`Local and cloud combined`})]}),e.empty?(0,J.jsx)(`p`,{className:q.muted,style:{marginTop:`var(--space-4)`},children:`No provider activity recorded in this window. Choose a longer window, or run a chat turn and it appears here.`}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:q.split,style:{marginTop:`var(--space-4)`},children:[(0,J.jsx)(ln,{label:`Local`,tokens:e.localTokens,total:n,color:on}),(0,J.jsx)(ln,{label:`Cloud`,tokens:e.cloudTokens,total:n,color:sn})]}),(0,J.jsx)(C,{items:[{label:`Local`,color:on,kind:`swatch`},{label:`Cloud`,color:sn,kind:`swatch`}]}),(0,J.jsx)(S,{title:`Tokens by provider`,description:`Share of the ${e.window} window`,empty:r.length===0,emptyMessage:`No provider rows in this window.`,table:(0,J.jsx)(v,{caption:`Tokens and cost by provider`,columns:cn,rows:e.byProvider,rowKey:e=>e.provider}),children:(0,J.jsx)(w,{data:r,orientation:`horizontal`,height:Math.max(120,r.length*34),formatValue:e=>M(e),ariaLabel:`Tokens by provider over the ${e.window} window`})})]})]})}var dn={available:`success`,credits:`success`,tight:`warning`,exhausted:`danger`,"signed-out":`warning`,"probe-unsupported":`warning`,unknown:`unknown`},fn=k(0),pn=k(5);function mn(e,t=5e3){let[n,r]=(0,H.useState)(()=>Date.now());return(0,H.useEffect)(()=>{if(!e)return;let n=setInterval(()=>r(Date.now()),t);return()=>clearInterval(n)},[e,t]),n}function hn({row:e}){let t=e.resident?e.expiresAtMs:null,n=mn(t!==null);return t===null?`—`:it(t-n)}function gn({row:e}){return e.tools===`unknown`?(0,J.jsx)(d,{quality:U(`The runtime did not report a capability list for this model.`),label:`${e.displayName} tool support`,children:null}):e.tools===`supported`?(0,J.jsx)(f,{status:`agentic`,tone:`success`,children:`tools`}):(0,J.jsx)(f,{status:`no-tools`,tone:`danger`,children:`no tools`})}function _n({row:e}){if(e.sizeBytes===null)return(0,J.jsx)(`span`,{children:`—`});let t=e.resident?`Resident size reported by the runtime.`:`On-disk size; not in memory.`;return(0,J.jsxs)(`span`,{title:t,children:[V(e.sizeBytes),e.resident&&e.memoryPct!==null?` · ${I(e.memoryPct)} of machine`:``]})}function vn({row:e}){if(!e.resident)return(0,J.jsx)(`span`,{className:q.capacityMuted,children:`not resident`});if(e.gpuPct===null)return(0,J.jsx)(d,{quality:U(`The runtime reported no VRAM split for this resident model.`),label:`${e.displayName} placement`,children:null});let t=Math.round(e.gpuPct);return(0,J.jsxs)(`span`,{className:q.placement,children:[(0,J.jsxs)(`span`,{className:q.placementBar,role:`img`,"aria-label":`${e.displayName}: ${I(e.gpuPct)} of resident bytes on GPU, ${I(100-e.gpuPct)} on CPU`,children:[(0,J.jsx)(`span`,{className:q.placementGpu,style:{width:`${t}%`,"--split-color":fn}}),(0,J.jsx)(`span`,{className:q.placementCpu,style:{width:`${100-t}%`,"--split-color":pn}})]}),(0,J.jsx)(`span`,{className:q.placementText,children:e.placement===`unknown`?`${I(e.gpuPct)} GPU`:`${e.placement} · ${I(e.gpuPct)} GPU`})]})}function yn({row:e}){return e.nativeContext===null&&e.configuredContext===null?(0,J.jsx)(`span`,{children:`—`}):e.contextTruncated?(0,J.jsx)(`span`,{title:`Native context is ${F(e.nativeContext)}; Ashlr runs this seat at ${F(e.configuredContext)}.`,children:`${F(e.configuredContext)} of ${F(e.nativeContext)}`}):(0,J.jsx)(`span`,{children:F(e.nativeContext??e.configuredContext)})}function bn({row:e}){return(0,J.jsxs)(`span`,{title:e.name,children:[e.displayName,e.nameDetail?(0,J.jsxs)(`span`,{className:q.muted,children:[` `,e.nameDetail]}):null]})}var xn=[{key:`name`,label:`Model`,render:e=>(0,J.jsx)(bn,{row:e})},{key:`state`,label:`State`,render:e=>e.resident?(0,J.jsx)(f,{status:`resident`,tone:`success`,children:`resident`}):(0,J.jsx)(f,{status:`installed`,tone:`neutral`,children:`installed`})},{key:`tools`,label:`Agentic`,render:e=>(0,J.jsx)(gn,{row:e})},{key:`size`,label:`Size`,numeric:!0,render:e=>(0,J.jsx)(_n,{row:e})},{key:`placement`,label:`Placement`,render:e=>(0,J.jsx)(vn,{row:e})},{key:`params`,label:`Params`,numeric:!0,render:e=>e.parameterSize??`—`},{key:`quant`,label:`Quant`,render:e=>e.quantization??`—`},{key:`context`,label:`Context`,numeric:!0,render:e=>(0,J.jsx)(yn,{row:e})},{key:`keepalive`,label:`Keep-alive`,numeric:!0,render:e=>(0,J.jsx)(hn,{row:e})}];function Sn({staleness:e}){return e.stale?(0,J.jsxs)(`p`,{className:q.staleNotice,role:`status`,children:[(0,J.jsx)(`span`,{className:q.staleFlag,children:`last known-good`}),` Local figures are from`,` `,at(e.staleForMs),` ago`,e.runtimes.length>0?` (${e.runtimes.join(`, `)})`:``,` — the runtime didn't answer in time.`]}):null}function Cn({card:e,staleness:t}){let n={"--engine-color":e.color},r=e.usedPct===null?null:Math.round(e.usedPct),i=e.usedPct===null?null:I(e.usedPct);return(0,J.jsxs)(`article`,{className:q.card,style:n,"aria-label":`Local usage`,children:[(0,J.jsxs)(`div`,{className:q.cardHead,children:[(0,J.jsx)(`span`,{className:q.cardLabel,children:`Local`}),(0,J.jsx)(f,{status:e.verdict.state,tone:dn[e.verdict.state],children:e.verdict.headline})]}),(0,J.jsxs)(`div`,{className:q.cardMeta,children:[(0,J.jsx)(`span`,{children:`Ollama`}),(0,J.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,J.jsx)(`span`,{children:`no subscription, no quota, no bill`})]}),t?.stale?(0,J.jsx)(Sn,{staleness:t}):null,(0,J.jsx)(`p`,{className:q.verdictDetail,children:e.verdict.detail}),e.verdict.code?(0,J.jsxs)(`p`,{className:q.sourceLine,children:[`Probe reason `,(0,J.jsx)(`code`,{className:q.commandInline,children:e.verdict.code})]}):null,(0,J.jsx)(`span`,{className:q.bindingLabel,children:`Memory budget`}),r===null?(0,J.jsxs)(`div`,{className:q.windowBlockLead,children:[(0,J.jsxs)(`div`,{className:q.windowHead,children:[(0,J.jsx)(`span`,{children:`Resident against machine memory`}),(0,J.jsx)(d,{quality:U(`Resident size or machine memory not reported.`),label:`local memory budget`,children:null})]}),(0,J.jsx)(`hr`,{className:q.unknownRule,"aria-hidden":`true`})]}):(0,J.jsxs)(`div`,{className:q.windowBlockLead,children:[(0,J.jsxs)(`div`,{className:q.windowHead,children:[(0,J.jsx)(`span`,{children:`Resident against machine memory`}),(0,J.jsx)(`span`,{className:q.windowPct,children:i})]}),(0,J.jsx)(`div`,{className:q.track,"data-tone":e.tone,role:`meter`,"aria-label":`Local resident models against machine memory budget`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":r,"aria-valuetext":`${V(e.residentBytes)} of ${V(e.memoryBudgetBytes)} resident`,children:(0,J.jsx)(`div`,{className:q.fill,style:{width:`${r}%`}})}),(0,J.jsxs)(`p`,{className:q.windowReset,children:[V(e.residentBytes),` of `,V(e.memoryBudgetBytes)]})]}),(0,J.jsxs)(`p`,{className:q.sourceLine,children:[e.residentCount,` resident · `,e.installedCount,` installed`]})]})}function wn({serving:e}){if(e===void 0)return(0,J.jsx)(`p`,{className:q.sourceLine,children:`How many local agents can run at once is set by the serving runtime — see Autonomy.`});let t=Je(e);return(0,J.jsxs)(`p`,{className:q.sourceLine,children:[(0,J.jsxs)(`strong`,{children:[t.headline,`.`]}),` `,t.detail]})}function Tn({view:e,serving:t}){let[n,r]=(0,H.useState)(!1),i=(0,H.useMemo)(()=>rt(e?.runtimes??[]),[e]),a=(0,H.useMemo)(()=>n?(e?.rows??[]).filter(e=>e.tools!==`unsupported`):e?.rows??[],[e,n]),o=(0,H.useMemo)(()=>a.filter(e=>e.resident&&e.sizeBytes!==null),[a]);return(0,J.jsxs)(`section`,{className:q.panel,"aria-labelledby":`verse-usage-local`,children:[(0,J.jsxs)(`div`,{className:q.panelHead,children:[(0,J.jsx)(`h3`,{id:`verse-usage-local`,className:q.panelTitle,children:`Local availability`}),(0,J.jsx)(`p`,{className:q.panelNote,children:`Resident models answer immediately. Models without tool support can't drive a session.`})]}),(0,J.jsx)(wn,{serving:t}),(0,J.jsx)(Sn,{staleness:i}),e===null?(0,J.jsxs)(`p`,{className:q.muted,children:[`No local runtime answered. Start Ollama (`,(0,J.jsx)(`code`,{className:q.commandInline,children:`ollama serve`}),`) or llama-server.`]}):e.reachable?e.rows.length===0?(0,J.jsx)(`p`,{className:q.muted,children:`No models installed. Pull one to give Ashlr a local seat.`}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:q.tiles,children:[(0,J.jsx)(En,{label:`Resident now`,value:String(e.rows.filter(e=>e.resident).length),caption:e.residentBytes===null?`total unknown — a model reported no size`:`${V(e.residentBytes)} in memory`}),(0,J.jsx)(En,{label:`Installed`,value:String(e.rows.length),caption:`On disk; the first turn on one of these pays a load`}),(0,J.jsx)(En,{label:`Can drive a session`,value:String(e.agenticCount),caption:e.unknownToolCount>0?`${e.nonAgenticCount} cannot; ${e.unknownToolCount} did not report a capability list`:`${e.nonAgenticCount} cannot drive one`}),(0,J.jsx)(En,{label:`Machine memory`,value:e.memoryBudgetBytes===null?`unknown`:V(e.memoryBudgetBytes),caption:e.freeMemoryBytes===null?`free memory not reported`:`${V(e.freeMemoryBytes)} reported free by the OS`})]}),(0,J.jsxs)(`div`,{className:q.panelActions,children:[(0,J.jsx)(`button`,{type:`button`,className:q.segment,"aria-pressed":n,onClick:()=>r(e=>!e),children:`Hide models that cannot drive a session`}),e.nonAgenticCount>0?(0,J.jsxs)(`span`,{className:q.capacityMuted,children:[e.nonAgenticCount,` of `,e.rows.length,` installed models cannot drive an agentic session.`]}):null]}),(0,J.jsx)(`div`,{className:q.tableScroll,children:(0,J.jsx)(v,{caption:`Local models: residency, tool support, size, placement, parameters, quantization, context and keep-alive`,columns:xn,rows:a,rowKey:e=>`${e.runtime??`runtime`}:${e.name}`})}),(0,J.jsx)(`div`,{className:q.charts,children:(0,J.jsx)(S,{title:`Resident memory by model`,description:`What is actually in memory right now`,caveat:`Resident models with a reported size.`,empty:o.length===0,emptyMessage:`No models in memory.`,table:(0,J.jsx)(v,{caption:`Resident size per model`,columns:[{key:`name`,label:`Model`,render:e=>(0,J.jsx)(bn,{row:e})},{key:`size`,label:`Resident`,numeric:!0,render:e=>V(e.sizeBytes)}],rows:o,rowKey:e=>e.name}),children:(0,J.jsx)(w,{data:o.map(e=>({label:e.displayName,value:e.sizeBytes})),orientation:`horizontal`,height:Math.max(120,o.length*34),formatValue:e=>V(e),ariaLabel:`Resident memory by local model`})})}),e.runtimes.length>0?(0,J.jsx)(`ul`,{className:q.noteList,children:e.runtimes.map(e=>(0,J.jsxs)(`li`,{className:q.capacityMuted,children:[e.runtime,`:`,` `,e.reachable?`${e.modelCount} model${e.modelCount===1?``:`s`} reported`:`did not answer`,e.stale?` · retained reading, ${at(e.staleForMs)} old`:``,e.reason?` · `:``,e.reason?(0,J.jsx)(`code`,{className:q.commandInline,children:e.reason}):null]},e.runtime))}):null,(0,J.jsxs)(`p`,{className:q.sourceLine,title:[...e.notes,`Sizes and GPU share come from the runtime’s own report.`].join(`
2
+ `),children:[M(e.rows.length),` models installed · sizes from the runtime`]})]}):(0,J.jsxs)(`p`,{className:q.muted,children:[`No local runtime answered. Start Ollama (`,(0,J.jsx)(`code`,{className:q.commandInline,children:`ollama serve`}),`) or llama-server.`,e.reason?(0,J.jsxs)(J.Fragment,{children:[` `,`Probe reason `,(0,J.jsx)(`code`,{className:q.commandInline,children:e.reason}),`.`]}):null]})]})}function En({label:e,value:t,caption:n}){return(0,J.jsxs)(`div`,{className:q.figureTile,children:[(0,J.jsx)(`span`,{className:q.figureLabel,children:e}),(0,J.jsx)(`span`,{className:q.figureBig,children:t}),(0,J.jsx)(`span`,{className:q.figureCaption,children:n})]})}var Dn=[`7d`,`30d`],On=[{key:`day`,label:`Day`,render:e=>j(e.day)},{key:`in`,label:`Tokens in`,numeric:!0,render:e=>M(e.tokensIn)},{key:`out`,label:`Tokens out`,numeric:!0,render:e=>M(e.tokensOut)},{key:`sessions`,label:`Sessions`,numeric:!0,render:e=>M(e.sessions)}],kn=[{key:`day`,label:`Day`,render:e=>j(e.day)},{key:`cost`,label:`Estimated spend`,numeric:!0,render:e=>A(e.estCostUsd)}],An=[{key:`day`,label:`Day`,render:e=>j(e.day)},{key:`read`,label:`Cache read`,numeric:!0,render:e=>e.cacheRead===null?`not reported`:M(e.cacheRead)},{key:`write`,label:`Cache write`,numeric:!0,render:e=>e.cacheWrite===null?`not reported`:M(e.cacheWrite)}],jn=[{key:`day`,label:`Day`,render:e=>j(e.day)},{key:`rate`,label:`Cache hit rate`,numeric:!0,render:e=>e.cacheHitRate===null?`not reported`:ve(e.cacheHitRate)},{key:`read`,label:`Cache read`,numeric:!0,render:e=>e.cacheRead===null?`not reported`:M(e.cacheRead)}];function Mn({series:e,window:t,onWindowChange:n,unavailableReason:r,loading:i}){let a=e?Qt(e.days):null,o=e?rn(e.days):null,s=$t(e),c=en(e),l=tn(e),u=nn(e);return(0,J.jsxs)(`section`,{className:q.panel,"aria-labelledby":`verse-usage-series`,children:[(0,J.jsxs)(`div`,{className:q.panelHead,children:[(0,J.jsx)(`h3`,{id:`verse-usage-series`,className:q.panelTitle,children:`Token output and spend`}),(0,J.jsx)(`div`,{className:q.segmented,role:`group`,"aria-label":`Series window`,children:Dn.map(e=>(0,J.jsx)(`button`,{type:`button`,className:q.segment,"aria-pressed":e===t,onClick:()=>n(e),children:e},e))})]}),r?(0,J.jsxs)(`p`,{className:q.muted,children:[r,` No token or spend series can be drawn, and none is invented in its place.`]}):i&&e===null?(0,J.jsxs)(`div`,{role:`status`,"aria-busy":`true`,"data-series-loading":``,children:[(0,J.jsxs)(`span`,{className:`visually-hidden`,children:[`Loading the `,Z[t].toLowerCase(),` rollup…`]}),(0,J.jsx)(`div`,{className:q.tiles,children:[0,1,2,3].map(e=>(0,J.jsx)(ue,{},e))}),(0,J.jsx)(`div`,{className:q.charts,children:(0,J.jsx)(te,{shape:`line`,height:200})})]}):e===null||e.days.length===0?(0,J.jsxs)(`p`,{className:q.muted,children:[`No days in the `,Z[t].toLowerCase(),` rollup.`]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:q.tiles,children:[(0,J.jsx)(N,{label:`Tokens in · ${t}`,value:(0,J.jsx)(`span`,{className:q.num,children:M(a?.tokensIn??0)}),caption:`Across ${a?.dayCount??0} recorded days`,trend:an(e,e=>e.tokensIn),trendLabel:`Tokens in per day`}),(0,J.jsx)(N,{label:`Tokens out · ${t}`,value:(0,J.jsx)(`span`,{className:q.num,children:M(a?.tokensOut??0)}),caption:`What the models actually produced`,trend:an(e,e=>e.tokensOut),trendLabel:`Tokens out per day`}),(0,J.jsx)(N,{label:`Estimated spend · ${t}`,value:(0,J.jsx)(`span`,{className:q.num,children:A(a?.estCostUsd??0)}),caption:`Estimated from a static price table — not billed`,trend:an(e,e=>e.estCostUsd),trendLabel:`Estimated spend per day`}),(0,J.jsx)(N,{label:`Sessions · ${t}`,value:(0,J.jsx)(`span`,{className:q.num,children:M(a?.sessions??0)}),caption:`Rollup rows, not billed calls`,trend:an(e,e=>e.sessions),trendLabel:`Sessions per day`}),(0,J.jsx)(N,{label:`Estimated spend per active day`,value:(0,J.jsx)(`span`,{className:q.num,children:o?.estCostUsdPerDay===null||o===null?`unknown`:A(o.estCostUsdPerDay)}),caption:`Across the ${a?.dayCount??0} days that carry a rollup row — not the ${t} calendar span`}),(0,J.jsx)(N,{label:`Heaviest day`,value:(0,J.jsx)(`span`,{className:q.num,children:o?.peakCostDay?A(o.peakCostDay.usd):`unknown`}),caption:o?.peakCostDay?`${j(o.peakCostDay.day)} — estimated, not billed`:`No day in this window carries a cost row.`})]}),(0,J.jsxs)(`div`,{className:q.charts,children:[(0,J.jsx)(S,{title:`Tokens per day`,description:Z[t],empty:!s.available,emptyMessage:s.available?``:s.reason,table:(0,J.jsx)(v,{caption:`Tokens in and out per day`,columns:On,rows:e.days,rowKey:e=>e.day}),children:s.available?(0,J.jsx)(T,{series:s.series,area:!0,formatY:e=>M(e),formatTooltip:le,ariaLabel:`Tokens in and out per day over ${Z[t].toLowerCase()}`}):null}),(0,J.jsx)(S,{title:`Estimated spend per day`,description:Z[t],caveat:Kt,empty:!c.available,emptyMessage:c.available?``:c.reason,table:(0,J.jsx)(v,{caption:`Estimated spend per day`,columns:kn,rows:e.days,rowKey:e=>e.day}),children:c.available?(0,J.jsx)(T,{series:c.series,area:!0,formatY:e=>A(e),ariaLabel:`Estimated spend per day over ${Z[t].toLowerCase()}`}):null}),(0,J.jsx)(S,{title:`Cache hit rate`,description:Z[t],caveat:qt,empty:!l.available,emptyMessage:l.available?``:l.reason,table:l.available?(0,J.jsx)(v,{caption:`Cache hit rate per day`,columns:jn,rows:e.days,rowKey:e=>e.day}):void 0,children:l.available?(0,J.jsx)(T,{series:l.series,formatY:e=>ce(e),formatTooltip:e=>ce(e,1),ariaLabel:`Cache hit rate per day over ${Z[t].toLowerCase()}`}):null}),(0,J.jsx)(S,{title:`Cache read and write tokens`,description:Z[t],caveat:qt,empty:!u.available,emptyMessage:u.available?``:u.reason,table:u.available?(0,J.jsx)(v,{caption:`Cache read and write tokens per day`,columns:An,rows:e.days,rowKey:e=>e.day}):void 0,children:u.available?(0,J.jsx)(T,{series:u.series,formatY:e=>M(e),formatTooltip:le,ariaLabel:`Cache read and write tokens per day over ${Z[t].toLowerCase()}`}):null}),(0,J.jsx)(S,{title:`Local vs cloud per day`,description:Z[t],empty:!0,emptyMessage:Xt,children:null})]}),e.caveats.length>0?(0,J.jsx)(`ul`,{className:q.noteList,children:e.caveats.map(e=>(0,J.jsx)(`li`,{className:q.capacityMuted,children:e},e))}):null]})]})}var Nn=[{key:`day`,label:`Day`,render:e=>j(e.day)},{key:`usd`,label:`Spend`,numeric:!0,render:e=>e.usd===null?`no tick retained`:A(e.usd)}];function Pn({series:e,todaySpentUsd:t,todaySpentDate:n,dailyBudgetUsd:r,showSeries:i=!0}){let a=n!==null&&!_e(n),o=a?null:t,s=a?`Nothing recorded today — the last ledger day is ${j(n)}`:r===null?`Configured daily budget unavailable`:r===0?`Daily budget is 0 — the loop is stopped`:`of a ${A(r)} daily budget`;return(0,J.jsxs)(`section`,{className:q.panel,"aria-labelledby":`verse-usage-spend`,children:[(0,J.jsx)(`div`,{className:q.panelHead,children:(0,J.jsx)(`h3`,{id:`verse-usage-spend`,className:q.panelTitle,children:`Spend`})}),(0,J.jsx)(`div`,{className:q.tiles,children:(0,J.jsx)(N,{label:`Spend today`,value:(0,J.jsx)(`span`,{className:q.num,children:o===null?`unknown`:A(o)}),caption:s})}),i?(0,J.jsx)(`div`,{style:{marginTop:`var(--space-4)`},children:e.available?(0,J.jsx)(S,{title:`Spend per day`,description:`Autonomous loop, from the daemon tick ledger`,caveat:e.caveat,table:(0,J.jsx)(v,{caption:`Spend per day from the daemon tick ledger`,columns:Nn,rows:e.days,rowKey:e=>e.day}),children:(0,J.jsx)(T,{series:[{id:`spend`,label:`Spend`,points:e.days.map(e=>({x:P(e.day),y:e.usd}))}],area:!0,formatY:e=>A(e),ariaLabel:`Autonomous loop spend per day`})}):(0,J.jsx)(S,{title:`Spend per day`,empty:!0,emptyMessage:e.reason,children:null})}):(0,J.jsx)(`p`,{className:q.sourceLine,children:`Per-day spend is charted above from the full usage rollup. The daemon tick ledger is not drawn again here.`})]})}function Fn({now:e=Date.now()}){let t=s(He,{freshMs:15e3}),n=o(He);de(n,Ve);let r=Ge();if(!t.data||!t.data.available)return null;let i=t.data.value,a=i?.budget??null,c=a?Re(a):null,l=i?ze(i.seat):null,u=a?Fe(a.canLaunch,`The cloud budget does not allow another launch right now.`):null;return(0,J.jsxs)(`section`,{className:q.panel,"aria-labelledby":`verse-usage-cloud-credits`,children:[(0,J.jsxs)(`div`,{className:q.panelHead,children:[(0,J.jsx)(`h3`,{id:`verse-usage-cloud-credits`,className:q.panelTitle,children:`Cloud credits`}),(0,J.jsx)(`p`,{className:q.panelNote,children:`What Claude Code cloud sessions launched by Verse have cost, as an estimate, and the limits Verse keeps them inside.`})]}),!a||!c?(0,J.jsx)(`p`,{className:z.muted,children:t.data.reason??`The cloud lane did not answer.`}):(0,J.jsxs)(`div`,{className:z.body,children:[(0,J.jsx)(Ke,{actions:r}),l?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`p`,{className:z.standing,title:Ie(a.estimatedRemainingUsd),children:[(0,J.jsx)(f,{status:`not-set-up`,tone:`warning`,children:Le}),(0,J.jsxs)(`span`,{className:z.muted,children:[Ne(a.estimatedRemainingUsd),` · estimate`]})]}),(0,J.jsx)(`p`,{className:z.notice,"data-tone":`warning`,role:`note`,children:l})]}):(0,J.jsx)(je,{value:c.value,max:c.max,label:`Credits remaining`,valueText:c.text,tone:c.tone,"aria-label":`Estimated cloud credits remaining: ${c.text}, ${c.usedText}`}),(0,J.jsxs)(`p`,{className:z.estimateNote,children:[be(a.estimateNote,e),` `,(0,J.jsxs)(`a`,{className:z.link,href:Me,target:`_blank`,rel:`noreferrer noopener`,"aria-label":`Check the real balance on claude.ai`,children:[`Check usage on claude.ai `,(0,J.jsx)(Ae,{width:12,height:12,"aria-hidden":`true`})]})]}),c.warning&&!l?(0,J.jsx)(`p`,{className:z.notice,"data-tone":`warning`,role:`note`,children:c.warning}):null,(0,J.jsx)(`p`,{className:z.facts,children:Pe(a,e)}),u?(0,J.jsxs)(`p`,{className:z.notice,"data-tone":`warning`,role:`note`,children:[`New launches are paused: `,u]}):null,(0,J.jsx)(ft,{idPrefix:`usage-cloud-budget`,budget:a.budget,busy:r.busy,disabled:r.readOnly,onSave:e=>r.act(()=>Be(e),`Change the cloud budget.`)})]}),r.dialogs]})}var In=3e5,Ln={};function Rn(e){let t=s(Ue,{freshMs:6e4}),n=o(Ue);de(n,In);let a=(0,H.useSyncExternalStore)((0,H.useCallback)(e=>i(`verse-bootstrap`,e),[]),()=>r(`verse-bootstrap`),()=>r(`verse-bootstrap`)).data?.seats??null,[c,l]=(0,H.useState)(Ln);(0,H.useEffect)(()=>{e&&(Ln=lt(Ln,e),l(Ln))},[e]);let u=t.data?.value??null,d=(0,H.useMemo)(()=>dt(c,u),[c,u]);return(0,H.useMemo)(()=>st(e,d.readings,a,d.recorded),[e,d,a])}var zn={session:`5-hour`,weekly:`weekly`};function Bn(){return(0,J.jsx)(`svg`,{width:`1.6em`,height:`0.8em`,viewBox:`0 0 24 12`,fill:`none`,stroke:`currentColor`,strokeWidth:1.6,strokeLinecap:`round`,focusable:`false`,"aria-hidden":`true`,children:(0,J.jsx)(`path`,{d:`M6 2.5a3.5 3.5 0 1 0 0 7c2.5 0 3.5-2 6-3.5s3.5-3.5 6-3.5a3.5 3.5 0 1 1 0 7c-2.5 0-3.5-2-6-3.5S8.5 2.5 6 2.5Z`})})}var Vn=16,Hn=14,Un=160,Q=e=>`${Math.round(e)}%`,Wn=h(0,100,4),Gn=.05,Kn=`Lines without recorded history start when Verse opened.`;function qn(e,t,n){if(e.recorded&&t!==null)return`No readings before ${n(t)}.`}function Jn({title:e,description:t,caveat:n,points:r,from:i,to:a,line:o,width:s,formatTime:c,ariaLabel:l}){let u=(0,H.useRef)(null),d=ie(u,s),f=re(),p=se((0,H.useId)(),`remaining`),h=r.filter(e=>e.t>=i&&e.t<=a).sort((e,t)=>e.t-t.t),te=y(),S=ee(Wn.map(e=>Q(e)),28,56,te),C=Math.max(40,d-S-Hn),w=ne(i,a,S,S+C),T=ne(0,100,134,Vn),E=e=>T(Math.min(100,Math.max(0,e))),O=ae(h.map(e=>({x:e.t,y:e.remaining}))).map(e=>e.map(e=>({x:w(e.x),y:E(e.y)}))),k=[...h].reverse().find(e=>e.remaining!==null)??null;return(0,J.jsx)(b,{title:e,description:t,caveat:n,status:k?{kind:`ready`}:{kind:`empty`,message:`No reading inside this window.`},skeleton:`line`,skeletonHeight:Un,table:(0,J.jsx)(v,{caption:e,columns:[{key:`t`,label:`When`,render:e=>c(e.t)},{key:`r`,label:`Remaining`,numeric:!0,render:e=>e.remaining===null?`—`:Q(e.remaining)}],rows:h,rowKey:e=>String(e.t)}),children:(0,J.jsx)(`div`,{ref:u,className:_.plotWrap,"data-motion":f,children:(0,J.jsxs)(`svg`,{className:_.svg,width:d,height:Un,viewBox:`0 0 ${d} ${Un}`,role:`img`,"aria-label":l,children:[(0,J.jsx)(`defs`,{children:(0,J.jsx)(g,{id:p,color:D,top:Vn,bottom:134})}),o&&o.value>0?(0,J.jsx)(`rect`,{"data-role":`reserve-band`,className:`${_.reserveBand} ${_.fadeIn}`,x:S,y:E(o.value),width:C,height:Math.max(0,T(0)-E(o.value))}):null,Wn.map(e=>(0,J.jsxs)(`g`,{children:[(0,J.jsx)(`line`,{className:_.grid,x1:S,x2:S+C,y1:x(T(e)),y2:x(T(e))}),(0,J.jsx)(`text`,{className:_.tick,x:S-6,y:T(e),dy:`0.32em`,textAnchor:`end`,children:Q(e)})]},e)),(0,J.jsx)(`line`,{className:_.axis,x1:S,x2:S+C,y1:x(T(0)),y2:x(T(0))}),(0,J.jsx)(`text`,{className:_.tick,x:S,y:152,textAnchor:`start`,children:c(i)}),(0,J.jsx)(`text`,{className:_.tick,x:S+C,y:152,textAnchor:`end`,children:`Now`}),o?(0,J.jsxs)(`g`,{"data-role":`reserve`,children:[(0,J.jsx)(`line`,{className:_.reference,x1:S,x2:S+C,y1:x(T(o.value)),y2:x(T(o.value))}),(0,J.jsxs)(`text`,{"data-role":`reserve-label`,className:`${_.tick} ${_.halo}`,x:S+4,y:T(o.value)-5,textAnchor:`start`,children:[o.label,` · `,Q(o.value)]})]}):null,O.map((e,t)=>(0,J.jsxs)(`g`,{"data-role":`remaining`,children:[(0,J.jsx)(`path`,{"data-role":`area`,className:`${_.area} ${_.fadeIn}`,fill:`url(#${p})`,d:oe(e,e.map(e=>({x:e.x,y:T(0)})))}),e.length>1?(0,J.jsx)(`path`,{"data-role":`line`,className:`${_.line} ${_.draw}`,pathLength:1,stroke:D,d:m(e)}):null]},t)),k&&k.remaining!==null?(0,J.jsx)(`circle`,{className:_.marker,cx:w(k.t),cy:E(k.remaining),r:4,fill:D}):null]})})})}function Yn({burn:e,now:t,width:n}){if(e.free)return(0,J.jsxs)(`section`,{className:B.freeSeat,"aria-label":`${e.label}: free local seat`,children:[(0,J.jsxs)(`span`,{className:B.freeHead,children:[(0,J.jsx)(Ce,{engine:e.engine}),(0,J.jsx)(`span`,{className:B.freeTitle,children:e.label})]}),(0,J.jsx)(`span`,{className:B.freeValue,children:(0,J.jsx)(Bn,{})}),(0,J.jsxs)(`span`,{className:B.freeBody,children:[`Local — free, no provider window.`,!e.eligible&&e.reason?` ${e.reason}`:``]})]});let r=`${e.label}${e.window?` · ${zn[e.window]}`:``}`,i=ye(e.enabled?e.eligible?`Autonomy may use it now`:e.reason??`Held back from autonomy`:`Not used by autonomy`),a=[...e.points].reverse().find(e=>e.remaining!==null)?.remaining??null,o=(0,J.jsxs)(`section`,{className:B.freeSeat,"aria-label":r,children:[(0,J.jsxs)(`span`,{className:B.freeHead,children:[(0,J.jsx)(Ce,{engine:e.engine}),(0,J.jsx)(`span`,{className:B.freeTitle,children:e.label})]}),(0,J.jsx)(We,{tone:`unknown`,children:`No usage reading yet.`})]});if(e.window===null)return o;let s=ut[e.window],c=ct(e.window),l=e.resetText?pt(e.resetText):null,u=e.points.filter(e=>e.remaining!==null),d=u.length?Math.min(...u.map(e=>e.t)):null,f=e=>u.length<2||d===null||d-e>Gn*s;if(e.resetAt===null||e.start===null){if(a===null)return o;let p=Math.max(...u.map(e=>e.t)),m=Math.max(t,p),h=m-s,g=l??`reset time not reported`,ee=l?`Reset words couldn't be placed on a clock`:`No reset time reported`;return(0,J.jsx)(Jn,{title:r,description:`${Q(a)} left · ${g} · ${i}`,caveat:[`${ee}, so no projection.`,f(h)?qn(e,d,c):void 0].filter(Boolean).join(` `),points:e.points,from:h,to:m,line:e.line,width:n,formatTime:c,ariaLabel:`${r}: ${Q(a)} left, ${g}. ${R(i)}`})}let p=e.resetFrom===`words`&&l!==null?`${a===null?``:`${Q(a)} left · `}${l} · ${i}`:i;return(0,J.jsx)(E,{title:r,description:p,caveat:f(e.start)?qn(e,d,c):void 0,status:e.points.length===0?{kind:`empty`,message:`No reading yet in this window.`}:void 0,points:e.points,capacity:100,start:e.start,resetAt:e.resetAt,now:t,reserve:e.line??void 0,height:Un,width:n,formatValue:Q,formatTime:c})}function Xn({burns:e,now:t,compact:n}){return e.length===0?(0,J.jsx)(We,{tone:`unknown`,children:`Seat capacity unavailable.`}):(0,J.jsx)(`div`,{className:n?B.burnStrip:B.burnGrid,role:`group`,"aria-label":`Seat windows`,title:e.some(e=>e.window!==null&&!e.recorded)?Kn:void 0,children:e.map(e=>(0,J.jsx)(`div`,{className:B.burnItem,children:(0,J.jsx)(Yn,{burn:e,now:t})},e.seatId))})}function Zn({budget:e}){let t=Rn(e),{compact:n}=pe(),r=qe(3e4);return(0,J.jsx)(Xn,{burns:t,now:r,compact:n})}var Qn={five_hour:`Session · rolling 5h`,seven_day:`Week · all models`,seven_day_sonnet:`Week · Sonnet`,seven_day_opus:`Week · Opus`,seven_day_fable:`Week · Fable`,codex:`Week · Codex`,primary:`Primary window`,secondary:`Secondary window`};function $n(e){if(e.label)return e.label;let t=Qn[e.id];if(t)return t;let n=/^seven_day_(.+)$/.exec(e.id);return n?`Week · ${n[1]}`:e.id}function er(e,t){let n=L(e,t);return n===null?null:`resets ${n}`}function tr(e,t=Date.now()){let n=e.resetDescription??er(e.resetsAt,t);return{id:e.id,label:$n(e),usedPct:e.limitReached?null:e.usedPercent,tone:e.limitReached?`danger`:e.usedPercent===null?`ok`:W(e.usedPercent),resetText:n,resetsAt:e.resetsAt,limitReached:e.limitReached,measured:e.measured}}function nr(e){let t=e.windows,n=t.find(e=>e.limitReached);if(n)return n;let r=t.filter(e=>e.usedPercent!==null),i=r.length===0?null:r.reduce((e,t)=>(t.usedPercent??0)>(e.usedPercent??0)?t:e),a=e.binding;if(a){let e=t.find(e=>e.id===a.id)??null;if(e&&(a.limitReached||e.limitReached||i===null||(a.usedPercent??-1)>=(i.usedPercent??-1)))return e}return i}var rr={"connection-monitor-stopped":"Native polling stopped after a metadata sample could not confirm its process cleanup, so these readings are frozen and no new ones are being taken. Restarting `ashlr verse` begins a new collection generation.","collector-unavailable":`This server is not collecting native metadata — no live readings.`,"collector-not-running":`No account collector is running in this server, so these cards fall back to whatever shared evidence exists.`,"collector-owned":`Another Ashlr process (usually the desktop app’s Verse or the fleet daemon’s 5-minute sample) holds the metadata lease; Verse reads its shared evidence and takes over when it is released.`,"collector-start-failed":`The metadata collectors could not be started in this server, so no probe has run.`,"connection-polling-paused":`Native polling is paused because no client has asked for account data recently; it resumes on the next request.`,"connection-not-checked":`No probe has run for this account yet in this server.`,"connection-reading-expired":`The last verified window expired before another check succeeded, so no current usage reading is available.`,"baseline-historical":`Only an operator-seeded historical baseline exists for this account; it cannot establish current usage or access.`,"native-account-unavailable":`The collection owner marked this account unavailable for use. Its retained window is shown for context and cannot authorize work.`,"connection-probe-unavailable":`The probe for this account did not return a usable result, so there is no measurement to show.`,"accounts-pool-unavailable":`This accounts root has no readable pool or bindings, so there is nothing to probe.`,"accounts-collection-not-configured":`Native account collection is not configured for this accounts root.`,"usage-version-unsupported":`The usage probe is pinned to a different provider build than the one installed, so it did not run.`,"usage-account-changed":`The account behind this profile changed between reads; the reading was discarded.`,"probe-account-unavailable":`The pinned profile answered but carries no usable account identity — it is not authenticated.`,"probe-account-unsupported":`The pinned profile is authenticated by a method this probe does not accept, so no reading was taken.`,"probe-account-changed":`The account behind this pinned profile changed mid-probe, so the reading was discarded.`,"probe-account-hint-mismatch":`The pinned profile is signed in as a different account than this seat expects.`,"probe-native-unavailable":`The provider CLI for this pinned profile could not be run, so no reading was taken.`,"probe-native-exit-failed":`The provider CLI for this pinned profile exited without a usable result.`,"probe-provider-error":`The provider CLI returned an error instead of account metadata.`,"probe-protocol-unsupported":`The installed provider CLI does not speak the metadata protocol this probe requires.`,"probe-quota-invalid":`The provider returned a quota shape this probe does not recognise; no reading taken.`,"probe-timed-out":`The metadata probe for this account timed out before it returned anything.`};function ir(e,t){return e===null?t:rr[e]??t}var ar={available:0,credits:1,tight:2,exhausted:3,"signed-out":4,"probe-unsupported":5,unknown:6},or=80,sr=100;function cr(e){return e?e.unlimited?!0:e.hasCredits?e.balanceValue!==null&&e.balanceValue>0:!1:!1}function lr(e){return e.unlimited?`credits are unlimited on this plan`:`a credit balance of ${e.balance??`an unreported amount`} is still spendable`}function ur(e,t){if(e.authentication===`signed-out`||e.state===`signed-out`)return{state:`signed-out`,headline:`Signed out`,detail:ir(e.reason,`The probe reached this account’s pinned profile but it is not authenticated, so there is nothing to measure.`),code:e.reason};if(e.unsupported)return{state:`probe-unsupported`,headline:`Probe version-pinned`,detail:`The usage probe failed closed with ${e.unsupported.code}${e.unsupported.pinnedVersion?`; it is pinned to ${e.unsupported.pinnedVersion}`:``}. No window can be read until the pin is bumped.`,code:e.unsupported.code};if(e.state!==`observed`)return{state:`unknown`,headline:t===null?`No current reading`:`Last reading`,detail:t===null?`${ir(e.reason,`The latest account check did not succeed.`)} Current access and headroom are unconfirmed.`:`${ir(e.reason,`The latest account check did not succeed.`)} The window shown is a prior verified reading for context only; current access and headroom are unconfirmed.`,code:e.reason};let n=cr(e.credits);if(t===null||t.usedPercent===null&&!t.limitReached)return n&&e.credits?{state:`credits`,headline:`Usable on credits`,detail:`No window reading reached this surface, but ${lr(e.credits)}.`,code:e.reason}:{state:`unknown`,headline:`No reading`,detail:ir(e.reason,`No usage reading yet.`),code:e.reason};let r=t.usedPercent,i=t.limitReached||r!==null&&r>=sr,a=$n(t);return i?n&&e.credits?{state:`credits`,headline:`Usable on credits`,detail:`${a} is ${t.limitReached?`reported as limit reached`:`fully used`}, but ${lr(e.credits)} — credits are independent of the window, so this account is not blocked.`,code:null}:{state:`exhausted`,headline:t.limitReached?`Limit reached`:`Window exhausted`,detail:t.limitReached?`The provider flagged ${a} as rate-limited; no percentage was reported.`:`${a} is at ${I(r)} — it is the binding constraint on this account.`,code:null}:r>=or?{state:`tight`,headline:`Running tight`,detail:`${a} is the binding constraint at ${I(r)}.`,code:null}:{state:`available`,headline:`Usable now`,detail:`${a} is the binding constraint at ${I(r)}.`,code:null}}function dr(e,t=null){let n=nr(e),r=ur(e,n),i=e.provider,a=e.windows.filter(e=>e.id!==n?.id).map(e=>tr(e)),o=n?tr(n):null,s={state:e.state,authentication:e.authentication,health:e.health,reasonCode:e.reason,observedAt:e.observedAt,notes:e.notes,unsupported:e.unsupported};return{id:e.id,label:e.label,engine:i,color:mt[i],plan:e.planType,verdict:r,allWindows:o?[o,...a]:a,evidence:s,hasDetail:e.windows.length>0||e.notes.length>0||e.credits!==null||e.reason!==null,binding:o,others:a,credits:e.credits,reconnectCommand:e.reconnectCommand,observedAt:e.observedAt,rank:ar[r.state],sourceNote:t}}function fr(e){if(!e)return[];let t=new Set;for(let n of e.accounts)for(let e of n.notes)t.add(e);return[...t]}function pr(e){return e?e.accounts.map(e=>dr(e)).sort((e,t)=>e.rank-t.rank||e.label.localeCompare(t.label)):[]}function mr(e){if(!e)return null;let t=e.models.filter(e=>e.loaded),n=e.reachable?t.length===0?0:t.some(e=>e.sizeBytes===null)?null:t.reduce((e,t)=>e+(t.sizeBytes??0),0):null,r=e.memoryBudgetBytes,i=n!==null&&r!==null&&r>0?Math.max(0,Math.min(100,n/r*100)):null,a=e.reachable?t.length>0?{state:`available`,headline:`Resident now`,detail:`${t.length} model${t.length===1?``:`s`} already in memory — no load delay, no quota, no bill.`,code:null}:e.models.length>0?{state:`tight`,headline:`Installed, not loaded`,detail:`${e.models.length} model${e.models.length===1?` is`:`s are`} installed but nothing is resident, so the first turn pays a load.`,code:null}:{state:`unknown`,headline:`No models installed`,detail:`The runtime is reachable but reports no installed models.`,code:null}:{state:`unknown`,headline:`Runtime unreachable`,detail:`No local runtime answered. Start Ollama or LM Studio.`,code:e.reason};return{residentCount:t.length,installedCount:e.models.length,residentBytes:n,memoryBudgetBytes:r,usedPct:i,tone:i===null?`ok`:W(i),verdict:a,color:mt.local,rank:ar[a.state]}}var hr=`Per-account probes are unavailable on this server, so these cards are derived from the seat roster and the per-engine snapshots.`;function gr(e){let{seat:t,control:n,frontier:r,engineSeatCount:i}=e;if(t.engine===`local`)return null;let a=n?.subscriptionUsage?.find(e=>String(e.engine)===t.engine),o=r?.engines.find(e=>String(e.engine)===t.engine),s=Ct({engine:t.engine,seat:t,subscription:a,frontier:o,engineSeatCount:i}),c=s.kind===`measured`?s.windows.map(e=>({id:e.id,label:e.label,usedPercent:e.usedPct,resetsAt:e.resetsAt===null?null:new Date(e.resetsAt*1e3).toISOString(),resetDescription:null,limitReached:!1,measured:!0})):[];return{account:{id:t.id,label:t.label,provider:t.engine,state:s.kind===`measured`?`observed`:`unavailable`,authentication:`unknown`,health:null,planType:a?.plan??null,observedAt:t.health.observedAt,windows:c,binding:null,credits:null,reason:s.kind===`measured`?null:s.reason,unsupported:null,reconnectCommand:null,notes:[]},sourceNote:s.kind===`measured`?`${vt[s.source]}${s.scope===`engine`?` · engine-wide, shared by every account on this engine`:``}`:null}}function _r(e){let t=e.bootstrap?.seats??[],n=new Map;for(let e of t)n.set(e.engine,(n.get(e.engine)??0)+1);return t.map(t=>gr({seat:t,control:e.control,frontier:e.frontier,engineSeatCount:n.get(t.engine)??1})).filter(e=>e!==null).map(e=>dr(e.account,e.sourceNote)).sort((e,t)=>e.rank-t.rank||e.label.localeCompare(t.label))}function $(e){return e instanceof l&&e.status===401}function vr({title:e,body:t,detail:n,action:r}){return(0,J.jsxs)(`div`,{className:q.stateBlock,role:`status`,children:[(0,J.jsx)(`p`,{className:q.stateTitle,children:e}),(0,J.jsx)(`p`,{className:q.stateBody,children:t}),n?(0,J.jsxs)(`details`,{className:q.stateBody,children:[(0,J.jsx)(`summary`,{children:`Details`}),(0,J.jsx)(`code`,{className:q.commandInline,children:n})]}):null,r?(0,J.jsx)(`div`,{className:q.stateActions,children:r}):null]})}var yr=3e4,br={gridColumn:`1 / -1`};function xr(e,t){(0,H.useEffect)(()=>{let n=null,r=()=>{n!==null&&clearInterval(n),n=null},i=()=>{let i=typeof document>`u`||document.visibilityState===`visible`;i&&n===null?n=setInterval(e,t):i||r()};return i(),document.addEventListener(`visibilitychange`,i),()=>{document.removeEventListener(`visibilitychange`,i),r()}},[e,t])}function Sr(){let[e,t]=(0,H.useState)(`7d`),[n,r]=(0,H.useState)(null),i=s(et),l=s(Ye),d=s(Qe(e)),f=s(nt),m=s(p),h=s(Ze),g=s(fe),ee=a(et),te=a(Ye),ne=a(Qe(e)),_=a(nt),re=a(p),ie=a(Ze),ae=a(fe),oe=o(et),v=o(Ye);xr(oe,yr),xr(v,yr);let y=()=>{ee(),te(),ne(),_(),re(),ie(),ae()},b=(0,H.useMemo)(()=>i.data?.available?$e(i.data.raw):null,[i.data]),x=(0,H.useMemo)(()=>l.data?.available?tt(l.data.raw):null,[l.data]),S=(0,H.useMemo)(()=>d.data?.available?Xe(d.data.raw,e):null,[d.data,e]),C=(0,H.useMemo)(()=>h.data?h.data.available?kt(h.data.raw,h.data.reason):At(h.data.reason??`Configured caps unavailable.`):At(`Configured caps not loaded yet.`),[h.data]),w=b===null,T=(0,H.useMemo)(()=>b?pr(b):_r({bootstrap:g.data,control:m.data,frontier:f.data}),[b,g.data,m.data,f.data]),E=(0,H.useMemo)(()=>ot(x),[x]),D=(0,H.useMemo)(()=>mr(x),[x]),O=(0,H.useMemo)(()=>fr(b),[b]),se=(0,H.useMemo)(()=>{let e=T.map(e=>({key:e.id,rank:e.rank,label:e.label,kind:`account`,card:e}));return D&&e.push({key:`local`,rank:D.rank,label:`Local`,kind:`local`,card:D}),e.sort((e,t)=>e.rank-t.rank||e.label.localeCompare(t.label))},[T,D]),k=(0,H.useMemo)(()=>Oe({cards:T,localCard:D,localView:E}),[T,D,E]),A=(0,H.useMemo)(()=>rt(E?.runtimes??[]),[E]),j=we(),le=(0,H.useMemo)(()=>new Set(T.map(e=>e.id)),[T]),M=(0,H.useMemo)(()=>new Map(j.seats.map(e=>[e.id,e.accountId])),[j.seats]),ue=(0,H.useMemo)(()=>{if(n===null)return null;for(let[e,t]of M)if(t===n)return e;return null},[M,n]),P=(0,H.useCallback)(e=>{let t=M.get(e)??e;le.has(t)&&r(e=>e===t?null:t)},[M,le]),de=e=>{r(t=>t===e?null:e)},pe=(0,H.useCallback)(()=>{let e=n;r(null),e!==null&&typeof document<`u`&&document.getElementById(`verse-account-trigger-${e}`)?.focus()},[n]),me=(0,H.useMemo)(()=>xe(g.data?.sessions??[],g.data?.seats??[]),[g.data]),he=g.data?null:g.status===`error`?`The chat list could not be read${g.error?.message?` (${g.error.message})`:``}, so efficiency cannot be computed.`:`Reading the chat list…`,F=(0,H.useMemo)(()=>wt(m.data?.usage),[m.data]),I=(0,H.useMemo)(()=>Tt(m.data?.limits,C.foundryLimits),[m.data,C.foundryLimits]),L=(0,H.useMemo)(()=>Dt(m.data?.daemonObservation),[m.data]),ge=C.available?C.todaySpentUsd:m.data?.daemon.todaySpentUsd??null,_e=C.available?C.todaySpentDate:null,R=$(i.error)||$(l.error)||$(d.error)||$(f.error)||$(m.error)||$(g.error),ve=!R&&f.status===`error`&&m.status===`error`&&f.data===void 0&&m.data===void 0,ye=!R&&!ve&&i.data===void 0&&f.data===void 0&&m.data===void 0&&(i.status===`loading`||i.status===`idle`||f.status===`loading`||m.status===`loading`||f.status===`idle`||m.status===`idle`),be=i.status===`refreshing`||f.status===`refreshing`||m.status===`refreshing`,Se=b?.sampledAt??f.data?.generatedAt??m.data?.ts??null;return(0,J.jsxs)(`section`,{className:q.section,"aria-label":`Usage`,children:[(0,J.jsxs)(`header`,{className:q.header,"data-app-region":`drag`,children:[(0,J.jsx)(`h2`,{className:q.headerTitle,children:`Usage`}),(0,J.jsxs)(`div`,{className:q.headerMeta,children:[Se?(0,J.jsxs)(`span`,{children:[be?`refreshing · `:``,`as of `,new Date(Se).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})]}):null,(0,J.jsx)(`button`,{type:`button`,className:q.ghostButton,onClick:y,children:`Refresh`})]})]}),(0,J.jsx)(`div`,{className:q.scroll,children:R?(0,J.jsx)(vr,{title:`Read session expired`,body:`Usage data needs an authenticated read session. Unlock the console with the read token ashlr verse printed, then refresh.`,action:(0,J.jsx)(`button`,{type:`button`,className:q.ghostButton,onClick:y,children:`Try again`})}):ve?(0,J.jsx)(vr,{title:`Usage sources unreachable`,body:`Usage data unavailable — this server may be older than the app.`,detail:[f.error?.message,m.error?.message].filter(Boolean).join(` `)||void 0,action:(0,J.jsx)(`button`,{type:`button`,className:q.ghostButton,onClick:y,children:`Retry`})}):ye?(0,J.jsxs)(`div`,{"aria-busy":`true`,children:[(0,J.jsx)(c,{width:`30%`}),(0,J.jsx)(`div`,{className:q.skeletonGrid,style:{marginTop:`var(--space-4)`},children:(0,J.jsx)(u,{count:5})})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Te,{seats:j.seats,health:j.health,budget:j.budget,selectedSeatId:ue,onSelectSeat:P}),(0,J.jsx)(Bt,{overview:k}),(0,J.jsxs)(`section`,{className:q.panel,"aria-labelledby":`verse-usage-accounts`,children:[(0,J.jsxs)(`div`,{className:q.panelHead,children:[(0,J.jsx)(`h3`,{id:`verse-usage-accounts`,className:q.panelTitle,children:`Accounts`}),(0,J.jsx)(`p`,{className:q.panelNote,children:`Ordered by what you can use right now. Each card leads with its binding constraint — the window with the highest used percent, because that is what blocks work.`})]}),w&&i.data&&!i.data.available?(0,J.jsxs)(`p`,{className:q.muted,children:[i.data.reason,` `,hr]}):null,b?.collectorNote?(0,J.jsx)(`p`,{className:q.muted,children:b.collectorNote}):null,O.length>0?(0,J.jsx)(`ul`,{className:q.noteList,children:O.map(e=>(0,J.jsx)(`li`,{className:q.muted,children:e},e))}):null,T.length===0&&D===null?(0,J.jsx)(`p`,{className:q.muted,children:`No accounts or local runtime found. Connect an account or start Ollama, then refresh.`}):(0,J.jsx)(J.Fragment,{children:(0,J.jsx)(`div`,{className:q.cards,children:se.map(e=>{if(e.kind!==`account`)return(0,J.jsx)(Cn,{card:e.card,staleness:A},e.key);let t=n===e.key;return(0,J.jsxs)(H.Fragment,{children:[(0,J.jsx)(Pt,{card:e.card,onOpen:de,expanded:t,triggerId:`verse-account-trigger-${e.key}`,detailId:`verse-account-detail-${e.key}`}),t?(0,J.jsx)(`div`,{id:`verse-account-detail-${e.key}`,style:br,children:(0,J.jsx)(Rt,{card:e.card,headingId:`verse-account-heading-${e.key}`,onClose:pe})}):null]},e.key)})})})]}),(0,J.jsxs)(`section`,{className:q.panel,"aria-labelledby":`verse-usage-burndowns`,children:[(0,J.jsxs)(`div`,{className:q.panelHead,children:[(0,J.jsx)(`h3`,{id:`verse-usage-burndowns`,className:q.panelTitle,children:`Seat windows`}),(0,J.jsx)(`p`,{className:q.panelNote,children:`What is left of each seat's binding window, the line autonomy stops at, and the reset.`})]}),(0,J.jsx)(Zn,{budget:j.budget})]}),(0,J.jsx)(Tn,{view:E}),(0,J.jsx)(Mn,{series:S,window:e,onWindowChange:t,unavailableReason:d.data&&!d.data.available?d.data.reason:null,loading:d.status===`loading`||d.status===`idle`}),(0,J.jsx)(Ut,{rows:me,unavailableReason:he}),F?(0,J.jsx)(un,{split:F,savingsNote:Jt}):(0,J.jsxs)(`section`,{className:q.panel,"aria-labelledby":`verse-usage-split-missing`,children:[(0,J.jsx)(`div`,{className:q.panelHead,children:(0,J.jsx)(`h3`,{id:`verse-usage-split-missing`,className:q.panelTitle,children:`Local vs cloud`})}),(0,J.jsx)(`div`,{className:q.tiles,children:(0,J.jsx)(N,{label:`Not spent (ran locally)`,value:(0,J.jsx)(`span`,{className:q.num,children:`unknown`}),caption:`/api/control did not answer, so the split is unavailable`})})]}),(0,J.jsx)(Fn,{}),(0,J.jsx)(Gt,{rows:I,capsNote:C.available?null:C.reason}),(0,J.jsx)(Pn,{series:L,todaySpentUsd:ge,todaySpentDate:_e,dailyBudgetUsd:C.dailyBudgetUsd,showSeries:S===null}),C.available&&C.subscriptionMaxPercent!==null?(0,J.jsxs)(`p`,{className:q.muted,children:[`Subscription throttle threshold is`,` `,(0,J.jsx)(`span`,{className:q.num,children:ce(C.subscriptionMaxPercent/100)}),`. It only applies to engines that publish a real window reading — no seat is ever throttled on a guess.`]}):null]})})]})}export{Sr as UsageSection};
3
+ //# sourceMappingURL=UsageSection-DY7uOTm1.js.map