@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,692 +0,0 @@
1
- import { s as object, _ as _enum, u as string, v as number, w as boolean } from './paths-CV7S5-Zm.js';
2
- import 'node:fs';
3
- import 'node:path';
4
- import 'node:os';
5
- import 'node:events';
6
- import 'node:diagnostics_channel';
7
- import 'fs';
8
- import 'events';
9
- import 'util';
10
- import 'path';
11
- import 'assert';
12
- import 'worker_threads';
13
- import 'module';
14
- import 'node:url';
15
- import 'url';
16
- import 'buffer';
17
- import 'node:module';
18
- import 'node:child_process';
19
- import 'node:crypto';
20
- import 'node:process';
21
- import 'node:async_hooks';
22
-
23
- //#region ../core/dist/tasks/duplicate-detector.js
24
- /**
25
- * BRAIN-powered tiered duplicate-task detection for `cleo add`.
26
- *
27
- * Before a new task is inserted, this module queries active tasks and computes
28
- * similarity between the incoming title+description and each active task.
29
- *
30
- * Three-tier escalation (T1681):
31
- *
32
- * Tier 1 — lexical OR vector similarity. NOT BM25, despite the historical
33
- * naming: there is no IDF, no term frequency and no length normalisation.
34
- * Two implementations, selected at runtime (see `runDuplicateCheck`):
35
- * - lexical: Jaccard over CHARACTER TRIGRAMS of a title-2x-weighted blob
36
- * - vector: cosine over embeddings, when an embedding provider is loaded
37
- * score >= 0.92 → reject (clear match)
38
- * score < 0.50 → insert (clear different)
39
- * score in [0.50, 0.92) → escalate to Tier 2
40
- *
41
- * Tier 2 — Jaccard on word-level n-grams (title+description+labels):
42
- * score >= 0.85 → reject
43
- * score < 0.40 → insert
44
- * score in [0.40, 0.85) → escalate to Tier 3 (LLM, paid)
45
- *
46
- * Tier 3 — LLM reasoning (max 1 call per cleo add):
47
- * are_duplicate=true → reject
48
- * are_duplicate=false → insert
49
- * LLM error / timeout → fall back to Tier-1-only decision (never block on error)
50
- *
51
- * Thresholds (original T1633 behavior preserved for the Tier-1 clear-match path):
52
- * Tier-1 score >= 0.85 → warning emitted to stderr (non-blocking)
53
- * Tier-1 score >= 0.92 → rejected with E_DUPLICATE_TASK_LIKELY
54
- *
55
- * @epic T1627
56
- * @task T1633
57
- * @task T1681
58
- */
59
- /** Tier-1 score at which a non-blocking warning is emitted. (Name kept: exported API.) */
60
- var DUPLICATE_WARN_THRESHOLD = .85;
61
- /** Tier-1 score at which creation is rejected (clear match). (Name kept: exported API.) */
62
- var DUPLICATE_REJECT_THRESHOLD = .92;
63
- /**
64
- * Tier-1 lower bound for the ambiguous range.
65
- * Scores below this are considered clear-different and skip Jaccard + LLM.
66
- */
67
- var TIER1_ESCALATE_LOW = .5;
68
- /**
69
- * Jaccard reject threshold.
70
- * Scores >= this after Tier-2 escalation cause rejection without calling LLM.
71
- */
72
- var JACCARD_REJECT_THRESHOLD = .85;
73
- /**
74
- * Jaccard lower bound for the ambiguous range.
75
- * Scores below this after Tier-2 escalation are considered clear-different.
76
- */
77
- var JACCARD_ESCALATE_LOW = .4;
78
- /** Maximum active tasks to scan per invocation. Prevents runaway cost on huge task lists. */
79
- var MAX_ACTIVE_TASKS_SCAN = 500;
80
- /** LLM call timeout in milliseconds. */
81
- var LLM_TIMEOUT_MS = 15e3;
82
- /**
83
- * Maximum candidates that may be scored with local embeddings (T12117).
84
- *
85
- * The vector tier used to run inside the per-candidate loop with no bound, so
86
- * `cleo add` performed one local model inference **per active task** before
87
- * committing the row — O(active tasks) inferences on the write path. In a
88
- * project with ~1,000 active tasks that is thousands of inferences to create
89
- * one row, which is why `cleo add` was observed taking 180-280 s and failing
90
- * outright on a memory-constrained host (issue #1244).
91
- *
92
- * Candidates beyond this budget fall back to the lexical score, which is the
93
- * same fallback already used whenever embeddings are unavailable — so this
94
- * bounds cost without introducing a new code path.
95
- */
96
- var MAX_VECTOR_CANDIDATES = 25;
97
- /**
98
- * Wall-clock budget for the whole vector-scoring phase, in milliseconds.
99
- *
100
- * A second bound beside {@link MAX_VECTOR_CANDIDATES} because the count cap
101
- * assumes each inference is fast, and a cold model load is not. Whichever
102
- * bound trips first ends the phase.
103
- */
104
- var VECTOR_PHASE_BUDGET_MS = 5e3;
105
- /**
106
- * Structured output schema for the LLM duplicate-reasoning call.
107
- * @task T1681
108
- */
109
- var DuplicateReasoningSchema = object({
110
- are_duplicate: boolean(),
111
- confidence: number().min(0).max(1),
112
- distinction: string().nullable(),
113
- suggestion: _enum([
114
- "merge",
115
- "keep-both",
116
- "block-new"
117
- ])
118
- });
119
- /**
120
- * Normalise text for comparison: lowercase, collapse whitespace,
121
- * strip punctuation (except hyphens which carry semantic meaning).
122
- *
123
- * @param text - Raw text to normalise.
124
- * @returns Normalised string.
125
- */
126
- function normalise(text) {
127
- return text.toLowerCase().replace(/[^\w\s-]/g, " ").replace(/\s+/g, " ").trim();
128
- }
129
- /**
130
- * Build a Set of character trigrams from normalised text.
131
- * Trigrams capture local character patterns and are robust to
132
- * word-order variation and minor phrasing differences.
133
- *
134
- * @param text - Normalised text.
135
- * @returns Set of 3-character substrings.
136
- */
137
- function trigrams(text) {
138
- const result = /* @__PURE__ */ new Set();
139
- if (text.length < 3) {
140
- if (text.length > 0) result.add(text.padEnd(3, " "));
141
- return result;
142
- }
143
- for (let i = 0; i <= text.length - 3; i++) result.add(text.slice(i, i + 3));
144
- return result;
145
- }
146
- /**
147
- * Jaccard similarity between two Sets: |A ∩ B| / |A ∪ B|.
148
- * Returns 0 when both sets are empty.
149
- *
150
- * @param a - First set.
151
- * @param b - Second set.
152
- * @returns Jaccard score in [0, 1].
153
- */
154
- function jaccard(a, b) {
155
- if (a.size === 0 && b.size === 0) return 0;
156
- let intersection = 0;
157
- for (const v of a) if (b.has(v)) intersection++;
158
- const union = a.size + b.size - intersection;
159
- return union === 0 ? 0 : intersection / union;
160
- }
161
- /**
162
- * Build a weighted search blob from title and description.
163
- * Title is given 2× weight by repetition to reflect higher semantic importance.
164
- *
165
- * @param title - Task title.
166
- * @param description - Task description (may be empty).
167
- * @returns A single normalised string for trigram hashing.
168
- */
169
- function buildSearchBlob(title, description) {
170
- return normalise(`${title} ${title} ${description}`);
171
- }
172
- /**
173
- * Compute lexical similarity between two (title, description) pairs.
174
- *
175
- * Uses Jaccard similarity over character trigrams of a weighted blob
176
- * (title 2×, description 1×). This is zero-dependency, deterministic,
177
- * and symmetrical. This is the LEXICAL Tier-1 measure — it is not BM25.
178
- *
179
- * @param titleA - First title.
180
- * @param descA - First description.
181
- * @param titleB - Second title.
182
- * @param descB - Second description.
183
- * @returns Similarity score in [0, 1].
184
- */
185
- function computeLexicalSimilarity(titleA, descA, titleB, descB) {
186
- const blobA = buildSearchBlob(titleA, descA);
187
- const blobB = buildSearchBlob(titleB, descB);
188
- if (blobA === blobB) return 1;
189
- return jaccard(trigrams(blobA), trigrams(blobB));
190
- }
191
- /**
192
- * Build word unigrams and bigrams from a token list.
193
- * Includes labels as additional tokens to capture tag-level similarity.
194
- *
195
- * @param tokens - Array of normalised word tokens.
196
- * @returns Set of word n-grams (unigrams + bigrams).
197
- */
198
- function wordNgrams(tokens) {
199
- const result = /* @__PURE__ */ new Set();
200
- for (const tok of tokens) result.add(tok);
201
- for (let i = 0; i < tokens.length - 1; i++) result.add(`${tokens[i]} ${tokens[i + 1]}`);
202
- return result;
203
- }
204
- /**
205
- * Tokenise a string into normalised word tokens.
206
- *
207
- * @param text - Raw text.
208
- * @returns Array of lowercase non-empty word tokens.
209
- */
210
- function tokenise(text) {
211
- return normalise(text).split(/\s+/).filter((t) => t.length > 0);
212
- }
213
- /**
214
- * Build word-level n-gram set from title + description + labels.
215
- * This differs from the Tier-1 lexical blob (character trigrams, no labels).
216
- *
217
- * @param title - Task title.
218
- * @param description - Task description.
219
- * @param labels - Task labels (empty array if none).
220
- * @returns Set of word unigrams + bigrams.
221
- */
222
- function buildWordNgramSet(title, description, labels) {
223
- const titleTokens = tokenise(title);
224
- const descTokens = tokenise(description);
225
- const labelTokens = labels.flatMap((l) => tokenise(l));
226
- return wordNgrams([
227
- ...titleTokens,
228
- ...titleTokens,
229
- ...descTokens,
230
- ...labelTokens
231
- ]);
232
- }
233
- /**
234
- * Compute Jaccard similarity over word-level n-grams including labels.
235
- * Used as Tier-2 discriminator when the Tier-1 score is ambiguous.
236
- *
237
- * @param titleA - First title.
238
- * @param descA - First description.
239
- * @param labelsA - First task labels.
240
- * @param titleB - Second title.
241
- * @param descB - Second description.
242
- * @param labelsB - Second task labels.
243
- * @returns Jaccard score in [0, 1].
244
- */
245
- function computeJaccardWordSimilarity(titleA, descA, labelsA, titleB, descB, labelsB) {
246
- return jaccard(buildWordNgramSet(titleA, descA, labelsA), buildWordNgramSet(titleB, descB, labelsB));
247
- }
248
- /**
249
- * Embed the incoming search blob ONCE for the whole duplicate check.
250
- *
251
- * Returns `null` when embedding is unavailable, which makes the caller fall
252
- * back to the lexical (trigram) measure for every candidate.
253
- *
254
- * @param incomingBlob - Normalised search blob for the new task.
255
- * @returns The incoming embedding, or `null` when embedding is unavailable.
256
- */
257
- async function embedIncomingOnce(incomingBlob) {
258
- try {
259
- const { isEmbeddingAvailable, embedText } = await import('./brain-embedding-Djw9ekXu.js');
260
- if (!isEmbeddingAvailable()) return null;
261
- return await embedText(incomingBlob) ?? null;
262
- } catch {
263
- return null;
264
- }
265
- }
266
- /**
267
- * Cosine similarity between a PRE-COMPUTED incoming vector and a candidate blob.
268
- *
269
- * The incoming vector is computed once per duplicate check by
270
- * {@link embedIncomingOnce} and passed in. It used to be embedded inside this
271
- * function, which ran once per candidate — so a store with 1,126 active tasks
272
- * embedded the same incoming text 1,126 times per `cleo add`. Only the candidate
273
- * is embedded here.
274
- *
275
- * @param incomingVec - Pre-computed embedding of the incoming blob.
276
- * @param candidateBlob - Candidate search blob to embed and compare.
277
- * @returns Cosine similarity in [0, 1], or `null` when embedding is unavailable.
278
- */
279
- async function tryVectorSimilarity(incomingVec, candidateBlob) {
280
- try {
281
- const { isEmbeddingAvailable, embedText } = await import('./brain-embedding-Djw9ekXu.js');
282
- if (!isEmbeddingAvailable()) return null;
283
- const vecA = incomingVec;
284
- const vecB = await embedText(candidateBlob);
285
- if (!vecA || !vecB || vecA.length !== vecB.length) return null;
286
- let dot = 0;
287
- let normA = 0;
288
- let normB = 0;
289
- for (let i = 0; i < vecA.length; i++) {
290
- dot += (vecA[i] ?? 0) * (vecB[i] ?? 0);
291
- normA += (vecA[i] ?? 0) ** 2;
292
- normB += (vecB[i] ?? 0) ** 2;
293
- }
294
- const denom = Math.sqrt(normA) * Math.sqrt(normB);
295
- if (denom === 0) return null;
296
- return Math.max(0, Math.min(1, dot / denom));
297
- } catch {
298
- return null;
299
- }
300
- }
301
- /**
302
- * Build the system prompt for the LLM duplicate-detection call.
303
- */
304
- function buildDuplicateSystemPrompt() {
305
- return [
306
- "You are a task-management assistant determining whether two software tasks are semantic duplicates.",
307
- "Respond ONLY with valid JSON matching this schema:",
308
- "{ \"are_duplicate\": boolean, \"confidence\": number (0-1), \"distinction\": string|null, \"suggestion\": \"merge\"|\"keep-both\"|\"block-new\" }",
309
- "",
310
- "Rules:",
311
- "- are_duplicate=true when both tasks describe the SAME work deliverable (even if worded differently)",
312
- "- are_duplicate=false when they target different deliverables, different scopes, or different problem domains",
313
- "- distinction must be non-null when are_duplicate=false (explain what makes them different)",
314
- "- suggestion: \"merge\"=consolidate into one task, \"keep-both\"=distinct tasks worth tracking separately, \"block-new\"=new task is redundant",
315
- "- Do NOT add any explanation outside the JSON object."
316
- ].join("\n");
317
- }
318
- /**
319
- * Build the user prompt for the LLM duplicate-detection call.
320
- */
321
- function buildDuplicateUserPrompt(incomingTitle, incomingDescription, candidateTitle, candidateDescription, candidateId) {
322
- return [
323
- `Task A (NEW — being added now):`,
324
- ` Title: ${incomingTitle}`,
325
- ` Description: ${incomingDescription || "(no description provided)"}`,
326
- "",
327
- `Task B (EXISTING — ${candidateId}):`,
328
- ` Title: ${candidateTitle}`,
329
- ` Description: ${candidateDescription || "(no description)"}`,
330
- "",
331
- "Are these the same task (semantic duplicate)? Respond with JSON only."
332
- ].join("\n");
333
- }
334
- /**
335
- * Call the daemon LLM to determine whether two tasks are semantic duplicates.
336
- *
337
- * Cost cap: max 1 call per `cleo add` invocation (enforced by the caller via
338
- * a `llmCallMade` flag). Never throws — returns null on error/timeout so the
339
- * caller can fall back to a Tier-1-only decision.
340
- *
341
- * @param incomingTitle - Title of the task being added.
342
- * @param incomingDescription - Description of the task being added.
343
- * @param candidate - Best-scoring candidate from Tier 1/2.
344
- * @param cwd - Project root for credential + config resolution.
345
- * @returns Structured reasoning result, or null when the call fails/times out.
346
- * @task T1681
347
- */
348
- async function callLlmDuplicateReasoning(incomingTitle, incomingDescription, candidate, cwd) {
349
- try {
350
- const { authHeadersFromSealed } = await import('./credentials-C7EJFf5O.js');
351
- const { resolveLLMForRole } = await import('./role-resolver2-nkhzS1oy.js');
352
- const llm = await resolveLLMForRole("consolidation", { projectRoot: cwd });
353
- if (!llm.sealedCredential || !llm.credential) return null;
354
- const systemPrompt = buildDuplicateSystemPrompt();
355
- const userPrompt = buildDuplicateUserPrompt(incomingTitle, incomingDescription, candidate.title, candidate.description ?? "", candidate.id);
356
- const modelConfig = {
357
- transport: llm.provider,
358
- model: llm.model,
359
- apiKey: (await llm.sealedCredential.fetch()).value,
360
- extraHeaders: llm.credential.authType === "oauth" ? await authHeadersFromSealed(llm.sealedCredential, llm.credential.authType) : void 0
361
- };
362
- const { cleoLlmCall } = await import('./api2-CmNQzb0b.js');
363
- const callPromise = cleoLlmCall({
364
- modelConfig,
365
- prompt: userPrompt,
366
- maxTokens: 256,
367
- jsonMode: true,
368
- temperature: 0,
369
- enableRetry: false,
370
- messages: [{
371
- role: "system",
372
- content: systemPrompt
373
- }]
374
- });
375
- const timeoutPromise = new Promise((resolve) => {
376
- setTimeout(() => resolve(null), LLM_TIMEOUT_MS);
377
- });
378
- const result = await Promise.race([callPromise, timeoutPromise]);
379
- if (!result) return null;
380
- const responseContent = typeof result === "object" && result !== null && "content" in result ? result.content : null;
381
- if (!responseContent) return null;
382
- let parsed;
383
- if (typeof responseContent === "string") try {
384
- parsed = JSON.parse(responseContent);
385
- } catch {
386
- const jsonMatch = /\{[\s\S]*\}/.exec(responseContent);
387
- if (!jsonMatch) return null;
388
- try {
389
- parsed = JSON.parse(jsonMatch[0]);
390
- } catch {
391
- return null;
392
- }
393
- }
394
- else if (typeof responseContent === "object") parsed = responseContent;
395
- else return null;
396
- const validation = DuplicateReasoningSchema.safeParse(parsed);
397
- if (!validation.success) return null;
398
- return validation.data;
399
- } catch {
400
- return null;
401
- }
402
- }
403
- /**
404
- * Check whether the incoming task's title and description are similar to any
405
- * active task in the database using three-tier escalation (T1681).
406
- *
407
- * Algorithm:
408
- *
409
- * Tier 1 — lexical or vector similarity (per candidate):
410
- * For each active task, compute vector cosine similarity (if embedding is available)
411
- * Jaccard over character trigrams, or cosine over embeddings when a provider is loaded.
412
- * - score >= DUPLICATE_REJECT_THRESHOLD (0.92): clear match → reject immediately.
413
- * - score < TIER1_ESCALATE_LOW (0.50): clear different → skip Tier 2 + 3 for this candidate.
414
- * - score in [0.50, 0.92): ambiguous → collect for Tier-2 Jaccard evaluation.
415
- *
416
- * Tier 2 — Jaccard word n-grams (title+description+labels):
417
- * For candidates that were ambiguous in Tier 1, compute Jaccard over word-level n-grams.
418
- * Labels are included to surface tag-level similarity that character trigrams miss.
419
- * - score >= JACCARD_REJECT_THRESHOLD (0.85): reject.
420
- * - score < JACCARD_ESCALATE_LOW (0.40): clear different → skip LLM.
421
- * - score in [0.40, 0.85): ambiguous → escalate to LLM (cost cap: 1 call per invocation).
422
- *
423
- * Tier 3 — LLM reasoning (max 1 call per `cleo add`):
424
- * Call the daemon provider with both task descriptions and the structured-output schema.
425
- * On error/timeout: fall back to the Tier-1 decision for the candidate (never block).
426
- *
427
- * @param title - Title of the task being added.
428
- * @param description - Description of the task being added (empty string if not provided).
429
- * @param accessor - DataAccessor instance to load active tasks from.
430
- * @param labels - Labels of the task being added (empty array if not provided).
431
- * @param cwd - Project root for LLM credential resolution (Tier 3).
432
- * @returns Duplicate check result with tier provenance.
433
- * @task T1633
434
- * @task T1681
435
- */
436
- async function checkDuplicates(title, description, accessor, labels, cwd) {
437
- const incomingLabels = labels ?? [];
438
- const { tasks: activeTasks } = await accessor.queryTasks({
439
- status: [
440
- "pending",
441
- "active",
442
- "blocked"
443
- ],
444
- limit: MAX_ACTIVE_TASKS_SCAN
445
- });
446
- if (activeTasks.length === 0) return {
447
- maxScore: 0,
448
- candidates: [],
449
- shouldReject: false,
450
- shouldWarn: false,
451
- tier: "bm25"
452
- };
453
- const incomingBlob = buildSearchBlob(title, description);
454
- const incomingVec = await (async () => {
455
- try {
456
- const { isEmbeddingAvailable } = await import('./brain-embedding-Djw9ekXu.js');
457
- return isEmbeddingAvailable();
458
- } catch {
459
- return false;
460
- }
461
- })() ? await embedIncomingOnce(incomingBlob) : null;
462
- const tier1Ambiguous = [];
463
- const clearMatchCandidates = [];
464
- let vectorBudget = MAX_VECTOR_CANDIDATES;
465
- const vectorDeadline = Date.now() + VECTOR_PHASE_BUDGET_MS;
466
- for (const task of activeTasks) {
467
- if (task.title === title) {
468
- if ((task.description ?? "") === description) continue;
469
- }
470
- const candidateBlob = buildSearchBlob(task.title, task.description ?? "");
471
- let tier1Score;
472
- if (incomingVec && vectorBudget > 0 && Date.now() < vectorDeadline) {
473
- vectorBudget--;
474
- tier1Score = await tryVectorSimilarity(incomingVec, candidateBlob) ?? computeLexicalSimilarity(title, description, task.title, task.description ?? "");
475
- } else tier1Score = computeLexicalSimilarity(title, description, task.title, task.description ?? "");
476
- if (tier1Score >= .92) clearMatchCandidates.push({
477
- id: task.id,
478
- title: task.title,
479
- score: tier1Score
480
- });
481
- else if (tier1Score >= TIER1_ESCALATE_LOW) {
482
- tier1Ambiguous.push({
483
- task,
484
- tier1Score
485
- });
486
- if (tier1Score >= .85) clearMatchCandidates.push({
487
- id: task.id,
488
- title: task.title,
489
- score: tier1Score
490
- });
491
- }
492
- }
493
- if (clearMatchCandidates.some((c) => c.score >= .92)) {
494
- const sorted = clearMatchCandidates.filter((c) => c.score >= DUPLICATE_REJECT_THRESHOLD).sort((a, b) => b.score - a.score).slice(0, 3);
495
- return {
496
- maxScore: sorted[0]?.score ?? 0,
497
- candidates: sorted,
498
- shouldReject: true,
499
- shouldWarn: false,
500
- tier: "bm25"
501
- };
502
- }
503
- const tier2Ambiguous = [];
504
- const tier2Candidates = [];
505
- for (const { task, tier1Score: _tier1 } of tier1Ambiguous) {
506
- const jScore = computeJaccardWordSimilarity(title, description, incomingLabels, task.title, task.description ?? "", task.labels ?? []);
507
- if (jScore >= JACCARD_REJECT_THRESHOLD) tier2Candidates.push({
508
- id: task.id,
509
- title: task.title,
510
- score: jScore
511
- });
512
- else if (jScore >= JACCARD_ESCALATE_LOW) tier2Ambiguous.push({
513
- task,
514
- jaccardScore: jScore
515
- });
516
- }
517
- if (tier2Candidates.length > 0) {
518
- const sorted = tier2Candidates.sort((a, b) => b.score - a.score).slice(0, 3);
519
- return {
520
- maxScore: sorted[0]?.score ?? 0,
521
- candidates: sorted,
522
- shouldReject: true,
523
- shouldWarn: false,
524
- tier: "jaccard"
525
- };
526
- }
527
- if (tier2Ambiguous.length > 0) {
528
- tier2Ambiguous.sort((a, b) => b.jaccardScore - a.jaccardScore);
529
- const topCandidate = tier2Ambiguous[0];
530
- const reasoning = await callLlmDuplicateReasoning(title, description, {
531
- id: topCandidate.task.id,
532
- title: topCandidate.task.title,
533
- score: topCandidate.jaccardScore,
534
- description: topCandidate.task.description ?? ""
535
- }, cwd);
536
- if (reasoning !== null) {
537
- if (reasoning.are_duplicate) {
538
- const candidate = {
539
- id: topCandidate.task.id,
540
- title: topCandidate.task.title,
541
- score: reasoning.confidence
542
- };
543
- return {
544
- maxScore: reasoning.confidence,
545
- candidates: [candidate],
546
- shouldReject: true,
547
- shouldWarn: false,
548
- tier: "llm"
549
- };
550
- }
551
- return {
552
- maxScore: topCandidate.jaccardScore,
553
- candidates: [],
554
- shouldReject: false,
555
- shouldWarn: false,
556
- tier: "llm"
557
- };
558
- }
559
- const fallbackScore = tier1Ambiguous.find((e) => e.task.id === topCandidate.task.id)?.tier1Score ?? topCandidate.jaccardScore;
560
- if (fallbackScore >= .85) return {
561
- maxScore: fallbackScore,
562
- candidates: [{
563
- id: topCandidate.task.id,
564
- title: topCandidate.task.title,
565
- score: fallbackScore
566
- }],
567
- shouldReject: false,
568
- shouldWarn: true,
569
- tier: "bm25"
570
- };
571
- }
572
- const warnCandidates = clearMatchCandidates.filter((c) => c.score >= .85 && c.score < .92).sort((a, b) => b.score - a.score).slice(0, 3);
573
- if (warnCandidates.length > 0) return {
574
- maxScore: warnCandidates[0]?.score ?? 0,
575
- candidates: warnCandidates,
576
- shouldReject: false,
577
- shouldWarn: true,
578
- tier: "bm25"
579
- };
580
- return {
581
- maxScore: 0,
582
- candidates: [],
583
- shouldReject: false,
584
- shouldWarn: false,
585
- tier: "bm25"
586
- };
587
- }
588
- /**
589
- * Format a human-readable candidate list for warning/rejection messages.
590
- *
591
- * @param candidates - Array of duplicate candidates.
592
- * @returns Formatted multi-line string listing candidates.
593
- */
594
- function formatCandidateList(candidates) {
595
- return candidates.map((c) => ` • ${c.id}: "${c.title}" (similarity: ${(c.score * 100).toFixed(0)}%)`).join("\n");
596
- }
597
- /**
598
- * Build a warning message for candidates above the warn threshold.
599
- *
600
- * @param candidates - Candidates to include in the message.
601
- * @returns Warning string (no newline at end).
602
- */
603
- function buildWarnMessage(candidates) {
604
- return `[BRAIN duplicate-check] Similar active tasks found (score >= ${Math.round(DUPLICATE_WARN_THRESHOLD * 100)}%):\n` + formatCandidateList(candidates) + `\nUse --force-duplicate to bypass this warning if the task is intentionally different.`;
605
- }
606
- /**
607
- * Build a rejection message for candidates above the reject threshold.
608
- *
609
- * @param candidates - Candidates to include in the message.
610
- * @returns Rejection string (no newline at end).
611
- */
612
- function buildRejectMessage(candidates) {
613
- return `[BRAIN duplicate-check] Task creation REJECTED — very similar active tasks found (score >= ${Math.round(DUPLICATE_REJECT_THRESHOLD * 100)}%):\n` + formatCandidateList(candidates) + `\nRun with --force-duplicate to bypass (audited to .cleo/audit/duplicate-bypass.jsonl).`;
614
- }
615
- /**
616
- * Total wall-clock budget for duplicate detection on the write path, in ms.
617
- *
618
- * Detection is three tiers deep and two of them can call out of process (local
619
- * embeddings, then an LLM). Each has its own bound, but "bounded individually"
620
- * is not "bounded in aggregate" — and this runs BEFORE the row is inserted.
621
- */
622
- var DUPLICATE_CHECK_BUDGET_MS = 2e4;
623
- /**
624
- * Resolve the duplicate-detection budget, honouring an operator override.
625
- *
626
- * @param env - environment to read the override from.
627
- * @returns budget in ms; the default when unset or malformed.
628
- */
629
- function resolveDuplicateCheckBudgetMs(env = process.env) {
630
- const raw = Number.parseInt(env["CLEO_DUPLICATE_CHECK_BUDGET_MS"] ?? "", 10);
631
- return Number.isFinite(raw) && raw > 0 ? raw : DUPLICATE_CHECK_BUDGET_MS;
632
- }
633
- /**
634
- * {@link checkDuplicates} with a hard deadline and a fail-OPEN result.
635
- *
636
- * ## Why fail open (T12117 · issue #1244)
637
- *
638
- * Duplicate detection runs before the insert, so anything that stalls it
639
- * doesn't slow the write down — it *loses* it. Reported from the field: three
640
- * `cleo add` attempts at 280 s each, none of which created a row, on a host
641
- * under memory pressure. No error, no id, no task. A silent write failure is
642
- * the worst failure mode a task tracker has, because the agent that filed the
643
- * task believes the work is recorded.
644
- *
645
- * It is also silent in the dangerous direction relative to CLEO's documented
646
- * recovery advice. A killed mutation is supposed to mean "query before
647
- * retrying — the write has usually landed", which was independently confirmed
648
- * true for a timeout-killed write. But these writes had NOT landed, and nothing
649
- * in the output distinguishes the two cases. An agent following the contract
650
- * correctly reaches the wrong conclusion in one direction or the other.
651
- *
652
- * So: the row is the product, detection is enrichment. When the budget is
653
- * blown, report that on stderr and let the insert proceed. A duplicate that
654
- * slips through is recoverable by a human in seconds; a task that was never
655
- * created is lost work nobody knows to look for.
656
- *
657
- * @param args - forwarded verbatim to {@link checkDuplicates}.
658
- * @returns the real verdict, or a permissive one when the budget was exceeded.
659
- *
660
- * @task T12117
661
- */
662
- async function checkDuplicatesBounded(...args) {
663
- let timer;
664
- const budgetMs = resolveDuplicateCheckBudgetMs();
665
- const timeout = new Promise((resolve) => {
666
- timer = setTimeout(() => resolve(null), budgetMs);
667
- timer.unref();
668
- });
669
- try {
670
- const verdict = await Promise.race([checkDuplicates(...args), timeout]);
671
- if (verdict === null) {
672
- process.stderr.write(`cleo: duplicate detection exceeded ${budgetMs}ms and was skipped; creating the task anyway. Run 'cleo find' to check for duplicates.\n`);
673
- return {
674
- maxScore: 0,
675
- candidates: [],
676
- shouldReject: false,
677
- shouldWarn: false,
678
- tier: "bm25",
679
- timedOut: true
680
- };
681
- }
682
- return {
683
- ...verdict,
684
- timedOut: false
685
- };
686
- } finally {
687
- if (timer) clearTimeout(timer);
688
- }
689
- }
690
-
691
- export { buildRejectMessage, buildWarnMessage, checkDuplicatesBounded };
692
- //# sourceMappingURL=duplicate-detector-CaVFMKdE.js.map