@cleocode/cleo 2026.9.6 → 2026.9.7

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 (382) hide show
  1. package/dist/cli/index.js +31 -2
  2. package/dist/cli/index.js.map +1 -1
  3. package/package.json +13 -13
  4. package/scripts/copy-studio-dist.mjs +97 -3
  5. package/studio-dist/client/_app/immutable/chunks/BGmpyfzD.js +1 -0
  6. package/studio-dist/client/_app/immutable/chunks/{DQE2lHpR.js → DVHIxkgs.js} +1 -1
  7. package/studio-dist/client/_app/immutable/chunks/{Cq8SkApb.js → TX-23QW3.js} +1 -1
  8. package/studio-dist/client/_app/immutable/chunks/{B4pbMhWh.js → eK8hf4s7.js} +1 -1
  9. package/studio-dist/client/_app/immutable/entry/{app.AO-dq23l.js → app.BoQ7cgT2.js} +2 -2
  10. package/studio-dist/client/_app/immutable/entry/start.Cg1v8DU4.js +1 -0
  11. package/studio-dist/client/_app/immutable/nodes/{0.pcHH7cls.js → 0.CZzEEyVh.js} +1 -1
  12. package/studio-dist/client/_app/immutable/nodes/{1.BZ_6sEg7.js → 1.Bj3Opbua.js} +1 -1
  13. package/studio-dist/client/_app/immutable/nodes/{15.C49XuRDg.js → 15.BfXgiwMC.js} +1 -1
  14. package/studio-dist/client/_app/immutable/nodes/{16.D_IEqgU8.js → 16.mEwy9cqh.js} +1 -1
  15. package/studio-dist/client/_app/immutable/nodes/{17.DMmmyyKw.js → 17.DP2QtQGn.js} +1 -1
  16. package/studio-dist/client/_app/immutable/nodes/{18.BeHgL2ha.js → 18.Bu0054sX.js} +1 -1
  17. package/studio-dist/client/_app/immutable/nodes/{20.ByQCOFEK.js → 20.B1AIHdkP.js} +1 -1
  18. package/studio-dist/client/_app/immutable/nodes/{24.DKhWVVfG.js → 24.BUoUu37z.js} +1 -1
  19. package/studio-dist/client/_app/immutable/nodes/{25.BS4Qyw38.js → 25.ddZ1_EFk.js} +1 -1
  20. package/studio-dist/client/_app/immutable/nodes/{26.CZ-vCPq6.js → 26.6OcmQbLV.js} +1 -1
  21. package/studio-dist/client/_app/immutable/nodes/{3.B1Ua25St.js → 3.Dyir4xXj.js} +1 -1
  22. package/studio-dist/client/_app/version.json +1 -1
  23. package/studio-dist/server/chunks/{0-BkBuauLU.js → 0-CvsKDxQ6.js} +3 -3
  24. package/studio-dist/server/chunks/{1-C-FPVHUW.js → 1-ck_x2Hf0.js} +3 -3
  25. package/studio-dist/server/chunks/{15-BEk78EBu.js → 15-BvUNl3KL.js} +3 -3
  26. package/studio-dist/server/chunks/{16-BzISLvSG.js → 16-De6EzPSa.js} +3 -3
  27. package/studio-dist/server/chunks/{17-DGt4P3nJ.js → 17-CZNsiZhi.js} +3 -3
  28. package/studio-dist/server/chunks/{18-DLGcIwmV.js → 18-CbxxjZox.js} +3 -3
  29. package/studio-dist/server/chunks/{20-BvcOxe5q.js → 20-DVU22np7.js} +3 -3
  30. package/studio-dist/server/chunks/{24-DlzL0G3_.js → 24-CVlymvLF.js} +3 -3
  31. package/studio-dist/server/chunks/{25-BkcpAlfJ.js → 25-CAg6Xcmn.js} +3 -3
  32. package/studio-dist/server/chunks/{26-CY_OLXcd.js → 26-_nfVTvNi.js} +3 -3
  33. package/studio-dist/server/chunks/{3-CbodebGY.js → 3-B8KhfvHp.js} +3 -3
  34. package/studio-dist/server/chunks/{_layout.svelte-B31p5awD.js → _layout.svelte-BEIGQcIv.js} +4 -4
  35. package/studio-dist/server/chunks/{_page.svelte-C6P8rRvk.js → _page.svelte-2cgtvHwW.js} +3 -3
  36. package/studio-dist/server/chunks/{_page.svelte-BdTlq0Gh.js → _page.svelte-9OQphlnm.js} +4 -4
  37. package/studio-dist/server/chunks/{_page.svelte-h0JOhZab.js → _page.svelte-BIlhmugm.js} +3 -3
  38. package/studio-dist/server/chunks/{_page.svelte-DR0AY_gZ.js → _page.svelte-BgwL2Gyu.js} +3 -3
  39. package/studio-dist/server/chunks/{_page.svelte-EWYHbzl0.js → _page.svelte-C_VSL8NW.js} +4 -4
  40. package/studio-dist/server/chunks/{_page.svelte-CFnkQk35.js → _page.svelte-DOWw416I.js} +3 -3
  41. package/studio-dist/server/chunks/{_page.svelte-BIIvdH13.js → _page.svelte-Wfx7ww_h.js} +3 -3
  42. package/studio-dist/server/chunks/{_page.svelte-CfjdIh3A.js → _page.svelte-l4Z_xjl9.js} +3 -3
  43. package/studio-dist/server/chunks/{_page.svelte-BuVX3kf2.js → _page.svelte-tYN7_LXI.js} +3 -3
  44. package/studio-dist/server/chunks/{client-2rpcRzcr.js → client-CgX38JBu.js} +2 -2
  45. package/studio-dist/server/chunks/{error.svelte-CpckcxW6.js → error.svelte-CplNulnS.js} +3 -3
  46. package/studio-dist/server/chunks/{internal-xyE_opYp.js → internal-D6eWgsHJ.js} +2 -2
  47. package/studio-dist/server/chunks/{stores-BcV2X8z1.js → stores-5DmdjPCH.js} +2 -2
  48. package/studio-dist/server/index.js +1 -1
  49. package/studio-dist/server/manifest.js +12 -12
  50. package/studio-dist/client/_app/immutable/assets/ort-wasm-simd-threaded.asyncify.BrebZMa_.wasm +0 -0
  51. package/studio-dist/client/_app/immutable/chunks/Dw--1J0g.js +0 -1
  52. package/studio-dist/client/_app/immutable/entry/start.DyU3_ZJI.js +0 -1
  53. package/studio-dist/server/chunks/0-BkBuauLU.js.map +0 -1
  54. package/studio-dist/server/chunks/1-C-FPVHUW.js.map +0 -1
  55. package/studio-dist/server/chunks/10-DvOD4ksa.js.map +0 -1
  56. package/studio-dist/server/chunks/11-DMnBZ02H.js.map +0 -1
  57. package/studio-dist/server/chunks/12-CCyRyRWX.js.map +0 -1
  58. package/studio-dist/server/chunks/13-Dx1c3a_X.js.map +0 -1
  59. package/studio-dist/server/chunks/14-Bo-dTCaZ.js.map +0 -1
  60. package/studio-dist/server/chunks/15-BEk78EBu.js.map +0 -1
  61. package/studio-dist/server/chunks/16-BzISLvSG.js.map +0 -1
  62. package/studio-dist/server/chunks/17-DGt4P3nJ.js.map +0 -1
  63. package/studio-dist/server/chunks/18-DLGcIwmV.js.map +0 -1
  64. package/studio-dist/server/chunks/19-DqHyladS.js.map +0 -1
  65. package/studio-dist/server/chunks/2-COvmA-ZA.js.map +0 -1
  66. package/studio-dist/server/chunks/20-BvcOxe5q.js.map +0 -1
  67. package/studio-dist/server/chunks/21-DXK9ptAC.js.map +0 -1
  68. package/studio-dist/server/chunks/22-DD5CLWJC.js.map +0 -1
  69. package/studio-dist/server/chunks/23-D_tUnnoc.js.map +0 -1
  70. package/studio-dist/server/chunks/24-DlzL0G3_.js.map +0 -1
  71. package/studio-dist/server/chunks/25-BkcpAlfJ.js.map +0 -1
  72. package/studio-dist/server/chunks/26-CY_OLXcd.js.map +0 -1
  73. package/studio-dist/server/chunks/27-C9edghG4.js.map +0 -1
  74. package/studio-dist/server/chunks/28-VemTJGyc.js.map +0 -1
  75. package/studio-dist/server/chunks/29-CXP-m29t.js.map +0 -1
  76. package/studio-dist/server/chunks/3-CbodebGY.js.map +0 -1
  77. package/studio-dist/server/chunks/30-QiM1S4cJ.js.map +0 -1
  78. package/studio-dist/server/chunks/31-BwdY9NnB.js.map +0 -1
  79. package/studio-dist/server/chunks/4-CSaG4HjO.js.map +0 -1
  80. package/studio-dist/server/chunks/5-i5ry4y3C.js.map +0 -1
  81. package/studio-dist/server/chunks/6-DR1GWBMT.js.map +0 -1
  82. package/studio-dist/server/chunks/7-DSNwn3aQ.js.map +0 -1
  83. package/studio-dist/server/chunks/8-Bj0bx07K.js.map +0 -1
  84. package/studio-dist/server/chunks/9-B3Tz0mZq.js.map +0 -1
  85. package/studio-dist/server/chunks/AwsRestJsonProtocol-BZuoNBmL.js.map +0 -1
  86. package/studio-dist/server/chunks/HeroHeader-v4Q9vaGr.js.map +0 -1
  87. package/studio-dist/server/chunks/Sparkline-BJ-GuhRd.js.map +0 -1
  88. package/studio-dist/server/chunks/StatBlock-DHJMmOCx.js.map +0 -1
  89. package/studio-dist/server/chunks/Tabs-DzG6Bn9a.js.map +0 -1
  90. package/studio-dist/server/chunks/UnionSerde-BflIkhKj.js.map +0 -1
  91. package/studio-dist/server/chunks/_dispatch-ncuRztUQ.js.map +0 -1
  92. package/studio-dist/server/chunks/_lafs-C3_fBF_X.js.map +0 -1
  93. package/studio-dist/server/chunks/_layout.svelte-B31p5awD.js.map +0 -1
  94. package/studio-dist/server/chunks/_page.svelte-BIIvdH13.js.map +0 -1
  95. package/studio-dist/server/chunks/_page.svelte-BVVTrzTL.js.map +0 -1
  96. package/studio-dist/server/chunks/_page.svelte-BXyoMME1.js.map +0 -1
  97. package/studio-dist/server/chunks/_page.svelte-B_pq-Z98.js.map +0 -1
  98. package/studio-dist/server/chunks/_page.svelte-BdTlq0Gh.js.map +0 -1
  99. package/studio-dist/server/chunks/_page.svelte-BuVX3kf2.js.map +0 -1
  100. package/studio-dist/server/chunks/_page.svelte-Byz2djto.js.map +0 -1
  101. package/studio-dist/server/chunks/_page.svelte-C3aIui4o.js.map +0 -1
  102. package/studio-dist/server/chunks/_page.svelte-C6P8rRvk.js.map +0 -1
  103. package/studio-dist/server/chunks/_page.svelte-CCoTp89s.js.map +0 -1
  104. package/studio-dist/server/chunks/_page.svelte-CFnkQk35.js.map +0 -1
  105. package/studio-dist/server/chunks/_page.svelte-CHzXuw2Q.js.map +0 -1
  106. package/studio-dist/server/chunks/_page.svelte-CYDjW1R0.js.map +0 -1
  107. package/studio-dist/server/chunks/_page.svelte-CfjdIh3A.js.map +0 -1
  108. package/studio-dist/server/chunks/_page.svelte-Clbkk1gm.js.map +0 -1
  109. package/studio-dist/server/chunks/_page.svelte-CophUar3.js.map +0 -1
  110. package/studio-dist/server/chunks/_page.svelte-DR0AY_gZ.js.map +0 -1
  111. package/studio-dist/server/chunks/_page.svelte-DUWbZjC7.js.map +0 -1
  112. package/studio-dist/server/chunks/_page.svelte-DYNorA0S.js.map +0 -1
  113. package/studio-dist/server/chunks/_page.svelte-EWYHbzl0.js.map +0 -1
  114. package/studio-dist/server/chunks/_page.svelte-EkXO_YfN.js.map +0 -1
  115. package/studio-dist/server/chunks/_page.svelte-M5D2QnMS.js.map +0 -1
  116. package/studio-dist/server/chunks/_page.svelte-UYiF7YBK.js.map +0 -1
  117. package/studio-dist/server/chunks/_page.svelte-al08ovKm.js.map +0 -1
  118. package/studio-dist/server/chunks/_page.svelte-bGhsrIjS.js.map +0 -1
  119. package/studio-dist/server/chunks/_page.svelte-h0JOhZab.js.map +0 -1
  120. package/studio-dist/server/chunks/_page.svelte-ksTJUXce.js.map +0 -1
  121. package/studio-dist/server/chunks/_page.svelte-nzffIbBP.js.map +0 -1
  122. package/studio-dist/server/chunks/_server.ts-4NyKAneX.js.map +0 -1
  123. package/studio-dist/server/chunks/_server.ts-4p6cp9ke.js.map +0 -1
  124. package/studio-dist/server/chunks/_server.ts-7hGdxdEI.js.map +0 -1
  125. package/studio-dist/server/chunks/_server.ts-B2E7fxo9.js.map +0 -1
  126. package/studio-dist/server/chunks/_server.ts-B5g3eScF.js.map +0 -1
  127. package/studio-dist/server/chunks/_server.ts-B6b3b-yA.js.map +0 -1
  128. package/studio-dist/server/chunks/_server.ts-BOgGqaZp.js.map +0 -1
  129. package/studio-dist/server/chunks/_server.ts-BPcErnS0.js.map +0 -1
  130. package/studio-dist/server/chunks/_server.ts-BT0Uq2yq.js.map +0 -1
  131. package/studio-dist/server/chunks/_server.ts-BV1HiKZ0.js.map +0 -1
  132. package/studio-dist/server/chunks/_server.ts-BWp3g6Cr.js.map +0 -1
  133. package/studio-dist/server/chunks/_server.ts-BdN4AJ6o.js.map +0 -1
  134. package/studio-dist/server/chunks/_server.ts-Bfr4u3EP.js.map +0 -1
  135. package/studio-dist/server/chunks/_server.ts-Bw7A4zgb.js.map +0 -1
  136. package/studio-dist/server/chunks/_server.ts-C3Jo-ju8.js.map +0 -1
  137. package/studio-dist/server/chunks/_server.ts-C4BcDGqS.js.map +0 -1
  138. package/studio-dist/server/chunks/_server.ts-C5NF-UgC.js.map +0 -1
  139. package/studio-dist/server/chunks/_server.ts-CDMurH5m.js.map +0 -1
  140. package/studio-dist/server/chunks/_server.ts-CGiAXy5i.js.map +0 -1
  141. package/studio-dist/server/chunks/_server.ts-CJA1djzJ.js.map +0 -1
  142. package/studio-dist/server/chunks/_server.ts-COJHCgbq.js.map +0 -1
  143. package/studio-dist/server/chunks/_server.ts-CShsBkeE.js.map +0 -1
  144. package/studio-dist/server/chunks/_server.ts-CUl-Utkt.js.map +0 -1
  145. package/studio-dist/server/chunks/_server.ts-CboRJY0Q.js.map +0 -1
  146. package/studio-dist/server/chunks/_server.ts-CkoJ2HCW.js.map +0 -1
  147. package/studio-dist/server/chunks/_server.ts-CpmMp5D8.js.map +0 -1
  148. package/studio-dist/server/chunks/_server.ts-Cq60m8Pw.js.map +0 -1
  149. package/studio-dist/server/chunks/_server.ts-Cz0zgaUV.js.map +0 -1
  150. package/studio-dist/server/chunks/_server.ts-D0GAFJRb.js.map +0 -1
  151. package/studio-dist/server/chunks/_server.ts-DA6p3pmi.js.map +0 -1
  152. package/studio-dist/server/chunks/_server.ts-DRVz9D-J.js.map +0 -1
  153. package/studio-dist/server/chunks/_server.ts-DSAv66wD.js.map +0 -1
  154. package/studio-dist/server/chunks/_server.ts-DSzRdt1U.js.map +0 -1
  155. package/studio-dist/server/chunks/_server.ts-DThYFaZj.js.map +0 -1
  156. package/studio-dist/server/chunks/_server.ts-DV6pzF-M.js.map +0 -1
  157. package/studio-dist/server/chunks/_server.ts-D_3Pm0gr.js.map +0 -1
  158. package/studio-dist/server/chunks/_server.ts-DcHxdMsm.js.map +0 -1
  159. package/studio-dist/server/chunks/_server.ts-DgbY5EB3.js.map +0 -1
  160. package/studio-dist/server/chunks/_server.ts-Dlfadh2I.js.map +0 -1
  161. package/studio-dist/server/chunks/_server.ts-DnE0f-iC.js.map +0 -1
  162. package/studio-dist/server/chunks/_server.ts-Do9RIPRo.js.map +0 -1
  163. package/studio-dist/server/chunks/_server.ts-DwTRjS4y.js.map +0 -1
  164. package/studio-dist/server/chunks/_server.ts-JallJnps.js.map +0 -1
  165. package/studio-dist/server/chunks/_server.ts-NEFTbJpM.js.map +0 -1
  166. package/studio-dist/server/chunks/_server.ts-ZS1_yMwR.js.map +0 -1
  167. package/studio-dist/server/chunks/_server.ts-_RJXtmfi.js.map +0 -1
  168. package/studio-dist/server/chunks/_server.ts-d-2NvRwX.js.map +0 -1
  169. package/studio-dist/server/chunks/_server.ts-hL92cV7Z.js.map +0 -1
  170. package/studio-dist/server/chunks/_server.ts-k2fApwOp.js.map +0 -1
  171. package/studio-dist/server/chunks/_server.ts-lPlBUIJX.js.map +0 -1
  172. package/studio-dist/server/chunks/_server.ts-rUWMLkIw.js.map +0 -1
  173. package/studio-dist/server/chunks/_server.ts-sv4pA808.js.map +0 -1
  174. package/studio-dist/server/chunks/_server.ts-tKMjUFUP.js.map +0 -1
  175. package/studio-dist/server/chunks/_server.ts-uUx7uT2Y.js.map +0 -1
  176. package/studio-dist/server/chunks/_server.ts-ujoDR2_g.js.map +0 -1
  177. package/studio-dist/server/chunks/abort-events-CDRAJSqb.js.map +0 -1
  178. package/studio-dist/server/chunks/adapters-BkMgPNUM.js.map +0 -1
  179. package/studio-dist/server/chunks/adapters2-CQ3PzoaK.js.map +0 -1
  180. package/studio-dist/server/chunks/api-mode2-3W-I1-XO.js.map +0 -1
  181. package/studio-dist/server/chunks/api2-CmNQzb0b.js.map +0 -1
  182. package/studio-dist/server/chunks/attention-consolidate-CidG1jfH.js.map +0 -1
  183. package/studio-dist/server/chunks/audit-log-BXVi9iyE.js.map +0 -1
  184. package/studio-dist/server/chunks/audit3-DMO_fUGp.js.map +0 -1
  185. package/studio-dist/server/chunks/auto-extract-B84La1Vs.js.map +0 -1
  186. package/studio-dist/server/chunks/brain-CXR7ZT7S.js.map +0 -1
  187. package/studio-dist/server/chunks/brain-consolidator-JGm6mzFf.js.map +0 -1
  188. package/studio-dist/server/chunks/brain-doctor-Dc2WqVbs.js.map +0 -1
  189. package/studio-dist/server/chunks/brain-embedding-Djw9ekXu.js.map +0 -1
  190. package/studio-dist/server/chunks/brain-lifecycle-BOOa876K.js.map +0 -1
  191. package/studio-dist/server/chunks/brain-maintenance-U6VvsvmK.js.map +0 -1
  192. package/studio-dist/server/chunks/brain-maintenance2-CwVSmfDT.js.map +0 -1
  193. package/studio-dist/server/chunks/brain-retrieval2-exR8mdgh.js.map +0 -1
  194. package/studio-dist/server/chunks/brain-search-CpSh-SNi.js.map +0 -1
  195. package/studio-dist/server/chunks/brain-search2-CwI2cXgg.js.map +0 -1
  196. package/studio-dist/server/chunks/brain-similarity-DI4yzm9e.js.map +0 -1
  197. package/studio-dist/server/chunks/brain-stdp2-BxSBIlSr.js.map +0 -1
  198. package/studio-dist/server/chunks/brain-writer-handlers-Dwu0QCAA.js.map +0 -1
  199. package/studio-dist/server/chunks/brain-writer-thread-6n7wI7Gy.js.map +0 -1
  200. package/studio-dist/server/chunks/branch-lock-Cq7zzmFK.js.map +0 -1
  201. package/studio-dist/server/chunks/branch-lock2-CmDc4CZW.js.map +0 -1
  202. package/studio-dist/server/chunks/cancelled-child-waiver-audit-DkesrN83.js.map +0 -1
  203. package/studio-dist/server/chunks/catalog-model-resolver-Bas9qnoP.js.map +0 -1
  204. package/studio-dist/server/chunks/catalog-model-resolver2-Cexk2TN0.js.map +0 -1
  205. package/studio-dist/server/chunks/catalog-resolver-CLot3XJO.js.map +0 -1
  206. package/studio-dist/server/chunks/catalog-resolver2-JmKb91kY.js.map +0 -1
  207. package/studio-dist/server/chunks/chunk-DDP5xfzh.js.map +0 -1
  208. package/studio-dist/server/chunks/cleo-home-CCfe6kAQ.js.map +0 -1
  209. package/studio-dist/server/chunks/cli-action-DQcaqcfn.js.map +0 -1
  210. package/studio-dist/server/chunks/client-2rpcRzcr.js.map +0 -1
  211. package/studio-dist/server/chunks/concrete-session2-bb_vxJ2N.js.map +0 -1
  212. package/studio-dist/server/chunks/config-DHj9CcFs.js.map +0 -1
  213. package/studio-dist/server/chunks/config2-F6PPIn7D.js.map +0 -1
  214. package/studio-dist/server/chunks/connections-BMGJVYcS.js.map +0 -1
  215. package/studio-dist/server/chunks/connections2-mi7mZqJM.js.map +0 -1
  216. package/studio-dist/server/chunks/credential-pool-vF6NdtT9.js.map +0 -1
  217. package/studio-dist/server/chunks/credentials-C7EJFf5O.js.map +0 -1
  218. package/studio-dist/server/chunks/credentials-store-CFygIuB2.js.map +0 -1
  219. package/studio-dist/server/chunks/cross-db-cleanup-1LWTUKPi.js.map +0 -1
  220. package/studio-dist/server/chunks/data-accessor-CWgVndbR.js.map +0 -1
  221. package/studio-dist/server/chunks/data-safety-central-DaFxK27G.js.map +0 -1
  222. package/studio-dist/server/chunks/decisions-CmVXV2-H.js.map +0 -1
  223. package/studio-dist/server/chunks/decisions2-XQsSYdxa.js.map +0 -1
  224. package/studio-dist/server/chunks/depends-waiver-audit-CUmlBYHx.js.map +0 -1
  225. package/studio-dist/server/chunks/dev-BNpEUZI3.js.map +0 -1
  226. package/studio-dist/server/chunks/dialectic-evaluator2-BOyyXhdI.js.map +0 -1
  227. package/studio-dist/server/chunks/dist-es2-DQy2Mjn_.js.map +0 -1
  228. package/studio-dist/server/chunks/dist-es3-CBygU4n5.js.map +0 -1
  229. package/studio-dist/server/chunks/dist-es4-CavbNu4B.js.map +0 -1
  230. package/studio-dist/server/chunks/dist-es5-Crpm8Wsl.js.map +0 -1
  231. package/studio-dist/server/chunks/dist-es6-CgePHzh4.js.map +0 -1
  232. package/studio-dist/server/chunks/dist-es7-k6c5GEd7.js.map +0 -1
  233. package/studio-dist/server/chunks/dist-es8-Bd9v0_pE.js.map +0 -1
  234. package/studio-dist/server/chunks/dist3-23bsJhRw.js.map +0 -1
  235. package/studio-dist/server/chunks/dist4-DmC1zSXi.js.map +0 -1
  236. package/studio-dist/server/chunks/dual-scope-db-DKnWu1KM.js.map +0 -1
  237. package/studio-dist/server/chunks/dual-scope-db2-Dht3luRw.js.map +0 -1
  238. package/studio-dist/server/chunks/duplicate-bypass-audit-BN5w1H2y.js.map +0 -1
  239. package/studio-dist/server/chunks/duplicate-detector-CaVFMKdE.js.map +0 -1
  240. package/studio-dist/server/chunks/edge-types-CgBvb0w1.js.map +0 -1
  241. package/studio-dist/server/chunks/embedding-local-xEnym8Ho.js.map +0 -1
  242. package/studio-dist/server/chunks/error.svelte-CpckcxW6.js.map +0 -1
  243. package/studio-dist/server/chunks/event-streams-Bi2p_fVo.js.map +0 -1
  244. package/studio-dist/server/chunks/execution-learning-BVCw7Plq.js.map +0 -1
  245. package/studio-dist/server/chunks/exodus-BBuuN6aA.js.map +0 -1
  246. package/studio-dist/server/chunks/explorer-loader-BN_mkt3_.js.map +0 -1
  247. package/studio-dist/server/chunks/externalDataInterceptor-C3C4cObe.js.map +0 -1
  248. package/studio-dist/server/chunks/extraction-gate-DDNBq7gu.js.map +0 -1
  249. package/studio-dist/server/chunks/extraction-gate2-D77EZBQ6.js.map +0 -1
  250. package/studio-dist/server/chunks/getSSOTokenFromFile-yZAJxDci.js.map +0 -1
  251. package/studio-dist/server/chunks/governor2-CtfV3wfX.js.map +0 -1
  252. package/studio-dist/server/chunks/graph-auto-populate-Dmsr9ZJM.js.map +0 -1
  253. package/studio-dist/server/chunks/graph-auto-populate2-Cz0qeebM.js.map +0 -1
  254. package/studio-dist/server/chunks/graph-memory-bridge-CY8ft_d7.js.map +0 -1
  255. package/studio-dist/server/chunks/graph-memory-bridge2-Cd0XZwqc.js.map +0 -1
  256. package/studio-dist/server/chunks/handler-helpers-AANBGA_p.js.map +0 -1
  257. package/studio-dist/server/chunks/hash-Cm6yMET4.js.map +0 -1
  258. package/studio-dist/server/chunks/health-monitor-FepUZN1m.js.map +0 -1
  259. package/studio-dist/server/chunks/hooks.server-DBsyphiX.js.map +0 -1
  260. package/studio-dist/server/chunks/http-CRTZe306.js.map +0 -1
  261. package/studio-dist/server/chunks/identity-DRpurt56.js.map +0 -1
  262. package/studio-dist/server/chunks/identity2-DeAB5RXE.js.map +0 -1
  263. package/studio-dist/server/chunks/index-61916rmV.js.map +0 -1
  264. package/studio-dist/server/chunks/index-DAgVDouG.js.map +0 -1
  265. package/studio-dist/server/chunks/index-Dtt_h58T.js.map +0 -1
  266. package/studio-dist/server/chunks/index-server-DocJvixA.js.map +0 -1
  267. package/studio-dist/server/chunks/indexes-DZ52grq6.js.map +0 -1
  268. package/studio-dist/server/chunks/internal-xyE_opYp.js.map +0 -1
  269. package/studio-dist/server/chunks/json-Bfixam3g.js.map +0 -1
  270. package/studio-dist/server/chunks/lane-transition-lM2ngbbc.js.map +0 -1
  271. package/studio-dist/server/chunks/learnings-D6Y3YGMU.js.map +0 -1
  272. package/studio-dist/server/chunks/learnings2-MwBdR9vb.js.map +0 -1
  273. package/studio-dist/server/chunks/lifecycle-ops2-V2CR5-7X.js.map +0 -1
  274. package/studio-dist/server/chunks/list-BhObczvn.js.map +0 -1
  275. package/studio-dist/server/chunks/living-brain2-j0B_Ir8j.js.map +0 -1
  276. package/studio-dist/server/chunks/llm-backend-resolver-D4ANvUPL.js.map +0 -1
  277. package/studio-dist/server/chunks/llm-extraction-DVCu4heR.js.map +0 -1
  278. package/studio-dist/server/chunks/loadSharedConfigFiles-umvW7kuz.js.map +0 -1
  279. package/studio-dist/server/chunks/loadSso-iidd5iKx.js.map +0 -1
  280. package/studio-dist/server/chunks/local-model-fit-B0TxifnX.js.map +0 -1
  281. package/studio-dist/server/chunks/local-model-fit2-BMqo6GJm.js.map +0 -1
  282. package/studio-dist/server/chunks/lock-CA7d6lj7.js.map +0 -1
  283. package/studio-dist/server/chunks/logger-DQIoyZbq.js.map +0 -1
  284. package/studio-dist/server/chunks/memory-BUbicBbE.js.map +0 -1
  285. package/studio-dist/server/chunks/memory-accessor-i3P-RHSg.js.map +0 -1
  286. package/studio-dist/server/chunks/memory-accessor2-B981tHDR.js.map +0 -1
  287. package/studio-dist/server/chunks/memory-bridge-BOlEWg9w.js.map +0 -1
  288. package/studio-dist/server/chunks/memory-sqlite2-B7dq8doO.js.map +0 -1
  289. package/studio-dist/server/chunks/memory2-Cgc_4D5q.js.map +0 -1
  290. package/studio-dist/server/chunks/model-runner2-B71xjp4y.js.map +0 -1
  291. package/studio-dist/server/chunks/mvi-helpers-BNsJ8ZpQ.js.map +0 -1
  292. package/studio-dist/server/chunks/nexus-adapter-9EL_VlGI.js.map +0 -1
  293. package/studio-dist/server/chunks/nexus-plasticity-BTfU8cW_.js.map +0 -1
  294. package/studio-dist/server/chunks/nexus-risk-audit-p379-TU5.js.map +0 -1
  295. package/studio-dist/server/chunks/nexus-schema-zeygY8OD.js.map +0 -1
  296. package/studio-dist/server/chunks/nexus-schema2-DP0Qd7CA.js.map +0 -1
  297. package/studio-dist/server/chunks/nexus-sqlite-BVNIpwc7.js.map +0 -1
  298. package/studio-dist/server/chunks/nexus-sqlite2-BBfY2xnY.js.map +0 -1
  299. package/studio-dist/server/chunks/no-face-up-DcejJLy-.js.map +0 -1
  300. package/studio-dist/server/chunks/node-http-handler-CJI8kn7X.js.map +0 -1
  301. package/studio-dist/server/chunks/observe-Bo9veHGe.js.map +0 -1
  302. package/studio-dist/server/chunks/observe2-wzO0MaMY.js.map +0 -1
  303. package/studio-dist/server/chunks/observer-reflector-BwNOuq1d.js.map +0 -1
  304. package/studio-dist/server/chunks/observer-reflector2-ggtC1hmk.js.map +0 -1
  305. package/studio-dist/server/chunks/on-open-Wpcw7DV4.js.map +0 -1
  306. package/studio-dist/server/chunks/open-cleo-db--8sYNaYY.js.map +0 -1
  307. package/studio-dist/server/chunks/parseKnownFiles-Dg0pMFcT.js.map +0 -1
  308. package/studio-dist/server/chunks/parseUrl-qgGfl-Vh.js.map +0 -1
  309. package/studio-dist/server/chunks/paths-CV7S5-Zm.js.map +0 -1
  310. package/studio-dist/server/chunks/patterns-lh5kn13I.js.map +0 -1
  311. package/studio-dist/server/chunks/patterns2-CzIcT-ai.js.map +0 -1
  312. package/studio-dist/server/chunks/pipeline-stage-IB_pOft-.js.map +0 -1
  313. package/studio-dist/server/chunks/prediction-D1lSGJ4c.js.map +0 -1
  314. package/studio-dist/server/chunks/premature-close-audit-VG09uAco.js.map +0 -1
  315. package/studio-dist/server/chunks/project-context-BjiqfEBi.js.map +0 -1
  316. package/studio-dist/server/chunks/provider-registry2-Cu7rAF0R.js.map +0 -1
  317. package/studio-dist/server/chunks/quality-feedback-CuCGEI6S.js.map +0 -1
  318. package/studio-dist/server/chunks/quality-scoring-CCPuRQmJ.js.map +0 -1
  319. package/studio-dist/server/chunks/query-ops-DCrjbZb9.js.map +0 -1
  320. package/studio-dist/server/chunks/query-promise-BkPmGPJy.js.map +0 -1
  321. package/studio-dist/server/chunks/readFile-CxwXhymG.js.map +0 -1
  322. package/studio-dist/server/chunks/registry-CL2gN1zd.js.map +0 -1
  323. package/studio-dist/server/chunks/registry2-DoPYJnUW.js.map +0 -1
  324. package/studio-dist/server/chunks/registry3-BajEb-ll.js.map +0 -1
  325. package/studio-dist/server/chunks/registry4-DCqffZkT.js.map +0 -1
  326. package/studio-dist/server/chunks/retry-B3oEKYpp.js.map +0 -1
  327. package/studio-dist/server/chunks/role-executor-CC8BU54L.js.map +0 -1
  328. package/studio-dist/server/chunks/role-resolver-D9QaDT0e.js.map +0 -1
  329. package/studio-dist/server/chunks/role-resolver2-nkhzS1oy.js.map +0 -1
  330. package/studio-dist/server/chunks/rollup-CiefjN_Y.js.map +0 -1
  331. package/studio-dist/server/chunks/safety-data-accessor-CniDmGJO.js.map +0 -1
  332. package/studio-dist/server/chunks/service-connections-accessor-yBCdcgU-.js.map +0 -1
  333. package/studio-dist/server/chunks/session-factory-vbengc42.js.map +0 -1
  334. package/studio-dist/server/chunks/session-grade-BF4ZZtN_.js.map +0 -1
  335. package/studio-dist/server/chunks/session-journal-Bvey70Ur.js.map +0 -1
  336. package/studio-dist/server/chunks/session-narrative-BirZINSU.js.map +0 -1
  337. package/studio-dist/server/chunks/session-store--N_xHxUH.js.map +0 -1
  338. package/studio-dist/server/chunks/session-store2-DAM-eVTH.js.map +0 -1
  339. package/studio-dist/server/chunks/sessions-33DD4hkt.js.map +0 -1
  340. package/studio-dist/server/chunks/sessions2-BHswKRDP.js.map +0 -1
  341. package/studio-dist/server/chunks/sigil-B-RznFXz.js.map +0 -1
  342. package/studio-dist/server/chunks/sigil2-jRMG5DuR.js.map +0 -1
  343. package/studio-dist/server/chunks/signin-BAsW3mM8.js.map +0 -1
  344. package/studio-dist/server/chunks/sleep-consolidation-BnSwXrvq.js.map +0 -1
  345. package/studio-dist/server/chunks/spawn-cli-wI1lBJhm.js.map +0 -1
  346. package/studio-dist/server/chunks/specialists-B_ZbpQlK.js.map +0 -1
  347. package/studio-dist/server/chunks/sqlite-Bm5LzbPs.js.map +0 -1
  348. package/studio-dist/server/chunks/sqlite-backup-CFG1-b2e.js.map +0 -1
  349. package/studio-dist/server/chunks/sqlite-data-accessor-DD_RFX6r.js.map +0 -1
  350. package/studio-dist/server/chunks/sqlite-data-accessor2-CRmgNBnq.js.map +0 -1
  351. package/studio-dist/server/chunks/sqlite-native-BwlIqtbs.js.map +0 -1
  352. package/studio-dist/server/chunks/sqlite2-CUPut2fh.js.map +0 -1
  353. package/studio-dist/server/chunks/src-BUqGet2c.js.map +0 -1
  354. package/studio-dist/server/chunks/src2-DK8DKufK.js.map +0 -1
  355. package/studio-dist/server/chunks/src3-BJjf7XRG.js.map +0 -1
  356. package/studio-dist/server/chunks/src4-DNleK_t_.js.map +0 -1
  357. package/studio-dist/server/chunks/sso-oidc-eUvwseuL.js.map +0 -1
  358. package/studio-dist/server/chunks/storage-B9UA3BHR.js.map +0 -1
  359. package/studio-dist/server/chunks/stores-BcV2X8z1.js.map +0 -1
  360. package/studio-dist/server/chunks/sts-g7LDMLEd.js.map +0 -1
  361. package/studio-dist/server/chunks/surprisal-CwTfWQi8.js.map +0 -1
  362. package/studio-dist/server/chunks/surprisal-tree-7dfHsuw1.js.map +0 -1
  363. package/studio-dist/server/chunks/system-resolver2-Bzhue_zQ.js.map +0 -1
  364. package/studio-dist/server/chunks/tasks-SHX7UPGY.js.map +0 -1
  365. package/studio-dist/server/chunks/tasks-schema2-CTMoQKQy.js.map +0 -1
  366. package/studio-dist/server/chunks/tasks2-Bf9VHrv-.js.map +0 -1
  367. package/studio-dist/server/chunks/temporal-supersession-DP4GPG_B.js.map +0 -1
  368. package/studio-dist/server/chunks/token-cAhAD9f9.js.map +0 -1
  369. package/studio-dist/server/chunks/token-util-D6drEz8_.js.map +0 -1
  370. package/studio-dist/server/chunks/token-util2-8UPSGvbb.js.map +0 -1
  371. package/studio-dist/server/chunks/transcript-scanner-kJWhWmlg.js.map +0 -1
  372. package/studio-dist/server/chunks/transformers.node-_xbxmK5p.js.map +0 -1
  373. package/studio-dist/server/chunks/typed-query-l1D_QElt.js.map +0 -1
  374. package/studio-dist/server/chunks/ui-DR8zOSpC.js.map +0 -1
  375. package/studio-dist/server/chunks/unique-constraint-BZrrwgwc.js.map +0 -1
  376. package/studio-dist/server/chunks/update-B2YVBZG0.js.map +0 -1
  377. package/studio-dist/server/chunks/user-profile-B61ZhVmC.js.map +0 -1
  378. package/studio-dist/server/chunks/utils-BPSZyajG.js.map +0 -1
  379. package/studio-dist/server/chunks/validation-rules-CE27rtoF.js.map +0 -1
  380. package/studio-dist/server/chunks/zod-DsAeKNLm.js.map +0 -1
  381. package/studio-dist/server/index.js.map +0 -1
  382. package/studio-dist/server/manifest.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"dual-scope-db-DKnWu1KM.js","sources":["../../../.svelte-kit/adapter-node/chunks/sqlite-pragmas.js","../../../.svelte-kit/adapter-node/chunks/abort-events2.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/migrator.utils.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/migrator.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/utils.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/view-base.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/selection-proxy.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/query-builders/query-builder.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/query-builders/select.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/dialect.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/query-builders/count.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/async/count.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/query-builders/query.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/async/query.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/query-builders/delete.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/async/delete.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/query-builders/insert.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/async/insert.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/query-builders/raw.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/async/raw.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/async/select.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/query-builders/update.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/async/update.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/async/db.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/up-migrations/utils.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/up-migrations/sqlite.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/cache/core/cache.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/session.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sqlite-core/async/session.js","../../../.svelte-kit/adapter-node/chunks/dual-scope-db.js"],"sourcesContent":["/**\n* Canonical (name, value) pairs in declared order — mirror of the\n* Rust `SQLITE_PRAGMAS` const generated by\n* `crates/signaldock-storage/build.rs` from the same JSON file.\n*/\nvar CANONICAL_PRAGMAS = {\n\tversion: 1,\n\tpragmas: [\n\t\t[\"busy_timeout\", \"30000\"],\n\t\t[\"journal_mode\", \"WAL\"],\n\t\t[\"synchronous\", \"NORMAL\"],\n\t\t[\"foreign_keys\", \"ON\"],\n\t\t[\"cache_size\", \"-64000\"],\n\t\t[\"mmap_size\", \"268435456\"],\n\t\t[\"temp_store\", \"MEMORY\"],\n\t\t[\"wal_autocheckpoint\", \"1000\"]\n\t]\n}.pragmas;\n/**\n* Render a single (name, value) pair to its `PRAGMA name = value` SQL\n* form. The Rust side (`build.rs`) emits the identical formatting.\n*\n* @param entry - Tuple of `[pragma name, value]` from the SSoT.\n* @returns The pragma SQL statement (no trailing semicolon).\n*\n* @example\n* ```ts\n* renderPragmaSql(['journal_mode', 'WAL']); // \"PRAGMA journal_mode = WAL\"\n* ```\n*/\nfunction renderPragmaSql(entry) {\n\tconst [name, value] = entry;\n\treturn `PRAGMA ${name} = ${value}`;\n}\nCANONICAL_PRAGMAS.map(renderPragmaSql).join(\";\\n\");\n/**\n* Apply the canonical CLEO performance pragma set to a freshly-opened\n* SQLite connection.\n*\n* Pragmas are applied via `db.exec(...)` (not prepare/run) because they\n* are configuration, not queries — most return no rows and prepared\n* statement caching offers no benefit.\n*\n* The order and the value for each pragma come from\n* `specs/sqlite-pragmas.json` (T9053 SSoT). `applyPerfPragmas` only\n* deviates from the spec for the small set of toggles documented on\n* `PerfPragmaOptions` (read-only handles disable WAL, vitest disables\n* foreign_keys, callers may override numeric values).\n*\n* Safe to call multiple times on the same handle: every pragma here is\n* idempotent. Safe to call on read-only handles: write-requiring pragmas\n* silently no-op.\n*\n* @param db - Open `node:sqlite` `DatabaseSync` handle.\n* @param options - Optional overrides for individual pragma values.\n*/\nfunction applyPerfPragmas(db, options = {}) {\n\tconst { enableWal = true, enableForeignKeys = !process.env.VITEST, cacheSizeKb, mmapSizeBytes, busyTimeoutMs } = options;\n\tfor (const entry of CANONICAL_PRAGMAS) {\n\t\tconst [name, declaredValue] = entry;\n\t\tconst value = resolvePragmaValue(name, declaredValue, {\n\t\t\tenableWal,\n\t\t\tenableForeignKeys,\n\t\t\tcacheSizeKb,\n\t\t\tmmapSizeBytes,\n\t\t\tbusyTimeoutMs\n\t\t});\n\t\tif (value === null) continue;\n\t\tdb.exec(`PRAGMA ${name} = ${value}`);\n\t}\n}\n/**\n* Compute the runtime value for a pragma given the SSoT default and\n* any caller-supplied overrides. Returns `null` to skip the pragma\n* entirely (used for the WAL/foreign_keys toggles).\n*/\nfunction resolvePragmaValue(name, declared, toggles) {\n\tswitch (name) {\n\t\tcase \"journal_mode\": return toggles.enableWal ? declared : null;\n\t\tcase \"foreign_keys\": return toggles.enableForeignKeys ? declared : null;\n\t\tcase \"busy_timeout\": return toggles.busyTimeoutMs === void 0 ? declared : String(toggles.busyTimeoutMs);\n\t\tcase \"cache_size\": return toggles.cacheSizeKb === void 0 ? declared : `-${toggles.cacheSizeKb}`;\n\t\tcase \"mmap_size\":\n\t\t\tif (toggles.mmapSizeBytes === void 0) return declared;\n\t\t\treturn toggles.mmapSizeBytes > 0 ? String(toggles.mmapSizeBytes) : null;\n\t\tdefault: return declared;\n\t}\n}\n//#endregion\nexport { applyPerfPragmas as t };\n","import { EventEmitter } from \"node:events\";\n//#region ../core/dist/store/exodus/abort-events.js\n/**\n* Typed, process-local event channel for exodus-on-open ABORTS (T11828 · DHQ-059).\n*\n* ## Why this exists\n*\n* The exodus-on-open data-continuity gate ({@link maybeRunExodusOnOpen}) can\n* ABORT a first-open auto-migration when the parity verify fails or the copy\n* errors mid-flight. On abort the consolidated `cleo.db` is rolled back to EMPTY\n* and the legacy fleet is kept as the source of truth — so the handle the\n* chokepoint hands back is live and success-shaped, but the data the caller\n* expected is NOT in it.\n*\n* Before T11828 that abort surfaced ONLY as a `log.warn(...)` inside the open\n* chokepoint. A MUTATING caller (e.g. `tasks.add`) therefore had no programmatic\n* signal that its write was about to land in a consolidated DB that does not\n* contain the user's real data — i.e. the write may not be durable against the\n* source of truth. This module is the out-of-band surface: every abort is\n* broadcast here so daemon/session/diagnostic subscribers can react, AND the\n* abort detail is stamped onto the returned {@link DualScopeDbHandle} so a\n* mutation path can detect it synchronously via {@link assertWriteDurable}.\n*\n* Read-only callers ignore the marker entirely — they get a valid handle and the\n* empty-but-consistent consolidated DB, exactly as before.\n*\n* @module\n* @task T11828 (DHQ-059 — surface exodus-on-open abort to mutating callers)\n* @epic T11833\n* @saga T11242 (SG-DB-SUBSTRATE-V2)\n* @see packages/core/src/store/exodus/on-open.ts — where the abort originates\n* @see packages/core/src/store/dual-scope-db.ts — where the marker is stamped + assertWriteDurable\n*/\n/**\n* Process-local emitter broadcasting every exodus-on-open ABORT.\n*\n* Subscribers (daemon liveness, session lifecycle, `cleo doctor exodus-health`)\n* MAY listen for `'abort'` to react to a degraded first-open without coupling to\n* the store chokepoint. Emission is best-effort and never throws into the open\n* path — listener errors are swallowed by {@link emitExodusAbort}.\n*\n* @task T11828\n* @public\n*/\nvar exodusAbortEvents = new EventEmitter();\nexodusAbortEvents.setMaxListeners(50);\n/**\n/**\n* Process-local registry of the most recent abort detail per scope.\n*\n* Recorded on every {@link emitExodusAbort} so the write-side guard\n* (`assertWriteDurable` via {@link insertIdempotent} / {@link upsertIdempotent})\n* can detect a degraded first-open even when the caller no longer holds the\n* original {@link DualScopeDbHandle} (e.g. domain modules that extract the native\n* handle and discard the wrapper). Cleared by {@link clearExodusAborts} once the\n* underlying migration is resolved (successful `cleo exodus migrate` / recovery)\n* or in test teardown.\n*/\nvar _abortedScopes = /* @__PURE__ */ new Map();\n/**\n* Broadcast an exodus-on-open abort on the {@link exodusAbortEvents} channel and\n* record it in the process-local per-scope registry.\n*\n* Best-effort: a throwing/synchronous listener must NOT propagate into the DB\n* open path, so emission is wrapped. Returns `true` if at least one listener was\n* notified (matching `EventEmitter.emit` semantics) — informational only.\n*\n* @param detail - The structured abort detail to broadcast.\n* @returns `true` when the event had listeners; `false` otherwise.\n*\n* @task T11828\n* @public\n*/\nfunction emitExodusAbort(detail) {\n\t_abortedScopes.set(detail.scope, detail);\n\ttry {\n\t\treturn exodusAbortEvents.emit(\"abort\", detail);\n\t} catch {\n\t\treturn false;\n\t}\n}\n/**\n* Return the recorded abort detail for `scope`, or — when `scope` is omitted —\n* the most-recent abort across any scope. `undefined` when no abort is recorded.\n*\n* Used by the write-side guard to reject a mutation that would land in a\n* consolidated DB the exodus-on-open gate left empty.\n*\n* @param scope - Optional scope filter; when omitted, returns any recorded abort.\n* @returns The {@link ExodusAbortDetail}, or `undefined`.\n*\n* @task T11828\n* @public\n*/\nfunction getRecordedExodusAbort(scope) {\n\tif (scope !== void 0) return _abortedScopes.get(scope);\n\tlet latest;\n\tfor (const detail of _abortedScopes.values()) if (!latest || detail.at >= latest.at) latest = detail;\n\treturn latest;\n}\n/**\n* Clear recorded aborts — all scopes, or a single `scope`.\n*\n* Call after the aborted migration is resolved (a subsequent successful\n* `cleo exodus migrate` / `cleo doctor repair`) so writes are no longer rejected,\n* and in test teardown to isolate cases.\n*\n* @param scope - Optional scope to clear; when omitted, clears every scope.\n*\n* @task T11828\n* @public\n*/\nfunction clearExodusAborts(scope) {\n\tif (scope !== void 0) {\n\t\t_abortedScopes.delete(scope);\n\t\treturn;\n\t}\n\t_abortedScopes.clear();\n}\n//#endregion\nexport { getRecordedExodusAbort as i, emitExodusAbort as n, exodusAbortEvents as r, clearExodusAborts as t };\n","//#region src/migrator.utils.ts\nfunction formatToMillis(dateStr) {\n\tconst year = parseInt(dateStr.slice(0, 4), 10);\n\tconst month = parseInt(dateStr.slice(4, 6), 10) - 1;\n\tconst day = parseInt(dateStr.slice(6, 8), 10);\n\tconst hour = parseInt(dateStr.slice(8, 10), 10);\n\tconst minute = parseInt(dateStr.slice(10, 12), 10);\n\tconst second = parseInt(dateStr.slice(12, 14), 10);\n\treturn Date.UTC(year, month, day, hour, minute, second);\n}\nfunction getMigrationsToRun(params) {\n\tconst { localMigrations, dbMigrations } = params;\n\tconst dbNamesSet = new Set(dbMigrations.map((m) => m.name).filter((n) => n !== null));\n\treturn localMigrations.filter((lm) => !lm.name || !dbNamesSet.has(lm.name));\n}\n\n//#endregion\nexport { formatToMillis, getMigrationsToRun };\n//# sourceMappingURL=migrator.utils.js.map","import { formatToMillis } from \"./migrator.utils.js\";\nimport crypto from \"node:crypto\";\nimport fs, { existsSync, readdirSync } from \"node:fs\";\nimport { join } from \"node:path\";\n\n//#region src/migrator.ts\nfunction readMigrationFiles(config) {\n\tif (fs.existsSync(`${config.migrationsFolder}/meta/_journal.json`)) throw Error(\"We detected that you have old drizzle-kit migration folders. You must upgrade drizzle-kit and run \\\"drizzle-kit up\\\"\");\n\tconst migrationFolderTo = config.migrationsFolder;\n\tconst migrationQueries = [];\n\tconst migrations = readdirSync(migrationFolderTo).map((subdir) => ({\n\t\tpath: join(migrationFolderTo, subdir, \"migration.sql\"),\n\t\tname: subdir\n\t})).filter((it) => existsSync(it.path));\n\tmigrations.sort((a, b) => a.name.localeCompare(b.name));\n\tfor (const migration of migrations) {\n\t\tconst migrationPath = migration.path;\n\t\tconst migrationDate = migration.name.slice(0, 14);\n\t\tconst query = fs.readFileSync(migrationPath).toString();\n\t\tconst result = query.split(\"--> statement-breakpoint\").map((it) => {\n\t\t\treturn it;\n\t\t});\n\t\tconst millis = formatToMillis(migrationDate);\n\t\tmigrationQueries.push({\n\t\t\tsql: result,\n\t\t\tbps: true,\n\t\t\tfolderMillis: millis,\n\t\t\thash: crypto.createHash(\"sha256\").update(query).digest(\"hex\"),\n\t\t\tname: migration.name\n\t\t});\n\t}\n\treturn migrationQueries;\n}\n\n//#endregion\nexport { readMigrationFiles };\n//# sourceMappingURL=migrator.js.map","import { SQLiteTable } from \"./table.js\";\nimport { CheckBuilder } from \"./checks.js\";\nimport { ForeignKeyBuilder } from \"./foreign-keys.js\";\nimport { IndexBuilder } from \"./indexes.js\";\nimport { PrimaryKeyBuilder } from \"./primary-keys.js\";\nimport { UniqueConstraintBuilder } from \"./unique-constraint.js\";\nimport { is } from \"../entity.js\";\nimport { Subquery } from \"../subquery.js\";\nimport { ViewBaseConfig } from \"../view-common.js\";\nimport { Table } from \"../table.js\";\nimport { SQL } from \"../sql/sql.js\";\n\n//#region src/sqlite-core/utils.ts\nfunction getTableConfig(table) {\n\tconst columns = Object.values(table[SQLiteTable.Symbol.Columns]);\n\tconst indexes = [];\n\tconst checks = [];\n\tconst primaryKeys = [];\n\tconst uniqueConstraints = [];\n\tconst foreignKeys = Object.values(table[SQLiteTable.Symbol.InlineForeignKeys]);\n\tconst name = table[Table.Symbol.Name];\n\tconst extraConfigBuilder = table[SQLiteTable.Symbol.ExtraConfigBuilder];\n\tif (extraConfigBuilder !== void 0) {\n\t\tconst extraConfig = extraConfigBuilder(table[SQLiteTable.Symbol.Columns]);\n\t\tconst extraValues = Array.isArray(extraConfig) ? extraConfig.flat(1) : Object.values(extraConfig);\n\t\tfor (const builder of Object.values(extraValues)) if (is(builder, IndexBuilder)) indexes.push(builder.build(table));\n\t\telse if (is(builder, CheckBuilder)) checks.push(builder.build(table));\n\t\telse if (is(builder, UniqueConstraintBuilder)) uniqueConstraints.push(builder.build(table));\n\t\telse if (is(builder, PrimaryKeyBuilder)) primaryKeys.push(builder.build(table));\n\t\telse if (is(builder, ForeignKeyBuilder)) foreignKeys.push(builder.build(table));\n\t}\n\treturn {\n\t\tcolumns,\n\t\tindexes,\n\t\tforeignKeys,\n\t\tchecks,\n\t\tprimaryKeys,\n\t\tuniqueConstraints,\n\t\tname\n\t};\n}\nfunction extractUsedTable(table) {\n\tif (is(table, SQLiteTable)) return [`${table[Table.Symbol.BaseName]}`];\n\tif (is(table, Subquery)) return table._.usedTables ?? [];\n\tif (is(table, SQL)) return table.usedTables ?? [];\n\treturn [];\n}\nfunction getViewConfig(view) {\n\treturn { ...view[ViewBaseConfig] };\n}\n\n//#endregion\nexport { extractUsedTable, getTableConfig, getViewConfig };\n//# sourceMappingURL=utils.js.map","import { entityKind } from \"../entity.js\";\nimport { View } from \"../sql/sql.js\";\n\n//#region src/sqlite-core/view-base.ts\nvar SQLiteViewBase = class extends View {\n\tstatic [entityKind] = \"SQLiteViewBase\";\n};\n\n//#endregion\nexport { SQLiteViewBase };\n//# sourceMappingURL=view-base.js.map","import { entityKind, is } from \"./entity.js\";\nimport { Column } from \"./column.js\";\nimport { SQL, View } from \"./sql/sql.js\";\nimport { Subquery } from \"./subquery.js\";\nimport { ViewBaseConfig } from \"./view-common.js\";\nimport { ColumnTableAliasProxyHandler, TableAliasProxyHandler } from \"./alias.js\";\n\n//#region src/selection-proxy.ts\nvar SelectionProxyHandler = class SelectionProxyHandler {\n\tstatic [entityKind] = \"SelectionProxyHandler\";\n\tconfig;\n\tconstructor(config) {\n\t\tthis.config = { ...config };\n\t}\n\tget(subquery, prop) {\n\t\tif (prop === \"_\") return {\n\t\t\t...subquery[\"_\"],\n\t\t\tselectedFields: new Proxy(subquery._.selectedFields, this)\n\t\t};\n\t\tif (prop === ViewBaseConfig) return {\n\t\t\t...subquery[ViewBaseConfig],\n\t\t\tselectedFields: new Proxy(subquery[ViewBaseConfig].selectedFields, this)\n\t\t};\n\t\tif (typeof prop === \"symbol\") return subquery[prop];\n\t\tconst value = (is(subquery, Subquery) ? subquery._.selectedFields : is(subquery, View) ? subquery[ViewBaseConfig].selectedFields : subquery)[prop];\n\t\tif (is(value, SQL.Aliased)) {\n\t\t\tif (this.config.sqlAliasedBehavior === \"sql\" && !value.isSelectionField) return value.sql;\n\t\t\tconst newValue = value.clone();\n\t\t\tnewValue.isSelectionField = true;\n\t\t\tnewValue.origin = this.config.alias;\n\t\t\treturn newValue;\n\t\t}\n\t\tif (is(value, SQL)) {\n\t\t\tif (this.config.sqlBehavior === \"sql\") return value;\n\t\t\tthrow new Error(`You tried to reference \"${prop}\" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using \".as('alias')\" method.`);\n\t\t}\n\t\tif (is(value, Column)) {\n\t\t\tif (this.config.alias) return new Proxy(value, new ColumnTableAliasProxyHandler(new Proxy(value.table, new TableAliasProxyHandler(this.config.alias, this.config.replaceOriginalName ?? false, true)), true));\n\t\t\treturn value;\n\t\t}\n\t\tif (typeof value !== \"object\" || value === null) return value;\n\t\treturn new Proxy(value, new SelectionProxyHandler(this.config));\n\t}\n};\n\n//#endregion\nexport { SelectionProxyHandler };\n//# sourceMappingURL=selection-proxy.js.map","import { entityKind } from \"../entity.js\";\n\n//#region src/query-builders/query-builder.ts\nvar TypedQueryBuilder = class {\n\tstatic [entityKind] = \"TypedQueryBuilder\";\n\t/** @internal */\n\tgetSelectedFields() {\n\t\treturn this._.selectedFields;\n\t}\n\t/** @internal */\n\twithoutSelectionCastCodecs() {\n\t\treturn this;\n\t}\n};\n\n//#endregion\nexport { TypedQueryBuilder };\n//# sourceMappingURL=query-builder.js.map","import { extractUsedTable } from \"../utils.js\";\nimport { SQLiteViewBase } from \"../view-base.js\";\nimport { entityKind, is } from \"../../entity.js\";\nimport { Subquery } from \"../../subquery.js\";\nimport { ViewBaseConfig } from \"../../view-common.js\";\nimport { Table } from \"../../table.js\";\nimport { getTableColumns, getTableLikeName, haveSameKeys, orderSelectedFields } from \"../../utils.js\";\nimport { SQL, View } from \"../../sql/sql.js\";\nimport { SelectionProxyHandler } from \"../../selection-proxy.js\";\nimport { TypedQueryBuilder } from \"../../query-builders/query-builder.js\";\n\n//#region src/sqlite-core/query-builders/select.ts\nvar SQLiteSelectBuilder = class {\n\tstatic [entityKind] = \"SQLiteSelectBuilder\";\n\tfields;\n\tsession;\n\tdialect;\n\twithList;\n\tdistinct;\n\tconstructor(config, builder = SQLiteSelectBase) {\n\t\tthis.builder = builder;\n\t\tthis.fields = config.fields;\n\t\tthis.session = config.session;\n\t\tthis.dialect = config.dialect;\n\t\tthis.withList = config.withList;\n\t\tthis.distinct = config.distinct;\n\t}\n\tfrom(source) {\n\t\tconst isPartialSelect = !!this.fields;\n\t\tlet fields;\n\t\tif (this.fields) fields = this.fields;\n\t\telse if (is(source, Subquery)) fields = Object.fromEntries(Object.keys(source._.selectedFields).map((key) => [key, source[key]]));\n\t\telse if (is(source, SQLiteViewBase)) fields = source[ViewBaseConfig].selectedFields;\n\t\telse if (is(source, SQL)) fields = {};\n\t\telse fields = getTableColumns(source);\n\t\treturn new this.builder({\n\t\t\ttable: source,\n\t\t\tfields,\n\t\t\tisPartialSelect,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t\twithList: this.withList ?? [],\n\t\t\tdistinct: this.distinct\n\t\t});\n\t}\n};\nvar SQLiteSelectBase = class extends TypedQueryBuilder {\n\tstatic [entityKind] = \"SQLiteSelectQueryBuilder\";\n\t_;\n\t/** @internal */\n\tconfig;\n\tjoinsNotNullableMap;\n\ttableName;\n\tisPartialSelect;\n\tsession;\n\tdialect;\n\tcacheConfig = void 0;\n\tusedTables = /* @__PURE__ */ new Set();\n\tconstructor({ table, fields, isPartialSelect, session, dialect, withList, distinct }) {\n\t\tsuper();\n\t\tthis.config = {\n\t\t\twithList,\n\t\t\ttable,\n\t\t\tfields: { ...fields },\n\t\t\tdistinct,\n\t\t\tsetOperators: []\n\t\t};\n\t\tthis.isPartialSelect = isPartialSelect;\n\t\tthis.session = session;\n\t\tthis.dialect = dialect;\n\t\tthis._ = {\n\t\t\tselectedFields: fields,\n\t\t\tconfig: this.config\n\t\t};\n\t\tthis.tableName = getTableLikeName(table);\n\t\tthis.joinsNotNullableMap = typeof this.tableName === \"string\" ? { [this.tableName]: true } : {};\n\t\tfor (const item of extractUsedTable(table)) this.usedTables.add(item);\n\t}\n\t/** @internal */\n\tgetUsedTables() {\n\t\treturn [...this.usedTables];\n\t}\n\tcreateJoin(joinType) {\n\t\treturn (table, on) => {\n\t\t\tconst baseTableName = this.tableName;\n\t\t\tconst tableName = getTableLikeName(table);\n\t\t\tfor (const item of extractUsedTable(table)) this.usedTables.add(item);\n\t\t\tif (typeof tableName === \"string\" && this.config.joins?.some((join) => join.alias === tableName)) throw new Error(`Alias \"${tableName}\" is already used in this query`);\n\t\t\tif (!this.isPartialSelect) {\n\t\t\t\tif (Object.keys(this.joinsNotNullableMap).length === 1 && typeof baseTableName === \"string\") this.config.fields = { [baseTableName]: this.config.fields };\n\t\t\t\tif (typeof tableName === \"string\" && !is(table, SQL)) {\n\t\t\t\t\tconst selection = is(table, Subquery) ? table._.selectedFields : is(table, View) ? table[ViewBaseConfig].selectedFields : table[Table.Symbol.Columns];\n\t\t\t\t\tthis.config.fields[tableName] = selection;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (typeof on === \"function\") on = on(new Proxy(this.config.fields, new SelectionProxyHandler({\n\t\t\t\tsqlAliasedBehavior: \"sql\",\n\t\t\t\tsqlBehavior: \"sql\"\n\t\t\t})));\n\t\t\tif (!this.config.joins) this.config.joins = [];\n\t\t\tthis.config.joins.push({\n\t\t\t\ton,\n\t\t\t\ttable,\n\t\t\t\tjoinType,\n\t\t\t\talias: tableName\n\t\t\t});\n\t\t\tif (typeof tableName === \"string\") switch (joinType) {\n\t\t\t\tcase \"left\":\n\t\t\t\t\tthis.joinsNotNullableMap[tableName] = false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"right\":\n\t\t\t\t\tthis.joinsNotNullableMap = Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([key]) => [key, false]));\n\t\t\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"cross\":\n\t\t\t\tcase \"inner\":\n\t\t\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"full\":\n\t\t\t\t\tthis.joinsNotNullableMap = Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([key]) => [key, false]));\n\t\t\t\t\tthis.joinsNotNullableMap[tableName] = false;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\treturn this;\n\t\t};\n\t}\n\t/**\n\t* Executes a `left join` operation by adding another table to the current query.\n\t*\n\t* Calling this method associates each row of the table with the corresponding row from the joined table, if a match is found. If no matching row exists, it sets all columns of the joined table to null.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/joins#left-join}\n\t*\n\t* @param table the table to join.\n\t* @param on the `on` clause.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select all users and their pets\n\t* const usersWithPets: { user: User; pets: Pet | null; }[] = await db.select()\n\t* .from(users)\n\t* .leftJoin(pets, eq(users.id, pets.ownerId))\n\t*\n\t* // Select userId and petId\n\t* const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({\n\t* userId: users.id,\n\t* petId: pets.id,\n\t* })\n\t* .from(users)\n\t* .leftJoin(pets, eq(users.id, pets.ownerId))\n\t* ```\n\t*/\n\tleftJoin = this.createJoin(\"left\");\n\t/**\n\t* Executes a `right join` operation by adding another table to the current query.\n\t*\n\t* Calling this method associates each row of the joined table with the corresponding row from the main table, if a match is found. If no matching row exists, it sets all columns of the main table to null.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/joins#right-join}\n\t*\n\t* @param table the table to join.\n\t* @param on the `on` clause.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select all users and their pets\n\t* const usersWithPets: { user: User | null; pets: Pet; }[] = await db.select()\n\t* .from(users)\n\t* .rightJoin(pets, eq(users.id, pets.ownerId))\n\t*\n\t* // Select userId and petId\n\t* const usersIdsAndPetIds: { userId: number | null; petId: number; }[] = await db.select({\n\t* userId: users.id,\n\t* petId: pets.id,\n\t* })\n\t* .from(users)\n\t* .rightJoin(pets, eq(users.id, pets.ownerId))\n\t* ```\n\t*/\n\trightJoin = this.createJoin(\"right\");\n\t/**\n\t* Executes an `inner join` operation, creating a new table by combining rows from two tables that have matching values.\n\t*\n\t* Calling this method retrieves rows that have corresponding entries in both joined tables. Rows without matching entries in either table are excluded, resulting in a table that includes only matching pairs.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/joins#inner-join}\n\t*\n\t* @param table the table to join.\n\t* @param on the `on` clause.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select all users and their pets\n\t* const usersWithPets: { user: User; pets: Pet; }[] = await db.select()\n\t* .from(users)\n\t* .innerJoin(pets, eq(users.id, pets.ownerId))\n\t*\n\t* // Select userId and petId\n\t* const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({\n\t* userId: users.id,\n\t* petId: pets.id,\n\t* })\n\t* .from(users)\n\t* .innerJoin(pets, eq(users.id, pets.ownerId))\n\t* ```\n\t*/\n\tinnerJoin = this.createJoin(\"inner\");\n\t/**\n\t* Executes a `full join` operation by combining rows from two tables into a new table.\n\t*\n\t* Calling this method retrieves all rows from both main and joined tables, merging rows with matching values and filling in `null` for non-matching columns.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/joins#full-join}\n\t*\n\t* @param table the table to join.\n\t* @param on the `on` clause.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select all users and their pets\n\t* const usersWithPets: { user: User | null; pets: Pet | null; }[] = await db.select()\n\t* .from(users)\n\t* .fullJoin(pets, eq(users.id, pets.ownerId))\n\t*\n\t* // Select userId and petId\n\t* const usersIdsAndPetIds: { userId: number | null; petId: number | null; }[] = await db.select({\n\t* userId: users.id,\n\t* petId: pets.id,\n\t* })\n\t* .from(users)\n\t* .fullJoin(pets, eq(users.id, pets.ownerId))\n\t* ```\n\t*/\n\tfullJoin = this.createJoin(\"full\");\n\t/**\n\t* Executes a `cross join` operation by combining rows from two tables into a new table.\n\t*\n\t* Calling this method retrieves all rows from both main and joined tables, merging all rows from each table.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/joins#cross-join}\n\t*\n\t* @param table the table to join.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select all users, each user with every pet\n\t* const usersWithPets: { user: User; pets: Pet; }[] = await db.select()\n\t* .from(users)\n\t* .crossJoin(pets)\n\t*\n\t* // Select userId and petId\n\t* const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({\n\t* userId: users.id,\n\t* petId: pets.id,\n\t* })\n\t* .from(users)\n\t* .crossJoin(pets)\n\t* ```\n\t*/\n\tcrossJoin = this.createJoin(\"cross\");\n\tcreateSetOperator(type, isAll) {\n\t\treturn (rightSelection) => {\n\t\t\tconst rightSelect = typeof rightSelection === \"function\" ? rightSelection(getSQLiteSetOperators()) : rightSelection;\n\t\t\tif (!haveSameKeys(this.getSelectedFields(), rightSelect.getSelectedFields())) throw new Error(\"Set operator error (union / intersect / except): selected fields are not the same or are in a different order\");\n\t\t\tthis.config.setOperators.push({\n\t\t\t\ttype,\n\t\t\t\tisAll,\n\t\t\t\trightSelect\n\t\t\t});\n\t\t\treturn this;\n\t\t};\n\t}\n\t/**\n\t* Adds `union` set operator to the query.\n\t*\n\t* Calling this method will combine the result sets of the `select` statements and remove any duplicate rows that appear across them.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/set-operations#union}\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select all unique names from customers and users tables\n\t* await db.select({ name: users.name })\n\t* .from(users)\n\t* .union(\n\t* db.select({ name: customers.name }).from(customers)\n\t* );\n\t* // or\n\t* import { union } from 'drizzle-orm/sqlite-core'\n\t*\n\t* await union(\n\t* db.select({ name: users.name }).from(users),\n\t* db.select({ name: customers.name }).from(customers)\n\t* );\n\t* ```\n\t*/\n\tunion = this.createSetOperator(\"union\", false);\n\t/**\n\t* Adds `union all` set operator to the query.\n\t*\n\t* Calling this method will combine the result-set of the `select` statements and keep all duplicate rows that appear across them.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/set-operations#union-all}\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select all transaction ids from both online and in-store sales\n\t* await db.select({ transaction: onlineSales.transactionId })\n\t* .from(onlineSales)\n\t* .unionAll(\n\t* db.select({ transaction: inStoreSales.transactionId }).from(inStoreSales)\n\t* );\n\t* // or\n\t* import { unionAll } from 'drizzle-orm/sqlite-core'\n\t*\n\t* await unionAll(\n\t* db.select({ transaction: onlineSales.transactionId }).from(onlineSales),\n\t* db.select({ transaction: inStoreSales.transactionId }).from(inStoreSales)\n\t* );\n\t* ```\n\t*/\n\tunionAll = this.createSetOperator(\"union\", true);\n\t/**\n\t* Adds `intersect` set operator to the query.\n\t*\n\t* Calling this method will retain only the rows that are present in both result sets and eliminate duplicates.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/set-operations#intersect}\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select course names that are offered in both departments A and B\n\t* await db.select({ courseName: depA.courseName })\n\t* .from(depA)\n\t* .intersect(\n\t* db.select({ courseName: depB.courseName }).from(depB)\n\t* );\n\t* // or\n\t* import { intersect } from 'drizzle-orm/sqlite-core'\n\t*\n\t* await intersect(\n\t* db.select({ courseName: depA.courseName }).from(depA),\n\t* db.select({ courseName: depB.courseName }).from(depB)\n\t* );\n\t* ```\n\t*/\n\tintersect = this.createSetOperator(\"intersect\", false);\n\t/**\n\t* Adds `except` set operator to the query.\n\t*\n\t* Calling this method will retrieve all unique rows from the left query, except for the rows that are present in the result set of the right query.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/set-operations#except}\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select all courses offered in department A but not in department B\n\t* await db.select({ courseName: depA.courseName })\n\t* .from(depA)\n\t* .except(\n\t* db.select({ courseName: depB.courseName }).from(depB)\n\t* );\n\t* // or\n\t* import { except } from 'drizzle-orm/sqlite-core'\n\t*\n\t* await except(\n\t* db.select({ courseName: depA.courseName }).from(depA),\n\t* db.select({ courseName: depB.courseName }).from(depB)\n\t* );\n\t* ```\n\t*/\n\texcept = this.createSetOperator(\"except\", false);\n\t/** @internal */\n\taddSetOperators(setOperators) {\n\t\tthis.config.setOperators.push(...setOperators);\n\t\treturn this;\n\t}\n\t/**\n\t* Adds a `where` clause to the query.\n\t*\n\t* Calling this method will select only those rows that fulfill a specified condition.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/select#filtering}\n\t*\n\t* @param where the `where` clause.\n\t*\n\t* @example\n\t* You can use conditional operators and `sql function` to filter the rows to be selected.\n\t*\n\t* ```ts\n\t* // Select all cars with green color\n\t* await db.select().from(cars).where(eq(cars.color, 'green'));\n\t* // or\n\t* await db.select().from(cars).where(sql`${cars.color} = 'green'`)\n\t* ```\n\t*\n\t* You can logically combine conditional operators with `and()` and `or()` operators:\n\t*\n\t* ```ts\n\t* // Select all BMW cars with a green color\n\t* await db.select().from(cars).where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t*\n\t* // Select all cars with the green or blue color\n\t* await db.select().from(cars).where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t* ```\n\t*/\n\twhere(where) {\n\t\tif (typeof where === \"function\") where = where(new Proxy(this.config.fields, new SelectionProxyHandler({\n\t\t\tsqlAliasedBehavior: \"sql\",\n\t\t\tsqlBehavior: \"sql\"\n\t\t})));\n\t\tthis.config.where = where;\n\t\treturn this;\n\t}\n\t/**\n\t* Adds a `having` clause to the query.\n\t*\n\t* Calling this method will select only those rows that fulfill a specified condition. It is typically used with aggregate functions to filter the aggregated data based on a specified condition.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/select#aggregations}\n\t*\n\t* @param having the `having` clause.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Select all brands with more than one car\n\t* await db.select({\n\t* \tbrand: cars.brand,\n\t* \tcount: sql<number>`cast(count(${cars.id}) as int)`,\n\t* })\n\t* .from(cars)\n\t* .groupBy(cars.brand)\n\t* .having(({ count }) => gt(count, 1));\n\t* ```\n\t*/\n\thaving(having) {\n\t\tif (typeof having === \"function\") having = having(new Proxy(this.config.fields, new SelectionProxyHandler({\n\t\t\tsqlAliasedBehavior: \"sql\",\n\t\t\tsqlBehavior: \"sql\"\n\t\t})));\n\t\tthis.config.having = having;\n\t\treturn this;\n\t}\n\tgroupBy(...columns) {\n\t\tif (typeof columns[0] === \"function\") {\n\t\t\tconst groupBy = columns[0](new Proxy(this.config.fields, new SelectionProxyHandler({\n\t\t\t\tsqlAliasedBehavior: \"alias\",\n\t\t\t\tsqlBehavior: \"sql\"\n\t\t\t})));\n\t\t\tthis.config.groupBy = Array.isArray(groupBy) ? groupBy : [groupBy];\n\t\t} else this.config.groupBy = columns;\n\t\treturn this;\n\t}\n\torderBy(...columns) {\n\t\tif (typeof columns[0] === \"function\") {\n\t\t\tconst orderBy = columns[0](new Proxy(this.config.fields, new SelectionProxyHandler({\n\t\t\t\tsqlAliasedBehavior: \"alias\",\n\t\t\t\tsqlBehavior: \"sql\"\n\t\t\t})));\n\t\t\tconst orderByArray = Array.isArray(orderBy) ? orderBy : [orderBy];\n\t\t\tif (this.config.setOperators.length > 0) this.config.setOperators.at(-1).orderBy = orderByArray;\n\t\t\telse this.config.orderBy = orderByArray;\n\t\t} else {\n\t\t\tconst orderByArray = columns;\n\t\t\tif (this.config.setOperators.length > 0) this.config.setOperators.at(-1).orderBy = orderByArray;\n\t\t\telse this.config.orderBy = orderByArray;\n\t\t}\n\t\treturn this;\n\t}\n\t/**\n\t* Adds a `limit` clause to the query.\n\t*\n\t* Calling this method will set the maximum number of rows that will be returned by this query.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/select#limit--offset}\n\t*\n\t* @param limit the `limit` clause.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Get the first 10 people from this query.\n\t* await db.select().from(people).limit(10);\n\t* ```\n\t*/\n\tlimit(limit) {\n\t\tif (this.config.setOperators.length > 0) this.config.setOperators.at(-1).limit = limit;\n\t\telse this.config.limit = limit;\n\t\treturn this;\n\t}\n\t/**\n\t* Adds an `offset` clause to the query.\n\t*\n\t* Calling this method will skip a number of rows when returning results from this query.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/select#limit--offset}\n\t*\n\t* @param offset the `offset` clause.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Get the 10th-20th people from this query.\n\t* await db.select().from(people).offset(10).limit(10);\n\t* ```\n\t*/\n\toffset(offset) {\n\t\tif (this.config.setOperators.length > 0) this.config.setOperators.at(-1).offset = offset;\n\t\telse this.config.offset = offset;\n\t\treturn this;\n\t}\n\t$withCache(config) {\n\t\tthis.cacheConfig = config === void 0 ? {\n\t\t\tconfig: {},\n\t\t\tenabled: true,\n\t\t\tautoInvalidate: true\n\t\t} : config === false ? { enabled: false } : {\n\t\t\tenabled: true,\n\t\t\tautoInvalidate: true,\n\t\t\t...config\n\t\t};\n\t\treturn this;\n\t}\n\tgetSQL() {\n\t\tthis.config.fieldsFlat = orderSelectedFields(this.config.fields);\n\t\treturn this.dialect.buildSelectQuery(this.config);\n\t}\n\ttoSQL() {\n\t\treturn this.dialect.sqlToQuery(this.getSQL());\n\t}\n\tas(alias) {\n\t\tconst usedTables = [];\n\t\tusedTables.push(...extractUsedTable(this.config.table));\n\t\tif (this.config.joins) for (const it of this.config.joins) usedTables.push(...extractUsedTable(it.table));\n\t\treturn new Proxy(new Subquery(this.getSQL(), this.config.fields, alias, false, [...new Set(usedTables)]), new SelectionProxyHandler({\n\t\t\talias,\n\t\t\tsqlAliasedBehavior: \"alias\",\n\t\t\tsqlBehavior: \"error\"\n\t\t}));\n\t}\n\t/** @internal */\n\tgetSelectedFields() {\n\t\treturn new Proxy(this.config.fields, new SelectionProxyHandler({\n\t\t\talias: this.tableName,\n\t\t\tsqlAliasedBehavior: \"alias\",\n\t\t\tsqlBehavior: \"error\"\n\t\t}));\n\t}\n\t/** @internal */\n\twithoutSelectionCastCodecs() {\n\t\treturn this;\n\t}\n\t$dynamic() {\n\t\treturn this;\n\t}\n};\nfunction createSetOperator(type, isAll) {\n\treturn (leftSelect, rightSelect, ...restSelects) => {\n\t\tconst setOperators = [rightSelect, ...restSelects].map((select) => ({\n\t\t\ttype,\n\t\t\tisAll,\n\t\t\trightSelect: select\n\t\t}));\n\t\tfor (const setOperator of setOperators) if (!haveSameKeys(leftSelect.getSelectedFields(), setOperator.rightSelect.getSelectedFields())) throw new Error(\"Set operator error (union / intersect / except): selected fields are not the same or are in a different order\");\n\t\treturn leftSelect.addSetOperators(setOperators);\n\t};\n}\nconst getSQLiteSetOperators = () => ({\n\tunion,\n\tunionAll,\n\tintersect,\n\texcept\n});\n/**\n* Adds `union` set operator to the query.\n*\n* Calling this method will combine the result sets of the `select` statements and remove any duplicate rows that appear across them.\n*\n* See docs: {@link https://orm.drizzle.team/docs/set-operations#union}\n*\n* @example\n*\n* ```ts\n* // Select all unique names from customers and users tables\n* import { union } from 'drizzle-orm/sqlite-core'\n*\n* await union(\n* db.select({ name: users.name }).from(users),\n* db.select({ name: customers.name }).from(customers)\n* );\n* // or\n* await db.select({ name: users.name })\n* .from(users)\n* .union(\n* db.select({ name: customers.name }).from(customers)\n* );\n* ```\n*/\nconst union = createSetOperator(\"union\", false);\n/**\n* Adds `union all` set operator to the query.\n*\n* Calling this method will combine the result-set of the `select` statements and keep all duplicate rows that appear across them.\n*\n* See docs: {@link https://orm.drizzle.team/docs/set-operations#union-all}\n*\n* @example\n*\n* ```ts\n* // Select all transaction ids from both online and in-store sales\n* import { unionAll } from 'drizzle-orm/sqlite-core'\n*\n* await unionAll(\n* db.select({ transaction: onlineSales.transactionId }).from(onlineSales),\n* db.select({ transaction: inStoreSales.transactionId }).from(inStoreSales)\n* );\n* // or\n* await db.select({ transaction: onlineSales.transactionId })\n* .from(onlineSales)\n* .unionAll(\n* db.select({ transaction: inStoreSales.transactionId }).from(inStoreSales)\n* );\n* ```\n*/\nconst unionAll = createSetOperator(\"union\", true);\n/**\n* Adds `intersect` set operator to the query.\n*\n* Calling this method will retain only the rows that are present in both result sets and eliminate duplicates.\n*\n* See docs: {@link https://orm.drizzle.team/docs/set-operations#intersect}\n*\n* @example\n*\n* ```ts\n* // Select course names that are offered in both departments A and B\n* import { intersect } from 'drizzle-orm/sqlite-core'\n*\n* await intersect(\n* db.select({ courseName: depA.courseName }).from(depA),\n* db.select({ courseName: depB.courseName }).from(depB)\n* );\n* // or\n* await db.select({ courseName: depA.courseName })\n* .from(depA)\n* .intersect(\n* db.select({ courseName: depB.courseName }).from(depB)\n* );\n* ```\n*/\nconst intersect = createSetOperator(\"intersect\", false);\n/**\n* Adds `except` set operator to the query.\n*\n* Calling this method will retrieve all unique rows from the left query, except for the rows that are present in the result set of the right query.\n*\n* See docs: {@link https://orm.drizzle.team/docs/set-operations#except}\n*\n* @example\n*\n* ```ts\n* // Select all courses offered in department A but not in department B\n* import { except } from 'drizzle-orm/sqlite-core'\n*\n* await except(\n* db.select({ courseName: depA.courseName }).from(depA),\n* db.select({ courseName: depB.courseName }).from(depB)\n* );\n* // or\n* await db.select({ courseName: depA.courseName })\n* .from(depA)\n* .except(\n* db.select({ courseName: depB.courseName }).from(depB)\n* );\n* ```\n*/\nconst except = createSetOperator(\"except\", false);\n\n//#endregion\nexport { SQLiteSelectBase, SQLiteSelectBuilder, except, intersect, union, unionAll };\n//# sourceMappingURL=select.js.map","import { SQLiteViewBase } from \"./view-base.js\";\nimport { entityKind, is } from \"../entity.js\";\nimport { Subquery } from \"../subquery.js\";\nimport { ViewBaseConfig } from \"../view-common.js\";\nimport { Table, TableColumns, getTableName } from \"../table.js\";\nimport { makeDefaultQueryMapper, makeJitQueryMapper, orderSelectedFields } from \"../utils.js\";\nimport { Column } from \"../column.js\";\nimport { Param, SQL, View, sql } from \"../sql/sql.js\";\nimport { aliasedTable, getOriginalColumnFromAlias } from \"../alias.js\";\nimport { DrizzleError } from \"../errors.js\";\nimport { and, isSQLWrapper as isSQLWrapper$1 } from \"../sql/index.js\";\nimport { One, getTableAsAliasSQL, makeDefaultRqbMapper, makeJitRqbMapper, relationExtrasToSQL, relationToSQL, relationsFilterToSQL, relationsOrderToSQL } from \"../relations.js\";\nimport { SQLiteColumn } from \"./columns/index.js\";\nimport { SQLiteTable } from \"./table.js\";\n\n//#region src/sqlite-core/dialect.ts\nvar SQLiteDialect = class {\n\tstatic [entityKind] = \"SQLiteDialect\";\n\tmapperGenerators;\n\tconstructor(config) {\n\t\tthis.mapperGenerators = config?.useJitMappers ? {\n\t\t\trows: makeJitQueryMapper,\n\t\t\trelationalRows: makeJitRqbMapper\n\t\t} : {\n\t\t\trows: makeDefaultQueryMapper,\n\t\t\trelationalRows: makeDefaultRqbMapper\n\t\t};\n\t}\n\tescapeName(name) {\n\t\treturn `\"${name.replace(/\"/g, \"\\\"\\\"\")}\"`;\n\t}\n\tescapeParam(_num) {\n\t\treturn \"?\";\n\t}\n\tescapeString(str) {\n\t\treturn `'${str.replace(/'/g, \"''\")}'`;\n\t}\n\tbuildWithCTE(queries) {\n\t\tif (!queries?.length) return void 0;\n\t\tconst withSqlChunks = [sql`with `];\n\t\tfor (const [i, w] of queries.entries()) {\n\t\t\twithSqlChunks.push(sql`${sql.identifier(w._.alias)} as (${w._.sql})`);\n\t\t\tif (i < queries.length - 1) withSqlChunks.push(sql`, `);\n\t\t}\n\t\twithSqlChunks.push(sql` `);\n\t\treturn sql.join(withSqlChunks);\n\t}\n\tbuildDeleteQuery({ table, where, returning, withList, limit, orderBy }) {\n\t\tconst withSql = this.buildWithCTE(withList);\n\t\tconst returningSql = returning ? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}` : void 0;\n\t\treturn sql`${withSql}delete from ${table}${where ? sql` where ${where}` : void 0}${returningSql}${this.buildOrderBy(orderBy)}${this.buildLimit(limit)}`;\n\t}\n\tbuildUpdateSet(table, set) {\n\t\tconst tableColumns = table[Table.Symbol.Columns];\n\t\tconst columnNames = Object.keys(tableColumns).filter((colName) => set[colName] !== void 0 || tableColumns[colName]?.onUpdateFn !== void 0);\n\t\tconst setLength = columnNames.length;\n\t\treturn sql.join(columnNames.flatMap((colName, i) => {\n\t\t\tconst col = tableColumns[colName];\n\t\t\tconst onUpdateFnResult = col.onUpdateFn?.();\n\t\t\tconst value = set[colName] ?? (is(onUpdateFnResult, SQL) ? onUpdateFnResult : sql.param(onUpdateFnResult, col));\n\t\t\tconst res = sql`${sql.identifier(col.name)} = ${value}`;\n\t\t\tif (i < setLength - 1) return [res, sql.raw(\", \")];\n\t\t\treturn [res];\n\t\t}));\n\t}\n\tbuildUpdateQuery({ table, set, where, returning, withList, joins, from, limit, orderBy }) {\n\t\tconst withSql = this.buildWithCTE(withList);\n\t\tconst setSql = this.buildUpdateSet(table, set);\n\t\tconst fromSql = from && sql.join([sql.raw(\" from \"), this.buildFromTable(from)]);\n\t\tconst joinsSql = this.buildJoins(joins);\n\t\tconst returningSql = returning ? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}` : void 0;\n\t\treturn sql`${withSql}update ${table} set ${setSql}${fromSql}${joinsSql}${where ? sql` where ${where}` : void 0}${returningSql}${this.buildOrderBy(orderBy)}${this.buildLimit(limit)}`;\n\t}\n\t/**\n\t* Builds selection SQL with provided fields/expressions\n\t*\n\t* Examples:\n\t*\n\t* `select <selection> from`\n\t*\n\t* `insert ... returning <selection>`\n\t*\n\t* If `isSingleTable` is true, then columns won't be prefixed with table name\n\t*/\n\tbuildSelection(fields, { isSingleTable = false } = {}) {\n\t\tconst columnsLen = fields.length;\n\t\tconst chunks = fields.flatMap(({ field }, i) => {\n\t\t\tconst chunk = [];\n\t\t\tif (is(field, SQL.Aliased)) if (field.isSelectionField) {\n\t\t\t\tif (!isSingleTable && field.origin !== void 0) chunk.push(sql.identifier(field.origin), sql.raw(\".\"));\n\t\t\t\tchunk.push(sql.identifier(field.fieldAlias));\n\t\t\t} else {\n\t\t\t\tconst query = field.sql;\n\t\t\t\tif (isSingleTable) {\n\t\t\t\t\tconst newSql = new SQL(query.queryChunks.map((c) => {\n\t\t\t\t\t\tif (is(c, Column)) return sql.identifier(c.name);\n\t\t\t\t\t\treturn c;\n\t\t\t\t\t}));\n\t\t\t\t\tchunk.push(query.shouldInlineParams ? newSql.inlineParams() : newSql);\n\t\t\t\t} else chunk.push(query);\n\t\t\t\tchunk.push(sql` as ${sql.identifier(field.fieldAlias)}`);\n\t\t\t}\n\t\t\telse if (is(field, SQL)) {\n\t\t\t\tconst query = field;\n\t\t\t\tif (isSingleTable) {\n\t\t\t\t\tconst newSql = new SQL(query.queryChunks.map((c) => {\n\t\t\t\t\t\tif (is(c, Column)) return sql.identifier(c.name);\n\t\t\t\t\t\treturn c;\n\t\t\t\t\t}));\n\t\t\t\t\tchunk.push(query.shouldInlineParams ? newSql.inlineParams() : newSql);\n\t\t\t\t} else chunk.push(query);\n\t\t\t} else if (is(field, Column)) if (field.columnType === \"SQLiteNumericBigInt\" || field.columnType === \"SQLiteNumeric\") if (isSingleTable) chunk.push(field.isAlias ? sql`cast(${sql.identifier(getOriginalColumnFromAlias(field).name)} as text) as ${field}` : sql`cast(${sql.identifier(field.name)} as text)`);\n\t\t\telse chunk.push(field.isAlias ? sql`cast(${getOriginalColumnFromAlias(field)} as text) as ${field}` : sql`cast(${field} as text)`);\n\t\t\telse if (isSingleTable) chunk.push(field.isAlias ? sql`${sql.identifier(getOriginalColumnFromAlias(field).name)} as ${field}` : sql.identifier(field.name));\n\t\t\telse chunk.push(field.isAlias ? sql`${getOriginalColumnFromAlias(field)} as ${field}` : field);\n\t\t\telse if (is(field, Subquery)) if (!field._.isWith) chunk.push(sql`(${field._.sql}) ${sql.identifier(field._.alias)}`);\n\t\t\telse chunk.push(field);\n\t\t\tif (i < columnsLen - 1) chunk.push(sql`, `);\n\t\t\treturn chunk;\n\t\t});\n\t\treturn sql.join(chunks);\n\t}\n\tbuildJoins(joins) {\n\t\tif (!joins || joins.length === 0) return;\n\t\tconst joinsArray = [];\n\t\tif (joins) for (const [index, joinMeta] of joins.entries()) {\n\t\t\tif (index === 0) joinsArray.push(sql` `);\n\t\t\tconst table = joinMeta.table;\n\t\t\tconst onSql = joinMeta.on ? sql` on ${joinMeta.on}` : void 0;\n\t\t\tif (is(table, SQLiteTable)) {\n\t\t\t\tconst tableName = table[SQLiteTable.Symbol.Name];\n\t\t\t\tconst tableSchema = table[SQLiteTable.Symbol.Schema];\n\t\t\t\tconst origTableName = table[SQLiteTable.Symbol.OriginalName];\n\t\t\t\tconst alias = tableName === origTableName ? void 0 : joinMeta.alias;\n\t\t\t\tjoinsArray.push(sql`${sql.raw(joinMeta.joinType)} join ${tableSchema ? sql`${sql.identifier(tableSchema)}.` : void 0}${sql.identifier(origTableName)}${alias && sql` ${sql.identifier(alias)}`}${onSql}`);\n\t\t\t} else joinsArray.push(sql`${sql.raw(joinMeta.joinType)} join ${table}${onSql}`);\n\t\t\tif (index < joins.length - 1) joinsArray.push(sql` `);\n\t\t}\n\t\treturn sql.join(joinsArray);\n\t}\n\tbuildLimit(limit) {\n\t\treturn typeof limit === \"object\" || typeof limit === \"number\" && limit >= 0 ? sql` limit ${limit}` : void 0;\n\t}\n\tbuildOrderBy(orderBy) {\n\t\tconst orderByList = [];\n\t\tif (orderBy) for (const [index, orderByValue] of orderBy.entries()) {\n\t\t\torderByList.push(orderByValue);\n\t\t\tif (index < orderBy.length - 1) orderByList.push(sql`, `);\n\t\t}\n\t\treturn orderByList.length > 0 ? sql` order by ${sql.join(orderByList)}` : void 0;\n\t}\n\tbuildFromTable(table) {\n\t\tif (is(table, Table) && table[Table.Symbol.IsAlias]) return sql`${sql`${sql.identifier(table[Table.Symbol.Schema] ?? \"\")}.`.if(table[Table.Symbol.Schema])}${sql.identifier(table[Table.Symbol.OriginalName])} ${sql.identifier(table[Table.Symbol.Name])}`;\n\t\tif (is(table, View) && table[ViewBaseConfig].isAlias) {\n\t\t\tlet fullName = sql`${sql.identifier(table[ViewBaseConfig].originalName)}`;\n\t\t\tif (table[ViewBaseConfig].schema) fullName = sql`${sql.identifier(table[ViewBaseConfig].schema)}.${fullName}`;\n\t\t\treturn sql`${fullName} ${sql.identifier(table[ViewBaseConfig].name)}`;\n\t\t}\n\t\treturn table;\n\t}\n\tbuildSelectQuery({ withList, fields, fieldsFlat, where, having, table, joins, orderBy, groupBy, limit, offset, distinct, setOperators }) {\n\t\tconst fieldsList = fieldsFlat ?? orderSelectedFields(fields);\n\t\tfor (const f of fieldsList) if (is(f.field, Column) && getTableName(f.field.table) !== (is(table, Subquery) ? table._.alias : is(table, SQLiteViewBase) ? table[ViewBaseConfig].name : is(table, SQL) ? void 0 : getTableName(table)) && !((table) => joins?.some(({ alias }) => alias === (table[Table.Symbol.IsAlias] ? getTableName(table) : table[Table.Symbol.BaseName])))(f.field.table)) {\n\t\t\tconst tableName = getTableName(f.field.table);\n\t\t\tthrow new Error(`Your \"${f.path.join(\"->\")}\" field references a column \"${tableName}\".\"${f.field.name}\", but the table \"${tableName}\" is not part of the query! Did you forget to join it?`);\n\t\t}\n\t\tconst isSingleTable = !joins || joins.length === 0;\n\t\tconst withSql = this.buildWithCTE(withList);\n\t\tconst distinctSql = distinct ? sql` distinct` : void 0;\n\t\tconst selection = this.buildSelection(fieldsList, { isSingleTable });\n\t\tconst tableSql = this.buildFromTable(table);\n\t\tconst joinsSql = this.buildJoins(joins);\n\t\tconst whereSql = where ? sql` where ${where}` : void 0;\n\t\tconst havingSql = having ? sql` having ${having}` : void 0;\n\t\tconst groupByList = [];\n\t\tif (groupBy) for (const [index, groupByValue] of groupBy.entries()) {\n\t\t\tgroupByList.push(groupByValue);\n\t\t\tif (index < groupBy.length - 1) groupByList.push(sql`, `);\n\t\t}\n\t\tconst finalQuery = sql`${withSql}select${distinctSql} ${selection} from ${tableSql}${joinsSql}${whereSql}${groupByList.length > 0 ? sql` group by ${sql.join(groupByList)}` : void 0}${havingSql}${this.buildOrderBy(orderBy)}${this.buildLimit(limit)}${offset ? sql` offset ${offset}` : void 0}`;\n\t\tif (setOperators.length > 0) return this.buildSetOperations(finalQuery, setOperators);\n\t\treturn finalQuery;\n\t}\n\tbuildSetOperations(leftSelect, setOperators) {\n\t\tconst [setOperator, ...rest] = setOperators;\n\t\tif (!setOperator) throw new Error(\"Cannot pass undefined values to any set operator\");\n\t\tif (rest.length === 0) return this.buildSetOperationQuery({\n\t\t\tleftSelect,\n\t\t\tsetOperator\n\t\t});\n\t\treturn this.buildSetOperations(this.buildSetOperationQuery({\n\t\t\tleftSelect,\n\t\t\tsetOperator\n\t\t}), rest);\n\t}\n\tbuildSetOperationQuery({ leftSelect, setOperator: { type, isAll, rightSelect, limit, orderBy, offset } }) {\n\t\tconst leftChunk = sql`${leftSelect.getSQL()} `;\n\t\tconst rightChunk = sql`${rightSelect.getSQL()}`;\n\t\tlet orderBySql;\n\t\tif (orderBy && orderBy.length > 0) {\n\t\t\tconst orderByValues = [];\n\t\t\tfor (const singleOrderBy of orderBy) if (is(singleOrderBy, SQLiteColumn)) orderByValues.push(sql.identifier(singleOrderBy.name));\n\t\t\telse if (is(singleOrderBy, SQL)) {\n\t\t\t\tfor (let i = 0; i < singleOrderBy.queryChunks.length; i++) {\n\t\t\t\t\tconst chunk = singleOrderBy.queryChunks[i];\n\t\t\t\t\tif (is(chunk, SQLiteColumn)) singleOrderBy.queryChunks[i] = sql.identifier(chunk.name);\n\t\t\t\t}\n\t\t\t\torderByValues.push(sql`${singleOrderBy}`);\n\t\t\t} else orderByValues.push(sql`${singleOrderBy}`);\n\t\t\torderBySql = sql` order by ${sql.join(orderByValues, sql`, `)}`;\n\t\t}\n\t\tconst limitSql = typeof limit === \"object\" || typeof limit === \"number\" && limit >= 0 ? sql` limit ${limit}` : void 0;\n\t\tconst operatorChunk = sql.raw(`${type} ${isAll ? \"all \" : \"\"}`);\n\t\tconst offsetSql = offset ? sql` offset ${offset}` : void 0;\n\t\treturn sql`${leftChunk}${operatorChunk}${rightChunk}${orderBySql}${limitSql}${offsetSql}`;\n\t}\n\tbuildInsertQuery({ table, values: valuesOrSelect, onConflict, returning, withList, select }) {\n\t\tconst valuesSqlList = [];\n\t\tconst columns = table[Table.Symbol.Columns];\n\t\tconst colEntries = Object.entries(columns);\n\t\tconst colEntriesFiltered = select && !is(valuesOrSelect, SQL) ? Object.keys(valuesOrSelect.getSelectedFields()).map((key) => [key, columns[key]]) : colEntries.filter(([_, col]) => !col.shouldDisableInsert());\n\t\tconst insertOrder = colEntriesFiltered.map(([, column]) => sql.identifier(column.name));\n\t\tif (select) {\n\t\t\tconst select = valuesOrSelect;\n\t\t\tif (is(select, SQL)) valuesSqlList.push(select);\n\t\t\telse valuesSqlList.push(select.getSQL());\n\t\t} else {\n\t\t\tconst values = valuesOrSelect;\n\t\t\tvaluesSqlList.push(sql.raw(\"values \"));\n\t\t\tfor (const [valueIndex, value] of values.entries()) {\n\t\t\t\tconst valueList = [];\n\t\t\t\tfor (const [fieldName, col] of colEntriesFiltered) {\n\t\t\t\t\tconst colValue = value[fieldName];\n\t\t\t\t\tif (colValue === void 0 || is(colValue, Param) && colValue.value === void 0) {\n\t\t\t\t\t\tlet defaultValue;\n\t\t\t\t\t\tif (col.default !== null && col.default !== void 0) defaultValue = is(col.default, SQL) ? col.default : sql.param(col.default, col);\n\t\t\t\t\t\telse if (col.defaultFn !== void 0) {\n\t\t\t\t\t\t\tconst defaultFnResult = col.defaultFn();\n\t\t\t\t\t\t\tdefaultValue = is(defaultFnResult, SQL) ? defaultFnResult : sql.param(defaultFnResult, col);\n\t\t\t\t\t\t} else if (!col.default && col.onUpdateFn !== void 0) {\n\t\t\t\t\t\t\tconst onUpdateFnResult = col.onUpdateFn();\n\t\t\t\t\t\t\tdefaultValue = is(onUpdateFnResult, SQL) ? onUpdateFnResult : sql.param(onUpdateFnResult, col);\n\t\t\t\t\t\t} else defaultValue = sql`null`;\n\t\t\t\t\t\tvalueList.push(defaultValue);\n\t\t\t\t\t} else valueList.push(colValue);\n\t\t\t\t}\n\t\t\t\tvaluesSqlList.push(valueList);\n\t\t\t\tif (valueIndex < values.length - 1) valuesSqlList.push(sql`, `);\n\t\t\t}\n\t\t}\n\t\tconst withSql = this.buildWithCTE(withList);\n\t\tconst valuesSql = sql.join(valuesSqlList);\n\t\tconst returningSql = returning ? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}` : void 0;\n\t\treturn sql`${withSql}insert into ${table} ${insertOrder} ${valuesSql}${onConflict?.length ? sql.join(onConflict) : void 0}${returningSql}`;\n\t}\n\tsqlToQuery(sql, invokeSource) {\n\t\treturn sql.toQuery({\n\t\t\tescapeName: this.escapeName,\n\t\t\tescapeParam: this.escapeParam,\n\t\t\tescapeString: this.escapeString,\n\t\t\tinvokeSource\n\t\t});\n\t}\n\tnestedSelectionerror() {\n\t\tthrow new DrizzleError({ message: `Views with nested selections are not supported by the relational query builder` });\n\t}\n\tbuildRqbColumn(table, column, key, inJson) {\n\t\tif (is(column, Column)) {\n\t\t\tconst name = sql`${table}.${sql.identifier(column.name)}`;\n\t\t\tswitch (column.columnType) {\n\t\t\t\tcase \"SQLiteBigInt\":\n\t\t\t\tcase \"SQLiteBlobJson\":\n\t\t\t\tcase \"SQLiteBlobBuffer\":\n\t\t\t\t\tif (!inJson) return sql`${name} as ${sql.identifier(key)}`;\n\t\t\t\t\treturn sql`hex(${name}) as ${sql.identifier(key)}`;\n\t\t\t\tcase \"SQLiteNumeric\":\n\t\t\t\tcase \"SQLiteNumericNumber\":\n\t\t\t\tcase \"SQLiteNumericBigInt\": return sql`cast(${name} as text) as ${sql.identifier(key)}`;\n\t\t\t\tcase \"SQLiteCustomColumn\":\n\t\t\t\t\tif (!inJson) return sql`${name} as ${sql.identifier(key)}`;\n\t\t\t\t\treturn sql`${column.jsonSelectIdentifier(name, sql)} as ${sql.identifier(key)}`;\n\t\t\t\tdefault: return sql`${name} as ${sql.identifier(key)}`;\n\t\t\t}\n\t\t}\n\t\treturn sql`${table}.${is(column, SQL.Aliased) ? sql.identifier(column.fieldAlias) : isSQLWrapper$1(column) ? sql.identifier(key) : this.nestedSelectionerror()} as ${sql.identifier(key)}`;\n\t}\n\tunwrapAllColumns = (table, selection, inJson) => {\n\t\treturn sql.join(Object.entries(table[TableColumns]).map(([k, v]) => {\n\t\t\tselection.push({\n\t\t\t\tkey: k,\n\t\t\t\tfield: v\n\t\t\t});\n\t\t\treturn this.buildRqbColumn(table, v, k, inJson);\n\t\t}), sql`, `);\n\t};\n\tgetSelectedTableColumns = (table, columns) => {\n\t\tconst selectedColumns = [];\n\t\tconst columnContainer = table[TableColumns];\n\t\tconst entries = Object.entries(columns);\n\t\tlet colSelectionMode;\n\t\tfor (const [k, v] of entries) {\n\t\t\tif (v === void 0) continue;\n\t\t\tcolSelectionMode = colSelectionMode || v;\n\t\t\tif (v) {\n\t\t\t\tconst column = columnContainer[k];\n\t\t\t\tselectedColumns.push({\n\t\t\t\t\tcolumn,\n\t\t\t\t\ttsName: k\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tif (colSelectionMode === false) for (const [k, v] of Object.entries(columnContainer)) {\n\t\t\tif (columns[k] === false) continue;\n\t\t\tselectedColumns.push({\n\t\t\t\tcolumn: v,\n\t\t\t\ttsName: k\n\t\t\t});\n\t\t}\n\t\treturn selectedColumns;\n\t};\n\tbuildColumns = (table, selection, inJson, params) => params?.columns ? (() => {\n\t\tconst columnIdentifiers = [];\n\t\tconst selectedColumns = this.getSelectedTableColumns(table, params?.columns);\n\t\tfor (const { column, tsName } of selectedColumns) {\n\t\t\tcolumnIdentifiers.push(this.buildRqbColumn(table, column, tsName, inJson));\n\t\t\tselection.push({\n\t\t\t\tkey: tsName,\n\t\t\t\tfield: column\n\t\t\t});\n\t\t}\n\t\treturn columnIdentifiers.length ? sql.join(columnIdentifiers, sql`, `) : void 0;\n\t})() : this.unwrapAllColumns(table, selection, inJson);\n\tbuildRelationalQuery({ schema, table, tableConfig, queryConfig: config, relationWhere, mode, isNested, errorPath, depth, throughJoin, jsonb }) {\n\t\tconst selection = [];\n\t\tconst isSingle = mode === \"first\";\n\t\tconst params = config === true ? void 0 : config;\n\t\tconst currentPath = errorPath ?? \"\";\n\t\tconst currentDepth = depth ?? 0;\n\t\tif (!currentDepth) table = aliasedTable(table, `d${currentDepth}`);\n\t\tconst limit = isSingle ? 1 : params?.limit;\n\t\tconst offset = params?.offset;\n\t\tconst columns = this.buildColumns(table, selection, !!isNested, params);\n\t\tconst where = params?.where && relationWhere ? and(relationsFilterToSQL(table, params.where, tableConfig.relations, schema), relationWhere) : params?.where ? relationsFilterToSQL(table, params.where, tableConfig.relations, schema) : relationWhere;\n\t\tconst order = params?.orderBy ? relationsOrderToSQL(table, params.orderBy) : void 0;\n\t\tconst extras = params?.extras ? relationExtrasToSQL(table, params.extras) : void 0;\n\t\tif (extras) selection.push(...extras.selection);\n\t\tconst joins = params ? (() => {\n\t\t\tconst { with: joins } = params;\n\t\t\tif (!joins) return;\n\t\t\tconst withEntries = Object.entries(joins).filter(([_, v]) => v);\n\t\t\tif (!withEntries.length) return;\n\t\t\treturn sql.join(withEntries.map(([k, join]) => {\n\t\t\t\tconst relation = tableConfig.relations[k];\n\t\t\t\tconst isSingle = is(relation, One);\n\t\t\t\tconst targetTable = aliasedTable(relation.targetTable, `d${currentDepth + 1}`);\n\t\t\t\tconst throughTable = relation.throughTable ? aliasedTable(relation.throughTable, `tr${currentDepth}`) : void 0;\n\t\t\t\tconst { filter, joinCondition } = relationToSQL(relation, table, targetTable, throughTable);\n\t\t\t\tconst throughJoin = throughTable ? sql` inner join ${getTableAsAliasSQL(throughTable)} on ${joinCondition}` : void 0;\n\t\t\t\tconst innerQuery = this.buildRelationalQuery({\n\t\t\t\t\ttable: targetTable,\n\t\t\t\t\tmode: isSingle ? \"first\" : \"many\",\n\t\t\t\t\tschema,\n\t\t\t\t\tqueryConfig: join,\n\t\t\t\t\ttableConfig: schema[relation.targetTableName],\n\t\t\t\t\trelationWhere: filter,\n\t\t\t\t\tisNested: true,\n\t\t\t\t\terrorPath: `${currentPath.length ? `${currentPath}.` : \"\"}${k}`,\n\t\t\t\t\tdepth: currentDepth + 1,\n\t\t\t\t\tthroughJoin,\n\t\t\t\t\tjsonb\n\t\t\t\t});\n\t\t\t\tselection.push({\n\t\t\t\t\tfield: targetTable,\n\t\t\t\t\tkey: k,\n\t\t\t\t\tselection: innerQuery.selection,\n\t\t\t\t\tisArray: !isSingle,\n\t\t\t\t\tisOptional: (relation.optional ?? false) || join !== true && !!join.where\n\t\t\t\t});\n\t\t\t\tconst jsonColumns = sql.join(innerQuery.selection.map((s) => {\n\t\t\t\t\treturn sql`${sql.raw(this.escapeString(s.key))}, ${s.selection ? sql`${jsonb}(${sql.identifier(s.key)})` : sql.identifier(s.key)}`;\n\t\t\t\t}), sql`, `);\n\t\t\t\tconst json = isNested ? jsonb : sql`json`;\n\t\t\t\treturn isSingle ? sql`(select ${json}_object(${jsonColumns}) as ${sql.identifier(\"r\")} from (${innerQuery.sql}) as ${sql.identifier(\"t\")}) as ${sql.identifier(k)}` : sql`coalesce((select ${json}_group_array(json_object(${jsonColumns})) as ${sql.identifier(\"r\")} from (${innerQuery.sql}) as ${sql.identifier(\"t\")}), ${jsonb}_array()) as ${sql.identifier(k)}`;\n\t\t\t}), sql`, `);\n\t\t})() : void 0;\n\t\tconst selectionArr = [\n\t\t\tcolumns,\n\t\t\textras?.sql,\n\t\t\tjoins\n\t\t].filter((e) => e !== void 0);\n\t\tif (!selectionArr.length) throw new DrizzleError({ message: `No fields selected for table \"${tableConfig.name}\"${currentPath ? ` (\"${currentPath}\")` : \"\"}` });\n\t\treturn {\n\t\t\tsql: sql`select ${sql.join(selectionArr, sql`, `)} from ${getTableAsAliasSQL(table)}${throughJoin}${sql` where ${where}`.if(where)}${sql` order by ${order}`.if(order)}${sql` limit ${limit}`.if(limit !== void 0)}${sql` offset ${offset}`.if(offset !== void 0)}`,\n\t\t\tselection\n\t\t};\n\t}\n};\n\n//#endregion\nexport { SQLiteDialect };\n//# sourceMappingURL=dialect.js.map","import { SQLiteSelectBuilder } from \"./select.js\";\nimport { entityKind, is } from \"../../entity.js\";\nimport { WithSubquery } from \"../../subquery.js\";\nimport { SelectionProxyHandler } from \"../../selection-proxy.js\";\nimport { SQLiteDialect } from \"../dialect.js\";\n\n//#region src/sqlite-core/query-builders/query-builder.ts\nvar QueryBuilder = class {\n\tstatic [entityKind] = \"SQLiteQueryBuilder\";\n\tdialect;\n\tdialectConfig;\n\tconstructor(dialect) {\n\t\tthis.dialect = is(dialect, SQLiteDialect) ? dialect : void 0;\n\t\tthis.dialectConfig = is(dialect, SQLiteDialect) ? void 0 : dialect;\n\t}\n\t$with = (alias, selection) => {\n\t\tconst queryBuilder = this;\n\t\tconst as = (qb) => {\n\t\t\tif (typeof qb === \"function\") qb = qb(queryBuilder);\n\t\t\treturn new Proxy(new WithSubquery(qb.getSQL(), selection ?? (\"getSelectedFields\" in qb ? qb.getSelectedFields() ?? {} : {}), alias, true), new SelectionProxyHandler({\n\t\t\t\talias,\n\t\t\t\tsqlAliasedBehavior: \"alias\",\n\t\t\t\tsqlBehavior: \"error\"\n\t\t\t}));\n\t\t};\n\t\treturn { as };\n\t};\n\twith(...queries) {\n\t\tconst self = this;\n\t\tfunction select(fields) {\n\t\t\treturn new SQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? void 0,\n\t\t\t\tsession: void 0,\n\t\t\t\tdialect: self.getDialect(),\n\t\t\t\twithList: queries\n\t\t\t});\n\t\t}\n\t\tfunction selectDistinct(fields) {\n\t\t\treturn new SQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? void 0,\n\t\t\t\tsession: void 0,\n\t\t\t\tdialect: self.getDialect(),\n\t\t\t\twithList: queries,\n\t\t\t\tdistinct: true\n\t\t\t});\n\t\t}\n\t\treturn {\n\t\t\tselect,\n\t\t\tselectDistinct\n\t\t};\n\t}\n\tselect(fields) {\n\t\treturn new SQLiteSelectBuilder({\n\t\t\tfields: fields ?? void 0,\n\t\t\tsession: void 0,\n\t\t\tdialect: this.getDialect()\n\t\t});\n\t}\n\tselectDistinct(fields) {\n\t\treturn new SQLiteSelectBuilder({\n\t\t\tfields: fields ?? void 0,\n\t\t\tsession: void 0,\n\t\t\tdialect: this.getDialect(),\n\t\t\tdistinct: true\n\t\t});\n\t}\n\tgetDialect() {\n\t\tif (!this.dialect) this.dialect = new SQLiteDialect(this.dialectConfig);\n\t\treturn this.dialect;\n\t}\n};\n\n//#endregion\nexport { QueryBuilder };\n//# sourceMappingURL=query-builder.js.map","import { entityKind } from \"../../entity.js\";\nimport { SQL, sql } from \"../../sql/sql.js\";\n\n//#region src/sqlite-core/query-builders/count.ts\nvar SQLiteCountBuilder = class SQLiteCountBuilder extends SQL {\n\tstatic [entityKind] = \"SQLiteCountBuilder\";\n\tdialect;\n\tsession;\n\tstatic buildCount(source, filters, parens) {\n\t\tconst query = sql`select count(*) from ${source}${sql` where ${filters}`.if(filters)}`;\n\t\treturn parens ? sql`(${query})` : query;\n\t}\n\tconstructor(countConfig) {\n\t\tsuper(SQLiteCountBuilder.buildCount(countConfig.source, countConfig.filters, true).queryChunks);\n\t\tthis.countConfig = countConfig;\n\t\tthis.dialect = countConfig.dialect;\n\t\tthis.session = countConfig.session;\n\t\tthis.mapWith((e) => {\n\t\t\tif (typeof e === \"number\") return e;\n\t\t\treturn Number(e ?? 0);\n\t\t});\n\t}\n\texecutableSql;\n\tbuild() {\n\t\tif (!this.executableSql) {\n\t\t\tconst { source, filters } = this.countConfig;\n\t\t\tthis.executableSql = SQLiteCountBuilder.buildCount(source, filters);\n\t\t}\n\t\treturn this.dialect.sqlToQuery(this.executableSql);\n\t}\n};\n\n//#endregion\nexport { SQLiteCountBuilder };\n//# sourceMappingURL=count.js.map","import { entityKind } from \"../../entity.js\";\nimport { applyMixins } from \"../../utils.js\";\nimport { QueryPromise } from \"../../query-promise.js\";\nimport { SQLiteCountBuilder } from \"../query-builders/count.js\";\n\n//#region src/sqlite-core/async/count.ts\nvar SQLiteAsyncCountBuilder = class extends SQLiteCountBuilder {\n\tstatic [entityKind] = \"SQLiteAsyncCountBuilder\";\n\tconstructor(countConfig) {\n\t\tsuper(countConfig);\n\t}\n\t/** @internal */\n\texecuteRaw(placeholderValues) {\n\t\treturn this.session.prepareQuery(this.build(), \"arrays\", false, \"all\", (rows) => {\n\t\t\tconst v = rows[0]?.[0];\n\t\t\tif (typeof v === \"number\") return v;\n\t\t\treturn v ? Number(v) : 0;\n\t\t}).execute(placeholderValues);\n\t}\n\tasync execute(placeholderValues) {\n\t\treturn await this.executeRaw(placeholderValues);\n\t}\n};\napplyMixins(SQLiteAsyncCountBuilder, [QueryPromise]);\nvar SQLiteSyncCountBuilder = class extends SQLiteAsyncCountBuilder {\n\tstatic [entityKind] = \"SQLiteSyncCountBuilder\";\n\tsync(placeholderValues) {\n\t\treturn this.executeRaw(placeholderValues).sync();\n\t}\n};\n\n//#endregion\nexport { SQLiteAsyncCountBuilder, SQLiteSyncCountBuilder };\n//# sourceMappingURL=count.js.map","import { entityKind } from \"../../entity.js\";\nimport { sql } from \"../../sql/sql.js\";\n\n//#region src/sqlite-core/query-builders/query.ts\nvar RelationalQueryBuilder = class {\n\tstatic [entityKind] = \"SQLiteRelationalQueryBuilderV2\";\n\tconstructor(mode, schema, table, tableConfig, dialect, session, forbidJsonb, builder = SQLiteRelationalQuery) {\n\t\tthis.mode = mode;\n\t\tthis.schema = schema;\n\t\tthis.table = table;\n\t\tthis.tableConfig = tableConfig;\n\t\tthis.dialect = dialect;\n\t\tthis.session = session;\n\t\tthis.forbidJsonb = forbidJsonb;\n\t\tthis.builder = builder;\n\t}\n\tfindMany(config) {\n\t\treturn new this.builder(this.mode, this.schema, this.table, this.tableConfig, this.dialect, this.session, config ?? true, \"many\", this.forbidJsonb);\n\t}\n\tfindFirst(config) {\n\t\treturn new this.builder(this.mode, this.schema, this.table, this.tableConfig, this.dialect, this.session, config ?? true, \"first\", this.forbidJsonb);\n\t}\n};\nvar SQLiteRelationalQuery = class {\n\tstatic [entityKind] = \"SQLiteRelationalQueryV2\";\n\t/** @internal */\n\tmode;\n\t/** @internal */\n\ttable;\n\t/** @internal */\n\tresultKind;\n\tconstructor(resultKind, schema, table, tableConfig, dialect, session, config, mode, forbidJsonb) {\n\t\tthis.schema = schema;\n\t\tthis.tableConfig = tableConfig;\n\t\tthis.dialect = dialect;\n\t\tthis.session = session;\n\t\tthis.config = config;\n\t\tthis.forbidJsonb = forbidJsonb;\n\t\tthis.resultKind = resultKind;\n\t\tthis.mode = mode;\n\t\tthis.table = table;\n\t}\n\tgetSQL() {\n\t\treturn this._getQuery().sql;\n\t}\n\t_getQuery() {\n\t\tconst jsonb = this.forbidJsonb ? sql`json` : sql`jsonb`;\n\t\treturn this.dialect.buildRelationalQuery({\n\t\t\tschema: this.schema,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\tmode: this.mode,\n\t\t\tjsonb\n\t\t});\n\t}\n\t_toSQL() {\n\t\tconst query = this._getQuery();\n\t\treturn {\n\t\t\tquery,\n\t\t\tbuiltQuery: this.dialect.sqlToQuery(query.sql)\n\t\t};\n\t}\n\ttoSQL() {\n\t\treturn this._toSQL().builtQuery;\n\t}\n};\n\n//#endregion\nexport { RelationalQueryBuilder, SQLiteRelationalQuery };\n//# sourceMappingURL=query.js.map","import { entityKind } from \"../../entity.js\";\nimport { applyMixins } from \"../../utils.js\";\nimport { QueryPromise } from \"../../query-promise.js\";\nimport { SQLiteRelationalQuery } from \"../query-builders/query.js\";\n\n//#region src/sqlite-core/async/query.ts\nvar SQLiteAsyncRelationalQuery = class extends SQLiteRelationalQuery {\n\tstatic [entityKind] = \"SQLiteAsyncRelationalQueryV2\";\n\t/** @internal */\n\t_prepare(prepare = false) {\n\t\tconst { query, builtQuery } = this._toSQL();\n\t\tconst mapper = this.dialect.mapperGenerators.relationalRows({\n\t\t\tisFirst: this.mode === \"first\",\n\t\t\tparseJson: true,\n\t\t\tparseJsonIfString: false,\n\t\t\trootJsonMappers: false,\n\t\t\tselection: query.selection,\n\t\t\tarrayModeRoot: true\n\t\t});\n\t\treturn this.session.prepareQuery(builtQuery, \"arrays\", prepare, \"all\", mapper);\n\t}\n\tprepare() {\n\t\treturn this._prepare(true);\n\t}\n\tasync execute(placeholderValues) {\n\t\treturn this._prepare().execute(placeholderValues);\n\t}\n};\nvar SQLiteSyncRelationalQuery = class extends SQLiteAsyncRelationalQuery {\n\tstatic [entityKind] = \"SQLiteSyncRelationalQueryV2\";\n\tsync(placeholderValues) {\n\t\treturn this._prepare().execute(placeholderValues).sync();\n\t}\n};\napplyMixins(SQLiteAsyncRelationalQuery, [QueryPromise]);\n\n//#endregion\nexport { SQLiteAsyncRelationalQuery, SQLiteSyncRelationalQuery };\n//# sourceMappingURL=query.js.map","import { entityKind } from \"../../entity.js\";\nimport { Table } from \"../../table.js\";\nimport { orderSelectedFields } from \"../../utils.js\";\nimport { SelectionProxyHandler } from \"../../selection-proxy.js\";\nimport { SQLiteTable } from \"../table.js\";\n\n//#region src/sqlite-core/query-builders/delete.ts\nvar SQLiteDeleteBase = class {\n\tstatic [entityKind] = \"SQLiteDelete\";\n\t/** @internal */\n\tconfig;\n\tconstructor(table, session, dialect, withList) {\n\t\tthis.table = table;\n\t\tthis.session = session;\n\t\tthis.dialect = dialect;\n\t\tthis.config = {\n\t\t\ttable,\n\t\t\twithList\n\t\t};\n\t}\n\t/**\n\t* Adds a `where` clause to the query.\n\t*\n\t* Calling this method will delete only those rows that fulfill a specified condition.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/delete}\n\t*\n\t* @param where the `where` clause.\n\t*\n\t* @example\n\t* You can use conditional operators and `sql function` to filter the rows to be deleted.\n\t*\n\t* ```ts\n\t* // Delete all cars with green color\n\t* db.delete(cars).where(eq(cars.color, 'green'));\n\t* // or\n\t* db.delete(cars).where(sql`${cars.color} = 'green'`)\n\t* ```\n\t*\n\t* You can logically combine conditional operators with `and()` and `or()` operators:\n\t*\n\t* ```ts\n\t* // Delete all BMW cars with a green color\n\t* db.delete(cars).where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t*\n\t* // Delete all cars with the green or blue color\n\t* db.delete(cars).where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t* ```\n\t*/\n\twhere(where) {\n\t\tthis.config.where = where;\n\t\treturn this;\n\t}\n\torderBy(...columns) {\n\t\tif (typeof columns[0] === \"function\") {\n\t\t\tconst orderBy = columns[0](new Proxy(this.config.table[Table.Symbol.Columns], new SelectionProxyHandler({\n\t\t\t\tsqlAliasedBehavior: \"alias\",\n\t\t\t\tsqlBehavior: \"sql\"\n\t\t\t})));\n\t\t\tconst orderByArray = Array.isArray(orderBy) ? orderBy : [orderBy];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t} else {\n\t\t\tconst orderByArray = columns;\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t}\n\t\treturn this;\n\t}\n\tlimit(limit) {\n\t\tthis.config.limit = limit;\n\t\treturn this;\n\t}\n\treturning(fields = this.table[SQLiteTable.Symbol.Columns]) {\n\t\tthis.config.returning = orderSelectedFields(fields);\n\t\treturn this;\n\t}\n\tgetSQL() {\n\t\treturn this.dialect.buildDeleteQuery(this.config);\n\t}\n\ttoSQL() {\n\t\treturn this.dialect.sqlToQuery(this.getSQL());\n\t}\n\t$dynamic() {\n\t\treturn this;\n\t}\n};\n\n//#endregion\nexport { SQLiteDeleteBase };\n//# sourceMappingURL=delete.js.map","import { extractUsedTable } from \"../utils.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { applyMixins } from \"../../utils.js\";\nimport { QueryPromise } from \"../../query-promise.js\";\nimport { SQLiteDeleteBase } from \"../query-builders/delete.js\";\n\n//#region src/sqlite-core/async/delete.ts\nvar SQLiteAsyncDeleteBase = class extends SQLiteDeleteBase {\n\tstatic [entityKind] = \"SQLiteAsyncDelete\";\n\t/** @internal */\n\t_prepare(prepare = false) {\n\t\treturn this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()), \"arrays\", prepare, this.config.returning ? \"all\" : \"run\", this.config.returning ? this.dialect.mapperGenerators.rows(this.config.returning, void 0) : void 0, {\n\t\t\ttype: \"delete\",\n\t\t\ttables: extractUsedTable(this.config.table)\n\t\t});\n\t}\n\tprepare() {\n\t\treturn this._prepare(true);\n\t}\n\trun = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\tall = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\tget = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\tvalues = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\tasync execute(placeholderValues) {\n\t\treturn this._prepare().execute(placeholderValues);\n\t}\n};\napplyMixins(SQLiteAsyncDeleteBase, [QueryPromise]);\n\n//#endregion\nexport { SQLiteAsyncDeleteBase };\n//# sourceMappingURL=delete.js.map","import { QueryBuilder } from \"./query-builder.js\";\nimport { entityKind, is } from \"../../entity.js\";\nimport { Table } from \"../../table.js\";\nimport { mapUpdateSet, orderSelectedFields } from \"../../utils.js\";\nimport { Param, SQL, sql } from \"../../sql/sql.js\";\nimport { SQLiteTable } from \"../table.js\";\n\n//#region src/sqlite-core/query-builders/insert.ts\nvar SQLiteInsertBuilder = class {\n\tstatic [entityKind] = \"SQLiteInsertBuilder\";\n\tconstructor(table, session, dialect, withList, builder = SQLiteInsertBase) {\n\t\tthis.table = table;\n\t\tthis.session = session;\n\t\tthis.dialect = dialect;\n\t\tthis.withList = withList;\n\t\tthis.builder = builder;\n\t}\n\tvalues(values) {\n\t\tvalues = Array.isArray(values) ? values : [values];\n\t\tif (values.length === 0) throw new Error(\"values() must be called with at least one value\");\n\t\tconst mappedValues = values.map((entry) => {\n\t\t\tconst result = {};\n\t\t\tconst cols = this.table[Table.Symbol.Columns];\n\t\t\tfor (const colKey of Object.keys(entry)) {\n\t\t\t\tconst colValue = entry[colKey];\n\t\t\t\tresult[colKey] = is(colValue, SQL) ? colValue : new Param(colValue, cols[colKey]);\n\t\t\t}\n\t\t\treturn result;\n\t\t});\n\t\treturn new this.builder(this.table, mappedValues, this.session, this.dialect, this.withList);\n\t}\n\tselect(selectQuery) {\n\t\tconst select = typeof selectQuery === \"function\" ? selectQuery(new QueryBuilder()) : selectQuery;\n\t\tif (!is(select, SQL)) {\n\t\t\tconst insertCols = Object.keys(this.table[Table.Symbol.Columns]);\n\t\t\tconst selected = Object.keys(select._.selectedFields);\n\t\t\tfor (const col of selected) if (!insertCols.includes(col)) throw new Error(`Insert select error: column \"${col}\" does not exist in table \"${this.table[Table.Symbol.Name]}\"`);\n\t\t}\n\t\treturn new this.builder(this.table, select, this.session, this.dialect, this.withList, true);\n\t}\n};\nvar SQLiteInsertBase = class {\n\tstatic [entityKind] = \"SQLiteInsert\";\n\t/** @internal */\n\tconfig;\n\tconstructor(table, values, session, dialect, withList, select) {\n\t\tthis.session = session;\n\t\tthis.dialect = dialect;\n\t\tthis.config = {\n\t\t\ttable,\n\t\t\tvalues,\n\t\t\twithList,\n\t\t\tselect\n\t\t};\n\t}\n\treturning(fields = this.config.table[SQLiteTable.Symbol.Columns]) {\n\t\tthis.config.returning = orderSelectedFields(fields);\n\t\treturn this;\n\t}\n\t/**\n\t* Adds an `on conflict do nothing` clause to the query.\n\t*\n\t* Calling this method simply avoids inserting a row as its alternative action.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/insert#on-conflict-do-nothing}\n\t*\n\t* @param config The `target` and `where` clauses.\n\t*\n\t* @example\n\t* ```ts\n\t* // Insert one row and cancel the insert if there's a conflict\n\t* await db.insert(cars)\n\t* .values({ id: 1, brand: 'BMW' })\n\t* .onConflictDoNothing();\n\t*\n\t* // Explicitly specify conflict target\n\t* await db.insert(cars)\n\t* .values({ id: 1, brand: 'BMW' })\n\t* .onConflictDoNothing({ target: cars.id });\n\t* ```\n\t*/\n\tonConflictDoNothing(config = {}) {\n\t\tif (!this.config.onConflict) this.config.onConflict = [];\n\t\tif (config.target === void 0) this.config.onConflict.push(sql` on conflict do nothing`);\n\t\telse {\n\t\t\tconst targetSql = Array.isArray(config.target) ? sql`${config.target}` : sql`${[config.target]}`;\n\t\t\tconst whereSql = config.where ? sql` where ${config.where}` : sql``;\n\t\t\tthis.config.onConflict.push(sql` on conflict ${targetSql} do nothing${whereSql}`);\n\t\t}\n\t\treturn this;\n\t}\n\t/**\n\t* Adds an `on conflict do update` clause to the query.\n\t*\n\t* Calling this method will update the existing row that conflicts with the row proposed for insertion as its alternative action.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/insert#upserts-and-conflicts}\n\t*\n\t* @param config The `target`, `set` and `where` clauses.\n\t*\n\t* @example\n\t* ```ts\n\t* // Update the row if there's a conflict\n\t* await db.insert(cars)\n\t* .values({ id: 1, brand: 'BMW' })\n\t* .onConflictDoUpdate({\n\t* target: cars.id,\n\t* set: { brand: 'Porsche' }\n\t* });\n\t*\n\t* // Upsert with 'where' clause\n\t* await db.insert(cars)\n\t* .values({ id: 1, brand: 'BMW' })\n\t* .onConflictDoUpdate({\n\t* target: cars.id,\n\t* set: { brand: 'newBMW' },\n\t* where: sql`${cars.createdAt} > '2023-01-01'::date`,\n\t* });\n\t* ```\n\t*/\n\tonConflictDoUpdate(config) {\n\t\tif (config.where && (config.targetWhere || config.setWhere)) throw new Error(\"You cannot use both \\\"where\\\" and \\\"targetWhere\\\"/\\\"setWhere\\\" at the same time - \\\"where\\\" is deprecated, use \\\"targetWhere\\\" or \\\"setWhere\\\" instead.\");\n\t\tif (!this.config.onConflict) this.config.onConflict = [];\n\t\tconst whereSql = config.where ? sql` where ${config.where}` : void 0;\n\t\tconst targetWhereSql = config.targetWhere ? sql` where ${config.targetWhere}` : void 0;\n\t\tconst setWhereSql = config.setWhere ? sql` where ${config.setWhere}` : void 0;\n\t\tconst targetSql = Array.isArray(config.target) ? sql`${config.target}` : sql`${[config.target]}`;\n\t\tconst setSql = this.dialect.buildUpdateSet(this.config.table, mapUpdateSet(this.config.table, config.set));\n\t\tthis.config.onConflict.push(sql` on conflict ${targetSql}${targetWhereSql} do update set ${setSql}${whereSql}${setWhereSql}`);\n\t\treturn this;\n\t}\n\tgetSQL() {\n\t\treturn this.dialect.buildInsertQuery(this.config);\n\t}\n\ttoSQL() {\n\t\treturn this.dialect.sqlToQuery(this.getSQL());\n\t}\n\t$dynamic() {\n\t\treturn this;\n\t}\n};\n\n//#endregion\nexport { SQLiteInsertBase, SQLiteInsertBuilder };\n//# sourceMappingURL=insert.js.map","import { extractUsedTable } from \"../utils.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { applyMixins } from \"../../utils.js\";\nimport { QueryPromise } from \"../../query-promise.js\";\nimport { SQLiteInsertBase } from \"../query-builders/insert.js\";\n\n//#region src/sqlite-core/async/insert.ts\nvar SQLiteAsyncInsertBase = class extends SQLiteInsertBase {\n\tstatic [entityKind] = \"SQLiteAsyncInsert\";\n\t/** @internal */\n\t_prepare(prepare = false) {\n\t\treturn this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()), \"arrays\", prepare, this.config.returning ? \"all\" : \"run\", this.config.returning ? this.dialect.mapperGenerators.rows(this.config.returning, void 0) : void 0, {\n\t\t\ttype: \"insert\",\n\t\t\ttables: extractUsedTable(this.config.table)\n\t\t});\n\t}\n\tprepare() {\n\t\treturn this._prepare(true);\n\t}\n\trun = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\tall = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\tget = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\tvalues = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\tasync execute() {\n\t\treturn this._prepare().execute();\n\t}\n};\napplyMixins(SQLiteAsyncInsertBase, [QueryPromise]);\n\n//#endregion\nexport { SQLiteAsyncInsertBase };\n//# sourceMappingURL=insert.js.map","import { entityKind } from \"../../entity.js\";\n\n//#region src/sqlite-core/query-builders/raw.ts\nvar SQLiteRaw = class {\n\tstatic [entityKind] = \"SQLiteRaw\";\n\tconstructor(prepared, sql, query) {\n\t\tthis.prepared = prepared;\n\t\tthis.sql = sql;\n\t\tthis.query = query;\n\t}\n\tgetSQL() {\n\t\treturn this.sql;\n\t}\n\tgetQuery() {\n\t\treturn this.query;\n\t}\n\t_prepare() {\n\t\treturn this.prepared;\n\t}\n};\n\n//#endregion\nexport { SQLiteRaw };\n//# sourceMappingURL=raw.js.map","import { entityKind } from \"../../entity.js\";\nimport { applyMixins } from \"../../utils.js\";\nimport { QueryPromise } from \"../../query-promise.js\";\nimport { SQLiteRaw } from \"../query-builders/raw.js\";\n\n//#region src/sqlite-core/async/raw.ts\nvar SQLiteAsyncRaw = class extends SQLiteRaw {\n\tstatic [entityKind] = \"SQLiteAsyncRaw\";\n\tconstructor(prepared, sql, query) {\n\t\tsuper(prepared, sql, query);\n\t}\n\texecute(placeholderValues) {\n\t\treturn this.prepared.execute(placeholderValues);\n\t}\n};\napplyMixins(SQLiteAsyncRaw, [QueryPromise]);\n\n//#endregion\nexport { SQLiteAsyncRaw };\n//# sourceMappingURL=raw.js.map","import { entityKind } from \"../../entity.js\";\nimport { applyMixins } from \"../../utils.js\";\nimport { QueryPromise } from \"../../query-promise.js\";\nimport { SQLiteSelectBase } from \"../query-builders/select.js\";\n\n//#region src/sqlite-core/async/select.ts\nvar SQLiteAsyncSelectBase = class extends SQLiteSelectBase {\n\tstatic [entityKind] = \"SQLiteAsyncSelect\";\n\t/** @internal */\n\t_prepare(prepare = false) {\n\t\tconst query = this.dialect.sqlToQuery(this.getSQL());\n\t\tconst fieldsList = this.config.fieldsFlat;\n\t\tconst mapper = this.dialect.mapperGenerators.rows(fieldsList, this.joinsNotNullableMap);\n\t\treturn this.session.prepareQuery(query, \"arrays\", prepare, \"all\", mapper, {\n\t\t\ttype: \"select\",\n\t\t\ttables: [...this.usedTables]\n\t\t}, this.cacheConfig);\n\t}\n\tprepare() {\n\t\treturn this._prepare(true);\n\t}\n\trun = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\tall = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\tget = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\tvalues = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\tasync execute() {\n\t\treturn this._prepare().execute();\n\t}\n};\napplyMixins(SQLiteAsyncSelectBase, [QueryPromise]);\n\n//#endregion\nexport { SQLiteAsyncSelectBase };\n//# sourceMappingURL=select.js.map","import { SQLiteViewBase } from \"../view-base.js\";\nimport { entityKind, is } from \"../../entity.js\";\nimport { Subquery } from \"../../subquery.js\";\nimport { ViewBaseConfig } from \"../../view-common.js\";\nimport { Table } from \"../../table.js\";\nimport { getTableLikeName, mapUpdateSet, orderSelectedFields } from \"../../utils.js\";\nimport { SelectionProxyHandler } from \"../../selection-proxy.js\";\nimport { SQLiteTable } from \"../table.js\";\n\n//#region src/sqlite-core/query-builders/update.ts\nvar SQLiteUpdateBuilder = class {\n\tstatic [entityKind] = \"SQLiteUpdateBuilder\";\n\tconstructor(table, session, dialect, withList, builder = SQLiteUpdateBase) {\n\t\tthis.table = table;\n\t\tthis.session = session;\n\t\tthis.dialect = dialect;\n\t\tthis.withList = withList;\n\t\tthis.builder = builder;\n\t}\n\tset(values) {\n\t\treturn new this.builder(this.table, mapUpdateSet(this.table, values), this.session, this.dialect, this.withList);\n\t}\n};\nvar SQLiteUpdateBase = class {\n\tstatic [entityKind] = \"SQLiteUpdate\";\n\t/** @internal */\n\tconfig;\n\tconstructor(table, set, session, dialect, withList) {\n\t\tthis.session = session;\n\t\tthis.dialect = dialect;\n\t\tthis.config = {\n\t\t\tset,\n\t\t\ttable,\n\t\t\twithList,\n\t\t\tjoins: []\n\t\t};\n\t}\n\tfrom(source) {\n\t\tthis.config.from = source;\n\t\treturn this;\n\t}\n\tcreateJoin(joinType) {\n\t\treturn ((table, on) => {\n\t\t\tconst tableName = getTableLikeName(table);\n\t\t\tif (typeof tableName === \"string\" && this.config.joins.some((join) => join.alias === tableName)) throw new Error(`Alias \"${tableName}\" is already used in this query`);\n\t\t\tif (typeof on === \"function\") {\n\t\t\t\tconst from = this.config.from ? is(table, SQLiteTable) ? table[Table.Symbol.Columns] : is(table, Subquery) ? table._.selectedFields : is(table, SQLiteViewBase) ? table[ViewBaseConfig].selectedFields : void 0 : void 0;\n\t\t\t\ton = on(new Proxy(this.config.table[Table.Symbol.Columns], new SelectionProxyHandler({\n\t\t\t\t\tsqlAliasedBehavior: \"sql\",\n\t\t\t\t\tsqlBehavior: \"sql\"\n\t\t\t\t})), from && new Proxy(from, new SelectionProxyHandler({\n\t\t\t\t\tsqlAliasedBehavior: \"sql\",\n\t\t\t\t\tsqlBehavior: \"sql\"\n\t\t\t\t})));\n\t\t\t}\n\t\t\tthis.config.joins.push({\n\t\t\t\ton,\n\t\t\t\ttable,\n\t\t\t\tjoinType,\n\t\t\t\talias: tableName\n\t\t\t});\n\t\t\treturn this;\n\t\t});\n\t}\n\tleftJoin = this.createJoin(\"left\");\n\trightJoin = this.createJoin(\"right\");\n\tinnerJoin = this.createJoin(\"inner\");\n\tfullJoin = this.createJoin(\"full\");\n\t/**\n\t* Adds a 'where' clause to the query.\n\t*\n\t* Calling this method will update only those rows that fulfill a specified condition.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/update}\n\t*\n\t* @param where the 'where' clause.\n\t*\n\t* @example\n\t* You can use conditional operators and `sql function` to filter the rows to be updated.\n\t*\n\t* ```ts\n\t* // Update all cars with green color\n\t* db.update(cars).set({ color: 'red' })\n\t* .where(eq(cars.color, 'green'));\n\t* // or\n\t* db.update(cars).set({ color: 'red' })\n\t* .where(sql`${cars.color} = 'green'`)\n\t* ```\n\t*\n\t* You can logically combine conditional operators with `and()` and `or()` operators:\n\t*\n\t* ```ts\n\t* // Update all BMW cars with a green color\n\t* db.update(cars).set({ color: 'red' })\n\t* .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t*\n\t* // Update all cars with the green or blue color\n\t* db.update(cars).set({ color: 'red' })\n\t* .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t* ```\n\t*/\n\twhere(where) {\n\t\tthis.config.where = where;\n\t\treturn this;\n\t}\n\torderBy(...columns) {\n\t\tif (typeof columns[0] === \"function\") {\n\t\t\tconst orderBy = columns[0](new Proxy(this.config.table[Table.Symbol.Columns], new SelectionProxyHandler({\n\t\t\t\tsqlAliasedBehavior: \"alias\",\n\t\t\t\tsqlBehavior: \"sql\"\n\t\t\t})));\n\t\t\tconst orderByArray = Array.isArray(orderBy) ? orderBy : [orderBy];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t} else {\n\t\t\tconst orderByArray = columns;\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t}\n\t\treturn this;\n\t}\n\tlimit(limit) {\n\t\tthis.config.limit = limit;\n\t\treturn this;\n\t}\n\treturning(fields = this.config.table[SQLiteTable.Symbol.Columns]) {\n\t\tthis.config.returning = orderSelectedFields(fields);\n\t\treturn this;\n\t}\n\tgetSQL() {\n\t\treturn this.dialect.buildUpdateQuery(this.config);\n\t}\n\ttoSQL() {\n\t\treturn this.dialect.sqlToQuery(this.getSQL());\n\t}\n\t$dynamic() {\n\t\treturn this;\n\t}\n};\n\n//#endregion\nexport { SQLiteUpdateBase, SQLiteUpdateBuilder };\n//# sourceMappingURL=update.js.map","import { extractUsedTable } from \"../utils.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { applyMixins } from \"../../utils.js\";\nimport { QueryPromise } from \"../../query-promise.js\";\nimport { SQLiteUpdateBase } from \"../query-builders/update.js\";\n\n//#region src/sqlite-core/async/update.ts\nvar SQLiteAsyncUpdateBase = class extends SQLiteUpdateBase {\n\tstatic [entityKind] = \"SQLiteAsyncUpdate\";\n\t/** @internal */\n\t_prepare(prepare = false) {\n\t\treturn this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()), \"arrays\", prepare, this.config.returning ? \"all\" : \"run\", this.config.returning ? this.dialect.mapperGenerators.rows(this.config.returning, void 0) : void 0, {\n\t\t\ttype: \"update\",\n\t\t\ttables: extractUsedTable(this.config.table)\n\t\t});\n\t}\n\tprepare() {\n\t\treturn this._prepare(true);\n\t}\n\trun = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\tall = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\tget = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\tvalues = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\tasync execute() {\n\t\treturn this.config.returning ? this.all() : this.run();\n\t}\n};\napplyMixins(SQLiteAsyncUpdateBase, [QueryPromise]);\n\n//#endregion\nexport { SQLiteAsyncUpdateBase };\n//# sourceMappingURL=update.js.map","import { SQLiteAsyncCountBuilder, SQLiteSyncCountBuilder } from \"./count.js\";\nimport { RelationalQueryBuilder } from \"../query-builders/query.js\";\nimport { SQLiteAsyncRelationalQuery, SQLiteSyncRelationalQuery } from \"./query.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { WithSubquery } from \"../../subquery.js\";\nimport { sql } from \"../../sql/sql.js\";\nimport { SelectionProxyHandler } from \"../../selection-proxy.js\";\nimport { SQLiteAsyncDeleteBase } from \"./delete.js\";\nimport { SQLiteAsyncInsertBase } from \"./insert.js\";\nimport { SQLiteAsyncRaw } from \"./raw.js\";\nimport { SQLiteAsyncSelectBase } from \"./select.js\";\nimport { SQLiteAsyncUpdateBase } from \"./update.js\";\nimport { QueryBuilder, SQLiteInsertBuilder, SQLiteSelectBuilder, SQLiteUpdateBuilder } from \"../query-builders/index.js\";\n\n//#region src/sqlite-core/async/db.ts\nvar SQLiteAsyncDatabase = class {\n\tstatic [entityKind] = \"BaseSQLiteDatabase\";\n\tquery;\n\tconstructor(resultKind, dialect, session, relations, forbidJsonb) {\n\t\tthis.resultKind = resultKind;\n\t\tthis.dialect = dialect;\n\t\tthis.session = session;\n\t\tthis.forbidJsonb = forbidJsonb;\n\t\tthis._ = {\n\t\t\trelations,\n\t\t\tsession,\n\t\t\tresultKind\n\t\t};\n\t\tthis.query = {};\n\t\tfor (const [tableName, relation] of Object.entries(relations)) this.query[tableName] = new RelationalQueryBuilder(resultKind, relations, relations[relation.name].table, relation, dialect, session, forbidJsonb, resultKind === \"sync\" ? SQLiteSyncRelationalQuery : SQLiteAsyncRelationalQuery);\n\t\tthis.$cache = { invalidate: async (_params) => {} };\n\t}\n\t/**\n\t* Creates a subquery that defines a temporary named result set as a CTE.\n\t*\n\t* It is useful for breaking down complex queries into simpler parts and for reusing the result set in subsequent parts of the query.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t*\n\t* @param alias The alias for the subquery.\n\t*\n\t* Failure to provide an alias will result in a DrizzleTypeError, preventing the subquery from being referenced in other queries.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Create a subquery with alias 'sq' and use it in the select query\n\t* const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t*\n\t* const result = await db.with(sq).select().from(sq);\n\t* ```\n\t*\n\t* To select arbitrary SQL values as fields in a CTE and reference them in other CTEs or in the main query, you need to add aliases to them:\n\t*\n\t* ```ts\n\t* // Select an arbitrary SQL value as a field in a CTE and reference it in the main query\n\t* const sq = db.$with('sq').as(db.select({\n\t* name: sql<string>`upper(${users.name})`.as('name'),\n\t* })\n\t* .from(users));\n\t*\n\t* const result = await db.with(sq).select({ name: sq.name }).from(sq);\n\t* ```\n\t*/\n\t$with = (alias, selection) => {\n\t\tconst self = this;\n\t\tconst as = (qb) => {\n\t\t\tif (typeof qb === \"function\") qb = qb(new QueryBuilder(self.dialect));\n\t\t\treturn new Proxy(new WithSubquery(qb.getSQL(), selection ?? (\"getSelectedFields\" in qb ? qb.getSelectedFields() ?? {} : {}), alias, true), new SelectionProxyHandler({\n\t\t\t\talias,\n\t\t\t\tsqlAliasedBehavior: \"alias\",\n\t\t\t\tsqlBehavior: \"error\"\n\t\t\t}));\n\t\t};\n\t\treturn { as };\n\t};\n\t$count(source, filters) {\n\t\treturn this.resultKind === \"async\" ? new SQLiteAsyncCountBuilder({\n\t\t\tsource,\n\t\t\tfilters,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect\n\t\t}) : new SQLiteSyncCountBuilder({\n\t\t\tsource,\n\t\t\tfilters,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect\n\t\t});\n\t}\n\t/**\n\t* Incorporates a previously defined CTE (using `$with`) into the main query.\n\t*\n\t* This method allows the main query to reference a temporary named result set.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t*\n\t* @param queries The CTEs to incorporate into the main query.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Define a subquery 'sq' as a CTE using $with\n\t* const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t*\n\t* // Incorporate the CTE 'sq' into the main query and select from it\n\t* const result = await db.with(sq).select().from(sq);\n\t* ```\n\t*/\n\twith(...queries) {\n\t\tconst self = this;\n\t\tfunction select(fields) {\n\t\t\treturn new SQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? void 0,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries\n\t\t\t}, SQLiteAsyncSelectBase);\n\t\t}\n\t\tfunction selectDistinct(fields) {\n\t\t\treturn new SQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? void 0,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t\tdistinct: true\n\t\t\t}, SQLiteAsyncSelectBase);\n\t\t}\n\t\t/**\n\t\t* Creates an update query.\n\t\t*\n\t\t* Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t\t*\n\t\t* Use `.set()` method to specify which values to update.\n\t\t*\n\t\t* See docs: {@link https://orm.drizzle.team/docs/update}\n\t\t*\n\t\t* @param table The table to update.\n\t\t*\n\t\t* @example\n\t\t*\n\t\t* ```ts\n\t\t* // Update all rows in the 'cars' table\n\t\t* await db.update(cars).set({ color: 'red' });\n\t\t*\n\t\t* // Update rows with filters and conditions\n\t\t* await db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t\t*\n\t\t* // Update with returning clause\n\t\t* const updatedCar: Car[] = await db.update(cars)\n\t\t* .set({ color: 'red' })\n\t\t* .where(eq(cars.id, 1))\n\t\t* .returning();\n\t\t* ```\n\t\t*/\n\t\tfunction update(table) {\n\t\t\treturn new SQLiteUpdateBuilder(table, self.session, self.dialect, queries, SQLiteAsyncUpdateBase);\n\t\t}\n\t\t/**\n\t\t* Creates an insert query.\n\t\t*\n\t\t* Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t\t*\n\t\t* See docs: {@link https://orm.drizzle.team/docs/insert}\n\t\t*\n\t\t* @param table The table to insert into.\n\t\t*\n\t\t* @example\n\t\t*\n\t\t* ```ts\n\t\t* // Insert one row\n\t\t* await db.insert(cars).values({ brand: 'BMW' });\n\t\t*\n\t\t* // Insert multiple rows\n\t\t* await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t\t*\n\t\t* // Insert with returning clause\n\t\t* const insertedCar: Car[] = await db.insert(cars)\n\t\t* .values({ brand: 'BMW' })\n\t\t* .returning();\n\t\t* ```\n\t\t*/\n\t\tfunction insert(into) {\n\t\t\treturn new SQLiteInsertBuilder(into, self.session, self.dialect, queries, SQLiteAsyncInsertBase);\n\t\t}\n\t\t/**\n\t\t* Creates a delete query.\n\t\t*\n\t\t* Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t\t*\n\t\t* See docs: {@link https://orm.drizzle.team/docs/delete}\n\t\t*\n\t\t* @param table The table to delete from.\n\t\t*\n\t\t* @example\n\t\t*\n\t\t* ```ts\n\t\t* // Delete all rows in the 'cars' table\n\t\t* await db.delete(cars);\n\t\t*\n\t\t* // Delete rows with filters and conditions\n\t\t* await db.delete(cars).where(eq(cars.color, 'green'));\n\t\t*\n\t\t* // Delete with returning clause\n\t\t* const deletedCar: Car[] = await db.delete(cars)\n\t\t* .where(eq(cars.id, 1))\n\t\t* .returning();\n\t\t* ```\n\t\t*/\n\t\tfunction delete_(from) {\n\t\t\treturn new SQLiteAsyncDeleteBase(from, self.session, self.dialect, queries);\n\t\t}\n\t\treturn {\n\t\t\tselect,\n\t\t\tselectDistinct,\n\t\t\tupdate,\n\t\t\tinsert,\n\t\t\tdelete: delete_\n\t\t};\n\t}\n\tselect(fields) {\n\t\treturn new SQLiteSelectBuilder({\n\t\t\tfields: fields ?? void 0,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect\n\t\t}, SQLiteAsyncSelectBase);\n\t}\n\tselectDistinct(fields) {\n\t\treturn new SQLiteSelectBuilder({\n\t\t\tfields: fields ?? void 0,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t\tdistinct: true\n\t\t}, SQLiteAsyncSelectBase);\n\t}\n\t/**\n\t* Creates an update query.\n\t*\n\t* Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t*\n\t* Use `.set()` method to specify which values to update.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/update}\n\t*\n\t* @param table The table to update.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Update all rows in the 'cars' table\n\t* await db.update(cars).set({ color: 'red' });\n\t*\n\t* // Update rows with filters and conditions\n\t* await db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t*\n\t* // Update with returning clause\n\t* const updatedCar: Car[] = await db.update(cars)\n\t* .set({ color: 'red' })\n\t* .where(eq(cars.id, 1))\n\t* .returning();\n\t* ```\n\t*/\n\tupdate(table) {\n\t\treturn new SQLiteUpdateBuilder(table, this.session, this.dialect, void 0, SQLiteAsyncUpdateBase);\n\t}\n\t$cache;\n\t/**\n\t* Creates an insert query.\n\t*\n\t* Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/insert}\n\t*\n\t* @param table The table to insert into.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Insert one row\n\t* await db.insert(cars).values({ brand: 'BMW' });\n\t*\n\t* // Insert multiple rows\n\t* await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t*\n\t* // Insert with returning clause\n\t* const insertedCar: Car[] = await db.insert(cars)\n\t* .values({ brand: 'BMW' })\n\t* .returning();\n\t* ```\n\t*/\n\tinsert(into) {\n\t\treturn new SQLiteInsertBuilder(into, this.session, this.dialect, void 0, SQLiteAsyncInsertBase);\n\t}\n\t/**\n\t* Creates a delete query.\n\t*\n\t* Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t*\n\t* See docs: {@link https://orm.drizzle.team/docs/delete}\n\t*\n\t* @param table The table to delete from.\n\t*\n\t* @example\n\t*\n\t* ```ts\n\t* // Delete all rows in the 'cars' table\n\t* await db.delete(cars);\n\t*\n\t* // Delete rows with filters and conditions\n\t* await db.delete(cars).where(eq(cars.color, 'green'));\n\t*\n\t* // Delete with returning clause\n\t* const deletedCar: Car[] = await db.delete(cars)\n\t* .where(eq(cars.id, 1))\n\t* .returning();\n\t* ```\n\t*/\n\tdelete(from) {\n\t\treturn new SQLiteAsyncDeleteBase(from, this.session, this.dialect);\n\t}\n\trun(query) {\n\t\tconst sequel = typeof query === \"string\" ? sql.raw(query) : query.getSQL();\n\t\tconst builtQuery = this.dialect.sqlToQuery(sequel);\n\t\tconst prepared = this.session.prepareQuery(builtQuery, \"raw\", false, \"run\");\n\t\tif (this.resultKind === \"async\") return new SQLiteAsyncRaw(prepared, sequel, builtQuery);\n\t\treturn this.session.run(sequel);\n\t}\n\tall(query) {\n\t\tconst sequel = typeof query === \"string\" ? sql.raw(query) : query.getSQL();\n\t\tconst builtQuery = this.dialect.sqlToQuery(sequel);\n\t\tconst prepared = this.session.prepareQuery(builtQuery, \"objects\", false, \"all\");\n\t\tif (this.resultKind === \"async\") return new SQLiteAsyncRaw(prepared, sequel, builtQuery);\n\t\treturn this.session.objects(sequel);\n\t}\n\tget(query) {\n\t\tconst sequel = typeof query === \"string\" ? sql.raw(query) : query.getSQL();\n\t\tconst builtQuery = this.dialect.sqlToQuery(sequel);\n\t\tconst prepared = this.session.prepareQuery(builtQuery, \"objects\", false, \"get\");\n\t\tif (this.resultKind === \"async\") return new SQLiteAsyncRaw(prepared, sequel, builtQuery);\n\t\treturn this.session.object(sequel);\n\t}\n\tvalues(query) {\n\t\tconst sequel = typeof query === \"string\" ? sql.raw(query) : query.getSQL();\n\t\tconst builtQuery = this.dialect.sqlToQuery(sequel);\n\t\tconst prepared = this.session.prepareQuery(builtQuery, \"objects\", false, \"values\");\n\t\tif (this.resultKind === \"async\") return new SQLiteAsyncRaw(prepared, sequel, builtQuery);\n\t\treturn this.session.arrays(sequel);\n\t}\n\ttransaction(transaction, config) {\n\t\treturn this.session.transaction(transaction, config);\n\t}\n};\nconst withReplicas = (primary, replicas, getReplica = () => replicas[Math.floor(Math.random() * replicas.length)]) => {\n\tconst select = (...args) => getReplica(replicas).select(...args);\n\tconst selectDistinct = (...args) => getReplica(replicas).selectDistinct(...args);\n\tconst $count = (...args) => getReplica(replicas).$count(...args);\n\tconst $with = (...args) => getReplica(replicas).with(...args);\n\tconst update = (...args) => primary.update(...args);\n\tconst insert = (...args) => primary.insert(...args);\n\tconst $delete = (...args) => primary.delete(...args);\n\tconst run = (...args) => primary.run(...args);\n\tconst all = (...args) => primary.all(...args);\n\tconst get = (...args) => primary.get(...args);\n\tconst values = (...args) => primary.values(...args);\n\tconst transaction = (...args) => primary.transaction(...args);\n\treturn {\n\t\t...primary,\n\t\tupdate,\n\t\tinsert,\n\t\tdelete: $delete,\n\t\trun,\n\t\tall,\n\t\tget,\n\t\tvalues,\n\t\ttransaction,\n\t\t$primary: primary,\n\t\t$replicas: replicas,\n\t\tselect,\n\t\tselectDistinct,\n\t\t$count,\n\t\twith: $with,\n\t\tget query() {\n\t\t\treturn getReplica(replicas).query;\n\t\t}\n\t};\n};\n\n//#endregion\nexport { SQLiteAsyncDatabase, withReplicas };\n//# sourceMappingURL=db.js.map","//#region src/up-migrations/utils.ts\nconst MIGRATIONS_TABLE_VERSIONS = {\n\tsqlite: 1,\n\tpg: 1,\n\teffect: 1,\n\tmysql: 1,\n\tmssql: 1,\n\tcockroach: 1,\n\tsinglestore: 1\n};\nconst GET_VERSION_FOR = {\n\tmysql: (columns) => {\n\t\tif (columns.includes(\"name\")) return 1;\n\t\treturn 0;\n\t},\n\tpg: (columns) => {\n\t\tif (columns.includes(\"name\")) return 1;\n\t\treturn 0;\n\t},\n\teffect: (columns) => {\n\t\tif (columns.includes(\"name\")) return 1;\n\t\treturn 0;\n\t},\n\tmssql: (columns) => {\n\t\tif (columns.includes(\"name\")) return 1;\n\t\treturn 0;\n\t},\n\tcockroach: (columns) => {\n\t\tif (columns.includes(\"name\")) return 1;\n\t\treturn 0;\n\t},\n\tsinglestore: (columns) => {\n\t\tif (columns.includes(\"name\")) return 1;\n\t\treturn 0;\n\t},\n\tsqlite: (columns) => {\n\t\tif (columns.includes(\"name\")) return 1;\n\t\treturn 0;\n\t}\n};\n\n//#endregion\nexport { GET_VERSION_FOR, MIGRATIONS_TABLE_VERSIONS };\n//# sourceMappingURL=utils.js.map","import { GET_VERSION_FOR, MIGRATIONS_TABLE_VERSIONS } from \"./utils.js\";\nimport { sql } from \"../sql/sql.js\";\n\n//#region src/up-migrations/sqlite.ts\n/**\n* Detects the current version of the migrations table schema and upgrades it if needed.\n*\n* Version 0: Original schema (id, hash, created_at)\n* Version 1: Extended schema (id, hash, created_at, name, applied_at)\n*/\nfunction upgradeSyncIfNeeded(migrationsTable, session, localMigrations) {\n\tif (session.objects(sql`SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = ${migrationsTable}`).length === 0) return { newDb: true };\n\tconst rows = session.objects(sql`SELECT name as column_name FROM pragma_table_info(${migrationsTable})`);\n\tconst version = GET_VERSION_FOR.sqlite(rows.map((r) => r.column_name));\n\tfor (let v = version; v < MIGRATIONS_TABLE_VERSIONS.sqlite; v++) {\n\t\tconst upgradeFn = upgradeSyncFunctions[v];\n\t\tif (!upgradeFn) throw new Error(`No upgrade path from migration table version ${v} to ${v + 1}`);\n\t\tupgradeFn(migrationsTable, session, localMigrations);\n\t}\n\treturn { newDb: false };\n}\nconst upgradeSyncFunctions = { 0: (migrationsTable, session, localMigrations) => {\n\tconst table = sql`${sql.identifier(migrationsTable)}`;\n\tconst dbRows = session.objects(sql`SELECT id, hash, created_at FROM ${table} ORDER BY id ASC`);\n\tlocalMigrations.sort((a, b) => a.folderMillis !== b.folderMillis ? a.folderMillis - b.folderMillis : (a.name ?? \"\").localeCompare(b.name ?? \"\"));\n\tconst byMillis = /* @__PURE__ */ new Map();\n\tconst byHash = /* @__PURE__ */ new Map();\n\tfor (const lm of localMigrations) {\n\t\tif (!byMillis.has(lm.folderMillis)) byMillis.set(lm.folderMillis, []);\n\t\tbyMillis.get(lm.folderMillis).push(lm);\n\t\tbyHash.set(lm.hash, lm);\n\t}\n\tconst toApply = [];\n\tlet unmatched = [];\n\tfor (const dbRow of dbRows) {\n\t\tconst stringified = String(dbRow.created_at);\n\t\tconst millis = Number(stringified.substring(0, stringified.length - 3) + \"000\");\n\t\tconst candidates = byMillis.get(millis);\n\t\tlet matched;\n\t\tlet matchedBy = null;\n\t\tif (candidates && candidates.length === 1) {\n\t\t\tmatched = candidates[0];\n\t\t\tmatchedBy = \"millis\";\n\t\t} else if (candidates && candidates.length > 1) {\n\t\t\tmatched = candidates.find((c) => c.hash && dbRow.hash && c.hash === dbRow.hash);\n\t\t\tif (matched) matchedBy = \"hash\";\n\t\t} else {\n\t\t\tmatched = byHash.get(dbRow.hash);\n\t\t\tif (matched) matchedBy = \"hash\";\n\t\t}\n\t\tif (matched) toApply.push({\n\t\t\tid: dbRow.id,\n\t\t\tname: matched.name,\n\t\t\thash: dbRow.hash,\n\t\t\tcreated_at: stringified,\n\t\t\tmatchedBy: dbRow.id ? \"id\" : matchedBy\n\t\t});\n\t\telse unmatched.push(dbRow);\n\t}\n\tif (unmatched.length > 0) throw Error(`While upgrading your database migrations table we found ${unmatched.length} (${unmatched.map((it) => `[id: ${it.id}, created_at: ${it.created_at}]`).join(\", \")}) migrations in the database that do not match any local migration. This means that some migrations were applied to the database but are missing from the local environment`);\n\tsession.transaction((tx) => {\n\t\ttx.run(sql`ALTER TABLE ${table} ADD COLUMN ${sql.identifier(\"name\")} text`);\n\t\ttx.run(sql`ALTER TABLE ${table} ADD COLUMN ${sql.identifier(\"applied_at\")} TEXT`);\n\t\tfor (const backfillEntry of toApply) {\n\t\t\tconst updateQuery = sql`UPDATE ${table} SET ${sql.identifier(\"name\")} = ${backfillEntry.name}, ${sql.identifier(\"applied_at\")} = NULL WHERE`;\n\t\t\tif (backfillEntry.id) updateQuery.append(sql` ${sql.identifier(\"id\")} = ${backfillEntry.id}`);\n\t\t\telse if (backfillEntry.matchedBy === \"millis\") updateQuery.append(sql` ${sql.identifier(\"created_at\")} = ${backfillEntry.created_at}`);\n\t\t\telse updateQuery.append(sql` ${sql.identifier(\"hash\")} = ${backfillEntry.hash}`);\n\t\t\ttx.run(updateQuery);\n\t\t}\n\t});\n} };\n/**\n* Detects the current version of the migrations table schema and upgrades it if needed.\n*\n* Version 0: Original schema (id, hash, created_at)\n* Version 1: Extended schema (id, hash, created_at, name, applied_at)\n*/\nasync function upgradeAsyncIfNeeded(migrationsTable, db, localMigrations) {\n\tif ((await db.session.objects(sql`SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = ${migrationsTable}`)).length === 0) return { newDb: true };\n\tconst rows = await db.session.objects(sql`SELECT name as column_name FROM pragma_table_info(${migrationsTable})`);\n\tconst version = GET_VERSION_FOR.sqlite(rows.map((r) => r.column_name));\n\tfor (let v = version; v < MIGRATIONS_TABLE_VERSIONS.sqlite; v++) {\n\t\tconst upgradeFn = upgradeAsyncFunctions[v];\n\t\tif (!upgradeFn) throw new Error(`No upgrade path from migration table version ${v} to ${v + 1}`);\n\t\tawait upgradeFn(migrationsTable, db, localMigrations);\n\t}\n\treturn { newDb: false };\n}\nconst upgradeAsyncFunctions = { 0: async (migrationsTable, db, localMigrations) => {\n\tconst table = sql`${sql.identifier(migrationsTable)}`;\n\tconst dbRows = await db.session.objects(sql`SELECT id, hash, created_at FROM ${table} ORDER BY id ASC`);\n\tlocalMigrations.sort((a, b) => a.folderMillis !== b.folderMillis ? a.folderMillis - b.folderMillis : (a.name ?? \"\").localeCompare(b.name ?? \"\"));\n\tconst byMillis = /* @__PURE__ */ new Map();\n\tconst byHash = /* @__PURE__ */ new Map();\n\tfor (const lm of localMigrations) {\n\t\tif (!byMillis.has(lm.folderMillis)) byMillis.set(lm.folderMillis, []);\n\t\tbyMillis.get(lm.folderMillis).push(lm);\n\t\tbyHash.set(lm.hash, lm);\n\t}\n\tconst toApply = [];\n\tlet unmatched = [];\n\tfor (const dbRow of dbRows) {\n\t\tconst stringified = String(dbRow.created_at);\n\t\tconst millis = Number(stringified.substring(0, stringified.length - 3) + \"000\");\n\t\tconst candidates = byMillis.get(millis);\n\t\tlet matched;\n\t\tlet matchedBy = null;\n\t\tif (candidates && candidates.length === 1) {\n\t\t\tmatched = candidates[0];\n\t\t\tmatchedBy = \"millis\";\n\t\t} else if (candidates && candidates.length > 1) {\n\t\t\tmatched = candidates.find((c) => c.hash && dbRow.hash && c.hash === dbRow.hash);\n\t\t\tif (matched) matchedBy = \"hash\";\n\t\t} else {\n\t\t\tmatched = byHash.get(dbRow.hash);\n\t\t\tif (matched) matchedBy = \"hash\";\n\t\t}\n\t\tif (matched) toApply.push({\n\t\t\tid: dbRow.id,\n\t\t\tname: matched.name,\n\t\t\thash: dbRow.hash,\n\t\t\tcreated_at: stringified,\n\t\t\tmatchedBy: dbRow.id ? \"id\" : matchedBy\n\t\t});\n\t\telse unmatched.push(dbRow);\n\t}\n\tif (unmatched.length > 0) throw Error(`While upgrading your database migrations table we found ${unmatched.length} (${unmatched.map((it) => `[id: ${it.id}, created_at: ${it.created_at}]`).join(\", \")}) migrations in the database that do not match any local migration. This means that some migrations were applied to the database but are missing from the local environment`);\n\tconst statements = [sql`ALTER TABLE ${table} ADD COLUMN ${sql.identifier(\"name\")} text`, sql`ALTER TABLE ${table} ADD COLUMN ${sql.identifier(\"applied_at\")} TEXT`];\n\tfor (const backfillEntry of toApply) {\n\t\tconst updateQuery = sql`UPDATE ${table} SET ${sql.identifier(\"name\")} = ${backfillEntry.name}, ${sql.identifier(\"applied_at\")} = NULL WHERE`;\n\t\tif (backfillEntry.id) updateQuery.append(sql` ${sql.identifier(\"id\")} = ${backfillEntry.id}`);\n\t\telse if (backfillEntry.matchedBy === \"millis\") updateQuery.append(sql` ${sql.identifier(\"created_at\")} = ${backfillEntry.created_at}`);\n\t\telse updateQuery.append(sql` ${sql.identifier(\"hash\")} = ${backfillEntry.hash}`);\n\t\tstatements.push(updateQuery);\n\t}\n\tawait db.transaction(async (tx) => {\n\t\tfor (const statement of statements) await tx.run(statement);\n\t});\n} };\n\n//#endregion\nexport { upgradeAsyncIfNeeded, upgradeSyncIfNeeded };\n//# sourceMappingURL=sqlite.js.map","import { entityKind } from \"../../entity.js\";\n\n//#region src/cache/core/cache.ts\nvar Cache = class {\n\tstatic [entityKind] = \"Cache\";\n};\nvar NoopCache = class extends Cache {\n\tstatic [entityKind] = \"NoopCache\";\n\tstrategy() {\n\t\treturn \"all\";\n\t}\n\tasync get(_key) {}\n\tasync put(_hashedQuery, _response, _tables, _config) {}\n\tasync onMutate(_params) {}\n};\nconst strategyFor = async (query, params, queryMetadata, withCacheConfig) => {\n\tif (!queryMetadata) return { type: \"skip\" };\n\tconst { type, tables } = queryMetadata;\n\tif ((type === \"insert\" || type === \"update\" || type === \"delete\") && tables.length > 0) return {\n\t\ttype: \"invalidate\",\n\t\ttables\n\t};\n\tif (!withCacheConfig) return { type: \"skip\" };\n\tif (!withCacheConfig.enabled) return { type: \"skip\" };\n\tif (type === \"select\") return {\n\t\ttype: \"try\",\n\t\tkey: withCacheConfig.tag ?? await hashQuery(query, params),\n\t\tisTag: typeof withCacheConfig.tag !== \"undefined\",\n\t\tautoInvalidate: withCacheConfig.autoInvalidate,\n\t\ttables: queryMetadata.tables,\n\t\tconfig: withCacheConfig.config\n\t};\n\treturn { type: \"skip\" };\n};\nasync function hashQuery(sql, params) {\n\tconst dataToHash = `${sql}-${JSON.stringify(params, (_, v) => typeof v === \"bigint\" ? `${v}n` : v)}`;\n\tconst data = new TextEncoder().encode(dataToHash);\n\tconst hashBuffer = await crypto.subtle.digest(\"SHA-256\", data);\n\treturn [...new Uint8Array(hashBuffer)].map((b) => b.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\n//#endregion\nexport { Cache, NoopCache, hashQuery, strategyFor };\n//# sourceMappingURL=cache.js.map","import { entityKind } from \"../entity.js\";\n\n//#region src/sqlite-core/session.ts\nvar SQLitePreparedQuery = class {\n\tstatic [entityKind] = \"SQLiteBasePreparedQuery\";\n\t/** @internal */\n\tmapper;\n\t/** @internal */\n\texecuteMethod;\n\tconstructor(executeMethod, query, mapper, mode) {\n\t\tthis.query = query;\n\t\tthis.mode = mode;\n\t\tthis.mapper = mapper;\n\t\tthis.executeMethod = executeMethod;\n\t}\n\tgetQuery() {\n\t\treturn this.query;\n\t}\n};\nvar SQLiteSession = class {\n\tstatic [entityKind] = \"SQLiteSession\";\n\tconstructor(dialect) {\n\t\tthis.dialect = dialect;\n\t}\n};\n\n//#endregion\nexport { SQLitePreparedQuery, SQLiteSession };\n//# sourceMappingURL=session.js.map","import { SQLiteAsyncDatabase } from \"./db.js\";\nimport { entityKind, is } from \"../../entity.js\";\nimport { assertUnreachable } from \"../../utils.js\";\nimport { fillPlaceholders, sql } from \"../../sql/sql.js\";\nimport { QueryPromise } from \"../../query-promise.js\";\nimport { DrizzleQueryError, TransactionRollbackError } from \"../../errors.js\";\nimport { getMigrationsToRun } from \"../../migrator.utils.js\";\nimport { upgradeAsyncIfNeeded, upgradeSyncIfNeeded } from \"../../up-migrations/sqlite.js\";\nimport { NoopCache, strategyFor } from \"../../cache/core/cache.js\";\nimport { SQLitePreparedQuery, SQLiteSession } from \"../session.js\";\n\n//#region src/sqlite-core/async/session.ts\nvar ExecuteResultSync = class extends QueryPromise {\n\tstatic [entityKind] = \"ExecuteResultSync\";\n\tconstructor(resultCb) {\n\t\tsuper();\n\t\tthis.resultCb = resultCb;\n\t}\n\tasync execute() {\n\t\treturn this.resultCb();\n\t}\n\tsync() {\n\t\treturn this.resultCb();\n\t}\n};\nvar SQLiteAsyncPreparedQuery = class extends SQLitePreparedQuery {\n\tstatic [entityKind] = \"SQLiteAsyncPreparedQuery\";\n\tfastPath;\n\tconstructor(resultKind, executeMethod = \"all\", executors, query, mapper, mode, logger, cache, queryMetadata, cacheConfig) {\n\t\tsuper(executeMethod, query, mapper, mode);\n\t\tthis.resultKind = resultKind;\n\t\tthis.executors = executors;\n\t\tthis.logger = logger;\n\t\tthis.cache = cache;\n\t\tthis.queryMetadata = queryMetadata;\n\t\tthis.cacheConfig = cacheConfig;\n\t\tif (cache && cache.strategy() === \"all\" && cacheConfig === void 0) this.cacheConfig = {\n\t\t\tenabled: true,\n\t\t\tautoInvalidate: true\n\t\t};\n\t\tif (!this.cacheConfig?.enabled) this.cacheConfig = void 0;\n\t\tthis.fastPath = cacheConfig === void 0 && (cache === void 0 || is(cache, NoopCache));\n\t}\n\t/** @internal */\n\tasync queryWithCache(queryString, params, executeMethod, query) {\n\t\tconst cacheStrat = this.cache !== void 0 && !is(this.cache, NoopCache) ? await strategyFor(queryString, params, this.queryMetadata, this.cacheConfig) : { type: \"skip\" };\n\t\tif (cacheStrat.type === \"skip\") return query().catch((e) => {\n\t\t\tthrow new DrizzleQueryError(queryString, params, e);\n\t\t});\n\t\tconst cache = this.cache;\n\t\tif (cacheStrat.type === \"invalidate\") return Promise.all([query(), cache.onMutate({ tables: cacheStrat.tables })]).then((res) => res[0]).catch((e) => {\n\t\t\tthrow new DrizzleQueryError(queryString, params, e);\n\t\t});\n\t\tif (cacheStrat.type === \"try\") {\n\t\t\tconst { tables, key: _key, isTag, autoInvalidate, config } = cacheStrat;\n\t\t\tconst key = `${executeMethod}_${_key}`;\n\t\t\tconst fromCache = await cache.get(key, tables, isTag, autoInvalidate);\n\t\t\tif (fromCache === void 0) {\n\t\t\t\tconst result = await query().catch((e) => {\n\t\t\t\t\tthrow new DrizzleQueryError(queryString, params, e);\n\t\t\t\t});\n\t\t\t\tawait cache.put(key, result, autoInvalidate ? tables : [], isTag, config);\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn fromCache;\n\t\t}\n\t\tassertUnreachable(cacheStrat);\n\t}\n\trun(placeholderValues = {}) {\n\t\tconst { query, logger, executors, fastPath, resultKind } = this;\n\t\tconst sql = query._sql ? query._sql.join(\" \") : query.sql;\n\t\tconst params = query.params.length === 0 ? query.params : fillPlaceholders(query.params, placeholderValues);\n\t\tlogger.logQuery(sql, params);\n\t\tif (resultKind === \"sync\") try {\n\t\t\treturn executors.run(params);\n\t\t} catch (e) {\n\t\t\tthrow new DrizzleQueryError(sql, params, e);\n\t\t}\n\t\treturn fastPath ? executors.run(params).catch((e) => {\n\t\t\tthrow new DrizzleQueryError(sql, params, e);\n\t\t}) : this.queryWithCache(sql, params, \"run\", () => executors.run(params));\n\t}\n\tall(placeholderValues = {}) {\n\t\tconst { query, logger, executors, mapper, fastPath, resultKind } = this;\n\t\tconst sql = query._sql ? query._sql.join(\" \") : query.sql;\n\t\tconst params = query.params.length === 0 ? query.params : fillPlaceholders(query.params, placeholderValues);\n\t\tlogger.logQuery(sql, params);\n\t\tif (resultKind === \"sync\") {\n\t\t\tlet res;\n\t\t\ttry {\n\t\t\t\tres = executors.all(params);\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(sql, params, e);\n\t\t\t}\n\t\t\tif (!mapper) return res;\n\t\t\treturn mapper(res);\n\t\t}\n\t\tconst res = fastPath ? executors.all(params).catch((e) => {\n\t\t\tthrow new DrizzleQueryError(sql, params, e);\n\t\t}) : this.queryWithCache(sql, params, \"all\", () => executors.all(params));\n\t\tif (!mapper) return res;\n\t\treturn res.then((rows) => mapper(rows));\n\t}\n\tget(placeholderValues = {}) {\n\t\tconst { query, logger, executors, mapper, fastPath, resultKind } = this;\n\t\tconst sql = query._sql ? query._sql.join(\" \") : query.sql;\n\t\tconst params = query.params.length === 0 ? query.params : fillPlaceholders(query.params, placeholderValues);\n\t\tlogger.logQuery(sql, params);\n\t\tif (resultKind === \"sync\") {\n\t\t\tlet res;\n\t\t\ttry {\n\t\t\t\tres = executors.get(params);\n\t\t\t} catch (e) {\n\t\t\t\tthrow new DrizzleQueryError(sql, params, e);\n\t\t\t}\n\t\t\tif (!res) return void 0;\n\t\t\tif (!mapper) return res;\n\t\t\treturn mapper([res])[0];\n\t\t}\n\t\tconst res = fastPath ? executors.get(params).catch((e) => {\n\t\t\tthrow new DrizzleQueryError(sql, params, e);\n\t\t}) : this.queryWithCache(sql, params, \"get\", () => executors.get(params));\n\t\tif (!mapper) return res.then((row) => row ? row : void 0);\n\t\treturn res.then((row) => row ? mapper([row])[0] : void 0);\n\t}\n\tvalues(placeholderValues = {}) {\n\t\tconst { query, logger, executors, fastPath, resultKind } = this;\n\t\tconst sql = query._sql ? query._sql.join(\" \") : query.sql;\n\t\tconst params = query.params.length === 0 ? query.params : fillPlaceholders(query.params, placeholderValues);\n\t\tlogger.logQuery(sql, params);\n\t\tif (resultKind === \"sync\") try {\n\t\t\treturn executors.values(params);\n\t\t} catch (e) {\n\t\t\tthrow new DrizzleQueryError(sql, params, e);\n\t\t}\n\t\treturn fastPath ? executors.values(params).catch((e) => {\n\t\t\tthrow new DrizzleQueryError(sql, params, e);\n\t\t}) : this.queryWithCache(sql, params, \"values\", () => executors.values(params));\n\t}\n\texecute(placeholderValues) {\n\t\tif (this.resultKind === \"async\") return this[this.executeMethod](placeholderValues);\n\t\treturn new ExecuteResultSync(() => this[this.executeMethod](placeholderValues));\n\t}\n};\nvar SQLiteAsyncSession = class extends SQLiteSession {\n\tstatic [entityKind] = \"SQLiteAsyncSession\";\n\tconstructor(dialect, resultKind) {\n\t\tsuper(dialect);\n\t\tthis.resultKind = resultKind;\n\t}\n\trun(query) {\n\t\treturn this.prepareQuery(this.dialect.sqlToQuery(query), \"raw\", false).run();\n\t}\n\tobjects(query) {\n\t\treturn this.prepareQuery(this.dialect.sqlToQuery(query), \"objects\", false).all();\n\t}\n\tobject(query) {\n\t\treturn this.prepareQuery(this.dialect.sqlToQuery(query), \"objects\", false).get();\n\t}\n\tarrays(query) {\n\t\treturn this.prepareQuery(this.dialect.sqlToQuery(query), \"arrays\", false).all();\n\t}\n\tarray(query) {\n\t\treturn this.prepareQuery(this.dialect.sqlToQuery(query), \"arrays\", false).get();\n\t}\n};\nvar SQLiteAsyncTransaction = class extends SQLiteAsyncDatabase {\n\tstatic [entityKind] = \"SQLiteAsyncTransaction\";\n\tconstructor(resultType, dialect, session, relations, nestedIndex = 0, forbidJsonb) {\n\t\tsuper(resultType, dialect, session, relations, forbidJsonb);\n\t\tthis.nestedIndex = nestedIndex;\n\t}\n\trollback() {\n\t\tthrow new TransactionRollbackError();\n\t}\n};\nfunction migrateSync(migrations, session, config) {\n\tconst migrationsTable = config === void 0 ? \"__drizzle_migrations\" : typeof config === \"string\" ? \"__drizzle_migrations\" : config.migrationsTable ?? \"__drizzle_migrations\";\n\tconst { newDb } = upgradeSyncIfNeeded(migrationsTable, session, migrations);\n\tif (newDb) {\n\t\tconst migrationTableCreate = sql`\n\t\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\t\tid INTEGER PRIMARY KEY,\n\t\t\t\thash text NOT NULL,\n\t\t\t\tcreated_at numeric,\n\t\t\t\tname text,\n\t\t\t\tapplied_at TEXT\n\t\t\t)`;\n\t\tsession.run(migrationTableCreate);\n\t}\n\tconst dbMigrations = session.objects(sql`SELECT id, hash, created_at, name FROM ${sql.identifier(migrationsTable)}`);\n\tif (typeof config === \"object\" && config.init) {\n\t\tif (dbMigrations.length) return { exitCode: \"databaseMigrations\" };\n\t\tif (migrations.length > 1) return { exitCode: \"localMigrations\" };\n\t\tconst [migration] = migrations;\n\t\tif (!migration) return;\n\t\tsession.run(sql`insert into ${sql.identifier(migrationsTable)} (\"hash\", \"created_at\", \"name\", \"applied_at\") values(${migration.hash}, ${migration.folderMillis}, ${migration.name}, ${(/* @__PURE__ */ new Date()).toISOString()})`);\n\t\treturn;\n\t}\n\tconst migrationsToRun = getMigrationsToRun({\n\t\tlocalMigrations: migrations,\n\t\tdbMigrations\n\t});\n\tsession.run(sql`BEGIN`);\n\ttry {\n\t\tfor (const migration of migrationsToRun) {\n\t\t\tfor (const stmt of migration.sql) session.run(sql.raw(stmt));\n\t\t\tsession.run(sql`INSERT INTO ${sql.identifier(migrationsTable)} (\"hash\", \"created_at\", \"name\", \"applied_at\") values(${migration.hash}, ${migration.folderMillis}, ${migration.name}, ${(/* @__PURE__ */ new Date()).toISOString()})`);\n\t\t}\n\t\tsession.run(sql`COMMIT`);\n\t} catch (e) {\n\t\tsession.run(sql`ROLLBACK`);\n\t\tthrow e;\n\t}\n}\nasync function migrateAsync(migrations, db, config) {\n\tconst migrationsTable = config === void 0 ? \"__drizzle_migrations\" : typeof config === \"string\" ? \"__drizzle_migrations\" : config.migrationsTable ?? \"__drizzle_migrations\";\n\tconst { newDb } = await upgradeAsyncIfNeeded(migrationsTable, db, migrations);\n\tif (newDb) {\n\t\tconst migrationTableCreate = sql`\n\t\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\t\tid INTEGER PRIMARY KEY,\n\t\t\t\thash text NOT NULL,\n\t\t\t\tcreated_at numeric,\n\t\t\t\tname text,\n\t\t\t\tapplied_at TEXT\n\t\t\t)\n\t\t`;\n\t\tawait db.session.run(migrationTableCreate);\n\t}\n\tconst dbMigrations = await db.session.objects(sql`SELECT id, hash, created_at, name FROM ${sql.identifier(migrationsTable)};`);\n\tif (typeof config === \"object\" && config.init) {\n\t\tif (dbMigrations.length) return { exitCode: \"databaseMigrations\" };\n\t\tif (migrations.length > 1) return { exitCode: \"localMigrations\" };\n\t\tconst [migration] = migrations;\n\t\tif (!migration) return;\n\t\tawait db.session.run(sql`insert into ${sql.identifier(migrationsTable)} (\"hash\", \"created_at\", \"name\", \"applied_at\") values(${migration.hash}, ${migration.folderMillis}, ${migration.name}, ${(/* @__PURE__ */ new Date()).toISOString()})`);\n\t\treturn;\n\t}\n\tconst migrationsToRun = getMigrationsToRun({\n\t\tlocalMigrations: migrations,\n\t\tdbMigrations\n\t});\n\tawait db.session.transaction(async (tx) => {\n\t\tfor (const migration of migrationsToRun) {\n\t\t\tfor (const stmt of migration.sql) await tx.run(sql.raw(stmt));\n\t\t\tawait tx.run(sql`insert into ${sql.identifier(migrationsTable)} (\"hash\", \"created_at\", \"name\", \"applied_at\") values(${migration.hash}, ${migration.folderMillis}, ${migration.name}, ${(/* @__PURE__ */ new Date()).toISOString()})`);\n\t\t}\n\t});\n}\n\n//#endregion\nexport { ExecuteResultSync, SQLiteAsyncPreparedQuery, SQLiteAsyncSession, SQLiteAsyncTransaction, migrateAsync, migrateSync };\n//# sourceMappingURL=session.js.map","import { t as applyPerfPragmas } from \"./sqlite-pragmas.js\";\nimport { t as getLogger } from \"./logger.js\";\nimport { d as resolveCleoDir, o as getCleoHome } from \"./paths.js\";\nimport { i as getRecordedExodusAbort } from \"./abort-events2.js\";\nimport { createRequire } from \"node:module\";\nimport { copyFileSync, existsSync, mkdirSync } from \"node:fs\";\nimport { dirname, join, resolve } from \"node:path\";\nimport { randomUUID } from \"node:crypto\";\nimport { fileURLToPath } from \"node:url\";\nimport { readMigrationFiles } from \"drizzle-orm/migrator\";\nimport { index, integer, migrateSync, sqliteTable, text } from \"drizzle-orm/sqlite-core\";\n//#region ../core/dist/store/with-retry.js\n/**\n* Application-level retry helpers for SQLITE_BUSY contention.\n*\n* SQLite's engine-level `busy_timeout` pragma (set to 30000ms in\n* {@link applyPerfPragmas}) makes a single statement wait up to 30s for a\n* competing writer to release its lock. That alone is NOT enough for\n* highly-parallel CLI invocations of `cleo update <id> --add-labels ...`\n* (gh#391): up to ~50% of writes still fail with `SQLITE_BUSY: database\n* is locked` when ≥10 processes hammer the same database from one shell.\n*\n* This module adds a **second layer** above the pragma — an async retry\n* with capped exponential backoff and jitter that wraps the entire\n* outermost transactional block (BEGIN IMMEDIATE … COMMIT) so contention\n* is absorbed by re-issuing the whole transaction rather than retrying\n* individual statements inside an already-rolled-back transaction.\n*\n* **Layering contract**:\n*\n* 1. `busy_timeout=30000ms` (engine-level, in {@link applyPerfPragmas}) —\n* handles the *common* case where a competing writer commits within\n* 30 seconds. The statement waits in-place; no application code runs.\n* 2. `withWriteRetry` (this module, app-level) — handles the *uncommon*\n* case where the engine-level wait expires (or the writer holds a\n* RESERVED lock during a long transaction). Retries the entire\n* outermost transaction 4 times with 100/200/400/800ms (± 50ms\n* jitter) backoff before throwing {@link E_WRITE_CONTENTION}.\n*\n* Total worst-case latency is therefore bounded by\n* `MAX_ATTEMPTS × busy_timeout + sum(backoffs)` ≈ `4 × 30000 + 1500` =\n* `~121.5s`. In practice the first retry usually succeeds because the\n* competing writer has committed by then.\n*\n* **Why a separate module from migration-manager.ts**: the migration\n* runner has its OWN retry loop (synchronous, uses `Atomics.wait`,\n* scoped to `migrate()` calls). This module is the canonical home for\n* the async, transaction-wrapping retry primitive used by routine\n* task-row mutations. `isSqliteBusy` is co-located here so all callers\n* import it from one place; `migration-manager.ts` re-exports for\n* backward compatibility.\n*\n* @bug gh-391 — parallel `cleo update --add-labels` lost ~50% of writes\n* to SQLITE_BUSY before this primitive was introduced.\n* @task T9839 — SG-GH-TRIAGE-2026-05-21 saga member; see PR for evidence.\n*\n* @example\n* ```ts\n* import { withWriteRetry } from './with-retry.js';\n*\n* await withWriteRetry(async () => {\n* nativeDb.prepare('BEGIN IMMEDIATE').run();\n* try {\n* await db.update(schema.tasks).set({ ... }).where(...).run();\n* nativeDb.prepare('COMMIT').run();\n* } catch (err) {\n* nativeDb.prepare('ROLLBACK').run();\n* throw err;\n* }\n* });\n* ```\n*/\n/** Default number of attempts (1 initial + 3 retries = 4 total). */\nvar DEFAULT_MAX_ATTEMPTS = 4;\n/** Default base delay in milliseconds for exponential backoff (100ms). */\nvar DEFAULT_BASE_DELAY_MS = 100;\n/** Default uniform jitter window in milliseconds (± 50ms). */\nvar DEFAULT_JITTER_MS = 50;\n/**\n* Check if an error indicates SQLite was BUSY (lock held by another\n* connection or process). Matches both `SQLITE_BUSY` literal error\n* codes and the `database is locked` message variant emitted by some\n* driver versions.\n*\n* Canonical home for the BUSY-detection predicate. `migration-manager.ts`\n* re-exports this symbol for backward compatibility with the existing\n* `import { isSqliteBusy } from '../sqlite.js'` chain.\n*\n* @param err - The thrown value to inspect. Non-Error values (string,\n* null, undefined, number, object literal) always return false.\n* @returns `true` if the error message contains a SQLITE_BUSY indicator.\n*\n* @task T5185 — original implementation; relocated from migration-manager.ts.\n* @bug gh-391\n*\n* @example\n* ```ts\n* try {\n* db.prepare('BEGIN IMMEDIATE').run();\n* } catch (err) {\n* if (isSqliteBusy(err)) {\n* // contention — caller decides whether to retry\n* } else {\n* throw err; // genuine failure\n* }\n* }\n* ```\n*/\nfunction isSqliteBusy(err) {\n\tif (!(err instanceof Error)) return false;\n\tconst msg = err.message.toLowerCase();\n\treturn msg.includes(\"sqlite_busy\") || msg.includes(\"database is locked\");\n}\n/**\n* Wrap an async (or sync) write function in an application-level\n* SQLITE_BUSY retry loop with capped exponential backoff and jitter.\n*\n* Behaviour:\n* - If `fn()` resolves normally, returns the result.\n* - If `fn()` throws and `isSqliteBusy(err)` is true, sleeps for\n* `baseDelayMs × 2^(attempt-1)` ± jitter and re-runs `fn()`. Repeats\n* until success or `maxAttempts` exhausted.\n* - If `fn()` throws a non-BUSY error, propagates IMMEDIATELY without retry.\n* - When all attempts exhaust on BUSY, throws an Error with `.code =\n* 'E_WRITE_CONTENTION'` and a `.cause` set to the last BUSY error.\n*\n* **CRITICAL**: `fn` MUST own the outermost transaction boundary\n* (BEGIN IMMEDIATE/COMMIT or SAVEPOINT). better-sqlite3 / node:sqlite\n* throws if `BEGIN IMMEDIATE` is executed while a transaction is\n* already open, so nesting `withWriteRetry` calls is a bug. Wrap the\n* OUTERMOST boundary only.\n*\n* @param fn - The function to retry. May be sync or async.\n* @param opts - Optional override of attempt count, base delay, jitter,\n* or instrumentation callback.\n* @returns The resolved value of `fn`.\n* @throws Error with `.code === 'E_WRITE_CONTENTION'` after exhausting retries.\n* @throws Original error (unwrapped) if it is NOT a SQLITE_BUSY error.\n*\n* @bug gh-391\n* @task T9839\n*\n* @example\n* ```ts\n* await withWriteRetry(() => {\n* nativeDb.prepare('BEGIN IMMEDIATE').run();\n* try {\n* // ... writes ...\n* nativeDb.prepare('COMMIT').run();\n* } catch (e) {\n* nativeDb.prepare('ROLLBACK').run();\n* throw e;\n* }\n* }, { maxAttempts: 4, baseDelayMs: 100 });\n* ```\n*/\nasync function withWriteRetry(fn, opts = {}) {\n\tconst maxAttempts = Math.max(1, opts.maxAttempts ?? DEFAULT_MAX_ATTEMPTS);\n\tconst baseDelayMs = opts.baseDelayMs ?? DEFAULT_BASE_DELAY_MS;\n\tconst jitterMs = opts.jitterMs ?? DEFAULT_JITTER_MS;\n\tconst onRetry = opts.onRetry;\n\tlet lastBusyErr;\n\tfor (let attempt = 1; attempt <= maxAttempts; attempt++) try {\n\t\treturn await fn();\n\t} catch (err) {\n\t\tif (!isSqliteBusy(err)) throw err;\n\t\tlastBusyErr = err;\n\t\tif (attempt === maxAttempts) break;\n\t\tconst baseDelay = baseDelayMs * 2 ** (attempt - 1);\n\t\tconst jitter = (Math.random() * 2 - 1) * jitterMs;\n\t\tconst delayMs = Math.max(0, baseDelay + jitter);\n\t\tif (onRetry) onRetry(attempt, delayMs, err);\n\t\tawait sleep(delayMs);\n\t}\n\tconst contentionErr = /* @__PURE__ */ new Error(`E_WRITE_CONTENTION: SQLITE_BUSY persisted after ${maxAttempts} attempts. Retry the operation after a brief delay. Underlying error: ${lastBusyErr instanceof Error ? lastBusyErr.message : String(lastBusyErr)}`);\n\tcontentionErr.code = \"E_WRITE_CONTENTION\";\n\tcontentionErr.cause = lastBusyErr;\n\tthrow contentionErr;\n}\n/** Small promise-based sleep helper. */\nfunction sleep(ms) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n//#endregion\n//#region ../core/dist/store/migration-manager.js\n/**\n* Unified migration manager for SQLite databases.\n*\n* Consolidates duplicated reconciliation, bootstrap, retry, and column-safety\n* logic that was previously copy-pasted between sqlite.ts (tasks.db) and\n* memory-sqlite.ts (brain.db). Both modules now delegate to these shared functions.\n*\n* @task T132\n* @see https://github.com/anthropics/cleo/issues/82\n* @see https://github.com/anthropics/cleo/issues/63\n* @see https://github.com/anthropics/cleo/issues/65\n*/\n/** Migration retry constants for SQLITE_BUSY handling (T5185). */\nvar MAX_MIGRATION_RETRIES = 5;\nvar MIGRATION_RETRY_BASE_DELAY_MS = 100;\nvar MIGRATION_RETRY_MAX_DELAY_MS = 2e3;\n/**\n* Strip SQL line (`-- …`) and block (`/* … *​/`) comments from a migration's SQL\n* before scanning it for DDL targets.\n*\n* Migration files routinely carry prose comments describing the change — phrases\n* like \"the project-side CREATE TABLE half of that move\" or \"CREATE TABLE IF NOT\n* EXISTS ensures it exists\". A DDL-extraction regex run over the RAW SQL captures\n* bogus \"table\" names from those comments (`half`, `IF`, `ensures`), making a\n* fully-satisfied migration look un-applied. The journal then omits it, Drizzle\n* re-runs its bare `CREATE TABLE …` against a DB where the table already exists,\n* and the open fails (root cause of the \"Task database not initialized\" poison).\n*\n* Always strip comments via this helper BEFORE any `createTableRegex` /\n* `createIndexRegex` / `alterColumnRegex` scan. The pair of replaces matches the\n* idiom already used by {@link isExecutableStatement} and Scenario 3's\n* comment-only baseline detection.\n*\n* @param sql - Raw migration SQL (one statement or many joined with `\\n`)\n* @returns The SQL with all `--` line comments and `/* … *​/` block comments removed\n*/\nfunction stripSqlComments(sql) {\n\treturn sql.replace(/--[^\\n]*/g, \"\").replace(/\\/\\*[\\s\\S]*?\\*\\//g, \"\");\n}\n/**\n* Compute the set of tables that a migration lineage CREATEs and a LATER\n* migration permanently ELIMINATES (DROP TABLE with no subsequent recreate).\n*\n* ## Why (bug #2)\n*\n* The DDL probe ({@link probeAndMarkApplied}) marks a `CREATE TABLE foo`\n* migration applied only if `foo` exists in the live schema. That breaks when a\n* later migration DROPs `foo` for good: e.g. `t033`/`initial` create\n* `release_manifests`, which `t9686b2` later DROPs (superseded by `releases`).\n* On a DB that has run the WHOLE lineage, `release_manifests` is correctly\n* absent — but the probe then refuses to mark `t033`/`initial` applied, so\n* drizzle's `migrate()` re-runs their bare `CREATE TABLE release_manifests`\n* against the live DB and throws (\"table already exists\" / cascade) — surfacing\n* as the opaque E_NOT_INITIALIZED / E_INTERNAL on a consolidated `cleo.db`.\n*\n* Pre-computing the eliminated set lets the probe treat a CREATE-of-an-\n* eliminated-table as already satisfied: the table is *supposed* to be gone, so\n* its absence is evidence the lineage ran, not that it didn't.\n*\n* ## Disposition tracking\n*\n* Walks migrations in `folderMillis` order and, WITHIN each migration, processes\n* statements IN ORDER so the SQLite rebuild/recreate idioms resolve correctly:\n*\n* - `CREATE TABLE x` (or `… RENAME TO x`) → `x` is present.\n* - `DROP TABLE x` → `x` is dropped.\n*\n* The rebuild idiom (`CREATE __new_x; DROP x; ALTER __new_x RENAME TO x`) and the\n* drop-then-recreate idiom (`DROP x; CREATE x`) both end with `x` PRESENT because\n* the final in-order statement for `x` is a create/rename. A table is\n* \"eliminated\" only if the LAST statement touching it across the whole lineage is\n* a DROP. Transient intermediates (`__new_*`) are naturally classified by the\n* same rule and are irrelevant to the probe (which already redirects renames to\n* the final name).\n*\n* @param migrations - All local migrations of one lineage (from readMigrationFiles)\n* @returns The set of permanently-eliminated final table names\n* @task T11553\n*/\nfunction computeEliminatedTables(migrations) {\n\tconst createTableRegex = /CREATE\\s+TABLE\\s+(?:IF\\s+NOT\\s+EXISTS\\s+)?[`\"]?(\\w+)[`\"]?/i;\n\tconst dropTableRegex = /DROP\\s+TABLE\\s+(?:IF\\s+EXISTS\\s+)?[`\"]?(\\w+)[`\"]?/i;\n\tconst renameRegex = /ALTER\\s+TABLE\\s+[`\"]?(\\w+)[`\"]?\\s+RENAME\\s+TO\\s+[`\"]?(\\w+)[`\"]?/i;\n\tconst disposition = /* @__PURE__ */ new Map();\n\tconst ordered = [...migrations].sort((a, b) => a.folderMillis - b.folderMillis);\n\tfor (const migration of ordered) {\n\t\tconst statements = Array.isArray(migration.sql) ? migration.sql : [migration.sql ?? \"\"];\n\t\tfor (const rawStatement of statements) {\n\t\t\tconst stripped = stripSqlComments(rawStatement);\n\t\t\tfor (const clause of stripped.split(\";\")) {\n\t\t\t\tconst create = createTableRegex.exec(clause);\n\t\t\t\tif (create) {\n\t\t\t\t\tdisposition.set(create[1], true);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst rename = renameRegex.exec(clause);\n\t\t\t\tif (rename) {\n\t\t\t\t\tdisposition.set(rename[2], true);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst drop = dropTableRegex.exec(clause);\n\t\t\t\tif (drop) disposition.set(drop[1], false);\n\t\t\t}\n\t\t}\n\t}\n\tconst eliminated = /* @__PURE__ */ new Set();\n\tfor (const [table, present] of disposition) if (!present) eliminated.add(table);\n\treturn eliminated;\n}\n/**\n* The timestamp-prefix of the consolidation cutover migration\n* (`20260531000001_t11363-consolidation-cleo-{project,global}`), used as the\n* fallback when the consolidation migration cannot be located on disk.\n*\n* Migration folder names start with a 14-char numeric timestamp prefix\n* (`YYYYMMDDHHMMSS`). Comparing those prefixes lexicographically is equivalent\n* to comparing the encoded timestamps, so this string is the cutover boundary.\n*\n* @task T11553\n*/\nvar CONSOLIDATION_CUTOVER_PREFIX = \"20260531000001\";\n/**\n* Length of a drizzle migration folder's leading `YYYYMMDDHHMMSS` timestamp.\n*/\nvar MIGRATION_TIMESTAMP_PREFIX_LEN = 14;\n/**\n* Resolve the consolidation cutover timestamp-prefix for a lineage being\n* reconciled, by locating the `*-consolidation-cleo-*` migration in the SIBLING\n* consolidated folders (`drizzle-cleo-project` / `drizzle-cleo-global`) next to\n* the supplied `migrationsFolder`.\n*\n* The legacy lineages (`drizzle-tasks` / `drizzle-brain`) do NOT themselves\n* contain the consolidation migration — it lives in the consolidated folders —\n* so we scan the siblings. Best-effort: if neither sibling is present/readable\n* (partial install) the function returns {@link CONSOLIDATION_CUTOVER_PREFIX}.\n*\n* @param migrationsFolder - Absolute path to the lineage folder being reconciled\n* @returns The 14-char timestamp prefix of the consolidation cutover migration\n* @task T11553\n*/\nfunction resolveConsolidationCutoverPrefix(migrationsFolder) {\n\tconst parent = dirname(migrationsFolder);\n\tfor (const setName of [\"drizzle-cleo-project\", \"drizzle-cleo-global\"]) {\n\t\tconst folder = join(parent, setName);\n\t\tif (!existsSync(folder)) continue;\n\t\ttry {\n\t\t\tconst consolidation = readMigrationFiles({ migrationsFolder: folder }).find((m) => /-consolidation-cleo-/.test(m.name ?? \"\"));\n\t\t\tif (consolidation?.name) return consolidation.name.slice(0, MIGRATION_TIMESTAMP_PREFIX_LEN);\n\t\t} catch {}\n\t}\n\treturn CONSOLIDATION_CUTOVER_PREFIX;\n}\n/**\n* Whether a migration's `YYYYMMDDHHMMSS` timestamp prefix is at or before the\n* consolidation cutover — i.e. it is a PRE-consolidation legacy migration\n* subsumed by the consolidation snapshot (vs a NEW post-consolidation migration\n* that must run normally).\n*\n* @param migrationName - The migration folder name (e.g. `20260321000000_t033-…`)\n* @param cutoverPrefix - The cutover prefix from {@link resolveConsolidationCutoverPrefix}\n* @returns true if at/before the cutover (pre-consolidation), false if after\n* @task T11553\n*/\nfunction isAtOrBeforeCutover(migrationName, cutoverPrefix) {\n\tconst prefix = (migrationName ?? \"\").slice(0, MIGRATION_TIMESTAMP_PREFIX_LEN);\n\tif (prefix.length < MIGRATION_TIMESTAMP_PREFIX_LEN) return true;\n\treturn prefix <= cutoverPrefix;\n}\n/**\n* Check whether a table exists in a SQLite database.\n*/\nfunction tableExists(nativeDb, tableName) {\n\treturn !!nativeDb.prepare(\"SELECT name FROM sqlite_master WHERE type='table' AND name=?\").get(tableName);\n}\n/**\n* Create a pre-migration safety backup of the database file.\n*\n* Only creates the backup once (idempotent). Non-fatal on failure.\n*/\nfunction createSafetyBackup(dbPath) {\n\tconst backupPath = dbPath.replace(/\\.db$/, \"-pre-cleo.db.bak\");\n\tif (!existsSync(backupPath)) try {\n\t\tcopyFileSync(dbPath, backupPath);\n\t} catch {}\n}\n/**\n* Insert a journal entry including `name` so Drizzle v1 beta (which checks by name,\n* not hash) correctly identifies the migration as already applied.\n*\n* Emits INSERT OR IGNORE to avoid duplicate-row errors when called defensively.\n*/\nfunction insertJournalEntry(nativeDb, hash, createdAt, name) {\n\tconst columns = nativeDb.prepare(\"PRAGMA table_info(\\\"__drizzle_migrations\\\")\").all();\n\tconst colNames = new Set(columns.map((c) => c.name));\n\tif (!colNames.has(\"name\")) nativeDb.exec(\"ALTER TABLE \\\"__drizzle_migrations\\\" ADD COLUMN \\\"name\\\" text\");\n\tif (!colNames.has(\"applied_at\")) nativeDb.exec(\"ALTER TABLE \\\"__drizzle_migrations\\\" ADD COLUMN \\\"applied_at\\\" TEXT\");\n\tnativeDb.exec(`INSERT OR IGNORE INTO \"__drizzle_migrations\" (\"hash\", \"created_at\", \"name\") VALUES ('${hash}', ${createdAt}, '${name}')`);\n}\n/**\n* Probe a migration's DDL against the live schema and mark the journal entry\n* applied IF AND ONLY IF all DDL targets already exist in the database.\n*\n* Supports three DDL forms commonly emitted by drizzle migrations:\n* - `ALTER TABLE foo ADD COLUMN bar text` → mark applied if column foo.bar exists\n* - `CREATE TABLE foo (...)` → mark applied if table foo exists\n* - `CREATE INDEX [IF NOT EXISTS] idx_foo ON foo(...)` → mark applied if index exists\n*\n* If the migration contains DDL that doesn't fall into these patterns, or if any\n* target is missing, the function returns false and DOES NOT mark applied —\n* leaving the migration for Drizzle's normal `migrate()` to run.\n*\n* Used by:\n* - Scenario 2 Sub-case B (after journal reset, decide what was already applied)\n* - Scenario 3 (originally inline; now extracted for reuse)\n*\n* Replaces the broken \"wholesale mark applied\" pattern that was the root cause\n* of the ensureColumns band-aid sprawl (T632).\n*\n* ## Eliminated-table tolerance (bug #2 · T11553)\n*\n* A `CREATE TABLE foo` whose `foo` is in `eliminatedTables` — i.e. a LATER\n* migration in the same lineage permanently DROPs it (e.g. `release_manifests`,\n* dropped by `t9686b2`) — is treated as ALREADY SATISFIED. On a DB that ran the\n* whole lineage the table is *supposed* to be absent; without this tolerance the\n* probe refuses to mark the creating migration applied, drizzle re-runs its bare\n* `CREATE TABLE` and throws. See {@link computeEliminatedTables}.\n*\n* ## Zero-DDL discriminator (bug #2 follow-up · T11553)\n*\n* A migration with NO probe-able DDL targets (pure `INSERT`/`UPDATE`/`DELETE`\n* backfill, `DROP TABLE`-only, `CREATE VIEW`, …) cannot be verified by schema\n* inspection. The cutover decides:\n*\n* - **at/before** the consolidation cutover → a PRE-consolidation legacy\n* migration, already subsumed and possibly NON-idempotent (`UPDATE`/plain\n* `INSERT`) → STAMP applied (do NOT re-run).\n* - **after** the cutover → a NEW post-consolidation migration whose effect has\n* NOT run yet → do NOT stamp (return false) so drizzle `migrate()` executes\n* it. New migrations are required to be idempotent (`INSERT OR IGNORE` /\n* `DROP … IF EXISTS` / `CREATE … IF NOT EXISTS`), so running them is correct\n* and harmless on re-run; they journal normally afterwards.\n*\n* Migrations WITH DDL targets keep the probe-tolerance behaviour unchanged\n* (including post-cutover ones like t11538/t11649 that must be probe-stampable\n* once already applied).\n*\n* @param nativeDb - Native SQLite database handle\n* @param migration - One entry from drizzle's readMigrationFiles\n* @param logSubsystem - Logger subsystem name\n* @param eliminatedTables - Final table names a later migration permanently DROPs\n* (from {@link computeEliminatedTables}); their CREATE targets count as\n* satisfied. Defaults to empty (no tolerance) for callers that do not supply it.\n* @param consolidationCutoverPrefix - The cutover timestamp-prefix from\n* {@link resolveConsolidationCutoverPrefix}; gates the zero-DDL stamp/run\n* decision. Defaults to {@link CONSOLIDATION_CUTOVER_PREFIX}.\n* @returns true if the journal entry was inserted; false if migration must run\n*/\nfunction probeAndMarkApplied(nativeDb, migration, logSubsystem, eliminatedTables = /* @__PURE__ */ new Set(), consolidationCutoverPrefix = CONSOLIDATION_CUTOVER_PREFIX) {\n\tconst fullSql = stripSqlComments((Array.isArray(migration.sql) ? migration.sql : [migration.sql ?? \"\"]).join(\"\\n\"));\n\tconst alterColumnRegex = /ALTER\\s+TABLE\\s+[`\"]?(\\w+)[`\"]?\\s+ADD\\s+COLUMN\\s+[`\"]?(\\w+)[`\"]?/gi;\n\tconst createTableRegex = /CREATE\\s+TABLE\\s+(?:IF\\s+NOT\\s+EXISTS\\s+)?[`\"]?(\\w+)[`\"]?/gi;\n\tconst createIndexRegex = /CREATE\\s+(?:UNIQUE\\s+)?INDEX\\s+(?:IF\\s+NOT\\s+EXISTS\\s+)?[`\"]?(\\w+)[`\"]?/gi;\n\tconst createTriggerRegex = /CREATE\\s+TRIGGER\\s+(?:IF\\s+NOT\\s+EXISTS\\s+)?[`\"]?(\\w+)[`\"]?/gi;\n\tconst alterTargets = [];\n\tfor (const m of fullSql.matchAll(alterColumnRegex)) alterTargets.push({\n\t\ttable: m[1],\n\t\tcolumn: m[2]\n\t});\n\tconst renameRegex = /ALTER\\s+TABLE\\s+[`\"]?(\\w+)[`\"]?\\s+RENAME\\s+TO\\s+[`\"]?(\\w+)[`\"]?/gi;\n\tconst renameMap = /* @__PURE__ */ new Map();\n\tfor (const m of fullSql.matchAll(renameRegex)) renameMap.set(m[1], m[2]);\n\tlet allCreatedTablesAreRenamed = true;\n\tconst tableTargets = [];\n\tfor (const m of fullSql.matchAll(createTableRegex)) {\n\t\tconst created = m[1];\n\t\tif (renameMap.has(created)) tableTargets.push(renameMap.get(created));\n\t\telse {\n\t\t\tallCreatedTablesAreRenamed = false;\n\t\t\ttableTargets.push(created);\n\t\t}\n\t}\n\tconst isRebuildOnlyMigration = allCreatedTablesAreRenamed && tableTargets.length > 0 && alterTargets.length === 0;\n\tconst performsTableRebuild = renameMap.size > 0;\n\tconst createIndexWithTableRegex = /CREATE\\s+(?:UNIQUE\\s+)?INDEX\\s+(?:IF\\s+NOT\\s+EXISTS\\s+)?[`\"]?(\\w+)[`\"]?\\s+ON\\s+[`\"]?(\\w+)[`\"]?/gi;\n\tconst indexOnTable = /* @__PURE__ */ new Map();\n\tfor (const m of fullSql.matchAll(createIndexWithTableRegex)) indexOnTable.set(m[1], m[2]);\n\tconst indexTargets = [];\n\tif (!isRebuildOnlyMigration && !performsTableRebuild) for (const m of fullSql.matchAll(createIndexRegex)) {\n\t\tconst idx = m[1];\n\t\tif (eliminatedTables.has(indexOnTable.get(idx) ?? \"\")) continue;\n\t\tindexTargets.push(idx);\n\t}\n\tconst triggerTargets = [];\n\tfor (const m of fullSql.matchAll(createTriggerRegex)) triggerTargets.push(m[1]);\n\tif (alterTargets.length + tableTargets.length + indexTargets.length + triggerTargets.length === 0) {\n\t\tif (isAtOrBeforeCutover(migration.name, consolidationCutoverPrefix)) {\n\t\t\tinsertJournalEntry(nativeDb, migration.hash, migration.folderMillis, migration.name ?? \"\");\n\t\t\tgetLogger(logSubsystem).debug({ migration: migration.name }, `Zero-DDL pre-consolidation migration ${migration.name} stamped applied (subsumed; not re-run).`);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tconst allAltersPresent = alterTargets.every(({ table, column }) => {\n\t\tif (!tableExists(nativeDb, table)) return false;\n\t\treturn nativeDb.prepare(`PRAGMA table_info(${table})`).all().some((c) => c.name === column);\n\t});\n\tconst allTablesPresent = tableTargets.every((t) => tableExists(nativeDb, t) || eliminatedTables.has(t));\n\tconst allIndexesPresent = indexTargets.every((idx) => {\n\t\treturn nativeDb.prepare(`SELECT name FROM sqlite_master WHERE type='index' AND name=?`).all(idx).length > 0;\n\t});\n\tconst allTriggersPresent = triggerTargets.every((trg) => {\n\t\treturn nativeDb.prepare(`SELECT name FROM sqlite_master WHERE type='trigger' AND name=?`).all(trg).length > 0;\n\t});\n\tif (allAltersPresent && allTablesPresent && allIndexesPresent && allTriggersPresent) {\n\t\tinsertJournalEntry(nativeDb, migration.hash, migration.folderMillis, migration.name ?? \"\");\n\t\tgetLogger(logSubsystem).debug({\n\t\t\tmigration: migration.name,\n\t\t\talters: alterTargets.length,\n\t\t\ttables: tableTargets.length,\n\t\t\tindexes: indexTargets.length,\n\t\t\tisRebuildOnly: isRebuildOnlyMigration\n\t\t}, `Migration ${migration.name} DDL already present in schema — marked applied.`);\n\t\treturn true;\n\t}\n\treturn false;\n}\n/**\n* Read the set of migration hashes for a SIBLING lineage folder (T11829).\n*\n* Used to build the cross-lineage orphan-deletion union in {@link reconcileJournal}.\n* Defensive: a missing/unreadable/empty sibling folder yields an empty set rather\n* than throwing — a sibling that does not exist in this install simply contributes\n* no hashes to the union (the reconcile is conservative: fewer known hashes can\n* only mean MORE deletions, so we never over-delete by failing safe to empty, but\n* we also never crash the caller's open on a missing sibling).\n*\n* @param siblingFolder - Absolute path to a sibling drizzle migrations folder.\n* @returns The set of migration hashes declared by that folder (empty on failure).\n*/\nfunction readSiblingMigrationHashes(siblingFolder) {\n\ttry {\n\t\treturn new Set(readMigrationFiles({ migrationsFolder: siblingFolder }).map((m) => m.hash));\n\t} catch {\n\t\treturn /* @__PURE__ */ new Set();\n\t}\n}\n/**\n* Ensure a UNIQUE index on `__drizzle_migrations(hash)` exists so the shared\n* consolidated journal converges idempotently (T11829).\n*\n* With the UNIQUE index in place, the `INSERT OR IGNORE` emitted by\n* {@link insertJournalEntry} becomes a true no-op on a re-probe (rather than\n* appending a duplicate row), so any residual cross-lineage re-probe cannot grow\n* the journal. Creation is guarded behind a one-time dedup: the live consolidated\n* journal currently has no duplicate hashes, but a historically-thrashed journal\n* could, and `CREATE UNIQUE INDEX` would fail on duplicates. We therefore collapse\n* any duplicate-hash rows (keeping the lowest `id`) BEFORE creating the index.\n*\n* Idempotent and cheap: once the index exists, `CREATE UNIQUE INDEX IF NOT EXISTS`\n* is a no-op and the dedup pass finds nothing.\n*\n* @param nativeDb - Native SQLite database handle.\n*/\nfunction ensureJournalHashUnique(nativeDb) {\n\tif (!tableExists(nativeDb, \"__drizzle_migrations\")) return;\n\ttry {\n\t\tnativeDb.exec(\"DELETE FROM \\\"__drizzle_migrations\\\" WHERE id NOT IN (SELECT MIN(id) FROM \\\"__drizzle_migrations\\\" GROUP BY hash)\");\n\t\tnativeDb.exec(\"CREATE UNIQUE INDEX IF NOT EXISTS \\\"idx_drizzle_migrations_hash\\\" ON \\\"__drizzle_migrations\\\" (\\\"hash\\\")\");\n\t} catch {}\n}\n/**\n* Bootstrap and reconcile the Drizzle migration journal.\n*\n* Handles four scenarios:\n* 1. Tables exist but no __drizzle_migrations — bootstrap baseline as applied\n* 2. Journal has orphaned hashes (from older CLEO version) — clear and re-mark all as applied\n* 3. Journal exists but is missing entries for migrations whose DDL has already been applied\n* (e.g., ALTER TABLE ADD COLUMN ran but journal entry was never written — happens when\n* migrations are cherry-picked from worktrees or the process crashes mid-migration).\n* Auto-inserts the missing journal entry so Drizzle skips the migration instead of\n* re-running ALTER TABLE and crashing on \"duplicate column name\".\n* 4. Journal entries exist but have null `name` — Drizzle v1 beta identifies applied\n* migrations by name, so entries without a name are invisible to it, causing already-\n* applied migrations to be re-run and fail with \"duplicate column name\". Backfills\n* the name from the local migration file matched by hash.\n*\n* ## Cross-lineage orphan-deletion guard (T11829 — OOM root fix)\n*\n* The consolidated `cleo.db` carries ONE shared `__drizzle_migrations` journal but\n* is reconciled by MULTIPLE physically-coexisting migration lineages\n* (`drizzle-tasks`, `drizzle-cleo-project`, `drizzle-nexus`, `drizzle-brain`,\n* `drizzle-agent-registry`, `drizzle-conduit`). Each lineage only knows its OWN\n* folder, so a naive Sub-case B classified EVERY sibling lineage's journal rows as\n* \"true orphans\" and DELETEd them — the next sibling open then deleted THIS\n* lineage's rows, so the journal NEVER converged (it oscillated and re-ran\n* BEGIN/COMMIT migrate transactions on every open, holding the WAL writer lock and\n* stacking 300-550 MB-per-connection opens until the host OOM-killed).\n*\n* The fix: an entry is a TRUE orphan only when its hash belongs to NO lineage that\n* physically shares this DB. Callers that share the journal pass\n* `siblingMigrationsFolders` (the OTHER lineages' folders); the orphan-DELETE\n* decision then uses the UNION of every sibling lineage's hashes plus this\n* lineage's own. A hash present in any sibling is preserved (it is that sibling's\n* legitimately-applied migration, not an orphan). Standalone DBs (a single\n* lineage) pass no siblings and behave exactly as before.\n*\n* @param nativeDb - Native SQLite database handle\n* @param migrationsFolder - Path to the drizzle migrations folder\n* @param existenceTable - A table name used to detect if the DB has data (e.g., 'tasks' or 'brain_decisions')\n* @param logSubsystem - Logger subsystem name for reconciliation warnings\n* @param siblingMigrationsFolders - OTHER migration-lineage folders that share this\n* `__drizzle_migrations` journal inside the same consolidated `cleo.db` (T11829).\n* Their hashes are added to the orphan-deletion union so a sibling lineage's rows\n* are never deleted as cross-lineage orphans. Omit (or pass `[]`) for a DB with a\n* single lineage. Unreadable/empty sibling folders are skipped defensively.\n*/\nfunction reconcileJournal(nativeDb, migrationsFolder, existenceTable, logSubsystem, siblingMigrationsFolders = []) {\n\tconst eliminatedTables = computeEliminatedTables(readMigrationFiles({ migrationsFolder }));\n\tconst cutoverPrefix = resolveConsolidationCutoverPrefix(migrationsFolder);\n\tif (tableExists(nativeDb, existenceTable) && !tableExists(nativeDb, \"__drizzle_migrations\")) {\n\t\tconst baseline = readMigrationFiles({ migrationsFolder })[0];\n\t\tif (baseline) {\n\t\t\tnativeDb.exec(`\n CREATE TABLE IF NOT EXISTS \"__drizzle_migrations\" (\n id INTEGER PRIMARY KEY,\n hash text NOT NULL,\n created_at numeric,\n name text,\n applied_at TEXT\n )\n `);\n\t\t\tinsertJournalEntry(nativeDb, baseline.hash, baseline.folderMillis, baseline.name ?? \"\");\n\t\t}\n\t}\n\tensureJournalHashUnique(nativeDb);\n\tif (tableExists(nativeDb, \"__drizzle_migrations\") && tableExists(nativeDb, existenceTable)) {\n\t\tconst localMigrations = readMigrationFiles({ migrationsFolder });\n\t\tconst localHashes = new Set(localMigrations.map((m) => m.hash));\n\t\tconst knownHashes = new Set(localHashes);\n\t\tfor (const siblingFolder of siblingMigrationsFolders) {\n\t\t\tif (siblingFolder === migrationsFolder) continue;\n\t\t\tfor (const m of readSiblingMigrationHashes(siblingFolder)) knownHashes.add(m);\n\t\t}\n\t\tconst dbEntries = nativeDb.prepare(\"SELECT id, hash FROM \\\"__drizzle_migrations\\\"\").all();\n\t\tconst orphanedEntries = dbEntries.filter((e) => !knownHashes.has(e.hash));\n\t\tif (orphanedEntries.length > 0) {\n\t\t\tconst dbHashes = new Set(dbEntries.map((e) => e.hash));\n\t\t\tconst allLocalHashesPresentInDb = localMigrations.every((m) => dbHashes.has(m.hash));\n\t\t\tconst log = getLogger(logSubsystem);\n\t\t\tif (allLocalHashesPresentInDb) log.debug({ extra: orphanedEntries.length }, `Migration journal has ${orphanedEntries.length} entries for migrations not known to this install (DB is ahead). Skipping reconciliation.`);\n\t\t\telse {\n\t\t\t\tlog.warn({ orphaned: orphanedEntries.length }, `Detected ${orphanedEntries.length} true-orphan journal entries from a previous CLEO lineage. Reconciling via DDL probe.`);\n\t\t\t\tconst deleteStmt = nativeDb.prepare(\"DELETE FROM \\\"__drizzle_migrations\\\" WHERE id = ?\");\n\t\t\t\tfor (const e of orphanedEntries) deleteStmt.run(e.id);\n\t\t\t\tconst journaledHashesAfter = new Set(nativeDb.prepare(\"SELECT hash FROM \\\"__drizzle_migrations\\\"\").all().map((r) => r.hash));\n\t\t\t\tfor (const m of localMigrations) {\n\t\t\t\t\tif (journaledHashesAfter.has(m.hash)) continue;\n\t\t\t\t\tprobeAndMarkApplied(nativeDb, m, logSubsystem, eliminatedTables, cutoverPrefix);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif (tableExists(nativeDb, \"__drizzle_migrations\") && tableExists(nativeDb, existenceTable)) {\n\t\tconst localMigrations = readMigrationFiles({ migrationsFolder });\n\t\tconst journalEntries = nativeDb.prepare(\"SELECT hash FROM \\\"__drizzle_migrations\\\"\").all();\n\t\tconst journaledHashes = new Set(journalEntries.map((e) => e.hash));\n\t\tfor (const migration of localMigrations) {\n\t\t\tif (journaledHashes.has(migration.hash)) continue;\n\t\t\tconst alterColumnRegex = /ALTER\\s+TABLE\\s+[`\"]?(\\w+)[`\"]?\\s+ADD\\s+COLUMN\\s+[`\"]?(\\w+)[`\"]?\\s*(.*?)(?:;|$)/gi;\n\t\t\tconst alterMatches = [];\n\t\t\tconst fullSql = (Array.isArray(migration.sql) ? migration.sql : [migration.sql ?? \"\"]).join(\"\\n\");\n\t\t\tfor (const m of fullSql.matchAll(alterColumnRegex)) alterMatches.push({\n\t\t\t\ttable: m[1],\n\t\t\t\tcolumn: m[2],\n\t\t\t\tddl: (m[3] || \"\").trim()\n\t\t\t});\n\t\t\tif (alterMatches.length === 0) {\n\t\t\t\tif (stripSqlComments(fullSql).trim() === \"\") {\n\t\t\t\t\tgetLogger(logSubsystem).debug({ migration: migration.name }, `Migration ${migration.name} is a comment-only baseline marker — marking applied on existing DB.`);\n\t\t\t\t\tinsertJournalEntry(nativeDb, migration.hash, migration.folderMillis, migration.name ?? \"\");\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst renameRe = /ALTER\\s+TABLE\\s+[`\"]?\\w+[`\"]?\\s+RENAME\\s+TO\\s+[`\"]?\\w+[`\"]?/i;\n\t\t\t\tconst createTableRe = /CREATE\\s+TABLE/i;\n\t\t\t\tconst createTriggerRe = /CREATE\\s+TRIGGER/i;\n\t\t\t\tif (renameRe.test(fullSql) && createTableRe.test(fullSql)) probeAndMarkApplied(nativeDb, migration, logSubsystem, eliminatedTables, cutoverPrefix);\n\t\t\t\telse if (createTableRe.test(fullSql) || createTriggerRe.test(fullSql)) probeAndMarkApplied(nativeDb, migration, logSubsystem, eliminatedTables, cutoverPrefix);\n\t\t\t\telse probeAndMarkApplied(nativeDb, migration, logSubsystem, eliminatedTables, cutoverPrefix);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst existingColumns = [];\n\t\t\tconst missingColumns = [];\n\t\t\tfor (const target of alterMatches) {\n\t\t\t\tif (!tableExists(nativeDb, target.table)) {\n\t\t\t\t\tmissingColumns.push(target);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (nativeDb.prepare(`PRAGMA table_info(${target.table})`).all().some((c) => c.name === target.column)) existingColumns.push(target);\n\t\t\t\telse missingColumns.push(target);\n\t\t\t}\n\t\t\tif (missingColumns.length === 0) {\n\t\t\t\tgetLogger(logSubsystem).warn({\n\t\t\t\t\tmigration: migration.name,\n\t\t\t\t\tcolumns: alterMatches\n\t\t\t\t}, `Detected partially-applied migration ${migration.name} — columns exist but journal entry missing. Auto-reconciling.`);\n\t\t\t\tinsertJournalEntry(nativeDb, migration.hash, migration.folderMillis, migration.name ?? \"\");\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (existingColumns.length > 0 && missingColumns.length > 0) {\n\t\t\t\tconst log = getLogger(logSubsystem);\n\t\t\t\tlog.warn({\n\t\t\t\t\tmigration: migration.name,\n\t\t\t\t\texistingColumns: existingColumns.map((c) => `${c.table}.${c.column}`),\n\t\t\t\t\tmissingColumns: missingColumns.map((c) => `${c.table}.${c.column}`)\n\t\t\t\t}, `T920: Detected partial migration ${migration.name} — some ALTER columns exist, some missing. Adding missing columns and marking applied.`);\n\t\t\t\tfor (const { table, column, ddl } of missingColumns) {\n\t\t\t\t\tif (!tableExists(nativeDb, table)) continue;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tnativeDb.exec(`ALTER TABLE ${table} ADD COLUMN ${column}${ddl ? ` ${ddl}` : \"\"}`);\n\t\t\t\t\t\tlog.warn({\n\t\t\t\t\t\t\tmigration: migration.name,\n\t\t\t\t\t\t\ttable,\n\t\t\t\t\t\t\tcolumn\n\t\t\t\t\t\t}, `T920: Added missing column ${table}.${column} to complete partial migration.`);\n\t\t\t\t\t} catch {\n\t\t\t\t\t\tlog.warn({\n\t\t\t\t\t\t\tmigration: migration.name,\n\t\t\t\t\t\t\ttable,\n\t\t\t\t\t\t\tcolumn\n\t\t\t\t\t\t}, `T920: Could not add missing column ${table}.${column} — will let Drizzle migrate() handle it.`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tinsertJournalEntry(nativeDb, migration.hash, migration.folderMillis, migration.name ?? \"\");\n\t\t\t}\n\t\t}\n\t}\n\tif (tableExists(nativeDb, \"__drizzle_migrations\") && tableExists(nativeDb, existenceTable)) {\n\t\tif (!nativeDb.prepare(\"PRAGMA table_info(\\\"__drizzle_migrations\\\")\").all().some((c) => c.name === \"name\")) return;\n\t\tconst localMigrations = readMigrationFiles({ migrationsFolder });\n\t\tconst hashToName = new Map(localMigrations.map((m) => [m.hash, m.name ?? \"\"]));\n\t\tconst unnamedEntries = nativeDb.prepare(\"SELECT id, hash FROM \\\"__drizzle_migrations\\\" WHERE name IS NULL\").all();\n\t\tfor (const entry of unnamedEntries) {\n\t\t\tconst migrationName = hashToName.get(entry.hash);\n\t\t\tif (!migrationName) continue;\n\t\t\tgetLogger(logSubsystem).debug({\n\t\t\t\tid: entry.id,\n\t\t\t\thash: entry.hash,\n\t\t\t\tname: migrationName\n\t\t\t}, `Backfilling missing name on journal entry id=${entry.id} (Drizzle v1 beta legacy compat).`);\n\t\t\tnativeDb.exec(`UPDATE \"__drizzle_migrations\" SET \"name\" = '${migrationName}' WHERE id = ${entry.id}`);\n\t\t}\n\t}\n}\n/**\n* Reconcile + apply the standalone `drizzle-brain` migrations against a CONSOLIDATED\n* `cleo.db` whose prefixed `brain_*` tables were already created by the\n* consolidated migration (T11647). For each not-yet-journaled `drizzle-brain`\n* migration, this either:\n*\n* 1. **Marks it applied without running** when its net effect is ALREADY present:\n* every `CREATE TABLE` / `RENAME TO` result table exists, OR it is an\n* ALTER-ADD-COLUMN-only migration whose columns all already exist (the\n* consolidated migration created the prefixed tables with their FINAL\n* columns). This avoids the `CREATE TABLE`/rename collisions and\n* \"duplicate column\" errors a wholesale re-run would hit.\n* 2. **Executes it directly** (native `exec`, then journals it) when it is\n* genuinely missing — the UNPREFIXED legacy runtime tables (`deriver_queue`,\n* `sticky_tags`, `session_narrative`, `brain_task_observations`) the\n* consolidated migration omits but the runtime queries. Those migrations are\n* all `IF NOT EXISTS` DDL + idempotent `INSERT OR IGNORE` backfills, so a\n* direct exec is safe.\n*\n* ## Why NOT {@link reconcileJournal} + drizzle `migrate()`\n*\n* The brain `__drizzle_migrations` journal is SHARED with the TASKS domain inside\n* the same consolidated `cleo.db`. On a first consolidated open the brain hashes\n* are not yet journaled, so `reconcileJournal`'s Scenario-2 path classifies the\n* TASKS-domain hashes as \"orphans\" of the brain migration set and DELETES them —\n* which forces the tasks domain to re-run its table-rebuild migrations on the\n* NEXT tasks open and crash (`tasks_new RENAME TO tasks` fires the\n* `task_relations_non_containment_insert` trigger against a mid-rebuild `tasks`).\n* And drizzle's `migrate()` wraps the brain DDL in a `BEGIN`/`COMMIT` over the\n* shared handle. This function is **additive-only** (it never deletes a journal\n* row) and uses plain `nativeDb.exec()`, so it cannot corrupt the shared journal\n* or engage the cross-domain transaction.\n*\n* Idempotent: dedups by hash (the journal has no UNIQUE on `hash`, so an explicit\n* presence check is required). On a brand-new / standalone `brain.db` (no\n* prefixed brain tables yet) every migration is \"genuinely missing\" and is\n* executed in order — equivalent to a full migrate.\n*\n* @param nativeDb - Native SQLite handle (the consolidated `cleo.db`).\n* @param migrationsFolder - The `drizzle-brain` migrations folder.\n* @returns `{ marked, applied }` — counts of migrations journaled-without-running\n* vs executed-and-journaled.\n*\n* @task T11647\n*/\nfunction reconcileBrainMigrationsForConsolidatedDb(nativeDb, migrationsFolder) {\n\tnativeDb.exec(`\n CREATE TABLE IF NOT EXISTS \"__drizzle_migrations\" (\n id INTEGER PRIMARY KEY,\n hash text NOT NULL,\n created_at numeric,\n name text,\n applied_at TEXT\n )\n `);\n\tconst localMigrations = sanitizeMigrationStatements(readMigrationFiles({ migrationsFolder }));\n\tconst existingHashes = new Set(nativeDb.prepare(\"SELECT hash FROM \\\"__drizzle_migrations\\\"\").all().map((r) => r.hash));\n\tconst eliminatedTables = computeEliminatedTables(localMigrations);\n\tconst createTableRegex = /CREATE\\s+TABLE\\s+(?:IF\\s+NOT\\s+EXISTS\\s+)?[`\"]?(\\w+)[`\"]?/gi;\n\tconst renameRegex = /ALTER\\s+TABLE\\s+[`\"]?(\\w+)[`\"]?\\s+RENAME\\s+TO\\s+[`\"]?(\\w+)[`\"]?/gi;\n\tconst addColumnRegex = /ALTER\\s+TABLE\\s+[`\"]?(\\w+)[`\"]?\\s+ADD\\s+COLUMN\\s+[`\"]?(\\w+)[`\"]?/gi;\n\tconst columnExists = (table, column) => {\n\t\tif (!tableExists(nativeDb, table)) return false;\n\t\treturn nativeDb.prepare(`PRAGMA table_info(\"${table}\")`).all().some((c) => c.name === column);\n\t};\n\tlet marked = 0;\n\tlet applied = 0;\n\tfor (const m of localMigrations) {\n\t\tif (existingHashes.has(m.hash)) continue;\n\t\tconst fullSql = stripSqlComments(m.sql.join(\"\\n\"));\n\t\tconst renameMap = /* @__PURE__ */ new Map();\n\t\tconst renameFinals = [];\n\t\tfor (const match of fullSql.matchAll(renameRegex)) {\n\t\t\trenameMap.set(match[1], match[2]);\n\t\t\trenameFinals.push(match[2]);\n\t\t}\n\t\tconst resultTables = new Set(renameFinals);\n\t\tfor (const match of fullSql.matchAll(createTableRegex)) {\n\t\t\tconst created = match[1];\n\t\t\tresultTables.add(renameMap.get(created) ?? created);\n\t\t}\n\t\tconst addColumns = [];\n\t\tfor (const match of fullSql.matchAll(addColumnRegex)) addColumns.push({\n\t\t\ttable: match[1],\n\t\t\tcolumn: match[2]\n\t\t});\n\t\tconst tablesSatisfied = resultTables.size > 0 && [...resultTables].every((t) => tableExists(nativeDb, t) || eliminatedTables.has(t));\n\t\tconst altersSatisfied = resultTables.size === 0 && addColumns.length > 0 && addColumns.every(({ table, column }) => columnExists(table, column));\n\t\tif (tablesSatisfied || altersSatisfied) {\n\t\t\tfor (const statement of m.sql) {\n\t\t\t\tconst stripped = stripSqlComments(statement).trim();\n\t\t\t\tif (/^CREATE\\s+(?:UNIQUE\\s+)?INDEX\\s+IF\\s+NOT\\s+EXISTS/i.test(stripped) && !/CREATE\\s+TABLE|ALTER\\s+TABLE/i.test(stripped)) nativeDb.exec(statement);\n\t\t\t}\n\t\t\tinsertJournalEntry(nativeDb, m.hash, m.folderMillis, m.name ?? \"\");\n\t\t\texistingHashes.add(m.hash);\n\t\t\tmarked++;\n\t\t\tcontinue;\n\t\t}\n\t\tfor (const statement of m.sql) nativeDb.exec(statement);\n\t\tinsertJournalEntry(nativeDb, m.hash, m.folderMillis, m.name ?? \"\");\n\t\texistingHashes.add(m.hash);\n\t\tapplied++;\n\t}\n\treturn {\n\t\tmarked,\n\t\tapplied\n\t};\n}\n/**\n* Collect the `.message` of an Error and every nested `.cause` (recursively).\n*\n* Drizzle wraps the underlying node:sqlite error in a `DrizzleError` whose own\n* `.message` is generic (\"Failed to run the query …\") while the real SQLite\n* message (\"table nexus_nodes already exists\") lives in `.cause.message`. Error\n* predicates that only test the top-level `.message` miss the wrapped case and\n* rethrow — defeating the migrateWithRetry reconcile path. Walking the cause\n* chain (with a depth guard against pathological cycles) lets the predicates see\n* the real message regardless of how many layers wrap it.\n*\n* @param err - The thrown value (Error, wrapped Error, or anything else)\n* @returns All messages found along the cause chain, joined with `\\n`\n*/\nfunction collectErrorMessages(err) {\n\tconst messages = [];\n\tlet current = err;\n\tfor (let depth = 0; current instanceof Error && depth < 16; depth++) {\n\t\tmessages.push(current.message);\n\t\tcurrent = current.cause;\n\t}\n\treturn messages.join(\"\\n\");\n}\n/**\n* Check whether an error is a SQLite \"duplicate column name\" error.\n*\n* These are thrown when an ALTER TABLE ADD COLUMN statement is re-executed\n* after the column was already added (Scenario 3 in reconcileJournal).\n*\n* Inspects the full `.cause` chain so a Drizzle-wrapped error (whose real SQLite\n* message lives in `.cause.message`) is still recognised.\n*/\nfunction isDuplicateColumnError(err) {\n\tif (!(err instanceof Error)) return false;\n\treturn /duplicate column name/i.test(collectErrorMessages(err));\n}\n/**\n* T9174: Check for \"table X already exists\" SQLite error.\n* Occurs when migration SQL lacks IF NOT EXISTS but startup DDL already ran.\n*\n* Inspects the full `.cause` chain so a Drizzle-wrapped error (whose real SQLite\n* message lives in `.cause.message`) is still recognised.\n*/\nfunction isTableAlreadyExistsError(err) {\n\tif (!(err instanceof Error)) return false;\n\treturn /table .+ already exists/i.test(collectErrorMessages(err));\n}\n/**\n* Check whether a SQL statement is \"executable\" — i.e., contains something\n* other than whitespace and SQL comments.\n*\n* Used by sanitizeMigrationStatements to filter out both whitespace-only\n* statements (from trailing `--> statement-breakpoint` markers) and comment-only\n* statements (from T1165 probe-and-skip baseline markers).\n*\n* @param stmt - A single SQL statement string\n* @returns false if the statement should be filtered out (no executable DDL)\n*/\nfunction isExecutableStatement(stmt) {\n\tif (stmt.trim() === \"\") return false;\n\treturn stmt.replace(/--[^\\n]*/g, \"\").replace(/\\/\\*[\\s\\S]*?\\*\\//g, \"\").trim() !== \"\";\n}\n/**\n* Filter whitespace-only and comment-only statements from drizzle's readMigrationFiles output.\n*\n* Guards against two classes of non-executable statements:\n*\n* 1. **Whitespace-only** — caused by trailing `--> statement-breakpoint` markers.\n* drizzle-orm splits migration files on that marker, producing array entries\n* that are purely whitespace (e.g., `\"\\n\"`). Passing that to\n* `session.run(sql.raw(\"\\n\"))` causes a \"Failed to run the query '\\n'\" crash.\n*\n* 2. **Comment-only** — the T1165 probe-and-skip baseline marker pattern. A\n* migration.sql that contains only SQL comments (no executable DDL) is the\n* designated anchor for drizzle-kit's snapshot chain. On fresh installs the\n* baseline migration should be a no-op; on existing installs reconcileJournal\n* Scenario 3 pre-marks it applied before migrate() is called. Either way,\n* drizzle's session.run() must never receive a comment-only SQL string —\n* node:sqlite's `prepare()` rejects it with `ERR_INVALID_STATE`.\n*\n* This function is idempotent: migrations with only real DDL pass through unchanged.\n*\n* @param migrations - Array returned by readMigrationFiles\n* @returns A new array where every migration's `.sql` property has been\n* filtered to remove whitespace-only and comment-only entries.\n*/\nfunction sanitizeMigrationStatements(migrations) {\n\treturn migrations.map((migration) => ({\n\t\t...migration,\n\t\tsql: migration.sql.filter(isExecutableStatement)\n\t}));\n}\n/**\n* Run drizzle migrations after sanitizing whitespace-only SQL statements.\n*\n* Reads migration files via {@link readMigrationFiles}, filters any\n* empty/whitespace-only statement chunks, then delegates to\n* {@link migrateSync} from `drizzle-orm/sqlite-core` — bypassing the\n* re-read that drizzle's `migrate()` would perform internally.\n*\n* The session is accessed through the public {@link NodeSQLiteDatabase._}\n* property ({@link SQLiteAsyncDatabase._}) — no internal-type cast needed\n* in rc.4.\n*\n* Use this at every call site instead of drizzle's `migrate()` to defend\n* against malformed migration files regardless of authoring discipline.\n*\n* @param db - Drizzle NodeSQLiteDatabase instance\n* @param config - Migration config (migrationsFolder required)\n*/\nfunction migrateSanitized(db, config) {\n\tmigrateSync(sanitizeMigrationStatements(readMigrationFiles(config)), db._.session, config);\n}\n/**\n* Run Drizzle migrations with SQLITE_BUSY retry and exponential backoff.\n*\n* Also handles \"duplicate column name\" errors (Scenario 3): if Drizzle tries to\n* re-apply a migration whose DDL columns already exist (journal entry missing),\n* this function calls reconcileJournal again to insert the missing entry and\n* retries migrate() once more. This is the belt-and-suspenders safety net for\n* any partial migration that slips through the proactive reconcileJournal check.\n*\n* Uses migrateSanitized internally to filter whitespace-only SQL statements\n* before they reach drizzle's session.run() (T1159 defense-in-depth).\n*\n* @param db - Drizzle database instance\n* @param migrationsFolder - Path to the drizzle migrations folder\n* @param nativeDb - Optional native SQLite handle for duplicate-column auto-reconcile\n* @param existenceTable - Optional existence-check table name for auto-reconcile\n* @param logSubsystem - Optional logger subsystem name for auto-reconcile warnings\n*/\nfunction migrateWithRetry(db, migrationsFolder, nativeDb, existenceTable, logSubsystem) {\n\tlet duplicateColumnReconciled = false;\n\tlet tableExistsReconciled = false;\n\tfor (let attempt = 1; attempt <= MAX_MIGRATION_RETRIES; attempt++) try {\n\t\tmigrateSanitized(db, { migrationsFolder });\n\t\treturn;\n\t} catch (err) {\n\t\tif (isDuplicateColumnError(err) && !duplicateColumnReconciled && nativeDb !== void 0 && existenceTable !== void 0 && logSubsystem !== void 0) {\n\t\t\tduplicateColumnReconciled = true;\n\t\t\treconcileJournal(nativeDb, migrationsFolder, existenceTable, logSubsystem);\n\t\t\tcontinue;\n\t\t}\n\t\tif (isTableAlreadyExistsError(err) && !tableExistsReconciled && nativeDb !== void 0 && existenceTable !== void 0 && logSubsystem !== void 0) {\n\t\t\ttableExistsReconciled = true;\n\t\t\tgetLogger(logSubsystem).warn({ message: err.message }, \"[T9174] Migration \\\"table already exists\\\" — reconciling journal and retrying\");\n\t\t\treconcileJournal(nativeDb, migrationsFolder, existenceTable, logSubsystem);\n\t\t\tcontinue;\n\t\t}\n\t\tif (!isSqliteBusy(err) || attempt === MAX_MIGRATION_RETRIES) throw err;\n\t\tconst delay = Math.min(MIGRATION_RETRY_BASE_DELAY_MS * 2 ** (attempt - 1) * (1 + Math.random() * .5), MIGRATION_RETRY_MAX_DELAY_MS);\n\t\tAtomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, Math.round(delay));\n\t}\n}\n/**\n* Ensure all required columns exist on a table.\n*\n* Uses PRAGMA table_info to inspect the schema and adds any missing columns\n* via ALTER TABLE ADD COLUMN. Safety net for databases where Drizzle migrations\n* could not run due to journal corruption or version skew.\n*\n* The `context` parameter (T9169) categorizes the call site so log levels can\n* reflect intent:\n*\n* - **`'legacy-upgrade'`** (default): the call is a compatibility safety net\n* for a DB created by an older CLEO version. Missing columns are EXPECTED\n* and the repair is informational. Logs at WARN level.\n*\n* - **`'fresh'`**: the call follows a successful migration run on a\n* newly-created DB. Missing columns indicate a migration-chain DEFECT\n* (missing forward migration or breakpoint truncation). Logs at ERROR\n* level so the CI schema-warning gate (T9170) can fail the build.\n*\n* @param nativeDb - Native SQLite database handle\n* @param tableName - Table to check (e.g., 'tasks')\n* @param requiredColumns - Columns that must exist\n* @param logSubsystem - Logger subsystem name\n* @param context - 'legacy-upgrade' (default, WARN) or 'fresh' (ERROR)\n*/\nfunction ensureColumns(nativeDb, tableName, requiredColumns, logSubsystem, context = \"legacy-upgrade\") {\n\tif (!tableExists(nativeDb, tableName)) return;\n\tif (requiredColumns.length === 0) return;\n\tconst columns = nativeDb.prepare(`PRAGMA table_info(${tableName})`).all();\n\tconst existingCols = new Set(columns.map((c) => c.name));\n\tfor (const req of requiredColumns) if (!existingCols.has(req.name)) {\n\t\tconst log = getLogger(logSubsystem);\n\t\tconst message = `Adding missing column ${tableName}.${req.name} via ALTER TABLE`;\n\t\tconst fields = {\n\t\t\tcolumn: req.name,\n\t\t\tcontext\n\t\t};\n\t\tif (context === \"fresh\") log.error(fields, `${message} — MIGRATION DEFECT (fresh DB should not need repair)`);\n\t\telse log.warn(fields, message);\n\t\tnativeDb.exec(`ALTER TABLE ${tableName} ADD COLUMN ${req.name} ${req.ddl}`);\n\t}\n}\n//#endregion\n//#region ../core/dist/store/resolve-migrations-folder.js\n/**\n* ESM-native migration folder resolver for @cleocode/core.\n*\n* Replaces fragile `__dirname` path-math with Node module resolution so the\n* correct migrations directory is found regardless of the calling layout:\n*\n* - **Bundled** (esbuild dist/): @cleocode/core is a real npm package in\n* node_modules — `createRequire().resolve('@cleocode/core')` returns\n* `…/node_modules/@cleocode/core/dist/index.js`; two dirname() calls\n* yield the package root.\n* - **Workspace dev** (tsx source mode): pnpm links @cleocode/core to\n* `packages/core/dist/index.js`; same dirname chain, same result.\n* - **Global npm install**: `npm i -g @cleocode/cleo @cleocode/core` installs\n* both packages; createRequire from the cleo binary resolves core via\n* NODE_PATH or global node_modules — same dirname chain applies.\n*\n* Resolution order (synchronous):\n* 1. `import.meta.resolve('@cleocode/core', import.meta.url)` — ESM-native,\n* Node 18.19+ (two-arg form with parent URL for self-resolution context).\n* 2. `createRequire(import.meta.url).resolve('@cleocode/core')` — CJS interop\n* fallback, works everywhere including bundled esbuild output.\n*\n* @throws {Error} if both resolution strategies fail (indicates a broken\n* install where @cleocode/core is not reachable from the current module).\n*\n* @task T1177\n* @epic T1150\n*/\n/**\n* Derive the @cleocode/core package root from the resolved main entry path.\n*\n* The main entry exported by @cleocode/core is always `dist/index.js` (one\n* directory deep inside the package root), so two `dirname()` calls walk up:\n* `…/core/dist/index.js` → `…/core/dist` → `…/core` (package root).\n*/\nfunction coreRootFromEntry(entryPath) {\n\treturn dirname(dirname(entryPath));\n}\n/**\n* Resolve the absolute path to a named drizzle migrations folder inside\n* `@cleocode/core`, robust to bundled / workspace / global-install layouts.\n*\n* @param setName - The migrations sub-directory name, e.g. `'drizzle-tasks'`.\n* @returns Absolute path to the migrations folder (may or may not exist on\n* disk — callers that need the folder to exist should validate separately).\n* @throws {Error} If @cleocode/core cannot be resolved from the current module.\n*\n* @example\n* ```ts\n* const folder = resolveCorePackageMigrationsFolder('drizzle-tasks');\n* // → '/…/packages/core/migrations/drizzle-tasks' (workspace dev)\n* // → '/…/node_modules/@cleocode/core/migrations/drizzle-tasks' (installed)\n* ```\n*/\n/**\n* Every migration lineage that can physically share a consolidated `cleo.db`\n* `__drizzle_migrations` journal (T11829 · SG-DB-SUBSTRATE-V2).\n*\n* The consolidated single-file-per-scope substrate has ONE shared journal per file\n* but is reconciled by every lineage whose tables coexist in that file. Each\n* lineage's `reconcileJournal` must treat the OTHER lineages' rows as known (not\n* orphans) — otherwise the journal never converges and every open re-thrashes the\n* WAL writer lock under `busy_timeout`, stacking 300-550 MB connection opens until\n* the host OOM-kills (the confirmed root cause).\n*\n* This is the SSoT for that union. It intentionally lists BOTH the project-scope\n* lineages (`drizzle-tasks`, `drizzle-cleo-project`, `drizzle-nexus`,\n* `drizzle-brain`, `drizzle-conduit`) and the global-scope lineages\n* (`drizzle-cleo-global`, `drizzle-agent-registry`, `drizzle-skills`,\n* `drizzle-telemetry`). Over-inclusion is SAFE and conservative: a sibling whose\n* hash never appears in a given file's journal contributes nothing, and a hash that\n* DOES appear can only be a legitimately-applied migration of that lineage — so\n* adding it to the union only ever PREVENTS a wrongful deletion, never causes one.\n* Listing a lineage absent from a given install is harmless —\n* {@link resolveConsolidatedJournalSiblings}'s caller skips folders that read empty.\n*/\nvar CONSOLIDATED_JOURNAL_LINEAGES = [\n\t\"drizzle-tasks\",\n\t\"drizzle-cleo-project\",\n\t\"drizzle-nexus\",\n\t\"drizzle-brain\",\n\t\"drizzle-conduit\",\n\t\"drizzle-cleo-global\",\n\t\"drizzle-agent-registry\",\n\t\"drizzle-skills\",\n\t\"drizzle-telemetry\"\n];\n/**\n* Resolve the SIBLING migration folders that share the consolidated `cleo.db`\n* journal with the given lineage (T11829).\n*\n* Pass the result as `siblingMigrationsFolders` to `reconcileJournal` so its\n* cross-lineage orphan-deletion guard knows every hash that legitimately belongs\n* to a coexisting lineage. The caller's OWN folder is excluded from the result.\n*\n* @param ownSetName - The lineage doing the reconcile, e.g. `'drizzle-tasks'`.\n* @returns Absolute paths to the OTHER consolidated-journal lineage folders.\n*\n* @example\n* ```ts\n* reconcileJournal(nativeDb, folder, 'tasks', 'sqlite',\n* resolveConsolidatedJournalSiblings('drizzle-tasks'));\n* ```\n*/\nfunction resolveConsolidatedJournalSiblings(ownSetName) {\n\treturn CONSOLIDATED_JOURNAL_LINEAGES.filter((name) => name !== ownSetName).map((name) => resolveCorePackageMigrationsFolder(name));\n}\nfunction resolveCorePackageMigrationsFolder(setName) {\n\ttry {\n\t\treturn join(coreRootFromEntry(fileURLToPath(import.meta.resolve(\"@cleocode/core\", import.meta.url))), \"migrations\", setName);\n\t} catch {}\n\tconst _require = createRequire(import.meta.url);\n\ttry {\n\t\treturn join(coreRootFromEntry(_require.resolve(\"@cleocode/core\")), \"migrations\", setName);\n\t} catch (err) {\n\t\tthrow new Error(`resolveCorePackageMigrationsFolder(\"${setName}\"): cannot locate @cleocode/core from \"${import.meta.url}\". Ensure @cleocode/core is installed (workspace or npm). Original error: ${err.message}`);\n\t}\n}\n//#endregion\n//#region ../core/dist/store/writer-lease-schema.js\n/**\n* Drizzle ORM schema for the **DbWriterLease** arbitration tables (T11627 ST-2).\n*\n* Two operational tables co-located inside EACH scope's consolidated `cleo.db`\n* (project + global), migrated via the existing `drizzle-cleo-project` /\n* `drizzle-cleo-global` migration sets so lease state lives next to the data it\n* guards and is auto-split by the dual-cleo.db boundary\n* ({@link resolveDualScopeDbPath}). They are NOT part of the exodus target shape\n* under `schema/cleo-project/` — they are pure runtime infrastructure that the\n* lease engine ({@link withWriterLease}) reads and writes via `BEGIN IMMEDIATE`.\n*\n* ## `_writer_leases` — exactly ONE active row per (scope, lane)\n*\n* AC1 (one writer per scope/lane) is enforced by a **partial UNIQUE index**\n* `WHERE active = 1`. drizzle-orm does **not** surface partial-`WHERE` indexes in\n* its typed schema API (cf. `conduit-schema.ts:339` `project_agent_refs.enabled`,\n* `agent-registry-schema.ts`), so the index is emitted as **raw SQL in the lease\n* baseline migration** — this module declares only the full-column table. This is\n* the established repo pattern, not a deviation. The runtime bootstrap asserts the\n* index exists via {@link assertWriterLeaseActiveIndexPresent} so a missing index\n* (e.g. a migration that never ran) fails loudly instead of silently allowing two\n* active rows.\n*\n* ## `_writer_queue` — FIFO + priority waiters\n*\n* Ordered `priority ASC, ticket ASC` (priority-then-FIFO). The full (non-partial)\n* ordering index IS expressible in drizzle and is declared inline here; only the\n* partial-unique active-row index requires raw SQL.\n*\n* @module\n* @task T11627\n* @epic T11625\n* @see ./writer-lease.ts — the engine that arbitrates over these tables\n* @see ../../migrations/drizzle-cleo-project — project lease migration (raw partial index)\n* @see ../../migrations/drizzle-cleo-global — global lease migration (raw partial index)\n*/\n/**\n* The physical name of the lease table. Exported so the engine, the bootstrap\n* assertion, and tests all reference the single source of truth.\n*/\nvar WRITER_LEASES_TABLE = \"_writer_leases\";\n/**\n* The physical name of the lease waiter-queue table.\n*/\nvar WRITER_QUEUE_TABLE = \"_writer_queue\";\n/**\n* The physical name of the partial-UNIQUE active-row index. Asserted present at\n* bootstrap because drizzle cannot emit it (raw SQL in the baseline migration).\n*/\nvar WRITER_LEASES_ACTIVE_INDEX = \"ux_writer_leases_active\";\nsqliteTable(WRITER_LEASES_TABLE, {\n\tid: integer(\"id\").primaryKey(),\n\tscope: text(\"scope\").notNull(),\n\tlane: text(\"lane\").notNull(),\n\tholderId: text(\"holder_id\").notNull(),\n\tholderPid: integer(\"holder_pid\").notNull(),\n\tepoch: integer(\"epoch\").notNull(),\n\tacquiredAt: integer(\"acquired_at\").notNull(),\n\theartbeatAt: integer(\"heartbeat_at\").notNull(),\n\tttlMs: integer(\"ttl_ms\").notNull(),\n\treentrancyDepth: integer(\"reentrancy_depth\").notNull().default(1),\n\tactive: integer(\"active\").notNull().default(1)\n});\nsqliteTable(WRITER_QUEUE_TABLE, {\n\tticket: integer(\"ticket\").primaryKey({ autoIncrement: true }),\n\tscope: text(\"scope\").notNull(),\n\tlane: text(\"lane\").notNull(),\n\tholderId: text(\"holder_id\").notNull(),\n\tpriority: integer(\"priority\").notNull().default(100),\n\tenqueuedAt: integer(\"enqueued_at\").notNull(),\n\tdeadlineAt: integer(\"deadline_at\").notNull()\n}, (table) => [index(\"ix_writer_queue_order\").on(table.scope, table.lane, table.priority, table.ticket)]);\n/**\n* Assert that the raw-SQL partial-UNIQUE active-row index is physically present\n* on the given native `cleo.db` handle.\n*\n* Because drizzle cannot emit a partial-`WHERE` index, AC1 enforcement depends\n* entirely on the hand-written baseline migration having run. This check makes a\n* missing index a loud, immediate failure at bootstrap (or in T8) rather than a\n* silent loss of the single-active-writer invariant.\n*\n* @param nativeDb - The native `DatabaseSync` handle for a scope's `cleo.db`.\n* @throws {Error} `E_WRITER_LEASE_INDEX_MISSING` if `ux_writer_leases_active` is\n* absent (the lease migration did not run, or the partial index was dropped).\n*\n* @example\n* ```ts\n* const nativeDb = (handle.db as { $client: DatabaseSync }).$client;\n* assertWriterLeaseActiveIndexPresent(nativeDb); // throws if AC1 index missing\n* ```\n*\n* @task T11627\n*/\nfunction assertWriterLeaseActiveIndexPresent(nativeDb) {\n\tif (!nativeDb.prepare(`SELECT name FROM sqlite_master WHERE type = 'index' AND name = ?`).get(\"ux_writer_leases_active\")) throw new Error(`E_WRITER_LEASE_INDEX_MISSING: partial-unique active-row index \"${WRITER_LEASES_ACTIVE_INDEX}\" is absent from this cleo.db. The lease baseline migration (drizzle-cleo-{project,global}/…_t11891-writer-leases) did not run, so the single-active-writer invariant (AC1) is unenforced.`);\n}\n/** Default advisory priority (lower acquires sooner). */\nvar DEFAULT_PRIORITY = 100;\n/** Max wall-clock a single acquire will spin before giving up (ms). */\nvar ACQUIRE_DEADLINE_MS = 3e4;\n/** Backoff between contended claim retries (ms). */\nvar CLAIM_RETRY_DELAY_MS = 25;\n/**\n* Lazily-memoized module logger.\n*\n* Constructed on first use rather than at import time. A top-level\n* `getLogger(...)` call executes the `'../logger.js'` factory during module\n* initialization, which — when this module is pulled into a test's mocked\n* import graph via `dual-scope-db.ts` → `writer-lease.ts` — reaches a\n* `vi.mock('../../logger.js')` factory before its module-scoped spy `const` has\n* been initialized, throwing a TDZ `ReferenceError`. Deferring the call to the\n* first log site keeps import-time side-effect-free and matches the\n* call-inside-function pattern used by `dual-scope-db.ts` and\n* `brain-writer-thread.ts`.\n*\n* @task T11627\n*/\nvar _log = null;\nfunction log() {\n\tif (_log === null) _log = getLogger(\"writer-lease\");\n\treturn _log;\n}\nvar _cachedMode = null;\nvar _supervisorDemotionLogged = false;\n/**\n* Resolve the writer-lease mode from `CLEO_WRITER_LEASE_MODE`, once per process.\n*\n* Unknown / unset values resolve to `'local'` — the production-safe default while\n* the supervisor daemon is disabled.\n*\n* @returns The resolved {@link LeaseMode}.\n*\n* @task T11627\n*/\nfunction resolveLeaseMode() {\n\tif (_cachedMode !== null) return _cachedMode;\n\tconst raw = process.env.CLEO_WRITER_LEASE_MODE;\n\tswitch (raw) {\n\t\tcase \"supervisor\":\n\t\tcase \"local\":\n\t\tcase \"off\":\n\t\tcase \"require\":\n\t\t\t_cachedMode = raw;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t_cachedMode = \"local\";\n\t\t\tbreak;\n\t}\n\treturn _cachedMode;\n}\n/**\n* The mode actually used for arbitration. `supervisor` demotes to `local` in ST-2\n* because the IPC client is not wired yet — a dead/absent arbiter must never\n* deadlock a write. Logged once.\n*/\nfunction effectiveMode() {\n\tconst mode = resolveLeaseMode();\n\tif (mode === \"supervisor\") {\n\t\tif (!_supervisorDemotionLogged) {\n\t\t\t_supervisorDemotionLogged = true;\n\t\t\tlog().info(\"CLEO_WRITER_LEASE_MODE=supervisor but no IPC client is wired (ST-2); demoting to local-mode arbitration for the process lifetime.\");\n\t\t}\n\t\treturn \"local\";\n\t}\n\treturn mode;\n}\n/**\n* Default resolver: route through the dual-scope chokepoint so the lease\n* migration is applied (tables + raw partial-unique index), then extract the\n* native handle drizzle holds on `$client` together with the handle's resolved\n* `dbPath` (the lease-scope discriminator). When an explicit `dbPath` is supplied\n* the cached path-aware opener is used so the lease row lands in THAT file (the\n* multi-project-in-one-process case — Finding 1).\n*/\nvar defaultNativeDbResolver = async (scope, dbPath) => {\n\tlet handle;\n\tif (dbPath !== void 0 && dbPath !== resolveDualScopeDbPath(scope)) handle = scope === \"project\" ? await openDualScopeDbAtPath(\"project\", dbPath) : await openDualScopeDbAtPath(\"global\", dbPath);\n\telse handle = scope === \"project\" ? await openDualScopeDb(\"project\") : await openDualScopeDb(\"global\");\n\treturn {\n\t\tnative: handle.db.$client,\n\t\tdbPath: handle.dbPath ?? dbPath ?? resolveDualScopeDbPath(scope)\n\t};\n};\nvar _nativeDbResolver = defaultNativeDbResolver;\n/**\n* Resolve the absolute dbPath for a scope WITHOUT opening the handle. Used to\n* build the memo key on the re-entrant fast path (before the native resolver\n* await). Defaults to the canonical scope→path resolver (deterministic, no I/O);\n* a test native-resolver injection swaps in the matching synthetic token so the\n* key built here equals the {@link LeaseTarget.dbPath} the resolver returns.\n*/\nvar _dbPathResolver = resolveDualScopeDbPath;\n/**\n* `Map<\\`${scope}::${dbPath}::${lane}\\`, GrantEntry>` — the active grant per\n* (scope, dbPath, lane). Keyed on the EXISTING `cacheKey(scope, dbPath)` composite\n* (spec §6 Seam 0) so two DIFFERENT project files in one process are distinct\n* lease scopes — the in-process grant is NEVER mis-shared across projects.\n*/\nvar _grantMemo = /* @__PURE__ */ new Map();\n/**\n* In-flight FIRST-acquisition promises per memo key (Finding 2 — single-flight).\n*\n* The re-entrant fast path memoizes the active grant, but the FIRST acquisition\n* resolves the native handle (`await _nativeDbResolver`) BEFORE writing the memo\n* entry. Two callers racing the first acquire would both observe an empty memo\n* across that await and both run the full claim path — the loser then spins the\n* whole acquire window and degrades to a lease-less write. This map makes the\n* first acquisition single-flight: concurrent callers await the SAME in-flight\n* acquire and share the resulting grant (refcount++), exactly like a nested\n* same-frame re-entry.\n*/\nvar _inflightAcquire = /* @__PURE__ */ new Map();\n/**\n* Build the lease-scope memo key. Keyed on `${scope}::${dbPath}::${lane}` — the\n* `${scope}::${dbPath}` prefix is byte-equal to `cacheKey(scope, dbPath)` in\n* `dual-scope-db.ts` so the lease scope and the handle cache agree on identity.\n*\n* Every call site MUST pass a canonicalized dbPath — {@link canonicalizeDbPath}\n* is the single normalization boundary.\n*/\nfunction memoKey(scope, dbPath, lane) {\n\treturn `${scope}::${dbPath}::${lane}`;\n}\n/**\n* Normalize a dbPath for memo-key and resolver use before every lease operation.\n*\n* This is the SINGLE normalization boundary. Every public API that accepts or\n* constructs a dbPath (acquire, release, hasActiveGrant, assertWriterLeaseHeld)\n* runs the path through this function before constructing a memo key, so alias\n* filesystem paths produce byte-identical keys and test:// sentinels are\n* preserved as opaque virtual keys.\n*\n* Canonicalization rules:\n* - `test://*` / `sentinel://*` — URI-like test sentinels pass through\n* unchanged (they are never filesystem paths).\n* - Everything else — normalized via `path.resolve()` so `/a/../a/cleo.db`\n* and `/a/cleo.db` are byte-identical.\n*\n* @param dbPath - A raw dbPath from opts or an explicit parameter.\n* @returns A canonicalized path ready for memo-key construction.\n*\n* @task T12042 (E6-L12b · Finding 4 — alias normalization)\n*/\nfunction canonicalizeDbPath(dbPath) {\n\tif (dbPath.startsWith(\"test://\") || dbPath.startsWith(\"sentinel://\")) return dbPath;\n\treturn resolve(dbPath);\n}\n/**\n* Build a frozen {@link WriterLeaseIdentity} from scope + dbPath.\n*\n* The dbPath is normalized via `path.resolve()` before freezing — so alias paths\n* (`/a/../a/cleo.db`, `/a/cleo.db`) produce byte-identical identities and a\n* single memoized grant row. Callers MUST pass the identity through\n* {@link registerDbIdentity} to bind it to a concrete drizzle DB handle; the\n* chokepoint write primitives resolve identity from the handle itself.\n*\n* @param scope - The cleo.db scope.\n* @param dbPath - An absolute or relative path to the scope's cleo.db. Normalized\n* via `path.resolve()` before freezing.\n* @returns A frozen, normalized identity.\n*\n* @task T12042 (E6-L12b)\n*/\nfunction makeWriterLeaseIdentity(scope, dbPath) {\n\treturn Object.freeze({\n\t\tscope,\n\t\tdbPath: resolve(dbPath)\n\t});\n}\n/**\n* Maps a drizzle DB object to its immutable writer-lease identity. Keyed on the\n* EXACT drizzle DB object reference so two different projects' drizzle handles\n* are distinct keys — a caller cannot pair file-A identity with file-B DB.\n*\n* Typed `WeakMap<object, …>` because WeakMap keys must be non-primitive; the DB\n* handles are always objects. Unregistered lookups throw a descriptive error —\n* there is NO fallback, ambient cwd lookup, or compatibility shim.\n*\n* @task T12042 (E6-L12b)\n*/\nvar _dbIdentityRegistry = /* @__PURE__ */ new WeakMap();\n/**\n* Register a drizzle DB handle's immutable writer-lease identity.\n*\n* Called at {@link DualScopeDbHandle} construction time (both cached and\n* dedicated opens). Idempotent when the same DB handle is re-registered with\n* the SAME canonical identity (same scope AND same `dbPath`). Throws\n* `E_WRITER_LEASE_IDENTITY_MISMATCH` when the same DB handle is registered\n* with a DIFFERENT identity — a scope/path mismatch for the same handle is a\n* programming error.\n*\n* @param db - The drizzle DB handle (or any non-primitive key). Must be the\n* exact same object reference that {@link resolveDbIdentity} will look up.\n* @param identity - The frozen identity built by {@link makeWriterLeaseIdentity}.\n* @throws {Error} When the handle was previously registered with a different\n* scope or dbPath.\n*\n* @task T12042 (E6-L12b)\n*/\nfunction registerDbIdentity(db, identity) {\n\tconst existing = _dbIdentityRegistry.get(db);\n\tif (existing) {\n\t\tif (existing.scope === identity.scope && existing.dbPath === identity.dbPath) return;\n\t\tthrow new Error(`E_WRITER_LEASE_IDENTITY_MISMATCH: the same drizzle DB handle was previously registered as ${existing.scope}::${existing.dbPath} but is being re-registered as ${identity.scope}::${identity.dbPath}. A DB handle must carry exactly one immutable identity (T12042).`);\n\t}\n\t_dbIdentityRegistry.set(db, identity);\n}\n/**\n* Resolve the immutable writer-lease identity bound to a drizzle DB handle.\n*\n* The chokepoint write primitives ({@link insertIdempotent} /\n* {@link upsertIdempotent}) call this with their `db` parameter to derive the\n* correct scope + dbPath for the writer lease. A handle opened through the\n* dual-scope chokepoint is always registered; a stub or synthetic handle\n* passed in tests must be registered via {@link registerDbIdentity} before a\n* write primitive reaches the identity-resolve point.\n*\n* @param db - The drizzle DB handle whose identity to look up.\n* @returns The frozen identity registered at construction time.\n* @throws {Error} `E_WRITER_LEASE_IDENTITY_UNREGISTERED` when the handle was\n* not registered — the caller MUST open the DB through the dual-scope\n* chokepoint or call {@link registerDbIdentity} explicitly.\n*\n* @task T12042 (E6-L12b)\n*/\nfunction resolveDbIdentity(db) {\n\tconst identity = _dbIdentityRegistry.get(db);\n\tif (!identity) throw new Error(\"E_WRITER_LEASE_IDENTITY_UNREGISTERED: the drizzle DB handle has no registered writer-lease identity. Open the DB through the dual-scope chokepoint (openDualScopeDb/openDualScopeDbAtPath) or call registerDbIdentity(handle, identity) explicitly in tests. (T12042 — no ambient fallback)\");\n\treturn identity;\n}\n/**\n* Asynchronously wait `ms` between contended claim retries. MUST be async (not\n* `Atomics.wait`): the claim transaction itself is synchronous, but the BETWEEN-\n* retry gap has to yield the event loop so a concurrent holder in THIS process can\n* run its `release()` (which frees the row this waiter is spinning for). A\n* synchronous spin would deadlock single-process re-entrant contention.\n*/\nfunction sleepAsync(ms) {\n\treturn new Promise((resolve) => setTimeout(resolve, Math.max(0, Math.round(ms))));\n}\n/** No-throw pid-liveness probe (`process.kill(pid, 0)`), mirrors gc/daemon.ts. */\nfunction isPidAlive(pid) {\n\ttry {\n\t\tprocess.kill(pid, 0);\n\t\treturn true;\n\t} catch (err) {\n\t\treturn err.code === \"EPERM\";\n\t}\n}\n/** This process's stable holder identity for a lane. */\nfunction makeHolderId(lane) {\n\treturn `pid-${process.pid}:${lane}:${randomUUID().slice(0, 8)}`;\n}\n/**\n* Concrete {@link LeaseHandle} bound to a native handle + holder identity. Owns\n* the heartbeat timer and the epoch-guarded release/heartbeat SQL.\n*/\nvar InternalLeaseHandle = class {\n\tscope;\n\tlane;\n\tepoch;\n\tholderId;\n\t/** The resolved on-disk path of the cleo.db this lease's row lives in. */\n\tdbPath;\n\tnativeDb;\n\tttlMs;\n\theartbeatTimer = null;\n\treleased = false;\n\tconstructor(args) {\n\t\tthis.scope = args.scope;\n\t\tthis.lane = args.lane;\n\t\tthis.epoch = args.epoch;\n\t\tthis.holderId = args.holderId;\n\t\tthis.dbPath = args.dbPath;\n\t\tthis.nativeDb = args.nativeDb;\n\t\tthis.ttlMs = args.ttlMs;\n\t\tthis.startHeartbeat();\n\t}\n\t/** Start the heartbeat timer at `ttl/3` (unref'd so it never holds the event loop open). */\n\tstartHeartbeat() {\n\t\tconst interval = Math.max(1, Math.floor(this.ttlMs / 3));\n\t\tthis.heartbeatTimer = setInterval(() => this.heartbeat(), interval);\n\t\tthis.heartbeatTimer.unref?.();\n\t}\n\theartbeat() {\n\t\tif (this.released) return;\n\t\ttry {\n\t\t\tthis.nativeDb.prepare(`UPDATE ${WRITER_LEASES_TABLE} SET heartbeat_at = ? WHERE scope = ? AND lane = ? AND holder_id = ? AND epoch = ? AND active = 1`).run(Date.now(), this.scope, this.lane, this.holderId, this.epoch);\n\t\t} catch (err) {\n\t\t\tthis.released = true;\n\t\t\tif (this.heartbeatTimer) {\n\t\t\t\tclearInterval(this.heartbeatTimer);\n\t\t\t\tthis.heartbeatTimer = null;\n\t\t\t}\n\t\t\tlog().debug({\n\t\t\t\tscope: this.scope,\n\t\t\t\tlane: this.lane,\n\t\t\t\terr: err instanceof Error ? err.message : err\n\t\t\t}, \"writer-lease heartbeat failed (native handle likely closed); stopping heartbeat\");\n\t\t}\n\t}\n\t/**\n\t* Free the row (`active = 0`) under the epoch guard and stop the heartbeat.\n\t*\n\t* @param nativeDb - Handle to use for the release update. A caller may retry\n\t* with a freshly resolved handle when the lease's original shared handle\n\t* was closed mid-operation.\n\t* @returns True when the release update executed successfully.\n\t*/\n\treleaseRow(nativeDb = this.nativeDb) {\n\t\tif (!this.released) {\n\t\t\tthis.released = true;\n\t\t\tif (this.heartbeatTimer) {\n\t\t\t\tclearInterval(this.heartbeatTimer);\n\t\t\t\tthis.heartbeatTimer = null;\n\t\t\t}\n\t\t}\n\t\ttry {\n\t\t\tnativeDb.prepare(`UPDATE ${WRITER_LEASES_TABLE} SET active = 0, reentrancy_depth = 0 WHERE scope = ? AND lane = ? AND holder_id = ? AND epoch = ? AND active = 1`).run(this.scope, this.lane, this.holderId, this.epoch);\n\t\t\treturn true;\n\t\t} catch (err) {\n\t\t\tlog().debug({\n\t\t\t\tscope: this.scope,\n\t\t\t\tlane: this.lane,\n\t\t\t\terr: err instanceof Error ? err.message : err\n\t\t\t}, \"writer-lease releaseRow failed (native handle likely closed); fresh-handle retry required\");\n\t\t\treturn false;\n\t\t}\n\t}\n\tasync release() {\n\t\tawait releaseGrant(this.scope, this.dbPath, this.lane);\n\t}\n};\n/**\n* Thrown when `require` mode cannot acquire the lease, or (future) when a\n* supervisor explicitly denies. Carries a stable `codeName` for envelope mapping.\n*\n* @public\n*/\nvar LeaseUnavailableError = class extends Error {\n\t/** Stable string error code for envelope `codeName` / log correlation. */\n\tcodeName = \"E_LEASE_UNAVAILABLE\";\n\tconstructor(scope, lane, reason) {\n\t\tsuper(`E_LEASE_UNAVAILABLE: could not acquire ${scope}/${lane} writer lease (mode=require): ${reason}`);\n\t\tthis.name = \"LeaseUnavailableError\";\n\t}\n};\n/**\n* Thrown when a write primitive opens the WRITE handle without a held lease\n* (T11627 ST-4 · Seam 2 · AC4). The brain worker (and any other dedicated-handle\n* writer outside the chokepoint) MUST hold its lane's grant before it writes — a\n* lease-less write is exactly the multi-writer race the lease exists to kill.\n*\n* Enforced (not merely advised): the brain writer bootstrap calls\n* {@link assertWriterLeaseHeld} before draining, and a lease-less drain throws\n* this. `off` mode (the rollback escape hatch) is exempt — there is no lease to\n* hold and the underlying `busy_timeout` serializes writes as before.\n*\n* @public\n* @task T11627\n*/\nvar WriterLeaseRequiredError = class extends Error {\n\t/** Stable string error code for envelope `codeName` / log correlation. */\n\tcodeName = \"E_WRITER_LEASE_REQUIRED\";\n\tconstructor(scope, lane) {\n\t\tsuper(`E_WRITER_LEASE_REQUIRED: cannot open the ${scope}/${lane} writer handle without a held writer lease (AC4) — wrap the write in withWriterLease/acquireWriterLease, or set CLEO_WRITER_LEASE_MODE=off to bypass.`);\n\t\tthis.name = \"WriterLeaseRequiredError\";\n\t}\n};\n/**\n* Whether THIS process currently holds an active grant for `(scope, lane)` in the\n* process-local grant memo. Used by dedicated-handle writers (the brain worker) to\n* assert AC4 without re-running the claim txn.\n*\n* @param scope - The cleo.db scope.\n* @param lane - The write lane.\n* @param dbPath - Optional explicit database path to inspect.\n* @returns `true` iff a memoized grant with `refcount > 0` exists for the key.\n*\n* @task T11627\n*/\nfunction hasActiveGrant(scope, lane, dbPath) {\n\tconst normalized = dbPath ? canonicalizeDbPath(dbPath) : _dbPathResolver(scope);\n\tconst entry = _grantMemo.get(memoKey(scope, normalized, lane));\n\treturn entry !== void 0 && entry.refcount > 0;\n}\n/**\n* AC4 guard. Assert this process holds the `(scope, lane)` writer lease before it\n* opens a dedicated WRITE handle. In `off` mode the assertion is a no-op (there is\n* no lease; `busy_timeout` serializes). In every other mode a missing grant throws\n* {@link WriterLeaseRequiredError}.\n*\n* @param scope - The cleo.db scope the handle writes to.\n* @param lane - The write lane that must be held.\n* @param dbPath - Optional explicit database path the write will target.\n* @throws {WriterLeaseRequiredError} when no grant is held and mode is not `off`.\n*\n* @task T11627\n*/\nfunction assertWriterLeaseHeld(scope, lane, dbPath) {\n\tif (effectiveMode() === \"off\") return;\n\tif (!hasActiveGrant(scope, lane, dbPath)) throw new WriterLeaseRequiredError(scope, lane);\n}\n/**\n* Attempt ONE `BEGIN IMMEDIATE` claim against the active row. Returns the granted\n* epoch on success, or `null` if a live holder owns the row (caller backs off and\n* retries; the queue row was enqueued on the first miss).\n*/\nfunction tryClaimOnce(nativeDb, scope, lane, holderId, ttlMs) {\n\tconst now = Date.now();\n\tnativeDb.exec(\"BEGIN IMMEDIATE TRANSACTION\");\n\ttry {\n\t\tconst active = nativeDb.prepare(`SELECT id, holder_id, holder_pid, epoch, heartbeat_at, ttl_ms, reentrancy_depth FROM ${WRITER_LEASES_TABLE} WHERE scope = ? AND lane = ? AND active = 1`).get(scope, lane);\n\t\tif (active === void 0) {\n\t\t\tconst nextEpoch = nativeDb.prepare(`SELECT COALESCE(MAX(epoch), 0) + 1 AS e FROM _writer_leases WHERE scope = ? AND lane = ?`).get(scope, lane)?.e ?? 1;\n\t\t\tnativeDb.prepare(`INSERT INTO ${WRITER_LEASES_TABLE} (scope, lane, holder_id, holder_pid, epoch, acquired_at, heartbeat_at, ttl_ms, reentrancy_depth, active) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1, 1)`).run(scope, lane, holderId, process.pid, nextEpoch, now, now, ttlMs);\n\t\t\tnativeDb.exec(\"COMMIT\");\n\t\t\treturn nextEpoch;\n\t\t}\n\t\tif (active.holder_id === holderId) {\n\t\t\tnativeDb.prepare(`UPDATE ${WRITER_LEASES_TABLE} SET reentrancy_depth = reentrancy_depth + 1, heartbeat_at = ? WHERE id = ?`).run(now, active.id);\n\t\t\tnativeDb.exec(\"COMMIT\");\n\t\t\treturn active.epoch;\n\t\t}\n\t\tif (now - active.heartbeat_at > active.ttl_ms && !isPidAlive(active.holder_pid)) {\n\t\t\tconst reclaimedEpoch = active.epoch + 1;\n\t\t\tnativeDb.prepare(`UPDATE ${WRITER_LEASES_TABLE} SET holder_id = ?, holder_pid = ?, epoch = ?, acquired_at = ?, heartbeat_at = ?, ttl_ms = ?, reentrancy_depth = 1 WHERE id = ? AND epoch = ?`).run(holderId, process.pid, reclaimedEpoch, now, now, ttlMs, active.id, active.epoch);\n\t\t\tnativeDb.exec(\"COMMIT\");\n\t\t\treturn reclaimedEpoch;\n\t\t}\n\t\tnativeDb.exec(\"ROLLBACK\");\n\t\treturn null;\n\t} catch (err) {\n\t\ttry {\n\t\t\tnativeDb.exec(\"ROLLBACK\");\n\t\t} catch {}\n\t\tthrow err;\n\t}\n}\n/** Enqueue a waiter row (idempotent per holder) for FIFO+priority ordering / aging. */\nfunction enqueueWaiter(nativeDb, scope, lane, holderId, priority, ttlMs) {\n\tconst now = Date.now();\n\tif (nativeDb.prepare(`SELECT ticket FROM _writer_queue WHERE scope = ? AND lane = ? AND holder_id = ?`).get(scope, lane, holderId)) return;\n\tnativeDb.prepare(`INSERT INTO ${WRITER_QUEUE_TABLE} (scope, lane, holder_id, priority, enqueued_at, deadline_at) VALUES (?, ?, ?, ?, ?, ?)`).run(scope, lane, holderId, priority, now, now + ttlMs);\n}\n/** Remove this holder's waiter row once granted (or on give-up). */\nfunction dequeueWaiter(nativeDb, scope, lane, holderId) {\n\tnativeDb.prepare(`DELETE FROM ${WRITER_QUEUE_TABLE} WHERE scope = ? AND lane = ? AND holder_id = ?`).run(scope, lane, holderId);\n}\n/**\n* Acquire (or re-enter) the writer lease for `(scope, lane)`. Caller MUST call\n* `release()` on the returned handle (use {@link withWriterLease} to do so\n* automatically).\n*\n* - `off` mode → returns a no-op handle (pass-through; no row written).\n* - `local`/`supervisor` mode → arbitrates over the persisted row via\n* `BEGIN IMMEDIATE` (+ epoch-CAS). A nested same-(scope,lane) acquire in this\n* process re-enters the memoized grant (refcount++).\n* - `require` mode → throws {@link LeaseUnavailableError} if the row cannot be\n* taken within the acquire window (`min(ACQUIRE_DEADLINE_MS, ttlMs)`).\n*\n* @param scope - The cleo.db scope.\n* @param lane - The write lane within the scope.\n* @param opts - Priority / TTL / re-entrancy options.\n* @returns A held {@link LeaseHandle}.\n*\n* @task T11627\n*/\nasync function acquireWriterLease(scope, lane, opts) {\n\tconst mode = effectiveMode();\n\tconst reentrant = opts?.reentrant ?? true;\n\tif (mode === \"off\") return makeNoopHandle(scope, lane);\n\tconst dbPath = opts?.dbPath ? canonicalizeDbPath(opts.dbPath) : _dbPathResolver(scope);\n\tconst key = memoKey(scope, dbPath, lane);\n\tif (reentrant) {\n\t\tconst existing = _grantMemo.get(key);\n\t\tif (existing) {\n\t\t\texisting.refcount += 1;\n\t\t\ttry {\n\t\t\t\tconst { native } = await _nativeDbResolver(scope, dbPath);\n\t\t\t\tnative.prepare(`UPDATE ${WRITER_LEASES_TABLE} SET reentrancy_depth = reentrancy_depth + 1 WHERE scope = ? AND lane = ? AND holder_id = ? AND epoch = ? AND active = 1`).run(scope, lane, existing.handle.holderId, existing.handle.epoch);\n\t\t\t} catch (err) {\n\t\t\t\texisting.refcount -= 1;\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t\treturn existing.handle;\n\t\t}\n\t\tconst inflight = _inflightAcquire.get(key);\n\t\tif (inflight) {\n\t\t\tconst shared = await inflight;\n\t\t\tconst entry = _grantMemo.get(key);\n\t\t\tif (entry && entry.handle === shared) {\n\t\t\t\tentry.refcount += 1;\n\t\t\t\ttry {\n\t\t\t\t\tconst { native } = await _nativeDbResolver(scope, dbPath);\n\t\t\t\t\tnative.prepare(`UPDATE ${WRITER_LEASES_TABLE} SET reentrancy_depth = reentrancy_depth + 1 WHERE scope = ? AND lane = ? AND holder_id = ? AND epoch = ? AND active = 1`).run(scope, lane, entry.handle.holderId, entry.handle.epoch);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tentry.refcount -= 1;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t\treturn entry.handle;\n\t\t\t}\n\t\t}\n\t}\n\tconst acquirePromise = performFirstAcquire(scope, dbPath, lane, mode, key, opts);\n\tif (reentrant) _inflightAcquire.set(key, acquirePromise);\n\ttry {\n\t\treturn await acquirePromise;\n\t} finally {\n\t\tif (reentrant && _inflightAcquire.get(key) === acquirePromise) _inflightAcquire.delete(key);\n\t}\n}\n/**\n* Run ONE full first-acquisition for `(scope, dbPath, lane)` against the persisted\n* row: resolve the native handle, claim/queue/backoff under the bounded acquire\n* window, and on success memoize the grant. Returns a degraded no-op handle on\n* deadline (local) or throws {@link LeaseUnavailableError} (`require`).\n*\n* Factored out of {@link acquireWriterLease} so the single-flight guard can wrap a\n* single in-flight promise per key — the resolved handle (a memoized\n* {@link InternalLeaseHandle}, or a no-op handle on degrade) is what concurrent\n* reentrant followers re-check the memo against before sharing.\n*/\nasync function performFirstAcquire(scope, dbPath, lane, mode, key, opts) {\n\tconst { native } = await _nativeDbResolver(scope, dbPath);\n\tassertWriterLeaseActiveIndexPresent(native);\n\tconst holderId = makeHolderId(lane);\n\tconst ttlMs = opts?.ttlMs ?? 3e4;\n\tconst priority = opts?.priority ?? DEFAULT_PRIORITY;\n\tconst acquireWindowMs = Math.min(ACQUIRE_DEADLINE_MS, Math.max(1, ttlMs));\n\tconst deadline = Date.now() + acquireWindowMs;\n\tlet enqueued = false;\n\tfor (;;) {\n\t\tconst epoch = tryClaimOnce(native, scope, lane, holderId, ttlMs);\n\t\tif (epoch !== null) {\n\t\t\tif (enqueued) dequeueWaiter(native, scope, lane, holderId);\n\t\t\tconst handle = new InternalLeaseHandle({\n\t\t\t\tscope,\n\t\t\t\tlane,\n\t\t\t\tepoch,\n\t\t\t\tholderId,\n\t\t\t\tdbPath,\n\t\t\t\tnativeDb: native,\n\t\t\t\tttlMs\n\t\t\t});\n\t\t\t_grantMemo.set(key, {\n\t\t\t\thandle,\n\t\t\t\trefcount: 1\n\t\t\t});\n\t\t\treturn handle;\n\t\t}\n\t\tif (!enqueued) {\n\t\t\tenqueueWaiter(native, scope, lane, holderId, priority, ttlMs);\n\t\t\tenqueued = true;\n\t\t}\n\t\tif (Date.now() >= deadline) {\n\t\t\tif (enqueued) dequeueWaiter(native, scope, lane, holderId);\n\t\t\tif (mode === \"require\") throw new LeaseUnavailableError(scope, lane, \"live holder did not release within deadline\");\n\t\t\tconst active = native.prepare(`SELECT holder_id, holder_pid, epoch, heartbeat_at, ttl_ms FROM ${WRITER_LEASES_TABLE} WHERE scope = ? AND lane = ? AND active = 1`).get(scope, lane);\n\t\t\tlog().warn({\n\t\t\t\tscope,\n\t\t\t\tlane,\n\t\t\t\tdbPath,\n\t\t\t\tactiveHolderId: active?.holder_id,\n\t\t\t\tactiveHolderPid: active?.holder_pid,\n\t\t\t\tactiveEpoch: active?.epoch,\n\t\t\t\tactiveHeartbeatAgeMs: active === void 0 ? void 0 : Math.max(0, Date.now() - active.heartbeat_at)\n\t\t\t}, \"writer-lease acquire deadline exceeded; proceeding under busy_timeout fallback (degraded)\");\n\t\t\treturn makeNoopHandle(scope, lane);\n\t\t}\n\t\tawait sleepAsync(CLAIM_RETRY_DELAY_MS);\n\t}\n}\n/** Decrement the memoized grant; free the row at depth 0. */\nasync function releaseGrant(scope, dbPath, lane) {\n\tconst key = memoKey(scope, dbPath, lane);\n\tconst entry = _grantMemo.get(key);\n\tif (!entry) return;\n\tentry.refcount -= 1;\n\tif (entry.refcount > 0) {\n\t\tconst { native } = await _nativeDbResolver(scope, dbPath);\n\t\tnative.prepare(`UPDATE ${WRITER_LEASES_TABLE} SET reentrancy_depth = reentrancy_depth - 1 WHERE scope = ? AND lane = ? AND holder_id = ? AND epoch = ? AND active = 1`).run(scope, lane, entry.handle.holderId, entry.handle.epoch);\n\t\treturn;\n\t}\n\t_grantMemo.delete(key);\n\tif (entry.handle.releaseRow()) return;\n\ttry {\n\t\tconst { native } = await _nativeDbResolver(scope, dbPath);\n\t\tentry.handle.releaseRow(native);\n\t} catch (err) {\n\t\tlog().debug({\n\t\t\tscope,\n\t\t\tlane,\n\t\t\tdbPath,\n\t\t\terr: err instanceof Error ? err.message : err\n\t\t}, \"writer-lease fresh-handle release retry failed; row will expire by TTL\");\n\t}\n}\n/**\n* A no-op handle for `off` mode and degraded-fallback returns: it holds no row,\n* starts no heartbeat, and `release()` is a no-op. `epoch` is `0` (sentinel).\n*/\nfunction makeNoopHandle(scope, lane) {\n\treturn {\n\t\tscope,\n\t\tlane,\n\t\tepoch: 0,\n\t\tasync release() {},\n\t\theartbeat() {}\n\t};\n}\n/**\n* Primary surface: acquire → run `fn` → release (always, even on throw).\n*\n* Refcounted + re-entrant by `(scope, lane)`: a nested same-lane write in the same\n* process re-enters the memoized grant rather than re-running the claim txn.\n*\n* - `off` mode → pass-through (runs `fn` under today's busy_timeout, no row).\n* - `require` mode → an unacquirable lease throws {@link LeaseUnavailableError}\n* before `fn` runs.\n*\n* @param scope - The cleo.db scope.\n* @param lane - The write lane.\n* @param fn - The work to run while holding the lease; receives the handle.\n* @param opts - Priority / TTL / re-entrancy options.\n* @returns The resolved value of `fn`.\n*\n* @task T11627\n*/\nasync function withWriterLease(scope, lane, fn, opts) {\n\tconst handle = await acquireWriterLease(scope, lane, opts);\n\ttry {\n\t\treturn await fn(handle);\n\t} finally {\n\t\tawait handle.release();\n\t}\n}\n/**\n* The lease-table bootstrap DDL, applied idempotently to a native handle BEFORE\n* the cold-open claim txn. It is byte-equivalent (modulo `IF NOT EXISTS`) to the\n* `_t11891-writer-leases` migration so the claim can run before the full migration\n* (which is what creates these tables) executes inside the leased section. The\n* partial-unique index is identical to the migration's — AC1 holds whether the\n* tables came from here or from the migration.\n*/\nvar COLD_OPEN_LEASE_BOOTSTRAP_DDL = [\n\t`CREATE TABLE IF NOT EXISTS \"__drizzle_migrations\" (\n id INTEGER PRIMARY KEY,\n hash text NOT NULL,\n created_at numeric,\n name text,\n applied_at TEXT\n )`,\n\t`CREATE TABLE IF NOT EXISTS ${WRITER_LEASES_TABLE} (\n id INTEGER PRIMARY KEY,\n scope TEXT NOT NULL,\n lane TEXT NOT NULL,\n holder_id TEXT NOT NULL,\n holder_pid INTEGER NOT NULL,\n epoch INTEGER NOT NULL,\n acquired_at INTEGER NOT NULL,\n heartbeat_at INTEGER NOT NULL,\n ttl_ms INTEGER NOT NULL,\n reentrancy_depth INTEGER NOT NULL DEFAULT 1,\n active INTEGER NOT NULL DEFAULT 1\n )`,\n\t`CREATE UNIQUE INDEX IF NOT EXISTS ${WRITER_LEASES_ACTIVE_INDEX} ON ${WRITER_LEASES_TABLE} (scope, lane) WHERE active = 1`,\n\t`CREATE TABLE IF NOT EXISTS ${WRITER_QUEUE_TABLE} (\n ticket INTEGER PRIMARY KEY AUTOINCREMENT,\n scope TEXT NOT NULL,\n lane TEXT NOT NULL,\n holder_id TEXT NOT NULL,\n priority INTEGER NOT NULL DEFAULT 100,\n enqueued_at INTEGER NOT NULL,\n deadline_at INTEGER NOT NULL\n )`,\n\t`CREATE INDEX IF NOT EXISTS ix_writer_queue_order ON ${WRITER_QUEUE_TABLE} (scope, lane, priority ASC, ticket ASC)`\n];\n/**\n* Idempotently create the lease tables + the raw partial-unique active index on\n* `nativeDb`. Safe to call before any migration has run (the migration that\n* normally creates these tables executes INSIDE the leased cold-open section, so\n* the claim txn needs the tables present first). Each statement is `IF NOT EXISTS`\n* so a re-open over an already-migrated DB is a no-op.\n*/\nfunction ensureColdOpenLeaseTables(nativeDb) {\n\tfor (const stmt of COLD_OPEN_LEASE_BOOTSTRAP_DDL) nativeDb.exec(stmt);\n}\n/**\n* Lease the dual-scope-db COLD-OPEN critical section (Seam 0 — the T5158 heal).\n*\n* This is the high-value gate: it serializes the cold-open `reconcileJournal` +\n* `migrateWithRetry` write-txn — the precise span that races in T5158 — so EXACTLY\n* ONE process per scope runs it while peers `BEGIN IMMEDIATE`-queue and then observe\n* a ready DB. It heals the T5158 `E_NOT_INITIALIZED` / `E_INTERNAL` corruption\n* **with the supervisor daemon disabled** (`local` mode default). The caller\n* (`dual-scope-db.ts`) runs the exodus-on-open hook AFTER this lease releases — the\n* exodus engine owns its own single-flight lock + dedicated connections and\n* closes/re-opens handles, so it must not run under this row lease.\n*\n* Unlike {@link withWriterLease} it operates DIRECTLY on the already-opened native\n* handle — it never routes through the default resolver (which would re-enter\n* `openDualScopeDb` and recurse) and it bootstraps the lease tables first (the full\n* migration that creates them runs inside `fn`). The identity is bound to the\n* drizzle DB handle at construction via {@link registerDbIdentity} — this function\n* no longer records a process-global side effect (T12042).\n*\n* Mode semantics mirror {@link withWriterLease}:\n* - `off` → pass-through: runs `fn` under today's `busy_timeout=30000`, byte-\n* identical to pre-lease cold-open behaviour.\n* - `local` / `supervisor` (demoted) → claim the row via `BEGIN IMMEDIATE`; on a\n* contended live holder, spin under the busy-timeout-backstopped deadline, then\n* degrade to running `fn` (busy_timeout still serializes the migrate write-txn).\n* - `require` → throw {@link LeaseUnavailableError} if the row cannot be taken.\n*\n* @param scope - The cleo.db scope being cold-opened.\n* @param nativeDb - The native handle the cold-open just created (pragmas applied).\n* @param fn - The cold-open body to run while holding the lease.\n* @param opts - Priority / TTL options. Cold-open defaults to highest priority\n* ({@link SCHEMA_BOOTSTRAP_PRIORITY}) and a 60s TTL (schema bootstrap can be\n* slow).\n* @returns The resolved value of `fn`.\n*\n* @task T11627\n* @task T12042 (E6-L12b — no process-global side effect)\n*/\nasync function withColdOpenLease(scope, nativeDb, fn, opts) {\n\tconst mode = effectiveMode();\n\tif (mode === \"off\") return fn();\n\tensureColdOpenLeaseTables(nativeDb);\n\tassertWriterLeaseActiveIndexPresent(nativeDb);\n\tconst lane = \"tasks\";\n\tconst holderId = makeHolderId(lane);\n\tconst ttlMs = opts?.ttlMs ?? 6e4;\n\tconst priority = opts?.priority ?? 0;\n\tconst acquireWindowMs = Math.min(ACQUIRE_DEADLINE_MS, Math.max(1, ttlMs));\n\tconst deadline = Date.now() + acquireWindowMs;\n\tlet enqueued = false;\n\tlet epoch = null;\n\tfor (;;) {\n\t\tepoch = tryClaimOnce(nativeDb, scope, lane, holderId, ttlMs);\n\t\tif (epoch !== null) {\n\t\t\tif (enqueued) dequeueWaiter(nativeDb, scope, lane, holderId);\n\t\t\tbreak;\n\t\t}\n\t\tif (!enqueued) {\n\t\t\tenqueueWaiter(nativeDb, scope, lane, holderId, priority, ttlMs);\n\t\t\tenqueued = true;\n\t\t}\n\t\tif (Date.now() >= deadline) {\n\t\t\tif (enqueued) dequeueWaiter(nativeDb, scope, lane, holderId);\n\t\t\tif (mode === \"require\") throw new LeaseUnavailableError(scope, lane, \"cold-open: live holder did not release within deadline\");\n\t\t\tlog().warn({ scope }, \"cold-open writer-lease acquire deadline exceeded; proceeding under busy_timeout fallback (degraded)\");\n\t\t\treturn fn();\n\t\t}\n\t\tawait sleepAsync(CLAIM_RETRY_DELAY_MS);\n\t}\n\ttry {\n\t\treturn await fn();\n\t} finally {\n\t\tnativeDb.prepare(`UPDATE ${WRITER_LEASES_TABLE} SET active = 0, reentrancy_depth = 0 WHERE scope = ? AND lane = ? AND holder_id = ? AND epoch = ? AND active = 1`).run(scope, lane, holderId, epoch);\n\t}\n}\n//#endregion\n//#region ../core/dist/store/dual-scope-db.js\n/**\n* Dual-scope SQLite DB open chokepoint for the SG-DB-SUBSTRATE-V2 consolidated schema.\n*\n* ## Overview (D1″ lifecycle split · T11246/E3 + T11247/E4)\n*\n* The owner-ratified D1″ decision (2026-05-30) collapses the CLEO SQLite fleet\n* into exactly **two `cleo.db` files per machine view**:\n*\n* - **Project scope** — `<projectRoot>/.cleo/cleo.db`\n* Contains every project-tier domain: `tasks_*` / `brain_*` (project-local\n* memory) / `conduit_*` / `docs_*` / `telemetry_*` / lifecycle / provenance /\n* chain / playbooks / agents (87 tables / 903 columns, T11360 count).\n*\n* - **Global scope** — `$XDG_DATA_HOME/cleo/cleo.db`\n* Contains every cross-project domain: `nexus_*` / `skills_*` /\n* `signaldock_*` / `brain_*` (global cross-project memory)\n* (49 tables / 555 columns, T11361 count).\n*\n* ## Lifecycle\n*\n* `openDualScopeDb` is the **single chokepoint** for all opens of the\n* consolidated schema. It:\n* 1. Resolves the DB file path from scope + `cwd` (project) or `getCleoHome()`\n* (global).\n* 2. Opens a `node:sqlite` `DatabaseSync` handle.\n* 3. Applies the canonical pragma set from `specs/sqlite-pragmas.json` via\n* {@link applyPerfPragmas}.\n* 4. Runs the drizzle-kit migrate step against the scope-appropriate\n* migrations folder (`drizzle-cleo-project` or `drizzle-cleo-global`).\n* 5. Returns a cached, typed `NodeSQLiteDatabase<TSchema>` handle.\n* Subsequent calls for the same (scope, cwd) return the cached handle.\n*\n* ## Note on co-existence with legacy openCleoDb\n*\n* During the E3/E4 → E6 exodus transition, `openCleoDb` (the existing\n* 8-role chokepoint) and `openDualScopeDb` (this module) co-exist. `openCleoDb`\n* will be updated by E3 to delegate to this function for the consolidated\n* schema. Until the E6 store rewrite, individual store modules still open their\n* own legacy DBs via `openCleoDb`. The E6 milestone removes the legacy opens.\n*\n* @module\n* @task T11512 (E4-T1)\n* @task T11513 (E4-T2 — idempotent write helpers in this same file)\n* @epic T11247 (E4)\n* @saga T11242 (SG-DB-SUBSTRATE-V2)\n* @adr ADR-068, ADR-069\n* @see packages/core/src/store/schema/cleo-project/index.ts — project schema\n* @see packages/core/src/store/schema/cleo-global/index.ts — global schema\n* @see packages/core/migrations/drizzle-cleo-project — project migrations\n* @see packages/core/migrations/drizzle-cleo-global — global migrations\n*/\n/**\n* Thrown by {@link assertWriteDurable} when a MUTATING caller is about to write\n* through a {@link DualScopeDbHandle} whose first-open exodus auto-migration\n* ABORTED (T11828 · DHQ-059).\n*\n* The consolidated `cleo.db` is internally consistent but EMPTY: the user's real\n* data is still in the legacy fleet (kept as the source of truth). Writing here\n* would land in a DB that does not reflect that data, so the write is NOT durable\n* against the source of truth. Read paths never raise this — they intentionally\n* skip {@link assertWriteDurable} and operate on the empty-but-consistent DB.\n*\n* Self-contained (mirrors `BackupRecoverError`) rather than a `CleoError` subclass\n* so the store layer does not need a new numeric `ExitCode` in `@cleocode/contracts`\n* for a condition that is surfaced structurally on the handle.\n*\n* @task T11828\n* @epic T11833\n* @saga T11242\n* @public\n*/\nvar ExodusAbortWriteUnsafeError = class extends Error {\n\t/** Stable string error code for envelope `codeName` / log correlation. */\n\tcodeName = \"E_EXODUS_ABORT_WRITE_UNSAFE\";\n\t/** The structured abort detail carried by the handle. */\n\tdetail;\n\t/** Remediation hint surfaced to the operator. */\n\tfix;\n\t/**\n\t* @param detail - The {@link ExodusAbortDetail} stamped on the handle.\n\t*/\n\tconstructor(detail) {\n\t\tsuper(`Refusing to write to consolidated ${detail.scope} cleo.db — exodus-on-open ABORTED (${detail.reason}). The DB is empty; legacy data is the source of truth. Run \\`cleo doctor exodus-health\\` then \\`cleo exodus migrate\\` (or restore via \\`cleo doctor repair --role ${detail.scope === \"project\" ? \"tasks\" : \"nexus\"}\\`) before writing.`);\n\t\tthis.name = \"ExodusAbortWriteUnsafeError\";\n\t\tthis.detail = detail;\n\t\tthis.fix = \"Resolve the aborted migration (`cleo doctor exodus-health` → `cleo exodus migrate`) so the consolidated cleo.db carries your data before mutating it.\";\n\t}\n};\n/**\n* Assert that a {@link DualScopeDbHandle} is safe to WRITE through.\n*\n* Call this at the head of a MUTATING code path (insert/update/delete) that holds\n* a dual-scope handle. If the handle carries an {@link DualScopeDbHandle.exodusAbort}\n* marker — i.e. the first-open auto-migration aborted and the consolidated DB is\n* empty with legacy kept as source — this throws {@link ExodusAbortWriteUnsafeError}\n* so the write is rejected with a non-zero signal rather than silently landing in\n* a DB that does not hold the user's data.\n*\n* READ-only callers MUST NOT call this — they are expected to operate on the\n* empty-but-consistent consolidated DB without error, exactly as before T11828.\n*\n* @param handle - The handle returned by {@link openDualScopeDb}.\n* @throws {ExodusAbortWriteUnsafeError} When `handle.exodusAbort` is set.\n*\n* @example\n* ```ts\n* const h = await openDualScopeDb('project', cwd);\n* assertWriteDurable(h); // throws if a prior exodus-on-open aborted\n* await h.db.insert(table).values(row);\n* ```\n*\n* @task T11828 (DHQ-059)\n* @epic T11833\n* @saga T11242\n* @public\n*/\nfunction assertWriteDurable(handle) {\n\tif (handle.exodusAbort) throw new ExodusAbortWriteUnsafeError(handle.exodusAbort);\n}\n/**\n* Throw {@link ExodusAbortWriteUnsafeError} when ANY exodus-on-open abort is\n* recorded for this process (across either scope).\n*\n* Used by the consolidated-schema MUTATION primitives ({@link insertIdempotent} /\n* {@link upsertIdempotent}) which do not receive the originating\n* {@link DualScopeDbHandle} — they consult the process-local registry recorded by\n* {@link emitExodusAbort} instead. Read paths never call these primitives, so the\n* guard is write-only.\n*\n* @throws {ExodusAbortWriteUnsafeError} When a recorded abort exists.\n* @internal\n* @task T11828\n*/\nfunction assertNoRecordedExodusAbort() {\n\tconst detail = getRecordedExodusAbort();\n\tif (detail) throw new ExodusAbortWriteUnsafeError(detail);\n}\nvar _cache = /* @__PURE__ */ new Map();\n/**\n* Build the singleton cache key for a given scope + resolved DB path.\n* Uses `::` as a separator that cannot appear in POSIX paths.\n*/\nfunction cacheKey(scope, dbPath) {\n\treturn `${scope}::${dbPath}`;\n}\n/**\n* Resolve the absolute path to the dual-scope `cleo.db` for the given scope.\n*\n* - `project`: `resolveCleoDir(cwd)` + `'cleo.db'` (falls under `<root>/.cleo/`)\n* - `global`: `getCleoHome()` + `'cleo.db'` (falls under XDG data home `/cleo/`)\n*/\nfunction resolveDualScopeDbPath(scope, cwd) {\n\tif (scope === \"project\") return join(resolveCleoDir(cwd), \"cleo.db\");\n\treturn join(getCleoHome(), \"cleo.db\");\n}\n/**\n* Return the migrations folder name for the given scope.\n* The folder lives under `@cleocode/core/migrations/<name>`.\n*/\nfunction migrationsSetName(scope) {\n\treturn scope === \"project\" ? \"drizzle-cleo-project\" : \"drizzle-cleo-global\";\n}\nvar _require = createRequire(import.meta.url);\nvar _drizzle = null;\nfunction getDrizzle() {\n\tif (_drizzle === null) _drizzle = _require(\"drizzle-orm/node-sqlite\").drizzle;\n\treturn _drizzle;\n}\nvar _DatabaseSyncCtor = null;\nfunction getDatabaseSyncCtor() {\n\tif (_DatabaseSyncCtor === null) _DatabaseSyncCtor = _require(\"node:sqlite\").DatabaseSync;\n\treturn _DatabaseSyncCtor;\n}\n/**\n* The \"existence table\" used by {@link reconcileJournal} to detect whether\n* migrations have been run before.\n*\n* For the project scope the first domain is `tasks_tasks`; for global it\n* is `nexus_project_registry`. These are the canonical first tables in each\n* scope's migration.\n*/\nfunction existenceTable(scope) {\n\treturn scope === \"project\" ? \"tasks_tasks\" : \"nexus_project_registry\";\n}\n/**\n* Per-open pragma overrides that bound a connection's memory footprint for\n* one-shot CLI invocations and short-lived daemon-tick opens (T11829).\n*\n* The canonical SSoT pragmas reserve `cache_size=-64000` (64 MB page cache) +\n* `mmap_size=268435456` (256 MB mmap window) + `temp_store=MEMORY` per connection\n* ≈ 320-550 MB of address space PER PROCESS. With many concurrent uncapped\n* processes (queued `cleo` opens + a respawning daemon + parallel agents), that sum\n* blows past host RAM and the OOM-killer fires. A one-shot `cleo` command opens,\n* does a small read/write, and exits — it gains nothing from a 256 MB mmap window\n* or a 64 MB cache, so we shrink BOTH for these short-lived opens:\n*\n* - `mmap_size = 0` — disable the memory-mapped read window entirely.\n* - `cache_size = -8000` (8 MB) — a modest page cache, plenty for CLI queries.\n*\n* The SSoT default in `specs/sqlite-pragmas.json` is UNCHANGED (the long-lived\n* daemon may legitimately want the larger cache/mmap for its working set). This is\n* a per-OPEN override only. Neither `cache_size` nor `mmap_size` is in the\n* `cleo doctor` pragma-drift list (`pragma-ssot.ts#driftPragmas` checks only\n* journal_mode/busy_timeout/foreign_keys/synchronous/page_size/application_id), so\n* shrinking them here does NOT trip the drift gate.\n*\n* The daemon (`CLEO_SENTIENT_DAEMON=1`) keeps the full SSoT footprint — it is a\n* single long-lived process whose working set benefits from the larger cache.\n*\n* @returns Pragma overrides to pass to {@link applyPerfPragmas}, or `{}` for the\n* daemon (full SSoT footprint).\n*/\nfunction memoryBoundedPragmaOverrides() {\n\tif (process.env.CLEO_SENTIENT_DAEMON === \"1\") return {};\n\tif (process.env.CLEO_DB_FULL_MEM === \"1\") return {};\n\treturn {\n\t\tmmapSizeBytes: 0,\n\t\tcacheSizeKb: 8e3\n\t};\n}\nasync function openDualScopeDb(scope, cwd) {\n\tconst dbPath = resolveDualScopeDbPath(scope, cwd);\n\treturn scope === \"project\" ? openDualScopeDbAtPath(\"project\", dbPath, cwd) : openDualScopeDbAtPath(\"global\", dbPath, cwd);\n}\n/**\n* Open a DEDICATED, NON-cached consolidated dual-scope `cleo.db` connection\n* (T11782 · FIX D).\n*\n* This opens a fresh `DatabaseSync` to `dbPath`, applies the canonical pragmas,\n* wraps it in Drizzle, reconciles + runs migrations, and returns a handle whose\n* `close()` ONLY closes the native connection — it never reads or mutates the\n* singleton `_cache`. WAL mode permits this second connection to coexist with\n* the cached caller handle on the same file. The exodus migrate engine uses this\n* so its bulk-copy + parity-abort rollback transactions are physically isolated\n* from the caller's connection (and any concurrent task INSERTs sharing it).\n*\n* @param scope - The consolidated schema scope.\n* @param dbPath - Absolute path to the consolidated `cleo.db` file.\n* @param log - The module logger.\n* @returns A typed {@link DualScopeDbHandle} backed by a dedicated connection.\n*\n* @task T11782 (FIX D — rollback connection isolation)\n*/\nasync function openDedicatedDualScopeDb(scope, dbPath, log) {\n\tlog.debug({\n\t\tscope,\n\t\tdbPath\n\t}, \"opening DEDICATED (non-cached) dual-scope cleo.db (T11782 FIX D)\");\n\tconst dir = dirname(dbPath);\n\tif (!existsSync(dir)) mkdirSync(dir, { recursive: true });\n\tconst nativeDb = new (getDatabaseSyncCtor())(dbPath, { allowExtension: true });\n\ttry {\n\t\tapplyPerfPragmas(nativeDb, memoryBoundedPragmaOverrides());\n\t\tconst db = getDrizzle()({ client: nativeDb });\n\t\tconst migrationsFolder = resolveCorePackageMigrationsFolder(migrationsSetName(scope));\n\t\treturn await withColdOpenLease(scope, nativeDb, async () => {\n\t\t\treconcileJournal(nativeDb, migrationsFolder, existenceTable(scope), `dual-scope-db[${scope}]`, resolveConsolidatedJournalSiblings(migrationsSetName(scope)));\n\t\t\tmigrateWithRetry(db, migrationsFolder, nativeDb, existenceTable(scope), `dual-scope-db[${scope}]`);\n\t\t\tlog.debug({\n\t\t\t\tscope,\n\t\t\t\tdbPath\n\t\t\t}, \"DEDICATED dual-scope cleo.db ready (T11782 FIX D)\");\n\t\t\tconst identity = makeWriterLeaseIdentity(scope, dbPath);\n\t\t\tregisterDbIdentity(db, identity);\n\t\t\treturn {\n\t\t\t\tdb,\n\t\t\t\tscope,\n\t\t\t\tdbPath,\n\t\t\t\tidentity,\n\t\t\t\tget isOpen() {\n\t\t\t\t\treturn nativeDb.isOpen;\n\t\t\t\t},\n\t\t\t\tclose() {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tnativeDb.close();\n\t\t\t\t\t} catch {}\n\t\t\t\t}\n\t\t\t};\n\t\t});\n\t} catch (err) {\n\t\ttry {\n\t\t\tnativeDb.close();\n\t\t} catch {}\n\t\tthrow err;\n\t}\n}\nasync function openDualScopeDbAtPath(scope, dbPath, exodusCwd, options) {\n\tconst dedicated = options?.dedicated === true;\n\tconst normalizedPath = resolve(dbPath);\n\tconst key = cacheKey(scope, normalizedPath);\n\tif (!dedicated) {\n\t\tconst existing = _cache.get(key);\n\t\tif (existing) {\n\t\t\tif (existing.initPromise) return existing.initPromise;\n\t\t\tif (existing.handle && existing.nativeDb?.isOpen) return existing.handle;\n\t\t\t_cache.delete(key);\n\t\t}\n\t}\n\tconst log = getLogger(\"dual-scope-db\");\n\tif (dedicated) return openDedicatedDualScopeDb(scope, normalizedPath, log);\n\tlet initResolve = null;\n\tlet initReject = null;\n\tconst initPromise = new Promise((resolve, reject) => {\n\t\tinitResolve = resolve;\n\t\tinitReject = reject;\n\t});\n\t_cache.set(key, {\n\t\thandle: null,\n\t\tnativeDb: null,\n\t\tinitPromise\n\t});\n\tinitPromise.catch(() => {\n\t\tconst entry = _cache.get(key);\n\t\tif (entry && entry.initPromise === initPromise) _cache.delete(key);\n\t});\n\t(async () => {\n\t\ttry {\n\t\t\tlog.debug({\n\t\t\t\tscope,\n\t\t\t\tdbPath: normalizedPath\n\t\t\t}, \"opening dual-scope cleo.db\");\n\t\t\tconst dir = dirname(normalizedPath);\n\t\t\tif (!existsSync(dir)) mkdirSync(dir, { recursive: true });\n\t\t\tconst nativeDb = new (getDatabaseSyncCtor())(normalizedPath, { allowExtension: true });\n\t\t\tapplyPerfPragmas(nativeDb, memoryBoundedPragmaOverrides());\n\t\t\tconst db = getDrizzle()({ client: nativeDb });\n\t\t\tconst migrationsFolder = resolveCorePackageMigrationsFolder(migrationsSetName(scope));\n\t\t\tlet finalHandle = await withColdOpenLease(scope, nativeDb, async () => {\n\t\t\t\treconcileJournal(nativeDb, migrationsFolder, existenceTable(scope), `dual-scope-db[${scope}]`, resolveConsolidatedJournalSiblings(migrationsSetName(scope)));\n\t\t\t\tmigrateWithRetry(db, migrationsFolder, nativeDb, existenceTable(scope), `dual-scope-db[${scope}]`);\n\t\t\t\tlog.debug({\n\t\t\t\t\tscope,\n\t\t\t\t\tdbPath: normalizedPath\n\t\t\t\t}, \"dual-scope cleo.db ready\");\n\t\t\t\tconst identity = makeWriterLeaseIdentity(scope, normalizedPath);\n\t\t\t\tregisterDbIdentity(db, identity);\n\t\t\t\tconst built = {\n\t\t\t\t\tdb,\n\t\t\t\t\tscope,\n\t\t\t\t\tdbPath: normalizedPath,\n\t\t\t\t\tidentity,\n\t\t\t\t\tget isOpen() {\n\t\t\t\t\t\treturn nativeDb.isOpen;\n\t\t\t\t\t},\n\t\t\t\t\tclose() {\n\t\t\t\t\t\tif (_cache.get(key)?.handle === built) _cache.delete(key);\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tnativeDb.close();\n\t\t\t\t\t\t} catch {}\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst entry = _cache.get(key);\n\t\t\t\tif (entry) {\n\t\t\t\t\tentry.initPromise = null;\n\t\t\t\t\tentry.handle = built;\n\t\t\t\t\tentry.nativeDb = nativeDb;\n\t\t\t\t}\n\t\t\t\treturn built;\n\t\t\t});\n\t\t\tif (exodusCwd !== void 0 && normalizedPath === resolveDualScopeDbPath(scope, exodusCwd)) {\n\t\t\t\tlet releaseDbHeavy = null;\n\t\t\t\tlet dbHeavyDeferred = false;\n\t\t\t\ttry {\n\t\t\t\t\tconst { governor } = await import(\"./governor2.js\");\n\t\t\t\t\tconst admit = await governor.tryAcquire(\"db-heavy\");\n\t\t\t\t\tif (admit.deferred) dbHeavyDeferred = true;\n\t\t\t\t\telse releaseDbHeavy = admit.release;\n\t\t\t\t} catch {}\n\t\t\t\tif (dbHeavyDeferred) log.debug({\n\t\t\t\t\tscope,\n\t\t\t\t\tdbPath: normalizedPath\n\t\t\t\t}, \"exodus-on-open skipped this open — db-heavy deferred under memory pressure (re-runs idempotently on a calmer open)\");\n\t\t\t\telse try {\n\t\t\t\t\tconst { maybeRunExodusOnOpen } = await import(\"./on-open.js\");\n\t\t\t\t\tconst result = await maybeRunExodusOnOpen(scope, normalizedPath, nativeDb, exodusCwd);\n\t\t\t\t\tif (result.outcome === \"migrated\" || result.outcome === \"aborted\") {\n\t\t\t\t\t\tconst reopened = scope === \"project\" ? await openDualScopeDbAtPath(\"project\", normalizedPath) : await openDualScopeDbAtPath(\"global\", normalizedPath);\n\t\t\t\t\t\tif (result.outcome === \"aborted\") {\n\t\t\t\t\t\t\tconst abort = {\n\t\t\t\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\tdbPath: normalizedPath,\n\t\t\t\t\t\t\t\treason: result.reason,\n\t\t\t\t\t\t\t\tat: Date.now()\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tlog.warn({\n\t\t\t\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\treason: result.reason\n\t\t\t\t\t\t\t}, \"exodus-on-open aborted; consolidated cleo.db left empty, legacy kept as source — mutating callers must check handle.exodusAbort / call assertWriteDurable (T11828)\");\n\t\t\t\t\t\t\tconst { emitExodusAbort } = await import(\"./abort-events.js\");\n\t\t\t\t\t\t\temitExodusAbort(abort);\n\t\t\t\t\t\t\tfinalHandle = {\n\t\t\t\t\t\t\t\t...reopened,\n\t\t\t\t\t\t\t\texodusAbort: abort\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst { clearExodusAborts } = await import(\"./abort-events.js\");\n\t\t\t\t\t\t\tclearExodusAborts(scope);\n\t\t\t\t\t\t\tfinalHandle = reopened;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t\tlog.warn({\n\t\t\t\t\t\terr,\n\t\t\t\t\t\tscope\n\t\t\t\t\t}, \"exodus-on-open hook failed (non-fatal); re-opening consolidated handle\");\n\t\t\t\t\tfinalHandle = scope === \"project\" ? await openDualScopeDbAtPath(\"project\", normalizedPath) : await openDualScopeDbAtPath(\"global\", normalizedPath);\n\t\t\t\t} finally {\n\t\t\t\t\tif (releaseDbHeavy) await releaseDbHeavy().catch(() => {});\n\t\t\t\t}\n\t\t\t}\n\t\t\tinitResolve(finalHandle);\n\t\t} catch (err) {\n\t\t\tinitReject(err);\n\t\t}\n\t})();\n\treturn initPromise;\n}\n/**\n* Reset cached dual-scope handles. Primarily for use in tests between test\n* cases and by domain `closeDb()`/`resetDbState()` paths. Closes the targeted\n* open handles before evicting them from the cache.\n*\n* ## Scope filter (E6-L4 · T11524)\n*\n* Pass `scope` to evict ONLY that scope's entries. This matters because the\n* `'project'` and `'global'` scopes now share this cache: the tasks/brain/conduit\n* domains hold the project-scope `cleo.db`, while nexus/signaldock/skills hold the\n* global-scope `cleo.db`. A project-domain reset (`closeDb`/`resetDbState` in\n* sqlite.ts) must NOT close the global handle out from under an in-flight nexus\n* query — and vice-versa. When `scope` is omitted, ALL entries are evicted (the\n* coordinated full teardown used by `closeAllDatabases` and test global resets).\n*\n* @param scope - When provided, only entries opened against this scope are\n* closed + evicted. When omitted, every cached handle is reset.\n* @internal\n*/\nfunction _resetDualScopeDbCache(scope) {\n\tfor (const [key, entry] of _cache) {\n\t\tif (scope !== void 0 && entry.handle?.scope !== scope) continue;\n\t\tif (entry.handle) try {\n\t\t\tentry.handle.close();\n\t\t} catch {}\n\t\t_cache.delete(key);\n\t}\n}\n/**\n* Error thrown when a runtime entry is cancelled during initialization\n* (e.g. {@link CleoRuntime.closeProject} called while an open is in flight).\n*/\nvar EntryCancelledError = class extends Error {\n\tconstructor(scope, dbPath) {\n\t\tsuper(`CleoRuntime entry cancelled during initialization: ${scope}::${dbPath}`);\n\t\tthis.name = \"EntryCancelledError\";\n\t}\n};\n/**\n* Thrown when the post-await liveness reacquisition exhausts its bounded\n* retries — two consecutive opens returned a dead handle. The caller can\n* distinguish a transient liveness loss (one retry succeeds) from a\n* persistent failure (both handles dead).\n*\n* @task T12036 (E6-L12)\n*/\nvar LivenessExhaustedError = class extends Error {\n\tconstructor(scope, dbPath) {\n\t\tsuper(`CleoRuntime liveness exhausted after bounded reacquisition: ${scope}::${dbPath}`);\n\t\tthis.name = \"LivenessExhaustedError\";\n\t}\n};\n/**\n* Concrete implementation of the {@link CleoRuntime} store registry.\n*\n* Maintains a private `Map<string, RuntimeEntry>` keyed by the scope-qualified\n* composite `${scope}::${normalizedDbPath}`. Each call to {@link openProject}\n* or {@link openGlobal} flows through the existing dual-scope chokepoint\n* ({@link openDualScopeDbAtPath}) so migrations, pragmas, and the singleton\n* `_cache` are shared — the runtime adds explicit per-entry wrapping, identity\n* tracking, and scoped disposal on top.\n*\n* ## Key invariants\n*\n* 1. **Scope-qualified keys** — `'project::/abs/path'` and\n* `'global::/abs/path'` are distinct keys even when the path is the same\n* string. A `GlobalStore` can never be cast to a `ProjectStore` via a\n* key collision.\n* 2. **Entry identity** — every entry carries a monotonically-increasing `id`.\n* After `await openDualScopeDbAtPath`, the init publishes ONLY when the\n* current entry's `id` still matches. If another call (close/re-open)\n* replaced the entry, the acquired handle is closed and the init rejects.\n* 3. **Stale-safe close** — each store records its entry `id`. `close()` only\n* evicts the registry entry when its `id` still matches; an old stale close\n* is a no-op.\n* 4. **Cache-hit liveness** — before returning a cached store, the runtime\n* checks {@link ProjectStore.isOpen} / {@link GlobalStore.isOpen}\n* (which delegates to {@link DualScopeDbHandle.isOpen}, a typed getter\n* reflecting the underlying `DatabaseSync.isOpen`). A handle closed\n* externally (e.g. `_resetDualScopeDbCache`) is evicted and re-opened.\n* 5. **Path normalization** — all paths are normalized via `path.resolve()`\n* before keying, so `/path/./to/db` and `/path/to/db` share one entry.\n* 6. **Dedicated mode** — passing `{ dedicated: true }` opens a second\n* `DatabaseSync` connection (WAL-allowed) that bypasses the shared cache.\n* Dedicated stores are NOT registered or tracked; the caller is responsible\n* for closing them.\n*\n* @task T12036 (E6-L12)\n*/\nvar CleoRuntimeImpl = class {\n\t_registry = /* @__PURE__ */ new Map();\n\t_nextId = 0;\n\t/**\n\t* Injectable opener function. Defaults to {@link openDualScopeDbAtPath}.\n\t* Tests override this to return a pre-closed handle for exercising the\n\t* post-await liveness branch. Not part of the public {@link CleoRuntime}\n\t* interface.\n\t*/\n\topenDualScopeFn = openDualScopeDbAtPath;\n\t/** @inheritdoc */\n\tget openPaths() {\n\t\treturn new Set(this._registry.keys());\n\t}\n\t/** @inheritdoc */\n\tasync openProject(dbPath, options) {\n\t\tconst normalized = resolve(dbPath);\n\t\tif (options?.dedicated) {\n\t\t\tconst handle = await openDualScopeDbAtPath(\"project\", normalized, options?.exodusCwd, { dedicated: true });\n\t\t\treturn this.buildStore(\"project\", handle, 0);\n\t\t}\n\t\treturn this.openEntry(\"project\", normalized, 0, options?.exodusCwd);\n\t}\n\t/** @inheritdoc */\n\tasync openGlobal(options) {\n\t\tconst normalized = resolve(resolveDualScopeDbPath(\"global\"));\n\t\tif (options?.dedicated) {\n\t\t\tconst handle = await openDualScopeDbAtPath(\"global\", normalized, options?.exodusCwd, { dedicated: true });\n\t\t\treturn this.buildStore(\"global\", handle, 0);\n\t\t}\n\t\treturn this.openEntry(\"global\", normalized, 0, options?.exodusCwd);\n\t}\n\t/** @inheritdoc */\n\tasync openGlobalAt(dbPath, options) {\n\t\tconst normalized = resolve(dbPath);\n\t\tif (options?.dedicated) {\n\t\t\tconst handle = await openDualScopeDbAtPath(\"global\", normalized, options?.exodusCwd, { dedicated: true });\n\t\t\treturn this.buildStore(\"global\", handle, 0);\n\t\t}\n\t\treturn this.openEntry(\"global\", normalized, 0, options?.exodusCwd);\n\t}\n\t/** @inheritdoc */\n\tcloseProject(dbPath) {\n\t\tconst normalized = resolve(dbPath);\n\t\tthis.closeEntry(\"project\", normalized);\n\t}\n\t/** @inheritdoc */\n\tcloseAll() {\n\t\tfor (const key of [...this._registry.keys()]) try {\n\t\t\tthis.closeEntryByKey(key);\n\t\t} catch {}\n\t}\n\t/**\n\t* Open (or reuse) a scoped entry. All five key invariants are enforced\n\t* on this single code path.\n\t*\n\t* @param depth - Reacquisition depth guard. Starts at 0; capped at 1.\n\t* When the post-await liveness check finds a dead handle, the bounded\n\t* retry calls this with `depth + 1`. A second dead handle at depth 1\n\t* throws {@link LivenessExhaustedError} instead of recursing further.\n\t*/\n\tasync openEntry(scope, dbPath, depth = 0, exodusCwd) {\n\t\tconst key = cacheKey(scope, dbPath);\n\t\tconst existing = this._registry.get(key);\n\t\tif (existing) {\n\t\t\tif (existing.initPromise) return existing.initPromise;\n\t\t\tif (existing.store?.isOpen) return existing.store;\n\t\t\tthis._registry.delete(key);\n\t\t}\n\t\tconst entryId = ++this._nextId;\n\t\tlet initResolve;\n\t\tlet initReject;\n\t\tconst initPromise = new Promise((resolve, reject) => {\n\t\t\tinitResolve = resolve;\n\t\t\tinitReject = reject;\n\t\t});\n\t\tthis._registry.set(key, {\n\t\t\tid: entryId,\n\t\t\tstore: null,\n\t\t\tinitPromise\n\t\t});\n\t\tinitPromise.catch(() => {\n\t\t\tif (this._registry.get(key)?.initPromise === initPromise) this._registry.delete(key);\n\t\t});\n\t\ttry {\n\t\t\tconst dualHandle = scope === \"project\" ? await this.openDualScopeFn(\"project\", dbPath, exodusCwd) : await this.openDualScopeFn(\"global\", dbPath, exodusCwd);\n\t\t\tconst current = this._registry.get(key);\n\t\t\tif (!current || current.id !== entryId) throw new EntryCancelledError(scope, dbPath);\n\t\t\tif (!dualHandle.isOpen) {\n\t\t\t\tdualHandle.close();\n\t\t\t\tthis._registry.delete(key);\n\t\t\t\tif (depth >= 1) throw new LivenessExhaustedError(scope, dbPath);\n\t\t\t\tconst retryStore = await this.openEntry(scope, dbPath, depth + 1, exodusCwd);\n\t\t\t\tinitResolve(retryStore);\n\t\t\t\treturn retryStore;\n\t\t\t}\n\t\t\tconst store = this.buildStore(scope, dualHandle, entryId);\n\t\t\tcurrent.store = store;\n\t\t\tcurrent.initPromise = null;\n\t\t\tinitResolve(store);\n\t\t\treturn store;\n\t\t} catch (err) {\n\t\t\tinitReject(err);\n\t\t\tthrow err;\n\t\t}\n\t}\n\t/**\n\t* Build a typed {@link ProjectStore} or {@link GlobalStore} from a\n\t* {@link DualScopeDbHandle}. The store's `close()` is stale-safe\n\t* (invariant 3): it only evicts the registry entry when the entry's\n\t* identity still matches.\n\t*/\n\tbuildStore(scope, dualHandle, entryId) {\n\t\tconst dbPath = dualHandle.dbPath;\n\t\tconst identity = dualHandle.identity;\n\t\tconst exodusAbort = dualHandle.exodusAbort;\n\t\tconst key = cacheKey(scope, dbPath);\n\t\tif (scope === \"project\") return {\n\t\t\tscope: \"project\",\n\t\t\tdbPath,\n\t\t\tidentity,\n\t\t\tdb: dualHandle.db,\n\t\t\tget isOpen() {\n\t\t\t\treturn dualHandle.isOpen;\n\t\t\t},\n\t\t\texodusAbort,\n\t\t\tclose: () => {\n\t\t\t\tdualHandle.close();\n\t\t\t\tthis.cleanupEntry(key, entryId);\n\t\t\t}\n\t\t};\n\t\treturn {\n\t\t\tscope: \"global\",\n\t\t\tdbPath,\n\t\t\tidentity,\n\t\t\tdb: dualHandle.db,\n\t\t\tget isOpen() {\n\t\t\t\treturn dualHandle.isOpen;\n\t\t\t},\n\t\t\texodusAbort,\n\t\t\tclose: () => {\n\t\t\t\tdualHandle.close();\n\t\t\t\tthis.cleanupEntry(key, entryId);\n\t\t\t}\n\t\t};\n\t}\n\t/**\n\t* Conditionally evict a registry entry. Only deletes when the current\n\t* entry's identity still matches `entryId` — an old stale close is a no-op\n\t* (invariant 3).\n\t*/\n\tcleanupEntry(key, entryId) {\n\t\tconst entry = this._registry.get(key);\n\t\tif (entry && entry.id === entryId) this._registry.delete(key);\n\t}\n\t/**\n\t* Close and evict a single scoped entry from the registry by composite\n\t* key. Cancels in-flight opens by deleting the placeholder entry — the\n\t* in-flight init detects the missing/id-mismatched entry and rejects\n\t* after its `await` resolves (invariant 2).\n\t*/\n\tcloseEntry(scope, dbPath) {\n\t\tthis.closeEntryByKey(cacheKey(scope, dbPath));\n\t}\n\t/**\n\t* Close and evict a single entry by composite registry key.\n\t*/\n\tcloseEntryByKey(key) {\n\t\tconst entry = this._registry.get(key);\n\t\tif (!entry) return;\n\t\tthis._registry.delete(key);\n\t\tif (entry.store) try {\n\t\t\tentry.store.close();\n\t\t} catch {}\n\t}\n};\n/**\n* Override the dual-scope opener function used by the given\n* {@link CleoRuntime} instance. Tests inject a custom opener to return a\n* pre-closed handle, exercising the post-await liveness and bounded-\n* reacquisition code paths.\n*\n* The injected function receives the same `(scope, dbPath)` signature as\n* {@link openDualScopeDbAtPath} and must return a\n* {@link DualScopeDbHandle}. Only non-dedicated opens (\n* {@link CleoRuntime.openProject} and {@link CleoRuntime.openGlobal}\n* without `{ dedicated: true }`) are affected. Dedicated opens always\n* call {@link openDualScopeDbAtPath} directly — a custom opener can\n* never turn a dedicated store into a cached/shared store.\n*\n* Pass `undefined` to restore the default (`openDualScopeDbAtPath`).\n*\n* @param runtime - The runtime instance to configure.\n* @param fn - The opener to use, or `undefined` to reset.\n*\n* @internal Test seam; imported directly from this module, not the barrel.\n*/\nfunction setRuntimeOpenFn(runtime, fn) {\n\truntime.openDualScopeFn = fn ?? openDualScopeDbAtPath;\n}\n/**\n* Create a new {@link CleoRuntime} store registry.\n*\n* The returned runtime is the explicit composition root for project and\n* global database entries. Use {@link CleoRuntime.openProject} to open a\n* project's `cleo.db` at a canonical path, and {@link CleoRuntime.openGlobal}\n* for the global scope. Closing a project via {@link CleoRuntime.closeProject}\n* or the store's own `close()` disposes only that entry.\n*\n* ## Cross-runtime behavior\n*\n* Two separate runtime instances SHARE the **process-global dual-scope\n* handle cache** (`_cache`). Closing a store in one runtime closes the\n* shared `DatabaseSync` — another runtime referencing the same path\n* will observe a closed connection. The **cache-hit liveness** check in\n* this runtime reacquires a fresh handle on the next `openProject`/\n* `openGlobal`. This is by design: the runtime owns **entry lifecycle**,\n* not the underlying connection. Use a dedicated connection for isolation.\n*\n* @returns A fresh {@link CleoRuntime} instance with an empty registry.\n*\n* @example\n* ```ts\n* import { createCleoRuntime, resolveDualScopeDbPath } from '@cleocode/core/db';\n*\n* const runtime = createCleoRuntime();\n* const projectA = await runtime.openProject(resolveDualScopeDbPath('project', '/path/to/projA'));\n* const projectB = await runtime.openProject(resolveDualScopeDbPath('project', '/path/to/projB'));\n* // projectA and projectB are distinct, independent handles.\n* projectA.close(); // Only closes projectA; projectB and any global handle are intact.\n* ```\n*\n* @task T12036 (E6-L12)\n* @epic T11249 (E6)\n* @saga T11242\n*/\nfunction createCleoRuntime() {\n\treturn new CleoRuntimeImpl();\n}\n/**\n* Attempt to insert `row` into `table`. If a row with the same value for\n* `keyColumn` already exists (UNIQUE conflict), the insert is silently skipped.\n*\n* Wraps Drizzle v1's `.onConflictDoNothing()` to provide a type-safe,\n* retry-safe idempotent insert for tables that carry an `idempotency_key`\n* column or any other UNIQUE column.\n*\n* @param db - The Drizzle database handle (project or global scope).\n* @param table - The Drizzle table reference from the consolidated schema.\n* @param row - The row data to insert (all required columns).\n* @param _keyColumn - The column name to conflict on (informational; the\n* conflict resolution is applied table-wide via `.onConflictDoNothing()`).\n* Pass the column name as a hint for documentation purposes.\n* @returns The number of rows actually inserted (0 or 1).\n*\n* Refuses the write (throws {@link ExodusAbortWriteUnsafeError}) when a prior\n* exodus-on-open aborted in this process (T11828 · DHQ-059) — these helpers are\n* the consolidated-schema MUTATION primitives, so the guard is write-only and\n* never affects read paths.\n*\n* Derives the writer-lease identity from the DB handle itself via\n* {@link resolveDbIdentity} — the identity was registered at\n* {@link DualScopeDbHandle} construction, so a caller cannot pair file-A\n* identity with file-B DB (T12042).\n*\n* @example\n* ```ts\n* import { tasksTasksTable } from '@cleocode/core/store/schema/cleo-project';\n* const inserted = await insertIdempotent(db, tasksTasksTable, newTask, 'idempotencyKey');\n* ```\n*\n* @task T11513 (E4-T2)\n* @task T11828 (write-side exodus-abort guard)\n* @task T12042 (E6-L12b — exact DB-bound identity)\n* @epic T11247 (E4)\n* @saga T11242\n*/\nasync function insertIdempotent(db, table, row, _keyColumn) {\n\tassertNoRecordedExodusAbort();\n\tconst identity = resolveDbIdentity(db);\n\treturn withWriterLease(identity.scope, \"tasks\", async () => {\n\t\treturn (await db.insert(table).values(row).onConflictDoNothing().returning()).length;\n\t}, { dbPath: identity.dbPath });\n}\n/**\n* Upsert `row` into `table`, updating all non-key columns when a row with\n* the same `keyColumn` value already exists.\n*\n* Wraps Drizzle v1's `.onConflictDoUpdate()` for retry-safe upsert semantics.\n*\n* @param db - The Drizzle database handle.\n* @param table - The Drizzle table reference.\n* @param row - The row data to insert or update.\n* @param keyColumn - The conflict-target column name (must be a UNIQUE or\n* PRIMARY KEY column on the table).\n* @param conflictTarget - The column reference used as the `.target` for\n* `.onConflictDoUpdate()`. Pass the Drizzle column reference (e.g.\n* `table.idempotencyKey`).\n* @param set - The columns to update on conflict. If omitted, all columns\n* in `row` are used as the update set.\n* @returns The number of rows inserted or updated (always 1).\n*\n* Refuses the write (throws {@link ExodusAbortWriteUnsafeError}) when a prior\n* exodus-on-open aborted in this process (T11828 · DHQ-059) — write-only guard.\n*\n* Derives the writer-lease identity from the DB handle itself via\n* {@link resolveDbIdentity} (T12042 — exact DB-bound identity, no fallback).\n*\n* @example\n* ```ts\n* await upsertIdempotent(db, tasksTasksTable, updatedTask, 'idempotencyKey',\n* tasksTasksTable.idempotencyKey);\n* ```\n*\n* @task T11513 (E4-T2)\n* @task T11828 (write-side exodus-abort guard)\n* @task T12042 (E6-L12b — exact DB-bound identity)\n* @epic T11247 (E4)\n* @saga T11242\n*/\nasync function upsertIdempotent(db, table, row, _keyColumn, conflictTarget, set) {\n\tassertNoRecordedExodusAbort();\n\tconst identity = resolveDbIdentity(db);\n\treturn withWriterLease(identity.scope, \"tasks\", async () => {\n\t\tconst updateSet = set ?? row;\n\t\treturn (await db.insert(table).values(row).onConflictDoUpdate({\n\t\t\ttarget: conflictTarget,\n\t\t\tset: updateSet\n\t\t}).returning()).length;\n\t}, { dbPath: identity.dbPath });\n}\n//#endregion\nexport { tableExists as C, reconcileJournal as S, withWriteRetry as T, createSafetyBackup as _, insertIdempotent as a, migrateWithRetry as b, resolveDualScopeDbPath as c, acquireWriterLease as d, assertWriterLeaseHeld as f, resolveCorePackageMigrationsFolder as g, resolveConsolidatedJournalSiblings as h, createCleoRuntime as i, setRuntimeOpenFn as l, withWriterLease as m, _resetDualScopeDbCache as n, openDualScopeDb as o, resolveLeaseMode as p, assertWriteDurable as r, openDualScopeDbAtPath as s, ExodusAbortWriteUnsafeError as t, upsertIdempotent as u, ensureColumns as v, isSqliteBusy as w, reconcileBrainMigrationsForConsolidatedDb as x, migrateSanitized as y };\n"],"names":["crypto","isSQLWrapper$1"],"mappings":"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AAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;AACrC,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE;AAChC,EAAE,OAAO,CAAC,cAAc,KAAK;AAC7B,GAAG,MAAM,WAAW,GAAG,OAAO,cAAc,KAAK,UAAU,GAAG,cAAc,CAAC,qBAAqB,EAAE,CAAC,GAAG,cAAc;AACtH,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,WAAW,CAAC,iBAAiB,EAAE,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,+GAA+G,CAAC;AACjN,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;AACjC,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI;AACJ,IAAI,CAAC;AACL,GAAG,OAAO,IAAI;AACd,EAAE,CAAC;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC;AACjD;AACA,CAAC,eAAe,CAAC,YAAY,EAAE;AAC/B,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;AAChD,EAAE,OAAO,IAAI;AACb,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,KAAK,CAAC,KAAK,EAAE;AACd,EAAE,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,qBAAqB,CAAC;AACzG,GAAG,kBAAkB,EAAE,KAAK;AAC5B,GAAG,WAAW,EAAE;AAChB,GAAG,CAAC,CAAC,CAAC;AACN,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK;AAC3B,EAAE,OAAO,IAAI;AACb,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,MAAM,CAAC,MAAM,EAAE;AAChB,EAAE,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAiB,CAAC,SAAS,EAAE;AACtC,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6BAA6B,GAAG;AACpC,CAAC,eAAe;AAChB,CAAC,sBAAsB;AACvB,CAAC,eAAe;AAChB,CAAC,eAAe;AAChB,CAAC,iBAAiB;AAClB,CAAC,qBAAqB;AACtB,CAAC,wBAAwB;AACzB,CAAC,gBAAgB;AACjB,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kCAAkC,CAAC,UAAU,EAAE;AACxD,CAAC,OAAO,6BAA6B,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,kCAAkC,CAAC,IAAI,CAAC,CAAC;AACnI;AACA,SAAS,kCAAkC,CAAC,OAAO,EAAE;AACrD,CAAC,IAAI;AACL,EAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC;AAC9H,CAAC,CAAC,CAAC,MAAM,CAAC;AACV,CAAC,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AAChD,CAAC,IAAI;AAC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","x_google_ignoreList":[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]}