@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,987 +0,0 @@
1
- import { T as TERMINAL_TASK_STATUSES, b as getLogger } from './paths-CV7S5-Zm.js';
2
- import { w as withWriteRetry } from './dual-scope-db-DKnWu1KM.js';
3
- import { a as getDb, b as getNativeTasksDb, c as closeDb, u as tasksEvidenceAcBindings, w as tasksTaskAcceptanceCriteriaHistory, x as tasksTaskAcceptanceCriteria, y as tasksTaskRelations, f as tasksTasks, h as tasksTaskDependencies, i as tasksTaskLabels, t as tasksSessions, e as auditLog, s as schemaMeta } from './sqlite-Bm5LzbPs.js';
4
- import { d as rowToTask, t as taskToRow, f as resolveCurrentSession, h as rowToSession, i as archivedTaskToRow } from './session-store--N_xHxUH.js';
5
- import { c as cleanupBrainRefsOnSessionDelete } from './cross-db-cleanup-1LWTUKPi.js';
6
- import { s as sql } from './utils-BPSZyajG.js';
7
- import { i as inArray, e as eq, a as and, n as ne, b as notInArray, c as isNull, o as or, l as like } from './query-promise-BkPmGPJy.js';
8
-
9
- //#region ../core/dist/store/db-helpers.js
10
- /**
11
- * Shared database helper functions for SQLite store modules.
12
- *
13
- * Consolidates upsert and dependency patterns used across
14
- * sqlite-data-accessor.ts, tasks-sqlite.ts, and session-store.ts.
15
- *
16
- * @epic T4454
17
- */
18
- var log = getLogger("db-helpers");
19
- /**
20
- * Upsert a single task row into the tasks table.
21
- * Handles both active task upsert and archived task upsert via optional archiveFields.
22
- *
23
- * When `allowOrphanParent` is true (bulk/migration mode, T5034): silently nulls out
24
- * parentId if the referenced parent does not exist, preventing FK violations.
25
- * When false (normal single-task writes, default): logs a warning but still proceeds
26
- * so that FK enforcement at the DB level provides the final safety net.
27
- *
28
- * Callers that perform bulk imports or archive restoration should pass
29
- * `allowOrphanParent: true` to enable the lenient behavior.
30
- */
31
- async function upsertTask(db, row, archiveFields, allowOrphanParent = false) {
32
- if (row.parentId) {
33
- if ((await db.select({ id: tasksTasks.id }).from(tasksTasks).where(eq(tasksTasks.id, row.parentId)).limit(1).all()).length === 0) if (allowOrphanParent) row = {
34
- ...row,
35
- parentId: null
36
- };
37
- else log.warn({
38
- taskId: row.id,
39
- parentId: row.parentId
40
- }, "upsertTask: parentId references a non-existent task — parent relationship may be lost");
41
- }
42
- const values = archiveFields ? {
43
- ...row,
44
- ...archiveFields,
45
- status: "archived"
46
- } : row;
47
- const set = {
48
- title: row.title,
49
- description: row.description,
50
- status: archiveFields ? "archived" : row.status,
51
- priority: row.priority,
52
- type: row.type,
53
- kind: row.kind,
54
- scope: row.scope,
55
- severity: row.severity,
56
- parentId: row.parentId,
57
- phase: row.phase,
58
- size: row.size,
59
- position: row.position,
60
- positionVersion: row.positionVersion,
61
- labelsJson: row.labelsJson,
62
- notesJson: row.notesJson,
63
- acceptanceJson: row.acceptanceJson,
64
- filesJson: row.filesJson,
65
- origin: row.origin,
66
- blockedBy: row.blockedBy,
67
- epicLifecycle: row.epicLifecycle,
68
- noAutoComplete: row.noAutoComplete,
69
- createdAt: row.createdAt,
70
- updatedAt: row.updatedAt,
71
- completedAt: row.completedAt,
72
- cancelledAt: row.cancelledAt,
73
- cancellationReason: row.cancellationReason,
74
- verificationJson: row.verificationJson,
75
- createdBy: row.createdBy,
76
- modifiedBy: row.modifiedBy,
77
- sessionId: row.sessionId,
78
- pipelineStage: row.pipelineStage ?? null,
79
- assignee: row.assignee ?? null,
80
- archivedAt: archiveFields?.archivedAt ?? null,
81
- archiveReason: archiveFields?.archiveReason ?? null,
82
- cycleTimeDays: archiveFields?.cycleTimeDays ?? null
83
- };
84
- await db.insert(tasksTasks).values(values).onConflictDoUpdate({
85
- target: tasksTasks.id,
86
- set
87
- }).run();
88
- await updateTaskLabels(db, row.id, parseLabels(row.labelsJson));
89
- }
90
- /**
91
- * Parse a `labels_json` text column into a deduplicated string-array.
92
- *
93
- * Invalid / non-array JSON yields an empty list — the junction is then emptied
94
- * for that task, matching the "no labels" state.
95
- *
96
- * @param labelsJson - The serialized JSON array from `tasks.labels_json`.
97
- * @returns Deduplicated, non-empty label strings.
98
- */
99
- function parseLabels(labelsJson) {
100
- if (!labelsJson) return [];
101
- try {
102
- const parsed = JSON.parse(labelsJson);
103
- if (!Array.isArray(parsed)) return [];
104
- const seen = /* @__PURE__ */ new Set();
105
- for (const l of parsed) if (typeof l === "string" && l.length > 0) seen.add(l);
106
- return [...seen];
107
- } catch {
108
- return [];
109
- }
110
- }
111
- /**
112
- * Replace the {@link schema.taskLabels} junction rows for one task so they
113
- * exactly mirror its label set (T11356).
114
- *
115
- * Delete-then-insert keeps the junction authoritative without read-modify-write
116
- * races: the prior label set is dropped and the supplied set re-inserted. Called
117
- * from {@link upsertTask} and from raw-SQL proposal inserters that bypass it.
118
- *
119
- * @param db - Drizzle tasks.db handle.
120
- * @param taskId - The owning task id.
121
- * @param labels - The full label set the junction should reflect.
122
- */
123
- async function updateTaskLabels(db, taskId, labels) {
124
- await db.delete(tasksTaskLabels).where(eq(tasksTaskLabels.taskId, taskId)).run();
125
- if (labels.length === 0) return;
126
- await db.insert(tasksTaskLabels).values(labels.map((label) => ({
127
- taskId,
128
- label
129
- }))).onConflictDoNothing().run();
130
- }
131
- /**
132
- * Upsert a single session row into the sessions table.
133
- */
134
- async function upsertSession(db, session) {
135
- const sessionName = session.name || `session-${session.id}`;
136
- const values = {
137
- id: session.id,
138
- name: sessionName,
139
- status: session.status,
140
- scopeJson: JSON.stringify(session.scope ?? { type: "global" }),
141
- currentTask: session.taskWork?.taskId ?? null,
142
- taskStartedAt: session.taskWork?.setAt ?? null,
143
- agent: session.agent ?? null,
144
- notesJson: session.notes ? JSON.stringify(session.notes) : "[]",
145
- tasksCompletedJson: session.tasksCompleted ? JSON.stringify(session.tasksCompleted) : "[]",
146
- tasksCreatedJson: session.tasksCreated ? JSON.stringify(session.tasksCreated) : "[]",
147
- handoffJson: session.handoffJson ?? null,
148
- startedAt: session.startedAt,
149
- endedAt: session.endedAt ?? null,
150
- previousSessionId: session.previousSessionId ?? null,
151
- nextSessionId: session.nextSessionId ?? null,
152
- parentSessionId: session.parentSessionId ?? null,
153
- agentIdentifier: session.agentIdentifier ?? null,
154
- handoffConsumedAt: session.handoffConsumedAt ?? null,
155
- handoffConsumedBy: session.handoffConsumedBy ?? null,
156
- debriefJson: session.debriefJson ?? null,
157
- statsJson: session.stats ? JSON.stringify(session.stats) : null,
158
- resumeCount: session.resumeCount ?? null,
159
- gradeMode: session.gradeMode ? true : null,
160
- agentHandle: session.agentHandle ?? null,
161
- scopeKind: session.scopeKind ?? null,
162
- scopeId: session.scopeId ?? null,
163
- lastActivity: session.lastActivity ?? null
164
- };
165
- const { id: _id, ...setFields } = values;
166
- await db.insert(tasksSessions).values(values).onConflictDoUpdate({
167
- target: tasksSessions.id,
168
- set: setFields
169
- }).run();
170
- }
171
- /**
172
- * Update dependencies for a task: delete existing, then re-insert.
173
- * Optionally filters by a set of valid IDs.
174
- */
175
- async function updateDependencies(db, taskId, depends, validIds) {
176
- await db.delete(tasksTaskDependencies).where(eq(tasksTaskDependencies.taskId, taskId)).run();
177
- for (const depId of depends) await db.insert(tasksTaskDependencies).values({
178
- taskId,
179
- dependsOn: depId
180
- }).onConflictDoNothing().run();
181
- }
182
- /**
183
- * Batch-update dependencies for multiple tasks in two bulk SQL operations.
184
- * Replaces per-task updateDependencies() loops with:
185
- * 1. Single DELETE for all task IDs
186
- * 2. Single INSERT for all dependency rows
187
- *
188
- * Callers are responsible for wrapping this in a transaction if needed.
189
- */
190
- async function batchUpdateDependencies(db, tasks, validIds) {
191
- if (tasks.length === 0) return;
192
- const allTaskIds = tasks.map((t) => t.taskId);
193
- await db.delete(tasksTaskDependencies).where(inArray(tasksTaskDependencies.taskId, allTaskIds)).run();
194
- const allDepRows = [];
195
- for (const { taskId, deps } of tasks) for (const depId of deps) if (!validIds || validIds.has(depId)) allDepRows.push({
196
- taskId,
197
- dependsOn: depId
198
- });
199
- if (allDepRows.length > 0) await db.insert(tasksTaskDependencies).values(allDepRows).onConflictDoNothing().run();
200
- }
201
- /**
202
- * Batch-load dependencies for a list of tasks and apply them in-place.
203
- * Uses inArray for efficient querying. Optionally filters by a set of valid IDs.
204
- */
205
- async function loadDependenciesForTasks(db, tasks, validationIds) {
206
- if (tasks.length === 0) return;
207
- const taskIds = tasks.map((t) => t.id);
208
- const taskIdSet = validationIds ?? new Set(taskIds);
209
- const allDeps = await db.select().from(tasksTaskDependencies).where(inArray(tasksTaskDependencies.taskId, taskIds)).all();
210
- const depMap = /* @__PURE__ */ new Map();
211
- for (const dep of allDeps) if (taskIdSet.has(dep.dependsOn)) {
212
- let arr = depMap.get(dep.taskId);
213
- if (!arr) {
214
- arr = [];
215
- depMap.set(dep.taskId, arr);
216
- }
217
- arr.push(dep.dependsOn);
218
- }
219
- for (const task of tasks) {
220
- const deps = depMap.get(task.id);
221
- if (deps && deps.length > 0) task.depends = deps;
222
- }
223
- }
224
- /**
225
- * Batch-load relations for a list of tasks and apply them in-place.
226
- * Mirrors loadDependenciesForTasks pattern for task_relations table (T5168).
227
- */
228
- async function loadRelationsForTasks(db, tasks) {
229
- if (tasks.length === 0) return;
230
- const taskIds = tasks.map((t) => t.id);
231
- const allRels = await db.select().from(tasksTaskRelations).where(inArray(tasksTaskRelations.taskId, taskIds)).all();
232
- const relMap = /* @__PURE__ */ new Map();
233
- for (const rel of allRels) {
234
- let arr = relMap.get(rel.taskId);
235
- if (!arr) {
236
- arr = [];
237
- relMap.set(rel.taskId, arr);
238
- }
239
- arr.push({
240
- taskId: rel.relatedTo,
241
- type: rel.relationType,
242
- reason: rel.reason ?? void 0
243
- });
244
- }
245
- for (const task of tasks) {
246
- const relations = relMap.get(task.id);
247
- task.relates = relations && relations.length > 0 ? relations : [];
248
- }
249
- }
250
- //#endregion
251
- //#region ../core/dist/store/sqlite-data-accessor.js
252
- /**
253
- * SQLite-based implementation of the DataAccessor interface.
254
- *
255
- * Materializes TaskFile/ArchiveFile/SessionsFile from SQLite tables,
256
- * allowing core modules to continue using whole-file data structures
257
- * while storage is backed by the relational database.
258
- *
259
- * Uses existing sqlite.ts engine (node:sqlite / drizzle-orm) and
260
- * tasks-sqlite.ts / session-store.ts for row-level operations.
261
- *
262
- * @epic T4454
263
- */
264
- /**
265
- * Per-process monotonic counter for unique nested SAVEPOINT names (T9814).
266
- * Only used when DataAccessor.transaction() is called from within an
267
- * already-open outer transaction (depth > 0). Outer transactions use
268
- * BEGIN IMMEDIATE/COMMIT/ROLLBACK (depth = 0).
269
- */
270
- var _txSavepointCounter = 0;
271
- /**
272
- * Generate a unique audit log entry ID.
273
- * @task T4837
274
- */
275
- function generateAuditLogId() {
276
- return `log-${Math.floor(Date.now() / 1e3)}-${Math.random().toString(36).slice(2, 8)}`;
277
- }
278
- /**
279
- * Run `fn` inside an outermost `BEGIN IMMEDIATE` transaction, wrapped
280
- * in {@link withWriteRetry} so SQLITE_BUSY contention is absorbed at the
281
- * transaction boundary rather than mid-statement.
282
- *
283
- * - Acquires a RESERVED lock immediately so concurrent writers queue
284
- * politely (or fall through to retry after `busy_timeout` expires).
285
- * - Commits on success; rolls back on any thrown error before
286
- * propagating it. If the thrown error is SQLITE_BUSY,
287
- * {@link withWriteRetry} re-runs the WHOLE function (BEGIN included)
288
- * after backoff — better-sqlite3 / node:sqlite forbids nesting
289
- * `BEGIN IMMEDIATE` inside an open transaction, so retry MUST start
290
- * from this outer boundary.
291
- *
292
- * DO NOT call this from inside an already-open transaction. For nested
293
- * writes use `accessor.transaction()` which uses SAVEPOINTs (T9814).
294
- *
295
- * @bug gh-391 — SQLITE_BUSY contention on parallel writes.
296
- * @task T9839
297
- */
298
- async function runInImmediateTx(nativeDb, fn) {
299
- return withWriteRetry(async () => {
300
- nativeDb.prepare("BEGIN IMMEDIATE").run();
301
- try {
302
- const result = await fn();
303
- nativeDb.prepare("COMMIT").run();
304
- return result;
305
- } catch (err) {
306
- try {
307
- nativeDb.prepare("ROLLBACK").run();
308
- } catch {}
309
- throw err;
310
- }
311
- });
312
- }
313
- /** Read a JSON blob from the schema_meta table by key. */
314
- async function getMetaValue(cwd, key) {
315
- const rows = await (await getDb(cwd)).select().from(schemaMeta).where(eq(schemaMeta.key, key)).all();
316
- if (rows.length === 0 || !rows[0]) return null;
317
- try {
318
- return JSON.parse(rows[0].value);
319
- } catch {
320
- return null;
321
- }
322
- }
323
- /** Write a JSON blob to the schema_meta table by key. */
324
- async function setMetaValue(cwd, key, value) {
325
- const db = await getDb(cwd);
326
- const json = JSON.stringify(value);
327
- await db.insert(schemaMeta).values({
328
- key,
329
- value: json
330
- }).onConflictDoUpdate({
331
- target: schemaMeta.key,
332
- set: { value: json }
333
- }).run();
334
- }
335
- /**
336
- * Create a SQLite-backed DataAccessor.
337
- *
338
- * Opens (or creates) the SQLite database at `.cleo/tasks.db` and returns
339
- * a DataAccessor that materializes/dematerializes whole-file structures
340
- * from the relational tables.
341
- *
342
- * @param cwd - Working directory for path resolution (defaults to process.cwd())
343
- */
344
- async function createSqliteDataAccessor(cwd) {
345
- await getDb(cwd);
346
- /** Load all task IDs for cross-task dependency validation. */
347
- async function getAllTaskIds() {
348
- const rows = await (await getDb(cwd)).select({ id: tasksTasks.id }).from(tasksTasks).all();
349
- return new Set(rows.map((r) => r.id));
350
- }
351
- let _txDepth = 0;
352
- const accessor = {
353
- engine: "sqlite",
354
- async loadArchive() {
355
- const db = await getDb(cwd);
356
- const archivedRows = await db.select().from(tasksTasks).where(eq(tasksTasks.status, "archived")).all();
357
- if (archivedRows.length === 0) return null;
358
- const archivedTasks = archivedRows.map((row) => {
359
- return {
360
- ...rowToTask(row),
361
- archivedAt: row.archivedAt ?? void 0,
362
- archiveReason: row.archiveReason ?? void 0,
363
- cycleTimeDays: row.cycleTimeDays ?? void 0
364
- };
365
- });
366
- if (archivedTasks.length > 0) {
367
- const activeRows = await db.select({ id: tasksTasks.id }).from(tasksTasks).where(ne(tasksTasks.status, "archived")).all();
368
- await loadDependenciesForTasks(db, archivedTasks, new Set([...archivedTasks.map((t) => t.id), ...activeRows.map((r) => r.id)]));
369
- await loadRelationsForTasks(db, archivedTasks);
370
- }
371
- return {
372
- archivedTasks,
373
- version: "1.0.0"
374
- };
375
- },
376
- async saveArchive(data) {
377
- const db = await getDb(cwd);
378
- const archiveIds = new Set(data.archivedTasks.map((t) => t.id));
379
- const activeRows = await db.select({ id: tasksTasks.id }).from(tasksTasks).where(ne(tasksTasks.status, "archived")).all();
380
- const validDepIds = new Set([...archiveIds, ...activeRows.map((r) => r.id)]);
381
- const nativeDb = getNativeTasksDb();
382
- if (!nativeDb) throw new Error("Native database not initialized");
383
- await runInImmediateTx(nativeDb, async () => {
384
- const depBatch = [];
385
- for (const task of data.archivedTasks) {
386
- const row = archivedTaskToRow(task);
387
- const taskAny = task;
388
- await upsertTask(db, row, {
389
- archivedAt: taskAny.archivedAt ?? row.completedAt ?? (/* @__PURE__ */ new Date()).toISOString(),
390
- archiveReason: taskAny.archiveReason ?? "completed-unverified",
391
- cycleTimeDays: taskAny.cycleTimeDays ?? null
392
- }, true);
393
- depBatch.push({
394
- taskId: task.id,
395
- deps: task.depends ?? []
396
- });
397
- }
398
- await batchUpdateDependencies(db, depBatch, validDepIds);
399
- });
400
- },
401
- async loadSessions() {
402
- return (await (await getDb(cwd)).select().from(tasksSessions).all()).map(rowToSession);
403
- },
404
- async saveSessions(sessions) {
405
- const db = await getDb(cwd);
406
- const existingRows = await db.select({ id: tasksSessions.id }).from(tasksSessions).all();
407
- const existingIds = new Set(existingRows.map((r) => r.id));
408
- const incomingIds = new Set(sessions.map((s) => s.id));
409
- for (const eid of existingIds) if (!incomingIds.has(eid)) await db.delete(tasksSessions).where(eq(tasksSessions.id, eid)).run();
410
- for (const session of sessions) await upsertSession(db, session);
411
- },
412
- async appendLog(entry) {
413
- const db = await getDb(cwd);
414
- await withWriteRetry(() => db.insert(auditLog).values({
415
- id: entry.id ?? generateAuditLogId(),
416
- timestamp: entry.timestamp ?? (/* @__PURE__ */ new Date()).toISOString(),
417
- action: entry.action ?? entry.operation ?? "unknown",
418
- taskId: entry.taskId ?? "unknown",
419
- actor: entry.actor ?? "system",
420
- detailsJson: entry.details ? JSON.stringify(entry.details) : "{}",
421
- beforeJson: entry.before ? JSON.stringify(entry.before) : null,
422
- afterJson: entry.after ? JSON.stringify(entry.after) : null
423
- }).run());
424
- },
425
- async queryAuditLog(query) {
426
- const db = await getDb(cwd);
427
- const conditions = [];
428
- if (query.taskIds && query.taskIds.length > 0) conditions.push(inArray(auditLog.taskId, [...query.taskIds]));
429
- if (query.actions && query.actions.length > 0) conditions.push(inArray(auditLog.action, [...query.actions]));
430
- if (query.since) conditions.push(sql`${auditLog.timestamp} >= ${query.since}`);
431
- const limit = Math.max(1, Math.floor(query.limit ?? 100));
432
- return (await db.select({
433
- id: auditLog.id,
434
- timestamp: auditLog.timestamp,
435
- action: auditLog.action,
436
- taskId: auditLog.taskId,
437
- actor: auditLog.actor,
438
- detailsJson: auditLog.detailsJson,
439
- beforeJson: auditLog.beforeJson,
440
- afterJson: auditLog.afterJson
441
- }).from(auditLog).where(conditions.length > 0 ? and(...conditions) : void 0).orderBy(sql`${auditLog.timestamp} DESC`).limit(limit).all()).map((row) => ({
442
- id: row.id,
443
- timestamp: row.timestamp,
444
- action: row.action,
445
- taskId: row.taskId,
446
- actor: row.actor,
447
- detailsJson: row.detailsJson ?? null,
448
- beforeJson: row.beforeJson ?? null,
449
- afterJson: row.afterJson ?? null
450
- }));
451
- },
452
- async upsertSingleTask(task) {
453
- const db = await getDb(cwd);
454
- const row = taskToRow(task);
455
- await withWriteRetry(async () => {
456
- await upsertTask(db, row);
457
- await updateDependencies(db, task.id, task.depends ?? []);
458
- });
459
- },
460
- async addRelation(taskId, relatedTo, relationType, reason) {
461
- const db = await getDb(cwd);
462
- const validTypes = [
463
- "related",
464
- "blocks",
465
- "duplicates",
466
- "absorbs",
467
- "fixes",
468
- "extends",
469
- "supersedes",
470
- "groups"
471
- ];
472
- if (!validTypes.includes(relationType)) throw new Error(`Invalid relation type: ${relationType}. Valid types: ${validTypes.join(", ")}`);
473
- await withWriteRetry(() => db.insert(tasksTaskRelations).values({
474
- taskId,
475
- relatedTo,
476
- relationType,
477
- reason: reason ?? null
478
- }).onConflictDoNothing().run());
479
- },
480
- async removeRelation(taskId, relatedTo, relationType) {
481
- const db = await getDb(cwd);
482
- const conditions = [eq(tasksTaskRelations.taskId, taskId), eq(tasksTaskRelations.relatedTo, relatedTo)];
483
- if (relationType !== void 0) {
484
- const validTypes = [
485
- "related",
486
- "blocks",
487
- "duplicates",
488
- "absorbs",
489
- "fixes",
490
- "extends",
491
- "supersedes",
492
- "groups"
493
- ];
494
- if (!validTypes.includes(relationType)) throw new Error(`Invalid relation type: ${relationType}. Valid types: ${validTypes.join(", ")}`);
495
- conditions.push(eq(tasksTaskRelations.relationType, relationType));
496
- }
497
- await withWriteRetry(() => db.delete(tasksTaskRelations).where(and(...conditions)).run());
498
- },
499
- async getAcRows(taskId) {
500
- return (await (await getDb(cwd)).select({
501
- id: tasksTaskAcceptanceCriteria.id,
502
- taskId: tasksTaskAcceptanceCriteria.taskId,
503
- ordinal: tasksTaskAcceptanceCriteria.ordinal,
504
- kind: tasksTaskAcceptanceCriteria.kind,
505
- sourceKey: tasksTaskAcceptanceCriteria.sourceKey,
506
- targetTaskId: tasksTaskAcceptanceCriteria.targetTaskId,
507
- projection: tasksTaskAcceptanceCriteria.projection,
508
- text: tasksTaskAcceptanceCriteria.text,
509
- createdAt: tasksTaskAcceptanceCriteria.createdAt,
510
- updatedAt: tasksTaskAcceptanceCriteria.updatedAt,
511
- contentHash: tasksTaskAcceptanceCriteria.contentHash
512
- }).from(tasksTaskAcceptanceCriteria).where(eq(tasksTaskAcceptanceCriteria.taskId, taskId)).orderBy(tasksTaskAcceptanceCriteria.ordinal).all()).map((r) => ({
513
- id: r.id,
514
- taskId: r.taskId,
515
- ordinal: r.ordinal,
516
- kind: r.kind,
517
- sourceKey: r.sourceKey ?? `text:${r.ordinal}`,
518
- targetTaskId: r.targetTaskId ?? null,
519
- projection: r.projection,
520
- text: r.text,
521
- createdAt: r.createdAt,
522
- updatedAt: r.updatedAt ?? null,
523
- contentHash: r.contentHash ?? null
524
- }));
525
- },
526
- async getAcBindings(acIds) {
527
- if (acIds.length === 0) return [];
528
- return (await (await getDb(cwd)).select({
529
- id: tasksEvidenceAcBindings.id,
530
- evidenceAtomId: tasksEvidenceAcBindings.evidenceAtomId,
531
- acId: tasksEvidenceAcBindings.acId,
532
- bindingType: tasksEvidenceAcBindings.bindingType,
533
- createdAt: tasksEvidenceAcBindings.createdAt
534
- }).from(tasksEvidenceAcBindings).where(inArray(tasksEvidenceAcBindings.acId, acIds)).all()).map((r) => ({
535
- id: r.id,
536
- evidenceAtomId: r.evidenceAtomId,
537
- acId: r.acId,
538
- bindingType: r.bindingType,
539
- createdAt: r.createdAt
540
- }));
541
- },
542
- async archiveSingleTask(taskId, fields) {
543
- const db = await getDb(cwd);
544
- if ((await db.select({ id: tasksTasks.id }).from(tasksTasks).where(eq(tasksTasks.id, taskId)).all()).length === 0) return;
545
- await withWriteRetry(() => db.update(tasksTasks).set({
546
- status: "archived",
547
- archivedAt: fields.archivedAt ?? (/* @__PURE__ */ new Date()).toISOString(),
548
- archiveReason: fields.archiveReason ?? "completed-unverified",
549
- cycleTimeDays: fields.cycleTimeDays ?? null,
550
- updatedAt: (/* @__PURE__ */ new Date()).toISOString()
551
- }).where(eq(tasksTasks.id, taskId)).run());
552
- },
553
- async removeSingleTask(taskId) {
554
- const db = await getDb(cwd);
555
- await withWriteRetry(async () => {
556
- await db.delete(tasksTaskDependencies).where(eq(tasksTaskDependencies.taskId, taskId)).run();
557
- await db.delete(tasksTaskDependencies).where(eq(tasksTaskDependencies.dependsOn, taskId)).run();
558
- await db.delete(tasksTasks).where(eq(tasksTasks.id, taskId)).run();
559
- });
560
- },
561
- async loadSingleTask(taskId) {
562
- const db = await getDb(cwd);
563
- const rows = await db.select().from(tasksTasks).where(eq(tasksTasks.id, taskId)).limit(1).all();
564
- if (rows.length === 0 || !rows[0]) return null;
565
- const task = rowToTask(rows[0]);
566
- const allIdRows = await db.select({ id: tasksTasks.id }).from(tasksTasks).all();
567
- const allIds = new Set(allIdRows.map((r) => r.id));
568
- await loadDependenciesForTasks(db, [task], allIds);
569
- await loadRelationsForTasks(db, [task]);
570
- return task;
571
- },
572
- async getActiveSession() {
573
- const rows = await (await getDb(cwd)).select().from(tasksSessions).where(eq(tasksSessions.status, "active")).orderBy(sql`${tasksSessions.startedAt} DESC`).limit(1).all();
574
- if (rows.length === 0 || !rows[0]) return null;
575
- return rowToSession(rows[0]);
576
- },
577
- async resolveCurrentSession() {
578
- return resolveCurrentSession(cwd);
579
- },
580
- async upsertSingleSession(session) {
581
- await upsertSession(await getDb(cwd), session);
582
- },
583
- async removeSingleSession(sessionId) {
584
- await (await getDb(cwd)).delete(tasksSessions).where(eq(tasksSessions.id, sessionId)).run();
585
- cleanupBrainRefsOnSessionDelete(sessionId, cwd);
586
- },
587
- async queryTasks(filters) {
588
- const db = await getDb(cwd);
589
- const conditions = [];
590
- if (filters.status) {
591
- const statuses = Array.isArray(filters.status) ? filters.status : [filters.status];
592
- if (!statuses.includes("archived")) conditions.push(ne(tasksTasks.status, "archived"));
593
- conditions.push(inArray(tasksTasks.status, statuses));
594
- } else if (filters.excludeStatus) {
595
- const excluded = Array.isArray(filters.excludeStatus) ? filters.excludeStatus : [filters.excludeStatus];
596
- for (const s of excluded) conditions.push(ne(tasksTasks.status, s));
597
- } else conditions.push(ne(tasksTasks.status, "archived"));
598
- if (filters.priority) conditions.push(eq(tasksTasks.priority, filters.priority));
599
- if (filters.type) conditions.push(eq(tasksTasks.type, filters.type));
600
- if (filters.phase) conditions.push(eq(tasksTasks.phase, filters.phase));
601
- if (filters.severity) {
602
- const severities = Array.isArray(filters.severity) ? filters.severity : [filters.severity];
603
- conditions.push(inArray(tasksTasks.severity, severities));
604
- }
605
- if (filters.kind) {
606
- const kinds = Array.isArray(filters.kind) ? filters.kind : [filters.kind];
607
- conditions.push(inArray(tasksTasks.kind, kinds));
608
- }
609
- if (filters.parentId !== void 0) if (filters.parentId === null) conditions.push(isNull(tasksTasks.parentId));
610
- else conditions.push(eq(tasksTasks.parentId, filters.parentId));
611
- if (filters.search) {
612
- const pattern = `%${filters.search}%`;
613
- conditions.push(or(like(tasksTasks.title, pattern), like(tasksTasks.description, pattern), like(tasksTasks.id, pattern)));
614
- }
615
- if (filters.label) {
616
- const labelMatchIds = db.select({ taskId: tasksTaskLabels.taskId }).from(tasksTaskLabels).where(eq(tasksTaskLabels.label, filters.label));
617
- conditions.push(inArray(tasksTasks.id, labelMatchIds));
618
- }
619
- const where = conditions.length > 0 ? and(...conditions) : void 0;
620
- const total = (await db.select({ count: sql`count(*)` }).from(tasksTasks).where(where).get())?.count ?? 0;
621
- let orderClause;
622
- switch (filters.orderBy) {
623
- case "createdAt":
624
- orderClause = sql`${tasksTasks.createdAt} ASC`;
625
- break;
626
- case "updatedAt":
627
- orderClause = sql`${tasksTasks.updatedAt} DESC NULLS LAST`;
628
- break;
629
- case "priority":
630
- orderClause = sql`CASE ${tasksTasks.priority}
631
- WHEN 'critical' THEN 0 WHEN 'high' THEN 1
632
- WHEN 'medium' THEN 2 WHEN 'low' THEN 3 ELSE 4 END ASC`;
633
- break;
634
- default: orderClause = sql`${tasksTasks.position} ASC, ${tasksTasks.createdAt} ASC`;
635
- }
636
- let query = db.select().from(tasksTasks).where(where).orderBy(orderClause);
637
- if (filters.limit !== void 0) query = query.limit(filters.limit);
638
- if (filters.offset !== void 0) query = query.offset(filters.offset);
639
- const tasks = (await query.all()).map(rowToTask);
640
- if (tasks.length > 0) {
641
- await loadDependenciesForTasks(db, tasks, await getAllTaskIds());
642
- await loadRelationsForTasks(db, tasks);
643
- }
644
- return {
645
- tasks,
646
- total
647
- };
648
- },
649
- async countTasks(filters) {
650
- const db = await getDb(cwd);
651
- const conditions = [];
652
- if (filters?.status) {
653
- const statuses = Array.isArray(filters.status) ? filters.status : [filters.status];
654
- conditions.push(inArray(tasksTasks.status, statuses));
655
- } else conditions.push(ne(tasksTasks.status, "archived"));
656
- if (filters?.parentId) conditions.push(eq(tasksTasks.parentId, filters.parentId));
657
- const where = conditions.length > 0 ? and(...conditions) : void 0;
658
- return (await db.select({ count: sql`count(*)` }).from(tasksTasks).where(where).get())?.count ?? 0;
659
- },
660
- async getChildren(parentId) {
661
- const db = await getDb(cwd);
662
- const tasks = (await db.select().from(tasksTasks).where(and(eq(tasksTasks.parentId, parentId), ne(tasksTasks.status, "archived"))).orderBy(sql`${tasksTasks.position} ASC, ${tasksTasks.createdAt} ASC`).all()).map(rowToTask);
663
- if (tasks.length > 0) {
664
- await loadDependenciesForTasks(db, tasks, await getAllTaskIds());
665
- await loadRelationsForTasks(db, tasks);
666
- }
667
- return tasks;
668
- },
669
- async countChildren(parentId) {
670
- return (await (await getDb(cwd)).select({ count: sql`count(*)` }).from(tasksTasks).where(and(eq(tasksTasks.parentId, parentId), ne(tasksTasks.status, "archived"))).get())?.count ?? 0;
671
- },
672
- async countActiveChildren(parentId) {
673
- return (await (await getDb(cwd)).select({ count: sql`count(*)` }).from(tasksTasks).where(and(eq(tasksTasks.parentId, parentId), notInArray(tasksTasks.status, [...TERMINAL_TASK_STATUSES]))).get())?.count ?? 0;
674
- },
675
- async getAncestorChain(taskId) {
676
- const nativeDb = getNativeTasksDb();
677
- if (!nativeDb) return [];
678
- const idRows = nativeDb.prepare(`WITH RECURSIVE ancestor_ids(id, depth) AS (
679
- SELECT parent_id, 0 FROM tasks_tasks WHERE id = ? AND parent_id IS NOT NULL
680
- UNION ALL
681
- SELECT t.parent_id, a.depth + 1 FROM tasks_tasks t
682
- JOIN ancestor_ids a ON t.id = a.id
683
- WHERE t.parent_id IS NOT NULL
684
- )
685
- SELECT id FROM ancestor_ids ORDER BY depth DESC`).all(taskId);
686
- if (idRows.length === 0) return [];
687
- const db = await getDb(cwd);
688
- const ids = idRows.map((r) => r.id);
689
- const tasks = (await db.select().from(tasksTasks).where(inArray(tasksTasks.id, ids)).all()).map(rowToTask);
690
- if (tasks.length > 0) {
691
- await loadDependenciesForTasks(db, tasks, await getAllTaskIds());
692
- await loadRelationsForTasks(db, tasks);
693
- }
694
- const orderMap = new Map(ids.map((id, i) => [id, i]));
695
- tasks.sort((a, b) => (orderMap.get(a.id) ?? 0) - (orderMap.get(b.id) ?? 0));
696
- return tasks;
697
- },
698
- async getSubtree(rootId) {
699
- const nativeDb = getNativeTasksDb();
700
- if (!nativeDb) return [];
701
- const idRows = nativeDb.prepare(`WITH RECURSIVE subtree AS (
702
- SELECT id FROM tasks_tasks WHERE id = ?
703
- UNION ALL
704
- SELECT t.id FROM tasks_tasks t
705
- JOIN subtree s ON t.parent_id = s.id
706
- )
707
- SELECT id FROM subtree`).all(rootId);
708
- if (idRows.length === 0) return [];
709
- const db = await getDb(cwd);
710
- const ids = idRows.map((r) => r.id);
711
- const tasks = (await db.select().from(tasksTasks).where(inArray(tasksTasks.id, ids)).all()).map(rowToTask);
712
- if (tasks.length > 0) {
713
- await loadDependenciesForTasks(db, tasks, await getAllTaskIds());
714
- await loadRelationsForTasks(db, tasks);
715
- }
716
- return tasks;
717
- },
718
- async getDependents(taskId) {
719
- const db = await getDb(cwd);
720
- const depRows = await db.select().from(tasksTaskDependencies).where(eq(tasksTaskDependencies.dependsOn, taskId)).all();
721
- if (depRows.length === 0) return [];
722
- const dependentIds = depRows.map((r) => r.taskId);
723
- const tasks = (await db.select().from(tasksTasks).where(inArray(tasksTasks.id, dependentIds)).all()).map(rowToTask);
724
- if (tasks.length > 0) {
725
- await loadDependenciesForTasks(db, tasks, await getAllTaskIds());
726
- await loadRelationsForTasks(db, tasks);
727
- }
728
- return tasks;
729
- },
730
- async getDependencyChain(taskId) {
731
- const nativeDb = getNativeTasksDb();
732
- if (!nativeDb) return [];
733
- return nativeDb.prepare(`WITH RECURSIVE dep_chain(id) AS (
734
- SELECT depends_on FROM tasks_task_dependencies WHERE task_id = ?
735
- UNION
736
- SELECT td.depends_on FROM tasks_task_dependencies td
737
- JOIN dep_chain dc ON td.task_id = dc.id
738
- )
739
- SELECT id FROM dep_chain`).all(taskId).map((r) => r.id);
740
- },
741
- async taskExists(taskId) {
742
- return !!await (await getDb(cwd)).select({ id: tasksTasks.id }).from(tasksTasks).where(eq(tasksTasks.id, taskId)).limit(1).get();
743
- },
744
- async loadTasks(taskIds) {
745
- if (taskIds.length === 0) return [];
746
- const db = await getDb(cwd);
747
- const tasks = (await db.select().from(tasksTasks).where(inArray(tasksTasks.id, taskIds)).all()).map(rowToTask);
748
- if (tasks.length > 0) {
749
- await loadDependenciesForTasks(db, tasks, await getAllTaskIds());
750
- await loadRelationsForTasks(db, tasks);
751
- }
752
- return tasks;
753
- },
754
- async getNextPosition(parentId) {
755
- const nativeDb = getNativeTasksDb();
756
- if (!nativeDb) throw new Error("Native database not initialized");
757
- return (parentId === null ? nativeDb.prepare(`SELECT COALESCE(MAX(position), 0) + 1 AS next_pos FROM tasks_tasks WHERE parent_id IS NULL AND status != 'archived'`).get() : nativeDb.prepare(`SELECT COALESCE(MAX(position), 0) + 1 AS next_pos FROM tasks_tasks WHERE parent_id = ? AND status != 'archived'`).get(parentId))?.next_pos ?? 1;
758
- },
759
- async shiftPositions(parentId, fromPosition, delta) {
760
- const nativeDb = getNativeTasksDb();
761
- if (!nativeDb) throw new Error("Native database not initialized");
762
- if (parentId === null) nativeDb.prepare(`UPDATE tasks_tasks SET position = position + ?, position_version = position_version + 1, updated_at = ? WHERE parent_id IS NULL AND position >= ? AND status != 'archived'`).run(delta, (/* @__PURE__ */ new Date()).toISOString(), fromPosition);
763
- else nativeDb.prepare(`UPDATE tasks_tasks SET position = position + ?, position_version = position_version + 1, updated_at = ? WHERE parent_id = ? AND position >= ? AND status != 'archived'`).run(delta, (/* @__PURE__ */ new Date()).toISOString(), parentId, fromPosition);
764
- },
765
- async updateTaskFields(taskId, fields) {
766
- const db = await getDb(cwd);
767
- const updateRow = { updatedAt: fields.updatedAt ?? (/* @__PURE__ */ new Date()).toISOString() };
768
- for (const [key, col] of [
769
- ["title", "title"],
770
- ["description", "description"],
771
- ["status", "status"],
772
- ["priority", "priority"],
773
- ["type", "type"],
774
- ["parentId", "parentId"],
775
- ["phase", "phase"],
776
- ["size", "size"],
777
- ["position", "position"],
778
- ["positionVersion", "positionVersion"],
779
- ["labelsJson", "labelsJson"],
780
- ["notesJson", "notesJson"],
781
- ["acceptanceJson", "acceptanceJson"],
782
- ["filesJson", "filesJson"],
783
- ["origin", "origin"],
784
- ["blockedBy", "blockedBy"],
785
- ["epicLifecycle", "epicLifecycle"],
786
- ["noAutoComplete", "noAutoComplete"],
787
- ["completedAt", "completedAt"],
788
- ["cancelledAt", "cancelledAt"],
789
- ["cancellationReason", "cancellationReason"],
790
- ["verificationJson", "verificationJson"],
791
- ["createdBy", "createdBy"],
792
- ["modifiedBy", "modifiedBy"],
793
- ["sessionId", "sessionId"],
794
- ["assignee", "assignee"],
795
- ["pipelineStage", "pipelineStage"]
796
- ]) if (fields[key] !== void 0) updateRow[col] = fields[key];
797
- await withWriteRetry(() => db.update(tasksTasks).set(updateRow).where(eq(tasksTasks.id, taskId)).run());
798
- },
799
- async transaction(fn) {
800
- const db = await getDb(cwd);
801
- const nativeDb = getNativeTasksDb(cwd);
802
- if (!nativeDb) throw new Error("Native database not initialized");
803
- const isOuter = _txDepth === 0;
804
- const spName = isOuter ? null : `_cleo_tx_${(_txSavepointCounter++).toString(36)}`;
805
- if (isOuter) nativeDb.prepare("BEGIN IMMEDIATE").run();
806
- else nativeDb.prepare(`SAVEPOINT ${spName}`).run();
807
- _txDepth++;
808
- try {
809
- const result = await fn({
810
- async upsertSingleTask(task) {
811
- await upsertTask(db, taskToRow(task));
812
- await updateDependencies(db, task.id, task.depends ?? []);
813
- },
814
- async archiveSingleTask(taskId, fields) {
815
- await db.update(tasksTasks).set({
816
- status: "archived",
817
- archivedAt: fields.archivedAt ?? (/* @__PURE__ */ new Date()).toISOString(),
818
- archiveReason: fields.archiveReason ?? "completed-unverified",
819
- cycleTimeDays: fields.cycleTimeDays ?? null,
820
- updatedAt: (/* @__PURE__ */ new Date()).toISOString()
821
- }).where(eq(tasksTasks.id, taskId)).run();
822
- },
823
- async removeSingleTask(taskId) {
824
- await db.delete(tasksTaskDependencies).where(eq(tasksTaskDependencies.taskId, taskId)).run();
825
- await db.delete(tasksTaskDependencies).where(eq(tasksTaskDependencies.dependsOn, taskId)).run();
826
- await db.delete(tasksTasks).where(eq(tasksTasks.id, taskId)).run();
827
- },
828
- async setMetaValue(key, value) {
829
- await setMetaValue(cwd, key, value);
830
- },
831
- async updateTaskFields(taskId, flds) {
832
- await accessor.updateTaskFields(taskId, flds);
833
- },
834
- async getChildren(parentId) {
835
- return (await db.select().from(tasksTasks).where(and(eq(tasksTasks.parentId, parentId), ne(tasksTasks.status, "archived"))).orderBy(sql`${tasksTasks.position} ASC, ${tasksTasks.createdAt} ASC`).all()).map(rowToTask);
836
- },
837
- async appendLog(entry) {
838
- await accessor.appendLog(entry);
839
- },
840
- async addRelation(taskId, relatedTo, relationType, reason) {
841
- await accessor.addRelation(taskId, relatedTo, relationType, reason);
842
- },
843
- async removeRelation(taskId, relatedTo, relationType) {
844
- await accessor.removeRelation(taskId, relatedTo, relationType);
845
- },
846
- async clearRelations(taskId) {
847
- await db.delete(tasksTaskRelations).where(eq(tasksTaskRelations.taskId, taskId)).run();
848
- },
849
- async insertAcRows(rows) {
850
- if (rows.length === 0) return;
851
- await db.insert(tasksTaskAcceptanceCriteria).values(rows.map((r) => ({
852
- id: r.id,
853
- taskId: r.taskId,
854
- ordinal: r.ordinal,
855
- kind: r.kind ?? "text",
856
- sourceKey: r.sourceKey ?? `text:${r.ordinal}`,
857
- targetTaskId: r.targetTaskId ?? null,
858
- projection: r.projection ?? "legacy",
859
- text: r.text,
860
- contentHash: r.contentHash ?? null
861
- }))).run();
862
- },
863
- async getAcRows(taskId) {
864
- return (await db.select({
865
- id: tasksTaskAcceptanceCriteria.id,
866
- taskId: tasksTaskAcceptanceCriteria.taskId,
867
- ordinal: tasksTaskAcceptanceCriteria.ordinal,
868
- kind: tasksTaskAcceptanceCriteria.kind,
869
- sourceKey: tasksTaskAcceptanceCriteria.sourceKey,
870
- targetTaskId: tasksTaskAcceptanceCriteria.targetTaskId,
871
- projection: tasksTaskAcceptanceCriteria.projection,
872
- text: tasksTaskAcceptanceCriteria.text,
873
- createdAt: tasksTaskAcceptanceCriteria.createdAt,
874
- updatedAt: tasksTaskAcceptanceCriteria.updatedAt,
875
- contentHash: tasksTaskAcceptanceCriteria.contentHash
876
- }).from(tasksTaskAcceptanceCriteria).where(eq(tasksTaskAcceptanceCriteria.taskId, taskId)).orderBy(tasksTaskAcceptanceCriteria.ordinal).all()).map((r) => ({
877
- id: r.id,
878
- taskId: r.taskId,
879
- ordinal: r.ordinal,
880
- kind: r.kind,
881
- sourceKey: r.sourceKey ?? `text:${r.ordinal}`,
882
- targetTaskId: r.targetTaskId ?? null,
883
- projection: r.projection,
884
- text: r.text,
885
- createdAt: r.createdAt,
886
- updatedAt: r.updatedAt ?? null,
887
- contentHash: r.contentHash ?? null
888
- }));
889
- },
890
- async deleteAcRowsForTask(taskId) {
891
- await db.delete(tasksTaskAcceptanceCriteria).where(eq(tasksTaskAcceptanceCriteria.taskId, taskId)).run();
892
- },
893
- async appendAcHistory(rows) {
894
- if (rows.length === 0) return;
895
- await db.insert(tasksTaskAcceptanceCriteriaHistory).values(rows.map((r) => ({
896
- acId: r.acId,
897
- previousText: r.previousText,
898
- reason: r.reason
899
- }))).run();
900
- },
901
- async getAcBindings(acIds) {
902
- if (acIds.length === 0) return [];
903
- return (await db.select({
904
- id: tasksEvidenceAcBindings.id,
905
- evidenceAtomId: tasksEvidenceAcBindings.evidenceAtomId,
906
- acId: tasksEvidenceAcBindings.acId,
907
- bindingType: tasksEvidenceAcBindings.bindingType,
908
- createdAt: tasksEvidenceAcBindings.createdAt
909
- }).from(tasksEvidenceAcBindings).where(inArray(tasksEvidenceAcBindings.acId, acIds)).all()).map((r) => ({
910
- id: r.id,
911
- evidenceAtomId: r.evidenceAtomId,
912
- acId: r.acId,
913
- bindingType: r.bindingType,
914
- createdAt: r.createdAt
915
- }));
916
- },
917
- async insertAcBindings(rows) {
918
- if (rows.length === 0) return;
919
- await db.insert(tasksEvidenceAcBindings).values(rows.map((r) => ({
920
- id: r.id,
921
- evidenceAtomId: r.evidenceAtomId,
922
- acId: r.acId,
923
- bindingType: r.bindingType
924
- }))).onConflictDoNothing({ target: [
925
- tasksEvidenceAcBindings.evidenceAtomId,
926
- tasksEvidenceAcBindings.acId,
927
- tasksEvidenceAcBindings.bindingType
928
- ] }).run();
929
- }
930
- });
931
- _txDepth--;
932
- if (isOuter) nativeDb.prepare("COMMIT").run();
933
- else nativeDb.prepare(`RELEASE SAVEPOINT ${spName}`).run();
934
- return result;
935
- } catch (err) {
936
- _txDepth--;
937
- try {
938
- if (isOuter) nativeDb.prepare("ROLLBACK").run();
939
- else {
940
- nativeDb.prepare(`ROLLBACK TO SAVEPOINT ${spName}`).run();
941
- nativeDb.prepare(`RELEASE SAVEPOINT ${spName}`).run();
942
- }
943
- } catch {}
944
- throw err;
945
- }
946
- },
947
- async close() {
948
- closeDb();
949
- },
950
- async getMetaValue(key) {
951
- return getMetaValue(cwd, key);
952
- },
953
- async setMetaValue(key, value) {
954
- return setMetaValue(cwd, key, value);
955
- },
956
- async getSchemaVersion() {
957
- return (await getMetaValue(cwd, "file_meta"))?.schemaVersion ?? null;
958
- },
959
- async listAgentInstances(filters) {
960
- const { listAgentInstances: listAgents } = await import('./registry3-BajEb-ll.js');
961
- return listAgents(filters, cwd);
962
- },
963
- async getAgentInstance(agentId) {
964
- const { getAgentInstance: getAgent } = await import('./registry3-BajEb-ll.js');
965
- return getAgent(agentId, cwd);
966
- },
967
- async claimTask(taskId, agentId) {
968
- const nativeDb = getNativeTasksDb();
969
- if (!nativeDb) throw new Error("Native database not initialized");
970
- if (!nativeDb.prepare("SELECT assignee FROM tasks_tasks WHERE id = ?").get(taskId)) throw new Error(`Task not found: ${taskId}`);
971
- if (nativeDb.prepare("UPDATE tasks_tasks SET assignee = ?, updated_at = ? WHERE id = ? AND (assignee IS NULL OR assignee = ?)").run(agentId, (/* @__PURE__ */ new Date()).toISOString(), taskId, agentId).changes === 0) {
972
- const currentRow = nativeDb.prepare("SELECT assignee FROM tasks_tasks WHERE id = ?").get(taskId);
973
- throw new Error(`Task ${taskId} is already claimed by agent: ${currentRow?.assignee ?? "unknown"}`);
974
- }
975
- },
976
- async unclaimTask(taskId) {
977
- const nativeDb = getNativeTasksDb();
978
- if (!nativeDb) throw new Error("Native database not initialized");
979
- if (!nativeDb.prepare("SELECT id FROM tasks_tasks WHERE id = ?").get(taskId)) throw new Error(`Task not found: ${taskId}`);
980
- nativeDb.prepare("UPDATE tasks_tasks SET assignee = NULL, updated_at = ? WHERE id = ?").run((/* @__PURE__ */ new Date()).toISOString(), taskId);
981
- }
982
- };
983
- return accessor;
984
- }
985
-
986
- export { createSqliteDataAccessor as c, setMetaValue as s };
987
- //# sourceMappingURL=sqlite-data-accessor-DD_RFX6r.js.map