@cleocode/cleo 2026.9.7 → 2026.9.10

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 (691) hide show
  1. package/dist/cli/index.js +3873 -2234
  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/{eK8hf4s7.js → BSRBuVG3.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/{DVHIxkgs.js → CLZBEpLY.js} +1 -1
  11. package/studio-dist/client/_app/immutable/chunks/{CqF5Lomf.js → CTLGzgdN.js} +1 -1
  12. package/studio-dist/client/_app/immutable/chunks/{o1PZ6Kzq.js → CY3heNub.js} +1 -1
  13. package/studio-dist/client/_app/immutable/chunks/{RptFUp2P.js → Cge6qiwc.js} +1 -1
  14. package/studio-dist/client/_app/immutable/chunks/{BRgWBQlV.js → CnwXLaZJ.js} +1 -1
  15. package/studio-dist/client/_app/immutable/chunks/{Bxz2A0ZC.js → DEH43YwF.js} +1 -1
  16. package/studio-dist/client/_app/immutable/chunks/DGftG5oL.js +3 -0
  17. package/studio-dist/client/_app/immutable/chunks/DX_JOBSO.js +1 -0
  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/cWVw9W0E.js +3 -0
  21. package/studio-dist/client/_app/immutable/chunks/{B9psmq5-.js → rB_71s8h.js} +1 -1
  22. package/studio-dist/client/_app/immutable/chunks/{JPJd4fEI.js → rUtW7Hx6.js} +1 -1
  23. package/studio-dist/client/_app/immutable/entry/app.tvu3-wbp.js +2 -0
  24. package/studio-dist/client/_app/immutable/entry/start.BS-rpdjH.js +1 -0
  25. package/studio-dist/client/_app/immutable/nodes/{0.CZzEEyVh.js → 0.DMP7swbx.js} +1 -1
  26. package/studio-dist/client/_app/immutable/nodes/{1.Bj3Opbua.js → 1.CYZMFpIp.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.Cz1KI9Fv.js} +1 -1
  33. package/studio-dist/client/_app/immutable/nodes/{16.mEwy9cqh.js → 16.K9wYQPhb.js} +1 -1
  34. package/studio-dist/client/_app/immutable/nodes/{17.DP2QtQGn.js → 17.CtUmdfMg.js} +1 -1
  35. package/studio-dist/client/_app/immutable/nodes/{18.Bu0054sX.js → 18.mtosd0sL.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.NJuHLxuS.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.CMuXs5Sy.js} +1 -1
  43. package/studio-dist/client/_app/immutable/nodes/25.DhMBJYAo.js +39 -0
  44. package/studio-dist/client/_app/immutable/nodes/26.CJ4FA5FS.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.y115j1d5.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-BQvtFOrC.js +41 -0
  57. package/studio-dist/server/chunks/1-Bx2_yoiK.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-nQTeHGD1.js} +3 -3
  64. package/studio-dist/server/chunks/{16-De6EzPSa.js → 16-CcTN0e8k.js} +5 -4
  65. package/studio-dist/server/chunks/{17-CZNsiZhi.js → 17-DWiFnzES.js} +10 -93
  66. package/studio-dist/server/chunks/{18-CbxxjZox.js → 18-Dcc9GnPo.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-DfQlGHPW.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-EEysaT9T.js +67 -0
  74. package/studio-dist/server/chunks/{25-CAg6Xcmn.js → 25-CgiYn70L.js} +15 -96
  75. package/studio-dist/server/chunks/{26-_nfVTvNi.js → 26-Cfd6BaUb.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-E_fWDAkq.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-CL6GfET2.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-tYN7_LXI.js → _page.svelte-B5E6RqVb.js} +9 -11
  97. package/studio-dist/server/chunks/{_page.svelte-UYiF7YBK.js → _page.svelte-BCRyjlk2.js} +5 -5
  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-C_VSL8NW.js → _page.svelte-Cgqt7ucn.js} +13 -71
  101. package/studio-dist/server/chunks/{_page.svelte-CophUar3.js → _page.svelte-CqI6hqMm.js} +5 -5
  102. package/studio-dist/server/chunks/{_page.svelte-BgwL2Gyu.js → _page.svelte-CvQ2rZZ1.js} +11 -13
  103. package/studio-dist/server/chunks/{_page.svelte-l4Z_xjl9.js → _page.svelte-CvTyJEyS.js} +9 -11
  104. package/studio-dist/server/chunks/{_page.svelte-DOWw416I.js → _page.svelte-CvzAttO9.js} +11 -13
  105. package/studio-dist/server/chunks/{_page.svelte-DYNorA0S.js → _page.svelte-Cx9Ptecp.js} +10 -67
  106. package/studio-dist/server/chunks/{_page.svelte-Wfx7ww_h.js → _page.svelte-Cx9dPjsT.js} +11 -13
  107. package/studio-dist/server/chunks/{_page.svelte-2cgtvHwW.js → _page.svelte-DGN5j-At.js} +13 -71
  108. package/studio-dist/server/chunks/{_page.svelte-BVVTrzTL.js → _page.svelte-DaheDIRs.js} +5 -5
  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-BIlhmugm.js → _page.svelte-eiomv6Pa.js} +11 -13
  119. package/studio-dist/server/chunks/{_page.svelte-9OQphlnm.js → _page.svelte-jXJbd8Mx.js} +14 -69
  120. package/studio-dist/server/chunks/{_page.svelte-CHzXuw2Q.js → _page.svelte-me5SUosG.js} +3 -3
  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-40h9Y46Y.js +122 -0
  127. package/studio-dist/server/chunks/_server.ts-5euivmMj.js +38 -0
  128. package/studio-dist/server/chunks/{_server.ts-CShsBkeE.js → _server.ts-B0uoay97.js} +7 -23
  129. package/studio-dist/server/chunks/{_server.ts-hL92cV7Z.js → _server.ts-B5vYKkI6.js} +9 -63
  130. package/studio-dist/server/chunks/{_server.ts-_RJXtmfi.js → _server.ts-B8dTbPHd.js} +8 -23
  131. package/studio-dist/server/chunks/{_server.ts-C3Jo-ju8.js → _server.ts-BA8Xdegq.js} +10 -92
  132. package/studio-dist/server/chunks/_server.ts-BBClE0n9.js +54 -0
  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-BcsqAqXt.js +67 -0
  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-CH06JVqZ.js +65 -0
  146. package/studio-dist/server/chunks/_server.ts-CNqcws-M.js +29 -0
  147. package/studio-dist/server/chunks/{_server.ts-CJA1djzJ.js → _server.ts-CPf8necd.js} +8 -92
  148. package/studio-dist/server/chunks/{_server.ts-uUx7uT2Y.js → _server.ts-CYv5YuHd.js} +6 -43
  149. package/studio-dist/server/chunks/{_server.ts-B2E7fxo9.js → _server.ts-CZ5GZRWX.js} +6 -91
  150. package/studio-dist/server/chunks/{_server.ts-DSAv66wD.js → _server.ts-CbThsyhY.js} +4 -3
  151. package/studio-dist/server/chunks/{_server.ts-DgbY5EB3.js → _server.ts-CeQolQOK.js} +10 -92
  152. package/studio-dist/server/chunks/_server.ts-ChoGyX5C.js +61 -0
  153. package/studio-dist/server/chunks/_server.ts-CjJYkLJH.js +61 -0
  154. package/studio-dist/server/chunks/{_server.ts-lPlBUIJX.js → _server.ts-CtjArzxf.js} +5 -60
  155. package/studio-dist/server/chunks/{_server.ts-Cq60m8Pw.js → _server.ts-D3QWZwt_.js} +4 -3
  156. package/studio-dist/server/chunks/{_server.ts-CkoJ2HCW.js → _server.ts-D6wP5bCh.js} +10 -92
  157. package/studio-dist/server/chunks/{_server.ts-DwTRjS4y.js → _server.ts-D7JwQTun.js} +10 -93
  158. package/studio-dist/server/chunks/_server.ts-DKFJdXPK.js +97 -0
  159. package/studio-dist/server/chunks/_server.ts-DNAPGKEF.js +55 -0
  160. package/studio-dist/server/chunks/_server.ts-DQiTiY3E.js +78 -0
  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-BdN4AJ6o.js → _server.ts-VQchZxXq.js} +10 -91
  173. package/studio-dist/server/chunks/{_server.ts-C4BcDGqS.js → _server.ts-XLV5SvjH.js} +7 -63
  174. package/studio-dist/server/chunks/_server.ts-jZgqFIJz.js +45 -0
  175. package/studio-dist/server/chunks/{_server.ts-Bw7A4zgb.js → _server.ts-lyiGGv7w.js} +5 -3
  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-D71MZ7Vi.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-BzgWhfUR.js +18748 -0
  185. package/studio-dist/server/chunks/{error.svelte-CplNulnS.js → error.svelte-BIToUowC.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-DPU3HHl2.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-DPnIJYMs.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-BZdYTyl7.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/TX-23QW3.js +0 -3
  437. package/studio-dist/client/_app/immutable/chunks/UyeQuL132.js +0 -12
  438. package/studio-dist/client/_app/immutable/chunks/VQszoXcV.js +0 -1
  439. package/studio-dist/client/_app/immutable/chunks/VtZsEMxD.js +0 -1
  440. package/studio-dist/client/_app/immutable/chunks/W2IeK61p2.js +0 -1
  441. package/studio-dist/client/_app/immutable/chunks/Wadww7ZG.js +0 -1
  442. package/studio-dist/client/_app/immutable/chunks/WgfA1zWk2.js +0 -1
  443. package/studio-dist/client/_app/immutable/chunks/WxIgAS1f.js +0 -21
  444. package/studio-dist/client/_app/immutable/chunks/XrsBoOj9.js +0 -2
  445. package/studio-dist/client/_app/immutable/chunks/Y3PX4poR.js +0 -2
  446. package/studio-dist/client/_app/immutable/chunks/YxfwqiF32.js +0 -1
  447. package/studio-dist/client/_app/immutable/chunks/Z7uO1YaO.js +0 -1
  448. package/studio-dist/client/_app/immutable/chunks/_4ykQk_8.js +0 -1
  449. package/studio-dist/client/_app/immutable/chunks/_kRcZFVn.js +0 -1
  450. package/studio-dist/client/_app/immutable/chunks/aQNM7eVA2.js +0 -1
  451. package/studio-dist/client/_app/immutable/chunks/bHKz_Fb2.js +0 -45
  452. package/studio-dist/client/_app/immutable/chunks/bJRyRGSZ.js +0 -1
  453. package/studio-dist/client/_app/immutable/chunks/dlzF6lnR.js +0 -1
  454. package/studio-dist/client/_app/immutable/chunks/fjRbpfEr2.js +0 -26
  455. package/studio-dist/client/_app/immutable/chunks/imLk4if5.js +0 -3
  456. package/studio-dist/client/_app/immutable/chunks/lgRG0R-32.js +0 -1
  457. package/studio-dist/client/_app/immutable/chunks/mFhCjxQJ2.js +0 -1
  458. package/studio-dist/client/_app/immutable/chunks/mgnH6qYg.js +0 -1
  459. package/studio-dist/client/_app/immutable/chunks/n6M_5LoW.js +0 -1
  460. package/studio-dist/client/_app/immutable/chunks/nLIOiDZp2.js +0 -1
  461. package/studio-dist/client/_app/immutable/chunks/nab7WB3u2.js +0 -1
  462. package/studio-dist/client/_app/immutable/chunks/orUmAKoW2.js +0 -1
  463. package/studio-dist/client/_app/immutable/chunks/p-fLQDfY2.js +0 -63
  464. package/studio-dist/client/_app/immutable/chunks/s0-WkOGk2.js +0 -1
  465. package/studio-dist/client/_app/immutable/chunks/sPuXfbUF.js +0 -1
  466. package/studio-dist/client/_app/immutable/chunks/t4h0vrqR2.js +0 -2
  467. package/studio-dist/client/_app/immutable/chunks/uE83FKL-.js +0 -1
  468. package/studio-dist/client/_app/immutable/chunks/uzhXlm0g2.js +0 -1
  469. package/studio-dist/client/_app/immutable/chunks/vTrEsGlD2.js +0 -1
  470. package/studio-dist/client/_app/immutable/chunks/xJgCk3dx2.js +0 -28
  471. package/studio-dist/client/_app/immutable/chunks/z0Mt579s2.js +0 -13
  472. package/studio-dist/client/_app/immutable/entry/app.BoQ7cgT2.js +0 -2
  473. package/studio-dist/client/_app/immutable/entry/start.Cg1v8DU4.js +0 -1
  474. package/studio-dist/client/_app/immutable/nodes/25.ddZ1_EFk.js +0 -1
  475. package/studio-dist/client/_app/immutable/nodes/26.6OcmQbLV.js +0 -1
  476. package/studio-dist/client/_app/immutable/nodes/4.CCjOEwVU.js +0 -1
  477. package/studio-dist/server/chunks/0-CvsKDxQ6.js +0 -126
  478. package/studio-dist/server/chunks/1-ck_x2Hf0.js +0 -9
  479. package/studio-dist/server/chunks/20-DVU22np7.js +0 -142
  480. package/studio-dist/server/chunks/23-D_tUnnoc.js +0 -181
  481. package/studio-dist/server/chunks/24-CVlymvLF.js +0 -151
  482. package/studio-dist/server/chunks/AwsRestJsonProtocol-BZuoNBmL.js +0 -416
  483. package/studio-dist/server/chunks/UnionSerde-BflIkhKj.js +0 -2653
  484. package/studio-dist/server/chunks/_dispatch-ncuRztUQ.js +0 -5597
  485. package/studio-dist/server/chunks/_server.ts-4NyKAneX.js +0 -116
  486. package/studio-dist/server/chunks/_server.ts-7hGdxdEI.js +0 -136
  487. package/studio-dist/server/chunks/_server.ts-B6b3b-yA.js +0 -131
  488. package/studio-dist/server/chunks/_server.ts-BOgGqaZp.js +0 -144
  489. package/studio-dist/server/chunks/_server.ts-BV1HiKZ0.js +0 -120
  490. package/studio-dist/server/chunks/_server.ts-BWp3g6Cr.js +0 -110
  491. package/studio-dist/server/chunks/_server.ts-C5NF-UgC.js +0 -122
  492. package/studio-dist/server/chunks/_server.ts-CDMurH5m.js +0 -2301
  493. package/studio-dist/server/chunks/_server.ts-COJHCgbq.js +0 -127
  494. package/studio-dist/server/chunks/_server.ts-CUl-Utkt.js +0 -148
  495. package/studio-dist/server/chunks/_server.ts-D0GAFJRb.js +0 -156
  496. package/studio-dist/server/chunks/_server.ts-DA6p3pmi.js +0 -117
  497. package/studio-dist/server/chunks/_server.ts-DThYFaZj.js +0 -160
  498. package/studio-dist/server/chunks/_server.ts-D_3Pm0gr.js +0 -179
  499. package/studio-dist/server/chunks/_server.ts-DcHxdMsm.js +0 -144
  500. package/studio-dist/server/chunks/_server.ts-Dlfadh2I.js +0 -144
  501. package/studio-dist/server/chunks/_server.ts-JallJnps.js +0 -240
  502. package/studio-dist/server/chunks/_server.ts-NEFTbJpM.js +0 -142
  503. package/studio-dist/server/chunks/_server.ts-d-2NvRwX.js +0 -122
  504. package/studio-dist/server/chunks/_server.ts-rUWMLkIw.js +0 -146
  505. package/studio-dist/server/chunks/abort-events-CDRAJSqb.js +0 -30
  506. package/studio-dist/server/chunks/adapters-BkMgPNUM.js +0 -359
  507. package/studio-dist/server/chunks/adapters2-CQ3PzoaK.js +0 -28
  508. package/studio-dist/server/chunks/api-mode2-3W-I1-XO.js +0 -36
  509. package/studio-dist/server/chunks/api2-CmNQzb0b.js +0 -96
  510. package/studio-dist/server/chunks/attention-consolidate-CidG1jfH.js +0 -485
  511. package/studio-dist/server/chunks/audit3-DMO_fUGp.js +0 -52
  512. package/studio-dist/server/chunks/auto-extract-B84La1Vs.js +0 -34
  513. package/studio-dist/server/chunks/brain-consolidator-JGm6mzFf.js +0 -373
  514. package/studio-dist/server/chunks/brain-doctor-Dc2WqVbs.js +0 -311
  515. package/studio-dist/server/chunks/brain-embedding-Djw9ekXu.js +0 -42
  516. package/studio-dist/server/chunks/brain-lifecycle-BOOa876K.js +0 -969
  517. package/studio-dist/server/chunks/brain-maintenance-U6VvsvmK.js +0 -133
  518. package/studio-dist/server/chunks/brain-maintenance2-CwVSmfDT.js +0 -43
  519. package/studio-dist/server/chunks/brain-retrieval2-exR8mdgh.js +0 -751
  520. package/studio-dist/server/chunks/brain-search-CpSh-SNi.js +0 -48
  521. package/studio-dist/server/chunks/brain-search2-CwI2cXgg.js +0 -716
  522. package/studio-dist/server/chunks/brain-similarity-DI4yzm9e.js +0 -113
  523. package/studio-dist/server/chunks/brain-stdp2-BxSBIlSr.js +0 -960
  524. package/studio-dist/server/chunks/brain-writer-handlers-Dwu0QCAA.js +0 -188
  525. package/studio-dist/server/chunks/brain-writer-thread-6n7wI7Gy.js +0 -360
  526. package/studio-dist/server/chunks/branch-lock-Cq7zzmFK.js +0 -1118
  527. package/studio-dist/server/chunks/branch-lock2-CmDc4CZW.js +0 -45
  528. package/studio-dist/server/chunks/cancelled-child-waiver-audit-DkesrN83.js +0 -54
  529. package/studio-dist/server/chunks/catalog-model-resolver-Bas9qnoP.js +0 -9
  530. package/studio-dist/server/chunks/catalog-model-resolver2-Cexk2TN0.js +0 -237
  531. package/studio-dist/server/chunks/catalog-resolver-CLot3XJO.js +0 -260
  532. package/studio-dist/server/chunks/catalog-resolver2-JmKb91kY.js +0 -33
  533. package/studio-dist/server/chunks/chunk-DDP5xfzh.js +0 -39
  534. package/studio-dist/server/chunks/cleo-home-CCfe6kAQ.js +0 -64
  535. package/studio-dist/server/chunks/concrete-session2-bb_vxJ2N.js +0 -43
  536. package/studio-dist/server/chunks/config-DHj9CcFs.js +0 -386
  537. package/studio-dist/server/chunks/config2-F6PPIn7D.js +0 -35
  538. package/studio-dist/server/chunks/connections-BMGJVYcS.js +0 -98
  539. package/studio-dist/server/chunks/credential-pool-vF6NdtT9.js +0 -4600
  540. package/studio-dist/server/chunks/credentials-C7EJFf5O.js +0 -35
  541. package/studio-dist/server/chunks/credentials-store-CFygIuB2.js +0 -35
  542. package/studio-dist/server/chunks/cross-db-cleanup-1LWTUKPi.js +0 -147
  543. package/studio-dist/server/chunks/data-accessor-CWgVndbR.js +0 -72
  544. package/studio-dist/server/chunks/data-safety-central-DaFxK27G.js +0 -683
  545. package/studio-dist/server/chunks/decisions-CmVXV2-H.js +0 -574
  546. package/studio-dist/server/chunks/decisions2-XQsSYdxa.js +0 -48
  547. package/studio-dist/server/chunks/depends-waiver-audit-CUmlBYHx.js +0 -56
  548. package/studio-dist/server/chunks/dialectic-evaluator2-BOyyXhdI.js +0 -96
  549. package/studio-dist/server/chunks/dist-es2-DQy2Mjn_.js +0 -43
  550. package/studio-dist/server/chunks/dist-es3-CBygU4n5.js +0 -365
  551. package/studio-dist/server/chunks/dist-es4-CavbNu4B.js +0 -162
  552. package/studio-dist/server/chunks/dist-es5-Crpm8Wsl.js +0 -465
  553. package/studio-dist/server/chunks/dist-es6-CgePHzh4.js +0 -99
  554. package/studio-dist/server/chunks/dist-es7-k6c5GEd7.js +0 -311
  555. package/studio-dist/server/chunks/dist-es8-Bd9v0_pE.js +0 -91
  556. package/studio-dist/server/chunks/dist3-23bsJhRw.js +0 -27
  557. package/studio-dist/server/chunks/dist4-DmC1zSXi.js +0 -35618
  558. package/studio-dist/server/chunks/dual-scope-db-DKnWu1KM.js +0 -5672
  559. package/studio-dist/server/chunks/dual-scope-db2-Dht3luRw.js +0 -31
  560. package/studio-dist/server/chunks/duplicate-bypass-audit-BN5w1H2y.js +0 -36
  561. package/studio-dist/server/chunks/duplicate-detector-CaVFMKdE.js +0 -692
  562. package/studio-dist/server/chunks/edge-types-CgBvb0w1.js +0 -28
  563. package/studio-dist/server/chunks/embedding-local-xEnym8Ho.js +0 -92
  564. package/studio-dist/server/chunks/event-streams-Bi2p_fVo.js +0 -232
  565. package/studio-dist/server/chunks/execution-learning-BVCw7Plq.js +0 -278
  566. package/studio-dist/server/chunks/exodus-BBuuN6aA.js +0 -2594
  567. package/studio-dist/server/chunks/externalDataInterceptor-C3C4cObe.js +0 -21
  568. package/studio-dist/server/chunks/extraction-gate-DDNBq7gu.js +0 -48
  569. package/studio-dist/server/chunks/extraction-gate2-D77EZBQ6.js +0 -375
  570. package/studio-dist/server/chunks/getSSOTokenFromFile-yZAJxDci.js +0 -21
  571. package/studio-dist/server/chunks/governor2-CtfV3wfX.js +0 -923
  572. package/studio-dist/server/chunks/graph-auto-populate-Dmsr9ZJM.js +0 -42
  573. package/studio-dist/server/chunks/graph-auto-populate2-Cz0qeebM.js +0 -156
  574. package/studio-dist/server/chunks/graph-memory-bridge-CY8ft_d7.js +0 -43
  575. package/studio-dist/server/chunks/graph-memory-bridge2-Cd0XZwqc.js +0 -429
  576. package/studio-dist/server/chunks/handler-helpers-AANBGA_p.js +0 -49
  577. package/studio-dist/server/chunks/hash-Cm6yMET4.js +0 -14
  578. package/studio-dist/server/chunks/health-monitor-FepUZN1m.js +0 -106
  579. package/studio-dist/server/chunks/identity-DRpurt56.js +0 -30
  580. package/studio-dist/server/chunks/identity2-DeAB5RXE.js +0 -114
  581. package/studio-dist/server/chunks/index-61916rmV.js +0 -632
  582. package/studio-dist/server/chunks/index-DAgVDouG.js +0 -268
  583. package/studio-dist/server/chunks/index-Dtt_h58T.js +0 -2116
  584. package/studio-dist/server/chunks/indexes-DZ52grq6.js +0 -615
  585. package/studio-dist/server/chunks/json-Bfixam3g.js +0 -126
  586. package/studio-dist/server/chunks/learnings-D6Y3YGMU.js +0 -47
  587. package/studio-dist/server/chunks/learnings2-MwBdR9vb.js +0 -171
  588. package/studio-dist/server/chunks/lifecycle-ops2-V2CR5-7X.js +0 -121
  589. package/studio-dist/server/chunks/list-BhObczvn.js +0 -229
  590. package/studio-dist/server/chunks/living-brain2-j0B_Ir8j.js +0 -285
  591. package/studio-dist/server/chunks/llm-backend-resolver-D4ANvUPL.js +0 -295
  592. package/studio-dist/server/chunks/llm-extraction-DVCu4heR.js +0 -408
  593. package/studio-dist/server/chunks/loadSharedConfigFiles-umvW7kuz.js +0 -73
  594. package/studio-dist/server/chunks/loadSso-iidd5iKx.js +0 -599
  595. package/studio-dist/server/chunks/local-model-fit-B0TxifnX.js +0 -53
  596. package/studio-dist/server/chunks/local-model-fit2-BMqo6GJm.js +0 -2664
  597. package/studio-dist/server/chunks/lock-CA7d6lj7.js +0 -57
  598. package/studio-dist/server/chunks/logger-DQIoyZbq.js +0 -34
  599. package/studio-dist/server/chunks/memory-BUbicBbE.js +0 -618
  600. package/studio-dist/server/chunks/memory-accessor-i3P-RHSg.js +0 -42
  601. package/studio-dist/server/chunks/memory-accessor2-B981tHDR.js +0 -467
  602. package/studio-dist/server/chunks/memory-bridge-BOlEWg9w.js +0 -424
  603. package/studio-dist/server/chunks/memory-sqlite2-B7dq8doO.js +0 -42
  604. package/studio-dist/server/chunks/model-runner2-B71xjp4y.js +0 -43
  605. package/studio-dist/server/chunks/mvi-helpers-BNsJ8ZpQ.js +0 -59
  606. package/studio-dist/server/chunks/nexus-plasticity-BTfU8cW_.js +0 -269
  607. package/studio-dist/server/chunks/nexus-risk-audit-p379-TU5.js +0 -54
  608. package/studio-dist/server/chunks/nexus-schema-zeygY8OD.js +0 -11
  609. package/studio-dist/server/chunks/nexus-schema2-DP0Qd7CA.js +0 -444
  610. package/studio-dist/server/chunks/nexus-sqlite-BVNIpwc7.js +0 -36
  611. package/studio-dist/server/chunks/nexus-sqlite2-BBfY2xnY.js +0 -1103
  612. package/studio-dist/server/chunks/node-http-handler-CJI8kn7X.js +0 -386
  613. package/studio-dist/server/chunks/observe-Bo9veHGe.js +0 -47
  614. package/studio-dist/server/chunks/observe2-wzO0MaMY.js +0 -245
  615. package/studio-dist/server/chunks/observer-reflector-BwNOuq1d.js +0 -62
  616. package/studio-dist/server/chunks/observer-reflector2-ggtC1hmk.js +0 -478
  617. package/studio-dist/server/chunks/on-open-Wpcw7DV4.js +0 -740
  618. package/studio-dist/server/chunks/open-cleo-db--8sYNaYY.js +0 -70
  619. package/studio-dist/server/chunks/parseKnownFiles-Dg0pMFcT.js +0 -18
  620. package/studio-dist/server/chunks/parseUrl-qgGfl-Vh.js +0 -120
  621. package/studio-dist/server/chunks/paths-CV7S5-Zm.js +0 -30012
  622. package/studio-dist/server/chunks/patterns-lh5kn13I.js +0 -48
  623. package/studio-dist/server/chunks/patterns2-CzIcT-ai.js +0 -177
  624. package/studio-dist/server/chunks/pipeline-stage-IB_pOft-.js +0 -63
  625. package/studio-dist/server/chunks/prediction-D1lSGJ4c.js +0 -217
  626. package/studio-dist/server/chunks/premature-close-audit-VG09uAco.js +0 -53
  627. package/studio-dist/server/chunks/project-context-BjiqfEBi.js +0 -166
  628. package/studio-dist/server/chunks/provider-registry2-Cu7rAF0R.js +0 -35
  629. package/studio-dist/server/chunks/quality-feedback-CuCGEI6S.js +0 -371
  630. package/studio-dist/server/chunks/quality-scoring-CCPuRQmJ.js +0 -160
  631. package/studio-dist/server/chunks/query-ops-DCrjbZb9.js +0 -78
  632. package/studio-dist/server/chunks/query-promise-BkPmGPJy.js +0 -1257
  633. package/studio-dist/server/chunks/readFile-CxwXhymG.js +0 -31
  634. package/studio-dist/server/chunks/registry-CL2gN1zd.js +0 -27
  635. package/studio-dist/server/chunks/registry2-DoPYJnUW.js +0 -233
  636. package/studio-dist/server/chunks/registry3-BajEb-ll.js +0 -42
  637. package/studio-dist/server/chunks/registry4-DCqffZkT.js +0 -142
  638. package/studio-dist/server/chunks/retry-B3oEKYpp.js +0 -105
  639. package/studio-dist/server/chunks/role-executor-CC8BU54L.js +0 -25379
  640. package/studio-dist/server/chunks/role-resolver-D9QaDT0e.js +0 -6544
  641. package/studio-dist/server/chunks/role-resolver2-nkhzS1oy.js +0 -37
  642. package/studio-dist/server/chunks/rollup-CiefjN_Y.js +0 -194
  643. package/studio-dist/server/chunks/safety-data-accessor-CniDmGJO.js +0 -276
  644. package/studio-dist/server/chunks/service-connections-accessor-yBCdcgU-.js +0 -282
  645. package/studio-dist/server/chunks/session-factory-vbengc42.js +0 -96
  646. package/studio-dist/server/chunks/session-grade-BF4ZZtN_.js +0 -244
  647. package/studio-dist/server/chunks/session-journal-Bvey70Ur.js +0 -235
  648. package/studio-dist/server/chunks/session-narrative-BirZINSU.js +0 -304
  649. package/studio-dist/server/chunks/session-store--N_xHxUH.js +0 -557
  650. package/studio-dist/server/chunks/session-store2-DAM-eVTH.js +0 -43
  651. package/studio-dist/server/chunks/sessions-33DD4hkt.js +0 -2273
  652. package/studio-dist/server/chunks/sessions2-BHswKRDP.js +0 -50
  653. package/studio-dist/server/chunks/sigil-B-RznFXz.js +0 -33
  654. package/studio-dist/server/chunks/sigil2-jRMG5DuR.js +0 -47
  655. package/studio-dist/server/chunks/signin-BAsW3mM8.js +0 -644
  656. package/studio-dist/server/chunks/sleep-consolidation-BnSwXrvq.js +0 -823
  657. package/studio-dist/server/chunks/specialists-B_ZbpQlK.js +0 -441
  658. package/studio-dist/server/chunks/sqlite-Bm5LzbPs.js +0 -5977
  659. package/studio-dist/server/chunks/sqlite-backup-CFG1-b2e.js +0 -42
  660. package/studio-dist/server/chunks/sqlite-data-accessor-DD_RFX6r.js +0 -987
  661. package/studio-dist/server/chunks/sqlite-data-accessor2-CRmgNBnq.js +0 -44
  662. package/studio-dist/server/chunks/sqlite-native-BwlIqtbs.js +0 -42
  663. package/studio-dist/server/chunks/sqlite2-CUPut2fh.js +0 -42
  664. package/studio-dist/server/chunks/src2-DK8DKufK.js +0 -290
  665. package/studio-dist/server/chunks/src3-BJjf7XRG.js +0 -798
  666. package/studio-dist/server/chunks/src4-DNleK_t_.js +0 -28
  667. package/studio-dist/server/chunks/sso-oidc-eUvwseuL.js +0 -861
  668. package/studio-dist/server/chunks/storage-B9UA3BHR.js +0 -198
  669. package/studio-dist/server/chunks/sts-g7LDMLEd.js +0 -4655
  670. package/studio-dist/server/chunks/surprisal-CwTfWQi8.js +0 -224
  671. package/studio-dist/server/chunks/surprisal-tree-7dfHsuw1.js +0 -230
  672. package/studio-dist/server/chunks/system-resolver2-Bzhue_zQ.js +0 -53
  673. package/studio-dist/server/chunks/tasks-SHX7UPGY.js +0 -19694
  674. package/studio-dist/server/chunks/tasks-schema2-CTMoQKQy.js +0 -42
  675. package/studio-dist/server/chunks/temporal-supersession-DP4GPG_B.js +0 -298
  676. package/studio-dist/server/chunks/token-cAhAD9f9.js +0 -139
  677. package/studio-dist/server/chunks/token-util-D6drEz8_.js +0 -353
  678. package/studio-dist/server/chunks/token-util2-8UPSGvbb.js +0 -97
  679. package/studio-dist/server/chunks/transcript-scanner-kJWhWmlg.js +0 -53
  680. package/studio-dist/server/chunks/transformers.node-_xbxmK5p.js +0 -38475
  681. package/studio-dist/server/chunks/typed-query-l1D_QElt.js +0 -18
  682. package/studio-dist/server/chunks/unique-constraint-BZrrwgwc.js +0 -88
  683. package/studio-dist/server/chunks/update-B2YVBZG0.js +0 -1594
  684. package/studio-dist/server/chunks/user-profile-B61ZhVmC.js +0 -89
  685. package/studio-dist/server/chunks/utils-BPSZyajG.js +0 -1176
  686. package/studio-dist/server/chunks/validation-rules-CE27rtoF.js +0 -44
  687. package/studio-dist/server/chunks/zod-DsAeKNLm.js +0 -141
  688. /package/studio-dist/client/_app/immutable/chunks/{CQCxd1p9.js → B8WnZMYa.js} +0 -0
  689. /package/studio-dist/client/_app/immutable/chunks/{D13Quv9e2.js → B_0_YCYG.js} +0 -0
  690. /package/studio-dist/client/_app/immutable/chunks/{djL6V-tr.js → CqgtdAx_.js} +0 -0
  691. /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