@cleocode/cleo 2026.9.7 → 2026.9.9

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 (690) hide show
  1. package/dist/cli/index.js +3766 -2232
  2. package/package.json +14 -13
  3. package/scripts/check-cleo-tarball-size.mjs +105 -0
  4. package/scripts/copy-studio-dist.mjs +33 -9
  5. package/studio-dist/client/_app/immutable/chunks/{wI_OOyoh.js → BB7zPpV2.js} +1 -1
  6. package/studio-dist/client/_app/immutable/chunks/{D8NsLz6i.js → BOnrCZaR.js} +1 -1
  7. package/studio-dist/client/_app/immutable/chunks/{TX-23QW3.js → BiaAd37T.js} +1 -1
  8. package/studio-dist/client/_app/immutable/chunks/C6jhAnil.js +1 -0
  9. package/studio-dist/client/_app/immutable/chunks/C87Q3uxm.js +1 -0
  10. package/studio-dist/client/_app/immutable/chunks/{CqF5Lomf.js → CTLGzgdN.js} +1 -1
  11. package/studio-dist/client/_app/immutable/chunks/{o1PZ6Kzq.js → CY3heNub.js} +1 -1
  12. package/studio-dist/client/_app/immutable/chunks/{RptFUp2P.js → Cge6qiwc.js} +1 -1
  13. package/studio-dist/client/_app/immutable/chunks/{BRgWBQlV.js → CnwXLaZJ.js} +1 -1
  14. package/studio-dist/client/_app/immutable/chunks/{Bxz2A0ZC.js → DEH43YwF.js} +1 -1
  15. package/studio-dist/client/_app/immutable/chunks/DGftG5oL.js +3 -0
  16. package/studio-dist/client/_app/immutable/chunks/{DVHIxkgs.js → DV2HHHkd.js} +1 -1
  17. package/studio-dist/client/_app/immutable/chunks/{eK8hf4s7.js → DXxEgUey.js} +1 -1
  18. package/studio-dist/client/_app/immutable/chunks/{CEqOYim7.js → DZrdToAH.js} +1 -1
  19. package/studio-dist/client/_app/immutable/chunks/EZwHPWle.js +2 -0
  20. package/studio-dist/client/_app/immutable/chunks/{B9psmq5-.js → rB_71s8h.js} +1 -1
  21. package/studio-dist/client/_app/immutable/chunks/{JPJd4fEI.js → rUtW7Hx6.js} +1 -1
  22. package/studio-dist/client/_app/immutable/chunks/zWFSpNUo.js +1 -0
  23. package/studio-dist/client/_app/immutable/entry/app.AR3q6Ydw.js +2 -0
  24. package/studio-dist/client/_app/immutable/entry/start.Cf2RUEwO.js +1 -0
  25. package/studio-dist/client/_app/immutable/nodes/{0.CZzEEyVh.js → 0.BEkWfyyt.js} +1 -1
  26. package/studio-dist/client/_app/immutable/nodes/{1.Bj3Opbua.js → 1.DfbrPFgR.js} +1 -1
  27. package/studio-dist/client/_app/immutable/nodes/{10.xe_Mc2Ko.js → 10.3rxHNnSx.js} +1 -1
  28. package/studio-dist/client/_app/immutable/nodes/{11.DuKPA7JD.js → 11.B6jWv3Kz.js} +1 -1
  29. package/studio-dist/client/_app/immutable/nodes/{12.BoZ_QrUS.js → 12.BrDHeTEq.js} +1 -1
  30. package/studio-dist/client/_app/immutable/nodes/{13.DFJiUiv8.js → 13.CE5bd4JV.js} +1 -1
  31. package/studio-dist/client/_app/immutable/nodes/{14.eaAlFU4w.js → 14.DgXD2LRx.js} +1 -1
  32. package/studio-dist/client/_app/immutable/nodes/{15.BfXgiwMC.js → 15.CdRO2NCB.js} +1 -1
  33. package/studio-dist/client/_app/immutable/nodes/{16.mEwy9cqh.js → 16.Cr01BBgh.js} +1 -1
  34. package/studio-dist/client/_app/immutable/nodes/{17.DP2QtQGn.js → 17.PZ1GrCot.js} +1 -1
  35. package/studio-dist/client/_app/immutable/nodes/{18.Bu0054sX.js → 18.Crly2qhe.js} +1 -1
  36. package/studio-dist/client/_app/immutable/nodes/{19.UWt6QbCm.js → 19.su55K8y_.js} +1 -1
  37. package/studio-dist/client/_app/immutable/nodes/{2.y5jKpHiR.js → 2.mqgFVWFQ.js} +1 -1
  38. package/studio-dist/client/_app/immutable/nodes/{20.B1AIHdkP.js → 20.DqQjto4P.js} +1 -1
  39. package/studio-dist/client/_app/immutable/nodes/{21.CpAN71H8.js → 21.BhwhdQCq.js} +1 -1
  40. package/studio-dist/client/_app/immutable/nodes/{22.CrYKrN4c.js → 22.BmJEWwER.js} +1 -1
  41. package/studio-dist/client/_app/immutable/nodes/{23.pGRaHQjq.js → 23.CAVIJEH-.js} +1 -1
  42. package/studio-dist/client/_app/immutable/nodes/{24.BUoUu37z.js → 24.BIypnou8.js} +1 -1
  43. package/studio-dist/client/_app/immutable/nodes/25.CllbQ5CT.js +39 -0
  44. package/studio-dist/client/_app/immutable/nodes/26.DILkE52_.js +1 -0
  45. package/studio-dist/client/_app/immutable/nodes/{28.DcmYM7lb.js → 28.D64RBcfs.js} +1 -1
  46. package/studio-dist/client/_app/immutable/nodes/{29.lbHbMqNO.js → 29.yfuBeH1x.js} +1 -1
  47. package/studio-dist/client/_app/immutable/nodes/{3.Dyir4xXj.js → 3.ChHbetZy.js} +1 -1
  48. package/studio-dist/client/_app/immutable/nodes/{30.DXj0Wm2A.js → 30.1WUv5bh9.js} +1 -1
  49. package/studio-dist/client/_app/immutable/nodes/4.D6vXYBoQ.js +1 -0
  50. package/studio-dist/client/_app/immutable/nodes/{5.VWSdP7oc.js → 5.hjw2O-4e.js} +1 -1
  51. package/studio-dist/client/_app/immutable/nodes/{6.Dl-XLwOj.js → 6.CAoDfDt6.js} +1 -1
  52. package/studio-dist/client/_app/immutable/nodes/{7.CFuC5L-y.js → 7.CLgPSQ8Z.js} +1 -1
  53. package/studio-dist/client/_app/immutable/nodes/{8.BCJ0DhOb.js → 8.zuaO1Hik.js} +1 -1
  54. package/studio-dist/client/_app/immutable/nodes/{9.Bq4SUzL9.js → 9.Cdsd85m2.js} +1 -1
  55. package/studio-dist/client/_app/version.json +1 -1
  56. package/studio-dist/server/chunks/0-BvvArN5K.js +41 -0
  57. package/studio-dist/server/chunks/1-rLPlIpIR.js +9 -0
  58. package/studio-dist/server/chunks/{10-DvOD4ksa.js → 10-CYLc3d5x.js} +3 -3
  59. package/studio-dist/server/chunks/{11-DMnBZ02H.js → 11-DcIYR5vm.js} +3 -3
  60. package/studio-dist/server/chunks/{12-CCyRyRWX.js → 12-WE1u104t.js} +3 -3
  61. package/studio-dist/server/chunks/{13-Dx1c3a_X.js → 13-joBDoxhK.js} +3 -3
  62. package/studio-dist/server/chunks/{14-Bo-dTCaZ.js → 14-Doj5F4uJ.js} +3 -3
  63. package/studio-dist/server/chunks/{15-BvUNl3KL.js → 15-BlL3H5S5.js} +3 -3
  64. package/studio-dist/server/chunks/{16-De6EzPSa.js → 16-C-UvTi7Z.js} +5 -4
  65. package/studio-dist/server/chunks/{17-CZNsiZhi.js → 17-C790IKoE.js} +10 -93
  66. package/studio-dist/server/chunks/{18-CbxxjZox.js → 18-6VS9Vgfx.js} +5 -4
  67. package/studio-dist/server/chunks/{19-DqHyladS.js → 19-BAQHPrMB.js} +3 -3
  68. package/studio-dist/server/chunks/{2-COvmA-ZA.js → 2-DXSVVaej.js} +10 -93
  69. package/studio-dist/server/chunks/20-DUG4_xXL.js +57 -0
  70. package/studio-dist/server/chunks/{21-DXK9ptAC.js → 21-qhGjkW41.js} +4 -31
  71. package/studio-dist/server/chunks/{22-DD5CLWJC.js → 22-Byy16hFA.js} +3 -3
  72. package/studio-dist/server/chunks/23-CZpFrGp4.js +97 -0
  73. package/studio-dist/server/chunks/24-CkIGZX8S.js +67 -0
  74. package/studio-dist/server/chunks/{25-CAg6Xcmn.js → 25-CHBaeXym.js} +15 -96
  75. package/studio-dist/server/chunks/{26-_nfVTvNi.js → 26-BbDd--8j.js} +12 -93
  76. package/studio-dist/server/chunks/{27-C9edghG4.js → 27-Cqzlh9gZ.js} +3 -2
  77. package/studio-dist/server/chunks/{28-VemTJGyc.js → 28-DeYe2rpm.js} +8 -62
  78. package/studio-dist/server/chunks/{29-CXP-m29t.js → 29-6pjLM0Z1.js} +10 -93
  79. package/studio-dist/server/chunks/{3-B8KhfvHp.js → 3-DMSsQV71.js} +9 -25
  80. package/studio-dist/server/chunks/{30-QiM1S4cJ.js → 30-Dw317sSW.js} +10 -93
  81. package/studio-dist/server/chunks/{31-BwdY9NnB.js → 31-Q4kHbp8j.js} +3 -2
  82. package/studio-dist/server/chunks/{4-CSaG4HjO.js → 4-C9BMSh4K.js} +4 -3
  83. package/studio-dist/server/chunks/{5-i5ry4y3C.js → 5-C0CF4WKG.js} +3 -3
  84. package/studio-dist/server/chunks/{6-DR1GWBMT.js → 6-BWyOJust.js} +3 -3
  85. package/studio-dist/server/chunks/{7-DSNwn3aQ.js → 7-CK4MK5gy.js} +3 -3
  86. package/studio-dist/server/chunks/{8-Bj0bx07K.js → 8-CiX7Xk9k.js} +3 -3
  87. package/studio-dist/server/chunks/{9-B3Tz0mZq.js → 9-Be5118w4.js} +3 -3
  88. package/studio-dist/server/chunks/{HeroHeader-v4Q9vaGr.js → HeroHeader-BrGN5WPw.js} +2 -2
  89. package/studio-dist/server/chunks/{Sparkline-BJ-GuhRd.js → Sparkline-DU_NVxz9.js} +2 -2
  90. package/studio-dist/server/chunks/{StatBlock-DHJMmOCx.js → StatBlock-jNsxycS1.js} +2 -2
  91. package/studio-dist/server/chunks/{Tabs-DzG6Bn9a.js → Tabs-DQKDflnT.js} +2 -2
  92. package/studio-dist/server/chunks/_dispatch-DTWViLGL.js +145 -0
  93. package/studio-dist/server/chunks/{_layout.svelte-BEIGQcIv.js → _layout.svelte-BjSWu4Fw.js} +7 -9
  94. package/studio-dist/server/chunks/{_page.svelte-al08ovKm.js → _page.svelte-6iMiGR11.js} +5 -5
  95. package/studio-dist/server/chunks/{_page.svelte-Byz2djto.js → _page.svelte-B-YXGvAW.js} +5 -5
  96. package/studio-dist/server/chunks/{_page.svelte-UYiF7YBK.js → _page.svelte-BCRyjlk2.js} +5 -5
  97. package/studio-dist/server/chunks/{_page.svelte-2cgtvHwW.js → _page.svelte-BdkomWnj.js} +13 -71
  98. package/studio-dist/server/chunks/{_page.svelte-CCoTp89s.js → _page.svelte-BoYafqft.js} +3 -3
  99. package/studio-dist/server/chunks/{_page.svelte-nzffIbBP.js → _page.svelte-C7Wm6_HB.js} +3 -3
  100. package/studio-dist/server/chunks/{_page.svelte-Wfx7ww_h.js → _page.svelte-CIyzbngu.js} +11 -13
  101. package/studio-dist/server/chunks/{_page.svelte-C_VSL8NW.js → _page.svelte-CmbOzJ6A.js} +13 -71
  102. package/studio-dist/server/chunks/{_page.svelte-CophUar3.js → _page.svelte-CqI6hqMm.js} +5 -5
  103. package/studio-dist/server/chunks/{_page.svelte-tYN7_LXI.js → _page.svelte-CtSwzG-R.js} +9 -11
  104. package/studio-dist/server/chunks/{_page.svelte-DYNorA0S.js → _page.svelte-Cx9Ptecp.js} +10 -67
  105. package/studio-dist/server/chunks/{_page.svelte-9OQphlnm.js → _page.svelte-D4Uf5q1X.js} +14 -69
  106. package/studio-dist/server/chunks/{_page.svelte-BIlhmugm.js → _page.svelte-DRjD44sK.js} +11 -13
  107. package/studio-dist/server/chunks/{_page.svelte-BVVTrzTL.js → _page.svelte-DaheDIRs.js} +5 -5
  108. package/studio-dist/server/chunks/{_page.svelte-DOWw416I.js → _page.svelte-DfIiE7gL.js} +11 -13
  109. package/studio-dist/server/chunks/{_page.svelte-M5D2QnMS.js → _page.svelte-Dm8y5a8S.js} +10 -67
  110. package/studio-dist/server/chunks/{_page.svelte-B_pq-Z98.js → _page.svelte-DqXxyNsF.js} +7 -7
  111. package/studio-dist/server/chunks/{_page.svelte-C3aIui4o.js → _page.svelte-DqsbnAhk.js} +4 -4
  112. package/studio-dist/server/chunks/{_page.svelte-ksTJUXce.js → _page.svelte-Dt0_c1T-.js} +3 -3
  113. package/studio-dist/server/chunks/{_page.svelte-bGhsrIjS.js → _page.svelte-Dv6iwhu7.js} +3 -3
  114. package/studio-dist/server/chunks/{_page.svelte-BXyoMME1.js → _page.svelte-GPiHej3P.js} +5 -5
  115. package/studio-dist/server/chunks/{_page.svelte-CYDjW1R0.js → _page.svelte-LuRm8XxE.js} +5 -5
  116. package/studio-dist/server/chunks/{_page.svelte-Clbkk1gm.js → _page.svelte-Z7nL9SC-.js} +8 -9
  117. package/studio-dist/server/chunks/{_page.svelte-DUWbZjC7.js → _page.svelte-_kntHS6v.js} +4 -4
  118. package/studio-dist/server/chunks/{_page.svelte-l4Z_xjl9.js → _page.svelte-k-4NCnbz.js} +9 -11
  119. package/studio-dist/server/chunks/{_page.svelte-CHzXuw2Q.js → _page.svelte-me5SUosG.js} +3 -3
  120. package/studio-dist/server/chunks/{_page.svelte-BgwL2Gyu.js → _page.svelte-sHj6UAzC.js} +11 -13
  121. package/studio-dist/server/chunks/{_server.ts-DSzRdt1U.js → _server.ts--2m_U4SL.js} +11 -94
  122. package/studio-dist/server/chunks/{_server.ts-ujoDR2_g.js → _server.ts--sGLmBsz.js} +10 -92
  123. package/studio-dist/server/chunks/{_server.ts-k2fApwOp.js → _server.ts-0ukyuE0I.js} +5 -60
  124. package/studio-dist/server/chunks/_server.ts-1eW2mTeh.js +40 -0
  125. package/studio-dist/server/chunks/{_server.ts-Bfr4u3EP.js → _server.ts-3LzqLzt0.js} +10 -92
  126. package/studio-dist/server/chunks/_server.ts-5euivmMj.js +38 -0
  127. package/studio-dist/server/chunks/{_server.ts-CShsBkeE.js → _server.ts-B0uoay97.js} +7 -23
  128. package/studio-dist/server/chunks/{_server.ts-hL92cV7Z.js → _server.ts-B5vYKkI6.js} +9 -63
  129. package/studio-dist/server/chunks/{_server.ts-_RJXtmfi.js → _server.ts-B8dTbPHd.js} +8 -23
  130. package/studio-dist/server/chunks/{_server.ts-C3Jo-ju8.js → _server.ts-BA8Xdegq.js} +10 -92
  131. package/studio-dist/server/chunks/_server.ts-BBClE0n9.js +54 -0
  132. package/studio-dist/server/chunks/{_server.ts-CJA1djzJ.js → _server.ts-BCnr9uaO.js} +8 -92
  133. package/studio-dist/server/chunks/{_server.ts-ZS1_yMwR.js → _server.ts-BDwMoyZ_.js} +6 -32
  134. package/studio-dist/server/chunks/{_server.ts-sv4pA808.js → _server.ts-BE-Uhx4N.js} +5 -46
  135. package/studio-dist/server/chunks/{_server.ts-DV6pzF-M.js → _server.ts-BSHADOUJ.js} +4 -3
  136. package/studio-dist/server/chunks/{_server.ts-BdN4AJ6o.js → _server.ts-BSgLJPPQ.js} +10 -91
  137. package/studio-dist/server/chunks/_server.ts-Bl9tMqwZ.js +159 -0
  138. package/studio-dist/server/chunks/_server.ts-BlzDnRI0.js +51 -0
  139. package/studio-dist/server/chunks/{_server.ts-DnE0f-iC.js → _server.ts-BtuemCsf.js} +4 -3
  140. package/studio-dist/server/chunks/{_server.ts-BPcErnS0.js → _server.ts-C2nYqbd9.js} +10 -92
  141. package/studio-dist/server/chunks/{_server.ts-4p6cp9ke.js → _server.ts-C6IDM_3I.js} +10 -92
  142. package/studio-dist/server/chunks/_server.ts-C8Z32vuL.js +45 -0
  143. package/studio-dist/server/chunks/_server.ts-CBXyadsy.js +26 -0
  144. package/studio-dist/server/chunks/{_server.ts-Do9RIPRo.js → _server.ts-CE6h2ATE.js} +5 -32
  145. package/studio-dist/server/chunks/_server.ts-CGROl_5b.js +122 -0
  146. package/studio-dist/server/chunks/_server.ts-CH06JVqZ.js +65 -0
  147. package/studio-dist/server/chunks/_server.ts-CNqcws-M.js +29 -0
  148. package/studio-dist/server/chunks/{_server.ts-uUx7uT2Y.js → _server.ts-CYv5YuHd.js} +6 -43
  149. package/studio-dist/server/chunks/{_server.ts-DSAv66wD.js → _server.ts-CbThsyhY.js} +4 -3
  150. package/studio-dist/server/chunks/{_server.ts-DgbY5EB3.js → _server.ts-CeQolQOK.js} +10 -92
  151. package/studio-dist/server/chunks/_server.ts-ChoGyX5C.js +61 -0
  152. package/studio-dist/server/chunks/_server.ts-CjJYkLJH.js +61 -0
  153. package/studio-dist/server/chunks/{_server.ts-lPlBUIJX.js → _server.ts-CtjArzxf.js} +5 -60
  154. package/studio-dist/server/chunks/{_server.ts-Cq60m8Pw.js → _server.ts-D3QWZwt_.js} +4 -3
  155. package/studio-dist/server/chunks/{_server.ts-CkoJ2HCW.js → _server.ts-D6wP5bCh.js} +10 -92
  156. package/studio-dist/server/chunks/{_server.ts-DwTRjS4y.js → _server.ts-D7JwQTun.js} +10 -93
  157. package/studio-dist/server/chunks/_server.ts-DKFJdXPK.js +97 -0
  158. package/studio-dist/server/chunks/_server.ts-DNAPGKEF.js +55 -0
  159. package/studio-dist/server/chunks/_server.ts-DQiTiY3E.js +78 -0
  160. package/studio-dist/server/chunks/{_server.ts-B2E7fxo9.js → _server.ts-DUPODxVZ.js} +6 -91
  161. package/studio-dist/server/chunks/{_server.ts-BT0Uq2yq.js → _server.ts-DUyeSXbV.js} +10 -92
  162. package/studio-dist/server/chunks/{_server.ts-DRVz9D-J.js → _server.ts-DY7BwZCv.js} +9 -24
  163. package/studio-dist/server/chunks/{_server.ts-Cz0zgaUV.js → _server.ts-D_E276ms.js} +3 -2
  164. package/studio-dist/server/chunks/{_server.ts-B5g3eScF.js → _server.ts-DgtmTAp5.js} +5 -60
  165. package/studio-dist/server/chunks/{_server.ts-CboRJY0Q.js → _server.ts-DhTKaw7h.js} +10 -63
  166. package/studio-dist/server/chunks/_server.ts-DqKBSCPT.js +31 -0
  167. package/studio-dist/server/chunks/{_server.ts-CpmMp5D8.js → _server.ts-DyXBNnRD.js} +4 -3
  168. package/studio-dist/server/chunks/_server.ts-DzjUpduu.js +25 -0
  169. package/studio-dist/server/chunks/{_server.ts-CGiAXy5i.js → _server.ts-Dznqw6Dg.js} +8 -23
  170. package/studio-dist/server/chunks/{_server.ts-tKMjUFUP.js → _server.ts-EVwS7UXb.js} +4 -3
  171. package/studio-dist/server/chunks/_server.ts-J17j25VG.js +62 -0
  172. package/studio-dist/server/chunks/{_server.ts-C4BcDGqS.js → _server.ts-XLV5SvjH.js} +7 -63
  173. package/studio-dist/server/chunks/_server.ts-jZgqFIJz.js +45 -0
  174. package/studio-dist/server/chunks/{_server.ts-Bw7A4zgb.js → _server.ts-lyiGGv7w.js} +5 -3
  175. package/studio-dist/server/chunks/_server.ts-n0fpsfkk.js +67 -0
  176. package/studio-dist/server/chunks/{brain-CXR7ZT7S.js → brain-xt_NeshR.js} +2 -2
  177. package/studio-dist/server/chunks/cleo-home-_XIqkZaL.js +109 -0
  178. package/studio-dist/server/chunks/{cli-action-DQcaqcfn.js → cli-action-VJPEn1pY.js} +2 -2
  179. package/studio-dist/server/chunks/{client-CgX38JBu.js → client-CrfCXSXZ.js} +5 -6
  180. package/studio-dist/server/chunks/cluster-label-layer-CysRMvhi.js +6721 -0
  181. package/studio-dist/server/chunks/connections-CWLPjwBP.js +15 -0
  182. package/studio-dist/server/chunks/{connections2-mi7mZqJM.js → connections2-DHVs5ytW.js} +32 -19
  183. package/studio-dist/server/chunks/{dev-BNpEUZI3.js → dev-Br5zieNA.js} +2 -2
  184. package/studio-dist/server/chunks/dist-BR1f34Gj.js +18726 -0
  185. package/studio-dist/server/chunks/{error.svelte-CplNulnS.js → error.svelte-CmR0NUCQ.js} +6 -8
  186. package/studio-dist/server/chunks/{explorer-loader-BN_mkt3_.js → explorer-loader-B_uCSs9_.js} +2 -2
  187. package/studio-dist/server/chunks/exports-Dg-gdPPq.js +124 -0
  188. package/studio-dist/server/chunks/{hooks.server-DBsyphiX.js → hooks.server-CWBRp8NI.js} +10 -93
  189. package/studio-dist/server/chunks/{http-CRTZe306.js → http-Dso0FRxT.js} +3 -4
  190. package/studio-dist/server/chunks/{index-server-DocJvixA.js → index-server-BgfA6C0S.js} +17 -4
  191. package/studio-dist/server/chunks/{internal-D6eWgsHJ.js → internal-DYUO6aQs.js} +56 -92
  192. package/studio-dist/server/chunks/{memory2-Cgc_4D5q.js → memory-BZHnDZzu.js} +4 -4
  193. package/studio-dist/server/chunks/{nexus-adapter-9EL_VlGI.js → nexus-adapter-D1ryYG1Z.js} +5 -5
  194. package/studio-dist/server/chunks/{no-face-up-DcejJLy-.js → no-face-up-B_3h6Hgs.js} +2 -2
  195. package/studio-dist/server/chunks/project-context-BAXQmgch.js +188 -0
  196. package/studio-dist/server/chunks/{src-BUqGet2c.js → src-D2rW9bIF.js} +422 -5
  197. package/studio-dist/server/chunks/{stores-5DmdjPCH.js → stores-CS6eY2sx.js} +3 -3
  198. package/studio-dist/server/chunks/{tasks2-Bf9VHrv-.js → tasks-sWuEmiGW.js} +2349 -9
  199. package/studio-dist/server/chunks/{ui-DR8zOSpC.js → ui-CkQ-pCs3.js} +2 -2
  200. package/studio-dist/server/chunks/utils-g564cUMV.js +151 -0
  201. package/studio-dist/server/index.js +5 -16
  202. package/studio-dist/server/manifest.js +88 -88
  203. package/dist/cli/index.js.map +0 -6
  204. package/studio-dist/client/_app/immutable/assets/parse-worker.CSEr67Qi.js +0 -1127
  205. package/studio-dist/client/_app/immutable/chunks/2mEksghu2.js +0 -1
  206. package/studio-dist/client/_app/immutable/chunks/3KebaI-z.js +0 -53
  207. package/studio-dist/client/_app/immutable/chunks/3y2yNYEk2.js +0 -3
  208. package/studio-dist/client/_app/immutable/chunks/7UXYlaI1.js +0 -1
  209. package/studio-dist/client/_app/immutable/chunks/83VLmCvk.js +0 -4
  210. package/studio-dist/client/_app/immutable/chunks/84Rhmi6r.js +0 -2
  211. package/studio-dist/client/_app/immutable/chunks/9CV9TXTg2.js +0 -92
  212. package/studio-dist/client/_app/immutable/chunks/9LFtcz24.js +0 -1
  213. package/studio-dist/client/_app/immutable/chunks/9bLMgKwu2.js +0 -1
  214. package/studio-dist/client/_app/immutable/chunks/9kKqohVR2.js +0 -37
  215. package/studio-dist/client/_app/immutable/chunks/B-Ye28EY.js +0 -7
  216. package/studio-dist/client/_app/immutable/chunks/B-jnUl7o.js +0 -1
  217. package/studio-dist/client/_app/immutable/chunks/B0ORuy8x2.js +0 -1
  218. package/studio-dist/client/_app/immutable/chunks/B0xCM1wN2.js +0 -1
  219. package/studio-dist/client/_app/immutable/chunks/B0zCN4sX.js +0 -1
  220. package/studio-dist/client/_app/immutable/chunks/B1wt-iGW.js +0 -7
  221. package/studio-dist/client/_app/immutable/chunks/B2F3KUIU.js +0 -1
  222. package/studio-dist/client/_app/immutable/chunks/B2_6RrlL2.js +0 -1
  223. package/studio-dist/client/_app/immutable/chunks/B2qKEYxA2.js +0 -1
  224. package/studio-dist/client/_app/immutable/chunks/B2u2rNyI2.js +0 -8
  225. package/studio-dist/client/_app/immutable/chunks/B3_X3Lhd2.js +0 -1
  226. package/studio-dist/client/_app/immutable/chunks/B3sNtbqf.js +0 -1
  227. package/studio-dist/client/_app/immutable/chunks/B4NQP1Ax2.js +0 -6
  228. package/studio-dist/client/_app/immutable/chunks/BAtZg5v5.js +0 -2
  229. package/studio-dist/client/_app/immutable/chunks/BB6WKLm82.js +0 -1
  230. package/studio-dist/client/_app/immutable/chunks/BBX8UDtn.js +0 -1
  231. package/studio-dist/client/_app/immutable/chunks/BBs1U1iU.js +0 -1
  232. package/studio-dist/client/_app/immutable/chunks/BEli_4Jp2.js +0 -1
  233. package/studio-dist/client/_app/immutable/chunks/BEt2wIUt.js +0 -1
  234. package/studio-dist/client/_app/immutable/chunks/BEyM8qSW2.js +0 -1
  235. package/studio-dist/client/_app/immutable/chunks/BFZA3Dsk2.js +0 -1
  236. package/studio-dist/client/_app/immutable/chunks/BGdPweG1.js +0 -2
  237. package/studio-dist/client/_app/immutable/chunks/BGiusSqE.js +0 -1
  238. package/studio-dist/client/_app/immutable/chunks/BGmpyfzD.js +0 -1
  239. package/studio-dist/client/_app/immutable/chunks/BH5rhSIR.js +0 -1
  240. package/studio-dist/client/_app/immutable/chunks/BHciFt922.js +0 -2
  241. package/studio-dist/client/_app/immutable/chunks/BHnFwTQY.js +0 -1
  242. package/studio-dist/client/_app/immutable/chunks/BIvye3XP2.js +0 -59
  243. package/studio-dist/client/_app/immutable/chunks/BJ8mcpQA2.js +0 -1
  244. package/studio-dist/client/_app/immutable/chunks/BK17qSHw.js +0 -2
  245. package/studio-dist/client/_app/immutable/chunks/BLkgUtyb.js +0 -1
  246. package/studio-dist/client/_app/immutable/chunks/BMUko3r62.js +0 -5
  247. package/studio-dist/client/_app/immutable/chunks/BMwzdEaa.js +0 -2
  248. package/studio-dist/client/_app/immutable/chunks/BQZx6brg.js +0 -2
  249. package/studio-dist/client/_app/immutable/chunks/BUPJTTTd.js +0 -2
  250. package/studio-dist/client/_app/immutable/chunks/BVNGAeZe2.js +0 -146
  251. package/studio-dist/client/_app/immutable/chunks/BWfLryGm.js +0 -1
  252. package/studio-dist/client/_app/immutable/chunks/BXIfeogw.js +0 -1
  253. package/studio-dist/client/_app/immutable/chunks/BXTfFyUU.js +0 -1
  254. package/studio-dist/client/_app/immutable/chunks/BYJC6_MM.js +0 -2
  255. package/studio-dist/client/_app/immutable/chunks/BZV1ZJzH.js +0 -2
  256. package/studio-dist/client/_app/immutable/chunks/BZu9rehd.js +0 -1
  257. package/studio-dist/client/_app/immutable/chunks/Bbzm48C52.js +0 -1
  258. package/studio-dist/client/_app/immutable/chunks/BfGnlwjH.js +0 -1
  259. package/studio-dist/client/_app/immutable/chunks/Bfjb9LPp.js +0 -2
  260. package/studio-dist/client/_app/immutable/chunks/BieFfu-R.js +0 -1
  261. package/studio-dist/client/_app/immutable/chunks/Bmv63uXe2.js +0 -1
  262. package/studio-dist/client/_app/immutable/chunks/BtBW1A0u.js +0 -1
  263. package/studio-dist/client/_app/immutable/chunks/BxISGQCl2.js +0 -1
  264. package/studio-dist/client/_app/immutable/chunks/ByNR_KvT.js +0 -2
  265. package/studio-dist/client/_app/immutable/chunks/BzjhD6Hr2.js +0 -2
  266. package/studio-dist/client/_app/immutable/chunks/BzpWnq0c2.js +0 -1
  267. package/studio-dist/client/_app/immutable/chunks/C-yJVcyI2.js +0 -1
  268. package/studio-dist/client/_app/immutable/chunks/C0cQ-8kS2.js +0 -1
  269. package/studio-dist/client/_app/immutable/chunks/C1vWmhYe.js +0 -48
  270. package/studio-dist/client/_app/immutable/chunks/C1w6bBje.js +0 -1
  271. package/studio-dist/client/_app/immutable/chunks/C243sn7r.js +0 -4
  272. package/studio-dist/client/_app/immutable/chunks/C2oZaDvt.js +0 -67
  273. package/studio-dist/client/_app/immutable/chunks/C3OziSQx.js +0 -1
  274. package/studio-dist/client/_app/immutable/chunks/C3hFPbMK.js +0 -2
  275. package/studio-dist/client/_app/immutable/chunks/C4P9oFvU2.js +0 -6
  276. package/studio-dist/client/_app/immutable/chunks/C5Nlanei.js +0 -8
  277. package/studio-dist/client/_app/immutable/chunks/C6KBAXPl.js +0 -15
  278. package/studio-dist/client/_app/immutable/chunks/C8MZnWta.js +0 -1
  279. package/studio-dist/client/_app/immutable/chunks/CAoan3K12.js +0 -1
  280. package/studio-dist/client/_app/immutable/chunks/CBpcINYH.js +0 -29
  281. package/studio-dist/client/_app/immutable/chunks/CE7phgWq.js +0 -1
  282. package/studio-dist/client/_app/immutable/chunks/CFb4Co_K.js +0 -2
  283. package/studio-dist/client/_app/immutable/chunks/CGWoRK3t2.js +0 -1
  284. package/studio-dist/client/_app/immutable/chunks/CH3t4xo1.js +0 -1
  285. package/studio-dist/client/_app/immutable/chunks/CHJgk6g-.js +0 -1
  286. package/studio-dist/client/_app/immutable/chunks/CHgPjuDQ.js +0 -17
  287. package/studio-dist/client/_app/immutable/chunks/CHkCZrnr.js +0 -1
  288. package/studio-dist/client/_app/immutable/chunks/CI_91WUN.js +0 -4
  289. package/studio-dist/client/_app/immutable/chunks/CJ7-hP0H.js +0 -1
  290. package/studio-dist/client/_app/immutable/chunks/CKIrNnkY2.js +0 -1
  291. package/studio-dist/client/_app/immutable/chunks/CKoQ7Ko5.js +0 -1
  292. package/studio-dist/client/_app/immutable/chunks/CM8O4zqs.js +0 -56
  293. package/studio-dist/client/_app/immutable/chunks/CMz3AVRO.js +0 -1
  294. package/studio-dist/client/_app/immutable/chunks/CNToUR3P.js +0 -13
  295. package/studio-dist/client/_app/immutable/chunks/CNuQG1yl2.js +0 -1
  296. package/studio-dist/client/_app/immutable/chunks/CQLIZtxj.js +0 -2
  297. package/studio-dist/client/_app/immutable/chunks/CQYVNgM0.js +0 -20
  298. package/studio-dist/client/_app/immutable/chunks/CQeVOmFO2.js +0 -1
  299. package/studio-dist/client/_app/immutable/chunks/CSPHHq09.js +0 -1
  300. package/studio-dist/client/_app/immutable/chunks/CTJEdbIn.js +0 -1
  301. package/studio-dist/client/_app/immutable/chunks/CTTT3wYw.js +0 -35
  302. package/studio-dist/client/_app/immutable/chunks/CV4ck7fz.js +0 -2
  303. package/studio-dist/client/_app/immutable/chunks/CXQrVnHf.js +0 -11
  304. package/studio-dist/client/_app/immutable/chunks/CXTCtOUQ.js +0 -1
  305. package/studio-dist/client/_app/immutable/chunks/C_CsU7Qq.js +0 -1
  306. package/studio-dist/client/_app/immutable/chunks/C_IZx3682.js +0 -2
  307. package/studio-dist/client/_app/immutable/chunks/CbTnu2Po2.js +0 -1
  308. package/studio-dist/client/_app/immutable/chunks/Cba8RZ1a2.js +0 -8
  309. package/studio-dist/client/_app/immutable/chunks/Cc8xxDr5.js +0 -1
  310. package/studio-dist/client/_app/immutable/chunks/CdPxoldu.js +0 -1
  311. package/studio-dist/client/_app/immutable/chunks/CdqDTozW.js +0 -1
  312. package/studio-dist/client/_app/immutable/chunks/CdsmcCfC.js +0 -25
  313. package/studio-dist/client/_app/immutable/chunks/CeYPAoY9.js +0 -1
  314. package/studio-dist/client/_app/immutable/chunks/Cf4kGS9y.js +0 -1
  315. package/studio-dist/client/_app/immutable/chunks/CfWEqXtJ2.js +0 -1
  316. package/studio-dist/client/_app/immutable/chunks/Cg7Wj2b9.js +0 -2
  317. package/studio-dist/client/_app/immutable/chunks/CgTpKZfi2.js +0 -1
  318. package/studio-dist/client/_app/immutable/chunks/Chpy9ca7.js +0 -2
  319. package/studio-dist/client/_app/immutable/chunks/CiLKuLrQ.js +0 -4
  320. package/studio-dist/client/_app/immutable/chunks/CjNDJjwu.js +0 -1
  321. package/studio-dist/client/_app/immutable/chunks/Cjde0ZKr2.js +0 -1
  322. package/studio-dist/client/_app/immutable/chunks/Cjgnade02.js +0 -3
  323. package/studio-dist/client/_app/immutable/chunks/Ckp90om52.js +0 -2
  324. package/studio-dist/client/_app/immutable/chunks/ClAPVhCD.js +0 -1
  325. package/studio-dist/client/_app/immutable/chunks/ClT89UdO.js +0 -11
  326. package/studio-dist/client/_app/immutable/chunks/CnJf5tML.js +0 -1
  327. package/studio-dist/client/_app/immutable/chunks/CpF4Rrcc2.js +0 -1
  328. package/studio-dist/client/_app/immutable/chunks/CqCka5yX2.js +0 -1
  329. package/studio-dist/client/_app/immutable/chunks/CqtqZrOl.js +0 -1
  330. package/studio-dist/client/_app/immutable/chunks/CrJdywQt.js +0 -1
  331. package/studio-dist/client/_app/immutable/chunks/Cs0zC2l2.js +0 -1
  332. package/studio-dist/client/_app/immutable/chunks/CsMn5fBs.js +0 -141
  333. package/studio-dist/client/_app/immutable/chunks/CsvKLHQQ2.js +0 -2
  334. package/studio-dist/client/_app/immutable/chunks/Ctaresvj.js +0 -1
  335. package/studio-dist/client/_app/immutable/chunks/Ctetf8vc2.js +0 -2
  336. package/studio-dist/client/_app/immutable/chunks/Cv7yW6MG.js +0 -1
  337. package/studio-dist/client/_app/immutable/chunks/CxRIz-Zd.js +0 -1
  338. package/studio-dist/client/_app/immutable/chunks/CxbvtjIH.js +0 -3
  339. package/studio-dist/client/_app/immutable/chunks/CxfeoXkZ.js +0 -2
  340. package/studio-dist/client/_app/immutable/chunks/CySLscL2.js +0 -2
  341. package/studio-dist/client/_app/immutable/chunks/D0PKQAbM.js +0 -87
  342. package/studio-dist/client/_app/immutable/chunks/D0WQsLTu.js +0 -1
  343. package/studio-dist/client/_app/immutable/chunks/D1LBVx6r2.js +0 -1
  344. package/studio-dist/client/_app/immutable/chunks/D1NlFXu9.js +0 -1
  345. package/studio-dist/client/_app/immutable/chunks/D1QfC4hu2.js +0 -1
  346. package/studio-dist/client/_app/immutable/chunks/D1yrHAn72.js +0 -1
  347. package/studio-dist/client/_app/immutable/chunks/D2pa4reh.js +0 -7
  348. package/studio-dist/client/_app/immutable/chunks/D3QsWcIw2.js +0 -2
  349. package/studio-dist/client/_app/immutable/chunks/D4OkQuPl2.js +0 -1
  350. package/studio-dist/client/_app/immutable/chunks/D6UDnATk2.js +0 -1
  351. package/studio-dist/client/_app/immutable/chunks/D7w7HllH.js +0 -38
  352. package/studio-dist/client/_app/immutable/chunks/D93KpglN.js +0 -1
  353. package/studio-dist/client/_app/immutable/chunks/D99fQj2G2.js +0 -1
  354. package/studio-dist/client/_app/immutable/chunks/DB5ifLM-.js +0 -3
  355. package/studio-dist/client/_app/immutable/chunks/DBhP8ifO2.js +0 -15
  356. package/studio-dist/client/_app/immutable/chunks/DF_4OWhj.js +0 -2
  357. package/studio-dist/client/_app/immutable/chunks/DFpNK1vs2.js +0 -1
  358. package/studio-dist/client/_app/immutable/chunks/DGRYMk-W.js +0 -142
  359. package/studio-dist/client/_app/immutable/chunks/DH3CcQwq.js +0 -1
  360. package/studio-dist/client/_app/immutable/chunks/DHQfJeLU.js +0 -4
  361. package/studio-dist/client/_app/immutable/chunks/DL89yEDy2.js +0 -1
  362. package/studio-dist/client/_app/immutable/chunks/DLRku_0p2.js +0 -2
  363. package/studio-dist/client/_app/immutable/chunks/DMZkjPYT2.js +0 -1
  364. package/studio-dist/client/_app/immutable/chunks/DNP72foU.js +0 -1
  365. package/studio-dist/client/_app/immutable/chunks/DO2GztVm.js +0 -1
  366. package/studio-dist/client/_app/immutable/chunks/DOVNXmCK2.js +0 -1
  367. package/studio-dist/client/_app/immutable/chunks/DOqzs8kl2.js +0 -1
  368. package/studio-dist/client/_app/immutable/chunks/DQnR63hh2.js +0 -7
  369. package/studio-dist/client/_app/immutable/chunks/DTxtWPkw.js +0 -1
  370. package/studio-dist/client/_app/immutable/chunks/DVDgCC9A2.js +0 -20
  371. package/studio-dist/client/_app/immutable/chunks/DVVCJYjz.js +0 -1
  372. package/studio-dist/client/_app/immutable/chunks/DWRhYUMj2.js +0 -1
  373. package/studio-dist/client/_app/immutable/chunks/DWavBJBI.js +0 -4
  374. package/studio-dist/client/_app/immutable/chunks/DXDSWRw-.js +0 -1
  375. package/studio-dist/client/_app/immutable/chunks/DXoHaH4a.js +0 -2
  376. package/studio-dist/client/_app/immutable/chunks/DXpCX2Hi.js +0 -1
  377. package/studio-dist/client/_app/immutable/chunks/DYP3EJMY.js +0 -1
  378. package/studio-dist/client/_app/immutable/chunks/DYQphR_V.js +0 -1
  379. package/studio-dist/client/_app/immutable/chunks/DYUlIivP.js +0 -1
  380. package/studio-dist/client/_app/immutable/chunks/DYo2ye8X2.js +0 -1
  381. package/studio-dist/client/_app/immutable/chunks/DYxFu8yV.js +0 -1
  382. package/studio-dist/client/_app/immutable/chunks/DZ66sRb6.js +0 -1
  383. package/studio-dist/client/_app/immutable/chunks/D_XTiylm2.js +0 -1
  384. package/studio-dist/client/_app/immutable/chunks/DaRv9jn22.js +0 -1
  385. package/studio-dist/client/_app/immutable/chunks/DaXb9i_E.js +0 -1
  386. package/studio-dist/client/_app/immutable/chunks/Dccf4VP2.js +0 -24
  387. package/studio-dist/client/_app/immutable/chunks/DdODs-Sb.js +0 -1
  388. package/studio-dist/client/_app/immutable/chunks/DdekYWer.js +0 -2
  389. package/studio-dist/client/_app/immutable/chunks/DeHaovsF.js +0 -1
  390. package/studio-dist/client/_app/immutable/chunks/DeRRkRO52.js +0 -1
  391. package/studio-dist/client/_app/immutable/chunks/DeWI5qCn.js +0 -1
  392. package/studio-dist/client/_app/immutable/chunks/DfivR-Md.js +0 -1
  393. package/studio-dist/client/_app/immutable/chunks/DgmxpSo7.js +0 -1
  394. package/studio-dist/client/_app/immutable/chunks/DhPLWrun2.js +0 -1
  395. package/studio-dist/client/_app/immutable/chunks/DhhrVdfi.js +0 -2
  396. package/studio-dist/client/_app/immutable/chunks/Djr2dbcc2.js +0 -37
  397. package/studio-dist/client/_app/immutable/chunks/DjuRo5vv.js +0 -1
  398. package/studio-dist/client/_app/immutable/chunks/Djz4EDzO.js +0 -1
  399. package/studio-dist/client/_app/immutable/chunks/DkRfaw-K2.js +0 -1
  400. package/studio-dist/client/_app/immutable/chunks/DksB5g4W2.js +0 -1
  401. package/studio-dist/client/_app/immutable/chunks/Dmqenb5z2.js +0 -1
  402. package/studio-dist/client/_app/immutable/chunks/DnbToVyf.js +0 -2
  403. package/studio-dist/client/_app/immutable/chunks/DpGZwlmj.js +0 -1
  404. package/studio-dist/client/_app/immutable/chunks/Dq0lE5C32.js +0 -1
  405. package/studio-dist/client/_app/immutable/chunks/Dq54XqHT2.js +0 -1
  406. package/studio-dist/client/_app/immutable/chunks/DqK84mbb.js +0 -1
  407. package/studio-dist/client/_app/immutable/chunks/DqjFtSJD.js +0 -2
  408. package/studio-dist/client/_app/immutable/chunks/DrKWWDpL.js +0 -1
  409. package/studio-dist/client/_app/immutable/chunks/DsQIgu-4.js +0 -1
  410. package/studio-dist/client/_app/immutable/chunks/DsqdgJHS2.js +0 -1
  411. package/studio-dist/client/_app/immutable/chunks/DtNkZUkq.js +0 -17
  412. package/studio-dist/client/_app/immutable/chunks/DutIls4V2.js +0 -1
  413. package/studio-dist/client/_app/immutable/chunks/DvxYFW4C.js +0 -1
  414. package/studio-dist/client/_app/immutable/chunks/Dwp-76GQ.js +0 -2
  415. package/studio-dist/client/_app/immutable/chunks/DxSZd548.js +0 -1
  416. package/studio-dist/client/_app/immutable/chunks/DxiUMhk0.js +0 -5
  417. package/studio-dist/client/_app/immutable/chunks/DxslLswf.js +0 -23
  418. package/studio-dist/client/_app/immutable/chunks/Dy7EjGgb2.js +0 -9
  419. package/studio-dist/client/_app/immutable/chunks/DyGQ_VXC.js +0 -3
  420. package/studio-dist/client/_app/immutable/chunks/DySe3kTV2.js +0 -1
  421. package/studio-dist/client/_app/immutable/chunks/DyzE2Uxw.js +0 -1
  422. package/studio-dist/client/_app/immutable/chunks/DzhuJaxE2.js +0 -2
  423. package/studio-dist/client/_app/immutable/chunks/FmMHyrh6.js +0 -1
  424. package/studio-dist/client/_app/immutable/chunks/Gxs0J274.js +0 -5
  425. package/studio-dist/client/_app/immutable/chunks/HwtzDYxN.js +0 -2
  426. package/studio-dist/client/_app/immutable/chunks/ITRz_Q7H2.js +0 -15
  427. package/studio-dist/client/_app/immutable/chunks/KDNP98XY2.js +0 -1
  428. package/studio-dist/client/_app/immutable/chunks/LmVjFhpk2.js +0 -1
  429. package/studio-dist/client/_app/immutable/chunks/MiAejGV_.js +0 -1
  430. package/studio-dist/client/_app/immutable/chunks/Ml4JR6Jz2.js +0 -2
  431. package/studio-dist/client/_app/immutable/chunks/NU5S3nNs2.js +0 -2
  432. package/studio-dist/client/_app/immutable/chunks/Oh5zPjv3.js +0 -2
  433. package/studio-dist/client/_app/immutable/chunks/QZkvJ9vi.js +0 -1
  434. package/studio-dist/client/_app/immutable/chunks/Rbn8UpBm.js +0 -1
  435. package/studio-dist/client/_app/immutable/chunks/SPX3gYwn2.js +0 -1
  436. package/studio-dist/client/_app/immutable/chunks/UyeQuL132.js +0 -12
  437. package/studio-dist/client/_app/immutable/chunks/VQszoXcV.js +0 -1
  438. package/studio-dist/client/_app/immutable/chunks/VtZsEMxD.js +0 -1
  439. package/studio-dist/client/_app/immutable/chunks/W2IeK61p2.js +0 -1
  440. package/studio-dist/client/_app/immutable/chunks/Wadww7ZG.js +0 -1
  441. package/studio-dist/client/_app/immutable/chunks/WgfA1zWk2.js +0 -1
  442. package/studio-dist/client/_app/immutable/chunks/WxIgAS1f.js +0 -21
  443. package/studio-dist/client/_app/immutable/chunks/XrsBoOj9.js +0 -2
  444. package/studio-dist/client/_app/immutable/chunks/Y3PX4poR.js +0 -2
  445. package/studio-dist/client/_app/immutable/chunks/YxfwqiF32.js +0 -1
  446. package/studio-dist/client/_app/immutable/chunks/Z7uO1YaO.js +0 -1
  447. package/studio-dist/client/_app/immutable/chunks/_4ykQk_8.js +0 -1
  448. package/studio-dist/client/_app/immutable/chunks/_kRcZFVn.js +0 -1
  449. package/studio-dist/client/_app/immutable/chunks/aQNM7eVA2.js +0 -1
  450. package/studio-dist/client/_app/immutable/chunks/bHKz_Fb2.js +0 -45
  451. package/studio-dist/client/_app/immutable/chunks/bJRyRGSZ.js +0 -1
  452. package/studio-dist/client/_app/immutable/chunks/dlzF6lnR.js +0 -1
  453. package/studio-dist/client/_app/immutable/chunks/fjRbpfEr2.js +0 -26
  454. package/studio-dist/client/_app/immutable/chunks/imLk4if5.js +0 -3
  455. package/studio-dist/client/_app/immutable/chunks/lgRG0R-32.js +0 -1
  456. package/studio-dist/client/_app/immutable/chunks/mFhCjxQJ2.js +0 -1
  457. package/studio-dist/client/_app/immutable/chunks/mgnH6qYg.js +0 -1
  458. package/studio-dist/client/_app/immutable/chunks/n6M_5LoW.js +0 -1
  459. package/studio-dist/client/_app/immutable/chunks/nLIOiDZp2.js +0 -1
  460. package/studio-dist/client/_app/immutable/chunks/nab7WB3u2.js +0 -1
  461. package/studio-dist/client/_app/immutable/chunks/orUmAKoW2.js +0 -1
  462. package/studio-dist/client/_app/immutable/chunks/p-fLQDfY2.js +0 -63
  463. package/studio-dist/client/_app/immutable/chunks/s0-WkOGk2.js +0 -1
  464. package/studio-dist/client/_app/immutable/chunks/sPuXfbUF.js +0 -1
  465. package/studio-dist/client/_app/immutable/chunks/t4h0vrqR2.js +0 -2
  466. package/studio-dist/client/_app/immutable/chunks/uE83FKL-.js +0 -1
  467. package/studio-dist/client/_app/immutable/chunks/uzhXlm0g2.js +0 -1
  468. package/studio-dist/client/_app/immutable/chunks/vTrEsGlD2.js +0 -1
  469. package/studio-dist/client/_app/immutable/chunks/xJgCk3dx2.js +0 -28
  470. package/studio-dist/client/_app/immutable/chunks/z0Mt579s2.js +0 -13
  471. package/studio-dist/client/_app/immutable/entry/app.BoQ7cgT2.js +0 -2
  472. package/studio-dist/client/_app/immutable/entry/start.Cg1v8DU4.js +0 -1
  473. package/studio-dist/client/_app/immutable/nodes/25.ddZ1_EFk.js +0 -1
  474. package/studio-dist/client/_app/immutable/nodes/26.6OcmQbLV.js +0 -1
  475. package/studio-dist/client/_app/immutable/nodes/4.CCjOEwVU.js +0 -1
  476. package/studio-dist/server/chunks/0-CvsKDxQ6.js +0 -126
  477. package/studio-dist/server/chunks/1-ck_x2Hf0.js +0 -9
  478. package/studio-dist/server/chunks/20-DVU22np7.js +0 -142
  479. package/studio-dist/server/chunks/23-D_tUnnoc.js +0 -181
  480. package/studio-dist/server/chunks/24-CVlymvLF.js +0 -151
  481. package/studio-dist/server/chunks/AwsRestJsonProtocol-BZuoNBmL.js +0 -416
  482. package/studio-dist/server/chunks/UnionSerde-BflIkhKj.js +0 -2653
  483. package/studio-dist/server/chunks/_dispatch-ncuRztUQ.js +0 -5597
  484. package/studio-dist/server/chunks/_server.ts-4NyKAneX.js +0 -116
  485. package/studio-dist/server/chunks/_server.ts-7hGdxdEI.js +0 -136
  486. package/studio-dist/server/chunks/_server.ts-B6b3b-yA.js +0 -131
  487. package/studio-dist/server/chunks/_server.ts-BOgGqaZp.js +0 -144
  488. package/studio-dist/server/chunks/_server.ts-BV1HiKZ0.js +0 -120
  489. package/studio-dist/server/chunks/_server.ts-BWp3g6Cr.js +0 -110
  490. package/studio-dist/server/chunks/_server.ts-C5NF-UgC.js +0 -122
  491. package/studio-dist/server/chunks/_server.ts-CDMurH5m.js +0 -2301
  492. package/studio-dist/server/chunks/_server.ts-COJHCgbq.js +0 -127
  493. package/studio-dist/server/chunks/_server.ts-CUl-Utkt.js +0 -148
  494. package/studio-dist/server/chunks/_server.ts-D0GAFJRb.js +0 -156
  495. package/studio-dist/server/chunks/_server.ts-DA6p3pmi.js +0 -117
  496. package/studio-dist/server/chunks/_server.ts-DThYFaZj.js +0 -160
  497. package/studio-dist/server/chunks/_server.ts-D_3Pm0gr.js +0 -179
  498. package/studio-dist/server/chunks/_server.ts-DcHxdMsm.js +0 -144
  499. package/studio-dist/server/chunks/_server.ts-Dlfadh2I.js +0 -144
  500. package/studio-dist/server/chunks/_server.ts-JallJnps.js +0 -240
  501. package/studio-dist/server/chunks/_server.ts-NEFTbJpM.js +0 -142
  502. package/studio-dist/server/chunks/_server.ts-d-2NvRwX.js +0 -122
  503. package/studio-dist/server/chunks/_server.ts-rUWMLkIw.js +0 -146
  504. package/studio-dist/server/chunks/abort-events-CDRAJSqb.js +0 -30
  505. package/studio-dist/server/chunks/adapters-BkMgPNUM.js +0 -359
  506. package/studio-dist/server/chunks/adapters2-CQ3PzoaK.js +0 -28
  507. package/studio-dist/server/chunks/api-mode2-3W-I1-XO.js +0 -36
  508. package/studio-dist/server/chunks/api2-CmNQzb0b.js +0 -96
  509. package/studio-dist/server/chunks/attention-consolidate-CidG1jfH.js +0 -485
  510. package/studio-dist/server/chunks/audit3-DMO_fUGp.js +0 -52
  511. package/studio-dist/server/chunks/auto-extract-B84La1Vs.js +0 -34
  512. package/studio-dist/server/chunks/brain-consolidator-JGm6mzFf.js +0 -373
  513. package/studio-dist/server/chunks/brain-doctor-Dc2WqVbs.js +0 -311
  514. package/studio-dist/server/chunks/brain-embedding-Djw9ekXu.js +0 -42
  515. package/studio-dist/server/chunks/brain-lifecycle-BOOa876K.js +0 -969
  516. package/studio-dist/server/chunks/brain-maintenance-U6VvsvmK.js +0 -133
  517. package/studio-dist/server/chunks/brain-maintenance2-CwVSmfDT.js +0 -43
  518. package/studio-dist/server/chunks/brain-retrieval2-exR8mdgh.js +0 -751
  519. package/studio-dist/server/chunks/brain-search-CpSh-SNi.js +0 -48
  520. package/studio-dist/server/chunks/brain-search2-CwI2cXgg.js +0 -716
  521. package/studio-dist/server/chunks/brain-similarity-DI4yzm9e.js +0 -113
  522. package/studio-dist/server/chunks/brain-stdp2-BxSBIlSr.js +0 -960
  523. package/studio-dist/server/chunks/brain-writer-handlers-Dwu0QCAA.js +0 -188
  524. package/studio-dist/server/chunks/brain-writer-thread-6n7wI7Gy.js +0 -360
  525. package/studio-dist/server/chunks/branch-lock-Cq7zzmFK.js +0 -1118
  526. package/studio-dist/server/chunks/branch-lock2-CmDc4CZW.js +0 -45
  527. package/studio-dist/server/chunks/cancelled-child-waiver-audit-DkesrN83.js +0 -54
  528. package/studio-dist/server/chunks/catalog-model-resolver-Bas9qnoP.js +0 -9
  529. package/studio-dist/server/chunks/catalog-model-resolver2-Cexk2TN0.js +0 -237
  530. package/studio-dist/server/chunks/catalog-resolver-CLot3XJO.js +0 -260
  531. package/studio-dist/server/chunks/catalog-resolver2-JmKb91kY.js +0 -33
  532. package/studio-dist/server/chunks/chunk-DDP5xfzh.js +0 -39
  533. package/studio-dist/server/chunks/cleo-home-CCfe6kAQ.js +0 -64
  534. package/studio-dist/server/chunks/concrete-session2-bb_vxJ2N.js +0 -43
  535. package/studio-dist/server/chunks/config-DHj9CcFs.js +0 -386
  536. package/studio-dist/server/chunks/config2-F6PPIn7D.js +0 -35
  537. package/studio-dist/server/chunks/connections-BMGJVYcS.js +0 -98
  538. package/studio-dist/server/chunks/credential-pool-vF6NdtT9.js +0 -4600
  539. package/studio-dist/server/chunks/credentials-C7EJFf5O.js +0 -35
  540. package/studio-dist/server/chunks/credentials-store-CFygIuB2.js +0 -35
  541. package/studio-dist/server/chunks/cross-db-cleanup-1LWTUKPi.js +0 -147
  542. package/studio-dist/server/chunks/data-accessor-CWgVndbR.js +0 -72
  543. package/studio-dist/server/chunks/data-safety-central-DaFxK27G.js +0 -683
  544. package/studio-dist/server/chunks/decisions-CmVXV2-H.js +0 -574
  545. package/studio-dist/server/chunks/decisions2-XQsSYdxa.js +0 -48
  546. package/studio-dist/server/chunks/depends-waiver-audit-CUmlBYHx.js +0 -56
  547. package/studio-dist/server/chunks/dialectic-evaluator2-BOyyXhdI.js +0 -96
  548. package/studio-dist/server/chunks/dist-es2-DQy2Mjn_.js +0 -43
  549. package/studio-dist/server/chunks/dist-es3-CBygU4n5.js +0 -365
  550. package/studio-dist/server/chunks/dist-es4-CavbNu4B.js +0 -162
  551. package/studio-dist/server/chunks/dist-es5-Crpm8Wsl.js +0 -465
  552. package/studio-dist/server/chunks/dist-es6-CgePHzh4.js +0 -99
  553. package/studio-dist/server/chunks/dist-es7-k6c5GEd7.js +0 -311
  554. package/studio-dist/server/chunks/dist-es8-Bd9v0_pE.js +0 -91
  555. package/studio-dist/server/chunks/dist3-23bsJhRw.js +0 -27
  556. package/studio-dist/server/chunks/dist4-DmC1zSXi.js +0 -35618
  557. package/studio-dist/server/chunks/dual-scope-db-DKnWu1KM.js +0 -5672
  558. package/studio-dist/server/chunks/dual-scope-db2-Dht3luRw.js +0 -31
  559. package/studio-dist/server/chunks/duplicate-bypass-audit-BN5w1H2y.js +0 -36
  560. package/studio-dist/server/chunks/duplicate-detector-CaVFMKdE.js +0 -692
  561. package/studio-dist/server/chunks/edge-types-CgBvb0w1.js +0 -28
  562. package/studio-dist/server/chunks/embedding-local-xEnym8Ho.js +0 -92
  563. package/studio-dist/server/chunks/event-streams-Bi2p_fVo.js +0 -232
  564. package/studio-dist/server/chunks/execution-learning-BVCw7Plq.js +0 -278
  565. package/studio-dist/server/chunks/exodus-BBuuN6aA.js +0 -2594
  566. package/studio-dist/server/chunks/externalDataInterceptor-C3C4cObe.js +0 -21
  567. package/studio-dist/server/chunks/extraction-gate-DDNBq7gu.js +0 -48
  568. package/studio-dist/server/chunks/extraction-gate2-D77EZBQ6.js +0 -375
  569. package/studio-dist/server/chunks/getSSOTokenFromFile-yZAJxDci.js +0 -21
  570. package/studio-dist/server/chunks/governor2-CtfV3wfX.js +0 -923
  571. package/studio-dist/server/chunks/graph-auto-populate-Dmsr9ZJM.js +0 -42
  572. package/studio-dist/server/chunks/graph-auto-populate2-Cz0qeebM.js +0 -156
  573. package/studio-dist/server/chunks/graph-memory-bridge-CY8ft_d7.js +0 -43
  574. package/studio-dist/server/chunks/graph-memory-bridge2-Cd0XZwqc.js +0 -429
  575. package/studio-dist/server/chunks/handler-helpers-AANBGA_p.js +0 -49
  576. package/studio-dist/server/chunks/hash-Cm6yMET4.js +0 -14
  577. package/studio-dist/server/chunks/health-monitor-FepUZN1m.js +0 -106
  578. package/studio-dist/server/chunks/identity-DRpurt56.js +0 -30
  579. package/studio-dist/server/chunks/identity2-DeAB5RXE.js +0 -114
  580. package/studio-dist/server/chunks/index-61916rmV.js +0 -632
  581. package/studio-dist/server/chunks/index-DAgVDouG.js +0 -268
  582. package/studio-dist/server/chunks/index-Dtt_h58T.js +0 -2116
  583. package/studio-dist/server/chunks/indexes-DZ52grq6.js +0 -615
  584. package/studio-dist/server/chunks/json-Bfixam3g.js +0 -126
  585. package/studio-dist/server/chunks/learnings-D6Y3YGMU.js +0 -47
  586. package/studio-dist/server/chunks/learnings2-MwBdR9vb.js +0 -171
  587. package/studio-dist/server/chunks/lifecycle-ops2-V2CR5-7X.js +0 -121
  588. package/studio-dist/server/chunks/list-BhObczvn.js +0 -229
  589. package/studio-dist/server/chunks/living-brain2-j0B_Ir8j.js +0 -285
  590. package/studio-dist/server/chunks/llm-backend-resolver-D4ANvUPL.js +0 -295
  591. package/studio-dist/server/chunks/llm-extraction-DVCu4heR.js +0 -408
  592. package/studio-dist/server/chunks/loadSharedConfigFiles-umvW7kuz.js +0 -73
  593. package/studio-dist/server/chunks/loadSso-iidd5iKx.js +0 -599
  594. package/studio-dist/server/chunks/local-model-fit-B0TxifnX.js +0 -53
  595. package/studio-dist/server/chunks/local-model-fit2-BMqo6GJm.js +0 -2664
  596. package/studio-dist/server/chunks/lock-CA7d6lj7.js +0 -57
  597. package/studio-dist/server/chunks/logger-DQIoyZbq.js +0 -34
  598. package/studio-dist/server/chunks/memory-BUbicBbE.js +0 -618
  599. package/studio-dist/server/chunks/memory-accessor-i3P-RHSg.js +0 -42
  600. package/studio-dist/server/chunks/memory-accessor2-B981tHDR.js +0 -467
  601. package/studio-dist/server/chunks/memory-bridge-BOlEWg9w.js +0 -424
  602. package/studio-dist/server/chunks/memory-sqlite2-B7dq8doO.js +0 -42
  603. package/studio-dist/server/chunks/model-runner2-B71xjp4y.js +0 -43
  604. package/studio-dist/server/chunks/mvi-helpers-BNsJ8ZpQ.js +0 -59
  605. package/studio-dist/server/chunks/nexus-plasticity-BTfU8cW_.js +0 -269
  606. package/studio-dist/server/chunks/nexus-risk-audit-p379-TU5.js +0 -54
  607. package/studio-dist/server/chunks/nexus-schema-zeygY8OD.js +0 -11
  608. package/studio-dist/server/chunks/nexus-schema2-DP0Qd7CA.js +0 -444
  609. package/studio-dist/server/chunks/nexus-sqlite-BVNIpwc7.js +0 -36
  610. package/studio-dist/server/chunks/nexus-sqlite2-BBfY2xnY.js +0 -1103
  611. package/studio-dist/server/chunks/node-http-handler-CJI8kn7X.js +0 -386
  612. package/studio-dist/server/chunks/observe-Bo9veHGe.js +0 -47
  613. package/studio-dist/server/chunks/observe2-wzO0MaMY.js +0 -245
  614. package/studio-dist/server/chunks/observer-reflector-BwNOuq1d.js +0 -62
  615. package/studio-dist/server/chunks/observer-reflector2-ggtC1hmk.js +0 -478
  616. package/studio-dist/server/chunks/on-open-Wpcw7DV4.js +0 -740
  617. package/studio-dist/server/chunks/open-cleo-db--8sYNaYY.js +0 -70
  618. package/studio-dist/server/chunks/parseKnownFiles-Dg0pMFcT.js +0 -18
  619. package/studio-dist/server/chunks/parseUrl-qgGfl-Vh.js +0 -120
  620. package/studio-dist/server/chunks/paths-CV7S5-Zm.js +0 -30012
  621. package/studio-dist/server/chunks/patterns-lh5kn13I.js +0 -48
  622. package/studio-dist/server/chunks/patterns2-CzIcT-ai.js +0 -177
  623. package/studio-dist/server/chunks/pipeline-stage-IB_pOft-.js +0 -63
  624. package/studio-dist/server/chunks/prediction-D1lSGJ4c.js +0 -217
  625. package/studio-dist/server/chunks/premature-close-audit-VG09uAco.js +0 -53
  626. package/studio-dist/server/chunks/project-context-BjiqfEBi.js +0 -166
  627. package/studio-dist/server/chunks/provider-registry2-Cu7rAF0R.js +0 -35
  628. package/studio-dist/server/chunks/quality-feedback-CuCGEI6S.js +0 -371
  629. package/studio-dist/server/chunks/quality-scoring-CCPuRQmJ.js +0 -160
  630. package/studio-dist/server/chunks/query-ops-DCrjbZb9.js +0 -78
  631. package/studio-dist/server/chunks/query-promise-BkPmGPJy.js +0 -1257
  632. package/studio-dist/server/chunks/readFile-CxwXhymG.js +0 -31
  633. package/studio-dist/server/chunks/registry-CL2gN1zd.js +0 -27
  634. package/studio-dist/server/chunks/registry2-DoPYJnUW.js +0 -233
  635. package/studio-dist/server/chunks/registry3-BajEb-ll.js +0 -42
  636. package/studio-dist/server/chunks/registry4-DCqffZkT.js +0 -142
  637. package/studio-dist/server/chunks/retry-B3oEKYpp.js +0 -105
  638. package/studio-dist/server/chunks/role-executor-CC8BU54L.js +0 -25379
  639. package/studio-dist/server/chunks/role-resolver-D9QaDT0e.js +0 -6544
  640. package/studio-dist/server/chunks/role-resolver2-nkhzS1oy.js +0 -37
  641. package/studio-dist/server/chunks/rollup-CiefjN_Y.js +0 -194
  642. package/studio-dist/server/chunks/safety-data-accessor-CniDmGJO.js +0 -276
  643. package/studio-dist/server/chunks/service-connections-accessor-yBCdcgU-.js +0 -282
  644. package/studio-dist/server/chunks/session-factory-vbengc42.js +0 -96
  645. package/studio-dist/server/chunks/session-grade-BF4ZZtN_.js +0 -244
  646. package/studio-dist/server/chunks/session-journal-Bvey70Ur.js +0 -235
  647. package/studio-dist/server/chunks/session-narrative-BirZINSU.js +0 -304
  648. package/studio-dist/server/chunks/session-store--N_xHxUH.js +0 -557
  649. package/studio-dist/server/chunks/session-store2-DAM-eVTH.js +0 -43
  650. package/studio-dist/server/chunks/sessions-33DD4hkt.js +0 -2273
  651. package/studio-dist/server/chunks/sessions2-BHswKRDP.js +0 -50
  652. package/studio-dist/server/chunks/sigil-B-RznFXz.js +0 -33
  653. package/studio-dist/server/chunks/sigil2-jRMG5DuR.js +0 -47
  654. package/studio-dist/server/chunks/signin-BAsW3mM8.js +0 -644
  655. package/studio-dist/server/chunks/sleep-consolidation-BnSwXrvq.js +0 -823
  656. package/studio-dist/server/chunks/specialists-B_ZbpQlK.js +0 -441
  657. package/studio-dist/server/chunks/sqlite-Bm5LzbPs.js +0 -5977
  658. package/studio-dist/server/chunks/sqlite-backup-CFG1-b2e.js +0 -42
  659. package/studio-dist/server/chunks/sqlite-data-accessor-DD_RFX6r.js +0 -987
  660. package/studio-dist/server/chunks/sqlite-data-accessor2-CRmgNBnq.js +0 -44
  661. package/studio-dist/server/chunks/sqlite-native-BwlIqtbs.js +0 -42
  662. package/studio-dist/server/chunks/sqlite2-CUPut2fh.js +0 -42
  663. package/studio-dist/server/chunks/src2-DK8DKufK.js +0 -290
  664. package/studio-dist/server/chunks/src3-BJjf7XRG.js +0 -798
  665. package/studio-dist/server/chunks/src4-DNleK_t_.js +0 -28
  666. package/studio-dist/server/chunks/sso-oidc-eUvwseuL.js +0 -861
  667. package/studio-dist/server/chunks/storage-B9UA3BHR.js +0 -198
  668. package/studio-dist/server/chunks/sts-g7LDMLEd.js +0 -4655
  669. package/studio-dist/server/chunks/surprisal-CwTfWQi8.js +0 -224
  670. package/studio-dist/server/chunks/surprisal-tree-7dfHsuw1.js +0 -230
  671. package/studio-dist/server/chunks/system-resolver2-Bzhue_zQ.js +0 -53
  672. package/studio-dist/server/chunks/tasks-SHX7UPGY.js +0 -19694
  673. package/studio-dist/server/chunks/tasks-schema2-CTMoQKQy.js +0 -42
  674. package/studio-dist/server/chunks/temporal-supersession-DP4GPG_B.js +0 -298
  675. package/studio-dist/server/chunks/token-cAhAD9f9.js +0 -139
  676. package/studio-dist/server/chunks/token-util-D6drEz8_.js +0 -353
  677. package/studio-dist/server/chunks/token-util2-8UPSGvbb.js +0 -97
  678. package/studio-dist/server/chunks/transcript-scanner-kJWhWmlg.js +0 -53
  679. package/studio-dist/server/chunks/transformers.node-_xbxmK5p.js +0 -38475
  680. package/studio-dist/server/chunks/typed-query-l1D_QElt.js +0 -18
  681. package/studio-dist/server/chunks/unique-constraint-BZrrwgwc.js +0 -88
  682. package/studio-dist/server/chunks/update-B2YVBZG0.js +0 -1594
  683. package/studio-dist/server/chunks/user-profile-B61ZhVmC.js +0 -89
  684. package/studio-dist/server/chunks/utils-BPSZyajG.js +0 -1176
  685. package/studio-dist/server/chunks/validation-rules-CE27rtoF.js +0 -44
  686. package/studio-dist/server/chunks/zod-DsAeKNLm.js +0 -141
  687. /package/studio-dist/client/_app/immutable/chunks/{CQCxd1p9.js → B8WnZMYa.js} +0 -0
  688. /package/studio-dist/client/_app/immutable/chunks/{D13Quv9e2.js → B_0_YCYG.js} +0 -0
  689. /package/studio-dist/client/_app/immutable/chunks/{djL6V-tr.js → CqgtdAx_.js} +0 -0
  690. /package/studio-dist/client/_app/immutable/chunks/{_FU7h_8p2.js → KrUPZzXZ.js} +0 -0
@@ -1,923 +0,0 @@
1
- import { g as getCleoHome, h as getCleoHome$1, L as LeaseIpcRequestEnvelopeSchema, G as LEASE_IPC_PROTOCOL_VERSION, H as LeaseIpcResponseEnvelopeSchema, b as getLogger, I as DEFAULT_RESOURCE_RETRY_AFTER_MS } from './paths-CV7S5-Zm.js';
2
- import { EventEmitter } from 'node:events';
3
- import { readFile, stat } from 'node:fs/promises';
4
- import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
5
- import { join } from 'node:path';
6
- import { availableParallelism, totalmem } from 'node:os';
7
- import { l as lockfile } from './index-Dtt_h58T.js';
8
- import { connect } from 'node:net';
9
- import 'node:diagnostics_channel';
10
- import 'fs';
11
- import 'events';
12
- import 'util';
13
- import 'path';
14
- import 'assert';
15
- import 'worker_threads';
16
- import 'module';
17
- import 'node:url';
18
- import 'url';
19
- import 'buffer';
20
- import 'node:module';
21
- import 'node:child_process';
22
- import 'node:crypto';
23
- import 'node:process';
24
- import 'node:async_hooks';
25
- import 'constants';
26
- import 'stream';
27
-
28
- //#region ../core/dist/resources/linux-backend.js
29
- /**
30
- * Linux ResourceMonitor backend.
31
- *
32
- * Reads:
33
- * - `/proc/pressure/memory` — global PSI (some + full)
34
- * - `<cgroupSlicePath>/memory.pressure` — cleo.slice scoped PSI
35
- * - `/proc/meminfo` — MemAvailable
36
- * - `<walPath>` size stat — WAL growth signal (DHQ-050 starvation class)
37
- * - `/proc/<pid>/smaps_rollup` — per-child RSS (SEPARATE low-frequency path)
38
- *
39
- * ## Read-count discipline (Amendment 1)
40
- *
41
- * `sample()` calls the injected reader at most:
42
- * - 1× for `/proc/pressure/memory`
43
- * - 1× for the slice `memory.pressure` (if configured)
44
- * - 1× for `/proc/meminfo`
45
- * - N× stat calls for N configured WAL paths
46
- *
47
- * smaps_rollup reads are on a SEPARATE `sweepChildRss()` method and are
48
- * structurally impossible to reach from the `sample()` hot path.
49
- *
50
- * ## oomd threshold facts (Amendment 4)
51
- *
52
- * systemd-oomd on Fedora defaults to 80%/20s on user@1000.service.
53
- * Our hold/backoff thresholds (some avg10 >10% / full avg10 >5%) sit far
54
- * below that line, ensuring cleo always throttles before oomd kills.
55
- *
56
- * @module resources/linux-backend
57
- * @task T11994
58
- * @epic T11992
59
- */
60
- /**
61
- * Parse a single PSI line.
62
- *
63
- * Format: `some avg10=0.42 avg60=0.31 avg300=0.20 total=1234567`
64
- *
65
- * Returns `null` when the line does not match the expected format.
66
- */
67
- function parsePressureLine(line) {
68
- const avg10Match = /avg10=([\d.]+)/.exec(line);
69
- const avg60Match = /avg60=([\d.]+)/.exec(line);
70
- const avg300Match = /avg300=([\d.]+)/.exec(line);
71
- const totalMatch = /total=(\d+)/.exec(line);
72
- if (!avg10Match?.[1] || !avg60Match?.[1] || !avg300Match?.[1] || !totalMatch?.[1]) return null;
73
- return {
74
- avg10: parseFloat(avg10Match[1]),
75
- avg60: parseFloat(avg60Match[1]),
76
- avg300: parseFloat(avg300Match[1]),
77
- totalUs: parseInt(totalMatch[1], 10)
78
- };
79
- }
80
- /**
81
- * Parse a PSI file (two lines: `some ...` and `full ...`).
82
- *
83
- * Returns `null` when the content is unreadable / unparseable — callers
84
- * treat this as "pressure interface absent" (degraded mode).
85
- */
86
- function parsePsiFile(content) {
87
- const lines = content.split("\n").map((l) => l.trim()).filter(Boolean);
88
- let some = null;
89
- let full = null;
90
- for (const line of lines) if (line.startsWith("some ")) some = parsePressureLine(line);
91
- else if (line.startsWith("full ")) full = parsePressureLine(line);
92
- if (!some) return null;
93
- return {
94
- some,
95
- full
96
- };
97
- }
98
- /**
99
- * Parse `MemAvailable` from `/proc/meminfo`.
100
- *
101
- * Format: `MemAvailable: 42233788 kB`
102
- *
103
- * Returns `null` when the field is absent (non-Linux / old kernel).
104
- * Reuses the same parsing pattern as `packages/core/src/llm/local-model-fit.ts:269`.
105
- */
106
- function parseMemAvailable(content) {
107
- for (const line of content.split("\n")) if (line.startsWith("MemAvailable:")) {
108
- const match = /MemAvailable:\s+(\d+)\s+kB/.exec(line);
109
- if (match?.[1]) return parseInt(match[1], 10) * 1024;
110
- }
111
- return null;
112
- }
113
- /**
114
- * Parse a `/proc/<pid>/smaps_rollup` file for RSS and PSS.
115
- *
116
- * Relevant fields:
117
- * `Rss: 12345 kB`
118
- * `Pss: 9876 kB`
119
- *
120
- * Returns `null` when either field is absent.
121
- */
122
- function parseSmapsRollup(content) {
123
- let rssKb = null;
124
- let pssKb = null;
125
- for (const line of content.split("\n")) if (line.startsWith("Rss:")) {
126
- const m = /Rss:\s+(\d+)\s+kB/.exec(line);
127
- if (m?.[1]) rssKb = parseInt(m[1], 10);
128
- } else if (line.startsWith("Pss:")) {
129
- const m = /Pss:\s+(\d+)\s+kB/.exec(line);
130
- if (m?.[1]) pssKb = parseInt(m[1], 10);
131
- }
132
- if (rssKb === null || pssKb === null) return null;
133
- return {
134
- rssBytes: rssKb * 1024,
135
- pssBytes: pssKb * 1024
136
- };
137
- }
138
- var defaultReadFile = (path, encoding) => readFile(path, encoding);
139
- var defaultStat = async (path) => {
140
- try {
141
- return { size: (await stat(path)).size };
142
- } catch {
143
- return null;
144
- }
145
- };
146
- /**
147
- * Linux implementation of {@link ResourceBackend}.
148
- *
149
- * Uses injected `readFileFn` / `statFileFn` so unit tests can:
150
- * 1. Fake file contents (threshold-crossing, degraded mode)
151
- * 2. Count reads to assert the bounded-read contract (Amendment 1)
152
- */
153
- var LinuxResourceBackend = class {
154
- globalPressurePath;
155
- cgroupSlicePressurePath;
156
- walPaths;
157
- readFileFn;
158
- statFileFn;
159
- constructor(opts = {}) {
160
- this.globalPressurePath = opts.globalPressurePath ?? "/proc/pressure/memory";
161
- this.cgroupSlicePressurePath = opts.cgroupSlicePressurePath ?? null;
162
- this.walPaths = opts.walPaths ?? [];
163
- this.readFileFn = opts.readFileFn ?? defaultReadFile;
164
- this.statFileFn = opts.statFileFn ?? defaultStat;
165
- }
166
- /**
167
- * Take a bounded point-in-time resource sample.
168
- *
169
- * Read-count (bounded by Amendment 1):
170
- * - 1 read: `/proc/pressure/memory`
171
- * - 0–1 reads: slice `memory.pressure` (if configured)
172
- * - 1 read: `/proc/meminfo`
173
- * - N stat calls: one per WAL path in `walPaths`
174
- *
175
- * Never spawns a child process.
176
- */
177
- async sample() {
178
- const sampledAtMs = Date.now();
179
- const globalPressure = await this._readPsi(this.globalPressurePath);
180
- const pressureAvailable = globalPressure !== null;
181
- let slicePressure = null;
182
- if (this.cgroupSlicePressurePath) slicePressure = await this._readPsi(this.cgroupSlicePressurePath);
183
- const memAvailableBytes = await this._readMemAvailable();
184
- const walObservations = await this._readWalObservations();
185
- return {
186
- sampledAtMs,
187
- pressureAvailable,
188
- memAvailableBytes,
189
- globalPressure,
190
- slicePressure,
191
- walObservations
192
- };
193
- }
194
- /**
195
- * Sweep per-child RSS via `/proc/<pid>/smaps_rollup`.
196
- *
197
- * **STRUCTURALLY SEPARATED from sample()** — smaps_rollup reads are
198
- * ms-scale per multi-GB process and must never appear in the hot path.
199
- * Call on a separate low-frequency cadence (e.g. every 60s or on
200
- * backoff→hold state transition).
201
- *
202
- * @param pids - PIDs to sweep. Dead/unknown PIDs are silently skipped.
203
- */
204
- async sweepChildRss(pids) {
205
- const sampledAtMs = Date.now();
206
- const entries = [];
207
- for (const pid of pids) try {
208
- const parsed = parseSmapsRollup(await this.readFileFn(`/proc/${pid}/smaps_rollup`, "utf-8"));
209
- if (parsed) entries.push({
210
- pid,
211
- ...parsed
212
- });
213
- } catch {}
214
- return {
215
- sampledAtMs,
216
- entries
217
- };
218
- }
219
- async _readPsi(path) {
220
- try {
221
- return parsePsiFile(await this.readFileFn(path, "utf-8"));
222
- } catch {
223
- return null;
224
- }
225
- }
226
- async _readMemAvailable() {
227
- try {
228
- return parseMemAvailable(await this.readFileFn("/proc/meminfo", "utf-8"));
229
- } catch {
230
- return null;
231
- }
232
- }
233
- async _readWalObservations() {
234
- const results = [];
235
- for (const walPath of this.walPaths) {
236
- const info = await this.statFileFn(walPath);
237
- results.push({
238
- walPath,
239
- sizeBytes: info?.size ?? null
240
- });
241
- }
242
- return results;
243
- }
244
- };
245
- //#endregion
246
- //#region ../core/dist/resources/monitor.js
247
- /**
248
- * ResourceMonitor — PSI + MemAvailable sensing, daemon-off capable.
249
- *
250
- * Two operational modes:
251
- *
252
- * 1. **Point-in-time sample** (`ResourceMonitor.sample()`): used inside the
253
- * governor acquire path when the daemon is off. Single call, bounded reads.
254
- *
255
- * 2. **Continuous loop** (`ResourceMonitor.startContinuous()`): used by the
256
- * daemon/supervisor. Polls at `pollIntervalMs` and emits `ok` → `hold` →
257
- * `backoff` state transitions with hysteresis.
258
- *
259
- * ## State machine
260
- *
261
- * ok ──── pressure > holdThreshold ──────→ hold
262
- * hold ─── pressure < holdThreshold - hyst ─→ ok
263
- * hold ─── pressure > backoffThreshold ─────→ backoff
264
- * backoff ─ pressure < holdThreshold - hyst ─→ ok
265
- *
266
- * Default thresholds (far below systemd-oomd's Fedora 80%/20s kill line):
267
- * - hold: some avg10 > 10% OR full avg10 > 5%
268
- * - backoff: some avg10 > 20% OR full avg10 > 10%
269
- * - hysteresis: 3 percentage points (prevents thrash on threshold edge)
270
- *
271
- * ## Degraded mode
272
- *
273
- * When the PSI interface is absent (non-Linux, locked-down container,
274
- * unprivileged environment), the monitor falls back to availability-only
275
- * sampling: `pressureAvailable = false`, `state = 'ok'` unless
276
- * `memAvailableBytes` is below `headroomMb`.
277
- *
278
- * ## oomd facts (Amendment 4)
279
- *
280
- * systemd-oomd on Fedora defaults to 80%/20s on user@1000.service (NOT
281
- * the 50%/20s figure cited in older research). Our hold/backoff thresholds
282
- * sit far below that line — cleo always throttles before oomd kills.
283
- *
284
- * ## WAL growth signal (Amendment 3)
285
- *
286
- * The monitor accepts an optional watch on SQLite `-wal` sidecar file sizes.
287
- * A size above `walWarnThresholdBytes` is surfaced in the sample and can
288
- * drive governor decisions independently of memory pressure.
289
- *
290
- * @module resources/monitor
291
- * @task T11994
292
- * @epic T11992
293
- */
294
- var DEFAULTS = {
295
- holdSomeAvg10: 10,
296
- backoffSomeAvg10: 20,
297
- holdFullAvg10: 5,
298
- backoffFullAvg10: 10,
299
- hysteresisPoints: 3,
300
- headroomBytes: 256 * 1024 * 1024,
301
- walWarnThresholdBytes: 256 * 1024 * 1024,
302
- pollIntervalMs: 1500
303
- };
304
- function resolveThresholds(cfg) {
305
- return {
306
- holdSomeAvg10: cfg.psi?.holdSomeAvg10 ?? DEFAULTS.holdSomeAvg10,
307
- backoffSomeAvg10: cfg.psi?.backoffSomeAvg10 ?? DEFAULTS.backoffSomeAvg10,
308
- holdFullAvg10: cfg.psi?.holdFullAvg10 ?? DEFAULTS.holdFullAvg10,
309
- backoffFullAvg10: cfg.psi?.backoffFullAvg10 ?? DEFAULTS.backoffFullAvg10,
310
- hysteresisPoints: cfg.hysteresisPoints ?? DEFAULTS.hysteresisPoints,
311
- headroomBytes: cfg.headroomBytes ?? DEFAULTS.headroomBytes,
312
- walWarnThresholdBytes: cfg.walWarnThresholdBytes ?? DEFAULTS.walWarnThresholdBytes,
313
- pollIntervalMs: cfg.pollIntervalMs ?? DEFAULTS.pollIntervalMs
314
- };
315
- }
316
- /**
317
- * Evaluate the pressure state given a sample and resolved thresholds.
318
- *
319
- * In degraded mode (PSI absent), the state is `hold` only when free memory
320
- * falls below `headroomBytes`.
321
- *
322
- * @internal
323
- */
324
- function evaluateState(sample, thresholds, currentState) {
325
- if (!sample.pressureAvailable) {
326
- if (sample.memAvailableBytes !== null && sample.memAvailableBytes < thresholds.headroomBytes) return {
327
- state: "hold",
328
- reason: "degraded: memAvailable below headroom"
329
- };
330
- return {
331
- state: "ok",
332
- reason: "degraded: PSI unavailable, memAvailable sufficient"
333
- };
334
- }
335
- const somePressure = sample.globalPressure?.some ?? sample.slicePressure?.some;
336
- const fullPressure = sample.globalPressure?.full ?? sample.slicePressure?.full;
337
- const someAvg10 = somePressure?.avg10 ?? 0;
338
- const fullAvg10 = fullPressure?.avg10 ?? 0;
339
- if (someAvg10 > thresholds.backoffSomeAvg10 || fullAvg10 > thresholds.backoffFullAvg10) return {
340
- state: "backoff",
341
- reason: `some avg10=${someAvg10.toFixed(2)} full avg10=${fullAvg10.toFixed(2)} — above backoff threshold`
342
- };
343
- if (someAvg10 > thresholds.holdSomeAvg10 || fullAvg10 > thresholds.holdFullAvg10) return {
344
- state: "hold",
345
- reason: `some avg10=${someAvg10.toFixed(2)} full avg10=${fullAvg10.toFixed(2)} — above hold threshold`
346
- };
347
- if (currentState !== "ok") {
348
- const hysteresisFloor = thresholds.holdSomeAvg10 - thresholds.hysteresisPoints;
349
- const fullHysteresisFloor = thresholds.holdFullAvg10 - thresholds.hysteresisPoints;
350
- if (someAvg10 > hysteresisFloor || fullAvg10 > fullHysteresisFloor) return {
351
- state: currentState === "backoff" ? "hold" : currentState,
352
- reason: `some avg10=${someAvg10.toFixed(2)} full avg10=${fullAvg10.toFixed(2)} — hysteresis hold (floor: some ${hysteresisFloor}, full ${fullHysteresisFloor})`
353
- };
354
- }
355
- return {
356
- state: "ok",
357
- reason: `some avg10=${someAvg10.toFixed(2)} full avg10=${fullAvg10.toFixed(2)} — below thresholds`
358
- };
359
- }
360
- /**
361
- * ResourceMonitor — PSI + MemAvailable sensing, daemon-off capable.
362
- *
363
- * @example Point-in-time (daemon-off governor acquire):
364
- * ```ts
365
- * const monitor = new ResourceMonitor();
366
- * const sample = await monitor.sample();
367
- * if (sample.memAvailableBytes !== null && sample.memAvailableBytes < 256 * 1024 * 1024) {
368
- * throw new Error('insufficient memory');
369
- * }
370
- * ```
371
- *
372
- * @example Continuous mode (daemon supervisor):
373
- * ```ts
374
- * const monitor = new ResourceMonitor({ pollIntervalMs: 1500 });
375
- * monitor.on('transition', ({ from, to, reason }) => {
376
- * logger.warn(`pressure: ${from} → ${to} (${reason})`);
377
- * });
378
- * const stop = monitor.startContinuous();
379
- * // later:
380
- * stop();
381
- * ```
382
- */
383
- var ResourceMonitor = class extends EventEmitter {
384
- thresholds;
385
- backend;
386
- _state = "ok";
387
- _timer = null;
388
- _running = false;
389
- constructor(cfg = {}) {
390
- super();
391
- this.thresholds = resolveThresholds(cfg);
392
- this.backend = cfg.backend ?? new LinuxResourceBackend();
393
- }
394
- /**
395
- * Current pressure state (only meaningful after at least one sample).
396
- */
397
- get state() {
398
- return this._state;
399
- }
400
- /**
401
- * `true` while the continuous loop is running.
402
- */
403
- get running() {
404
- return this._running;
405
- }
406
- /**
407
- * Take a single point-in-time resource sample.
408
- *
409
- * Safe to call with the daemon off (no child processes, bounded reads).
410
- * Does NOT update `this.state` — use {@link startContinuous} for that.
411
- */
412
- async sample() {
413
- return this.backend.sample();
414
- }
415
- /**
416
- * Start the continuous polling loop.
417
- *
418
- * Returns a `stop()` function. Calling `stop()` is idempotent.
419
- *
420
- * Emits:
421
- * - `'sample'` on every poll (even if state did not change)
422
- * - `'transition'` when `PressureState` changes
423
- * - `'error'` if the backend throws (loop continues regardless)
424
- */
425
- startContinuous() {
426
- if (this._running) return () => this._stopLoop();
427
- this._running = true;
428
- this._scheduleNext();
429
- return () => this._stopLoop();
430
- }
431
- /**
432
- * Stop the continuous polling loop. Idempotent.
433
- */
434
- stop() {
435
- this._stopLoop();
436
- }
437
- _scheduleNext() {
438
- this._timer = setTimeout(() => {
439
- this._tick();
440
- }, this.thresholds.pollIntervalMs);
441
- if (typeof this._timer.unref === "function") this._timer.unref();
442
- }
443
- async _tick() {
444
- if (!this._running) return;
445
- try {
446
- const sample = await this.backend.sample();
447
- this.emit("sample", sample);
448
- const { state: newState, reason } = evaluateState(sample, this.thresholds, this._state);
449
- if (newState !== this._state) {
450
- const transition = {
451
- from: this._state,
452
- to: newState,
453
- sample,
454
- reason
455
- };
456
- this._state = newState;
457
- this.emit("transition", transition);
458
- }
459
- } catch (err) {
460
- this.emit("error", err instanceof Error ? err : new Error(String(err)));
461
- }
462
- if (this._running) this._scheduleNext();
463
- }
464
- _stopLoop() {
465
- this._running = false;
466
- if (this._timer !== null) {
467
- clearTimeout(this._timer);
468
- this._timer = null;
469
- }
470
- }
471
- };
472
-
473
- //#region ../core/dist/resources/supervisor-admit.js
474
- /**
475
- * Supervisor-mode resource admission client (T12001 · Epic T11992).
476
- *
477
- * The `supervisor`-mode counterpart of the {@link ResourceGovernor}'s local slot
478
- * engine. Where local mode arbitrates heavy-op concurrency through cross-process
479
- * lockfiles, supervisor mode routes the `resource_admit` / `resource_release`
480
- * lease-ipc verbs to the Rust `cleo-supervisor` so a single in-memory counter is
481
- * the machine-wide source of truth.
482
- *
483
- * A dead/absent supervisor must NEVER deadlock work: every send degrades to
484
- * `{ unavailable }` on any transport error, and the governor falls back to the
485
- * local slot engine. Mirrors the `llm-queue-admit.ts` transport (core cannot
486
- * import `@cleocode/runtime` — a cycle — so it speaks the NDJSON codec directly
487
- * through the shared `@cleocode/contracts` lease-ipc Zod schemas).
488
- *
489
- * @task T12001
490
- * @epic T11992
491
- */
492
- /** The supervisor IPC socket filename — MUST equal `SOCKET_NAME` in `crates/cleo-supervisor/src/paths.rs`. */
493
- var SUPERVISOR_SOCKET_NAME = "cleo-supervisor.sock";
494
- /** Connect timeout (ms). A slow/absent socket degrades fast — never a deadlock. */
495
- var CONNECT_TIMEOUT_MS = 250;
496
- /** Per-request read timeout for a result frame (ms). */
497
- var REQUEST_TIMEOUT_MS = 2e3;
498
- /**
499
- * Resolve the supervisor socket path: `$CLEO_SUPERVISOR_SOCKET` overrides,
500
- * otherwise `<cleoHome>/cleo-supervisor.sock`.
501
- */
502
- function resolveSupervisorSocketPath() {
503
- return process.env.CLEO_SUPERVISOR_SOCKET ?? join(getCleoHome$1(), SUPERVISOR_SOCKET_NAME);
504
- }
505
- /**
506
- * Admit (or defer) a heavy op of `cls` for `holderId` against `budget` through
507
- * the supervisor's central arbiter. Resolves the `resource_admit_result` reply,
508
- * or `{ unavailable }` when the supervisor cannot arbitrate (degrade to local).
509
- */
510
- async function sendResourceAdmit(socketPath, cls, holderId, budget) {
511
- const result = await sendLeaseRequest(socketPath, {
512
- kind: "resource_admit",
513
- class: cls,
514
- holder_id: holderId,
515
- budget
516
- }, "resource_admit_result");
517
- if ("unavailable" in result) return result;
518
- if (result.kind === "resource_admit_result") return result;
519
- return {
520
- unavailable: true,
521
- reason: `unexpected response kind: ${result.kind}`
522
- };
523
- }
524
- /**
525
- * Release a previously-admitted slot of `cls` for `holderId`. Resolves the
526
- * `resource_release_result` reply, or `{ unavailable }` on transport failure
527
- * (the slot self-heals via the arbiter's process-death reclaim / stale recovery).
528
- */
529
- async function sendResourceRelease(socketPath, cls, holderId) {
530
- const result = await sendLeaseRequest(socketPath, {
531
- kind: "resource_release",
532
- class: cls,
533
- holder_id: holderId
534
- }, "resource_release_result");
535
- if ("unavailable" in result) return result;
536
- if (result.kind === "resource_release_result") return result;
537
- return {
538
- unavailable: true,
539
- reason: `unexpected response kind: ${result.kind}`
540
- };
541
- }
542
- /**
543
- * One-shot NDJSON lease-ipc round-trip over a fresh Unix socket. Connection per
544
- * request (the verbs are stateless); the socket is closed before resolution.
545
- * Any transport error resolves to `{ unavailable }` — never throws, never
546
- * deadlocks. `expectedKind` is the result `kind` the caller correlates.
547
- */
548
- function sendLeaseRequest(socketPath, request, expectedKind) {
549
- return new Promise((resolve) => {
550
- const id = `ra-${process.pid}-${request.kind}`;
551
- const envelope = LeaseIpcRequestEnvelopeSchema.parse({
552
- protocol_version: LEASE_IPC_PROTOCOL_VERSION,
553
- id,
554
- direction: "request",
555
- request
556
- });
557
- const line = `${JSON.stringify(envelope)}\n`;
558
- let settled = false;
559
- let buffer = "";
560
- const socket = connect(socketPath);
561
- const done = (value) => {
562
- if (settled) return;
563
- settled = true;
564
- socket.removeAllListeners();
565
- socket.destroy();
566
- resolve(value);
567
- };
568
- const degrade = (reason) => done({
569
- unavailable: true,
570
- reason
571
- });
572
- socket.setTimeout(REQUEST_TIMEOUT_MS);
573
- const connectTimer = setTimeout(() => degrade("supervisor connect timeout"), CONNECT_TIMEOUT_MS);
574
- socket.on("connect", () => {
575
- clearTimeout(connectTimer);
576
- socket.write(line);
577
- });
578
- socket.on("timeout", () => degrade("supervisor request timeout"));
579
- socket.on("error", (err) => {
580
- clearTimeout(connectTimer);
581
- degrade(err.message);
582
- });
583
- socket.on("close", () => {
584
- if (!settled) degrade("supervisor closed the connection before responding");
585
- });
586
- socket.on("data", (chunk) => {
587
- buffer += chunk.toString("utf8");
588
- const nl = buffer.indexOf("\n");
589
- if (nl < 0) return;
590
- let json;
591
- try {
592
- json = JSON.parse(buffer.slice(0, nl));
593
- } catch (cause) {
594
- degrade(`malformed lease-ipc frame: ${cause instanceof Error ? cause.message : cause}`);
595
- return;
596
- }
597
- const parsed = LeaseIpcResponseEnvelopeSchema.safeParse(json);
598
- if (!parsed.success) {
599
- degrade(`off-contract lease-ipc response: ${parsed.error.message}`);
600
- return;
601
- }
602
- const { response } = parsed.data;
603
- if (response.kind === expectedKind) {
604
- done(response);
605
- return;
606
- }
607
- if (response.kind === "error") {
608
- degrade(`${response.code}: ${response.message}`);
609
- return;
610
- }
611
- degrade(`unexpected lease-ipc response kind for ${request.kind}: ${response.kind}`);
612
- });
613
- });
614
- }
615
- //#endregion
616
- //#region ../core/dist/resources/governor.js
617
- /**
618
- * ResourceGovernor — Never-OOM class-based admission (T11999, Epic T11992).
619
- *
620
- * Admits resource-intensive work through priority classes whose slot budgets
621
- * are computed at acquire time from host memory + memory-pressure (PSI). A
622
- * denial returns a structured, retryable {@link ResourceDeferral} — never a
623
- * silent drop, never a crash. Existing grants are NEVER revoked.
624
- *
625
- * Three modes (verbatim writer-lease shape, `writer-lease.ts` `resolveLeaseMode`):
626
- * - `supervisor` — defer to the Rust `cleo-supervisor` `resource_admit` verb.
627
- * Demotes to `local` (log-once) until the IPC client is wired — a
628
- * dead/absent arbiter must never deadlock work.
629
- * - `local` — DEFAULT, daemon-off. Per-class slot directories under
630
- * `getCleoHome()/locks/resource-<class>/` arbitrated by `proper-lockfile`
631
- * (crash-stale auto-release ⇒ genuinely cross-process without a daemon),
632
- * plus a point-sample of the {@link ResourceMonitor} taken INSIDE acquire.
633
- * Generalizes the tool-semaphore engine (`tool-semaphore.ts`).
634
- * - `off` — pure pass-through.
635
- *
636
- * `interactive-cli` is NEVER gated; `full-build` is pinned to one machine-wide
637
- * slot regardless of pressure.
638
- *
639
- * @task T11999
640
- * @epic T11992
641
- * @adr resource-governor-never-oom-architecture §3.4
642
- */
643
- var _log = null;
644
- function log() {
645
- if (_log === null) _log = getLogger("resource-governor");
646
- return _log;
647
- }
648
- var _cachedMode = null;
649
- var _supervisorDegradeLogged = false;
650
- /**
651
- * Resolve the governor mode from `CLEO_RESOURCES_MODE`, once per process.
652
- * Unknown / unset values resolve to `'local'` — the production-safe default
653
- * while the supervisor daemon is disabled.
654
- *
655
- * @task T11999
656
- */
657
- function resolveGovernorMode() {
658
- if (_cachedMode !== null) return _cachedMode;
659
- const raw = process.env.CLEO_RESOURCES_MODE;
660
- _cachedMode = raw === "supervisor" || raw === "local" || raw === "off" ? raw : "local";
661
- return _cachedMode;
662
- }
663
- /**
664
- * Log (once) that `supervisor` mode degraded to the local slot engine because
665
- * the arbiter was unreachable — a dead/absent supervisor must never deadlock
666
- * work (T12001). Mirrors the writer-lease degrade-once behaviour.
667
- */
668
- function logSupervisorDegradeOnce(reason) {
669
- if (_supervisorDegradeLogged) return;
670
- _supervisorDegradeLogged = true;
671
- log().info(`CLEO_RESOURCES_MODE=supervisor but the arbiter is unreachable (${reason}); degrading to local-mode admission for the process lifetime.`);
672
- }
673
- var MB = 1024 * 1024;
674
- /** Extract `some avg10` (0–100) from a sample; 0 when unavailable. */
675
- function someAvg10(sample) {
676
- return (sample.globalPressure?.some ?? sample.slicePressure?.some)?.avg10 ?? 0;
677
- }
678
- /**
679
- * Compute the slot budget for a class given a point-sample.
680
- *
681
- * - `interactive-cli` → `Infinity` (never gated).
682
- * - `full-build` → `1` machine-wide, pressure-independent.
683
- * - `agent-session` → `clamp(1, ⌊(MemAvailable − headroom)/estRamMb⌋, cpus−2)`.
684
- * - `test-run` / `scoped-build` → `clamp(1, ⌊(MemAvailable − headroom)/estRamMb⌋,
685
- * ⌊cpus/4⌋)`, ×0.5 when `some>hold`, floored to 1 when `some>floor` (T12091:
686
- * was core-only, which authorised 144 GiB of heap on a 62 GiB box).
687
- * - `llm-call` → `max(1, cpus−2)` (primarily gated by the llm-queue elsewhere).
688
- * - `db-heavy` → `1`, deferred (→0) under `backoff`-level pressure.
689
- * - `background-autonomous` → `1` only when pressure is `ok`, else `0`.
690
- *
691
- * @adr resource-governor-never-oom-architecture §3.4 (budgets)
692
- */
693
- function computeClassBudget(cls, sample, opts = {}) {
694
- if (cls === "interactive-cli") return Number.POSITIVE_INFINITY;
695
- const cpus = Math.max(1, opts.cpuCount ?? availableParallelism());
696
- const totalBytes = opts.totalMemBytes ?? totalmem();
697
- const headroomBytes = (opts.headroomMb ?? 2048) * MB;
698
- const hold = opts.holdSomeAvg10 ?? 10;
699
- const floor = opts.floorSomeAvg10 ?? 25;
700
- const some = someAvg10(sample);
701
- const availBytes = sample.memAvailableBytes ?? totalBytes;
702
- const fullStall = sample.globalPressure?.full?.avg10 ?? sample.slicePressure?.full?.avg10 ?? 0;
703
- const backoff = some > floor || fullStall > 10;
704
- switch (cls) {
705
- case "full-build": return 1;
706
- case "agent-session": {
707
- const estRamBytes = (opts.agentEstRamMb ?? 4096) * MB;
708
- return clamp(1, Math.floor((availBytes - headroomBytes) / estRamBytes), Math.max(1, cpus - 2));
709
- }
710
- case "llm-call": return Math.max(1, cpus - 2);
711
- case "test-run":
712
- case "scoped-build": {
713
- const estRamBytes = (opts.testRunEstRamMb ?? 24576) * MB;
714
- const base = clamp(1, Math.floor((availBytes - headroomBytes) / estRamBytes), Math.max(1, Math.floor(cpus / 4)));
715
- if (some > floor) return 1;
716
- if (some > hold) return Math.max(1, Math.floor(base / 2));
717
- return base;
718
- }
719
- case "db-heavy": return backoff ? 0 : 1;
720
- case "background-autonomous": return some > hold || fullStall > 5 ? 0 : 1;
721
- default: return 1;
722
- }
723
- }
724
- function clamp(lo, v, hi) {
725
- return Math.max(lo, Math.min(v, hi));
726
- }
727
- /**
728
- * Machine-wide slot directory for a class, under
729
- * `getCleoHome()/locks/resource-<class>/`. Shared across projects, worktrees,
730
- * and PIDs — exactly like the tool semaphore.
731
- */
732
- function governorSlotDir(cls) {
733
- return join(getCleoHome(), "locks", `resource-${cls}`);
734
- }
735
- function ensureSlotFiles(dir, count) {
736
- if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
737
- const paths = [];
738
- for (let i = 0; i < count; i++) {
739
- const p = join(dir, `slot-${i}.lock`);
740
- if (!existsSync(p)) writeFileSync(p, "", { flag: "a" });
741
- paths.push(p);
742
- }
743
- return paths;
744
- }
745
- var STALE_MS = 6e5;
746
- function sleep(ms) {
747
- return new Promise((r) => setTimeout(r, ms));
748
- }
749
- function passThroughGrant(cls) {
750
- return {
751
- deferred: false,
752
- class: cls,
753
- slot: -1,
754
- acquiredAtMs: Date.now(),
755
- release: async () => {}
756
- };
757
- }
758
- function deferral(cls, reason, retryAfterMs) {
759
- return {
760
- deferred: true,
761
- class: cls,
762
- retryAfterMs,
763
- reason
764
- };
765
- }
766
- var _supervisorHolderSeq = 0;
767
- /**
768
- * A process-unique holder id for a supervisor `resource_admit`, so each acquire
769
- * is a distinct slot (matched 1:1 by its `release`). `pid` scopes the holder to
770
- * this process; the sequence distinguishes concurrent holds of the same class.
771
- */
772
- function supervisorHolderId(cls) {
773
- _supervisorHolderSeq += 1;
774
- return `${process.pid}:${cls}:${_supervisorHolderSeq}`;
775
- }
776
- /**
777
- * The Never-OOM admission gate. Stateless wrapper over the mode-resolved
778
- * backend (local slot dirs today; supervisor IPC when wired). Construct once
779
- * and share, or use the module-level {@link governor} singleton.
780
- */
781
- var ResourceGovernor = class {
782
- /**
783
- * Acquire one slot of `cls`. Returns a {@link ResourceGrant} on success or a
784
- * {@link ResourceDeferral} on denial. Never throws for admission control;
785
- * only genuinely unexpected I/O errors propagate.
786
- */
787
- async acquire(cls, opts = {}) {
788
- const mode = resolveGovernorMode();
789
- if (mode === "off" || cls === "interactive-cli") return passThroughGrant(cls);
790
- const sample = opts.sample ?? await (opts.monitor ?? new ResourceMonitor()).sample();
791
- const budget = computeClassBudget(cls, sample, opts);
792
- if (!Number.isFinite(budget)) return passThroughGrant(cls);
793
- if (budget <= 0) return deferral(cls, `class '${cls}' budget is 0 under current pressure (some avg10=${someAvg10(sample).toFixed(1)})`, DEFAULT_RESOURCE_RETRY_AFTER_MS);
794
- if (mode === "supervisor") {
795
- const viaSupervisor = await this.acquireViaSupervisor(cls, Math.floor(budget));
796
- if (viaSupervisor !== null) return viaSupervisor;
797
- }
798
- const slots = ensureSlotFiles(governorSlotDir(cls), budget);
799
- const blocking = opts.blocking ?? true;
800
- const timeoutMs = opts.timeoutMs ?? 36e5;
801
- const pollMs = opts.pollMs ?? 200;
802
- const startedAt = Date.now();
803
- do {
804
- const order = shuffledIndices(slots.length);
805
- for (const idx of order) {
806
- const path = slots[idx];
807
- if (!path) continue;
808
- try {
809
- const release = await lockfile.lock(path, {
810
- retries: 0,
811
- stale: STALE_MS,
812
- realpath: false
813
- });
814
- let released = false;
815
- return {
816
- deferred: false,
817
- class: cls,
818
- slot: idx,
819
- acquiredAtMs: Date.now(),
820
- release: async () => {
821
- if (released) return;
822
- released = true;
823
- try {
824
- await release();
825
- } catch {}
826
- }
827
- };
828
- } catch {}
829
- }
830
- if (!blocking) break;
831
- await sleep(pollMs);
832
- } while (Date.now() - startedAt < timeoutMs);
833
- return deferral(cls, `class '${cls}' is at capacity (${budget} slot(s)); ` + (blocking ? `timed out after ${timeoutMs}ms` : "no slot free"), Math.min(pollMs * 4, DEFAULT_RESOURCE_RETRY_AFTER_MS));
834
- }
835
- /**
836
- * Route an admission through the supervisor's central `resource_admit` verb.
837
- * Returns a grant (whose `release` calls `resource_release`) or a deferral, or
838
- * `null` when the supervisor is unreachable so the caller degrades to the
839
- * local slot engine. Never throws — a dead arbiter never deadlocks work.
840
- *
841
- * @task T12001
842
- */
843
- async acquireViaSupervisor(cls, budget) {
844
- const socketPath = resolveSupervisorSocketPath();
845
- const holderId = supervisorHolderId(cls);
846
- const reply = await sendResourceAdmit(socketPath, cls, holderId, budget);
847
- if ("unavailable" in reply) {
848
- logSupervisorDegradeOnce(reply.reason);
849
- return null;
850
- }
851
- if (reply.disposition === "deferred") return deferral(cls, `class '${cls}' deferred by supervisor (budget ${budget})`, reply.retry_after_ms || 2e3);
852
- let released = false;
853
- return {
854
- deferred: false,
855
- class: cls,
856
- slot: 0,
857
- acquiredAtMs: Date.now(),
858
- release: async () => {
859
- if (released) return;
860
- released = true;
861
- await sendResourceRelease(socketPath, cls, holderId).catch(() => {});
862
- }
863
- };
864
- }
865
- /** Non-blocking single-pass acquire (admission semantics). */
866
- async tryAcquire(cls, opts = {}) {
867
- return this.acquire(cls, {
868
- ...opts,
869
- blocking: false
870
- });
871
- }
872
- /**
873
- * Currently-grantable slot count for `cls` = budget − held. Held is the count
874
- * of slot files currently locked. `Infinity` for ungated classes.
875
- */
876
- async available(cls, opts = {}) {
877
- if (resolveGovernorMode() === "off" || cls === "interactive-cli") return Number.POSITIVE_INFINITY;
878
- const budget = computeClassBudget(cls, opts.sample ?? await (opts.monitor ?? new ResourceMonitor()).sample(), opts);
879
- if (!Number.isFinite(budget)) return Number.POSITIVE_INFINITY;
880
- if (budget <= 0) return 0;
881
- const held = await countHeldSlots(cls, budget);
882
- return Math.max(0, budget - held);
883
- }
884
- };
885
- function shuffledIndices(n) {
886
- const order = Array.from({ length: n }, (_, i) => i);
887
- for (let i = order.length - 1; i > 0; i--) {
888
- const j = Math.floor(Math.random() * (i + 1));
889
- const a = order[i];
890
- const b = order[j];
891
- if (a !== void 0 && b !== void 0) {
892
- order[i] = b;
893
- order[j] = a;
894
- }
895
- }
896
- return order;
897
- }
898
- /**
899
- * Count how many of `budget` slots are currently held, by probing each with a
900
- * non-blocking lock. A successful probe-lock is released immediately — it never
901
- * holds the slot, so it cannot starve a real acquirer.
902
- */
903
- async function countHeldSlots(cls, budget) {
904
- const dir = governorSlotDir(cls);
905
- if (!existsSync(dir)) return 0;
906
- const slots = ensureSlotFiles(dir, budget);
907
- let held = 0;
908
- for (const path of slots) try {
909
- await (await lockfile.lock(path, {
910
- retries: 0,
911
- stale: STALE_MS,
912
- realpath: false
913
- }))();
914
- } catch {
915
- held++;
916
- }
917
- return held;
918
- }
919
- /** Process-wide governor singleton. */
920
- var governor = new ResourceGovernor();
921
-
922
- export { governor };
923
- //# sourceMappingURL=governor2-CtfV3wfX.js.map