@cleocode/cleo 2026.9.5 → 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 +32 -3
  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/{CKXdW4mW.js → DVHIxkgs.js} +1 -1
  7. package/studio-dist/client/_app/immutable/chunks/{DrfFUIvQ.js → TX-23QW3.js} +1 -1
  8. package/studio-dist/client/_app/immutable/chunks/{C7UP-KLT.js → eK8hf4s7.js} +1 -1
  9. package/studio-dist/client/_app/immutable/entry/{app.BwkUGH1B.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.DcUJW-xi.js → 0.CZzEEyVh.js} +1 -1
  12. package/studio-dist/client/_app/immutable/nodes/{1.DyTt_cQs.js → 1.Bj3Opbua.js} +1 -1
  13. package/studio-dist/client/_app/immutable/nodes/{15.LRqqoueS.js → 15.BfXgiwMC.js} +1 -1
  14. package/studio-dist/client/_app/immutable/nodes/{16.-hGPNXOI.js → 16.mEwy9cqh.js} +1 -1
  15. package/studio-dist/client/_app/immutable/nodes/{17.ChMxgTIY.js → 17.DP2QtQGn.js} +1 -1
  16. package/studio-dist/client/_app/immutable/nodes/{18.B9zeITVb.js → 18.Bu0054sX.js} +1 -1
  17. package/studio-dist/client/_app/immutable/nodes/{20.BHg5roNq.js → 20.B1AIHdkP.js} +1 -1
  18. package/studio-dist/client/_app/immutable/nodes/{24.B_s9aY5m.js → 24.BUoUu37z.js} +1 -1
  19. package/studio-dist/client/_app/immutable/nodes/{25.DZXkDxw_.js → 25.ddZ1_EFk.js} +1 -1
  20. package/studio-dist/client/_app/immutable/nodes/{26.BBRbdwIG.js → 26.6OcmQbLV.js} +1 -1
  21. package/studio-dist/client/_app/immutable/nodes/{3.DMYcrZeG.js → 3.Dyir4xXj.js} +1 -1
  22. package/studio-dist/client/_app/version.json +1 -1
  23. package/studio-dist/server/chunks/{0-CM4iQVYP.js → 0-CvsKDxQ6.js} +3 -3
  24. package/studio-dist/server/chunks/{1-BQFD-dx6.js → 1-ck_x2Hf0.js} +3 -3
  25. package/studio-dist/server/chunks/{15-Cng10n82.js → 15-BvUNl3KL.js} +3 -3
  26. package/studio-dist/server/chunks/{16-u3KwU3N4.js → 16-De6EzPSa.js} +3 -3
  27. package/studio-dist/server/chunks/{17-BDtxQX9n.js → 17-CZNsiZhi.js} +3 -3
  28. package/studio-dist/server/chunks/{18-wwUoSO4F.js → 18-CbxxjZox.js} +3 -3
  29. package/studio-dist/server/chunks/{20-B-0CBvqY.js → 20-DVU22np7.js} +3 -3
  30. package/studio-dist/server/chunks/{24-BeVcofpU.js → 24-CVlymvLF.js} +3 -3
  31. package/studio-dist/server/chunks/{25-DIuzTPOu.js → 25-CAg6Xcmn.js} +3 -3
  32. package/studio-dist/server/chunks/{26-CY8x0KNI.js → 26-_nfVTvNi.js} +3 -3
  33. package/studio-dist/server/chunks/{3-p3RwD-FY.js → 3-B8KhfvHp.js} +3 -3
  34. package/studio-dist/server/chunks/{_layout.svelte-rswfOTDe.js → _layout.svelte-BEIGQcIv.js} +4 -4
  35. package/studio-dist/server/chunks/{_page.svelte-DaYxqOUS.js → _page.svelte-2cgtvHwW.js} +3 -3
  36. package/studio-dist/server/chunks/{_page.svelte-BT1YF8j2.js → _page.svelte-9OQphlnm.js} +4 -4
  37. package/studio-dist/server/chunks/{_page.svelte-CiIYIPG9.js → _page.svelte-BIlhmugm.js} +3 -3
  38. package/studio-dist/server/chunks/{_page.svelte-C9twD2l1.js → _page.svelte-BgwL2Gyu.js} +3 -3
  39. package/studio-dist/server/chunks/{_page.svelte-DKVwBmIp.js → _page.svelte-C_VSL8NW.js} +4 -4
  40. package/studio-dist/server/chunks/{_page.svelte-CHH1vmfg.js → _page.svelte-DOWw416I.js} +3 -3
  41. package/studio-dist/server/chunks/{_page.svelte-D8NhlkPD.js → _page.svelte-Wfx7ww_h.js} +3 -3
  42. package/studio-dist/server/chunks/{_page.svelte-DZEnHo1L.js → _page.svelte-l4Z_xjl9.js} +3 -3
  43. package/studio-dist/server/chunks/{_page.svelte-DmTXiXKT.js → _page.svelte-tYN7_LXI.js} +3 -3
  44. package/studio-dist/server/chunks/{client-ym-URLFs.js → client-CgX38JBu.js} +2 -2
  45. package/studio-dist/server/chunks/{error.svelte-Bt1EbBZe.js → error.svelte-CplNulnS.js} +3 -3
  46. package/studio-dist/server/chunks/{internal-D3i_4gCl.js → internal-D6eWgsHJ.js} +2 -2
  47. package/studio-dist/server/chunks/{stores-ByevKXL9.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/9yrFrmKZ.js +0 -1
  52. package/studio-dist/client/_app/immutable/entry/start.BcsID0Sf.js +0 -1
  53. package/studio-dist/server/chunks/0-CM4iQVYP.js.map +0 -1
  54. package/studio-dist/server/chunks/1-BQFD-dx6.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-Cng10n82.js.map +0 -1
  61. package/studio-dist/server/chunks/16-u3KwU3N4.js.map +0 -1
  62. package/studio-dist/server/chunks/17-BDtxQX9n.js.map +0 -1
  63. package/studio-dist/server/chunks/18-wwUoSO4F.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-B-0CBvqY.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-BeVcofpU.js.map +0 -1
  71. package/studio-dist/server/chunks/25-DIuzTPOu.js.map +0 -1
  72. package/studio-dist/server/chunks/26-CY8x0KNI.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-p3RwD-FY.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-rswfOTDe.js.map +0 -1
  94. package/studio-dist/server/chunks/_page.svelte-BT1YF8j2.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-Byz2djto.js.map +0 -1
  99. package/studio-dist/server/chunks/_page.svelte-C3aIui4o.js.map +0 -1
  100. package/studio-dist/server/chunks/_page.svelte-C9twD2l1.js.map +0 -1
  101. package/studio-dist/server/chunks/_page.svelte-CCoTp89s.js.map +0 -1
  102. package/studio-dist/server/chunks/_page.svelte-CHH1vmfg.js.map +0 -1
  103. package/studio-dist/server/chunks/_page.svelte-CHzXuw2Q.js.map +0 -1
  104. package/studio-dist/server/chunks/_page.svelte-CYDjW1R0.js.map +0 -1
  105. package/studio-dist/server/chunks/_page.svelte-CiIYIPG9.js.map +0 -1
  106. package/studio-dist/server/chunks/_page.svelte-Clbkk1gm.js.map +0 -1
  107. package/studio-dist/server/chunks/_page.svelte-CophUar3.js.map +0 -1
  108. package/studio-dist/server/chunks/_page.svelte-D8NhlkPD.js.map +0 -1
  109. package/studio-dist/server/chunks/_page.svelte-DKVwBmIp.js.map +0 -1
  110. package/studio-dist/server/chunks/_page.svelte-DUWbZjC7.js.map +0 -1
  111. package/studio-dist/server/chunks/_page.svelte-DYNorA0S.js.map +0 -1
  112. package/studio-dist/server/chunks/_page.svelte-DZEnHo1L.js.map +0 -1
  113. package/studio-dist/server/chunks/_page.svelte-DaYxqOUS.js.map +0 -1
  114. package/studio-dist/server/chunks/_page.svelte-DmTXiXKT.js.map +0 -1
  115. package/studio-dist/server/chunks/_page.svelte-EkXO_YfN.js.map +0 -1
  116. package/studio-dist/server/chunks/_page.svelte-M5D2QnMS.js.map +0 -1
  117. package/studio-dist/server/chunks/_page.svelte-UYiF7YBK.js.map +0 -1
  118. package/studio-dist/server/chunks/_page.svelte-al08ovKm.js.map +0 -1
  119. package/studio-dist/server/chunks/_page.svelte-bGhsrIjS.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-ym-URLFs.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-Bt1EbBZe.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-D3i_4gCl.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-ByevKXL9.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":"sleep-consolidation-BnSwXrvq.js","sources":["../../../.svelte-kit/adapter-node/chunks/sleep-consolidation.js"],"sourcesContent":["import { o as getBrainNativeDb } from \"./memory-sqlite.js\";\nimport { t as typedAll } from \"./typed-query.js\";\nimport { n as storeLearning } from \"./learnings2.js\";\nimport { t as executeForRole } from \"./role-executor.js\";\nimport { n as storePattern } from \"./patterns2.js\";\nimport { randomBytes } from \"node:crypto\";\n//#region ../core/dist/memory/sleep-consolidation.js\n/**\n* Sleep-Time Consolidation — LLM-driven background memory hygiene for CLEO BRAIN.\n*\n* Implements the \"sleep-time compute\" pattern inspired by Letta OS: after a\n* session ends, a cheap LLM pass runs in the background to:\n* 1. Merge near-duplicate entries (embedding similarity > 0.85)\n* 2. Prune short-tier stale entries with low quality (7d old, quality < 0.4)\n* 3. Synthesize frequently-cited learnings into higher-quality patterns\n* 4. Extract cross-cutting insights from clusters of related observations\n*\n* All LLM calls route through {@link executeForRole} (T9320), which in turn\n* uses `resolveLLMForRole('consolidation')` (T9255) — so the provider + model\n* + credential come from `config.llm.roles.consolidation` →\n* `config.llm.default` → `config.llm.daemon` → implicit fallback, and the\n* matching transport (Anthropic Messages, OpenAI chat-completions, or any\n* future api-mode) is selected automatically. No credential = silent no-op\n* for LLM steps; structural steps still run. All errors are caught and\n* logged — nothing here may block session end.\n*\n* ## Configuration\n*\n* Add to `config.json` under `brain.sleepConsolidation`:\n* ```json\n* {\n* \"brain\": {\n* \"sleepConsolidation\": {\n* \"enabled\": true\n* }\n* }\n* }\n* ```\n*\n* @task T555\n* @epic T549\n* @see packages/core/src/memory/observer-reflector.ts (Observer/Reflector pattern)\n* @see packages/core/src/memory/brain-lifecycle.ts (runConsolidation)\n*/\n/**\n* Logical role for sleep-consolidation LLM calls.\n*\n* Forwarded to {@link executeForRole}, which resolves the concrete\n* provider/model/credential via `resolveLLMForRole('consolidation')` — so the\n* provider + model + credential come from `config.llm.roles.consolidation` →\n* `config.llm.default` → `config.llm.daemon` → implicit fallback (see\n* {@link IMPLICIT_FALLBACK_MODEL} in `llm/role-resolver.ts`).\n*\n* @task T9255\n*/\nvar SLEEP_ROLE = \"consolidation\";\n/** Embedding similarity threshold above which two entries are considered duplicates. */\nvar DUPLICATE_SIMILARITY_THRESHOLD = .85;\n/** Minimum age (days) before a short-tier entry can be pruned for low quality. */\nvar STALE_AGE_DAYS = 7;\n/** Maximum quality score for a short-tier entry to be considered for pruning. */\nvar PRUNE_QUALITY_THRESHOLD = .4;\n/** Minimum citation count to trigger pattern synthesis for a learning. */\nvar SYNTHESIS_CITATION_MIN = 3;\n/** Maximum tokens for LLM responses. */\nvar MAX_RESPONSE_TOKENS = 1024;\n/** Source tag written to brain_observations for sleep-consolidation results. */\nvar SLEEP_SOURCE = \"sleep-consolidation\";\n/**\n* Load sleep consolidation configuration from the project config.\n* Defaults to enabled=true when config is missing or unreadable.\n*\n* @param projectRoot - Project root directory.\n*/\nasync function loadSleepConfig(projectRoot) {\n\ttry {\n\t\tconst { loadConfig } = await import(\"./config2.js\");\n\t\treturn { enabled: ((await loadConfig(projectRoot)).brain?.[\"sleepConsolidation\"])?.[\"enabled\"] !== false };\n\t} catch {\n\t\treturn { enabled: true };\n\t}\n}\n/**\n* Issue a single LLM call for the consolidation role.\n*\n* Routes through {@link executeForRole} which resolves\n* provider/model/credential via the standard role chain (T9255) and dispatches\n* to the matching transport — Anthropic Messages, OpenAI chat-completions, or\n* any future API mode — based on the resolved provider. The previous hardcoded\n* `fetch('https://api.anthropic.com/v1/messages')` is gone, so changing\n* `config.llm.roles.consolidation.provider` actually changes the wire target.\n*\n* 30-second hard deadline via {@link AbortSignal.timeout} prevents open network\n* handles from blocking test process teardown (T753 root cause).\n*\n* Returns `null` when no credential is available or the call fails — callers\n* fall back to structural heuristics.\n*\n* @param projectRoot - Project root for config + tier-5 credential lookup.\n* @param systemPrompt - System instruction for the LLM.\n* @param userContent - User message content.\n*\n* @task T9320\n*/\nasync function callLlm(projectRoot, systemPrompt, userContent) {\n\treturn (await executeForRole(SLEEP_ROLE, systemPrompt, userContent, {\n\t\tprojectRoot,\n\t\tmaxTokens: MAX_RESPONSE_TOKENS,\n\t\tsignal: AbortSignal.timeout(3e4)\n\t}))?.content ?? null;\n}\n/**\n* Compress a plain-text payload via the injected {@link ContextEngine} when\n* the payload is large enough to warrant it.\n*\n* Converts the text to a single `user` TransportMessage, calls\n* {@link ContextEngine.compress}, and extracts the summary from the first\n* returned assistant message. Falls back to the original text on any error\n* so the consolidation pipeline is never blocked by a compression failure.\n*\n* @param text - Raw text payload to (potentially) compress.\n* @param engine - Optional context engine. When absent the original text is returned.\n* @param topic - Topic hint forwarded to {@link ContextEngine.compress}.\n*/\nasync function _maybeCompress(text, engine, topic) {\n\tif (engine === void 0) return text;\n\tconst msgs = [{\n\t\trole: \"user\",\n\t\tcontent: text\n\t}];\n\tconst estimatedTokens = Math.ceil(text.length / 4);\n\tif (!engine.shouldCompress(estimatedTokens, 1e5)) return text;\n\ttry {\n\t\tconst summaryMsg = (await engine.compress(msgs, topic)).compressedMessages.find((m) => m.role === \"assistant\");\n\t\treturn summaryMsg && typeof summaryMsg.content === \"string\" ? summaryMsg.content : text;\n\t} catch {\n\t\treturn text;\n\t}\n}\n/**\n* Attempt to parse LLM response as JSON. Strips markdown code fences before\n* parsing. Returns null on parse failure.\n*/\nfunction parseJson(text) {\n\ttry {\n\t\tconst cleaned = text.replace(/^```(?:json)?\\s*/m, \"\").replace(/\\s*```\\s*$/m, \"\").trim();\n\t\treturn JSON.parse(cleaned);\n\t} catch {\n\t\treturn null;\n\t}\n}\n/**\n* Compute cosine similarity between two Float32 embedding buffers.\n*\n* Returns 0 when either buffer is null, empty, or different lengths.\n* Embeddings are stored as raw Buffer of 4-byte floats (sqlite-vec format).\n*\n* @param a - First embedding buffer.\n* @param b - Second embedding buffer.\n*/\nfunction cosineSimilarity(a, b) {\n\tif (!a || !b || a.length === 0 || a.length !== b.length) return 0;\n\tconst floatCount = Math.floor(a.length / 4);\n\tif (floatCount === 0) return 0;\n\tlet dot = 0;\n\tlet normA = 0;\n\tlet normB = 0;\n\tfor (let i = 0; i < floatCount; i++) {\n\t\tconst va = a.readFloatLE(i * 4);\n\t\tconst vb = b.readFloatLE(i * 4);\n\t\tdot += va * vb;\n\t\tnormA += va * va;\n\t\tnormB += vb * vb;\n\t}\n\tconst denom = Math.sqrt(normA) * Math.sqrt(normB);\n\treturn denom === 0 ? 0 : dot / denom;\n}\n/**\n* Find near-duplicate entries using embedding cosine similarity > 0.85.\n*\n* For each pair above the threshold, asks the LLM whether to keep/merge.\n* The LLM confirms or overrides the merge decision. Kept entry gains the\n* evicted entry's citation count. Duplicates are soft-evicted (invalid_at set).\n*\n* Falls back to structural merge (keep higher quality) when no API key is\n* available or the LLM call fails.\n*\n* @param projectRoot - Project root for brain.db resolution.\n*/\nasync function stepMergeDuplicates(projectRoot) {\n\tconst { getBrainDb } = await import(\"./memory-sqlite2.js\");\n\tawait getBrainDb(projectRoot);\n\tconst nativeDb = getBrainNativeDb(projectRoot);\n\tif (!nativeDb) return {\n\t\tmerged: 0,\n\t\tllmDecisions: 0\n\t};\n\tlet merged = 0;\n\tlet llmDecisions = 0;\n\tconst now = (/* @__PURE__ */ new Date()).toISOString().replace(\"T\", \" \").slice(0, 19);\n\tlet rows;\n\ttry {\n\t\trows = typedAll(nativeDb.prepare(`\n SELECT id, title, narrative, quality_score, citation_count, memory_tier, created_at, embedding\n FROM brain_observations\n WHERE embedding IS NOT NULL\n AND invalid_at IS NULL\n AND memory_tier = 'short'\n ORDER BY quality_score DESC\n LIMIT 200\n `));\n\t} catch {\n\t\treturn {\n\t\t\tmerged: 0,\n\t\t\tllmDecisions: 0\n\t\t};\n\t}\n\tif (rows.length < 2) return {\n\t\tmerged: 0,\n\t\tllmDecisions: 0\n\t};\n\tconst pairs = [];\n\tfor (let i = 0; i < rows.length; i++) for (let j = i + 1; j < rows.length; j++) {\n\t\tconst sim = cosineSimilarity(rows[i].embedding, rows[j].embedding);\n\t\tif (sim >= DUPLICATE_SIMILARITY_THRESHOLD) pairs.push({\n\t\t\ta: rows[i],\n\t\t\tb: rows[j],\n\t\t\tsimilarity: sim\n\t\t});\n\t}\n\tif (pairs.length === 0) return {\n\t\tmerged: 0,\n\t\tllmDecisions: 0\n\t};\n\tconst pairBatch = pairs.slice(0, 10);\n\tconst pairDescriptions = pairBatch.map(({ a, b, similarity }, idx) => ({\n\t\tpair: idx,\n\t\tsimilarity: Math.round(similarity * 100) / 100,\n\t\ta: {\n\t\t\tid: a.id,\n\t\t\ttext: `${a.title ?? \"\"} ${a.narrative ?? \"\"}`.trim().slice(0, 120)\n\t\t},\n\t\tb: {\n\t\t\tid: b.id,\n\t\t\ttext: `${b.title ?? \"\"} ${b.narrative ?? \"\"}`.trim().slice(0, 120)\n\t\t}\n\t}));\n\tconst systemPrompt = \"You are a memory deduplication assistant. Given pairs of nearly-identical memory entries evaluate whether they should be merged. For each pair output: {\\\"pair\\\":N,\\\"merge\\\":true/false,\\\"keep\\\":\\\"<id>\\\"}. Output a JSON array only, no prose. Merge when content is substantially the same; keep when content is distinct.\";\n\tconst userContent = `Memory entry pairs to evaluate:\\n${JSON.stringify(pairDescriptions, null, 2)}`;\n\tlet decisions = [];\n\tconst rawResponse = await callLlm(projectRoot, systemPrompt, userContent);\n\tif (rawResponse) {\n\t\tconst parsed = parseJson(rawResponse);\n\t\tif (Array.isArray(parsed)) {\n\t\t\tdecisions = parsed;\n\t\t\tllmDecisions = decisions.filter((d) => d.merge).length;\n\t\t}\n\t}\n\tconst processedIds = /* @__PURE__ */ new Set();\n\tfor (let idx = 0; idx < pairBatch.length; idx++) {\n\t\tconst { a, b } = pairBatch[idx];\n\t\tif (processedIds.has(a.id) || processedIds.has(b.id)) continue;\n\t\tconst decision = decisions.find((d) => d.pair === idx);\n\t\tif (!(decision ? decision.merge : true)) continue;\n\t\tlet keepId;\n\t\tlet evictId;\n\t\tif (decision?.keep === a.id || decision?.keep === b.id) {\n\t\t\tkeepId = decision.keep;\n\t\t\tevictId = keepId === a.id ? b.id : a.id;\n\t\t} else {\n\t\t\tkeepId = (a.quality_score ?? .5) >= (b.quality_score ?? .5) ? a.id : b.id;\n\t\t\tevictId = keepId === a.id ? b.id : a.id;\n\t\t}\n\t\tconst keepRow = a.id === keepId ? a : b;\n\t\tconst evictRow = a.id === evictId ? a : b;\n\t\tconst combinedCitations = (keepRow.citation_count ?? 0) + (evictRow.citation_count ?? 0);\n\t\ttry {\n\t\t\tnativeDb.prepare(`UPDATE brain_observations SET invalid_at = ?, updated_at = ? WHERE id = ?`).run(now, now, evictId);\n\t\t\tif (combinedCitations > (keepRow.citation_count ?? 0)) nativeDb.prepare(`UPDATE brain_observations SET citation_count = ?, updated_at = ? WHERE id = ?`).run(combinedCitations, now, keepId);\n\t\t\tmerged++;\n\t\t\tprocessedIds.add(a.id);\n\t\t\tprocessedIds.add(b.id);\n\t\t} catch {}\n\t}\n\treturn {\n\t\tmerged,\n\t\tllmDecisions\n\t};\n}\n/**\n* Prune short-tier entries older than STALE_AGE_DAYS with quality < PRUNE_QUALITY_THRESHOLD.\n*\n* Before evicting, asks the LLM whether any entries should be preserved despite\n* their low score. Preserved entries have their quality_score bumped to 0.5 so\n* they survive future prune passes.\n*\n* @param projectRoot - Project root for brain.db resolution.\n*/\nasync function stepPruneStale(projectRoot) {\n\tconst { getBrainDb } = await import(\"./memory-sqlite2.js\");\n\tawait getBrainDb(projectRoot);\n\tconst nativeDb = getBrainNativeDb(projectRoot);\n\tif (!nativeDb) return {\n\t\tpruned: 0,\n\t\tpreserved: 0\n\t};\n\tconst staleCutoff = (/* @__PURE__ */ new Date(Date.now() - STALE_AGE_DAYS * 24 * 60 * 60 * 1e3)).toISOString().replace(\"T\", \" \").slice(0, 19);\n\tconst now = (/* @__PURE__ */ new Date()).toISOString().replace(\"T\", \" \").slice(0, 19);\n\tlet candidates;\n\ttry {\n\t\tcandidates = typedAll(nativeDb.prepare(`\n SELECT id, title, narrative, quality_score, citation_count, memory_tier, created_at, embedding\n FROM brain_observations\n WHERE memory_tier = 'short'\n AND invalid_at IS NULL\n AND quality_score IS NOT NULL\n AND quality_score < ?\n AND created_at < ?\n ORDER BY quality_score ASC\n LIMIT 50\n `), PRUNE_QUALITY_THRESHOLD, staleCutoff);\n\t} catch {\n\t\treturn {\n\t\t\tpruned: 0,\n\t\t\tpreserved: 0\n\t\t};\n\t}\n\tif (candidates.length === 0) return {\n\t\tpruned: 0,\n\t\tpreserved: 0\n\t};\n\tconst candidateDescriptions = candidates.slice(0, 20).map((row) => ({\n\t\tid: row.id,\n\t\tage_days: Math.round((Date.now() - new Date(row.created_at ?? 0).getTime()) / (1440 * 60 * 1e3)),\n\t\tquality: Math.round((row.quality_score ?? 0) * 100) / 100,\n\t\tcitations: row.citation_count,\n\t\ttext: `${row.title ?? \"\"} ${row.narrative ?? \"\"}`.trim().slice(0, 100)\n\t}));\n\tconst systemPrompt = \"You are a memory curator. Given a list of low-quality, stale memory entries, decide which ones are worth preserving (i.e. contain unique, non-redundant information that would be hard to reconstruct). Return a JSON array of IDs to preserve: {\\\"preserve\\\":[\\\"id1\\\",\\\"id2\\\",...]}. Only preserve entries with genuinely unique information. When in doubt, allow eviction.\";\n\tconst userContent = `Candidate entries for eviction:\\n${JSON.stringify(candidateDescriptions, null, 2)}`;\n\tlet preserveIds = /* @__PURE__ */ new Set();\n\tconst rawResponse = await callLlm(projectRoot, systemPrompt, userContent);\n\tif (rawResponse) {\n\t\tconst parsed = parseJson(rawResponse);\n\t\tif (parsed && Array.isArray(parsed.preserve)) preserveIds = new Set(parsed.preserve);\n\t}\n\tlet pruned = 0;\n\tlet preserved = 0;\n\tfor (const row of candidates) if (preserveIds.has(row.id)) try {\n\t\tnativeDb.prepare(`UPDATE brain_observations SET quality_score = 0.5, updated_at = ? WHERE id = ?`).run(now, row.id);\n\t\tpreserved++;\n\t} catch {}\n\telse try {\n\t\tnativeDb.prepare(`UPDATE brain_observations SET invalid_at = ?, updated_at = ? WHERE id = ?`).run(now, now, row.id);\n\t\tpruned++;\n\t} catch {}\n\treturn {\n\t\tpruned,\n\t\tpreserved\n\t};\n}\n/**\n* Find learnings cited >= SYNTHESIS_CITATION_MIN times and ask the LLM to\n* synthesize them into a single higher-quality pattern entry.\n*\n* The synthesized pattern is stored via storePattern() with\n* source='sleep-consolidation'. The original learnings are left intact.\n*\n* @param projectRoot - Project root for brain.db resolution.\n* @param contextEngine - Optional engine used to compress oversized learning batches.\n*/\nasync function stepStrengthenPatterns(projectRoot, contextEngine) {\n\tconst { getBrainDb } = await import(\"./memory-sqlite2.js\");\n\tawait getBrainDb(projectRoot);\n\tconst nativeDb = getBrainNativeDb(projectRoot);\n\tif (!nativeDb) return {\n\t\tsynthesized: 0,\n\t\tpatternsGenerated: 0\n\t};\n\tlet candidates;\n\ttry {\n\t\tcandidates = typedAll(nativeDb.prepare(`\n SELECT id, insight, confidence, citation_count, source, memory_tier\n FROM brain_learnings\n WHERE citation_count >= ?\n AND invalid_at IS NULL\n ORDER BY citation_count DESC, confidence DESC\n LIMIT 10\n `), SYNTHESIS_CITATION_MIN);\n\t} catch {\n\t\treturn {\n\t\t\tsynthesized: 0,\n\t\t\tpatternsGenerated: 0\n\t\t};\n\t}\n\tif (candidates.length === 0) return {\n\t\tsynthesized: 0,\n\t\tpatternsGenerated: 0\n\t};\n\tlet existingPatterns;\n\ttry {\n\t\texistingPatterns = typedAll(nativeDb.prepare(`\n SELECT id, pattern, context, impact, frequency, memory_tier\n FROM brain_patterns\n WHERE source_type = ?\n AND invalid_at IS NULL\n ORDER BY frequency DESC\n LIMIT 5\n `), SLEEP_SOURCE);\n\t} catch {\n\t\texistingPatterns = [];\n\t}\n\tconst existingPatternTexts = existingPatterns.map((p) => p.pattern.slice(0, 80)).join(\"; \");\n\tconst learningDescriptions = candidates.map((l) => ({\n\t\tid: l.id,\n\t\tinsight: l.insight.slice(0, 200),\n\t\tcitations: l.citation_count,\n\t\tconfidence: Math.round(l.confidence * 100) / 100\n\t}));\n\tconst rawResponse = await callLlm(projectRoot, \"You are a knowledge synthesizer. Given frequently-cited learnings, extract 1-3 higher-order patterns that capture the essence of what has been repeatedly confirmed. Each pattern should be actionable and generalizable. Return JSON: {\\\"patterns\\\":[{\\\"pattern\\\":\\\"...\\\",\\\"context\\\":\\\"...\\\",\\\"impact\\\":\\\"high|medium|low\\\"}]}. Skip patterns already captured in the existing list. Output JSON only, no prose.\", await _maybeCompress(`Frequently-cited learnings to synthesize:\\n${JSON.stringify(learningDescriptions, null, 2)}\\n\\nAlready captured patterns (do not duplicate): ${existingPatternTexts || \"none\"}`, contextEngine, \"learning synthesis\"));\n\tif (!rawResponse) return {\n\t\tsynthesized: candidates.length,\n\t\tpatternsGenerated: 0\n\t};\n\tconst parsed = parseJson(rawResponse);\n\tif (!parsed || !Array.isArray(parsed.patterns)) return {\n\t\tsynthesized: candidates.length,\n\t\tpatternsGenerated: 0\n\t};\n\tlet patternsGenerated = 0;\n\tfor (const p of parsed.patterns) {\n\t\tif (!p.pattern?.trim()) continue;\n\t\ttry {\n\t\t\tconst impact = p.impact === \"high\" || p.impact === \"medium\" || p.impact === \"low\" ? p.impact : \"medium\";\n\t\t\tawait storePattern(projectRoot, {\n\t\t\t\ttype: \"optimization\",\n\t\t\t\tpattern: p.pattern.slice(0, 500),\n\t\t\t\tcontext: (p.context ?? \"\").slice(0, 500),\n\t\t\t\timpact,\n\t\t\t\tsource: SLEEP_SOURCE\n\t\t\t});\n\t\t\tpatternsGenerated++;\n\t\t} catch {}\n\t}\n\treturn {\n\t\tsynthesized: candidates.length,\n\t\tpatternsGenerated\n\t};\n}\n/**\n* Cluster recent observations by shared entity overlap and ask the LLM to\n* extract a cross-cutting insight for each cluster.\n*\n* Insights are stored as brain_observations with source='sleep-consolidation'\n* and memory_tier='medium' (they represent synthesized knowledge).\n*\n* @param projectRoot - Project root for brain.db resolution.\n* @param contextEngine - Optional engine used to compress oversized cluster payloads.\n*/\nasync function stepGenerateInsights(projectRoot, contextEngine) {\n\tconst { getBrainDb } = await import(\"./memory-sqlite2.js\");\n\tawait getBrainDb(projectRoot);\n\tconst nativeDb = getBrainNativeDb(projectRoot);\n\tif (!nativeDb) return {\n\t\tclustersProcessed: 0,\n\t\tinsightsStored: 0\n\t};\n\tconst recent14d = (/* @__PURE__ */ new Date(Date.now() - 336 * 60 * 60 * 1e3)).toISOString().replace(\"T\", \" \").slice(0, 19);\n\tlet observations;\n\ttry {\n\t\tobservations = typedAll(nativeDb.prepare(`\n SELECT id,\n COALESCE(title, '') || ' ' || COALESCE(narrative, '') AS text\n FROM brain_observations\n WHERE created_at >= ?\n AND invalid_at IS NULL\n AND (source_type IS NULL OR source_type NOT IN (?, 'observer-compressed'))\n ORDER BY quality_score DESC\n LIMIT 60\n `), recent14d, SLEEP_SOURCE);\n\t} catch {\n\t\treturn {\n\t\t\tclustersProcessed: 0,\n\t\t\tinsightsStored: 0\n\t\t};\n\t}\n\tif (observations.length < 5) return {\n\t\tclustersProcessed: 0,\n\t\tinsightsStored: 0\n\t};\n\tconst STOP = new Set([\n\t\t\"this\",\n\t\t\"that\",\n\t\t\"with\",\n\t\t\"from\",\n\t\t\"have\",\n\t\t\"been\",\n\t\t\"will\",\n\t\t\"when\",\n\t\t\"then\",\n\t\t\"they\",\n\t\t\"were\",\n\t\t\"also\",\n\t\t\"into\",\n\t\t\"over\",\n\t\t\"some\",\n\t\t\"more\",\n\t\t\"very\",\n\t\t\"just\",\n\t\t\"each\",\n\t\t\"both\"\n\t]);\n\tfunction tokenize(text) {\n\t\tconst tokens = text.toLowerCase().replace(/[^a-z0-9\\s]/g, \" \").split(/\\s+/).filter((t) => t.length >= 4 && !STOP.has(t));\n\t\treturn new Set(tokens);\n\t}\n\tconst tokenSets = observations.map((o) => ({\n\t\tid: o.id,\n\t\ttext: o.text,\n\t\ttokens: tokenize(o.text)\n\t}));\n\tconst clusters = [];\n\tfor (const obs of tokenSets) {\n\t\tlet placed = false;\n\t\tfor (const cluster of clusters) {\n\t\t\tconst firstText = tokenSets.find((t) => t.id === cluster.memberIds[0]);\n\t\t\tif (!firstText) continue;\n\t\t\tlet shared = 0;\n\t\t\tfor (const tok of obs.tokens) if (firstText.tokens.has(tok)) shared++;\n\t\t\tif (shared >= 3) {\n\t\t\t\tcluster.memberIds.push(obs.id);\n\t\t\t\tcluster.texts.push(obs.text.slice(0, 120));\n\t\t\t\tplaced = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (!placed && clusters.length < 5) clusters.push({\n\t\t\tmemberIds: [obs.id],\n\t\t\ttexts: [obs.text.slice(0, 120)]\n\t\t});\n\t}\n\tconst validClusters = clusters.filter((c) => c.memberIds.length >= 3);\n\tif (validClusters.length === 0) return {\n\t\tclustersProcessed: 0,\n\t\tinsightsStored: 0\n\t};\n\tconst clusterDescriptions = validClusters.map((c, i) => ({\n\t\tcluster: i,\n\t\tentries: c.texts.slice(0, 5)\n\t}));\n\tconst rawResponse = await callLlm(projectRoot, \"You are a cross-domain insight extractor. Given clusters of related memory entries, identify one cross-cutting insight per cluster that would not be obvious from any single entry. Return JSON: {\\\"insights\\\":[{\\\"cluster\\\":N,\\\"insight\\\":\\\"...\\\",\\\"confidence\\\":0.0-1.0}]}. Only include high-value insights (confidence >= 0.7). Output JSON only, no prose.\", await _maybeCompress(`Memory clusters to analyse:\\n${JSON.stringify(clusterDescriptions, null, 2)}`, contextEngine, \"insight extraction\"));\n\tif (!rawResponse) return {\n\t\tclustersProcessed: validClusters.length,\n\t\tinsightsStored: 0\n\t};\n\tconst parsed = parseJson(rawResponse);\n\tif (!parsed || !Array.isArray(parsed.insights)) return {\n\t\tclustersProcessed: validClusters.length,\n\t\tinsightsStored: 0\n\t};\n\tlet insightsStored = 0;\n\tconst now = (/* @__PURE__ */ new Date()).toISOString().replace(\"T\", \" \").slice(0, 19);\n\tfor (const insight of parsed.insights) {\n\t\tif (!insight.insight?.trim()) continue;\n\t\tconst confidence = Math.max(0, Math.min(1, insight.confidence ?? .7));\n\t\tif (confidence < .7) continue;\n\t\ttry {\n\t\t\tawait storeLearning(projectRoot, {\n\t\t\t\tinsight: insight.insight.slice(0, 500),\n\t\t\t\tsource: SLEEP_SOURCE,\n\t\t\t\tconfidence,\n\t\t\t\tactionable: true,\n\t\t\t\tapplication: \"Cross-cutting insight synthesized from clustered observations\"\n\t\t\t});\n\t\t\tinsightsStored++;\n\t\t} catch {}\n\t}\n\tif (insightsStored > 0) try {\n\t\tconst runId = `O-${randomBytes(4).toString(\"hex\")}`;\n\t\tnativeDb.prepare(`\n INSERT INTO brain_observations\n (id, type, title, narrative, source_type, quality_score, memory_tier, created_at)\n VALUES (?, 'change', ?, ?, ?, 0.6, 'short', ?)\n `).run(runId, `[sleep-consolidation] Insight generation run`, `Generated ${insightsStored} cross-cutting insights from ${validClusters.length} clusters.`, SLEEP_SOURCE, now);\n\t} catch {}\n\treturn {\n\t\tclustersProcessed: validClusters.length,\n\t\tinsightsStored\n\t};\n}\n/**\n* Run the full sleep-time consolidation pipeline for CLEO BRAIN.\n*\n* This is the main entry point for LLM-driven background memory hygiene.\n* It is designed to run after session end (via setImmediate) and must never\n* throw — all errors are caught and logged.\n*\n* Steps (in order):\n* 1. Merge duplicates — embedding-similarity-based dedup with LLM confirmation\n* 2. Prune stale — evict low-quality short-tier entries; LLM may preserve some\n* 3. Strengthen patterns — synthesize frequently-cited learnings into patterns\n* 4. Generate insights — extract cross-cutting insights from observation clusters\n*\n* Graceful degradation: when no Anthropic API key is available, LLM steps\n* silently skip their LLM call and fall back to structural heuristics.\n*\n* @param projectRoot - Project root directory for brain.db resolution.\n* @param contextEngine - Optional context engine for LLM-backed compression of\n* large narrative batches. When provided, oversized observation payloads are\n* compressed via {@link ContextEngine.compress} before being sent to the LLM,\n* staying within the model's context window. When absent, raw payloads are\n* used unchanged (the existing behaviour).\n* @returns Aggregated result counts from each step.\n*/\nasync function runSleepConsolidation(projectRoot, contextEngine) {\n\tconst empty = {\n\t\tran: false,\n\t\tmergeDuplicates: {\n\t\t\tmerged: 0,\n\t\t\tllmDecisions: 0\n\t\t},\n\t\tpruneStale: {\n\t\t\tpruned: 0,\n\t\t\tpreserved: 0\n\t\t},\n\t\tstrengthenPatterns: {\n\t\t\tsynthesized: 0,\n\t\t\tpatternsGenerated: 0\n\t\t},\n\t\tgenerateInsights: {\n\t\t\tclustersProcessed: 0,\n\t\t\tinsightsStored: 0\n\t\t}\n\t};\n\tlet config;\n\ttry {\n\t\tconfig = await loadSleepConfig(projectRoot);\n\t} catch {\n\t\tconfig = { enabled: true };\n\t}\n\tif (!config.enabled) return empty;\n\tconst result = {\n\t\tran: true,\n\t\tmergeDuplicates: {\n\t\t\tmerged: 0,\n\t\t\tllmDecisions: 0\n\t\t},\n\t\tpruneStale: {\n\t\t\tpruned: 0,\n\t\t\tpreserved: 0\n\t\t},\n\t\tstrengthenPatterns: {\n\t\t\tsynthesized: 0,\n\t\t\tpatternsGenerated: 0\n\t\t},\n\t\tgenerateInsights: {\n\t\t\tclustersProcessed: 0,\n\t\t\tinsightsStored: 0\n\t\t}\n\t};\n\ttry {\n\t\tresult.mergeDuplicates = await stepMergeDuplicates(projectRoot);\n\t} catch (err) {\n\t\tconsole.warn(\"[sleep-consolidation] Step 1 (merge duplicates) failed:\", err);\n\t}\n\ttry {\n\t\tresult.pruneStale = await stepPruneStale(projectRoot);\n\t} catch (err) {\n\t\tconsole.warn(\"[sleep-consolidation] Step 2 (prune stale) failed:\", err);\n\t}\n\ttry {\n\t\tresult.strengthenPatterns = await stepStrengthenPatterns(projectRoot, contextEngine);\n\t} catch (err) {\n\t\tconsole.warn(\"[sleep-consolidation] Step 3 (strengthen patterns) failed:\", err);\n\t}\n\ttry {\n\t\tresult.generateInsights = await stepGenerateInsights(projectRoot, contextEngine);\n\t} catch (err) {\n\t\tconsole.warn(\"[sleep-consolidation] Step 4 (generate insights) failed:\", err);\n\t}\n\ttry {\n\t\tresult.dreamerUpgrade = await runDreamerUpgrade(projectRoot);\n\t} catch (err) {\n\t\tconsole.warn(\"[sleep-consolidation] Wave 6 dreamer upgrade failed:\", err);\n\t}\n\treturn result;\n}\n/**\n* Run the Wave 6 dreamer upgrade:\n* Step 5: Compute Bayesian surprisal scores for recent observations\n* Step 6: Build RPTree from high-surprisal observations\n* Step 7: Dispatch consolidation specialists in surprisal-priority order\n*\n* Gracefully degrades when:\n* - No embeddings available → returns neutral scores, skips tree/specialists\n* - No LLM backend → specialists no-op silently\n* - Any step errors → logged, not thrown\n*\n* @param projectRoot - Project root for DB resolution.\n* @returns DreamerUpgradeResult with counts from each step.\n*\n* @task T1146\n*/\nasync function runDreamerUpgrade(_projectRoot) {\n\tconst result = {\n\t\tsurprisalScored: 0,\n\t\ttreeNodesWritten: 0,\n\t\ttreeObsAssigned: 0,\n\t\tspecialistsCreated: 0,\n\t\tspecialistsRan: 0,\n\t\tspecialistsSkipped: 0\n\t};\n\tconst [{ computeSurprisalBatch }, { buildSurprisalTree }, { dispatchSpecialists }] = await Promise.all([\n\t\timport(\"./surprisal.js\"),\n\t\timport(\"./surprisal-tree.js\"),\n\t\timport(\"./specialists.js\")\n\t]);\n\tconst { getBrainNativeDb } = await import(\"./memory-sqlite2.js\");\n\tconst nativeDb = getBrainNativeDb();\n\tif (!nativeDb) {\n\t\tconsole.warn(\"[dreamer-upgrade] No database available; skipping all steps.\");\n\t\treturn result;\n\t}\n\tconst rawObs = nativeDb.prepare(`SELECT o.id, o.type, o.title, o.narrative, o.project, o.peer_id,\n o.source_session_id, e.embedding, o.created_at\n FROM brain_observations o\n LEFT JOIN brain_embeddings e ON e.id = o.id\n WHERE o.level IS NULL OR o.level = 'explicit'\n ORDER BY o.created_at DESC\n LIMIT 100`).all();\n\tif (rawObs.length === 0) return result;\n\tconst surprisalResults = computeSurprisalBatch(rawObs.map((r) => {\n\t\tlet embedding = null;\n\t\tif (r.embedding instanceof Uint8Array || Buffer.isBuffer(r.embedding)) {\n\t\t\tconst buf = r.embedding;\n\t\t\tembedding = Array.from(new Float32Array(buf.buffer, buf.byteOffset, buf.byteLength / 4));\n\t\t}\n\t\treturn {\n\t\t\tid: r.id,\n\t\t\tembedding\n\t\t};\n\t}), { db: nativeDb });\n\tresult.surprisalScored = surprisalResults.length;\n\tconst obsWithEmbeddings = rawObs.filter((r) => r.embedding instanceof Uint8Array || Buffer.isBuffer(r.embedding)).map((r) => {\n\t\tconst buf = r.embedding;\n\t\treturn {\n\t\t\tid: r.id,\n\t\t\tembedding: Array.from(new Float32Array(buf.buffer, buf.byteOffset, buf.byteLength / 4))\n\t\t};\n\t});\n\tif (obsWithEmbeddings.length >= 2) {\n\t\tconst treeResult = buildSurprisalTree(obsWithEmbeddings, { db: nativeDb });\n\t\tresult.treeNodesWritten = treeResult.nodesWritten;\n\t\tresult.treeObsAssigned = treeResult.obsAssigned;\n\t}\n\tconst specialistResults = await dispatchSpecialists(rawObs.map((r) => ({\n\t\tid: r.id,\n\t\ttype: String(r.type ?? \"\"),\n\t\ttitle: r.title != null ? String(r.title) : null,\n\t\tnarrative: r.narrative != null ? String(r.narrative) : null,\n\t\tproject: r.project != null ? String(r.project) : null,\n\t\tpeerId: String(r.peer_id ?? \"global\"),\n\t\tsourceSessionId: r.source_session_id != null ? String(r.source_session_id) : null\n\t})), surprisalResults, { db: nativeDb });\n\tresult.specialistsCreated = specialistResults.totalCreated;\n\tresult.specialistsRan = specialistResults.specialists.filter((s) => !s.skipped).length;\n\tresult.specialistsSkipped = specialistResults.totalSkipped;\n\treturn result;\n}\n//#endregion\nexport { runSleepConsolidation };\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"spawn-cli-wI1lBJhm.js","sources":["../../../.svelte-kit/adapter-node/chunks/spawn-cli.js"],"sourcesContent":["import { spawn } from \"node:child_process\";\n//#region src/lib/server/spawn-cli.ts\n/**\n* Shared utility for shelling out to the `cleo` CLI from Studio API endpoints.\n*\n* Uses child_process.spawn (NOT execFileSync) so long-running commands\n* (nexus analyze, nexus projects scan, etc.) do not block the event loop.\n* Stdout is buffered and the final JSON envelope is parsed on process exit.\n* Stderr is captured and surfaced on failure.\n*\n* @task T657\n*/\n/** Timeout for CLI commands in milliseconds. */\nvar CLI_TIMEOUT_MS = 6e4;\n/**\n* Run a `cleo` CLI command and collect its output.\n*\n* @param args - Arguments to pass to the `cleo` binary (e.g. `['nexus', 'analyze', '/path']`).\n* @returns A promise that resolves with the collected CLI output.\n*\n* @example\n* const result = await runCleoCli(['nexus', 'projects', 'remove', 'proj-123', '--json']);\n*/\nfunction runCleoCli(args) {\n\treturn new Promise((resolve) => {\n\t\tconst child = spawn(process.env[\"CLEO_BIN\"] ?? \"cleo\", args, { stdio: [\n\t\t\t\"ignore\",\n\t\t\t\"pipe\",\n\t\t\t\"pipe\"\n\t\t] });\n\t\tlet stdout = \"\";\n\t\tlet stderr = \"\";\n\t\tchild.stdout.on(\"data\", (chunk) => {\n\t\t\tstdout += chunk.toString();\n\t\t});\n\t\tchild.stderr.on(\"data\", (chunk) => {\n\t\t\tstderr += chunk.toString();\n\t\t});\n\t\tconst timer = setTimeout(() => {\n\t\t\tchild.kill(\"SIGTERM\");\n\t\t\tresolve({\n\t\t\t\tok: false,\n\t\t\t\tenvelope: null,\n\t\t\t\tstdout,\n\t\t\t\tstderr: stderr || \"CLI command timed out after 60s\",\n\t\t\t\texitCode: -1\n\t\t\t});\n\t\t}, CLI_TIMEOUT_MS);\n\t\tchild.on(\"close\", (code) => {\n\t\t\tclearTimeout(timer);\n\t\t\tconst exitCode = code ?? -1;\n\t\t\tlet envelope = null;\n\t\t\ttry {\n\t\t\t\tconst trimmed = stdout.trim();\n\t\t\t\tif (trimmed.startsWith(\"{\")) envelope = JSON.parse(trimmed);\n\t\t\t} catch {}\n\t\t\tresolve({\n\t\t\t\tok: exitCode === 0 && (envelope?.success ?? true),\n\t\t\t\tenvelope,\n\t\t\t\tstdout,\n\t\t\t\tstderr,\n\t\t\t\texitCode\n\t\t\t});\n\t\t});\n\t});\n}\n//#endregion\nexport { runCleoCli as t };\n"],"names":[],"mappings":";;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,GAAG,GAAG;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACjC,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE;AACxE,GAAG,QAAQ;AACX,GAAG,MAAM;AACT,GAAG;AACH,GAAG,EAAE,CAAC;AACN,EAAE,IAAI,MAAM,GAAG,EAAE;AACjB,EAAE,IAAI,MAAM,GAAG,EAAE;AACjB,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;AACrC,GAAG,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE;AAC7B,EAAE,CAAC,CAAC;AACJ,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;AACrC,GAAG,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE;AAC7B,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM;AACjC,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AACxB,GAAG,OAAO,CAAC;AACX,IAAI,EAAE,EAAE,KAAK;AACb,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,MAAM;AACV,IAAI,MAAM,EAAE,MAAM,IAAI,iCAAiC;AACvD,IAAI,QAAQ,EAAE;AACd,IAAI,CAAC;AACL,EAAE,CAAC,EAAE,cAAc,CAAC;AACpB,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK;AAC9B,GAAG,YAAY,CAAC,KAAK,CAAC;AACtB,GAAG,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE;AAC9B,GAAG,IAAI,QAAQ,GAAG,IAAI;AACtB,GAAG,IAAI;AACP,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE;AACjC,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC/D,GAAG,CAAC,CAAC,MAAM,CAAC;AACZ,GAAG,OAAO,CAAC;AACX,IAAI,EAAE,EAAE,QAAQ,KAAK,CAAC,KAAK,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC;AACrD,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,MAAM;AACV,IAAI;AACJ,IAAI,CAAC;AACL,EAAE,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AACH;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"specialists-B_ZbpQlK.js","sources":["../../../.svelte-kit/adapter-node/chunks/specialists.js"],"sourcesContent":["import { o as getBrainNativeDb } from \"./memory-sqlite.js\";\nimport { randomBytes } from \"node:crypto\";\n//#region ../core/dist/memory/specialists.js\n/**\n* Consolidation Specialists — T1146 Wave 6 Dreamer Upgrade\n*\n* Implements the `BaseSpecialist` interface and 6 concrete specialist classes\n* for targeted memory consolidation during dream cycles.\n*\n* Specialists process high-surprisal observations in priority order, each\n* routing observations to the appropriate BRAIN table based on their\n* cognitive type.\n*\n* LLM backend: uses `resolveLlmBackend('warm')` from llm-backend-resolver.ts.\n* When backend returns null, each specialist MUST silently no-op (not throw).\n* This matches the `sleep-consolidation.ts` pattern (no API key = silent no-op).\n*\n* Specialists:\n* 1. DeductionSpecialist — logical consequences → brain_learnings\n* 2. InductionSpecialist — pattern generalization → brain_patterns\n* 3. UserPreferenceSpecialist — preference signals → brain_observations (preference type)\n* 4. DecisionSpecialist — high-surprisal decisions → brain_decisions\n* 5. CodePatternSpecialist — code change patterns → brain_patterns\n* 6. TaskOutcomeSpecialist — task completion links → brain_observations (task-outcome type)\n*\n* @task T1146\n* @epic T1146\n*/\n/** Quality score for specialist-generated observations. */\nvar SPECIALIST_QUALITY = .75;\n/** Quality score for specialist-generated learnings (reserved for future use). */\n/** High surprisal threshold — only observations above this are specialist-routed. */\nvar SPECIALIST_SURPRISAL_THRESHOLD = .6;\nfunction obsId() {\n\treturn `O-${randomBytes(4).toString(\"hex\")}`;\n}\nfunction learningId() {\n\treturn `L-${randomBytes(4).toString(\"hex\")}`;\n}\nfunction patternId() {\n\treturn `P-${randomBytes(4).toString(\"hex\")}`;\n}\nfunction decisionId() {\n\treturn `D-${randomBytes(4).toString(\"hex\")}`;\n}\n/**\n* Deduction Specialist — extracts logical consequences and routes to brain_learnings.\n*\n* Pattern: observations with factual or technical content → synthesize\n* a concise learning insight.\n*\n* @task T1146\n*/\nvar DeductionSpecialist = class {\n\tname = \"DeductionSpecialist\";\n\tasync process(observations, llmAvailable, nativeDb) {\n\t\tif (!llmAvailable || observations.length === 0) return {\n\t\t\tspecialist: this.name,\n\t\t\tcreated: 0,\n\t\t\tskipped: true,\n\t\t\tskipReason: \"no LLM backend\"\n\t\t};\n\t\ttry {\n\t\t\tlet created = 0;\n\t\t\tconst now = (/* @__PURE__ */ new Date()).toISOString();\n\t\t\tfor (const obs of observations.slice(0, 5)) {\n\t\t\t\tif (!obs.narrative && !obs.title) continue;\n\t\t\t\tconst insight = `[Deduction] From observation \"${obs.title ?? \"\"}\": ${(obs.narrative ?? obs.title ?? \"\").slice(0, 300)}`;\n\t\t\t\tconst id = learningId();\n\t\t\t\tnativeDb.prepare(`INSERT INTO brain_learnings\n (id, insight, confidence, source, source_session_id,\n memory_tier, memory_type, created_at, provenance_class)\n VALUES (?, ?, 0.7, 'deduction-specialist', ?, 'short', 'semantic', ?, 'deriver-synthesized')`).run(id, insight, obs.sourceSessionId ?? null, now);\n\t\t\t\tcreated++;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tspecialist: this.name,\n\t\t\t\tcreated,\n\t\t\t\tskipped: false\n\t\t\t};\n\t\t} catch (err) {\n\t\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\t\treturn {\n\t\t\t\tspecialist: this.name,\n\t\t\t\tcreated: 0,\n\t\t\t\tskipped: true,\n\t\t\t\tskipReason: msg\n\t\t\t};\n\t\t}\n\t}\n};\n/**\n* Induction Specialist — generalizes patterns across multiple observations.\n* Routes to brain_patterns.\n*\n* @task T1146\n*/\nvar InductionSpecialist = class {\n\tname = \"InductionSpecialist\";\n\tasync process(observations, llmAvailable, nativeDb) {\n\t\tif (!llmAvailable || observations.length < 2) return {\n\t\t\tspecialist: this.name,\n\t\t\tcreated: 0,\n\t\t\tskipped: true,\n\t\t\tskipReason: observations.length < 2 ? \"insufficient observations\" : \"no LLM backend\"\n\t\t};\n\t\ttry {\n\t\t\tconst now = (/* @__PURE__ */ new Date()).toISOString();\n\t\t\tconst titles = observations.slice(0, 8).map((o) => o.title ?? \"\").filter(Boolean).join(\"; \");\n\t\t\tconst pattern = `[Induction] Pattern from ${observations.length} high-surprisal observations: ${titles.slice(0, 400)}`;\n\t\t\tconst id = patternId();\n\t\t\tnativeDb.prepare(`INSERT INTO brain_patterns\n (id, pattern, context, frequency, impact, source,\n memory_tier, memory_type, created_at, provenance_class)\n VALUES (?, ?, ?, 1, 'medium', 'induction-specialist', 'short', 'procedural', ?, 'deriver-synthesized')`).run(id, pattern, `cluster of ${observations.length} observations`, now);\n\t\t\treturn {\n\t\t\t\tspecialist: this.name,\n\t\t\t\tcreated: 1,\n\t\t\t\tskipped: false\n\t\t\t};\n\t\t} catch (err) {\n\t\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\t\treturn {\n\t\t\t\tspecialist: this.name,\n\t\t\t\tcreated: 0,\n\t\t\t\tskipped: true,\n\t\t\t\tskipReason: msg\n\t\t\t};\n\t\t}\n\t}\n};\n/**\n* UserPreference Specialist — extracts preference signals from user-facing observations.\n* Routes to brain_observations with type='preference'.\n*\n* @task T1146\n*/\nvar UserPreferenceSpecialist = class {\n\tname = \"UserPreferenceSpecialist\";\n\tasync process(observations, llmAvailable, nativeDb) {\n\t\tif (!llmAvailable) return {\n\t\t\tspecialist: this.name,\n\t\t\tcreated: 0,\n\t\t\tskipped: true,\n\t\t\tskipReason: \"no LLM backend\"\n\t\t};\n\t\ttry {\n\t\t\tlet created = 0;\n\t\t\tconst now = (/* @__PURE__ */ new Date()).toISOString();\n\t\t\tconst preferenceObs = observations.filter((o) => (o.narrative ?? \"\").toLowerCase().includes(\"prefer\") || (o.narrative ?? \"\").toLowerCase().includes(\"like\") || (o.narrative ?? \"\").toLowerCase().includes(\"always\") || (o.title ?? \"\").toLowerCase().includes(\"prefer\"));\n\t\t\tfor (const obs of preferenceObs.slice(0, 3)) {\n\t\t\t\tconst id = obsId();\n\t\t\t\tconst title = `[UserPref] ${obs.title ?? \"preference signal\"}`;\n\t\t\t\tconst narrative = `User preference signal extracted: ${(obs.narrative ?? \"\").slice(0, 200)}`;\n\t\t\t\tnativeDb.prepare(`INSERT INTO brain_observations\n (id, type, title, narrative, source_type, quality_score,\n memory_tier, memory_type, created_at, level,\n source_ids, provenance_class, peer_id, peer_scope)\n VALUES (?, 'fact', ?, ?, 'user-preference-specialist', ?,\n 'medium', 'semantic', ?, 'inductive', ?, 'deriver-synthesized', ?, 'project')`).run(id, title, narrative, SPECIALIST_QUALITY, now, JSON.stringify([obs.id]), obs.peerId);\n\t\t\t\tcreated++;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tspecialist: this.name,\n\t\t\t\tcreated,\n\t\t\t\tskipped: false\n\t\t\t};\n\t\t} catch (err) {\n\t\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\t\treturn {\n\t\t\t\tspecialist: this.name,\n\t\t\t\tcreated: 0,\n\t\t\t\tskipped: true,\n\t\t\t\tskipReason: msg\n\t\t\t};\n\t\t}\n\t}\n};\n/**\n* Decision Specialist — routes high-surprisal observations to brain_decisions.\n*\n* @task T1146\n*/\nvar DecisionSpecialist = class {\n\tname = \"DecisionSpecialist\";\n\tasync process(observations, llmAvailable, nativeDb) {\n\t\tif (!llmAvailable) return {\n\t\t\tspecialist: this.name,\n\t\t\tcreated: 0,\n\t\t\tskipped: true,\n\t\t\tskipReason: \"no LLM backend\"\n\t\t};\n\t\ttry {\n\t\t\tlet created = 0;\n\t\t\tconst now = (/* @__PURE__ */ new Date()).toISOString();\n\t\t\tconst decisionObs = observations.filter((o) => (o.narrative ?? \"\").toLowerCase().includes(\"decided\") || (o.narrative ?? \"\").toLowerCase().includes(\"chose\") || (o.narrative ?? \"\").toLowerCase().includes(\"selected\") || o.type === \"decision\");\n\t\t\tfor (const obs of decisionObs.slice(0, 3)) {\n\t\t\t\tconst id = decisionId();\n\t\t\t\tconst title = `[Decision] ${obs.title ?? \"decision from observation\"}`;\n\t\t\t\tconst rationale = (obs.narrative ?? \"\").slice(0, 500);\n\t\t\t\tnativeDb.prepare(`INSERT INTO brain_decisions\n (id, type, title, rationale, confidence, source_session_id,\n memory_tier, memory_type, created_at, provenance_class, peer_id, peer_scope)\n VALUES (?, 'architecture', ?, ?, 0.65, ?,\n 'short', 'semantic', ?, 'deriver-synthesized', ?, 'project')`).run(id, title, rationale, obs.sourceSessionId ?? null, now, obs.peerId);\n\t\t\t\tcreated++;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tspecialist: this.name,\n\t\t\t\tcreated,\n\t\t\t\tskipped: false\n\t\t\t};\n\t\t} catch (err) {\n\t\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\t\treturn {\n\t\t\t\tspecialist: this.name,\n\t\t\t\tcreated: 0,\n\t\t\t\tskipped: true,\n\t\t\t\tskipReason: msg\n\t\t\t};\n\t\t}\n\t}\n};\n/**\n* CodePattern Specialist — synthesizes code-related patterns into brain_patterns.\n*\n* @task T1146\n*/\nvar CodePatternSpecialist = class {\n\tname = \"CodePatternSpecialist\";\n\tasync process(observations, llmAvailable, nativeDb) {\n\t\tif (!llmAvailable) return {\n\t\t\tspecialist: this.name,\n\t\t\tcreated: 0,\n\t\t\tskipped: true,\n\t\t\tskipReason: \"no LLM backend\"\n\t\t};\n\t\ttry {\n\t\t\tconst now = (/* @__PURE__ */ new Date()).toISOString();\n\t\t\tconst codeObs = observations.filter((o) => o.type === \"change\" || (o.narrative ?? \"\").includes(\"function\") || (o.narrative ?? \"\").includes(\"class\") || (o.narrative ?? \"\").includes(\"import\") || (o.title ?? \"\").toLowerCase().includes(\"code\"));\n\t\t\tif (codeObs.length === 0) return {\n\t\t\t\tspecialist: this.name,\n\t\t\t\tcreated: 0,\n\t\t\t\tskipped: false\n\t\t\t};\n\t\t\tconst id = patternId();\n\t\t\tconst titles = codeObs.slice(0, 6).map((o) => o.title ?? \"\").filter(Boolean).join(\"; \");\n\t\t\tconst pattern = `[CodePattern] Code patterns from ${codeObs.length} change observations: ${titles.slice(0, 350)}`;\n\t\t\tnativeDb.prepare(`INSERT INTO brain_patterns\n (id, pattern, context, frequency, impact, source,\n memory_tier, memory_type, created_at, provenance_class)\n VALUES (?, ?, ?, ?, 'medium', 'code-pattern-specialist', 'short', 'procedural', ?, 'deriver-synthesized')`).run(id, pattern, `${codeObs.length} code change observations`, codeObs.length, now);\n\t\t\treturn {\n\t\t\t\tspecialist: this.name,\n\t\t\t\tcreated: 1,\n\t\t\t\tskipped: false\n\t\t\t};\n\t\t} catch (err) {\n\t\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\t\treturn {\n\t\t\t\tspecialist: this.name,\n\t\t\t\tcreated: 0,\n\t\t\t\tskipped: true,\n\t\t\t\tskipReason: msg\n\t\t\t};\n\t\t}\n\t}\n};\n/**\n* TaskOutcome Specialist — links consolidation to task completion events.\n* Routes to brain_observations with level='inductive' as task-outcome records.\n*\n* @task T1146\n*/\nvar TaskOutcomeSpecialist = class {\n\tname = \"TaskOutcomeSpecialist\";\n\tasync process(observations, llmAvailable, nativeDb) {\n\t\tif (!llmAvailable) return {\n\t\t\tspecialist: this.name,\n\t\t\tcreated: 0,\n\t\t\tskipped: true,\n\t\t\tskipReason: \"no LLM backend\"\n\t\t};\n\t\ttry {\n\t\t\tlet created = 0;\n\t\t\tconst now = (/* @__PURE__ */ new Date()).toISOString();\n\t\t\tconst taskObs = observations.filter((o) => (o.narrative ?? \"\").includes(\"completed\") || (o.narrative ?? \"\").includes(\"shipped\") || (o.narrative ?? \"\").includes(\"task\") || (o.title ?? \"\").toLowerCase().includes(\"T1\") || (o.title ?? \"\").toLowerCase().includes(\"task\"));\n\t\t\tfor (const obs of taskObs.slice(0, 3)) {\n\t\t\t\tconst id = obsId();\n\t\t\t\tconst title = `[TaskOutcome] ${obs.title ?? \"task outcome\"}`;\n\t\t\t\tconst narrative = `Task outcome synthesized from observation: ${(obs.narrative ?? \"\").slice(0, 300)}`;\n\t\t\t\tnativeDb.prepare(`INSERT INTO brain_observations\n (id, type, title, narrative, source_type, quality_score,\n memory_tier, memory_type, created_at, level,\n source_ids, provenance_class, peer_id, peer_scope)\n VALUES (?, 'task-outcome', ?, ?, 'task-outcome-specialist', ?,\n 'medium', 'episodic', ?, 'inductive', ?, 'deriver-synthesized', ?, 'project')`).run(id, title, narrative, SPECIALIST_QUALITY, now, JSON.stringify([obs.id]), obs.peerId);\n\t\t\t\tcreated++;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tspecialist: this.name,\n\t\t\t\tcreated,\n\t\t\t\tskipped: false\n\t\t\t};\n\t\t} catch (err) {\n\t\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\t\treturn {\n\t\t\t\tspecialist: this.name,\n\t\t\t\tcreated: 0,\n\t\t\t\tskipped: true,\n\t\t\t\tskipReason: msg\n\t\t\t};\n\t\t}\n\t}\n};\n/** Default set of specialists in dispatch priority order. */\nvar DEFAULT_SPECIALISTS = [\n\tnew DeductionSpecialist(),\n\tnew InductionSpecialist(),\n\tnew UserPreferenceSpecialist(),\n\tnew DecisionSpecialist(),\n\tnew CodePatternSpecialist(),\n\tnew TaskOutcomeSpecialist()\n];\n/**\n* Dispatch all specialists on a batch of high-surprisal observations.\n*\n* Specialists with surprisal above {@link SPECIALIST_SURPRISAL_THRESHOLD}\n* are processed; others are skipped.\n*\n* When LLM backend is null: all specialists return skipped=true (silent no-op).\n* Errors per specialist are caught — one failing specialist does not block others.\n*\n* @param observations - Observations with optional surprisal scores.\n* @param scoredResults - Surprisal scores (matched by id). If null, all are processed.\n* @param options - db injection, LLM resolver override for tests.\n* @returns Aggregated results across all specialists.\n*\n* @task T1146\n*/\nasync function dispatchSpecialists(observations, scoredResults, options = {}) {\n\tconst result = {\n\t\tspecialists: [],\n\t\ttotalCreated: 0,\n\t\ttotalSkipped: 0\n\t};\n\tconst nativeDb = options.db !== void 0 ? options.db : getBrainNativeDb();\n\tif (!nativeDb) {\n\t\tconsole.warn(\"[specialists] No database available; all specialists skipped.\");\n\t\tfor (const s of DEFAULT_SPECIALISTS) {\n\t\t\tresult.specialists.push({\n\t\t\t\tspecialist: s.name,\n\t\t\t\tcreated: 0,\n\t\t\t\tskipped: true,\n\t\t\t\tskipReason: \"no db\"\n\t\t\t});\n\t\t\tresult.totalSkipped++;\n\t\t}\n\t\treturn result;\n\t}\n\tlet eligibleObs = observations;\n\tif (scoredResults !== null) {\n\t\tconst scoreMap = new Map(scoredResults.map((r) => [r.id, r.score]));\n\t\teligibleObs = observations.filter((o) => (scoreMap.get(o.id) ?? .6) >= SPECIALIST_SURPRISAL_THRESHOLD);\n\t}\n\tif (eligibleObs.length === 0) {\n\t\tfor (const s of DEFAULT_SPECIALISTS) {\n\t\t\tresult.specialists.push({\n\t\t\t\tspecialist: s.name,\n\t\t\t\tcreated: 0,\n\t\t\t\tskipped: true,\n\t\t\t\tskipReason: \"no observations above threshold\"\n\t\t\t});\n\t\t\tresult.totalSkipped++;\n\t\t}\n\t\treturn result;\n\t}\n\tlet llmAvailable = false;\n\ttry {\n\t\tllmAvailable = await (options.resolveLlm ?? (async () => {\n\t\t\tconst { resolveLlmBackend } = await import(\"./llm-backend-resolver.js\");\n\t\t\treturn resolveLlmBackend(\"warm\");\n\t\t}))() !== null;\n\t} catch {\n\t\tllmAvailable = false;\n\t}\n\tfor (const specialist of DEFAULT_SPECIALISTS) try {\n\t\tconst specialistResult = await specialist.process(eligibleObs, llmAvailable, nativeDb);\n\t\tresult.specialists.push(specialistResult);\n\t\tresult.totalCreated += specialistResult.created;\n\t\tif (specialistResult.skipped) result.totalSkipped++;\n\t} catch (err) {\n\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\tresult.specialists.push({\n\t\t\tspecialist: specialist.name,\n\t\t\tcreated: 0,\n\t\t\tskipped: true,\n\t\t\tskipReason: `unexpected error: ${msg}`\n\t\t});\n\t\tresult.totalSkipped++;\n\t}\n\treturn result;\n}\n//#endregion\nexport { CodePatternSpecialist, DecisionSpecialist, DeductionSpecialist, InductionSpecialist, SPECIALIST_SURPRISAL_THRESHOLD, TaskOutcomeSpecialist, UserPreferenceSpecialist, dispatchSpecialists };\n"],"names":[],"mappings":"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"}