@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":"_server.ts-CDMurH5m.js","sources":["../../../.svelte-kit/adapter-node/chunks/state2.js","../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/section/_name_/_server.ts.js"],"sourcesContent":["import { dirname, join } from \"node:path\";\nimport { randomUUID } from \"node:crypto\";\nimport { mkdir, readFile, rename, rm, writeFile } from \"node:fs/promises\";\n/** Default (empty) sentient state for fresh initialisation. */\nvar DEFAULT_SENTIENT_STATE = {\n\tschemaVersion: \"1.0\",\n\tpid: null,\n\tstartedAt: null,\n\tlastTickAt: null,\n\tlastCronFiredAt: null,\n\tkillSwitch: false,\n\tkillSwitchReason: null,\n\tpausedByRevert: false,\n\trevertReceiptId: null,\n\tstats: {\n\t\ttasksPicked: 0,\n\t\ttasksCompleted: 0,\n\t\ttasksFailed: 0,\n\t\tticksExecuted: 0,\n\t\tticksKilled: 0\n\t},\n\tstuckTasks: {},\n\tstuckTimestamps: [],\n\tactiveTaskId: null,\n\ttier2Enabled: false,\n\ttier2Stats: {\n\t\tproposalsGenerated: 0,\n\t\tproposalsAccepted: 0,\n\t\tproposalsRejected: 0\n\t},\n\ttier3Enabled: false,\n\ttier3LastTickAt: null,\n\ttier3Stats: {\n\t\tticksKilled: 0,\n\t\tabortsTotal: 0,\n\t\tmergesCompleted: 0\n\t},\n\thygieneLastRunAt: null,\n\thygieneSummary: null,\n\thygieneStats: {\n\t\tprojectsChecked: 0,\n\t\tprojectsHealthy: 0,\n\t\ttempGcCandidates: 0,\n\t\tduplicateEpicGroups: 0,\n\t\tworktreesPruned: 0\n\t}\n};\n/**\n* T1074: Error code thrown when `resumeSentientDaemon()` is called but the\n* state has `pausedByRevert=true`. Owner must provide a valid attestation\n* via `resumeAfterRevert()` first.\n*/\nvar E_OWNER_ATTESTATION_REQUIRED = \"E_OWNER_ATTESTATION_REQUIRED\";\n/**\n* Read the sentient state from disk.\n*\n* Returns the default state if the file does not exist or is malformed.\n* Never throws — absence is not an error.\n*\n* @param statePath - Absolute path to sentient-state.json\n*/\nasync function readSentientState(statePath) {\n\ttry {\n\t\tconst raw = await readFile(statePath, \"utf-8\");\n\t\tconst parsed = JSON.parse(raw);\n\t\treturn {\n\t\t\t...DEFAULT_SENTIENT_STATE,\n\t\t\t...parsed,\n\t\t\tstats: {\n\t\t\t\t...DEFAULT_SENTIENT_STATE.stats,\n\t\t\t\t...parsed.stats ?? {}\n\t\t\t},\n\t\t\tstuckTasks: parsed.stuckTasks ?? {},\n\t\t\tstuckTimestamps: parsed.stuckTimestamps ?? [],\n\t\t\ttier2Enabled: parsed.tier2Enabled ?? false,\n\t\t\ttier2Stats: {\n\t\t\t\t...DEFAULT_SENTIENT_STATE.tier2Stats,\n\t\t\t\t...parsed.tier2Stats ?? {}\n\t\t\t},\n\t\t\tpausedByRevert: parsed.pausedByRevert ?? false,\n\t\t\trevertReceiptId: parsed.revertReceiptId ?? null,\n\t\t\ttier3Enabled: parsed.tier3Enabled ?? false,\n\t\t\ttier3LastTickAt: parsed.tier3LastTickAt ?? null,\n\t\t\ttier3Stats: {\n\t\t\t\t...DEFAULT_SENTIENT_STATE.tier3Stats,\n\t\t\t\t...parsed.tier3Stats ?? {}\n\t\t\t},\n\t\t\thygieneLastRunAt: parsed.hygieneLastRunAt ?? null,\n\t\t\thygieneSummary: parsed.hygieneSummary ?? null,\n\t\t\thygieneStats: {\n\t\t\t\t...DEFAULT_SENTIENT_STATE.hygieneStats,\n\t\t\t\t...parsed.hygieneStats ?? {}\n\t\t\t}\n\t\t};\n\t} catch {\n\t\treturn { ...DEFAULT_SENTIENT_STATE };\n\t}\n}\n/**\n* Write the sentient state to disk atomically via tmp-then-rename.\n*\n* Atomic write prevents partial reads if the daemon crashes mid-write.\n*\n* @param statePath - Absolute path to sentient-state.json\n* @param state - State to persist\n*/\nasync function writeSentientState(statePath, state) {\n\tconst dir = dirname(statePath);\n\tawait mkdir(dir, { recursive: true });\n\tconst tmpPath = join(dir, `.sentient-state-${`${process.pid}-${randomUUID()}`}.tmp`);\n\tawait writeFile(tmpPath, JSON.stringify(state, null, 2), \"utf-8\");\n\ttry {\n\t\tawait rename(tmpPath, statePath);\n\t} catch (err) {\n\t\tawait rm(tmpPath, { force: true }).catch(() => {});\n\t\tthrow err;\n\t}\n}\n/**\n* Patch a subset of fields in the sentient state file.\n*\n* Reads current state, merges patch, writes back. Nested `stats` merges\n* with existing stats (never clobbered wholesale).\n*\n* @param statePath - Absolute path to sentient-state.json\n* @param patch - Partial state to merge over the existing state\n* @returns The merged state that was written to disk.\n*/\nasync function patchSentientState(statePath, patch) {\n\tconst current = await readSentientState(statePath);\n\tconst updated = {\n\t\t...current,\n\t\t...patch,\n\t\tstats: {\n\t\t\t...current.stats,\n\t\t\t...patch.stats ?? {}\n\t\t}\n\t};\n\tawait writeSentientState(statePath, updated);\n\treturn updated;\n}\n//#endregion\nexport { writeSentientState as a, readSentientState as i, E_OWNER_ATTESTATION_REQUIRED as n, patchSentientState as r, DEFAULT_SENTIENT_STATE as t };\n","import { a as getCleoPlatformPaths } from \"../../../../../../chunks/dist.js\";\nimport { It as WHOAMI_ROLE_IDS } from \"../../../../../../chunks/dist2.js\";\nimport { d as resolveCleoDir, f as resolveOrCwd } from \"../../../../../../chunks/paths.js\";\nimport { n as runFrontDoorLogin, t as SENTIENT_STATE_FILE } from \"../../../../../../chunks/daemon.js\";\nimport { a as loadConfig, n as applyStrictnessPreset, r as getConfigValue, s as setConfigValue } from \"../../../../../../chunks/config.js\";\nimport { a as getCredentialPool, s as addCredential } from \"../../../../../../chunks/credential-pool.js\";\nimport { n as listProviderModels, r as resolveProviderDefaultModel, t as catalogKeyForProvider } from \"../../../../../../chunks/catalog-model-resolver2.js\";\nimport \"../../../../../../chunks/local-model-fit2.js\";\nimport { i as readSentientState, r as patchSentientState } from \"../../../../../../chunks/state2.js\";\nimport { c as parseJsonBody, n as isParseError, r as ok, t as err } from \"../../../../../../chunks/_lafs.js\";\nimport { json } from \"@sveltejs/kit\";\nimport { existsSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport { randomUUID } from \"node:crypto\";\nimport { access, mkdir, writeFile } from \"node:fs/promises\";\n//#region ../core/dist/setup/sections/brain.js\n/**\n* `brain` setup wizard section (E-CONFIG-AUTH-UNIFY E3 / T9425).\n*\n* Controls how BRAIN context is surfaced inside AGENTS.md by toggling\n* `brain.memoryBridge.mode` across three operator-visible values:\n*\n* - `'digest'` — AGENTS.md gets a `cleo memory digest` directive\n* (no `.cleo/memory-bridge.md` written). Wire value stays\n* `'cli'` so existing project configs continue to resolve\n* correctly; the wizard label was renamed to \"digest\" to\n* match the user-facing CLI command.\n* - `'file'` — Legacy behaviour: write `.cleo/memory-bridge.md` and\n* `.cleo/nexus-bridge.md` so they get `@`-injected.\n* - `'disabled'` — Suppress BRAIN-driven AGENTS.md augmentation entirely.\n*\n* V2 additions (T9610):\n* - `isConfigured()` — returns `true` when `brain.memoryBridge.mode` is set (BRAIN-6).\n* - Retention days prompt (BRAIN-3).\n* - Embedding toggle prompt (BRAIN-4).\n* - Displays current bridge mode, embedding state, and retention days (BRAIN-1).\n* - Section description printed before prompts (GEN-6).\n*\n* Non-interactive contract:\n* - `options.nonInteractive === true` + `options.brainBridgeMode` →\n* persist that value; no prompts.\n* - Missing `--brain-bridge-mode` under `--non-interactive` →\n* section short-circuits with error.\n*\n* @task T9425\n* @task T9610\n* @epic T9402\n* @epic T9591\n* @see docs/plans/E-CLEO-SETUP-V2.md §4.6 (BRAIN-1 through BRAIN-6)\n* @see docs/plans/E-CONFIG-AUTH-UNIFY.md §5.3 T-E3-6\n*/\n/**\n* Operator-facing mode labels the wizard offers.\n*\n* `'digest'` is a label-only synonym for the on-disk `'cli'` mode — see the\n* file-level doc comment for the rationale. The wizard normalises every\n* answer through {@link toWireMode} before persisting.\n*/\nvar WIZARD_MODE_CHOICES = [\n\t\"digest\",\n\t\"file\",\n\t\"disabled\"\n];\n/**\n* Translate an operator-facing label to the wire value persisted into\n* `brain.memoryBridge.mode`.\n*\n* Keeps existing project configs (which use `'cli'`) functioning unchanged\n* while exposing the more discoverable `'digest'` label to operators.\n*\n* @internal\n*/\nfunction toWireMode(label) {\n\tswitch (label) {\n\t\tcase \"digest\": return \"cli\";\n\t\tcase \"file\": return \"file\";\n\t\tcase \"disabled\": return \"disabled\";\n\t}\n}\n/**\n* Translate the on-disk wire value back to its operator-facing label so\n* the wizard can echo the current state without confusing the user with\n* `'cli'`.\n*\n* @internal\n*/\nfunction fromWireMode(mode) {\n\tswitch (mode) {\n\t\tcase \"file\": return \"file\";\n\t\tcase \"disabled\": return \"disabled\";\n\t\tdefault: return \"digest\";\n\t}\n}\n/**\n* Parse retention days from a string input, returning the numeric value or\n* `null` if the input is invalid.\n*\n* Valid input: non-negative integer (0 = forever).\n*\n* @param raw - String to parse.\n* @returns Parsed non-negative integer or `null` on invalid input.\n* @internal\n*/\nfunction parseRetentionDays(raw) {\n\tif (raw.trim() === \"\") return 0;\n\tconst n = Number(raw.trim());\n\tif (!Number.isInteger(n) || n < 0 || !Number.isFinite(n)) return null;\n\treturn n;\n}\n/**\n* Build the `brain` section runner.\n*\n* @returns A {@link WizardSectionRunner} for the BRAIN section.\n* @task T9425\n* @task T9610\n*/\nfunction createBrainSection() {\n\treturn {\n\t\tsection: \"brain\",\n\t\ttitle: \"BRAIN memory bridge (digest|file|disabled)\",\n\t\toptional: true,\n\t\tasync isConfigured(options) {\n\t\t\tconst resolved = await getConfigValue(\"brain.memoryBridge.mode\", options.projectRoot);\n\t\t\treturn resolved.source !== \"default\" && resolved.value !== void 0;\n\t\t},\n\t\tasync run(io, options) {\n\t\t\tio.info(\"Configures the BRAIN memory bridge mode, retention policy, and embedding index.\\nSettings are stored in the global config (~/.cleo/config.json).\\n\\\"digest\\\" mode injects a live memory digest; \\\"file\\\" mode writes static bridge files.\");\n\t\t\tconst resolved = await getConfigValue(\"brain.memoryBridge.mode\", options.projectRoot);\n\t\t\tconst currentLabel = fromWireMode(resolved.value);\n\t\t\tio.info(`Current BRAIN bridge mode: ${currentLabel} (source: ${resolved.source})`);\n\t\t\tconst embeddingResolved = await getConfigValue(\"brain.embedding.enabled\", options.projectRoot);\n\t\t\tconst embeddingEnabled = embeddingResolved.value ?? false;\n\t\t\tio.info(`Current BRAIN embedding index: ${embeddingEnabled ? \"enabled\" : \"disabled\"} (source: ${embeddingResolved.source})`);\n\t\t\tconst retentionResolved = await getConfigValue(\"brain.retention.days\", options.projectRoot);\n\t\t\tconst retentionDays = retentionResolved.value ?? 0;\n\t\t\tio.info(`Current BRAIN retention: ${retentionDays === 0 ? \"forever (0)\" : `${retentionDays} days`} (source: ${retentionResolved.source})`);\n\t\t\tlet choice;\n\t\t\tlet chosenRetentionDays;\n\t\t\tlet chosenEmbeddingEnabled;\n\t\t\tif (options.nonInteractive === true) {\n\t\t\t\tif (!options.brainBridgeMode) throw new Error(\"E_SETUP_MISSING_FLAG: --section brain --non-interactive requires --brain-bridge-mode <digest|file|disabled>\");\n\t\t\t\tchoice = options.brainBridgeMode;\n\t\t\t\tif (options.brainRetentionDays !== void 0) chosenRetentionDays = options.brainRetentionDays;\n\t\t\t\tif (options.brainEmbeddingEnabled !== void 0) chosenEmbeddingEnabled = options.brainEmbeddingEnabled;\n\t\t\t} else {\n\t\t\t\tchoice = await io.select(\"Pick BRAIN memory bridge mode (digest|file|disabled)\", WIZARD_MODE_CHOICES);\n\t\t\t\tlet validRetention = false;\n\t\t\t\twhile (!validRetention) {\n\t\t\t\t\tconst rawDays = await io.prompt(\"How long should BRAIN retain memory entries? [days, 0 = forever, default 0]\");\n\t\t\t\t\tconst parsed = parseRetentionDays(rawDays);\n\t\t\t\t\tif (parsed === null) io.warn(`Invalid value '${rawDays}' — must be a non-negative integer. Try again.`);\n\t\t\t\t\telse {\n\t\t\t\t\t\tchosenRetentionDays = parsed;\n\t\t\t\t\t\tvalidRetention = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tchosenEmbeddingEnabled = await io.confirm(\"Enable BRAIN embedding index (enables semantic search, requires local disk)?\", true);\n\t\t\t}\n\t\t\tawait setConfigValue(\"brain.memoryBridge.mode\", toWireMode(choice), options.projectRoot, { global: true });\n\t\t\tconst fragments = [`set brain.memoryBridge.mode=${choice} (was ${currentLabel})`];\n\t\t\tif (chosenRetentionDays !== void 0) {\n\t\t\t\tawait setConfigValue(\"brain.retention.days\", chosenRetentionDays, options.projectRoot, { global: true });\n\t\t\t\tfragments.push(`set brain.retention.days=${chosenRetentionDays === 0 ? \"forever (0)\" : chosenRetentionDays}`);\n\t\t\t}\n\t\t\tif (chosenEmbeddingEnabled !== void 0) {\n\t\t\t\tawait setConfigValue(\"brain.embedding.enabled\", chosenEmbeddingEnabled, options.projectRoot, { global: true });\n\t\t\t\tfragments.push(`set brain.embedding.enabled=${chosenEmbeddingEnabled}`);\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tchanged: true,\n\t\t\t\tsummary: fragments.join(\" + \")\n\t\t\t};\n\t\t}\n\t};\n}\n//#endregion\n//#region ../core/dist/setup/sections/harness.js\n/**\n* `harness` setup wizard section (E-CONFIG-AUTH-UNIFY E3 / T9425).\n*\n* Captures which harness CLEO should consider \"active\" for spawn-prompt\n* resolution and status reporting. Two operator-visible values are\n* accepted today:\n* - `'pi'` — the native CLEO Pi binary harness (default for\n* headless installs and Docker tasks).\n* - `'claude-code'` — Claude Code CLI as the harness (auto-injects\n* `AGENTS.md`, triggers tier-1 dedup).\n*\n* V2 additions (T9610):\n* - `isConfigured()` — returns `true` when `harness.active` is set (HARN-6).\n* - Pi URL prompt when `pi` is selected (HARN-3).\n* - Claude Code note when `claude-code` is selected (HARN-4).\n* - Section description printed before prompts (GEN-6).\n*\n* The wizard surfaces the *currently active* harness from `CLEO_HARNESS`\n* (falling back to `'unknown'` — mirrors `packages/core/src/status/index.ts`)\n* and then asks the operator to pick the canonical value. The selection\n* lands in the **global** config under `harness.active` via\n* {@link setConfigValue} — the same scope `identity` uses for `agent.name`\n* so the choice persists across projects without leaking into per-project\n* configs.\n*\n* Non-interactive contract:\n* - `options.nonInteractive === true` + `options.harness` →\n* persist that value to global config; no prompts.\n* - Missing `--harness` under `--non-interactive` →\n* section short-circuits with error.\n*\n* @task T9425\n* @task T9610\n* @epic T9402\n* @epic T9591\n* @see docs/plans/E-CLEO-SETUP-V2.md §4.5 (HARN-1 through HARN-6)\n* @see docs/plans/E-CONFIG-AUTH-UNIFY.md §5.3 T-E3-6\n*/\n/**\n* Default Pi process URL (HARN-3).\n*\n* Used as the default when prompting for the Pi URL.\n*/\nvar DEFAULT_PI_URL = \"http://localhost:7800\";\n/**\n* Allowed harness values the wizard offers + persists.\n*\n* Kept aligned with {@link CleoStatus.harness.active} so any value written\n* here round-trips cleanly through `cleo status`.\n*/\nvar HARNESS_CHOICES = [\"pi\", \"claude-code\"];\n/**\n* Validate a URL string is a valid HTTP(S) URL.\n*\n* Used for Pi URL validation per HARN-3.\n*\n* @param raw - String to validate.\n* @returns `true` when the string is a valid HTTP or HTTPS URL.\n* @internal\n*/\nfunction isValidHttpUrl$1(raw) {\n\ttry {\n\t\tconst url = new URL(raw);\n\t\treturn url.protocol === \"http:\" || url.protocol === \"https:\";\n\t} catch {\n\t\treturn false;\n\t}\n}\n/**\n* Build the `harness` section runner.\n*\n* @returns A {@link WizardSectionRunner} for the harness section.\n* @task T9425\n* @task T9610\n*/\nfunction createHarnessSection() {\n\treturn {\n\t\tsection: \"harness\",\n\t\ttitle: \"Active harness (Pi vs Claude Code)\",\n\t\toptional: true,\n\t\tasync isConfigured(options) {\n\t\t\tconst resolved = await getConfigValue(\"harness.active\", options.projectRoot);\n\t\t\treturn typeof resolved.value === \"string\" && resolved.value.trim().length > 0;\n\t\t},\n\t\tasync run(io, options) {\n\t\t\tio.info(\"Configures the active harness written to `harness.active` in the global config.\\nPi harness is recommended for headless/Docker environments.\\nClaude Code harness auto-injects AGENTS.md and triggers tier-1 dedup.\");\n\t\t\tconst current = readActiveHarness();\n\t\t\tio.info(`Current harness: ${current}`);\n\t\t\tlet choice;\n\t\t\tif (options.nonInteractive === true) {\n\t\t\t\tif (!options.harness) throw new Error(\"E_SETUP_MISSING_FLAG: --section harness --non-interactive requires --harness <pi|claude-code>\");\n\t\t\t\tchoice = options.harness;\n\t\t\t} else choice = await io.select(\"Pick the active harness (pi|claude-code)\", HARNESS_CHOICES);\n\t\t\tawait setConfigValue(\"harness.active\", choice, options.projectRoot, { global: true });\n\t\t\tconst fragments = [`set harness.active=${choice} (was ${current})`];\n\t\t\tif (choice === \"pi\") if (options.nonInteractive === true) io.info(`Pi URL defaults to ${DEFAULT_PI_URL}. Set CLEO_PI_URL or run 'cleo setup --section harness' to change.`);\n\t\t\telse {\n\t\t\t\tconst currentPiUrl = await getConfigValue(\"harness.piUrl\", options.projectRoot);\n\t\t\t\tconst piUrlDefault = typeof currentPiUrl.value === \"string\" && currentPiUrl.value.trim().length > 0 ? currentPiUrl.value : DEFAULT_PI_URL;\n\t\t\t\tio.info(`Current Pi URL: ${piUrlDefault}`);\n\t\t\t\tconst rawPiUrl = (await io.prompt(`Pi process URL [default: ${piUrlDefault}]:`)).trim();\n\t\t\t\tconst piUrl = rawPiUrl === \"\" ? piUrlDefault : rawPiUrl;\n\t\t\t\tif (!isValidHttpUrl$1(piUrl)) {\n\t\t\t\t\tio.warn(`Invalid Pi URL '${piUrl}' — must be a valid HTTP(S) URL. Using default: ${piUrlDefault}`);\n\t\t\t\t\tawait setConfigValue(\"harness.piUrl\", piUrlDefault, options.projectRoot, { global: true });\n\t\t\t\t\tfragments.push(`set harness.piUrl=${piUrlDefault} (invalid input, used default)`);\n\t\t\t\t} else {\n\t\t\t\t\tawait setConfigValue(\"harness.piUrl\", piUrl, options.projectRoot, { global: true });\n\t\t\t\t\tfragments.push(`set harness.piUrl=${piUrl}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (choice === \"claude-code\") io.info(\"Ensure `claude` is on your PATH. Run `cleo harness doctor` to verify.\");\n\t\t\treturn {\n\t\t\t\tchanged: true,\n\t\t\t\tsummary: fragments.join(\" + \")\n\t\t\t};\n\t\t}\n\t};\n}\n/**\n* Read the active harness for display purposes using the same layered chain as\n* {@link detectHarness} in `packages/core/src/status/index.ts`.\n*\n* Synchronous (reads env only; skips the async global-config layer) so the\n* wizard can call it without `await` before the prompt is shown. The\n* full async chain runs at status-snapshot time via `cleo status`.\n*\n* Resolution order (first match wins):\n* 1. `CLEO_HARNESS` env var — explicit override.\n* 2. `CLAUDECODE=1` → `'claude-code'`.\n* 3. `CLEO_PI=1` → `'pi'`.\n* 4. Fallback: `'unknown'`.\n*\n* @internal\n*/\nfunction readActiveHarness() {\n\tconst raw = process.env[\"CLEO_HARNESS\"];\n\tif (raw === \"pi\" || raw === \"claude-code\") return raw;\n\tif (process.env[\"CLAUDECODE\"] === \"1\") return \"claude-code\";\n\tif (process.env[\"CLEO_PI\"] === \"1\") return \"pi\";\n\treturn \"unknown\";\n}\n//#endregion\n//#region ../core/dist/setup/sections/identity.js\n/**\n* `identity` setup wizard section (E-CONFIG-AUTH-UNIFY E3 / T9420).\n*\n* Captures the operator-visible agent display name and (optionally)\n* a SOUL.md persona block. Both pieces are stored away from secrets:\n* - `agent.name` lands in the global config via `setConfigValue`.\n* - SOUL.md content lands in `<projectRoot>/.cleo/SOUL.md` so it is\n* scoped to the current project. Future Studio/CLI surfaces can\n* read it via the standard config layer.\n*\n* V2 additions (T9610):\n* - `isConfigured()` — returns `true` when `agent.name` is already set.\n* - Current-value display before prompting (GEN-7).\n* - SignalDock registration note (IDENT-5).\n* - Section description printed before prompts (GEN-6).\n*\n* Non-interactive contract:\n* - `options.nonInteractive === true` + `options.agentName` →\n* writes the name and (optionally) SOUL.md content; no prompts.\n* - Missing `--agent-name` under `--non-interactive` →\n* section short-circuits silently (`changed: false`).\n*\n* @task T9420\n* @task T9610\n* @epic T9402\n* @epic T9591\n* @see docs/plans/E-CLEO-SETUP-V2.md §4.2\n*/\n/** Relative path inside `.cleo/` where SOUL.md is persisted. */\nvar SOUL_RELATIVE_PATH = \"SOUL.md\";\n/**\n* Build the `identity` section runner.\n*\n* @returns A {@link WizardSectionRunner} for the identity section.\n* @task T9420\n* @task T9610\n*/\nfunction createIdentitySection() {\n\treturn {\n\t\tsection: \"identity\",\n\t\ttitle: \"Agent identity (name + optional SOUL.md persona)\",\n\t\toptional: true,\n\t\tasync isConfigured(options) {\n\t\t\tconst resolved = await getConfigValue(\"agent.name\", options.projectRoot);\n\t\t\treturn typeof resolved.value === \"string\" && resolved.value.trim().length > 0;\n\t\t},\n\t\tasync run(io, options) {\n\t\t\tio.info(\"Configures the agent display name written to `agent.name` in the global config\\nand an optional SOUL.md persona block scoped to this project (.cleo/SOUL.md).\\nSignalDock identity registration is prompted at the end of this section.\");\n\t\t\tconst currentName = await getConfigValue(\"agent.name\", options.projectRoot);\n\t\t\tif (typeof currentName.value === \"string\" && currentName.value.trim().length > 0) io.info(`Current agent name: ${currentName.value} (source: ${currentName.source})`);\n\t\t\telse io.info(\"Current agent name: (not set)\");\n\t\t\tif (options.nonInteractive === true) {\n\t\t\t\tif (!options.agentName) return {\n\t\t\t\t\tchanged: false,\n\t\t\t\t\tsummary: \"skipped (non-interactive: --agent-name required)\"\n\t\t\t\t};\n\t\t\t\tconst writes = await applyIdentity(options.agentName, options.soulMdContent ?? null, options.projectRoot);\n\t\t\t\tif (options.signaldockAutoConnect === true) io.info(\"To register a SignalDock identity, run: cleo signaldock connect\");\n\t\t\t\treturn summariseWrites(writes);\n\t\t\t}\n\t\t\tconst name = (await io.prompt(\"Agent display name (e.g. \\\"Atlas\\\")\")).trim();\n\t\t\tif (name === \"\") {\n\t\t\t\tio.info(\"No name supplied — leaving identity unchanged.\");\n\t\t\t\treturn {\n\t\t\t\t\tchanged: false,\n\t\t\t\t\tsummary: \"skipped (no name provided)\"\n\t\t\t\t};\n\t\t\t}\n\t\t\tlet soulContent = null;\n\t\t\tif (await io.confirm(\"Add a SOUL.md persona block now?\", false)) {\n\t\t\t\tconst entered = (await io.prompt(\"Paste SOUL.md content (single line ok):\")).trim();\n\t\t\t\tsoulContent = entered === \"\" ? null : entered;\n\t\t\t}\n\t\t\tif (await io.confirm(\"Register a SignalDock identity for this agent?\", false)) io.info(\"To register a SignalDock identity, run: cleo signaldock connect\");\n\t\t\treturn summariseWrites(await applyIdentity(name, soulContent, options.projectRoot));\n\t\t}\n\t};\n}\n/**\n* Apply identity writes to disk.\n*\n* Routed through {@link setConfigValue} (global scope) for the name and\n* through a direct atomic file write for SOUL.md. Both writes are best-effort\n* — caller of {@link createIdentitySection} surfaces failures via\n* {@link WizardIO.error} through the {@link WizardRunner} guard.\n*\n* @internal\n*/\nasync function applyIdentity(name, soulContent, projectRoot) {\n\tawait setConfigValue(\"agent.name\", name, projectRoot, { global: true });\n\tlet soulPath = null;\n\tif (soulContent && soulContent.length > 0) {\n\t\tsoulPath = join(resolveCleoDir(projectRoot), SOUL_RELATIVE_PATH);\n\t\tawait mkdir(dirname(soulPath), { recursive: true });\n\t\tawait writeFile(soulPath, soulContent.endsWith(\"\\n\") ? soulContent : `${soulContent}\\n`, {\n\t\t\tencoding: \"utf-8\",\n\t\t\tmode: 420\n\t\t});\n\t}\n\treturn {\n\t\tnameWritten: true,\n\t\tsoulPath\n\t};\n}\n/**\n* Compose a single-line summary from the {@link applyIdentity} write report.\n*\n* @internal\n*/\nfunction summariseWrites(writes) {\n\tconst fragments = [];\n\tif (writes.nameWritten) fragments.push(\"set agent.name\");\n\tif (writes.soulPath !== null) fragments.push(`wrote ${writes.soulPath}`);\n\treturn {\n\t\tchanged: fragments.length > 0,\n\t\tsummary: fragments.length > 0 ? fragments.join(\" + \") : \"no changes\"\n\t};\n}\n//#endregion\n//#region ../core/dist/setup/sections/integrations.js\n/**\n* `integrations` setup wizard section (E-CLEO-SETUP-V2 / T9608).\n*\n* Captures operator intent for three integration subsystems:\n*\n* 1. **SignalDock** — the cloud messaging transport.\n* - `signaldock.enabled` (global config, boolean)\n* - `signaldock.endpoint` (global config, string — defaults to\n* `http://localhost:4000` when not supplied)\n*\n* 2. **Studio** — the local web UI.\n* - `studio.enabled` (global config, boolean)\n* - After enabling, the section emits: \"Start Studio with `cleo studio start`.\"\n*\n* 3. **Conduit** — the local message-bus DB.\n* - `conduit.dbPath` (project config, string — must be an absolute path)\n* - Blank input ⇒ the built-in default is used; nothing is persisted.\n*\n* The section emits the current state of all three subsystems before\n* prompting so operators can confirm idempotently.\n*\n* No network calls are made inside this section — connectivity validation\n* is delegated to the `verification` section (T9594).\n*\n* Non-interactive contract (INTG-5):\n* - `options.nonInteractive === true` → apply each of\n* `signaldockEnabled`, `signaldockEndpoint`, `studioEnabled`, and\n* `conduitPath` when present; fields not supplied are left untouched.\n* - All four absent under non-interactive → short-circuit silently.\n*\n* `isConfigured()` (INTG-6):\n* - Returns `true` when `signaldock.enabled` is **explicitly set** in\n* the global config (even when the stored value is `false`), because\n* an explicit `false` means the operator intentionally disabled it.\n*\n* @task T9608\n* @epic T9591\n* @see docs/plans/E-CLEO-SETUP-V2.md §4.8, §5.2 T9593\n*/\n/** Default SignalDock endpoint shown to the operator. */\nvar DEFAULT_SIGNALDOCK_ENDPOINT = \"http://localhost:4000\";\n/**\n* Validate that `url` is an HTTP or HTTPS URL.\n*\n* Used to guard the SignalDock endpoint prompt — the section MUST NOT\n* make network calls (INTG-7), so only syntactic validation is performed.\n*\n* @param url - Raw user input to validate.\n* @returns `true` when `url` is a valid HTTP(S) URL.\n* @internal\n*/\nfunction isValidHttpUrl(url) {\n\ttry {\n\t\tconst parsed = new URL(url);\n\t\treturn parsed.protocol === \"http:\" || parsed.protocol === \"https:\";\n\t} catch {\n\t\treturn false;\n\t}\n}\n/**\n* Validate that `path` is an absolute filesystem path.\n*\n* @param p - Raw user input to validate.\n* @returns `true` when `p` starts with `/` (Unix absolute path).\n* @internal\n*/\nfunction isAbsolutePath(p) {\n\treturn p.startsWith(\"/\");\n}\n/**\n* Build the `integrations` section runner.\n*\n* @returns A {@link WizardSectionRunner} for the integrations section.\n* @task T9608\n*/\nfunction createIntegrationsSection() {\n\treturn {\n\t\tsection: \"integrations\",\n\t\ttitle: \"Integrations (SignalDock + Studio + Conduit)\",\n\t\toptional: true,\n\t\tasync isConfigured(options) {\n\t\t\tconst resolved = await getConfigValue(\"signaldock.enabled\", options.projectRoot);\n\t\t\treturn resolved.source !== \"default\" && resolved.value !== void 0;\n\t\t},\n\t\tasync run(io, options) {\n\t\t\tconst [sdEnabled, sdEndpoint, stEnabled] = await Promise.all([\n\t\t\t\tgetConfigValue(\"signaldock.enabled\", options.projectRoot),\n\t\t\t\tgetConfigValue(\"signaldock.endpoint\", options.projectRoot),\n\t\t\t\tgetConfigValue(\"studio.enabled\", options.projectRoot)\n\t\t\t]);\n\t\t\tconst sdEnabledLabel = sdEnabled.value === void 0 ? \"not set\" : String(sdEnabled.value);\n\t\t\tconst sdEndpointLabel = sdEndpoint.value ?? \"(default)\";\n\t\t\tconst stEnabledLabel = stEnabled.value === void 0 ? \"not set\" : String(stEnabled.value);\n\t\t\tio.info(`Current integrations state:\\n signaldock.enabled = ${sdEnabledLabel} (source: ${sdEnabled.source})\\n signaldock.endpoint = ${sdEndpointLabel} (source: ${sdEndpoint.source})\\n studio.enabled = ${stEnabledLabel} (source: ${stEnabled.source})`);\n\t\t\tconst fragments = [];\n\t\t\tif (options.nonInteractive === true) {\n\t\t\t\tconst { signaldockEnabled, signaldockEndpoint, studioEnabled, conduitPath } = options;\n\t\t\t\tif (signaldockEnabled === void 0 && signaldockEndpoint === void 0 && studioEnabled === void 0 && conduitPath === void 0) return {\n\t\t\t\t\tchanged: false,\n\t\t\t\t\tsummary: \"skipped (non-interactive: no integrations flags supplied)\"\n\t\t\t\t};\n\t\t\t\tif (signaldockEnabled !== void 0) {\n\t\t\t\t\tawait setConfigValue(\"signaldock.enabled\", signaldockEnabled, options.projectRoot, { global: true });\n\t\t\t\t\tfragments.push(`signaldock.enabled=${signaldockEnabled}`);\n\t\t\t\t}\n\t\t\t\tif (signaldockEndpoint !== void 0) {\n\t\t\t\t\tif (!isValidHttpUrl(signaldockEndpoint)) throw new Error(`E_SETUP_INVALID_VALUE: signaldockEndpoint '${signaldockEndpoint}' is not a valid HTTP(S) URL`);\n\t\t\t\t\tawait setConfigValue(\"signaldock.endpoint\", signaldockEndpoint, options.projectRoot, { global: true });\n\t\t\t\t\tfragments.push(`signaldock.endpoint=${signaldockEndpoint}`);\n\t\t\t\t}\n\t\t\t\tif (studioEnabled !== void 0) {\n\t\t\t\t\tawait setConfigValue(\"studio.enabled\", studioEnabled, options.projectRoot, { global: true });\n\t\t\t\t\tfragments.push(`studio.enabled=${studioEnabled}`);\n\t\t\t\t\tif (studioEnabled) io.info(\"Start Studio with `cleo studio start`.\");\n\t\t\t\t}\n\t\t\t\tif (conduitPath !== void 0) {\n\t\t\t\t\tif (!isAbsolutePath(conduitPath)) throw new Error(`E_SETUP_INVALID_VALUE: conduitPath '${conduitPath}' must be an absolute path`);\n\t\t\t\t\tawait setConfigValue(\"conduit.dbPath\", conduitPath, options.projectRoot, { global: false });\n\t\t\t\t\tfragments.push(`conduit.dbPath=${conduitPath}`);\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tchanged: fragments.length > 0,\n\t\t\t\t\tsummary: fragments.length > 0 ? fragments.join(\" + \") : \"no changes\"\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst wantsSignalDock = await io.confirm(\"Enable SignalDock transport?\", false);\n\t\t\tawait setConfigValue(\"signaldock.enabled\", wantsSignalDock, options.projectRoot, { global: true });\n\t\t\tfragments.push(`signaldock.enabled=${wantsSignalDock}`);\n\t\t\tif (wantsSignalDock) {\n\t\t\t\tlet endpoint = \"\";\n\t\t\t\twhile (true) {\n\t\t\t\t\tconst raw = (await io.prompt(`SignalDock endpoint URL [${DEFAULT_SIGNALDOCK_ENDPOINT}]:`)).trim();\n\t\t\t\t\tendpoint = raw === \"\" ? DEFAULT_SIGNALDOCK_ENDPOINT : raw;\n\t\t\t\t\tif (isValidHttpUrl(endpoint)) break;\n\t\t\t\t\tio.warn(`'${endpoint}' is not a valid HTTP(S) URL — please try again.`);\n\t\t\t\t}\n\t\t\t\tawait setConfigValue(\"signaldock.endpoint\", endpoint, options.projectRoot, { global: true });\n\t\t\t\tfragments.push(`signaldock.endpoint=${endpoint}`);\n\t\t\t}\n\t\t\tconst wantsStudio = await io.confirm(\"Enable Studio web UI?\", false);\n\t\t\tawait setConfigValue(\"studio.enabled\", wantsStudio, options.projectRoot, { global: true });\n\t\t\tfragments.push(`studio.enabled=${wantsStudio}`);\n\t\t\tif (wantsStudio) io.info(\"Start Studio with `cleo studio start`.\");\n\t\t\tlet conduitWritten = false;\n\t\t\twhile (true) {\n\t\t\t\tconst raw = (await io.prompt(\"Custom Conduit DB path? [leave blank to use default]\")).trim();\n\t\t\t\tif (raw === \"\") break;\n\t\t\t\tif (!isAbsolutePath(raw)) {\n\t\t\t\t\tio.warn(`'${raw}' is not an absolute path — please supply an absolute path or leave blank.`);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tawait setConfigValue(\"conduit.dbPath\", raw, options.projectRoot, { global: false });\n\t\t\t\tfragments.push(`conduit.dbPath=${raw}`);\n\t\t\t\tconduitWritten = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (!conduitWritten) fragments.push(\"conduit.dbPath=default\");\n\t\t\treturn {\n\t\t\t\tchanged: true,\n\t\t\t\tsummary: fragments.join(\" + \")\n\t\t\t};\n\t\t}\n\t};\n}\n//#endregion\n//#region ../core/dist/setup/sections/llm.js\n/**\n* `llm` setup wizard section (E-CONFIG-AUTH-UNIFY E3 / T9420).\n*\n* Mirrors Hermes Agent's `setup.py` LLM block:\n* 1. Display the current credential pool snapshot (provider/label/source).\n* 2. Prompt for a provider id (or accept `--provider` non-interactively).\n* 3. Accept an API key via `--api-key` *or* via interactive prompt.\n* 4. Write the result to the credential pool — never to config.\n*\n* V2 additions (T9610):\n* - `isConfigured()` — returns `true` when pool has at least one entry (LLM-7).\n* - Bracketed paste sanitization on API key input (LLM-4).\n* - Pool-seeding consent prompt after key entry (LLM-5).\n* - Section description printed before prompts (GEN-6).\n*\n* Non-interactive contract:\n* - `options.nonInteractive === true` + `options.provider` + `options.apiKey`\n* → write key to pool; no prompts.\n* - Missing `--provider` or `--api-key` under `--non-interactive` →\n* section short-circuits silently (`changed: false`).\n*\n* @task T9420\n* @task T9610\n* @epic T9402\n* @epic T9591\n* @see docs/plans/E-CLEO-SETUP-V2.md §4.3\n*/\n/**\n* Provider ids the interactive wizard offers from the menu.\n*\n* Plugin providers are added later in T-E2-3; this list is the safe\n* starter set drawn from `BuiltinProviderId`.\n*/\nvar INTERACTIVE_PROVIDERS = [\n\t\"anthropic\",\n\t\"openai\",\n\t\"gemini\",\n\t\"openrouter\",\n\t\"moonshot\",\n\t\"deepseek\",\n\t\"xai\",\n\t\"groq\",\n\t\"ollama\"\n];\n/**\n* Providers that support pool seeding consent prompt (LLM-5).\n*/\nvar POOL_SEEDING_PROVIDERS = new Set([\"anthropic\", \"openrouter\"]);\n/**\n* Strip bracketed paste mode escape sequences from user input (LLM-4).\n*\n* Terminal emulators wrap pasted content with `\\x1b[200~` (start) and\n* `\\x1b[201~` (end) when bracketed paste mode is enabled. These must be\n* removed before persisting an API key, otherwise the key will include\n* the raw escape bytes and authentication will fail.\n*\n* @param input - Raw string as received from the readline prompt.\n* @returns Cleaned string with bracketed paste sequences stripped.\n* @internal\n*/\nfunction stripBracketedPaste(input) {\n\treturn input.replace(/\\x1b\\[200~/g, \"\").replace(/\\x1b\\[201~/g, \"\");\n}\n/**\n* Build the `llm` section runner.\n*\n* Constructed via a factory so unit tests can swap `getCredentialPool`\n* / `addCredential` references via module mocking without touching the\n* production singleton.\n*\n* @returns A {@link WizardSectionRunner} for the LLM section.\n* @task T9420\n* @task T9610\n*/\nfunction createLlmSection(deps = {}) {\n\tconst frontDoor = deps.runFrontDoorLogin ?? runFrontDoorLogin;\n\treturn {\n\t\tsection: \"llm\",\n\t\ttitle: \"LLM provider + API key\",\n\t\toptional: false,\n\t\tasync isConfigured(_options) {\n\t\t\ttry {\n\t\t\t\treturn (await getCredentialPool().list()).length > 0;\n\t\t\t} catch {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tasync run(io, options) {\n\t\t\tio.info(\"Configures LLM provider credentials stored in the credential pool (brain.db).\\nCredentials are never written to config files — they live in the encrypted pool.\\nSupports: anthropic, openai, gemini, openrouter, moonshot, deepseek, xai, groq, ollama.\");\n\t\t\ttry {\n\t\t\t\tconst entries = await getCredentialPool().list();\n\t\t\t\tif (entries.length === 0) io.info(\"No credentials configured yet.\");\n\t\t\t\telse {\n\t\t\t\t\tio.info(`Current credentials (${entries.length}):`);\n\t\t\t\t\tfor (const entry of entries) {\n\t\t\t\t\t\tconst expiry = entry.expiresAt && entry.expiresAt > 0 ? ` exp=${new Date(entry.expiresAt).toISOString()}` : \"\";\n\t\t\t\t\t\tio.info(` - ${entry.provider}:${entry.label} (${entry.authType}, source=${entry.source ?? \"unknown\"})${expiry}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tio.warn(`Could not list current credentials: ${err instanceof Error ? err.message : String(err)}`);\n\t\t\t}\n\t\t\tif (options.nonInteractive === true) {\n\t\t\t\tif (!options.provider || !options.apiKey) return {\n\t\t\t\t\tchanged: false,\n\t\t\t\t\tsummary: \"skipped (non-interactive: --provider and --api-key required)\"\n\t\t\t\t};\n\t\t\t\tconst cleanKey = stripBracketedPaste(options.apiKey);\n\t\t\t\tawait persistApiKey(options.provider, cleanKey, options.label ?? \"cli-input\");\n\t\t\t\tif (options.poolSeedingConsent !== void 0) await setConfigValue(\"auth.poolSeedingConsent\", options.poolSeedingConsent, void 0, { global: true });\n\t\t\t\treturn {\n\t\t\t\t\tchanged: true,\n\t\t\t\t\tsummary: `added ${options.provider}:${options.label ?? \"cli-input\"} to pool`\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst provider = await io.select(\"Which LLM provider do you want to configure?\", INTERACTIVE_PROVIDERS);\n\t\t\tif (await io.select(\"How will CLEO authenticate to this provider?\", [\"api_key\", \"oauth_login\"]) === \"oauth_login\") {\n\t\t\t\tif (!deps.oauthAcquirer) {\n\t\t\t\t\tio.info(`OAuth login for '${provider}' needs an interactive terminal. Run \\`cleo login ${provider}\\` (or \\`cleo llm login ${provider}\\`) to complete it.`);\n\t\t\t\t\treturn {\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tsummary: `oauth login pending for ${provider} (run cleo login)`\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst result = await frontDoor(provider, { authMode: \"oauth\" }, deps.oauthAcquirer);\n\t\t\t\tif (result.validated) {\n\t\t\t\t\tio.info(`Logged in to ${result.provider} — bound ${result.profileName ?? \"default\"} → ${result.provider}/${result.modelId}.`);\n\t\t\t\t\treturn {\n\t\t\t\t\t\tchanged: true,\n\t\t\t\t\t\tsummary: `oauth login complete for ${result.provider} (${result.modelId})`\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst failed = result.steps.find((s) => s.status === \"failed\");\n\t\t\t\tio.warn(`OAuth login did not complete: ${failed?.detail ?? \"unknown error\"}`);\n\t\t\t\treturn {\n\t\t\t\t\tchanged: false,\n\t\t\t\t\tsummary: `oauth login failed for ${provider}`\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst label = await io.prompt(\"Label for this credential [default: cli-input]:\") || \"cli-input\";\n\t\t\tconst apiKey = stripBracketedPaste((await io.prompt(\"API key (input not echoed in production):\")).trim());\n\t\t\tif (apiKey === \"\") {\n\t\t\t\tio.warn(\"No API key supplied — leaving section unchanged.\");\n\t\t\t\treturn {\n\t\t\t\t\tchanged: false,\n\t\t\t\t\tsummary: \"skipped (empty api key)\"\n\t\t\t\t};\n\t\t\t}\n\t\t\tawait persistApiKey(provider, apiKey, label);\n\t\t\tif (POOL_SEEDING_PROVIDERS.has(provider)) {\n\t\t\t\tconst consent = await io.confirm(\"Consent to including this key in CLEO's credential pool for multi-agent distribution?\", false);\n\t\t\t\tawait setConfigValue(\"auth.poolSeedingConsent\", consent, void 0, { global: true });\n\t\t\t\tio.info(`Pool-seeding consent: ${consent ? \"granted\" : \"denied\"} (saved to auth.poolSeedingConsent)`);\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tchanged: true,\n\t\t\t\tsummary: `added ${provider}:${label} to pool`\n\t\t\t};\n\t\t}\n\t};\n}\n/**\n* Upsert an API-key entry into the credential pool.\n*\n* Keeps the policy \"secrets live in the pool, never in config\" enforced\n* by routing every write through {@link addCredential}.\n*\n* @internal\n*/\nasync function persistApiKey(provider, apiKey, label) {\n\tawait addCredential({\n\t\tprovider,\n\t\tlabel,\n\t\tauthType: \"api_key\",\n\t\taccessToken: apiKey,\n\t\tsource: \"cli-input\"\n\t});\n}\n//#endregion\n//#region ../core/dist/setup/sections/models-roles.js\n/**\n* `models-roles` setup wizard section (T11726 · M3).\n*\n* Sits immediately after the `llm` section in the canonical order. Where `llm`\n* lands a credential in the pool, this section binds WHAT to use:\n*\n* 1. **default model** — pick the global default model (`cleo llm use`\n* equivalent → `llm.default.model`), sourcing choices from the live\n* models.dev catalog for the default provider.\n* 2. **per-role profiles** — optionally pin each role in the canonical\n* {@link WHOAMI_ROLE_IDS} set to a provider/model (`cleo llm profile`\n* equivalent → `llm.roles.<role>`).\n*\n* ## Non-interactive contract (AC3)\n*\n* Driveable entirely from {@link WizardOptions}:\n* - `options.defaultModel` → write the global default model.\n* - `options.roleBindings[role]` → write `llm.roles.<role>` for each entry.\n* Missing inputs short-circuit cleanly with `changed: false` (never a throw,\n* never a half-written binding).\n*\n* ## Idempotency (AC4)\n*\n* `isConfigured()` returns `true` when a default model OR any role binding is\n* already present in the global config, so the wizard skips the section unless\n* `--reset` is passed.\n*\n* @module setup/sections/models-roles\n* @task T11726\n* @epic T11671 (E6-ONBOARDING-FRONT-DOOR)\n*/\n/**\n* Sentinel option offered in interactive pickers meaning \"leave this unset\".\n*\n* @internal\n*/\nvar SKIP_CHOICE = \"(skip)\";\n/**\n* Read the current global LLM config block (best-effort — returns `{}` on any\n* read error so the section degrades gracefully on a fresh install).\n*\n* @internal\n*/\nasync function readLlmConfig() {\n\ttry {\n\t\tconst llm = (await loadConfig()).llm;\n\t\tconst def = llm?.default;\n\t\treturn {\n\t\t\tdefaultProvider: def?.provider,\n\t\t\tdefaultModel: def?.model,\n\t\t\troles: llm?.roles ?? {}\n\t\t};\n\t} catch {\n\t\treturn {};\n\t}\n}\n/**\n* Build the model choice list for a provider from the catalog, capped for a\n* scannable menu. Always includes the {@link SKIP_CHOICE} sentinel last.\n*\n* @internal\n*/\nfunction modelChoicesForProvider(provider) {\n\treturn [...listProviderModels(catalogKeyForProvider(provider)), SKIP_CHOICE];\n}\n/**\n* Build the `models-roles` section runner (T11726).\n*\n* @returns A {@link WizardSectionRunner} for the models/roles section.\n* @task T11726\n*/\nfunction createModelsRolesSection() {\n\treturn {\n\t\tsection: \"models-roles\",\n\t\ttitle: \"Default model + per-role profiles\",\n\t\toptional: true,\n\t\tasync isConfigured(_options) {\n\t\t\tconst cfg = await readLlmConfig();\n\t\t\tconst hasDefaultModel = typeof cfg.defaultModel === \"string\" && cfg.defaultModel !== \"\";\n\t\t\tconst hasRole = Boolean(cfg.roles && Object.keys(cfg.roles).length > 0);\n\t\t\treturn hasDefaultModel || hasRole;\n\t\t},\n\t\tasync run(io, options) {\n\t\t\tio.info(\"Selects the default model (cleo llm use) and optional per-role profiles (cleo llm profile).\\nModel choices come from the cached models.dev catalog — run `cleo llm refresh-catalog` to update it.\");\n\t\t\tconst cfg = await readLlmConfig();\n\t\t\tconst defaultProvider = options.provider ?? cfg.defaultProvider;\n\t\t\tconst changes = [];\n\t\t\tif (options.nonInteractive === true) {\n\t\t\t\tif (options.defaultModel) {\n\t\t\t\t\tawait setConfigValue(\"llm.default.model\", options.defaultModel, void 0, { global: true });\n\t\t\t\t\tif (defaultProvider) await setConfigValue(\"llm.default.provider\", defaultProvider, void 0, { global: true });\n\t\t\t\t\tchanges.push(`default model → ${options.defaultModel}`);\n\t\t\t\t}\n\t\t\t\tfor (const [role, binding] of Object.entries(options.roleBindings ?? {})) {\n\t\t\t\t\tif (!isWhoamiRole(role)) continue;\n\t\t\t\t\tlet model = binding.model;\n\t\t\t\t\tif (!model) model = resolveProviderDefaultModel(catalogKeyForProvider(binding.provider)) ?? void 0;\n\t\t\t\t\tif (!model) {\n\t\t\t\t\t\tio.warn(`Skipping role binding ${role} → ${binding.provider}: no model supplied and no catalog default found for '${binding.provider}'. Re-run with {\"${role}\": {\"provider\": \"${binding.provider}\", \"model\": \"<id>\"}}.`);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tawait writeRoleBinding(role, {\n\t\t\t\t\t\t...binding,\n\t\t\t\t\t\tmodel\n\t\t\t\t\t});\n\t\t\t\t\tchanges.push(`${role} → ${binding.provider}/${model}`);\n\t\t\t\t}\n\t\t\t\tif (changes.length === 0) return {\n\t\t\t\t\tchanged: false,\n\t\t\t\t\tsummary: \"skipped (non-interactive: no --default-model / role bindings supplied)\"\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tchanged: true,\n\t\t\t\t\tsummary: changes.join(\"; \")\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (!defaultProvider) {\n\t\t\t\tio.info(\"No default provider configured yet — run the LLM section (or `cleo login`) first, then re-run setup to pin models/roles.\");\n\t\t\t\treturn {\n\t\t\t\t\tchanged: false,\n\t\t\t\t\tsummary: \"skipped (no provider configured)\"\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (defaultProvider === \"ollama\") {\n\t\t\t\tconst modelPicked = await _pickOllamaModelInteractive(io);\n\t\t\t\tif (modelPicked) {\n\t\t\t\t\tawait setConfigValue(\"llm.default.model\", modelPicked, void 0, { global: true });\n\t\t\t\t\tawait setConfigValue(\"llm.default.provider\", \"ollama\", void 0, { global: true });\n\t\t\t\t\tchanges.push(`default model → ${modelPicked}`);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst modelChoices = modelChoicesForProvider(defaultProvider);\n\t\t\t\tif (modelChoices.length > 1) {\n\t\t\t\t\tconst picked = await io.select(`Default model for ${defaultProvider}?`, modelChoices);\n\t\t\t\t\tif (picked !== SKIP_CHOICE) {\n\t\t\t\t\t\tawait setConfigValue(\"llm.default.model\", picked, void 0, { global: true });\n\t\t\t\t\t\tawait setConfigValue(\"llm.default.provider\", defaultProvider, void 0, { global: true });\n\t\t\t\t\t\tchanges.push(`default model → ${picked}`);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst latest = resolveProviderDefaultModel(catalogKeyForProvider(defaultProvider));\n\t\t\t\t\tconst model = (await io.prompt(`Default model for ${defaultProvider}${latest ? ` [${latest}]` : \"\"} (blank to skip):`)).trim() || latest || \"\";\n\t\t\t\t\tif (model) {\n\t\t\t\t\t\tawait setConfigValue(\"llm.default.model\", model, void 0, { global: true });\n\t\t\t\t\t\tawait setConfigValue(\"llm.default.provider\", defaultProvider, void 0, { global: true });\n\t\t\t\t\t\tchanges.push(`default model → ${model}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (await io.confirm(\"Pin per-role profiles now? (advanced)\", false)) for (const role of WHOAMI_ROLE_IDS) {\n\t\t\t\tconst choices = modelChoicesForProvider(defaultProvider);\n\t\t\t\tconst picked = await io.select(`Model for role '${role}' on ${defaultProvider}?`, choices);\n\t\t\t\tif (picked !== SKIP_CHOICE) {\n\t\t\t\t\tawait writeRoleBinding(role, {\n\t\t\t\t\t\tprovider: defaultProvider,\n\t\t\t\t\t\tmodel: picked\n\t\t\t\t\t});\n\t\t\t\t\tchanges.push(`${role} → ${defaultProvider}/${picked}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (changes.length === 0) return {\n\t\t\t\tchanged: false,\n\t\t\t\tsummary: \"no models/roles changes\"\n\t\t\t};\n\t\t\treturn {\n\t\t\t\tchanged: true,\n\t\t\t\tsummary: changes.join(\"; \")\n\t\t\t};\n\t\t}\n\t};\n}\n/**\n* Narrow an arbitrary string to a {@link RoleName} in the whoami-enumerable set.\n*\n* @internal\n*/\nfunction isWhoamiRole(role) {\n\treturn WHOAMI_ROLE_IDS.includes(role);\n}\n/**\n* Write a per-role binding (`llm.roles.<role>.{provider,model,credentialLabel}`)\n* to the global config.\n*\n* @internal\n*/\nasync function writeRoleBinding(role, binding) {\n\tawait setConfigValue(`llm.roles.${role}.provider`, binding.provider, void 0, { global: true });\n\tif (binding.model) await setConfigValue(`llm.roles.${role}.model`, binding.model, void 0, { global: true });\n\tif (binding.credentialLabel) await setConfigValue(`llm.roles.${role}.credentialLabel`, binding.credentialLabel, void 0, { global: true });\n}\n/**\n* The default ranker used in production: calls the real `rankLocalModelFit`.\n*\n* Lazy import keeps this module free of heavy OS-level side effects at parse\n* time (Gate-13 compliance: no transport construction at import).\n*\n* @internal\n*/\nasync function defaultLocalModelFitRanker() {\n\tconst { rankLocalModelFit } = await import(\"../../../../../../chunks/local-model-fit.js\");\n\treturn rankLocalModelFit();\n}\n/**\n* Interactive Ollama model picker driven by fit-gated recommendations (T11983).\n*\n* Behaviour:\n* - Calls `rankLocalModelFit` to detect hardware + Ollama state.\n* - Below the 4 GB floor → informs the user (cloud-only guidance) and returns\n* `null` (caller skips the binding).\n* - Above the floor with recommendations → presents a ranked pick list of\n* 2–3 candidates (never auto-selects, never auto-pulls — RECOMMEND-NEVER-KILL).\n* - Already-pulled models are surfaced first with a `[pulled]` tag.\n* - Free-text fallback offered as the last option so the user can type any tag.\n* - Returns the chosen model tag, or `null` if the user skipped.\n*\n* The ranker is injectable so tests can supply a stub envelope without\n* hitting the OS or network.\n*\n* @param io - Wizard I/O surface.\n* @param ranker - Override the fit ranker for tests (defaults to the real one).\n* @returns The chosen Ollama model tag, or `null` when the user skipped / below floor.\n*\n* @task T11983\n*/\nasync function _pickOllamaModelInteractive(io, ranker = defaultLocalModelFitRanker) {\n\tio.info(\"Detecting local hardware for Ollama model fit ranking…\");\n\tlet fitEnvelope;\n\ttry {\n\t\tfitEnvelope = await ranker();\n\t} catch (err) {\n\t\tio.warn(`Hardware detection failed: ${err instanceof Error ? err.message : String(err)}. Falling back to manual model entry.`);\n\t\treturn (await io.prompt(\"Enter Ollama model tag (e.g. gemma4:e2b) or blank to skip:\")).trim() || null;\n\t}\n\tconst hw = fitEnvelope.hardware;\n\tio.info(` Hardware: ${hw.totalRamGb.toFixed(1)} GB RAM, ` + (hw.vramTotalGb !== null ? `${hw.vramTotalGb.toFixed(1)} GB VRAM` : \"no GPU detected\") + (fitEnvelope.ollamaRunning ? \", Ollama running\" : \", Ollama not running\"));\n\tif (fitEnvelope.noRecommendationReason) {\n\t\tio.warn(`\\nLocal model recommendation not available: ${fitEnvelope.noRecommendationReason}\\nThis machine has ${hw.totalRamGb.toFixed(1)} GB RAM — local LLM inference requires at least 4 GB.\\nPlease use a cloud provider (anthropic, openai, gemini, etc.) instead.`);\n\t\treturn null;\n\t}\n\tconst recs = fitEnvelope.recommendations;\n\tif (recs.length === 0) {\n\t\tio.warn(\"No local model candidates fit this machine. Consider a cloud provider.\");\n\t\treturn (await io.prompt(\"Enter Ollama model tag manually (blank to skip):\")).trim() || null;\n\t}\n\tio.info(\"\\nRecommended local models (ranked by hardware fit):\");\n\tconst choices = recs.map((r) => {\n\t\treturn `${r.candidate.modelTag}${r.alreadyPulled ? \" [pulled]\" : \"\"} (${r.fitTier})`;\n\t});\n\tchoices.push(\"(enter manually)\");\n\tchoices.push(SKIP_CHOICE);\n\tconst picked = await io.select(\"Choose a local model for Ollama:\", choices);\n\tif (picked === SKIP_CHOICE) return null;\n\tif (picked === \"(enter manually)\") return (await io.prompt(\"Enter Ollama model tag (e.g. gemma4:e2b):\")).trim() || null;\n\treturn picked.split(\" \")[0] ?? picked;\n}\n//#endregion\n//#region ../core/dist/setup/sections/project-conventions.js\n/**\n* `project-conventions` setup wizard section (E-CONFIG-AUTH-UNIFY E3 / T9420).\n*\n* Applies one of CLEO's three strictness presets (`strict` / `standard` /\n* `minimal`) via the existing {@link applyStrictnessPreset} helper.\n* Project-scoped: the preset is written to the *project* config so each\n* repository can have its own enforcement tier.\n*\n* V2 additions (T9610):\n* - `isConfigured()` — returns `true` when project config has at least one\n* strictness-related key (PROJ-5).\n* - Current values display before prompting (GEN-7 / PROJ-1).\n* - AC enforcement mode override prompt (PROJ-3).\n* - Session auto-start override prompt (PROJ-3).\n* - Section description printed before prompts (GEN-6).\n*\n* Non-interactive contract:\n* - `options.nonInteractive === true` + `options.strictness` →\n* apply that preset; no prompts.\n* - `options.acEnforcementMode` and `options.sessionAutoStart` apply\n* fine-grained overrides when present (PROJ-4).\n* - Missing `--strictness` under `--non-interactive` →\n* section short-circuits silently (`changed: false`).\n*\n* @task T9420\n* @task T9610\n* @epic T9402\n* @epic T9591\n* @see docs/plans/E-CLEO-SETUP-V2.md §4.7 (PROJ-1 through PROJ-5)\n*/\nvar PRESET_CHOICES = [\n\t\"strict\",\n\t\"standard\",\n\t\"minimal\"\n];\n/** AC enforcement mode choices for the override prompt. */\nvar AC_ENFORCEMENT_CHOICES = [\n\t\"block\",\n\t\"warn\",\n\t\"off\",\n\t\"keep-preset-default\"\n];\n/** Session auto-start choices for the override prompt. */\nvar SESSION_AUTO_START_CHOICES = [\n\t\"yes\",\n\t\"no\",\n\t\"keep-preset-default\"\n];\n/**\n* Build the `project-conventions` section runner.\n*\n* @returns A {@link WizardSectionRunner} for the conventions section.\n* @task T9420\n* @task T9610\n*/\nfunction createProjectConventionsSection() {\n\treturn {\n\t\tsection: \"project-conventions\",\n\t\ttitle: \"Project conventions (strictness preset)\",\n\t\toptional: true,\n\t\tasync isConfigured(options) {\n\t\t\tconst acMode = await getConfigValue(\"enforcement.acceptance.mode\", options.projectRoot);\n\t\t\tconst requireNotes = await getConfigValue(\"session.requireNotes\", options.projectRoot);\n\t\t\tconst acConfigured = acMode.source !== \"default\" && acMode.value !== void 0;\n\t\t\tconst notesConfigured = requireNotes.source !== \"default\" && requireNotes.value !== void 0;\n\t\t\treturn acConfigured || notesConfigured;\n\t\t},\n\t\tasync run(io, options) {\n\t\t\tio.info(\"Configures project-level enforcement conventions written to `.cleo/config.json`.\\nPresets (strict / standard / minimal) control AC enforcement, session policy, and lifecycle.\\nFine-grained overrides can be applied after choosing a preset.\");\n\t\t\tconst currentAcMode = await getConfigValue(\"enforcement.acceptance.mode\", options.projectRoot);\n\t\t\tconst currentAutoStart = await getConfigValue(\"session.autoStart\", options.projectRoot);\n\t\t\tio.info(`Current AC enforcement mode: ${currentAcMode.value ?? \"(not set)\"} (source: ${currentAcMode.source})`);\n\t\t\tio.info(`Current session auto-start: ${currentAutoStart.value ?? \"(not set)\"} (source: ${currentAutoStart.source})`);\n\t\t\tlet preset;\n\t\t\tif (options.nonInteractive === true) {\n\t\t\t\tif (!options.strictness) return {\n\t\t\t\t\tchanged: false,\n\t\t\t\t\tsummary: \"skipped (non-interactive: --strictness required)\"\n\t\t\t\t};\n\t\t\t\tpreset = options.strictness;\n\t\t\t} else preset = await io.select(\"Pick a strictness preset (strict|standard|minimal)\", PRESET_CHOICES);\n\t\t\tconst result = await applyStrictnessPreset(preset, options.projectRoot, { global: false });\n\t\t\tconst keyCount = Object.keys(result.applied).length;\n\t\t\tconst fragments = [`applied '${result.preset}' preset (${keyCount} keys to ${result.scope} config)`];\n\t\t\tlet acOverride;\n\t\t\tif (options.nonInteractive === true) {\n\t\t\t\tif (options.acEnforcementMode !== void 0) acOverride = options.acEnforcementMode;\n\t\t\t} else {\n\t\t\t\tconst acChoice = await io.select(\"Override AC enforcement mode? [block / warn / off / keep-preset-default]\", AC_ENFORCEMENT_CHOICES);\n\t\t\t\tif (acChoice !== \"keep-preset-default\") acOverride = acChoice;\n\t\t\t}\n\t\t\tif (acOverride !== void 0) {\n\t\t\t\tawait setConfigValue(\"enforcement.acceptance.mode\", acOverride, options.projectRoot, { global: false });\n\t\t\t\tfragments.push(`set enforcement.acceptance.mode=${acOverride}`);\n\t\t\t}\n\t\t\tlet sessionAutoStartOverride;\n\t\t\tif (options.nonInteractive === true) {\n\t\t\t\tif (options.sessionAutoStart !== void 0) sessionAutoStartOverride = options.sessionAutoStart;\n\t\t\t} else {\n\t\t\t\tconst sessionChoice = await io.select(\"Override session auto-start? [yes / no / keep-preset-default]\", SESSION_AUTO_START_CHOICES);\n\t\t\t\tif (sessionChoice === \"yes\") sessionAutoStartOverride = true;\n\t\t\t\telse if (sessionChoice === \"no\") sessionAutoStartOverride = false;\n\t\t\t}\n\t\t\tif (sessionAutoStartOverride !== void 0) {\n\t\t\t\tawait setConfigValue(\"session.autoStart\", sessionAutoStartOverride, options.projectRoot, { global: false });\n\t\t\t\tfragments.push(`set session.autoStart=${sessionAutoStartOverride}`);\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tchanged: true,\n\t\t\t\tsummary: fragments.join(\" + \")\n\t\t\t};\n\t\t}\n\t};\n}\n//#endregion\n//#region ../core/dist/setup/sections/sentient.js\n/**\n* `sentient` setup wizard section (E-CONFIG-AUTH-UNIFY E3 / T9420).\n*\n* Toggles the two operator-visible sentient knobs:\n* 1. The daemon kill-switch (`killSwitch: false` ⇒ daemon is allowed\n* to run; `true` ⇒ paused).\n* 2. Tier-2 proposal generation (`tier2Enabled`).\n*\n* Both fields live in `<projectRoot>/.cleo/sentient-state.json` and are\n* mutated via {@link patchSentientState} so the on-disk shape matches\n* the format the daemon expects.\n*\n* V2 additions (T9610):\n* - `isConfigured()` — returns `true` when `sentient-state.json` exists (SENT-5).\n* - Current state display before prompting (GEN-7 / SENT-1).\n* - Section description printed before prompts (GEN-6).\n*\n* Non-interactive contract:\n* - `options.nonInteractive === true` → consume\n* `options.sentientEnabled` / `options.tier2Enabled` when present;\n* fields not supplied are left untouched.\n*\n* @task T9420\n* @task T9610\n* @epic T9402\n* @epic T9591\n* @see docs/plans/E-CLEO-SETUP-V2.md §4.4\n*/\n/**\n* Build the `sentient` section runner.\n*\n* @returns A {@link WizardSectionRunner} for the sentient section.\n* @task T9420\n* @task T9610\n*/\nfunction createSentientSection() {\n\treturn {\n\t\tsection: \"sentient\",\n\t\ttitle: \"Sentient daemon + Tier-2 proposals\",\n\t\toptional: true,\n\t\tasync isConfigured(options) {\n\t\t\treturn existsSync(join(resolveOrCwd(options.projectRoot), SENTIENT_STATE_FILE));\n\t\t},\n\t\tasync run(io, options) {\n\t\t\tconst statePath = join(resolveOrCwd(options.projectRoot), SENTIENT_STATE_FILE);\n\t\t\tio.info(\"Configures the CLEO sentient daemon and Tier-2 autonomous proposal generation.\\nState is stored in `.cleo/sentient-state.json` in the project root.\\nTier-2 proposals are disabled by default for safety.\");\n\t\t\tif (existsSync(statePath)) try {\n\t\t\t\tconst state = await readSentientState(statePath);\n\t\t\t\tconst daemonActive = !state.killSwitch;\n\t\t\t\tconst t2Active = state.tier2Enabled ?? false;\n\t\t\t\tconst lastTick = state.lastTickAt != null ? new Date(state.lastTickAt).toISOString() : \"never\";\n\t\t\t\tio.info(`Current sentient state: daemon=${daemonActive ? \"enabled\" : \"disabled\"}, tier2=${t2Active ? \"enabled\" : \"disabled\"}, last-tick=${lastTick}`);\n\t\t\t} catch {\n\t\t\t\tio.info(\"Current sentient state: (could not read state file)\");\n\t\t\t}\n\t\t\telse io.info(\"Current sentient state: (not configured — state file does not exist)\");\n\t\t\tlet daemonEnabled;\n\t\t\tlet tier2Enabled;\n\t\t\tif (options.nonInteractive === true) {\n\t\t\t\tdaemonEnabled = options.sentientEnabled;\n\t\t\t\ttier2Enabled = options.tier2Enabled;\n\t\t\t\tif (daemonEnabled === void 0 && tier2Enabled === void 0) throw new Error(\"E_SETUP_MISSING_FLAG: --section sentient --non-interactive requires --sentient <on|off> or --tier2 <on|off>\");\n\t\t\t} else {\n\t\t\t\tdaemonEnabled = await io.confirm(\"Enable the sentient daemon (auto-tick reconciler)?\", false);\n\t\t\t\ttier2Enabled = await io.confirm(\"Enable Tier-2 autonomous proposals (off by default)?\", false);\n\t\t\t}\n\t\t\tconst patch = {};\n\t\t\tif (daemonEnabled !== void 0) {\n\t\t\t\tpatch.killSwitch = !daemonEnabled;\n\t\t\t\tpatch.killSwitchReason = daemonEnabled ? void 0 : \"cleo setup: operator disabled\";\n\t\t\t}\n\t\t\tif (tier2Enabled !== void 0) patch.tier2Enabled = tier2Enabled;\n\t\t\tawait patchSentientState(statePath, patch);\n\t\t\tconst fragments = [];\n\t\t\tif (daemonEnabled !== void 0) fragments.push(`daemon ${daemonEnabled ? \"enabled\" : \"disabled\"}`);\n\t\t\tif (tier2Enabled !== void 0) fragments.push(`tier2 ${tier2Enabled ? \"enabled\" : \"disabled\"}`);\n\t\t\treturn {\n\t\t\t\tchanged: true,\n\t\t\t\tsummary: fragments.join(\" + \")\n\t\t\t};\n\t\t}\n\t};\n}\n//#endregion\n//#region ../core/dist/setup/sections/telemetry.js\n/**\n* `telemetry` setup wizard section (E-SKILLS-OWNER-CI / T9673).\n*\n* Anonymous skills-usage telemetry is **default-on for new installs**.\n* This section runs during `cleo setup` to:\n* 1. Surface the default-on contract to the operator (transparency).\n* 2. Allow the operator to opt-out interactively.\n* 3. Persist `telemetry.enabled`, `telemetry.period`, `telemetry.installId`\n* to the global config.\n*\n* The opt-out path is the same single boolean used by `cleo telemetry disable`\n* (T9666) — the wizard step is convenience, NOT the only surface.\n*\n* Payload contract (LOCKED in T9666, enforced by the transport in ADR-074):\n* { installId, period: 'monthly', skills: { canonicalSkillName, loadCount }[] }\n* NEVER includes user identity, session IDs, paths, or skill content.\n*\n* Non-interactive contract:\n* - `options.nonInteractive === true` → consume `options.telemetryEnabled`\n* when present; default to `true` (default-on contract) when absent so\n* unattended setup runs match interactive defaults.\n*\n* @task T9673\n* @epic T9572\n* @see packages/cleo/src/cli/commands/telemetry.ts\n* @see .cleo/adrs/ADR-074-skills-telemetry-pr-diff-transport.md\n*/\n/**\n* Telemetry reporting period — locked to `monthly` in T9666.\n*\n* Future periods (weekly, on-demand) MUST be added as a discriminated\n* union in `packages/cleo/src/cli/commands/telemetry.ts` first; this\n* section consumes the canonical type rather than re-defining it.\n*/\nvar TELEMETRY_PERIOD = \"monthly\";\n/**\n* Build the `telemetry` section runner.\n*\n* Idempotent — `isConfigured()` returns `true` when `telemetry.enabled` has\n* been explicitly written to the global config. On a fresh install the key\n* is absent (not `false`); the wizard runs and writes `true` per the\n* default-on contract.\n*\n* @returns A {@link WizardSectionRunner} for the telemetry section.\n*/\nfunction createTelemetrySection() {\n\treturn {\n\t\tsection: \"telemetry\",\n\t\ttitle: \"Anonymous skills-usage telemetry\",\n\t\toptional: true,\n\t\tasync isConfigured() {\n\t\t\treturn typeof (await getConfigValue(\"telemetry.enabled\")).value === \"boolean\";\n\t\t},\n\t\tasync run(io, options) {\n\t\t\tio.info(\"CLEO ships anonymous skills-usage telemetry that surfaces the most-loaded\\ncanonical skills back to the owner-CI top-N council (T9572 SG-CLEO-SKILLS).\\nPayload: { installId, period, skills: [{ canonicalSkillName, loadCount }] }.\\nNEVER includes user identity, session IDs, paths, or skill content.\\nDefault: enabled. Opt-out anytime via `cleo telemetry disable`.\");\n\t\t\tlet enabled;\n\t\t\tif (options.nonInteractive === true) enabled = options.telemetryEnabled ?? true;\n\t\t\telse enabled = await io.confirm(\"Enable anonymous skills-usage telemetry?\", true);\n\t\t\tawait setConfigValue(\"telemetry.enabled\", enabled, void 0, { global: true });\n\t\t\tawait setConfigValue(\"telemetry.period\", TELEMETRY_PERIOD, void 0, { global: true });\n\t\t\tconst existingId = await getConfigValue(\"telemetry.installId\");\n\t\t\tif (typeof existingId.value !== \"string\" || existingId.value.length === 0) await setConfigValue(\"telemetry.installId\", randomUUID(), void 0, { global: true });\n\t\t\treturn {\n\t\t\t\tchanged: true,\n\t\t\t\tsummary: `telemetry ${enabled ? \"enabled\" : \"disabled\"} (period=${TELEMETRY_PERIOD})`\n\t\t\t};\n\t\t}\n\t};\n}\n//#endregion\n//#region ../core/dist/setup/sections/verification.js\n/**\n* `verification` setup wizard section (E-CLEO-SETUP-V2 / T9594).\n*\n* Read-only health-check runner that validates the full CLEO configuration\n* stack after the wizard has finished writing all other sections. No state\n* is mutated — this section is a diagnostic surface only.\n*\n* The section runs 6 independent checks in order:\n*\n* 1. **credential-pool** — at least one entry exists in the pool.\n* 2. **credential-reach** — first valid credential round-trips to its\n* provider health endpoint (5 s timeout).\n* 3. **config-integrity** — global + project config files parse cleanly.\n* 4. **harness-reach** — detected harness responds:\n* Pi → HTTP GET `<piUrl>/health` (3 s).\n* Code → `which claude` exits 0.\n* 5. **signaldock-reach** — if `signaldock.enabled`, HTTP GET to\n* `<endpoint>/health` (3 s); SKIP otherwise.\n* 6. **brain-db** — `brain.db` exists on disk and opens\n* without error.\n*\n* Each check yields a {@link VerificationCheck} carrying `PASS`, `FAIL`, or\n* `SKIP`. The runner aggregates results and surfaces them via {@link WizardIO}:\n* - Interactive → formatted text table (one line per check).\n* - Non-interactive → JSON array of {@link VerificationCheck} entries.\n*\n* The section always returns `{changed: false}` (read-only contract, VERIF-1).\n* `isConfigured()` always returns `false` — verification always runs when\n* included in a wizard pass (VERIF-6).\n*\n* @task T9594\n* @epic T9591\n* @see docs/plans/E-CLEO-SETUP-V2.md §4.9, §5.2 T9594\n*/\n/**\n* Check 1 — Credential pool has at least one entry.\n*\n* @internal\n*/\nasync function runCredentialPoolCheck() {\n\tconst name = \"credential-pool\";\n\ttry {\n\t\tconst entries = await getCredentialPool().list();\n\t\tif (entries.length === 0) return {\n\t\t\tname,\n\t\t\tstatus: \"FAIL\",\n\t\t\tmessage: \"pool is empty — run cleo setup --section llm\"\n\t\t};\n\t\treturn {\n\t\t\tname,\n\t\t\tstatus: \"PASS\",\n\t\t\tmessage: `${entries.length} credential(s) found`\n\t\t};\n\t} catch (err) {\n\t\treturn {\n\t\t\tname,\n\t\t\tstatus: \"FAIL\",\n\t\t\tmessage: `pool.list() threw: ${err instanceof Error ? err.message : String(err)}`\n\t\t};\n\t}\n}\n/**\n* Race a promise against a timeout, resolving to `undefined` on expiry.\n*\n* @internal\n*/\nfunction withTimeout(promise, ms) {\n\treturn new Promise((resolve) => {\n\t\tconst timer = setTimeout(() => resolve(void 0), ms);\n\t\tpromise.then((val) => {\n\t\t\tclearTimeout(timer);\n\t\t\tresolve(val);\n\t\t}, () => {\n\t\t\tclearTimeout(timer);\n\t\t\tresolve(void 0);\n\t\t});\n\t});\n}\n/**\n* Check 2 — First valid credential can reach its provider.\n*\n* Uses a best-effort HTTP GET to a known provider health URL when available.\n* Falls back to a simple fetch attempt and inspects the HTTP status code.\n* Timeout: 5 s.\n*\n* @internal\n*/\nasync function runCredentialReachabilityCheck() {\n\tconst name = \"credential-reach\";\n\ttry {\n\t\tconst entries = await getCredentialPool().list();\n\t\tif (entries.length === 0) return {\n\t\t\tname,\n\t\t\tstatus: \"SKIP\",\n\t\t\tmessage: \"no credentials configured\"\n\t\t};\n\t\tconst provider = entries[0].provider;\n\t\tconst probeUrl = {\n\t\t\tanthropic: \"https://api.anthropic.com/v1/models\",\n\t\t\topenai: \"https://api.openai.com/v1/models\",\n\t\t\tgemini: \"https://generativelanguage.googleapis.com/v1/models\",\n\t\t\topenrouter: \"https://openrouter.ai/api/v1/models\"\n\t\t}[provider] ?? `https://api.${provider}.com/v1/models`;\n\t\tconst response = await withTimeout(fetch(probeUrl, {\n\t\t\tmethod: \"GET\",\n\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\tsignal: AbortSignal.timeout(5e3)\n\t\t}), 5e3);\n\t\tif (response === void 0) return {\n\t\t\tname,\n\t\t\tstatus: \"FAIL\",\n\t\t\tmessage: `timeout after 5 s probing ${provider} (${probeUrl})`\n\t\t};\n\t\tif (response.ok || response.status === 401 || response.status === 403) return {\n\t\t\tname,\n\t\t\tstatus: \"PASS\",\n\t\t\tmessage: `${provider} endpoint reachable (HTTP ${response.status})`\n\t\t};\n\t\treturn {\n\t\t\tname,\n\t\t\tstatus: \"FAIL\",\n\t\t\tmessage: `${provider} returned HTTP ${response.status}`\n\t\t};\n\t} catch (err) {\n\t\treturn {\n\t\t\tname,\n\t\t\tstatus: \"FAIL\",\n\t\t\tmessage: `fetch failed: ${err instanceof Error ? err.message : String(err)}`\n\t\t};\n\t}\n}\n/**\n* Check 3 — Global + project config files parse cleanly.\n*\n* Delegates to {@link loadConfig} which already handles missing files\n* gracefully; we surface any unexpected parsing errors as FAIL.\n*\n* @internal\n*/\nasync function runConfigIntegrityCheck(cwd) {\n\tconst name = \"config-integrity\";\n\ttry {\n\t\tawait loadConfig(cwd);\n\t\treturn {\n\t\t\tname,\n\t\t\tstatus: \"PASS\",\n\t\t\tmessage: \"global + project config parse cleanly\"\n\t\t};\n\t} catch (err) {\n\t\treturn {\n\t\t\tname,\n\t\t\tstatus: \"FAIL\",\n\t\t\tmessage: `config parse error: ${err instanceof Error ? err.message : String(err)}`\n\t\t};\n\t}\n}\n/**\n* Check 4 — Detected harness responds.\n*\n* - `pi` (or `piUrl` in config) → HTTP GET `<piUrl>/health` (3 s timeout).\n* - `claude-code` → resolves `which claude` in PATH.\n* - `unknown` → SKIP.\n*\n* @internal\n*/\nasync function runHarnessReachabilityCheck(cwd) {\n\tconst name = \"harness-reach\";\n\ttry {\n\t\tlet active = process.env[\"CLEO_HARNESS\"];\n\t\tif (!active) if (process.env[\"CLAUDECODE\"] === \"1\") active = \"claude-code\";\n\t\telse if (process.env[\"CLEO_PI\"] === \"1\") active = \"pi\";\n\t\telse active = (await getConfigValue(\"harness.active\", cwd)).value;\n\t\tif (!active || active === \"unknown\") return {\n\t\t\tname,\n\t\t\tstatus: \"SKIP\",\n\t\t\tmessage: \"no harness configured\"\n\t\t};\n\t\tif (active === \"claude-code\") {\n\t\t\tconst { exec } = await import(\"node:child_process\");\n\t\t\tconst { promisify } = await import(\"node:util\");\n\t\t\tconst execP = promisify(exec);\n\t\t\ttry {\n\t\t\t\tawait withTimeout(execP(\"which claude\"), 3e3);\n\t\t\t\treturn {\n\t\t\t\t\tname,\n\t\t\t\t\tstatus: \"PASS\",\n\t\t\t\t\tmessage: \"`claude` binary found in PATH\"\n\t\t\t\t};\n\t\t\t} catch {\n\t\t\t\treturn {\n\t\t\t\t\tname,\n\t\t\t\t\tstatus: \"FAIL\",\n\t\t\t\t\tmessage: \"`claude` binary not found — install Claude Code\"\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tif (active === \"pi\") {\n\t\t\tconst piUrlResolved = process.env[\"CLEO_PI_URL\"] ?? (await getConfigValue(\"harness.piUrl\", cwd)).value;\n\t\t\tconst piUrl = typeof piUrlResolved === \"string\" && piUrlResolved ? piUrlResolved : null;\n\t\t\tif (!piUrl) return {\n\t\t\t\tname,\n\t\t\t\tstatus: \"SKIP\",\n\t\t\t\tmessage: \"pi harness active but piUrl not configured\"\n\t\t\t};\n\t\t\tconst healthUrl = piUrl.replace(/\\/$/, \"\") + \"/health\";\n\t\t\tconst response = await withTimeout(fetch(healthUrl, { signal: AbortSignal.timeout(3e3) }), 3e3);\n\t\t\tif (response === void 0) return {\n\t\t\t\tname,\n\t\t\t\tstatus: \"FAIL\",\n\t\t\t\tmessage: `timeout after 3 s (${healthUrl})`\n\t\t\t};\n\t\t\tif (response.ok) return {\n\t\t\t\tname,\n\t\t\t\tstatus: \"PASS\",\n\t\t\t\tmessage: `Pi /health returned HTTP ${response.status}`\n\t\t\t};\n\t\t\treturn {\n\t\t\t\tname,\n\t\t\t\tstatus: \"FAIL\",\n\t\t\t\tmessage: `Pi /health returned HTTP ${response.status}`\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tname,\n\t\t\tstatus: \"SKIP\",\n\t\t\tmessage: `unrecognised harness '${active}'`\n\t\t};\n\t} catch (err) {\n\t\treturn {\n\t\t\tname,\n\t\t\tstatus: \"FAIL\",\n\t\t\tmessage: `harness check failed: ${err instanceof Error ? err.message : String(err)}`\n\t\t};\n\t}\n}\n/**\n* Check 5 — SignalDock endpoint is reachable.\n*\n* Skipped when `signaldock.enabled` is `false` or not configured.\n* Timeout: 3 s.\n*\n* @internal\n*/\nasync function runAgentRegistryReachabilityCheck(cwd) {\n\tconst name = \"signaldock-reach\";\n\ttry {\n\t\tif (!(await getConfigValue(\"signaldock.enabled\", cwd)).value) return {\n\t\t\tname,\n\t\t\tstatus: \"SKIP\",\n\t\t\tmessage: \"SignalDock not enabled\"\n\t\t};\n\t\tconst endpoint = (await getConfigValue(\"signaldock.endpoint\", cwd)).value;\n\t\tif (!endpoint || typeof endpoint !== \"string\") return {\n\t\t\tname,\n\t\t\tstatus: \"SKIP\",\n\t\t\tmessage: \"SignalDock endpoint not configured\"\n\t\t};\n\t\tconst healthUrl = endpoint.replace(/\\/$/, \"\") + \"/health\";\n\t\tconst response = await withTimeout(fetch(healthUrl, { signal: AbortSignal.timeout(3e3) }), 3e3);\n\t\tif (response === void 0) return {\n\t\t\tname,\n\t\t\tstatus: \"FAIL\",\n\t\t\tmessage: `timeout after 3 s (${healthUrl})`\n\t\t};\n\t\tif (response.ok) return {\n\t\t\tname,\n\t\t\tstatus: \"PASS\",\n\t\t\tmessage: `SignalDock /health returned HTTP ${response.status}`\n\t\t};\n\t\treturn {\n\t\t\tname,\n\t\t\tstatus: \"FAIL\",\n\t\t\tmessage: `SignalDock /health returned HTTP ${response.status}`\n\t\t};\n\t} catch (err) {\n\t\treturn {\n\t\t\tname,\n\t\t\tstatus: \"FAIL\",\n\t\t\tmessage: `SignalDock check failed: ${err instanceof Error ? err.message : String(err)}`\n\t\t};\n\t}\n}\n/**\n* Check 6 — BRAIN database is present and opens cleanly.\n*\n* We perform a lightweight existence + read-access check rather than a full\n* Drizzle open (which would trigger migrations). The section must remain\n* read-only (VERIF-1).\n*\n* @internal\n*/\nasync function runBrainDbCheck(cwd) {\n\tconst name = \"brain-db\";\n\ttry {\n\t\tconst dbPath = join(resolveCleoDir(cwd), \"brain.db\");\n\t\tif (!existsSync(dbPath)) return {\n\t\t\tname,\n\t\t\tstatus: \"FAIL\",\n\t\t\tmessage: `brain.db not found at ${dbPath} — run cleo init`\n\t\t};\n\t\tawait access(dbPath);\n\t\treturn {\n\t\t\tname,\n\t\t\tstatus: \"PASS\",\n\t\t\tmessage: `brain.db accessible at ${dbPath}`\n\t\t};\n\t} catch (err) {\n\t\treturn {\n\t\t\tname,\n\t\t\tstatus: \"FAIL\",\n\t\t\tmessage: `brain.db check failed: ${err instanceof Error ? err.message : String(err)}`\n\t\t};\n\t}\n}\n/**\n* Build the `verification` section runner.\n*\n* The runner is read-only — it never mutates config or DB state (VERIF-1).\n* `isConfigured()` always returns `false` so the section is never skipped\n* even when the rest of the wizard short-circuits (VERIF-6).\n*\n* @returns A {@link WizardSectionRunner} for the verification section.\n* @task T9594\n*/\nfunction createVerificationSection() {\n\treturn {\n\t\tsection: \"verification\",\n\t\ttitle: \"Verification (read-only health checks)\",\n\t\toptional: true,\n\t\tasync isConfigured() {\n\t\t\treturn false;\n\t\t},\n\t\tasync run(io, options) {\n\t\t\tconst cwd = options.projectRoot;\n\t\t\tio.info(\"Running health checks — this may take up to 5 s per network check. No state is mutated.\");\n\t\t\tconst checks = [];\n\t\t\tchecks.push(await runCredentialPoolCheck());\n\t\t\tchecks.push(await runCredentialReachabilityCheck());\n\t\t\tchecks.push(await runConfigIntegrityCheck(cwd));\n\t\t\tchecks.push(await runHarnessReachabilityCheck(cwd));\n\t\t\tchecks.push(await runAgentRegistryReachabilityCheck(cwd));\n\t\t\tchecks.push(await runBrainDbCheck(cwd));\n\t\t\tconst failCount = checks.filter((c) => c.status === \"FAIL\").length;\n\t\t\tconst passCount = checks.filter((c) => c.status === \"PASS\").length;\n\t\t\tconst skipCount = checks.filter((c) => c.status === \"SKIP\").length;\n\t\t\tif (options.nonInteractive === true) io.info(JSON.stringify(checks, null, 2));\n\t\t\telse {\n\t\t\t\tconst padEnd = (s, n) => s.padEnd(n, \" \");\n\t\t\t\tconst header = ` ${\"Check\".padEnd(22)} ${\"Status\".padEnd(6)} Message`;\n\t\t\t\tio.info(header);\n\t\t\t\tio.info(` ${\"─\".repeat(22)} ${\"─\".repeat(6)} ${\"─\".repeat(50)}`);\n\t\t\t\tfor (const check of checks) {\n\t\t\t\t\tconst statusLabel = check.status === \"PASS\" ? \"PASS\" : check.status === \"FAIL\" ? \"FAIL\" : \"SKIP\";\n\t\t\t\t\tio.info(` ${padEnd(check.name, 22)} ${padEnd(statusLabel, 6)} ${check.message}`);\n\t\t\t\t}\n\t\t\t\tio.info(\"\");\n\t\t\t\tio.info(` Summary: ${passCount} PASS, ${failCount} FAIL, ${skipCount} SKIP`);\n\t\t\t}\n\t\t\tif (failCount > 0) return {\n\t\t\t\tchanged: false,\n\t\t\t\tsummary: `verification: ${failCount} check(s) failed — see output`\n\t\t\t};\n\t\t\treturn {\n\t\t\t\tchanged: false,\n\t\t\t\tsummary: `verification passed: ${passCount} PASS, ${skipCount} SKIP`\n\t\t\t};\n\t\t}\n\t};\n}\n//#endregion\n//#region ../core/dist/setup/wizard.js\n/**\n* Core setup wizard engine (E-CONFIG-AUTH-UNIFY E3 / T9420).\n*\n* Hermes-style modular wizard: every section (LLM, identity, sentient,\n* project conventions, …) is an independent {@link WizardSectionRunner}\n* that can be run on its own, in a fixed pipeline, or via the Studio\n* `/setup` route — the engine has zero awareness of which surface (CLI\n* vs. web) is driving the I/O.\n*\n* The engine is intentionally I/O-agnostic: callers pass a\n* {@link WizardIO} implementation (a readline-backed `ConsoleWizardIO`\n* from the CLI, a stub recorder in tests, a SvelteKit form helper from\n* the Studio). The runner never imports `node:readline` directly so\n* unit tests can drive it without a TTY.\n*\n* ## Design pointers\n*\n* - `run(sections?)` walks every (or a named subset of) section\n* in declared order, gathering a per-section summary line. The\n* summary is returned to the caller so `cleo setup` can echo a\n* final overview before exiting.\n* - `runSection(name)` resolves the section by `section` field — this\n* is the field consumers see in `--section <name>` flags.\n* - The non-interactive mode flag is *plumbed into `WizardOptions`* so\n* each section can decide whether to prompt or apply CLI flags\n* silently. Sections that have no non-interactive contract simply\n* short-circuit with `{ changed: false, summary: 'skipped (non-interactive)' }`.\n*\n* ## Section contract\n*\n* Built-in sections live under `./sections/` and are exported via\n* {@link createBuiltinSections}. Each section's `run()` returns a\n* {@link WizardSectionResult} carrying:\n* - `changed`: did the section apply any change? Used to label the\n* summary line.\n* - `summary`: a single-line human-readable description of what was\n* done (or skipped).\n*\n* @task T9420\n* @task T9607\n* @task T9613\n* @epic T9402\n* @epic T9591\n* @see docs/plans/E-CONFIG-AUTH-UNIFY.md §3.3.5, §5.3 T-E3-1\n* @see docs/plans/E-CLEO-SETUP-V2.md §3.1, §3.2, §3.3, §3.4\n*/\n/**\n* Base class for errors that are fatal to the entire wizard run.\n*\n* `WizardRunner.invokeSection` catches and swallows section-level errors so\n* a single failing section does not abort the rest of the wizard. But some\n* error conditions (e.g. stdin closed) make further prompting impossible and\n* must propagate all the way out so the CLI can emit a proper LAFS error\n* envelope instead of silently continuing with dead prompts.\n*\n* CLI-layer error classes (e.g. `StdinClosedError` in\n* `packages/cleo/src/cli/lib/readline-wizard-io.ts`) extend this class so\n* the runner recognises them without importing CLI types.\n*\n* @task T9599\n*/\nvar WizardFatalError = class WizardFatalError extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = \"WizardFatalError\";\n\t}\n\t/**\n\t* Type-guard so `invokeSection` can detect subclasses without `instanceof`\n\t* across package boundaries.\n\t*/\n\tstatic is(err) {\n\t\treturn err instanceof WizardFatalError;\n\t}\n};\n/**\n* Runs an ordered collection of {@link WizardSectionRunner} instances.\n*\n* Stateless: every method takes the registered sections from the\n* constructor argument and the per-invocation `io`/`options`. The\n* runner deliberately swallows section-level exceptions so a failing\n* section never aborts the rest of the wizard — exceptions are logged\n* via `io.error()` and the section's summary line records `failed`.\n*\n* Mirrors Hermes Agent's `setup.py` decomposition.\n*\n* @task T9420\n*/\nvar WizardRunner = class {\n\tsectionList;\n\tsections;\n\t/**\n\t* Construct a runner over a fixed section list.\n\t*\n\t* The list order is preserved as the execution order for {@link run}.\n\t* Passing the same `section` id twice throws — every id MUST be unique.\n\t*\n\t* @param sections - The wizard's section runners in execution order.\n\t*/\n\tconstructor(sectionList) {\n\t\tthis.sectionList = sectionList;\n\t\tconst map = /* @__PURE__ */ new Map();\n\t\tfor (const section of sectionList) {\n\t\t\tif (map.has(section.section)) throw new Error(`WizardRunner: duplicate section id '${section.section}' — every section id must be unique.`);\n\t\t\tmap.set(section.section, section);\n\t\t}\n\t\tthis.sections = map;\n\t}\n\t/**\n\t* Return the registered section runners in declaration order.\n\t*\n\t* Read-only view — callers MUST NOT mutate.\n\t*\n\t* @returns Frozen list of section runners.\n\t*/\n\tlist() {\n\t\treturn this.sectionList;\n\t}\n\t/**\n\t* Execute every section in declaration order.\n\t*\n\t* Each section runs against the supplied `io`/`options`. Section\n\t* failures are caught and reported via `io.error()`; the next section\n\t* still runs.\n\t*\n\t* ### Skip logic (T9613 / E-CLEO-SETUP-V2 §3.4)\n\t*\n\t* Before invoking each section, `run()` calls `section.isConfigured?.(options)`.\n\t* When that returns `true` and `options.reset` is not set, the section is\n\t* bypassed with a `skipped (already configured)` summary line and an info\n\t* message directing the user to `--reset` for a full reconfigure.\n\t*\n\t* ### Progress prefix (T9613 / E-CLEO-SETUP-V2 §3.4)\n\t*\n\t* Section headers are emitted as `[N/total] title (section-id)` so\n\t* scripted consumers can parse progress reliably.\n\t*\n\t* ### First-run completion (T9613 / E-CLEO-SETUP-V2 §3.4)\n\t*\n\t* After all sections complete without any `failed:` summary line, this\n\t* method writes `auth.firstRunComplete = true` to the global config and\n\t* writes a `setup-completed.json` marker to the CLEO data directory.\n\t* The returned {@link WizardRunResult.firstRunComplete} flag reflects\n\t* whether the marker was written.\n\t*\n\t* @param io - Prompting surface.\n\t* @param options - Pre-parsed flags / programmatic bag.\n\t* @returns Aggregate run result with per-section summary lines.\n\t*/\n\tasync run(io, options = {}) {\n\t\tconst sectionsRun = [];\n\t\tconst summary = [];\n\t\tconst total = this.sectionList.length;\n\t\tlet index = 0;\n\t\tfor (const runner of this.sectionList) {\n\t\t\tindex++;\n\t\t\tsectionsRun.push(runner.section);\n\t\t\tio.info(`\\n[${index}/${total}] ${runner.title} (${runner.section})`);\n\t\t\tif (!options.reset && runner.isConfigured) {\n\t\t\t\tif (await runner.isConfigured(options)) {\n\t\t\t\t\tio.info(`[skip] ${runner.title} — already configured. Use --reset to reconfigure.`);\n\t\t\t\t\tsummary.push(`${runner.section}: skipped (already configured)`);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst result = await this.invokeSection(runner, io, options);\n\t\t\tsummary.push(`${runner.section}: ${result.summary}`);\n\t\t}\n\t\tif (!summary.some((line) => line.includes(\": failed:\"))) {\n\t\t\ttry {\n\t\t\t\tawait setConfigValue(\"auth.firstRunComplete\", true, void 0, { global: true });\n\t\t\t\tconst dataDir = getCleoPlatformPaths().data;\n\t\t\t\tawait mkdir(dataDir, { recursive: true });\n\t\t\t\tawait writeFile(join(dataDir, \"setup-completed.json\"), JSON.stringify({ completedAt: (/* @__PURE__ */ new Date()).toISOString() }), \"utf-8\");\n\t\t\t} catch {}\n\t\t\treturn {\n\t\t\t\tsectionsRun,\n\t\t\t\tsummary,\n\t\t\t\tfirstRunComplete: true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tsectionsRun,\n\t\t\tsummary,\n\t\t\tfirstRunComplete: false\n\t\t};\n\t}\n\t/**\n\t* Execute a single named section.\n\t*\n\t* @param name - Section id matching a registered runner's `section` field.\n\t* @param io - Prompting surface.\n\t* @param options - Pre-parsed flags / programmatic bag.\n\t* @returns The section's own {@link WizardSectionResult}.\n\t* @throws When `name` is not registered.\n\t*/\n\tasync runSection(name, io, options = {}) {\n\t\tconst runner = this.sections.get(name);\n\t\tif (!runner) throw new Error(`WizardRunner.runSection: no section registered for id '${name}'. Known sections: ${Array.from(this.sections.keys()).join(\", \") || \"(none)\"}.`);\n\t\tio.info(`\\n── ${runner.title} (${runner.section}) ──`);\n\t\treturn this.invokeSection(runner, io, options);\n\t}\n\t/**\n\t* Run one section while shielding the wizard from its exceptions.\n\t*\n\t* Section bugs surface as `failed: <message>` summary lines rather\n\t* than uncaught throws so an `cleo setup` invocation always completes\n\t* with a non-fatal report instead of a stack trace.\n\t*\n\t* **Exception**: {@link WizardFatalError} subclasses (e.g. `StdinClosedError`)\n\t* are re-thrown immediately — they signal conditions (stdin EOF, broken pipe)\n\t* where further prompting is impossible and the CLI must emit a LAFS error\n\t* envelope rather than continuing with a dead I/O surface.\n\t*\n\t* @internal\n\t*/\n\tasync invokeSection(runner, io, options) {\n\t\ttry {\n\t\t\treturn await runner.run(io, options);\n\t\t} catch (err) {\n\t\t\tif (WizardFatalError.is(err)) throw err;\n\t\t\tconst message = err instanceof Error ? err.message : String(err);\n\t\t\tio.error(`section '${runner.section}' failed: ${message}`);\n\t\t\treturn {\n\t\t\t\tchanged: false,\n\t\t\t\tsummary: `failed: ${message}`\n\t\t\t};\n\t\t}\n\t}\n};\n//#endregion\n//#region ../core/dist/setup/index.js\n/**\n* Setup wizard entry point (E-CONFIG-AUTH-UNIFY E3 / T9420).\n*\n* Re-exports the engine + every built-in section + a convenience\n* factory that wires the canonical order. Both `cleo setup` (T9421)\n* and the Studio `/setup` route (T-E3-8) consume this surface.\n*\n* V2 additions (T9607): re-exports {@link WizardInterruptError}.\n* V2 additions (T9608): re-exports {@link createIntegrationsSection}.\n*\n* @task T9420\n* @task T9607\n* @task T9608\n* @epic T9402\n* @epic T9591\n*/\n/**\n* Construct every built-in {@link WizardSectionRunner} in canonical order.\n*\n* Order matters: `cleo setup` walks the list verbatim. The current\n* order is:\n* 1. `llm` — credentials are the prerequisite for everything else\n* 2. `models-roles` — default model + per-role profiles (T11726)\n* 3. `identity` — agent name / SOUL.md before any agent dispatch\n* 4. `sentient` — daemon enablement after credentials exist\n* 5. `project-conventions` — strictness preset before harness/brain layering\n* 6. `harness` — operator selects Pi vs Claude Code (T9425)\n* 7. `brain` — BRAIN memory bridge mode (T9425)\n* 8. `integrations` — SignalDock + Studio + Conduit (T9608)\n* 9. `telemetry` — anonymous skills-usage telemetry (T9673)\n* 10. `verification` — read-only health checks (T9594)\n*\n* @param llmDeps - Optional dependencies forwarded to the `llm` section — most\n* notably the interactive OAuth token acquirer (T11727). The CLI surface\n* passes the real acquirer so the wizard OAuth path runs the inline engine;\n* programmatic callers omit it (OAuth path points the user at `cleo login`).\n* @returns Fresh array of section runner instances.\n* @task T9420\n* @task T9425\n* @task T9594\n* @task T9608\n* @task T9673\n* @task T11726\n* @task T11727\n*/\nfunction createBuiltinSections(llmDeps = {}) {\n\treturn [\n\t\tcreateLlmSection(llmDeps),\n\t\tcreateModelsRolesSection(),\n\t\tcreateIdentitySection(),\n\t\tcreateSentientSection(),\n\t\tcreateProjectConventionsSection(),\n\t\tcreateHarnessSection(),\n\t\tcreateBrainSection(),\n\t\tcreateIntegrationsSection(),\n\t\tcreateTelemetrySection(),\n\t\tcreateVerificationSection()\n\t];\n}\n//#endregion\n//#region src/routes/api/setup/section/[name]/+server.ts\n/**\n* POST /api/setup/section/:name — run a single wizard section.\n*\n* Bridges the Studio `/setup` UI to the canonical {@link WizardSectionRunner}\n* pipeline shipped from `@cleocode/core/setup`. The browser supplies a\n* single JSON payload describing how the section should behave; the\n* server constructs a {@link WizardOptions} bag plus a queue-backed\n* `WizardIO` and invokes the matching section runner from\n* {@link createBuiltinSections}.\n*\n* Request body:\n* ```\n* {\n* nonInteractive?: boolean,\n* provider?: string, apiKey?: string, label?: string,\n* agentName?: string, soulMdContent?: string,\n* sentientEnabled?: boolean, tier2Enabled?: boolean,\n* strictness?: 'strict' | 'standard' | 'minimal',\n* harness?: 'pi' | 'claude-code',\n* brainBridgeMode?: 'digest' | 'file' | 'disabled',\n* projectRoot?: string,\n* }\n* ```\n*\n* Response (LAFS):\n* ```\n* { success: true, data: { section, success, changes, summary } }\n* ```\n*\n* - `section` — echoed section id so the client can correlate\n* - `success` — `true` when the runner returned without surfacing\n* any `io.error()` lines (i.e. no recoverable failure)\n* - `changes` — `result.changed` from the section runner\n* - `summary` — `result.summary` line from the section runner\n*\n* The endpoint is intentionally write-only against the section: it never\n* echoes back secret material, never returns the request payload, and\n* never reads credentials. The `/keys` route remains the single read\n* surface for credential listings.\n*\n* SECURITY: the LLM section route is bypassed by the Studio UI in favour\n* of POST /api/credentials directly (T9426) so that the only place the\n* API key crosses the wire is the dedicated credential endpoint. This\n* handler still supports `llm` for parity with `cleo setup --section llm`\n* but the API key, when supplied, is forwarded straight to the wizard\n* section which routes it through `addCredential` — same persistence\n* path as POST /api/credentials.\n*\n* @task T9427\n* @epic E-CONFIG-AUTH-UNIFY (E3 §5.3 T-E3-8)\n*/\nvar ALLOWED_SECTIONS = new Set([\n\t\"llm\",\n\t\"identity\",\n\t\"harness\",\n\t\"sentient\",\n\t\"project-conventions\",\n\t\"brain\"\n]);\n/**\n* Headless {@link WizardIO} implementation for the HTTP path.\n*\n* The Studio `/setup` flow operates in **non-interactive** mode: every\n* answer the section needs is supplied up-front via `WizardOptions`.\n* If a section nevertheless asks a question (an unforeseen path),\n* `prompt`/`confirm`/`select` throw so the failure surfaces as a\n* deterministic 500 instead of hanging.\n*\n* `info` / `warn` / `error` messages are captured so the response\n* `success` field can flip to `false` when the section surfaced a\n* recoverable error via `io.error()`.\n*\n* @internal\n*/\nvar HttpWizardIO = class {\n\t/** Captured info/warn/error lines, in emission order. */\n\terrors = [];\n\twarns = [];\n\tasync prompt(question) {\n\t\tthrow new Error(`HttpWizardIO: section attempted an interactive prompt ('${question}') but the Studio /setup flow only supports non-interactive section runs. Pass the required field via the POST body.`);\n\t}\n\tasync confirm(question) {\n\t\tthrow new Error(`HttpWizardIO: section attempted an interactive confirm ('${question}') but the Studio /setup flow only supports non-interactive section runs.`);\n\t}\n\tasync select(question) {\n\t\tthrow new Error(`HttpWizardIO: section attempted an interactive select ('${question}') but the Studio /setup flow only supports non-interactive section runs.`);\n\t}\n\tinfo(_message) {}\n\twarn(message) {\n\t\tthis.warns.push(message);\n\t}\n\terror(message) {\n\t\tthis.errors.push(message);\n\t}\n};\n/**\n* Narrow a parsed JSON body into a {@link WizardOptions} bag.\n*\n* Each field is pulled defensively — unknown types collapse to\n* `undefined` rather than propagating to the section. The wizard\n* sections themselves enforce that their required inputs are present\n* (e.g. `llm` requires `provider` + `apiKey`).\n*\n* @internal\n*/\nfunction buildOptions(body) {\n\tconst options = {};\n\tif (body[\"nonInteractive\"] !== false) options.nonInteractive = true;\n\telse options.nonInteractive = false;\n\tif (typeof body[\"provider\"] === \"string\") options.provider = body[\"provider\"];\n\tif (typeof body[\"apiKey\"] === \"string\") options.apiKey = body[\"apiKey\"];\n\tif (typeof body[\"label\"] === \"string\") options.label = body[\"label\"];\n\tif (typeof body[\"agentName\"] === \"string\") options.agentName = body[\"agentName\"];\n\tif (typeof body[\"soulMdContent\"] === \"string\") options.soulMdContent = body[\"soulMdContent\"];\n\tif (typeof body[\"sentientEnabled\"] === \"boolean\") options.sentientEnabled = body[\"sentientEnabled\"];\n\tif (typeof body[\"tier2Enabled\"] === \"boolean\") options.tier2Enabled = body[\"tier2Enabled\"];\n\tconst strictness = body[\"strictness\"];\n\tif (strictness === \"strict\" || strictness === \"standard\" || strictness === \"minimal\") options.strictness = strictness;\n\tconst harness = body[\"harness\"];\n\tif (harness === \"pi\" || harness === \"claude-code\") options.harness = harness;\n\tconst bridgeMode = body[\"brainBridgeMode\"];\n\tif (bridgeMode === \"digest\" || bridgeMode === \"file\" || bridgeMode === \"disabled\") options.brainBridgeMode = bridgeMode;\n\tif (typeof body[\"projectRoot\"] === \"string\") options.projectRoot = body[\"projectRoot\"];\n\treturn options;\n}\n/**\n* POST /api/setup/section/:name — run the named wizard section.\n*\n* @task T9427\n*/\nvar POST = async ({ request, params }) => {\n\tconst name = params.name;\n\tif (!name || typeof name !== \"string\" || !ALLOWED_SECTIONS.has(name)) return json(err(\"E_VALIDATION\", `Unknown wizard section '${String(name)}'. Allowed: ${Array.from(ALLOWED_SECTIONS).join(\", \")}.`), { status: 400 });\n\tconst section = name;\n\tconst body = await parseJsonBody(request);\n\tif (isParseError(body)) return json(err(\"E_VALIDATION\", body._parseError), { status: 400 });\n\tconst options = buildOptions(body);\n\tconst io = new HttpWizardIO();\n\ttry {\n\t\tconst result = await new WizardRunner(createBuiltinSections()).runSection(section, io, options);\n\t\treturn json(ok({\n\t\t\tsection,\n\t\t\tsuccess: io.errors.length === 0,\n\t\t\tchanges: result.changed,\n\t\t\tsummary: result.summary\n\t\t}));\n\t} catch (e) {\n\t\treturn json(err(\"E_SECTION_FAILED\", `Section '${section}' failed: ${e instanceof Error ? e.message : String(e)}`), { status: 500 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-CGiAXy5i.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/brain/node/_id_/_server.ts.js"],"sourcesContent":["import { t as getAllSubstrates } from \"../../../../../../chunks/src.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/brain/node/[id]/+server.ts\n/**\n* Single BRAIN super-graph node + neighbors endpoint.\n*\n* GET /api/brain/node/:id\n* → { node: BrainNode, neighbors: BrainNode[], edges: BrainEdge[] }\n*\n* `:id` must be a substrate-prefixed node ID, e.g.:\n* brain:O-abc123\n* nexus:packages/core/src/store/tasks-schema.ts::createTask\n* tasks:T626\n* conduit:msg-xyz\n* agent-registry:agent-007\n*\n* Returns 404 if the node is not found.\n* Returns neighbors = nodes directly connected by at least one edge.\n*/\nvar GET = ({ locals, params }) => {\n\tconst nodeId = decodeURIComponent(params.id);\n\tif (!nodeId) return json({ error: \"id is required\" }, { status: 400 });\n\tif (nodeId.indexOf(\":\") === -1) return json({ error: \"id must be substrate-prefixed, e.g. \\\"brain:O-abc\\\"\" }, { status: 400 });\n\ttry {\n\t\tconst graph = getAllSubstrates({\n\t\t\tlimit: 2e3,\n\t\t\tprojectCtx: locals.projectCtx\n\t\t});\n\t\tconst node = graph.nodes.find((n) => n.id === nodeId);\n\t\tif (!node) return json({ error: `Node not found: ${nodeId}` }, { status: 404 });\n\t\tconst edges = graph.edges.filter((e) => e.source === nodeId || e.target === nodeId);\n\t\tconst neighborIds = /* @__PURE__ */ new Set();\n\t\tfor (const e of edges) {\n\t\t\tif (e.source !== nodeId) neighborIds.add(e.source);\n\t\t\tif (e.target !== nodeId) neighborIds.add(e.target);\n\t\t}\n\t\treturn json({\n\t\t\tnode,\n\t\t\tneighbors: graph.nodes.filter((n) => neighborIds.has(n.id)),\n\t\t\tedges\n\t\t});\n\t} catch (err) {\n\t\treturn json({ error: String(err) }, { status: 500 });\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAClC,CAAC,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;AAC7C,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACvE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,qDAAqD,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC/H,CAAC,IAAI;AACL,EAAE,MAAM,KAAK,GAAG,gBAAgB,CAAC;AACjC,GAAG,KAAK,EAAE,GAAG;AACb,GAAG,UAAU,EAAE,MAAM,CAAC;AACtB,GAAG,CAAC;AACJ,EAAE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC;AACvD,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACjF,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;AACrF,EAAE,MAAM,WAAW,mBAAmB,IAAI,GAAG,EAAE;AAC/C,EAAE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;AACzB,GAAG,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;AACrD,GAAG,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;AACrD,EAAE;AACF,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,IAAI;AACP,GAAG,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9D,GAAG;AACH,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACtD,CAAC;AACD;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-CJA1djzJ.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/tasks/subscribe/_server.ts.js"],"sourcesContent":["import { i as encodeStreamEvent, n as createSseStream, t as SSE_HEADERS } from \"../../../../../chunks/http.js\";\nimport { r as getTaskAccessor } from \"../../../../../chunks/data-accessor2.js\";\nimport { t as listTasks } from \"../../../../../chunks/list.js\";\nimport { l as resolveGatewayBaseUrl } from \"../../../../../chunks/_dispatch.js\";\n//#region src/routes/api/tasks/subscribe/+server.ts\n/** Poll cadence (ms) for the Studio-local board-change detector fallback. */\nvar POLL_INTERVAL_MS = 2e3;\n/** Connect timeout (ms) for the gateway proxy attempt before falling back. */\nvar GATEWAY_CONNECT_TIMEOUT_MS = 1500;\n/**\n* Attempt to proxy the gateway `GET /v1/tasks/subscribe` SSE. Returns the\n* upstream `Response` (its `text/event-stream` body) on success, or `null` when\n* the daemon listener is unreachable (so the caller falls back to the local\n* board-change detector).\n*\n* @param baseUrl - The resolved gateway base URL.\n* @param root - Optional saga/parent scope forwarded as `?root=`.\n* @param signal - Abort signal tied to the client disconnect.\n* @returns The upstream SSE response, or `null` when unreachable.\n*/\nasync function tryProxyGatewayStream(baseUrl, root, signal) {\n\tconst url = `${baseUrl}/v1/tasks/subscribe${root ? `?root=${encodeURIComponent(root)}` : \"\"}`;\n\tconst connectCtl = new AbortController();\n\tconst timer = setTimeout(() => connectCtl.abort(), GATEWAY_CONNECT_TIMEOUT_MS);\n\tconst onClientAbort = () => connectCtl.abort();\n\tsignal.addEventListener(\"abort\", onClientAbort);\n\ttry {\n\t\tconst res = await fetch(url, {\n\t\t\theaders: { accept: \"text/event-stream\" },\n\t\t\tsignal: connectCtl.signal\n\t\t});\n\t\tclearTimeout(timer);\n\t\tsignal.removeEventListener(\"abort\", onClientAbort);\n\t\tif (!res.ok || res.body === null) return null;\n\t\treturn res;\n\t} catch {\n\t\tclearTimeout(timer);\n\t\tsignal.removeEventListener(\"abort\", onClientAbort);\n\t\treturn null;\n\t}\n}\nvar GET = async ({ locals, url, request }) => {\n\tconst ctx = locals.projectCtx;\n\tconst root = url.searchParams.get(\"root\");\n\tconst upstream = await tryProxyGatewayStream(resolveGatewayBaseUrl(), root, request.signal);\n\tif (upstream?.body) return new Response(upstream.body, {\n\t\tstatus: 200,\n\t\theaders: {\n\t\t\t\"Content-Type\": \"text/event-stream\",\n\t\t\t\"Cache-Control\": \"no-cache\",\n\t\t\tConnection: \"keep-alive\",\n\t\t\t\"X-Accel-Buffering\": \"no\"\n\t\t}\n\t});\n\tconst requestId = `studio-${Date.now().toString(36)}`;\n\tconst projectPath = ctx.projectPath;\n\tconst stream = createSseStream((emitter) => {\n\t\tlet seq = 0;\n\t\tlet lastUpdated = \"\";\n\t\tlet lastCount = -1;\n\t\t/** Guards against overlapping ticks when a probe outlives its interval. */\n\t\tlet probing = false;\n\t\t/** Emit one canonical board-event `data` frame (dropped after close). */\n\t\tfunction emit(event) {\n\t\t\tconst frame = {\n\t\t\t\tkind: \"data\",\n\t\t\t\tseq,\n\t\t\t\tdata: {\n\t\t\t\t\tscope: \"tasks.board\",\n\t\t\t\t\troot: root ?? null,\n\t\t\t\t\tevent,\n\t\t\t\t\tts: (/* @__PURE__ */ new Date()).toISOString()\n\t\t\t\t},\n\t\t\t\trequestId\n\t\t\t};\n\t\t\temitter.sendRaw(encodeStreamEvent(frame));\n\t\t\tseq += 1;\n\t\t}\n\t\t/**\n\t\t* Derive the board-change signal through the `@cleocode/core` facade: the\n\t\t* latest `updatedAt` + the non-archived task count. CORE-first — the same\n\t\t* projection `/api/tasks` GET reads, never raw SQL.\n\t\t*/\n\t\tasync function probe() {\n\t\t\tconst result = await listTasks({\n\t\t\t\texcludeArchived: true,\n\t\t\t\tlimit: 1e3\n\t\t\t}, projectPath, await getTaskAccessor(projectPath));\n\t\t\tlet latest = \"\";\n\t\t\tfor (const t of result.tasks) {\n\t\t\t\tconst u = t.updatedAt ?? t.createdAt;\n\t\t\t\tif (typeof u === \"string\" && u > latest) latest = u;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tlatest,\n\t\t\t\tcount: result.tasks.length\n\t\t\t};\n\t\t}\n\t\temit(\"connected\");\n\t\tconst interval = setInterval(() => {\n\t\t\tif (emitter.closed) {\n\t\t\t\tclearInterval(interval);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (probing) return;\n\t\t\tprobing = true;\n\t\t\tprobe().then(({ latest, count }) => {\n\t\t\t\tif (emitter.closed) return;\n\t\t\t\tif (lastCount === -1) {\n\t\t\t\t\tlastUpdated = latest;\n\t\t\t\t\tlastCount = count;\n\t\t\t\t\temit(\"heartbeat\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (latest !== lastUpdated || count !== lastCount) {\n\t\t\t\t\tlastUpdated = latest;\n\t\t\t\t\tlastCount = count;\n\t\t\t\t\temit(\"updated\");\n\t\t\t\t} else emit(\"heartbeat\");\n\t\t\t}).catch(() => {}).finally(() => {\n\t\t\t\tprobing = false;\n\t\t\t});\n\t\t}, POLL_INTERVAL_MS);\n\t\treturn () => clearInterval(interval);\n\t}, request.signal);\n\treturn new Response(stream, { headers: { ...SSE_HEADERS } });\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-COJHCgbq.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/nexus/search/_server.ts.js"],"sourcesContent":["import { a as getNexusDb } from \"../../../../../chunks/connections2.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/nexus/search/+server.ts\n/**\n* GET /api/nexus/search?q=xxx\n*\n* Returns up to 20 symbol matches for the given query string.\n* Searches label and id fields with LIKE, preferring exact label matches first.\n*/\nvar GET = ({ url }) => {\n\tconst db = getNexusDb();\n\tif (!db) return json({ error: \"nexus.db not available\" }, { status: 503 });\n\tconst q = url.searchParams.get(\"q\")?.trim() ?? \"\";\n\tif (q.length < 2) return json([]);\n\tconst like = `%${q}%`;\n\treturn json(db.prepare(`SELECT id, label, kind, file_path, community_id\n FROM nexus_nodes\n WHERE label LIKE ? OR id LIKE ?\n ORDER BY\n CASE WHEN label = ? THEN 0\n WHEN label LIKE ? THEN 1\n ELSE 2 END,\n length(label)\n LIMIT 20`).all(like, like, q, `${q}%`).map((row) => ({\n\t\tid: row.id,\n\t\tlabel: row.label,\n\t\tkind: row.kind,\n\t\tfilePath: row.file_path ?? \"\",\n\t\tcommunityId: row.community_id\n\t})));\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK;AACvB,CAAC,MAAM,EAAE,GAAG,UAAU,EAAE;AACxB,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3E,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;AAClD,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;AAClC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;AAC5D,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE;AACZ,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK;AAClB,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI;AAChB,EAAE,QAAQ,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE;AAC/B,EAAE,WAAW,EAAE,GAAG,CAAC;AACnB,EAAE,CAAC,CAAC,CAAC;AACL;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-CShsBkeE.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/brain/chunks/_server.ts.js"],"sourcesContent":["import { t as getAllSubstrates } from \"../../../../../chunks/src.js\";\nimport { t as recordBrainLoadDuration } from \"../../../../../chunks/brain.js\";\n//#region src/routes/api/brain/chunks/+server.ts\n/**\n* Streaming Brain graph chunks endpoint — progressive-disclosure tier 1 and 2.\n*\n* GET /api/brain/chunks\n* → application/x-ndjson (one JSON object per line, newline-delimited)\n*\n* ## Protocol\n*\n* Each chunk is a JSON object on its own line. Two event kinds are emitted:\n*\n* ```\n* {\"kind\":\"chunk\",\"tier\":1,\"nodes\":[...],\"edges\":[...],\"counts\":{...},\"truncated\":false}\n* {\"kind\":\"done\",\"tier\":1,\"totalNodes\":423,\"elapsed\":312}\n* ```\n*\n* The client reads the stream line-by-line, appending nodes/edges to its\n* in-memory graph on each `chunk` event, then marks the tier complete on\n* `done`.\n*\n* ## Query parameters\n*\n* | Param | Default | Notes |\n* |--------------|---------|---------------------------------------------------|\n* | `tier` | `1` | 1 or 2. Tier 0 is served via `/api/brain`. |\n* | `substrates` | all | comma-separated filter |\n* | `min_weight` | `0` | quality/weight threshold |\n*\n* Tier limits are fixed: tier 1 = 1000 nodes, tier 2 = 5000 nodes.\n*\n* ## Client integration\n*\n* Agent E's page calls {@link streamRemainingNodes} (exported from\n* `$lib/server/brain/streaming.ts`) from `onMount` after the tier-0\n* data is in place.\n*\n* @task T990\n*/\n/** Node limits per tier (chunks endpoint handles tier 1 and 2 only). */\nvar TIER_LIMITS = {\n\t1: 1e3,\n\t2: 5e3\n};\n/** Valid substrate identifiers. */\nvar VALID_SUBSTRATES = new Set([\n\t\"brain\",\n\t\"nexus\",\n\t\"tasks\",\n\t\"conduit\",\n\t\"agent-registry\"\n]);\nvar GET = ({ locals, url }) => {\n\tconst t0 = performance.now();\n\tconst tier = Number(url.searchParams.get(\"tier\") ?? \"1\") === 2 ? 2 : 1;\n\tconst substratesParam = url.searchParams.get(\"substrates\");\n\tconst substrates = substratesParam ? substratesParam.split(\",\").map((s) => s.trim()).filter((s) => VALID_SUBSTRATES.has(s)) : void 0;\n\tconst minWeightParam = url.searchParams.get(\"min_weight\");\n\tconst minWeight = minWeightParam !== null ? Math.max(0, parseFloat(minWeightParam)) : 0;\n\tconst limit = TIER_LIMITS[tier];\n\tconst readable = new ReadableStream({ start(controller) {\n\t\ttry {\n\t\t\tconst graph = getAllSubstrates({\n\t\t\t\tlimit,\n\t\t\t\tsubstrates,\n\t\t\t\tminWeight,\n\t\t\t\tprojectCtx: locals.projectCtx\n\t\t\t});\n\t\t\tconst elapsed = performance.now() - t0;\n\t\t\trecordBrainLoadDuration(tier, elapsed);\n\t\t\tconst chunkLine = JSON.stringify({\n\t\t\t\tkind: \"chunk\",\n\t\t\t\ttier,\n\t\t\t\tnodes: graph.nodes,\n\t\t\t\tedges: graph.edges,\n\t\t\t\tcounts: graph.counts,\n\t\t\t\ttruncated: graph.truncated\n\t\t\t});\n\t\t\tcontroller.enqueue(new TextEncoder().encode(chunkLine + \"\\n\"));\n\t\t\tconst doneLine = JSON.stringify({\n\t\t\t\tkind: \"done\",\n\t\t\t\ttier,\n\t\t\t\ttotalNodes: graph.nodes.length,\n\t\t\t\telapsed: Math.round(elapsed)\n\t\t\t});\n\t\t\tcontroller.enqueue(new TextEncoder().encode(doneLine + \"\\n\"));\n\t\t\tconsole.info(`[brain/chunks] tier=${tier} elapsed=${elapsed.toFixed(1)}ms nodes=${graph.nodes.length}`);\n\t\t} catch (err) {\n\t\t\tconst errLine = JSON.stringify({\n\t\t\t\tkind: \"error\",\n\t\t\t\tmessage: String(err)\n\t\t\t});\n\t\t\tcontroller.enqueue(new TextEncoder().encode(errLine + \"\\n\"));\n\t\t} finally {\n\t\t\tcontroller.close();\n\t\t}\n\t} });\n\treturn new Response(readable, { headers: {\n\t\t\"Content-Type\": \"application/x-ndjson\",\n\t\t\"Cache-Control\": \"no-store\",\n\t\t\"Transfer-Encoding\": \"chunked\"\n\t} });\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;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,WAAW,GAAG;AAClB,CAAC,CAAC,EAAE,GAAG;AACP,CAAC,CAAC,EAAE;AACJ,CAAC;AACD;AACA,IAAI,gBAAgB,GAAG,IAAI,GAAG,CAAC;AAC/B,CAAC,OAAO;AACR,CAAC,OAAO;AACR,CAAC,OAAO;AACR,CAAC,SAAS;AACV,CAAC;AACD,CAAC,CAAC;AACC,IAAC,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;AAC/B,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE;AAC7B,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AACvE,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC;AAC3D,CAAC,MAAM,UAAU,GAAG,eAAe,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM;AACrI,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC;AAC1D,CAAC,MAAM,SAAS,GAAG,cAAc,KAAK,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC;AACxF,CAAC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC;AAChC,CAAC,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE;AACzD,EAAE,IAAI;AACN,GAAG,MAAM,KAAK,GAAG,gBAAgB,CAAC;AAClC,IAAI,KAAK;AACT,IAAI,UAAU;AACd,IAAI,SAAS;AACb,IAAI,UAAU,EAAE,MAAM,CAAC;AACvB,IAAI,CAAC;AACL,GAAG,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AACzC,GAAG,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC;AACzC,GAAG,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACpC,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,IAAI;AACR,IAAI,KAAK,EAAE,KAAK,CAAC,KAAK;AACtB,IAAI,KAAK,EAAE,KAAK,CAAC,KAAK;AACtB,IAAI,MAAM,EAAE,KAAK,CAAC,MAAM;AACxB,IAAI,SAAS,EAAE,KAAK,CAAC;AACrB,IAAI,CAAC;AACL,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACjE,GAAG,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;AACnC,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI;AACR,IAAI,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;AAClC,IAAI,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;AAC/B,IAAI,CAAC;AACL,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;AAChE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1G,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,GAAG,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;AAClC,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,MAAM,CAAC,GAAG;AACvB,IAAI,CAAC;AACL,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AAC/D,EAAE,CAAC,SAAS;AACZ,GAAG,UAAU,CAAC,KAAK,EAAE;AACrB,EAAE;AACF,CAAC,CAAC,EAAE,CAAC;AACL,CAAC,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE;AAC1C,EAAE,cAAc,EAAE,sBAAsB;AACxC,EAAE,eAAe,EAAE,UAAU;AAC7B,EAAE,mBAAmB,EAAE;AACvB,EAAE,EAAE,CAAC;AACL;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-CUl-Utkt.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/tasks/events/_server.ts.js"],"sourcesContent":["import { n as createSseStream, t as SSE_HEADERS } from \"../../../../../chunks/http.js\";\nimport { o as getTasksDb } from \"../../../../../chunks/connections2.js\";\n//#region src/routes/api/tasks/events/+server.ts\n/**\n* GET /api/tasks/events — SSE endpoint for real-time task change notifications.\n*\n* Polls tasks.db every 2 seconds and emits 'task-updated' events when\n* the last updated_at timestamp changes.\n*/\n/** Poll interval (ms) for the tasks-events change detector. */\nvar POLL_INTERVAL_MS = 2e3;\nvar GET = ({ locals, request }) => {\n\tconst projectCtx = locals.projectCtx;\n\tconst stream = createSseStream((emitter) => {\n\t\tlet lastUpdated = \"\";\n\t\tlet lastCount = 0;\n\t\t/** Emit one named SSE event (drops after close, never throws). */\n\t\tfunction send(event, data) {\n\t\t\temitter.send({\n\t\t\t\tevent,\n\t\t\t\tdata\n\t\t\t});\n\t\t}\n\t\tsend(\"connected\", { ts: (/* @__PURE__ */ new Date()).toISOString() });\n\t\tconst interval = setInterval(() => {\n\t\t\tif (emitter.closed) {\n\t\t\t\tclearInterval(interval);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst db = getTasksDb(projectCtx);\n\t\t\t\tif (!db) return;\n\t\t\t\tconst row = db.prepare(`SELECT MAX(updated_at) as latest, COUNT(*) as cnt FROM tasks WHERE status != 'archived'`).get();\n\t\t\t\tconst latest = row?.latest ?? \"\";\n\t\t\t\tconst cnt = row?.cnt ?? 0;\n\t\t\t\tif (latest !== lastUpdated || cnt !== lastCount) {\n\t\t\t\t\tlastUpdated = latest;\n\t\t\t\t\tlastCount = cnt;\n\t\t\t\t\tsend(\"task-updated\", {\n\t\t\t\t\t\tts: (/* @__PURE__ */ new Date()).toISOString(),\n\t\t\t\t\t\tlatestChange: latest,\n\t\t\t\t\t\tactiveCount: cnt\n\t\t\t\t\t});\n\t\t\t\t} else send(\"heartbeat\", { ts: (/* @__PURE__ */ new Date()).toISOString() });\n\t\t\t} catch {}\n\t\t}, POLL_INTERVAL_MS);\n\t\treturn () => {\n\t\t\tclearInterval(interval);\n\t\t};\n\t}, request.signal);\n\treturn new Response(stream, { headers: { ...SSE_HEADERS } });\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB,GAAG,GAAG;AACvB,IAAC,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AACnC,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU;AACrC,CAAC,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,OAAO,KAAK;AAC7C,EAAE,IAAI,WAAW,GAAG,EAAE;AACtB,EAAE,IAAI,SAAS,GAAG,CAAC;AACnB;AACA,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;AAC7B,GAAG,OAAO,CAAC,IAAI,CAAC;AAChB,IAAI,KAAK;AACT,IAAI;AACJ,IAAI,CAAC;AACL,EAAE;AACF,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC;AACvE,EAAE,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM;AACrC,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE;AACvB,IAAI,aAAa,CAAC,QAAQ,CAAC;AAC3B,IAAI;AACJ,GAAG;AACH,GAAG,IAAI;AACP,IAAI,MAAM,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC;AACrC,IAAI,IAAI,CAAC,EAAE,EAAE;AACb,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,uFAAuF,CAAC,CAAC,CAAC,GAAG,EAAE;AAC3H,IAAI,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,EAAE;AACpC,IAAI,MAAM,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC;AAC7B,IAAI,IAAI,MAAM,KAAK,WAAW,IAAI,GAAG,KAAK,SAAS,EAAE;AACrD,KAAK,WAAW,GAAG,MAAM;AACzB,KAAK,SAAS,GAAG,GAAG;AACpB,KAAK,IAAI,CAAC,cAAc,EAAE;AAC1B,MAAM,EAAE,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE;AACpD,MAAM,YAAY,EAAE,MAAM;AAC1B,MAAM,WAAW,EAAE;AACnB,MAAM,CAAC;AACP,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC;AAChF,GAAG,CAAC,CAAC,MAAM,CAAC;AACZ,EAAE,CAAC,EAAE,gBAAgB,CAAC;AACtB,EAAE,OAAO,MAAM;AACf,GAAG,aAAa,CAAC,QAAQ,CAAC;AAC1B,EAAE,CAAC;AACH,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;AACnB,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,CAAC;AAC7D;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-CboRJY0Q.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/tasks/_server.ts.js"],"sourcesContent":["import { r as getTaskAccessor } from \"../../../../chunks/data-accessor2.js\";\nimport { p as computeTaskViews } from \"../../../../chunks/tasks.js\";\nimport { t as listTasks } from \"../../../../chunks/list.js\";\nimport { n as addTask } from \"../../../../chunks/add.js\";\nimport { t as computeTaskRollups } from \"../../../../chunks/rollup.js\";\nimport { a as ok, c as requireString, i as isParseError, n as gatewayClient, o as optionalString, r as isGatewayUnreachable, s as parseJsonBody, t as err } from \"../../../../chunks/_dispatch.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/tasks/+server.ts\nvar VALID_STATUS = new Set([\n\t\"pending\",\n\t\"active\",\n\t\"blocked\",\n\t\"done\",\n\t\"cancelled\",\n\t\"archived\",\n\t\"proposed\"\n]);\nvar VALID_PRIORITY = new Set([\n\t\"critical\",\n\t\"high\",\n\t\"medium\",\n\t\"low\"\n]);\nvar VALID_TYPE = new Set([\n\t\"epic\",\n\t\"task\",\n\t\"subtask\"\n]);\n/**\n* Parse a query-string enum value, returning `undefined` when the raw value\n* is missing or not in the allow-list. Single-value form only — the old\n* comma-separated syntax was dropped in T948 because the facade does not\n* support `IN (…)` filters. Clients needing multi-value filtering should\n* issue multiple requests or upgrade to `/tasks/pipeline`.\n*/\nfunction parseEnum(raw, allowed) {\n\tif (raw === null) return void 0;\n\tconst trimmed = raw.trim();\n\tif (trimmed === \"\") return void 0;\n\treturn allowed.has(trimmed) ? trimmed : void 0;\n}\n/**\n* Project a core `Task` row into the legacy snake_case shape so pre-T948\n* consumers of `/api/tasks` keep working. Only the fields the prior raw\n* SELECT returned are surfaced.\n*\n* @remarks\n* `verification_json` and `acceptance_json` are re-serialised from the parsed\n* `Task.verification` / `Task.acceptance` fields so the pipeline UI's\n* `JSON.parse(row.verification_json)` path keeps working post-T948.\n*/\nfunction _toLegacyRow(task) {\n\treturn {\n\t\tid: task.id,\n\t\ttitle: task.title,\n\t\tdescription: task.description ?? null,\n\t\tstatus: task.status,\n\t\tpriority: task.priority,\n\t\ttype: task.type ?? \"task\",\n\t\tparent_id: task.parentId ?? null,\n\t\tpipeline_stage: task.pipelineStage ?? null,\n\t\tsize: task.size ?? null,\n\t\tcreated_at: task.createdAt,\n\t\tupdated_at: task.updatedAt ?? task.createdAt,\n\t\tcompleted_at: task.completedAt ?? null,\n\t\tverification_json: task.verification !== void 0 && task.verification !== null ? JSON.stringify(task.verification) : null,\n\t\tacceptance_json: task.acceptance !== void 0 && task.acceptance.length > 0 ? JSON.stringify(task.acceptance) : null\n\t};\n}\nvar GET = async ({ locals, url }) => {\n\tconst ctx = locals.projectCtx;\n\tif (!ctx.tasksDbExists) return json({ error: \"tasks.db unavailable\" }, { status: 503 });\n\tconst status = parseEnum(url.searchParams.get(\"status\"), VALID_STATUS);\n\tconst priority = parseEnum(url.searchParams.get(\"priority\"), VALID_PRIORITY);\n\tconst type = parseEnum(url.searchParams.get(\"type\"), VALID_TYPE);\n\tconst rawLimit = Number(url.searchParams.get(\"limit\") ?? \"200\");\n\tconst limit = Number.isFinite(rawLimit) ? Math.min(Math.max(rawLimit, 1), 1e3) : 200;\n\ttry {\n\t\tconst accessor = await getTaskAccessor(ctx.projectPath);\n\t\tconst tasks = (await listTasks({\n\t\t\tstatus,\n\t\t\tpriority,\n\t\t\ttype,\n\t\t\tlimit,\n\t\t\texcludeArchived: status !== \"archived\",\n\t\t\tsortByPriority: true\n\t\t}, ctx.projectPath, accessor)).tasks;\n\t\tconst ids = tasks.map((t) => t.id);\n\t\tconst [rollups, views] = await Promise.all([computeTaskRollups(ids, accessor), computeTaskViews(ids, accessor)]);\n\t\treturn json({\n\t\t\ttasks: tasks.map(_toLegacyRow),\n\t\t\trollups,\n\t\t\tviews,\n\t\t\ttotal: tasks.length\n\t\t});\n\t} catch (err) {\n\t\treturn json({ error: String(err) }, { status: 500 });\n\t}\n};\nvar VALID_PRIORITY_W = new Set([\n\t\"critical\",\n\t\"high\",\n\t\"medium\",\n\t\"low\"\n]);\n/**\n* POST /api/tasks — create a task through the `/v1` gateway SDK client\n* (gateway-first, in-process core fallback). T11788 · AC1.\n*\n* Body: `{ title, parent?, priority?, acceptance?: string[] }`. `acceptance`\n* is required by the create contract (ADR-066) when reaching the core engine,\n* so an empty/absent list is rejected with a typed `E_VALIDATION`.\n*/\nvar POST = async ({ locals, request }) => {\n\tconst ctx = locals.projectCtx;\n\tif (!ctx.tasksDbExists) return json(err(\"E_DB_UNAVAILABLE\", \"tasks.db unavailable\"), { status: 503 });\n\tconst body = await parseJsonBody(request);\n\tif (isParseError(body)) return json(err(\"E_VALIDATION\", body._parseError), { status: 400 });\n\tconst titleR = requireString(body, \"title\", 500);\n\tif (!titleR.ok) return json(err(\"E_VALIDATION\", titleR.message), { status: 400 });\n\tconst parent = optionalString(body, \"parent\");\n\tconst rawPriority = optionalString(body, \"priority\");\n\tconst priority = rawPriority !== void 0 && VALID_PRIORITY_W.has(rawPriority) ? rawPriority : void 0;\n\tconst rawAcceptance = body.acceptance;\n\tlet acceptance = [];\n\tif (Array.isArray(rawAcceptance)) acceptance = rawAcceptance.filter((a) => typeof a === \"string\" && a.trim() !== \"\");\n\telse if (typeof rawAcceptance === \"string\" && rawAcceptance.trim() !== \"\") acceptance = rawAcceptance.split(/[\\n|]/).map((a) => a.trim()).filter((a) => a !== \"\");\n\tif (acceptance.length === 0) return json(err(\"E_VALIDATION\", \"At least one acceptance criterion is required\"), { status: 400 });\n\tconst addBody = {\n\t\ttitle: titleR.value,\n\t\tacceptance,\n\t\t...parent !== void 0 ? { parent } : {},\n\t\t...priority !== void 0 ? { priority } : {}\n\t};\n\ttry {\n\t\tconst add = gatewayClient().tasks.add;\n\t\tconst envelope = (await add({ body: addBody })).data;\n\t\tif (envelope && envelope.success === false) return json(err(\"E_GATEWAY_REJECTED\", envelope.error?.message ?? \"Create rejected\"), { status: 409 });\n\t\treturn json(ok({\n\t\t\ttaskId: envelope?.data?.created?.[0] ?? envelope?.data?.ids?.[0] ?? \"\",\n\t\t\tvia: \"gateway\"\n\t\t}));\n\t} catch (gatewayErr) {\n\t\tif (!isGatewayUnreachable(gatewayErr)) return json(err(\"E_GATEWAY_ERROR\", gatewayErr instanceof Error ? gatewayErr.message : \"Gateway create failed\"), { status: 502 });\n\t}\n\ttry {\n\t\treturn json(ok({\n\t\t\ttaskId: (await addTask({\n\t\t\t\ttitle: titleR.value,\n\t\t\t\tacceptance,\n\t\t\t\t...parent !== void 0 ? { parentId: parent } : {},\n\t\t\t\t...priority !== void 0 ? { priority } : {}\n\t\t\t}, ctx.projectPath)).task.id,\n\t\t\tvia: \"core\"\n\t\t}));\n\t} catch (coreErr) {\n\t\treturn json(err(\"E_CREATE_FAILED\", coreErr?.message ?? \"Failed to create task\"), { status: 500 });\n\t}\n};\n//#endregion\nexport { GET, POST, _toLegacyRow };\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-CkoJ2HCW.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/memory/decision-store/_server.ts.js"],"sourcesContent":["import { n as getBrainDb } from \"../../../../../chunks/connections2.js\";\nimport { a as optionalString, c as parseJsonBody, l as requireString, n as isParseError, o as optionalStringArray, r as ok, t as err, u as shortId } from \"../../../../../chunks/_lafs.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/memory/decision-store/+server.ts\n/**\n* Memory decision-store write endpoint (T990 Wave 1D).\n*\n* @remarks T9616 follow-up: `storeDecision` from\n* `packages/core/src/memory/decisions.ts` is not yet promoted to the CORE\n* public API (`packages/core/src/memory/public-api.ts`). Once promoted, this\n* handler should be migrated to call `storeDecision` rather than issuing raw\n* SQL. See docs/plans/E-CORE-FIRST-ARCH.md Task 2.\n*\n* POST /api/memory/decision-store\n* body: {\n* decision: string,\n* rationale: string,\n* alternatives?: string[],\n* taskId?: string,\n* contextEpicId?: string,\n* contextPhase?: string\n* }\n* → LAFS envelope { success, data: { id, createdAt } }\n*\n* Inserts a new row into `brain_decisions`. Alternatives are stored as\n* a JSON-encoded TEXT column when the column is present; if the schema\n* pre-dates that addition the field is silently ignored.\n*\n* @task T990\n* @wave 1D\n*/\n/** Best-effort alternatives column detection. */\nfunction hasAlternativesColumn(db) {\n\tif (!db) return false;\n\ttry {\n\t\treturn db.prepare(\"PRAGMA table_info(brain_decisions)\").all().some((r) => r.name === \"alternatives\");\n\t} catch {\n\t\treturn false;\n\t}\n}\nvar POST = async ({ locals, request }) => {\n\tconst body = await parseJsonBody(request);\n\tif (isParseError(body)) return json(err(\"E_VALIDATION\", body._parseError), { status: 400 });\n\tconst decisionR = requireString(body, \"decision\", 2e3);\n\tif (!decisionR.ok) return json(err(\"E_VALIDATION\", decisionR.message), { status: 400 });\n\tconst rationaleR = requireString(body, \"rationale\", 1e4);\n\tif (!rationaleR.ok) return json(err(\"E_VALIDATION\", rationaleR.message), { status: 400 });\n\tconst alternatives = optionalStringArray(body, \"alternatives\");\n\tconst taskId = optionalString(body, \"taskId\");\n\tconst contextEpicId = optionalString(body, \"contextEpicId\");\n\tconst contextPhase = optionalString(body, \"contextPhase\");\n\tconst db = getBrainDb(locals.projectCtx);\n\tif (!db) return json(err(\"E_BRAIN_UNAVAILABLE\", \"brain.db is unavailable for this project\"), { status: 503 });\n\ttry {\n\t\tconst id = `D-${shortId()}`;\n\t\tconst createdAt = (/* @__PURE__ */ new Date()).toISOString();\n\t\tconst confidence = \"medium\";\n\t\tconst altsJson = alternatives ? JSON.stringify(alternatives) : null;\n\t\tif (hasAlternativesColumn(db)) db.prepare(`INSERT INTO brain_decisions\n (id, type, decision, rationale, confidence, alternatives,\n context_epic_id, context_task_id, context_phase,\n memory_tier, verified, prune_candidate, created_at)\n VALUES (?, 'owner', ?, ?, ?, ?,\n ?, ?, ?,\n 'short', 0, 0, ?)`).run(id, decisionR.value, rationaleR.value, confidence, altsJson, contextEpicId ?? null, taskId ?? null, contextPhase ?? null, createdAt);\n\t\telse db.prepare(`INSERT INTO brain_decisions\n (id, type, decision, rationale, confidence,\n context_epic_id, context_task_id, context_phase,\n memory_tier, verified, prune_candidate, created_at)\n VALUES (?, 'owner', ?, ?, ?,\n ?, ?, ?,\n 'short', 0, 0, ?)`).run(id, decisionR.value, rationaleR.value, confidence, contextEpicId ?? null, taskId ?? null, contextPhase ?? null, createdAt);\n\t\treturn json(ok({\n\t\t\tid,\n\t\t\tcreatedAt\n\t\t}));\n\t} catch (e) {\n\t\treturn json(err(\"E_BRAIN_WRITE\", e instanceof Error ? e.message : \"Insert failed\"), { status: 500 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-CpmMp5D8.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/project/clean/_server.ts.js"],"sourcesContent":["import { t as executeCliAction } from \"../../../../../chunks/cli-action.js\";\n//#region src/routes/api/project/clean/+server.ts\n/**\n* POST /api/project/clean\n*\n* Calls `cleo nexus projects clean --json` with optional flags derived from the\n* request body. Always performs a dry-run unless `dryRun: false` is explicitly\n* passed in the body — this prevents accidental data loss.\n*\n* Request body (all optional):\n* {\n* includeTemp?: boolean; — include .temp paths (--include-temp)\n* includeTests?: boolean; — include test/tmp/fixture/scratch/sandbox paths (--include-tests)\n* includeUnhealthy?: boolean; — include unhealthy projects (--unhealthy)\n* includeNeverIndexed?: boolean; — include never-indexed projects (--never-indexed)\n* pattern?: string; — regex filter (--pattern <regex>)\n* dryRun?: boolean; — defaults to true; pass false for real purge\n* }\n*\n* Returns a LAFS envelope or a 4xx with structured error envelope on CLI failure.\n*\n* @task T722\n*/\nvar POST = async ({ request }) => {\n\tlet body = {};\n\ttry {\n\t\tconst raw = await request.json();\n\t\tif (typeof raw === \"object\" && raw !== null) body = raw;\n\t} catch {}\n\tconst dryRun = body.dryRun !== false;\n\tconst args = [\n\t\t\"nexus\",\n\t\t\"projects\",\n\t\t\"clean\",\n\t\t\"--json\"\n\t];\n\tif (dryRun) args.push(\"--dry-run\");\n\telse args.push(\"--yes\");\n\tif (body.includeTemp) args.push(\"--include-temp\");\n\tif (body.includeTests) args.push(\"--include-tests\");\n\tif (body.includeUnhealthy) args.push(\"--unhealthy\");\n\tif (body.includeNeverIndexed) args.push(\"--never-indexed\");\n\tif (typeof body.pattern === \"string\" && body.pattern.trim()) args.push(\"--pattern\", body.pattern.trim());\n\treturn executeCliAction(args, {\n\t\terrorCode: \"E_CLEAN_FAILED\",\n\t\tmeta: {\n\t\t\tdryRun,\n\t\t\tincludeTemp: body.includeTemp,\n\t\t\tincludeTests: body.includeTests\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AAClC,CAAC,IAAI,IAAI,GAAG,EAAE;AACd,CAAC,IAAI;AACL,EAAE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AAClC,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,IAAI,GAAG,GAAG;AACzD,CAAC,CAAC,CAAC,MAAM,CAAC;AACV,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,KAAK;AACrC,CAAC,MAAM,IAAI,GAAG;AACd,EAAE,OAAO;AACT,EAAE,UAAU;AACZ,EAAE,OAAO;AACT,EAAE;AACF,EAAE;AACF,CAAC,IAAI,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AACxB,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAClD,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACpD,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AACpD,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;AAC3D,CAAC,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACzG,CAAC,OAAO,gBAAgB,CAAC,IAAI,EAAE;AAC/B,EAAE,SAAS,EAAE,gBAAgB;AAC7B,EAAE,IAAI,EAAE;AACR,GAAG,MAAM;AACT,GAAG,WAAW,EAAE,IAAI,CAAC,WAAW;AAChC,GAAG,YAAY,EAAE,IAAI,CAAC;AACtB;AACA,EAAE,CAAC;AACH;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-Cq60m8Pw.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/project/doctor/_server.ts.js"],"sourcesContent":["import { n as recordAudit } from \"../../../../../chunks/audit-log.js\";\nimport { t as executeCliAction } from \"../../../../../chunks/cli-action.js\";\n//#region src/routes/api/project/doctor/+server.ts\n/**\n* POST /api/project/doctor\n*\n* Runs `cleo nexus doctor --json` for the active project context and\n* optionally a specific project id (query string `?id=` or body\n* `{ projectId }`). Returns the raw diagnostics envelope from the CLI.\n*\n* The endpoint is read-only from a data perspective (it does not\n* mutate rows), but we treat it as a POST because it is a long-running\n* shell-out that the operator intentionally triggers. Same-origin guard\n* still applies via `hooks.server.ts`.\n*\n* @task T990\n* @wave 1E\n*/\nvar POST = async ({ request, locals }) => {\n\tlet body = {};\n\ttry {\n\t\tconst raw = await request.json();\n\t\tif (raw && typeof raw === \"object\") body = raw;\n\t} catch {}\n\tconst args = [\n\t\t\"nexus\",\n\t\t\"doctor\",\n\t\t\"--json\"\n\t];\n\tif (typeof body.projectId === \"string\" && body.projectId.trim()) args.push(\"--project\", body.projectId.trim());\n\telse if (typeof body.path === \"string\" && body.path.trim()) args.push(\"--path\", body.path.trim());\n\trecordAudit(locals.projectCtx.projectPath, {\n\t\tactor: \"studio-admin\",\n\t\taction: \"project.doctor\",\n\t\ttarget: body.projectId ?? body.path ?? locals.projectCtx.projectId ?? null,\n\t\tresult: \"initiated\"\n\t});\n\tconst response = await executeCliAction(args, {\n\t\terrorCode: \"E_DOCTOR_FAILED\",\n\t\tmeta: {\n\t\t\tprojectId: body.projectId,\n\t\t\tpath: body.path\n\t\t}\n\t});\n\trecordAudit(locals.projectCtx.projectPath, {\n\t\tactor: \"studio-admin\",\n\t\taction: \"project.doctor\",\n\t\ttarget: body.projectId ?? body.path ?? locals.projectCtx.projectId ?? null,\n\t\tresult: response.status === 200 ? \"success\" : \"failure\"\n\t});\n\treturn response;\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;AAC1C,CAAC,IAAI,IAAI,GAAG,EAAE;AACd,CAAC,IAAI;AACL,EAAE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AAClC,EAAE,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,IAAI,GAAG,GAAG;AAChD,CAAC,CAAC,CAAC,MAAM,CAAC;AACV,CAAC,MAAM,IAAI,GAAG;AACd,EAAE,OAAO;AACT,EAAE,QAAQ;AACV,EAAE;AACF,EAAE;AACF,CAAC,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AAC/G,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAClG,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE;AAC5C,EAAE,KAAK,EAAE,cAAc;AACvB,EAAE,MAAM,EAAE,gBAAgB;AAC1B,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,IAAI,IAAI;AAC5E,EAAE,MAAM,EAAE;AACV,EAAE,CAAC;AACH,CAAC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE;AAC/C,EAAE,SAAS,EAAE,iBAAiB;AAC9B,EAAE,IAAI,EAAE;AACR,GAAG,SAAS,EAAE,IAAI,CAAC,SAAS;AAC5B,GAAG,IAAI,EAAE,IAAI,CAAC;AACd;AACA,EAAE,CAAC;AACH,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE;AAC5C,EAAE,KAAK,EAAE,cAAc;AACvB,EAAE,MAAM,EAAE,gBAAgB;AAC1B,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,IAAI,IAAI;AAC5E,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,KAAK,GAAG,GAAG,SAAS,GAAG;AAChD,EAAE,CAAC;AACH,CAAC,OAAO,QAAQ;AAChB;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-Cz0zgaUV.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/project/audit/_server.ts.js"],"sourcesContent":["import { t as readAuditLog } from \"../../../../../chunks/audit-log.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/project/audit/+server.ts\n/**\n* GET /api/project/audit\n*\n* Returns the trailing N audit entries from\n* `<projectPath>/.cleo/audit/studio-actions.jsonl` (newest first).\n*\n* Query string:\n* - `limit` — max entries to return (default 50, cap 500).\n*\n* @task T990\n* @wave 1E\n*/\nvar GET = ({ url, locals }) => {\n\tconst raw = url.searchParams.get(\"limit\");\n\tlet limit = 50;\n\tif (raw) {\n\t\tconst parsed = Number.parseInt(raw, 10);\n\t\tif (Number.isFinite(parsed) && parsed > 0) limit = Math.min(parsed, 500);\n\t}\n\treturn json({\n\t\tsuccess: true,\n\t\tdata: {\n\t\t\tentries: readAuditLog(locals.projectCtx.projectPath, limit),\n\t\t\tprojectPath: locals.projectCtx.projectPath\n\t\t}\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK;AAC/B,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;AAC1C,CAAC,IAAI,KAAK,GAAG,EAAE;AACf,CAAC,IAAI,GAAG,EAAE;AACV,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC;AACzC,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;AAC1E,CAAC;AACD,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,IAAI,EAAE;AACR,GAAG,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC;AAC9D,GAAG,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;AAClC;AACA,EAAE,CAAC;AACH;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-D0GAFJRb.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/memory/observations/_server.ts.js"],"sourcesContent":["import \"../../../../../chunks/dist4.js\";\nimport { o as getObservations } from \"../../../../../chunks/memory.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/memory/observations/+server.ts\n/**\n* Memory observations API endpoint.\n* GET /api/memory/observations?tier=short&type=episodic&min_quality=0.5\n*\n* Delegates to `@cleocode/core` public memory API (T9615/T9616).\n* Zero raw SQL in this handler.\n*\n* @remarks\n* The CORE `getObservations` result fields use camelCase; this route\n* maps them back to snake_case for backward compatibility with Studio UI.\n*/\nvar GET = async ({ locals, url }) => {\n\tconst tier = url.searchParams.get(\"tier\") ?? void 0;\n\tconst type = url.searchParams.get(\"type\") ?? void 0;\n\tconst minQualityRaw = url.searchParams.get(\"min_quality\");\n\tconst minQuality = minQualityRaw !== null ? (() => {\n\t\tconst q = parseFloat(minQualityRaw);\n\t\treturn Number.isNaN(q) ? void 0 : q;\n\t})() : void 0;\n\ttry {\n\t\tconst result = await getObservations({\n\t\t\ttier,\n\t\t\ttype,\n\t\t\tminQuality,\n\t\t\tlimit: 200,\n\t\t\tprojectPath: locals.projectCtx.projectPath\n\t\t});\n\t\treturn json({\n\t\t\tobservations: result.observations.map((o) => ({\n\t\t\t\tid: o.id,\n\t\t\t\ttype: o.type,\n\t\t\t\ttitle: o.title,\n\t\t\t\tsubtitle: o.subtitle,\n\t\t\t\tnarrative: o.narrative,\n\t\t\t\tproject: o.project,\n\t\t\t\tquality_score: o.qualityScore,\n\t\t\t\tmemory_tier: o.memoryTier,\n\t\t\t\tmemory_type: o.memoryType,\n\t\t\t\tverified: o.verified,\n\t\t\t\tvalid_at: o.validAt,\n\t\t\t\tinvalid_at: o.invalidAt,\n\t\t\t\tsource_confidence: o.sourceConfidence,\n\t\t\t\tcitation_count: o.citationCount,\n\t\t\t\tprune_candidate: o.pruneCandidate,\n\t\t\t\tcreated_at: o.createdAt\n\t\t\t})),\n\t\t\ttotal: result.total,\n\t\t\tfiltered: result.filtered\n\t\t});\n\t} catch {\n\t\treturn json({\n\t\t\tobservations: [],\n\t\t\ttotal: 0,\n\t\t\tfiltered: 0\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;AACrC,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM;AACpD,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM;AACpD,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC;AAC1D,CAAC,MAAM,UAAU,GAAG,aAAa,KAAK,IAAI,GAAG,CAAC,MAAM;AACpD,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,aAAa,CAAC;AACrC,EAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC;AACrC,CAAC,CAAC,GAAG,GAAG,MAAM;AACd,CAAC,IAAI;AACL,EAAE,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;AACvC,GAAG,IAAI;AACP,GAAG,IAAI;AACP,GAAG,UAAU;AACb,GAAG,KAAK,EAAE,GAAG;AACb,GAAG,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;AAClC,GAAG,CAAC;AACJ,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACjD,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE;AACZ,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI;AAChB,IAAI,KAAK,EAAE,CAAC,CAAC,KAAK;AAClB,IAAI,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACxB,IAAI,SAAS,EAAE,CAAC,CAAC,SAAS;AAC1B,IAAI,OAAO,EAAE,CAAC,CAAC,OAAO;AACtB,IAAI,aAAa,EAAE,CAAC,CAAC,YAAY;AACjC,IAAI,WAAW,EAAE,CAAC,CAAC,UAAU;AAC7B,IAAI,WAAW,EAAE,CAAC,CAAC,UAAU;AAC7B,IAAI,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACxB,IAAI,QAAQ,EAAE,CAAC,CAAC,OAAO;AACvB,IAAI,UAAU,EAAE,CAAC,CAAC,SAAS;AAC3B,IAAI,iBAAiB,EAAE,CAAC,CAAC,gBAAgB;AACzC,IAAI,cAAc,EAAE,CAAC,CAAC,aAAa;AACnC,IAAI,eAAe,EAAE,CAAC,CAAC,cAAc;AACrC,IAAI,UAAU,EAAE,CAAC,CAAC;AAClB,IAAI,CAAC,CAAC;AACN,GAAG,KAAK,EAAE,MAAM,CAAC,KAAK;AACtB,GAAG,QAAQ,EAAE,MAAM,CAAC;AACpB,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,YAAY,EAAE,EAAE;AACnB,GAAG,KAAK,EAAE,CAAC;AACX,GAAG,QAAQ,EAAE;AACb,GAAG,CAAC;AACJ,CAAC;AACD;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-DA6p3pmi.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/memory/graph/_server.ts.js"],"sourcesContent":["import \"../../../../../chunks/dist4.js\";\nimport { a as getMemoryGraph } from \"../../../../../chunks/memory.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/memory/graph/+server.ts\nvar GET = async ({ locals }) => {\n\ttry {\n\t\tconst stats = await getMemoryGraph({ projectPath: locals.projectCtx.projectPath });\n\t\treturn json({\n\t\t\ttotal_nodes: stats.nodeCount,\n\t\t\ttotal_edges: stats.edgeCount,\n\t\t\tedge_type_distribution: stats.edgeTypeDistribution,\n\t\t\taverage_edges_per_node: stats.averageEdgesPerNode\n\t\t});\n\t} catch {\n\t\treturn json({\n\t\t\ttotal_nodes: 0,\n\t\t\ttotal_edges: 0,\n\t\t\tedge_type_distribution: {},\n\t\t\taverage_edges_per_node: 0\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AAChC,CAAC,IAAI;AACL,EAAE,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;AACpF,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,WAAW,EAAE,KAAK,CAAC,SAAS;AAC/B,GAAG,WAAW,EAAE,KAAK,CAAC,SAAS;AAC/B,GAAG,sBAAsB,EAAE,KAAK,CAAC,oBAAoB;AACrD,GAAG,sBAAsB,EAAE,KAAK,CAAC;AACjC,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,WAAW,EAAE,CAAC;AACjB,GAAG,WAAW,EAAE,CAAC;AACjB,GAAG,sBAAsB,EAAE,EAAE;AAC7B,GAAG,sBAAsB,EAAE;AAC3B,GAAG,CAAC;AACJ,CAAC;AACD;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-DRVz9D-J.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/brain/_server.ts.js"],"sourcesContent":["import { t as getAllSubstrates } from \"../../../../chunks/src.js\";\nimport { a as setCachedGraph, i as getCachedGraph, n as buildCacheKey, r as getBrainCacheMetrics, t as recordBrainLoadDuration } from \"../../../../chunks/brain.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/brain/+server.ts\n/**\n* Unified BRAIN super-graph API endpoint — progressive-disclosure edition.\n*\n* GET /api/brain\n* → { nodes: BrainNode[], edges: BrainEdge[], counts, truncated }\n*\n* ## Query parameters\n*\n* | Param | Default | Notes |\n* |--------------|---------|---------------------------------------------------|\n* | `tier` | `0` | 0 = hub nodes only (200); 1 = up to 1000; |\n* | | | 2 = up to 5000. Drives `limit` when omitted. |\n* | `limit` | tier-driven | explicit override; max 5000 |\n* | `substrates` | all | comma-separated: brain,nexus,tasks,conduit,signaldock |\n* | `min_weight` | `0` | quality/weight threshold 0.0–1.0 |\n*\n* ## Progressive-disclosure protocol\n*\n* - Tier 0 is served from the in-memory LRU cache (30-second TTL) when\n* available. Cache key is derived from (projectId, substrates, limit).\n* - Tier 1 and tier 2 always bypass the cache (they are incremental;\n* the cache stores the tier-0 snapshot only).\n* - The page load function already ships tier-0 data in the SvelteKit\n* serialisation envelope; this endpoint is called by the client for\n* tier 1+ only.\n*\n* @see packages/brain/src/types.ts for BrainGraph schema\n* @see src/lib/server/brain/cache.ts for LRU cache implementation\n* @task T990\n*/\n/** Valid substrate identifiers accepted by the query param. */\nvar VALID_SUBSTRATES = new Set([\n\t\"brain\",\n\t\"nexus\",\n\t\"tasks\",\n\t\"conduit\",\n\t\"agent-registry\"\n]);\n/** Node limits per tier. */\nvar TIER_LIMITS = {\n\t0: 200,\n\t1: 1e3,\n\t2: 5e3\n};\n/** Hard cap: never return more than this many nodes regardless of params. */\nvar ABSOLUTE_MAX = 5e3;\nvar GET = ({ locals, url }) => {\n\tconst t0 = performance.now();\n\tconst tierParam = Number(url.searchParams.get(\"tier\") ?? \"0\");\n\tconst tier = tierParam === 0 || tierParam === 1 || tierParam === 2 ? tierParam : 0;\n\tconst limitParam = url.searchParams.get(\"limit\");\n\tconst rawLimit = limitParam !== null ? Number(limitParam) : TIER_LIMITS[tier];\n\tconst limit = Math.min(Math.max(1, Number.isNaN(rawLimit) ? TIER_LIMITS[tier] : rawLimit), ABSOLUTE_MAX);\n\tconst substratesParam = url.searchParams.get(\"substrates\");\n\tconst substrates = substratesParam ? substratesParam.split(\",\").map((s) => s.trim()).filter((s) => VALID_SUBSTRATES.has(s)) : void 0;\n\tconst minWeightParam = url.searchParams.get(\"min_weight\");\n\tconst minWeight = minWeightParam !== null ? Math.max(0, parseFloat(minWeightParam)) : 0;\n\tconst projectId = locals.projectCtx?.projectId ?? \"\";\n\tif (tier === 0) {\n\t\tconst cached = getCachedGraph(buildCacheKey({\n\t\t\tprojectId,\n\t\t\tsubstrates,\n\t\t\tlimit\n\t\t}));\n\t\tif (cached) {\n\t\t\tconst elapsed = performance.now() - t0;\n\t\t\trecordBrainLoadDuration(0, elapsed);\n\t\t\tconst metrics = getBrainCacheMetrics();\n\t\t\tconsole.info(`[brain/api] tier=0 source=cache elapsed=${elapsed.toFixed(1)}ms hits=${metrics.hits} misses=${metrics.misses}`);\n\t\t\treturn json(cached);\n\t\t}\n\t}\n\ttry {\n\t\tconst graph = getAllSubstrates({\n\t\t\tlimit,\n\t\t\tsubstrates,\n\t\t\tminWeight,\n\t\t\tprojectCtx: locals.projectCtx\n\t\t});\n\t\tconst elapsed = performance.now() - t0;\n\t\trecordBrainLoadDuration(tier, elapsed);\n\t\tif (tier === 0) setCachedGraph(buildCacheKey({\n\t\t\tprojectId,\n\t\t\tsubstrates,\n\t\t\tlimit\n\t\t}), graph);\n\t\tconst metrics = getBrainCacheMetrics();\n\t\tconsole.info(`[brain/api] tier=${tier} source=db elapsed=${elapsed.toFixed(1)}ms nodes=${graph.nodes.length} hits=${metrics.hits} misses=${metrics.misses}`);\n\t\treturn json(graph);\n\t} catch (err) {\n\t\treturn json({ error: String(err) }, { status: 500 });\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-DSAv66wD.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/project/_id_/_server.ts.js"],"sourcesContent":["import { t as executeCliAction } from \"../../../../../chunks/cli-action.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/project/[id]/+server.ts\n/**\n* DELETE /api/project/[id]\n*\n* Removes a project from the global nexus.db registry by calling:\n* `cleo nexus projects remove <id> --json`\n*\n* Returns a LAFS envelope on success or a 4xx with structured error envelope on CLI failure.\n*\n* @task T722\n*/\nvar DELETE = async ({ params }) => {\n\tconst projectId = params.id;\n\tif (!projectId?.trim()) return json({\n\t\tsuccess: false,\n\t\terror: {\n\t\t\tcode: \"E_MISSING_ID\",\n\t\t\tmessage: \"Missing project id\"\n\t\t}\n\t}, { status: 400 });\n\treturn executeCliAction([\n\t\t\"nexus\",\n\t\t\"projects\",\n\t\t\"remove\",\n\t\tprojectId,\n\t\t\"--json\"\n\t], {\n\t\terrorCode: \"E_DELETE_FAILED\",\n\t\tmeta: { projectId }\n\t});\n};\n//#endregion\nexport { DELETE };\n"],"names":[],"mappings":";;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AACnC,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE;AAC5B,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,OAAO,IAAI,CAAC;AACrC,EAAE,OAAO,EAAE,KAAK;AAChB,EAAE,KAAK,EAAE;AACT,GAAG,IAAI,EAAE,cAAc;AACvB,GAAG,OAAO,EAAE;AACZ;AACA,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACpB,CAAC,OAAO,gBAAgB,CAAC;AACzB,EAAE,OAAO;AACT,EAAE,UAAU;AACZ,EAAE,QAAQ;AACV,EAAE,SAAS;AACX,EAAE;AACF,EAAE,EAAE;AACJ,EAAE,SAAS,EAAE,iBAAiB;AAC9B,EAAE,IAAI,EAAE,EAAE,SAAS;AACnB,EAAE,CAAC;AACH;;;;"}