@cleocode/core 2026.5.134 → 2026.6.1

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 (557) hide show
  1. package/binaries/README.md +49 -27
  2. package/dist/agents/{agent-registry.d.ts → agent-capacity-tracker.d.ts} +2 -2
  3. package/dist/agents/agent-capacity-tracker.d.ts.map +1 -0
  4. package/dist/agents/{agent-registry.js → agent-capacity-tracker.js} +2 -2
  5. package/dist/agents/agent-capacity-tracker.js.map +1 -0
  6. package/dist/agents/index.d.ts +1 -1
  7. package/dist/agents/index.d.ts.map +1 -1
  8. package/dist/agents/index.js +4 -2
  9. package/dist/agents/index.js.map +1 -1
  10. package/dist/agents/seed-install.d.ts +1 -1
  11. package/dist/agents/seed-install.d.ts.map +1 -1
  12. package/dist/agents/seed-install.js +42 -36
  13. package/dist/agents/seed-install.js.map +1 -1
  14. package/dist/caamp-export.d.ts +18 -0
  15. package/dist/caamp-export.d.ts.map +1 -0
  16. package/dist/caamp-export.js +18 -0
  17. package/dist/caamp-export.js.map +1 -0
  18. package/dist/conduit/http-transport.d.ts +7 -13
  19. package/dist/conduit/http-transport.d.ts.map +1 -1
  20. package/dist/conduit/http-transport.js +12 -59
  21. package/dist/conduit/http-transport.js.map +1 -1
  22. package/dist/conduit/local-transport.d.ts +1 -1
  23. package/dist/conduit/local-transport.d.ts.map +1 -1
  24. package/dist/conduit/local-transport.js +69 -43
  25. package/dist/conduit/local-transport.js.map +1 -1
  26. package/dist/dispatch/mutate-projection.d.ts.map +1 -1
  27. package/dist/dispatch/mutate-projection.js +11 -0
  28. package/dist/dispatch/mutate-projection.js.map +1 -1
  29. package/dist/docs/docs-read-model.d.ts +7 -0
  30. package/dist/docs/docs-read-model.d.ts.map +1 -1
  31. package/dist/docs/docs-read-model.js +5 -0
  32. package/dist/docs/docs-read-model.js.map +1 -1
  33. package/dist/docs/export-document.js +40526 -281
  34. package/dist/docs/export-document.js.map +6 -1
  35. package/dist/docs/supersede.d.ts.map +1 -1
  36. package/dist/docs/supersede.js +12 -7
  37. package/dist/docs/supersede.js.map +1 -1
  38. package/dist/doctor/db-substrate.d.ts.map +1 -1
  39. package/dist/doctor/db-substrate.js +10 -9
  40. package/dist/doctor/db-substrate.js.map +1 -1
  41. package/dist/git-shim-export.d.ts +18 -0
  42. package/dist/git-shim-export.d.ts.map +1 -0
  43. package/dist/git-shim-export.js +18 -0
  44. package/dist/git-shim-export.js.map +1 -0
  45. package/dist/hooks/payload-schemas.d.ts +2 -2
  46. package/dist/init.d.ts.map +1 -1
  47. package/dist/init.js +39 -32
  48. package/dist/init.js.map +1 -1
  49. package/dist/internal.d.ts +11 -3
  50. package/dist/internal.d.ts.map +1 -1
  51. package/dist/internal.js +14 -5
  52. package/dist/internal.js.map +1 -1
  53. package/dist/lafs-export.d.ts +18 -0
  54. package/dist/lafs-export.d.ts.map +1 -0
  55. package/dist/lafs-export.js +18 -0
  56. package/dist/lafs-export.js.map +1 -0
  57. package/dist/lifecycle/effective-stage.js +1 -1
  58. package/dist/lifecycle/index.js +1 -1
  59. package/dist/lifecycle/index.js.map +1 -1
  60. package/dist/lifecycle/rollup.js +1 -1
  61. package/dist/llm/credential-pool.d.ts +17 -0
  62. package/dist/llm/credential-pool.d.ts.map +1 -1
  63. package/dist/llm/credential-pool.js +40 -1
  64. package/dist/llm/credential-pool.js.map +1 -1
  65. package/dist/llm/plugin-facade.d.ts.map +1 -1
  66. package/dist/llm/plugin-facade.js +43392 -354
  67. package/dist/llm/plugin-facade.js.map +6 -1
  68. package/dist/llm/role-executor.d.ts +8 -0
  69. package/dist/llm/role-executor.d.ts.map +1 -1
  70. package/dist/llm/role-executor.js +96 -4
  71. package/dist/llm/role-executor.js.map +1 -1
  72. package/dist/llm/role-resolver.d.ts.map +1 -1
  73. package/dist/llm/role-resolver.js +56 -1
  74. package/dist/llm/role-resolver.js.map +1 -1
  75. package/dist/llm/transports/codex-oauth-headers.d.ts +51 -0
  76. package/dist/llm/transports/codex-oauth-headers.d.ts.map +1 -0
  77. package/dist/llm/transports/codex-oauth-headers.js +89 -0
  78. package/dist/llm/transports/codex-oauth-headers.js.map +1 -0
  79. package/dist/memory/claude-mem-migration.d.ts.map +1 -1
  80. package/dist/memory/claude-mem-migration.js +1 -3
  81. package/dist/memory/claude-mem-migration.js.map +1 -1
  82. package/dist/memory/decisions.d.ts.map +1 -1
  83. package/dist/memory/decisions.js +77 -23
  84. package/dist/memory/decisions.js.map +1 -1
  85. package/dist/memory/graph-memory-bridge.d.ts.map +1 -1
  86. package/dist/memory/graph-memory-bridge.js +12 -6
  87. package/dist/memory/graph-memory-bridge.js.map +1 -1
  88. package/dist/memory/learnings.d.ts +2 -2
  89. package/dist/memory/nexus-plasticity.d.ts +21 -9
  90. package/dist/memory/nexus-plasticity.d.ts.map +1 -1
  91. package/dist/memory/nexus-plasticity.js +44 -22
  92. package/dist/memory/nexus-plasticity.js.map +1 -1
  93. package/dist/memory/patterns.d.ts +2 -2
  94. package/dist/memory/redaction.d.ts +19 -3
  95. package/dist/memory/redaction.d.ts.map +1 -1
  96. package/dist/memory/redaction.js +64 -129
  97. package/dist/memory/redaction.js.map +6 -1
  98. package/dist/metrics/token-service.d.ts +8 -2
  99. package/dist/metrics/token-service.d.ts.map +1 -1
  100. package/dist/metrics/token-service.js +1 -1
  101. package/dist/metrics/token-service.js.map +1 -1
  102. package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
  103. package/dist/nexus/analyze-orchestrator.js +6 -8
  104. package/dist/nexus/analyze-orchestrator.js.map +1 -1
  105. package/dist/nexus/api-extractors/http-extractor.d.ts.map +1 -1
  106. package/dist/nexus/api-extractors/http-extractor.js +3 -3
  107. package/dist/nexus/api-extractors/http-extractor.js.map +1 -1
  108. package/dist/nexus/clusters.d.ts.map +1 -1
  109. package/dist/nexus/clusters.js +3 -2
  110. package/dist/nexus/clusters.js.map +1 -1
  111. package/dist/nexus/context.d.ts.map +1 -1
  112. package/dist/nexus/context.js +10 -16
  113. package/dist/nexus/context.js.map +1 -1
  114. package/dist/nexus/diff.d.ts.map +1 -1
  115. package/dist/nexus/diff.js +6 -4
  116. package/dist/nexus/diff.js.map +1 -1
  117. package/dist/nexus/export.d.ts.map +1 -1
  118. package/dist/nexus/export.js +7 -4
  119. package/dist/nexus/export.js.map +1 -1
  120. package/dist/nexus/flows.d.ts.map +1 -1
  121. package/dist/nexus/flows.js +3 -1
  122. package/dist/nexus/flows.js.map +1 -1
  123. package/dist/nexus/impact.d.ts +1 -1
  124. package/dist/nexus/impact.d.ts.map +1 -1
  125. package/dist/nexus/impact.js +31 -17
  126. package/dist/nexus/impact.js.map +1 -1
  127. package/dist/nexus/living-brain.d.ts.map +1 -1
  128. package/dist/nexus/living-brain.js +27 -15
  129. package/dist/nexus/living-brain.js.map +1 -1
  130. package/dist/nexus/nexus-bridge.d.ts.map +1 -1
  131. package/dist/nexus/nexus-bridge.js +28 -29
  132. package/dist/nexus/nexus-bridge.js.map +1 -1
  133. package/dist/nexus/plasticity-queries.d.ts +4 -2
  134. package/dist/nexus/plasticity-queries.d.ts.map +1 -1
  135. package/dist/nexus/plasticity-queries.js +27 -15
  136. package/dist/nexus/plasticity-queries.js.map +1 -1
  137. package/dist/nexus/query.d.ts.map +1 -1
  138. package/dist/nexus/query.js +6 -2
  139. package/dist/nexus/query.js.map +1 -1
  140. package/dist/nexus/registry.d.ts.map +1 -1
  141. package/dist/nexus/registry.js +65 -30
  142. package/dist/nexus/registry.js.map +1 -1
  143. package/dist/nexus/route-analysis.d.ts +3 -2
  144. package/dist/nexus/route-analysis.d.ts.map +1 -1
  145. package/dist/nexus/route-analysis.js +11 -10
  146. package/dist/nexus/route-analysis.js.map +1 -1
  147. package/dist/nexus/sigil.d.ts.map +1 -1
  148. package/dist/nexus/sigil.js +60 -13
  149. package/dist/nexus/sigil.js.map +1 -1
  150. package/dist/nexus/user-profile.d.ts +2 -1
  151. package/dist/nexus/user-profile.d.ts.map +1 -1
  152. package/dist/nexus/user-profile.js +8 -4
  153. package/dist/nexus/user-profile.js.map +1 -1
  154. package/dist/orchestrate/index.d.ts +1 -1
  155. package/dist/orchestrate/index.d.ts.map +1 -1
  156. package/dist/orchestrate/index.js +1 -1
  157. package/dist/orchestrate/index.js.map +1 -1
  158. package/dist/orchestrate/plan.d.ts +3 -3
  159. package/dist/orchestrate/plan.d.ts.map +1 -1
  160. package/dist/orchestrate/plan.js +7 -7
  161. package/dist/orchestrate/plan.js.map +1 -1
  162. package/dist/orchestrate/spawn-ops.js +2 -2
  163. package/dist/orchestrate/spawn-ops.js.map +1 -1
  164. package/dist/orchestration/classify.d.ts +2 -2
  165. package/dist/orchestration/classify.js +3 -3
  166. package/dist/orchestration/classify.js.map +1 -1
  167. package/dist/orchestration/validate-spawn.d.ts.map +1 -1
  168. package/dist/orchestration/validate-spawn.js +5 -5
  169. package/dist/orchestration/validate-spawn.js.map +1 -1
  170. package/dist/paths-export.d.ts +18 -0
  171. package/dist/paths-export.d.ts.map +1 -0
  172. package/dist/paths-export.js +18 -0
  173. package/dist/paths-export.js.map +1 -0
  174. package/dist/paths.d.ts.map +1 -1
  175. package/dist/paths.js +24 -11
  176. package/dist/paths.js.map +1 -1
  177. package/dist/playbooks/index.d.ts +1 -0
  178. package/dist/playbooks/index.d.ts.map +1 -1
  179. package/dist/playbooks/index.js +4 -0
  180. package/dist/playbooks/index.js.map +1 -1
  181. package/dist/playbooks/skill-node-executor.d.ts +155 -0
  182. package/dist/playbooks/skill-node-executor.d.ts.map +1 -0
  183. package/dist/playbooks/skill-node-executor.js +156 -0
  184. package/dist/playbooks/skill-node-executor.js.map +1 -0
  185. package/dist/repair.d.ts +3 -7
  186. package/dist/repair.d.ts.map +1 -1
  187. package/dist/repair.js +5 -43
  188. package/dist/repair.js.map +1 -1
  189. package/dist/sagas/migrate-containment.js +7 -7
  190. package/dist/sagas/migrate-containment.js.map +1 -1
  191. package/dist/scaffold/ensure-dirs.d.ts +8 -2
  192. package/dist/scaffold/ensure-dirs.d.ts.map +1 -1
  193. package/dist/scaffold/ensure-dirs.js +24 -11
  194. package/dist/scaffold/ensure-dirs.js.map +1 -1
  195. package/dist/scaffold/project-detection.d.ts +5 -1
  196. package/dist/scaffold/project-detection.d.ts.map +1 -1
  197. package/dist/scaffold/project-detection.js +9 -5
  198. package/dist/scaffold/project-detection.js.map +1 -1
  199. package/dist/sentient/hygiene-scan.js +6 -6
  200. package/dist/sentient/hygiene-scan.js.map +1 -1
  201. package/dist/sentient/proposal-dedup.js +2 -2
  202. package/dist/sentient/proposal-rate-limiter.js +1 -1
  203. package/dist/sentient/propose-tick.js +5 -5
  204. package/dist/sentient/propose-tick.js.map +1 -1
  205. package/dist/sentient/stage-drift-tick.js +3 -3
  206. package/dist/sentient/stage-drift-tick.js.map +1 -1
  207. package/dist/sequence/index.d.ts.map +1 -1
  208. package/dist/sequence/index.js +6 -2
  209. package/dist/sequence/index.js.map +1 -1
  210. package/dist/sessions/briefing.d.ts.map +1 -1
  211. package/dist/sessions/briefing.js +18 -4
  212. package/dist/sessions/briefing.js.map +1 -1
  213. package/dist/setup/sections/verification.js +2 -2
  214. package/dist/setup/sections/verification.js.map +1 -1
  215. package/dist/shutdown.d.ts +91 -0
  216. package/dist/shutdown.d.ts.map +1 -0
  217. package/dist/shutdown.js +120 -0
  218. package/dist/shutdown.js.map +1 -0
  219. package/dist/skills/index.d.ts +2 -0
  220. package/dist/skills/index.d.ts.map +1 -1
  221. package/dist/skills/index.js +1 -0
  222. package/dist/skills/index.js.map +1 -1
  223. package/dist/skills/skill-executor-adapter.d.ts +136 -0
  224. package/dist/skills/skill-executor-adapter.d.ts.map +1 -0
  225. package/dist/skills/skill-executor-adapter.js +137 -0
  226. package/dist/skills/skill-executor-adapter.js.map +1 -0
  227. package/dist/skills/usage-recorder.d.ts.map +1 -1
  228. package/dist/skills/usage-recorder.js +30 -0
  229. package/dist/skills/usage-recorder.js.map +1 -1
  230. package/dist/skills-export.d.ts +23 -0
  231. package/dist/skills-export.d.ts.map +1 -0
  232. package/dist/skills-export.js +23 -0
  233. package/dist/skills-export.js.map +1 -0
  234. package/dist/stats/index.d.ts.map +1 -1
  235. package/dist/stats/index.js +8 -3
  236. package/dist/stats/index.js.map +1 -1
  237. package/dist/store/agent-doctor.d.ts +3 -3
  238. package/dist/store/agent-doctor.d.ts.map +1 -1
  239. package/dist/store/agent-doctor.js +18 -13
  240. package/dist/store/agent-doctor.js.map +1 -1
  241. package/dist/store/agent-install.d.ts +6 -5
  242. package/dist/store/agent-install.d.ts.map +1 -1
  243. package/dist/store/agent-install.js +20 -16
  244. package/dist/store/agent-install.js.map +1 -1
  245. package/dist/store/agent-registry-accessor.d.ts +66 -28
  246. package/dist/store/agent-registry-accessor.d.ts.map +1 -1
  247. package/dist/store/agent-registry-accessor.js +248 -167
  248. package/dist/store/agent-registry-accessor.js.map +1 -1
  249. package/dist/store/agent-registry-store.d.ts +242 -0
  250. package/dist/store/agent-registry-store.d.ts.map +1 -0
  251. package/dist/store/agent-registry-store.js +501 -0
  252. package/dist/store/agent-registry-store.js.map +1 -0
  253. package/dist/store/agent-resolver.d.ts +8 -8
  254. package/dist/store/agent-resolver.d.ts.map +1 -1
  255. package/dist/store/agent-resolver.js +19 -17
  256. package/dist/store/agent-resolver.js.map +1 -1
  257. package/dist/store/backup-pack.d.ts.map +1 -1
  258. package/dist/store/backup-pack.js +24 -8
  259. package/dist/store/backup-pack.js.map +1 -1
  260. package/dist/store/conduit-sqlite.d.ts +181 -74
  261. package/dist/store/conduit-sqlite.d.ts.map +1 -1
  262. package/dist/store/conduit-sqlite.js +307 -528
  263. package/dist/store/conduit-sqlite.js.map +1 -1
  264. package/dist/store/cross-db-cleanup.d.ts +5 -5
  265. package/dist/store/cross-db-cleanup.d.ts.map +1 -1
  266. package/dist/store/cross-db-cleanup.js +12 -10
  267. package/dist/store/cross-db-cleanup.js.map +1 -1
  268. package/dist/store/data-accessor.d.ts +4 -4
  269. package/dist/store/data-accessor.js +5 -5
  270. package/dist/store/data-accessor.js.map +1 -1
  271. package/dist/store/data-safety-central.d.ts +83 -1
  272. package/dist/store/data-safety-central.d.ts.map +1 -1
  273. package/dist/store/data-safety-central.js +257 -0
  274. package/dist/store/data-safety-central.js.map +1 -1
  275. package/dist/store/db-helpers.d.ts +8 -2
  276. package/dist/store/db-helpers.d.ts.map +1 -1
  277. package/dist/store/db-helpers.js +6 -2
  278. package/dist/store/db-helpers.js.map +1 -1
  279. package/dist/store/dual-scope-db.d.ts +46 -4
  280. package/dist/store/dual-scope-db.d.ts.map +1 -1
  281. package/dist/store/dual-scope-db.js +103 -9
  282. package/dist/store/dual-scope-db.js.map +1 -1
  283. package/dist/store/exodus/__fixtures__/representative-fixture.d.ts +116 -0
  284. package/dist/store/exodus/__fixtures__/representative-fixture.d.ts.map +1 -0
  285. package/dist/store/exodus/__fixtures__/representative-fixture.js +274 -0
  286. package/dist/store/exodus/__fixtures__/representative-fixture.js.map +1 -0
  287. package/dist/store/exodus/index.d.ts +3 -1
  288. package/dist/store/exodus/index.d.ts.map +1 -1
  289. package/dist/store/exodus/index.js +3 -1
  290. package/dist/store/exodus/index.js.map +1 -1
  291. package/dist/store/exodus/migrate.d.ts +120 -1
  292. package/dist/store/exodus/migrate.d.ts.map +1 -1
  293. package/dist/store/exodus/migrate.js +923 -119
  294. package/dist/store/exodus/migrate.js.map +1 -1
  295. package/dist/store/exodus/on-open.d.ts +189 -0
  296. package/dist/store/exodus/on-open.d.ts.map +1 -0
  297. package/dist/store/exodus/on-open.js +464 -0
  298. package/dist/store/exodus/on-open.js.map +1 -0
  299. package/dist/store/exodus/table-name-map.d.ts +173 -0
  300. package/dist/store/exodus/table-name-map.d.ts.map +1 -0
  301. package/dist/store/exodus/table-name-map.js +660 -0
  302. package/dist/store/exodus/table-name-map.js.map +1 -0
  303. package/dist/store/exodus/verify-migration.d.ts +72 -0
  304. package/dist/store/exodus/verify-migration.d.ts.map +1 -0
  305. package/dist/store/exodus/verify-migration.js +678 -0
  306. package/dist/store/exodus/verify-migration.js.map +1 -0
  307. package/dist/store/exodus/verify.d.ts +32 -8
  308. package/dist/store/exodus/verify.d.ts.map +1 -1
  309. package/dist/store/exodus/verify.js +48 -142
  310. package/dist/store/exodus/verify.js.map +1 -1
  311. package/dist/store/index.d.ts +2 -3
  312. package/dist/store/index.d.ts.map +1 -1
  313. package/dist/store/index.js +2 -3
  314. package/dist/store/index.js.map +1 -1
  315. package/dist/store/memory-accessor.d.ts +31 -0
  316. package/dist/store/memory-accessor.d.ts.map +1 -1
  317. package/dist/store/memory-accessor.js +38 -0
  318. package/dist/store/memory-accessor.js.map +1 -1
  319. package/dist/store/memory-sqlite.d.ts +86 -13
  320. package/dist/store/memory-sqlite.d.ts.map +1 -1
  321. package/dist/store/memory-sqlite.js +326 -528
  322. package/dist/store/memory-sqlite.js.map +1 -1
  323. package/dist/store/migrate-signaldock-to-conduit.d.ts +1 -1
  324. package/dist/store/migrate-signaldock-to-conduit.d.ts.map +1 -1
  325. package/dist/store/migrate-signaldock-to-conduit.js +126 -35
  326. package/dist/store/migrate-signaldock-to-conduit.js.map +1 -1
  327. package/dist/store/migration-manager.d.ts +49 -0
  328. package/dist/store/migration-manager.d.ts.map +1 -1
  329. package/dist/store/migration-manager.js +167 -67
  330. package/dist/store/migration-manager.js.map +1 -1
  331. package/dist/store/migration-sqlite.d.ts +1 -1
  332. package/dist/store/migration-sqlite.d.ts.map +1 -1
  333. package/dist/store/migration-sqlite.js +32 -3
  334. package/dist/store/migration-sqlite.js.map +1 -1
  335. package/dist/store/nexus-sqlite.d.ts +152 -29
  336. package/dist/store/nexus-sqlite.d.ts.map +1 -1
  337. package/dist/store/nexus-sqlite.js +496 -177
  338. package/dist/store/nexus-sqlite.js.map +1 -1
  339. package/dist/store/nexus-validation-schemas.d.ts +32 -32
  340. package/dist/store/open-cleo-db.d.ts +37 -40
  341. package/dist/store/open-cleo-db.d.ts.map +1 -1
  342. package/dist/store/open-cleo-db.js +76 -153
  343. package/dist/store/open-cleo-db.js.map +1 -1
  344. package/dist/store/role-accessors-impl.d.ts +4 -4
  345. package/dist/store/role-accessors-impl.d.ts.map +1 -1
  346. package/dist/store/role-accessors-impl.js +18 -15
  347. package/dist/store/role-accessors-impl.js.map +1 -1
  348. package/dist/store/schema/{signaldock-schema.d.ts → agent-registry-schema.d.ts} +15 -5
  349. package/dist/store/schema/agent-registry-schema.d.ts.map +1 -0
  350. package/dist/store/schema/{signaldock-schema.js → agent-registry-schema.js} +15 -5
  351. package/dist/store/schema/agent-registry-schema.js.map +1 -0
  352. package/dist/store/schema/agent-schema.d.ts +1 -1
  353. package/dist/store/schema/agent-schema.js +4 -4
  354. package/dist/store/schema/agent-schema.js.map +1 -1
  355. package/dist/store/schema/attachments.d.ts +1 -1
  356. package/dist/store/schema/audit.d.ts +15 -5
  357. package/dist/store/schema/audit.d.ts.map +1 -1
  358. package/dist/store/schema/audit.js +12 -2
  359. package/dist/store/schema/audit.js.map +1 -1
  360. package/dist/store/schema/background-jobs.d.ts +1 -1
  361. package/dist/store/schema/cleo-global/{signaldock.d.ts → agent-registry.d.ts} +277 -271
  362. package/dist/store/schema/cleo-global/agent-registry.d.ts.map +1 -0
  363. package/dist/store/schema/cleo-global/{signaldock.js → agent-registry.js} +136 -125
  364. package/dist/store/schema/cleo-global/agent-registry.js.map +1 -0
  365. package/dist/store/schema/cleo-global/index.d.ts +29 -22
  366. package/dist/store/schema/cleo-global/index.d.ts.map +1 -1
  367. package/dist/store/schema/cleo-global/index.js +29 -22
  368. package/dist/store/schema/cleo-global/index.js.map +1 -1
  369. package/dist/store/schema/cleo-global/nexus.d.ts +36 -1034
  370. package/dist/store/schema/cleo-global/nexus.d.ts.map +1 -1
  371. package/dist/store/schema/cleo-global/nexus.js +32 -337
  372. package/dist/store/schema/cleo-global/nexus.js.map +1 -1
  373. package/dist/store/schema/cleo-global/skills.d.ts +16 -0
  374. package/dist/store/schema/cleo-global/skills.d.ts.map +1 -1
  375. package/dist/store/schema/cleo-global/skills.js +11 -0
  376. package/dist/store/schema/cleo-global/skills.js.map +1 -1
  377. package/dist/store/schema/{cleo-project → cleo-global}/telemetry.d.ts +33 -17
  378. package/dist/store/schema/cleo-global/telemetry.d.ts.map +1 -0
  379. package/dist/store/schema/{cleo-project → cleo-global}/telemetry.js +30 -18
  380. package/dist/store/schema/cleo-global/telemetry.js.map +1 -0
  381. package/dist/store/schema/cleo-project/audit.d.ts +8 -8
  382. package/dist/store/schema/cleo-project/audit.d.ts.map +1 -1
  383. package/dist/store/schema/cleo-project/audit.js +2 -6
  384. package/dist/store/schema/cleo-project/audit.js.map +1 -1
  385. package/dist/store/schema/cleo-project/docs.d.ts +1 -1
  386. package/dist/store/schema/cleo-project/index.d.ts +29 -12
  387. package/dist/store/schema/cleo-project/index.d.ts.map +1 -1
  388. package/dist/store/schema/cleo-project/index.js +29 -12
  389. package/dist/store/schema/cleo-project/index.js.map +1 -1
  390. package/dist/store/schema/cleo-project/lifecycle.d.ts +2 -2
  391. package/dist/store/schema/cleo-project/nexus-graph.d.ts +1067 -0
  392. package/dist/store/schema/cleo-project/nexus-graph.d.ts.map +1 -0
  393. package/dist/store/schema/cleo-project/nexus-graph.js +407 -0
  394. package/dist/store/schema/cleo-project/nexus-graph.js.map +1 -0
  395. package/dist/store/schema/cleo-project/provenance-orphans.d.ts +385 -0
  396. package/dist/store/schema/cleo-project/provenance-orphans.d.ts.map +1 -0
  397. package/dist/store/schema/cleo-project/provenance-orphans.js +142 -0
  398. package/dist/store/schema/cleo-project/provenance-orphans.js.map +1 -0
  399. package/dist/store/schema/cleo-project/provenance-rest.d.ts +1 -1
  400. package/dist/store/schema/cleo-project/runtime.d.ts +1 -1
  401. package/dist/store/schema/cleo-project/tasks-core-batch2.d.ts +1 -1
  402. package/dist/store/schema/cleo-project/tasks-core.d.ts +3 -3
  403. package/dist/store/schema/cleo-shared/brain.d.ts +711 -494
  404. package/dist/store/schema/cleo-shared/brain.d.ts.map +1 -1
  405. package/dist/store/schema/cleo-shared/brain.js +215 -134
  406. package/dist/store/schema/cleo-shared/brain.js.map +1 -1
  407. package/dist/store/schema/conduit-schema.d.ts +63 -51
  408. package/dist/store/schema/conduit-schema.d.ts.map +1 -1
  409. package/dist/store/schema/conduit-schema.js +23 -11
  410. package/dist/store/schema/conduit-schema.js.map +1 -1
  411. package/dist/store/schema/goal.d.ts +3 -2
  412. package/dist/store/schema/goal.d.ts.map +1 -1
  413. package/dist/store/schema/goal.js +3 -2
  414. package/dist/store/schema/goal.js.map +1 -1
  415. package/dist/store/schema/index.d.ts +1 -0
  416. package/dist/store/schema/index.d.ts.map +1 -1
  417. package/dist/store/schema/index.js +1 -0
  418. package/dist/store/schema/index.js.map +1 -1
  419. package/dist/store/schema/lifecycle.d.ts +2 -2
  420. package/dist/store/schema/memory-schema.d.ts +2 -2
  421. package/dist/store/schema/nexus-schema.d.ts +174 -115
  422. package/dist/store/schema/nexus-schema.d.ts.map +1 -1
  423. package/dist/store/schema/nexus-schema.js +175 -55
  424. package/dist/store/schema/nexus-schema.js.map +1 -1
  425. package/dist/store/schema/provenance/releases.d.ts +1 -1
  426. package/dist/store/schema/schema-utils.d.ts +78 -0
  427. package/dist/store/schema/schema-utils.d.ts.map +1 -0
  428. package/dist/store/schema/schema-utils.js +49 -0
  429. package/dist/store/schema/schema-utils.js.map +1 -0
  430. package/dist/store/schema/skills-schema.d.ts +81 -44
  431. package/dist/store/schema/skills-schema.d.ts.map +1 -1
  432. package/dist/store/schema/skills-schema.js +49 -16
  433. package/dist/store/schema/skills-schema.js.map +1 -1
  434. package/dist/store/schema/tasks.d.ts +3 -3
  435. package/dist/store/skills-db.d.ts +90 -50
  436. package/dist/store/skills-db.d.ts.map +1 -1
  437. package/dist/store/skills-db.js +132 -146
  438. package/dist/store/skills-db.js.map +1 -1
  439. package/dist/store/sqlite-backup.d.ts +2 -2
  440. package/dist/store/sqlite-backup.d.ts.map +1 -1
  441. package/dist/store/sqlite-backup.js +11 -10
  442. package/dist/store/sqlite-backup.js.map +1 -1
  443. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  444. package/dist/store/sqlite-data-accessor.js +25 -18
  445. package/dist/store/sqlite-data-accessor.js.map +1 -1
  446. package/dist/store/sqlite.d.ts +72 -12
  447. package/dist/store/sqlite.d.ts.map +1 -1
  448. package/dist/store/sqlite.js +153 -89
  449. package/dist/store/sqlite.js.map +1 -1
  450. package/dist/store/tasks-schema.d.ts +4 -0
  451. package/dist/store/tasks-schema.d.ts.map +1 -1
  452. package/dist/store/tasks-schema.js +60 -0
  453. package/dist/store/tasks-schema.js.map +1 -1
  454. package/dist/store/tasks-sqlite.d.ts +2 -2
  455. package/dist/store/tasks-sqlite.d.ts.map +1 -1
  456. package/dist/store/tasks-sqlite.js +10 -5
  457. package/dist/store/tasks-sqlite.js.map +1 -1
  458. package/dist/store/umbrella-data-accessor.d.ts +17 -6
  459. package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
  460. package/dist/store/umbrella-data-accessor.js +8 -8
  461. package/dist/store/umbrella-data-accessor.js.map +1 -1
  462. package/dist/store/validation-schemas.d.ts +241 -208
  463. package/dist/store/validation-schemas.d.ts.map +1 -1
  464. package/dist/system/health.d.ts.map +1 -1
  465. package/dist/system/health.js +11 -6
  466. package/dist/system/health.js.map +1 -1
  467. package/dist/system/project-health.d.ts.map +1 -1
  468. package/dist/system/project-health.js +58 -12
  469. package/dist/system/project-health.js.map +1 -1
  470. package/dist/tasks/add.d.ts +8 -0
  471. package/dist/tasks/add.d.ts.map +1 -1
  472. package/dist/tasks/add.js +101 -0
  473. package/dist/tasks/add.js.map +1 -1
  474. package/dist/tasks/cancelled-child-waiver-audit.d.ts +47 -0
  475. package/dist/tasks/cancelled-child-waiver-audit.d.ts.map +1 -0
  476. package/dist/tasks/cancelled-child-waiver-audit.js +34 -0
  477. package/dist/tasks/cancelled-child-waiver-audit.js.map +1 -0
  478. package/dist/tasks/complete.d.ts +22 -2
  479. package/dist/tasks/complete.d.ts.map +1 -1
  480. package/dist/tasks/complete.js +71 -6
  481. package/dist/tasks/complete.js.map +1 -1
  482. package/dist/tasks/compute-task-view.js +1 -1
  483. package/dist/tasks/session-scope.d.ts +5 -0
  484. package/dist/tasks/session-scope.d.ts.map +1 -1
  485. package/dist/tasks/session-scope.js +4 -0
  486. package/dist/tasks/session-scope.js.map +1 -1
  487. package/dist/tools/guard.d.ts +71 -1
  488. package/dist/tools/guard.d.ts.map +1 -1
  489. package/dist/tools/guard.js +73 -1
  490. package/dist/tools/guard.js.map +1 -1
  491. package/dist/tools/index.d.ts +21 -0
  492. package/dist/tools/index.d.ts.map +1 -1
  493. package/dist/tools/index.js +25 -0
  494. package/dist/tools/index.js.map +1 -1
  495. package/dist/upgrade.d.ts.map +1 -1
  496. package/dist/upgrade.js +22 -13
  497. package/dist/upgrade.js.map +1 -1
  498. package/dist/workgraph/containment.js +18 -18
  499. package/dist/workgraph/relations.js +2 -2
  500. package/dist/worktree/list.d.ts +1 -1
  501. package/dist/worktree/list.d.ts.map +1 -1
  502. package/dist/worktree/list.js +19 -21
  503. package/dist/worktree/list.js.map +1 -1
  504. package/dist/worktree-export.d.ts +18 -0
  505. package/dist/worktree-export.d.ts.map +1 -0
  506. package/dist/worktree-export.js +18 -0
  507. package/dist/worktree-export.js.map +1 -0
  508. package/migrations/drizzle-agent-registry/20260412000000_initial-global-agent-registry/migration.sql +29 -0
  509. package/migrations/drizzle-brain/20260601000001_t11522-brain-task-observations/migration.sql +28 -0
  510. package/migrations/drizzle-brain/20260601000002_t11522-inline-only-brain-tables/migration.sql +75 -0
  511. package/migrations/drizzle-cleo-global/20260531000001_t11363-consolidation-cleo-global/migration.sql +49 -144
  512. package/migrations/drizzle-cleo-global/20260531000001_t11363-consolidation-cleo-global/snapshot.json +8 -8
  513. package/migrations/drizzle-cleo-global/20260531000002_t11546-brain-usage-log/migration.sql +16 -0
  514. package/migrations/drizzle-cleo-global/20260601000001_t11544-skills-usage-project-id/migration.sql +12 -0
  515. package/migrations/drizzle-cleo-global/20260602000001_t11622-agent-registry-rename/migration.sql +80 -0
  516. package/migrations/drizzle-cleo-project/20260531000001_t11363-consolidation-cleo-project/migration.sql +26 -167
  517. package/migrations/drizzle-cleo-project/20260531000001_t11363-consolidation-cleo-project/snapshot.json +8 -8
  518. package/migrations/drizzle-cleo-project/20260531000002_t11546-brain-usage-log/migration.sql +21 -0
  519. package/migrations/drizzle-cleo-project/20260601000001_t11549-agent-credentials-brain-release-links/migration.sql +49 -0
  520. package/migrations/drizzle-cleo-project/20260601000002_t11538-project-nexus-graph/migration.sql +140 -0
  521. package/migrations/drizzle-cleo-project/20260602000002_t11649-token-usage-transport-mcp/migration.sql +146 -0
  522. package/migrations/drizzle-conduit/20260601000003_t11523-conduit-inline-schema/migration.sql +82 -0
  523. package/migrations/drizzle-nexus/20260421200001_t1165-baseline-reset/migration.sql +26 -8
  524. package/migrations/drizzle-nexus/20260601000001_t11545-nexus-relation-weights-partition/migration.sql +97 -0
  525. package/package.json +45 -13
  526. package/scripts/install-supervisor-binary.mjs +50 -201
  527. package/scripts/napi-binary-picker.mjs +267 -0
  528. package/dist/agents/agent-registry.d.ts.map +0 -1
  529. package/dist/agents/agent-registry.js.map +0 -1
  530. package/dist/store/data-safety.d.ts +0 -92
  531. package/dist/store/data-safety.d.ts.map +0 -1
  532. package/dist/store/data-safety.js +0 -274
  533. package/dist/store/data-safety.js.map +0 -1
  534. package/dist/store/schema/cleo-global/signaldock.d.ts.map +0 -1
  535. package/dist/store/schema/cleo-global/signaldock.js.map +0 -1
  536. package/dist/store/schema/cleo-project/telemetry.d.ts.map +0 -1
  537. package/dist/store/schema/cleo-project/telemetry.js.map +0 -1
  538. package/dist/store/schema/signaldock-schema.d.ts.map +0 -1
  539. package/dist/store/schema/signaldock-schema.js.map +0 -1
  540. package/dist/store/signaldock-sqlite.d.ts +0 -173
  541. package/dist/store/signaldock-sqlite.d.ts.map +0 -1
  542. package/dist/store/signaldock-sqlite.js +0 -445
  543. package/dist/store/signaldock-sqlite.js.map +0 -1
  544. package/migrations/drizzle-nexus/20260318205558_initial/migration.sql +0 -46
  545. package/migrations/drizzle-nexus/20260412000001_t529-nexus-graph-tables/migration.sql +0 -49
  546. package/migrations/drizzle-nexus/20260415000001_t622-project-registry-paths/migration.sql +0 -12
  547. package/migrations/drizzle-nexus/20260419000001_t998-nexus-plasticity/migration.sql +0 -13
  548. package/migrations/drizzle-nexus/20260423052640_t1077-add-user-profile-table/migration.sql +0 -16
  549. package/migrations/drizzle-nexus/20260423052640_t1077-add-user-profile-table/snapshot.json +0 -1531
  550. package/migrations/drizzle-nexus/20260424140538_t1148-add-sigils-table/migration.sql +0 -13
  551. package/migrations/drizzle-nexus/20260424140538_t1148-add-sigils-table/snapshot.json +0 -1652
  552. package/migrations/drizzle-nexus/20260504000001_t1839-fts5-nexus-symbols/migration.sql +0 -68
  553. package/migrations/drizzle-nexus/20260507135519_t9163-nexus-is-external/migration.sql +0 -20
  554. package/migrations/drizzle-nexus/20260507135519_t9163-nexus-is-external/snapshot.json +0 -1652
  555. package/migrations/drizzle-nexus/20260526222449_t11025-project-id-aliases/migration.sql +0 -16
  556. package/migrations/drizzle-signaldock/20260412000000_initial-global-signaldock/migration.sql +0 -209
  557. package/migrations/drizzle-signaldock/20260412000000_initial-global-signaldock/snapshot.json +0 -2060
@@ -6,15 +6,10 @@ CREATE TABLE `brain_attention` (
6
6
  `scope_kind` text NOT NULL,
7
7
  `scope_id` text NOT NULL,
8
8
  `tags` blob DEFAULT (jsonb('[]')),
9
- `created_at` text DEFAULT (datetime('now')) NOT NULL,
10
- `expires_at` text,
9
+ `created_at` integer DEFAULT (unixepoch() * 1000) NOT NULL,
10
+ `expires_at` integer,
11
11
  `decay_score` real,
12
- `status` text DEFAULT 'open' NOT NULL,
13
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
14
- CHECK ("scope_kind" IN ('agent', 'task', 'epic', 'saga', 'session', 'global')),
15
- CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
16
- CHECK ("expires_at" IS NULL OR "expires_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
17
- CHECK ("status" IN ('open', 'consolidated', 'discarded'))
12
+ `status` text DEFAULT 'open' NOT NULL
18
13
  );
19
14
  --> statement-breakpoint
20
15
  CREATE TABLE `brain_backfill_runs` (
@@ -27,12 +22,7 @@ CREATE TABLE `brain_backfill_runs` (
27
22
  `rollback_snapshot_json` text,
28
23
  `source` text DEFAULT 'unknown' NOT NULL,
29
24
  `target_table` text DEFAULT 'brain_observations' NOT NULL,
30
- `approved_by` text,
31
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
32
- CHECK ("kind" IN ('observation-promotion', 'transcript-ingest', 'graph-backfill', 'noise-sweep-2440', 'custom')),
33
- CHECK ("status" IN ('staged', 'approved', 'rolled-back')),
34
- CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
35
- CHECK ("approved_at" IS NULL OR "approved_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
25
+ `approved_by` text
36
26
  );
37
27
  --> statement-breakpoint
38
28
  CREATE TABLE `brain_consolidation_events` (
@@ -42,10 +32,7 @@ CREATE TABLE `brain_consolidation_events` (
42
32
  `step_results_json` text NOT NULL,
43
33
  `duration_ms` integer,
44
34
  `succeeded` integer DEFAULT true NOT NULL,
45
- `started_at` text DEFAULT (datetime('now')) NOT NULL,
46
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
47
- CHECK ("succeeded" IN (0, 1)),
48
- CHECK ("started_at" IS NULL OR "started_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
35
+ `started_at` text DEFAULT (datetime('now')) NOT NULL
49
36
  );
50
37
  --> statement-breakpoint
51
38
  CREATE TABLE `brain_decisions` (
@@ -81,27 +68,10 @@ CREATE TABLE `brain_decisions` (
81
68
  `superseded_by` text,
82
69
  `confirmation_state` text DEFAULT 'proposed' NOT NULL,
83
70
  `decided_by` text DEFAULT 'agent' NOT NULL,
84
- `validator_run_at` text,
71
+ `validator_run_at` integer,
85
72
  `decision_category` text DEFAULT 'architectural' NOT NULL,
86
73
  CONSTRAINT `fk_brain_decisions_supersedes_brain_decisions_id_fk` FOREIGN KEY (`supersedes`) REFERENCES `brain_decisions`(`id`),
87
- CONSTRAINT `fk_brain_decisions_superseded_by_brain_decisions_id_fk` FOREIGN KEY (`superseded_by`) REFERENCES `brain_decisions`(`id`),
88
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
89
- CHECK ("type" IN ('architecture', 'technical', 'process', 'strategic', 'tactical')),
90
- CHECK ("confidence" IN ('low', 'medium', 'high')),
91
- CHECK ("outcome" IN ('success', 'failure', 'mixed', 'pending')),
92
- CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
93
- CHECK ("updated_at" IS NULL OR "updated_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
94
- CHECK ("memory_tier" IN ('short', 'medium', 'long')),
95
- CHECK ("memory_type" IN ('semantic', 'episodic', 'procedural')),
96
- CHECK ("verified" IN (0, 1)),
97
- CHECK ("valid_at" IS NULL OR "valid_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
98
- CHECK ("invalid_at" IS NULL OR "invalid_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
99
- CHECK ("source_confidence" IN ('owner', 'task-outcome', 'agent', 'speculative')),
100
- CHECK ("tier_promoted_at" IS NULL OR "tier_promoted_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
101
- CHECK ("confirmation_state" IN ('proposed', 'accepted', 'superseded')),
102
- CHECK ("decided_by" IN ('owner', 'council', 'agent')),
103
- CHECK ("validator_run_at" IS NULL OR "validator_run_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
104
- CHECK ("decision_category" IN ('architectural', 'agent_dispatch', 'other'))
74
+ CONSTRAINT `fk_brain_decisions_superseded_by_brain_decisions_id_fk` FOREIGN KEY (`superseded_by`) REFERENCES `brain_decisions`(`id`)
105
75
  );
106
76
  --> statement-breakpoint
107
77
  CREATE TABLE `brain_deriver_queue` (
@@ -115,13 +85,7 @@ CREATE TABLE `brain_deriver_queue` (
115
85
  `error_msg` text,
116
86
  `retry_count` integer DEFAULT 0 NOT NULL,
117
87
  `created_at` text DEFAULT (datetime('now')) NOT NULL,
118
- `completed_at` text,
119
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
120
- CHECK ("item_type" IN ('observation', 'session', 'narrative', 'embedding')),
121
- CHECK ("status" IN ('pending', 'in_progress', 'done', 'failed')),
122
- CHECK ("claimed_at" IS NULL OR "claimed_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
123
- CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
124
- CHECK ("completed_at" IS NULL OR "completed_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
88
+ `completed_at` text
125
89
  );
126
90
  --> statement-breakpoint
127
91
  CREATE TABLE `brain_learnings` (
@@ -147,18 +111,7 @@ CREATE TABLE `brain_learnings` (
147
111
  `content_hash` text,
148
112
  `provenance_class` text DEFAULT 'swept-clean',
149
113
  `peer_id` text DEFAULT 'global' NOT NULL,
150
- `peer_scope` text DEFAULT 'project' NOT NULL,
151
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
152
- CHECK ("actionable" IN (0, 1)),
153
- CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
154
- CHECK ("updated_at" IS NULL OR "updated_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
155
- CHECK ("memory_tier" IN ('short', 'medium', 'long')),
156
- CHECK ("memory_type" IN ('semantic', 'episodic', 'procedural')),
157
- CHECK ("verified" IN (0, 1)),
158
- CHECK ("valid_at" IS NULL OR "valid_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
159
- CHECK ("invalid_at" IS NULL OR "invalid_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
160
- CHECK ("source_confidence" IN ('owner', 'task-outcome', 'agent', 'speculative')),
161
- CHECK ("tier_promoted_at" IS NULL OR "tier_promoted_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
114
+ `peer_scope` text DEFAULT 'project' NOT NULL
162
115
  );
163
116
  --> statement-breakpoint
164
117
  CREATE TABLE `brain_memory_links` (
@@ -167,11 +120,7 @@ CREATE TABLE `brain_memory_links` (
167
120
  `task_id` text NOT NULL,
168
121
  `link_type` text NOT NULL,
169
122
  `created_at` text DEFAULT (datetime('now')) NOT NULL,
170
- CONSTRAINT `brain_memory_links_pk` PRIMARY KEY(`memory_type`, `memory_id`, `task_id`, `link_type`),
171
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
172
- CHECK ("memory_type" IN ('decision', 'pattern', 'learning', 'observation')),
173
- CHECK ("link_type" IN ('produced_by', 'applies_to', 'informed_by', 'contradicts')),
174
- CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
123
+ CONSTRAINT `brain_memory_links_pk` PRIMARY KEY(`memory_type`, `memory_id`, `task_id`, `link_type`)
175
124
  );
176
125
  --> statement-breakpoint
177
126
  CREATE TABLE `brain_memory_trees` (
@@ -181,10 +130,7 @@ CREATE TABLE `brain_memory_trees` (
181
130
  `centroid` text,
182
131
  `parent_id` integer,
183
132
  `created_at` text DEFAULT (datetime('now')) NOT NULL,
184
- `updated_at` text,
185
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
186
- CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
187
- CHECK ("updated_at" IS NULL OR "updated_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
133
+ `updated_at` text
188
134
  );
189
135
  --> statement-breakpoint
190
136
  CREATE TABLE `brain_modulators` (
@@ -195,9 +141,7 @@ CREATE TABLE `brain_modulators` (
195
141
  `source_event_id` text,
196
142
  `session_id` text,
197
143
  `description` text,
198
- `created_at` text DEFAULT (datetime('now')) NOT NULL,
199
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
200
- CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
144
+ `created_at` text DEFAULT (datetime('now')) NOT NULL
201
145
  );
202
146
  --> statement-breakpoint
203
147
  CREATE TABLE `brain_observations` (
@@ -240,20 +184,7 @@ CREATE TABLE `brain_observations` (
240
184
  `origin` text,
241
185
  `validated_at` text,
242
186
  `provenance_chain` text,
243
- `idempotency_key` text CONSTRAINT `uq_brain_observations_idempotency_key` UNIQUE,
244
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
245
- CHECK ("type" IN ('discovery', 'change', 'feature', 'bugfix', 'decision', 'refactor', 'diary', 'session-summary')),
246
- CHECK ("source_type" IN ('agent', 'session-debrief', 'claude-mem', 'manual')),
247
- CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
248
- CHECK ("updated_at" IS NULL OR "updated_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
249
- CHECK ("memory_tier" IN ('short', 'medium', 'long')),
250
- CHECK ("memory_type" IN ('semantic', 'episodic', 'procedural')),
251
- CHECK ("verified" IN (0, 1)),
252
- CHECK ("valid_at" IS NULL OR "valid_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
253
- CHECK ("invalid_at" IS NULL OR "invalid_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
254
- CHECK ("source_confidence" IN ('owner', 'task-outcome', 'agent', 'speculative')),
255
- CHECK ("tier_promoted_at" IS NULL OR "tier_promoted_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
256
- CHECK ("validated_at" IS NULL OR "validated_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
187
+ `idempotency_key` text CONSTRAINT `uq_brain_observations_idempotency_key` UNIQUE
257
188
  );
258
189
  --> statement-breakpoint
259
190
  CREATE TABLE `brain_observations_staging` (
@@ -266,12 +197,7 @@ CREATE TABLE `brain_observations_staging` (
266
197
  `new_invalid_at` text,
267
198
  `new_provenance_class` text,
268
199
  `validation_status` text DEFAULT 'pending' NOT NULL,
269
- `created_at` text DEFAULT (datetime('now')) NOT NULL,
270
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
271
- CHECK ("action" IN ('purge', 'keep', 'reclassify', 'promote')),
272
- CHECK ("new_invalid_at" IS NULL OR "new_invalid_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
273
- CHECK ("validation_status" IN ('pending', 'applied', 'skipped')),
274
- CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
200
+ `created_at` text DEFAULT (datetime('now')) NOT NULL
275
201
  );
276
202
  --> statement-breakpoint
277
203
  CREATE TABLE `brain_page_edges` (
@@ -287,13 +213,7 @@ CREATE TABLE `brain_page_edges` (
287
213
  `last_depressed_at` text,
288
214
  `depression_count` integer DEFAULT 0 NOT NULL,
289
215
  `stability_score` real,
290
- CONSTRAINT `brain_page_edges_pk` PRIMARY KEY(`from_id`, `to_id`, `edge_type`),
291
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
292
- CHECK ("edge_type" IN ('derived_from', 'produced_by', 'informed_by', 'supports', 'contradicts', 'supersedes', 'applies_to', 'documents', 'summarizes', 'part_of', 'references', 'modified_by', 'code_reference', 'affects', 'mentions', 'conduit_mentions_symbol', 'co_retrieved', 'blocks', 'discusses', 'cites', 'embeds', 'touches_code', 'task_touches_symbol')),
293
- CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
294
- CHECK ("last_reinforced_at" IS NULL OR "last_reinforced_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
295
- CHECK ("plasticity_class" IN ('static', 'hebbian', 'stdp')),
296
- CHECK ("last_depressed_at" IS NULL OR "last_depressed_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
216
+ CONSTRAINT `brain_page_edges_pk` PRIMARY KEY(`from_id`, `to_id`, `edge_type`)
297
217
  );
298
218
  --> statement-breakpoint
299
219
  CREATE TABLE `brain_page_nodes` (
@@ -305,12 +225,7 @@ CREATE TABLE `brain_page_nodes` (
305
225
  `last_activity_at` text DEFAULT (datetime('now')) NOT NULL,
306
226
  `metadata_json` text,
307
227
  `created_at` text DEFAULT (datetime('now')) NOT NULL,
308
- `updated_at` text,
309
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
310
- CHECK ("node_type" IN ('decision', 'pattern', 'learning', 'observation', 'sticky', 'task', 'session', 'epic', 'file', 'symbol', 'concept', 'summary', 'msg', 'llmtxt', 'commit')),
311
- CHECK ("last_activity_at" IS NULL OR "last_activity_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
312
- CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
313
- CHECK ("updated_at" IS NULL OR "updated_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
228
+ `updated_at` text
314
229
  );
315
230
  --> statement-breakpoint
316
231
  CREATE TABLE `brain_patterns` (
@@ -341,20 +256,7 @@ CREATE TABLE `brain_patterns` (
341
256
  `peer_id` text DEFAULT 'global' NOT NULL,
342
257
  `peer_scope` text DEFAULT 'project' NOT NULL,
343
258
  `occurrence_count` integer DEFAULT 1 NOT NULL,
344
- `last_seen_at` text,
345
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
346
- CHECK ("type" IN ('workflow', 'blocker', 'success', 'failure', 'optimization')),
347
- CHECK ("impact" IN ('low', 'medium', 'high')),
348
- CHECK ("extracted_at" IS NULL OR "extracted_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
349
- CHECK ("updated_at" IS NULL OR "updated_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
350
- CHECK ("memory_tier" IN ('short', 'medium', 'long')),
351
- CHECK ("memory_type" IN ('semantic', 'episodic', 'procedural')),
352
- CHECK ("verified" IN (0, 1)),
353
- CHECK ("valid_at" IS NULL OR "valid_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
354
- CHECK ("invalid_at" IS NULL OR "invalid_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
355
- CHECK ("source_confidence" IN ('owner', 'task-outcome', 'agent', 'speculative')),
356
- CHECK ("tier_promoted_at" IS NULL OR "tier_promoted_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
357
- CHECK ("last_seen_at" IS NULL OR "last_seen_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
259
+ `last_seen_at` text
358
260
  );
359
261
  --> statement-breakpoint
360
262
  CREATE TABLE `brain_plasticity_events` (
@@ -369,9 +271,7 @@ CREATE TABLE `brain_plasticity_events` (
369
271
  `weight_after` real,
370
272
  `retrieval_log_id` integer,
371
273
  `reward_signal` real,
372
- `delta_t_ms` integer,
373
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
374
- CHECK ("kind" IN ('ltp', 'ltd'))
274
+ `delta_t_ms` integer
375
275
  );
376
276
  --> statement-breakpoint
377
277
  CREATE TABLE `brain_promotion_log` (
@@ -382,9 +282,7 @@ CREATE TABLE `brain_promotion_log` (
382
282
  `score` real NOT NULL,
383
283
  `decided_at` text DEFAULT (datetime('now')) NOT NULL,
384
284
  `decided_by` text DEFAULT 'composite-scorer' NOT NULL,
385
- `rationale_json` text,
386
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
387
- CHECK ("decided_at" IS NULL OR "decided_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
285
+ `rationale_json` text
388
286
  );
389
287
  --> statement-breakpoint
390
288
  CREATE TABLE `brain_retrieval_log` (
@@ -398,9 +296,7 @@ CREATE TABLE `brain_retrieval_log` (
398
296
  `created_at` text DEFAULT (datetime('now')) NOT NULL,
399
297
  `retrieval_order` integer,
400
298
  `delta_ms` integer,
401
- `reward_signal` real,
402
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
403
- CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
299
+ `reward_signal` real
404
300
  );
405
301
  --> statement-breakpoint
406
302
  CREATE TABLE `brain_schema_meta` (
@@ -412,10 +308,8 @@ CREATE TABLE `brain_session_narrative` (
412
308
  `session_id` text PRIMARY KEY,
413
309
  `narrative` text DEFAULT '' NOT NULL,
414
310
  `turn_count` integer DEFAULT 0 NOT NULL,
415
- `last_updated_at` text,
416
- `pivot_count` integer DEFAULT 0 NOT NULL,
417
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
418
- CHECK ("last_updated_at" IS NULL OR "last_updated_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
311
+ `last_updated_at` integer DEFAULT 0 NOT NULL,
312
+ `pivot_count` integer DEFAULT 0 NOT NULL
419
313
  );
420
314
  --> statement-breakpoint
421
315
  CREATE TABLE `brain_sticky_notes` (
@@ -428,13 +322,7 @@ CREATE TABLE `brain_sticky_notes` (
428
322
  `converted_to_json` text,
429
323
  `color` text,
430
324
  `priority` text,
431
- `source_type` text DEFAULT 'sticky-note',
432
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
433
- CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
434
- CHECK ("updated_at" IS NULL OR "updated_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
435
- CHECK ("status" IN ('active', 'converted', 'archived')),
436
- CHECK ("color" IN ('yellow', 'blue', 'green', 'red', 'purple')),
437
- CHECK ("priority" IN ('low', 'medium', 'high'))
325
+ `source_type` text DEFAULT 'sticky-note'
438
326
  );
439
327
  --> statement-breakpoint
440
328
  CREATE TABLE `brain_sticky_tags` (
@@ -453,11 +341,7 @@ CREATE TABLE `brain_transcript_events` (
453
341
  `content` text NOT NULL,
454
342
  `tokens` integer,
455
343
  `redacted_at` text,
456
- `created_at` text DEFAULT (datetime('now')) NOT NULL,
457
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
458
- CHECK ("role" IN ('user', 'assistant', 'system')),
459
- CHECK ("redacted_at" IS NULL OR "redacted_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
460
- CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
344
+ `created_at` text DEFAULT (datetime('now')) NOT NULL
461
345
  );
462
346
  --> statement-breakpoint
463
347
  CREATE TABLE `brain_weight_history` (
@@ -472,9 +356,7 @@ CREATE TABLE `brain_weight_history` (
472
356
  `source_plasticity_event_id` integer,
473
357
  `retrieval_log_id` integer,
474
358
  `reward_signal` real,
475
- `changed_at` text DEFAULT (datetime('now')) NOT NULL,
476
- -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
477
- CHECK ("changed_at" IS NULL OR "changed_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
359
+ `changed_at` text DEFAULT (datetime('now')) NOT NULL
478
360
  );
479
361
  --> statement-breakpoint
480
362
  CREATE TABLE `tasks_adr_relations` (
@@ -1594,24 +1476,6 @@ CREATE TABLE `tasks_task_labels` (
1594
1476
  CONSTRAINT `tasks_task_labels_pk` PRIMARY KEY(`task_id`, `label`)
1595
1477
  );
1596
1478
  --> statement-breakpoint
1597
- CREATE TABLE `telemetry_events` (
1598
- `id` text PRIMARY KEY,
1599
- `anonymous_id` text NOT NULL,
1600
- `domain` text NOT NULL,
1601
- `gateway` text NOT NULL,
1602
- `operation` text NOT NULL,
1603
- `command` text NOT NULL,
1604
- `exit_code` integer DEFAULT 0 NOT NULL,
1605
- `duration_ms` integer NOT NULL,
1606
- `error_code` text,
1607
- `timestamp` text DEFAULT (datetime('now')) NOT NULL
1608
- );
1609
- --> statement-breakpoint
1610
- CREATE TABLE `telemetry_schema_meta` (
1611
- `key` text PRIMARY KEY,
1612
- `value` text NOT NULL
1613
- );
1614
- --> statement-breakpoint
1615
1479
  CREATE INDEX `idx_brain_attention_scope` ON `brain_attention` (`scope_kind`,`scope_id`);--> statement-breakpoint
1616
1480
  CREATE INDEX `idx_brain_attention_session` ON `brain_attention` (`session_id`);--> statement-breakpoint
1617
1481
  CREATE INDEX `idx_brain_attention_status_expires` ON `brain_attention` (`status`,`expires_at`);--> statement-breakpoint
@@ -1908,9 +1772,4 @@ CREATE UNIQUE INDEX `uq_tasks_evidence_ac_bindings_atom_ac_type` ON `tasks_evide
1908
1772
  CREATE INDEX `idx_tasks_evidence_ac_bindings_ac_id` ON `tasks_evidence_ac_bindings` (`ac_id`);--> statement-breakpoint
1909
1773
  CREATE INDEX `idx_tasks_evidence_ac_bindings_evidence_atom_id` ON `tasks_evidence_ac_bindings` (`evidence_atom_id`);--> statement-breakpoint
1910
1774
  CREATE INDEX `idx_tasks_experiments_merged` ON `tasks_experiments` (`merged_at`);--> statement-breakpoint
1911
- CREATE INDEX `idx_tasks_task_labels_label` ON `tasks_task_labels` (`label`);--> statement-breakpoint
1912
- CREATE INDEX `idx_telemetry_command` ON `telemetry_events` (`command`);--> statement-breakpoint
1913
- CREATE INDEX `idx_telemetry_domain` ON `telemetry_events` (`domain`);--> statement-breakpoint
1914
- CREATE INDEX `idx_telemetry_exit_code` ON `telemetry_events` (`exit_code`);--> statement-breakpoint
1915
- CREATE INDEX `idx_telemetry_timestamp` ON `telemetry_events` (`timestamp`);--> statement-breakpoint
1916
- CREATE INDEX `idx_telemetry_duration` ON `telemetry_events` (`duration_ms`);
1775
+ CREATE INDEX `idx_tasks_task_labels_label` ON `tasks_task_labels` (`label`);
@@ -425,17 +425,17 @@
425
425
  "table": "brain_attention"
426
426
  },
427
427
  {
428
- "type": "text",
428
+ "type": "integer",
429
429
  "notNull": true,
430
430
  "autoincrement": false,
431
- "default": "(datetime('now'))",
431
+ "default": "(unixepoch() * 1000)",
432
432
  "generated": null,
433
433
  "name": "created_at",
434
434
  "entityType": "columns",
435
435
  "table": "brain_attention"
436
436
  },
437
437
  {
438
- "type": "text",
438
+ "type": "integer",
439
439
  "notNull": false,
440
440
  "autoincrement": false,
441
441
  "default": null,
@@ -955,7 +955,7 @@
955
955
  "table": "brain_decisions"
956
956
  },
957
957
  {
958
- "type": "text",
958
+ "type": "integer",
959
959
  "notNull": false,
960
960
  "autoincrement": false,
961
961
  "default": null,
@@ -2865,10 +2865,10 @@
2865
2865
  "table": "brain_session_narrative"
2866
2866
  },
2867
2867
  {
2868
- "type": "text",
2869
- "notNull": false,
2868
+ "type": "integer",
2869
+ "notNull": true,
2870
2870
  "autoincrement": false,
2871
- "default": null,
2871
+ "default": 0,
2872
2872
  "generated": null,
2873
2873
  "name": "last_updated_at",
2874
2874
  "entityType": "columns",
@@ -15583,4 +15583,4 @@
15583
15583
  }
15584
15584
  ],
15585
15585
  "renames": []
15586
- }
15586
+ }
@@ -0,0 +1,21 @@
1
+ -- T11546: Add brain_usage_log table to consolidated cleo-project schema.
2
+ --
3
+ -- brain_usage_log is the quality-feedback telemetry table (8471 rows in live
4
+ -- brain.db). It was not included in the T11363 consolidation migration because
5
+ -- it is created by quality-feedback.ts via CREATE TABLE IF NOT EXISTS (not
6
+ -- Drizzle-managed). Adding it here makes exodus migration populate it correctly.
7
+ --
8
+ -- Schema matches quality-feedback.ts ensureUsageLogTable() exactly so the
9
+ -- runtime writer can INSERT against this table without changes.
10
+ CREATE TABLE IF NOT EXISTS `brain_usage_log` (
11
+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
12
+ `entry_id` text NOT NULL,
13
+ `task_id` text,
14
+ `used` integer DEFAULT 0 NOT NULL,
15
+ `outcome` text DEFAULT 'unknown' NOT NULL,
16
+ `created_at` text DEFAULT (datetime('now')) NOT NULL
17
+ );
18
+ --> statement-breakpoint
19
+ CREATE INDEX IF NOT EXISTS `idx_brain_usage_log_entry_id` ON `brain_usage_log` (`entry_id`);
20
+ --> statement-breakpoint
21
+ CREATE INDEX IF NOT EXISTS `idx_brain_usage_log_task_id` ON `brain_usage_log` (`task_id`);
@@ -0,0 +1,49 @@
1
+ -- T11549: Add agent_credentials and brain_release_links to consolidated cleo-project schema.
2
+ --
3
+ -- These tables exist in the legacy brain.db (3 rows agent_credentials, 8 rows
4
+ -- brain_release_links) and need consolidated targets so the exodus migration can
5
+ -- copy all 11 rows to the project-scope cleo.db instead of silently skipping them.
6
+ --
7
+ -- agent_credentials mirrors the legacy `agent_credentials` table from
8
+ -- packages/core/migrations/drizzle-tasks/20260327000000_agent-credentials/migration.sql.
9
+ -- It is prefixed `tasks_agent_credentials` (tasks domain — agent runtime data).
10
+ --
11
+ -- brain_release_links mirrors the legacy `brain_release_links` table from
12
+ -- packages/core/src/store/schema/provenance/releases.ts (brainReleaseLinks).
13
+ -- It is prefixed `tasks_brain_release_links` (tasks provenance domain) to match
14
+ -- the existing tasks_releases parent table.
15
+
16
+ CREATE TABLE IF NOT EXISTS `tasks_agent_credentials` (
17
+ `agent_id` text PRIMARY KEY NOT NULL,
18
+ `display_name` text NOT NULL,
19
+ `api_key_encrypted` text NOT NULL,
20
+ `api_base_url` text NOT NULL DEFAULT 'https://api.signaldock.io',
21
+ `classification` text,
22
+ `privacy_tier` text NOT NULL DEFAULT 'public',
23
+ `capabilities` text NOT NULL DEFAULT '[]',
24
+ `skills` text NOT NULL DEFAULT '[]',
25
+ `transport_config` text NOT NULL DEFAULT '{}',
26
+ `is_active` integer NOT NULL DEFAULT 1,
27
+ `last_used_at` integer,
28
+ `created_at` integer NOT NULL DEFAULT (unixepoch()),
29
+ `updated_at` integer NOT NULL DEFAULT (unixepoch())
30
+ );
31
+ --> statement-breakpoint
32
+ CREATE INDEX IF NOT EXISTS `idx_tasks_agent_cred_active` ON `tasks_agent_credentials` (`is_active`);
33
+ --> statement-breakpoint
34
+ CREATE INDEX IF NOT EXISTS `idx_tasks_agent_cred_last_used` ON `tasks_agent_credentials` (`last_used_at`);
35
+ --> statement-breakpoint
36
+ CREATE TABLE IF NOT EXISTS `tasks_brain_release_links` (
37
+ `brain_entry_id` text,
38
+ `release_id` text NOT NULL,
39
+ `link_type` text NOT NULL CHECK ("link_type" IN ('approved-by', 'documented-in', 'derived-from', 'observed-in')),
40
+ `created_at` text NOT NULL DEFAULT (datetime('now')),
41
+ `created_by` text,
42
+ PRIMARY KEY(`brain_entry_id`, `release_id`, `link_type`)
43
+ );
44
+ --> statement-breakpoint
45
+ CREATE INDEX IF NOT EXISTS `idx_tasks_brain_rel_links_brain_entry_id` ON `tasks_brain_release_links` (`brain_entry_id`);
46
+ --> statement-breakpoint
47
+ CREATE INDEX IF NOT EXISTS `idx_tasks_brain_rel_links_release_id` ON `tasks_brain_release_links` (`release_id`);
48
+ --> statement-breakpoint
49
+ CREATE INDEX IF NOT EXISTS `idx_tasks_brain_rel_links_link_type` ON `tasks_brain_release_links` (`link_type`);
@@ -0,0 +1,140 @@
1
+ -- T11538 + T11545: Define the PROJECT-scope nexus code-graph schema
2
+ -- (ADR-090 — residency step 1 + plasticity partition §5.3).
3
+ --
4
+ -- The four per-project code/knowledge-graph tables (`nexus_nodes`,
5
+ -- `nexus_relations`, `nexus_contracts`, `nexus_code_index`) move from GLOBAL
6
+ -- scope (packages/core/src/store/schema/cleo-global/nexus.ts) into the
7
+ -- consolidated PROJECT-scope cleo.db so `.cleo/cleo.db` is the complete portable
8
+ -- living brain. This migration is the project-side CREATE TABLE half of that
9
+ -- move: it mirrors the global T11363 CREATE blocks for these four tables EXACTLY,
10
+ -- minus the redundant `project_id` column (scope is implicit in the owning
11
+ -- project DB, ADR-090 §2.1) and minus every `idx_*_project*` index that led with
12
+ -- `project_id`.
13
+ --
14
+ -- T11545 (ADR-090 §5.3): the Hebbian plasticity columns (`weight`,
15
+ -- `last_accessed_at`, `co_accessed_count`) are PARTITIONED into the sibling 1:1
16
+ -- `nexus_relation_weights` table (keyed by `relation_id`) rather than living
17
+ -- inline on `nexus_relations`. The consolidated project schema is authored to
18
+ -- its FINAL shape directly here (no inline-then-drop dance — SQLite cannot DROP
19
+ -- a column referenced by a CHECK without a full table rebuild), so this CREATE
20
+ -- omits the three plasticity columns from `nexus_relations` and adds the weights
21
+ -- table below.
22
+ --
23
+ -- CHECK constraints are derived from the schema enum/boolean/timestamp metadata —
24
+ -- byte-identical to scripts/inject-consolidation-checks.mjs (T11363), never
25
+ -- hand-typed — so the consolidated-schema-parity suite (T11364 AC2) stays green.
26
+ --
27
+ -- This is purely additive STEP 1. T11539 removes the global copies and moves the
28
+ -- data; this migration does NOT touch the GLOBAL scope.
29
+
30
+ CREATE TABLE `nexus_nodes` (
31
+ `id` text PRIMARY KEY,
32
+ `kind` text NOT NULL,
33
+ `label` text NOT NULL,
34
+ `name` text,
35
+ `file_path` text,
36
+ `start_line` integer,
37
+ `end_line` integer,
38
+ `language` text,
39
+ `is_exported` integer DEFAULT false NOT NULL,
40
+ `parent_id` text,
41
+ `parameters_json` text,
42
+ `return_type` text,
43
+ `doc_summary` text,
44
+ `community_id` text,
45
+ `meta_json` text,
46
+ `is_external` integer DEFAULT false NOT NULL,
47
+ `indexed_at` text DEFAULT (datetime('now')) NOT NULL,
48
+ -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
49
+ CHECK ("kind" IN ('file', 'folder', 'module', 'namespace', 'function', 'method', 'constructor', 'class', 'interface', 'struct', 'trait', 'impl', 'type_alias', 'enum', 'property', 'constant', 'variable', 'static', 'record', 'delegate', 'macro', 'union', 'typedef', 'annotation', 'template', 'community', 'process', 'route', 'tool', 'section', 'import', 'export', 'type')),
50
+ CHECK ("is_exported" IN (0, 1)),
51
+ CHECK ("is_external" IN (0, 1)),
52
+ CHECK ("indexed_at" IS NULL OR "indexed_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
53
+ );
54
+ --> statement-breakpoint
55
+ CREATE TABLE `nexus_relations` (
56
+ `id` text PRIMARY KEY,
57
+ `source_id` text NOT NULL,
58
+ `target_id` text NOT NULL,
59
+ `type` text NOT NULL,
60
+ `confidence` real NOT NULL,
61
+ `reason` text,
62
+ `step` integer,
63
+ `indexed_at` text DEFAULT (datetime('now')) NOT NULL,
64
+ -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
65
+ CHECK ("type" IN ('contains', 'defines', 'imports', 'accesses', 'calls', 'extends', 'implements', 'method_overrides', 'method_implements', 'has_method', 'has_property', 'member_of', 'step_in_process', 'handles_route', 'fetches', 'handles_tool', 'entry_point_of', 'wraps', 'queries', 'documents', 'applies_to', 'co_changed', 'co_cited_in_task')),
66
+ CHECK ("indexed_at" IS NULL OR "indexed_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
67
+ );
68
+ --> statement-breakpoint
69
+ -- T11545 (ADR-090 §5.3): partitioned Hebbian plasticity weights, 1:1 with
70
+ -- nexus_relations.id. relation_id is PK + intra-scope soft FK to nexus_relations.id.
71
+ CREATE TABLE `nexus_relation_weights` (
72
+ `relation_id` text PRIMARY KEY NOT NULL,
73
+ `weight` real DEFAULT 0 NOT NULL,
74
+ `last_accessed_at` text,
75
+ `co_accessed_count` integer DEFAULT 0 NOT NULL,
76
+ -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
77
+ CHECK ("last_accessed_at" IS NULL OR "last_accessed_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
78
+ );
79
+ --> statement-breakpoint
80
+ CREATE TABLE `nexus_contracts` (
81
+ `contract_id` text PRIMARY KEY,
82
+ `type` text NOT NULL,
83
+ `path` text NOT NULL,
84
+ `method` text,
85
+ `request_schema_json` text DEFAULT '{}' NOT NULL,
86
+ `response_schema_json` text DEFAULT '{}' NOT NULL,
87
+ `source_symbol_id` text,
88
+ `route_node_id` text,
89
+ `confidence` real DEFAULT 1 NOT NULL,
90
+ `description` text,
91
+ `created_at` text DEFAULT (datetime('now')) NOT NULL,
92
+ `updated_at` text DEFAULT (datetime('now')) NOT NULL,
93
+ -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
94
+ CHECK ("type" IN ('http', 'grpc', 'topic')),
95
+ CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
96
+ CHECK ("updated_at" IS NULL OR "updated_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
97
+ );
98
+ --> statement-breakpoint
99
+ CREATE TABLE `nexus_code_index` (
100
+ `id` text PRIMARY KEY,
101
+ `file_path` text NOT NULL,
102
+ `symbol_name` text NOT NULL,
103
+ `kind` text NOT NULL,
104
+ `start_line` integer NOT NULL,
105
+ `end_line` integer NOT NULL,
106
+ `language` text NOT NULL,
107
+ `exported` integer DEFAULT false,
108
+ `parent` text,
109
+ `return_type` text,
110
+ `doc_summary` text,
111
+ `indexed_at` text NOT NULL,
112
+ -- consolidation CHECK constraints (T11363) — derived from schema enum/boolean/timestamp metadata, never hand-typed
113
+ CHECK ("kind" IN ('function', 'method', 'class', 'interface', 'type', 'enum', 'variable', 'constant', 'module', 'import', 'export', 'struct', 'trait', 'impl')),
114
+ CHECK ("exported" IN (0, 1)),
115
+ CHECK ("indexed_at" IS NULL OR "indexed_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
116
+ );
117
+ --> statement-breakpoint
118
+ CREATE INDEX `idx_nexus_nodes_kind` ON `nexus_nodes` (`kind`);--> statement-breakpoint
119
+ CREATE INDEX `idx_nexus_nodes_file` ON `nexus_nodes` (`file_path`);--> statement-breakpoint
120
+ CREATE INDEX `idx_nexus_nodes_name` ON `nexus_nodes` (`name`);--> statement-breakpoint
121
+ CREATE INDEX `idx_nexus_nodes_community` ON `nexus_nodes` (`community_id`);--> statement-breakpoint
122
+ CREATE INDEX `idx_nexus_nodes_parent` ON `nexus_nodes` (`parent_id`);--> statement-breakpoint
123
+ CREATE INDEX `idx_nexus_nodes_exported` ON `nexus_nodes` (`is_exported`);--> statement-breakpoint
124
+ CREATE INDEX `idx_nexus_nodes_is_external` ON `nexus_nodes` (`is_external`);--> statement-breakpoint
125
+ CREATE INDEX `idx_nexus_relations_source` ON `nexus_relations` (`source_id`);--> statement-breakpoint
126
+ CREATE INDEX `idx_nexus_relations_target` ON `nexus_relations` (`target_id`);--> statement-breakpoint
127
+ CREATE INDEX `idx_nexus_relations_type` ON `nexus_relations` (`type`);--> statement-breakpoint
128
+ CREATE INDEX `idx_nexus_relations_source_type` ON `nexus_relations` (`source_id`,`type`);--> statement-breakpoint
129
+ CREATE INDEX `idx_nexus_relations_target_type` ON `nexus_relations` (`target_id`,`type`);--> statement-breakpoint
130
+ CREATE INDEX `idx_nexus_relations_confidence` ON `nexus_relations` (`confidence`);--> statement-breakpoint
131
+ CREATE INDEX `idx_nexus_relation_weights_last_accessed` ON `nexus_relation_weights` (`last_accessed_at`);--> statement-breakpoint
132
+ CREATE INDEX `idx_nexus_relation_weights_weight` ON `nexus_relation_weights` (`weight`);--> statement-breakpoint
133
+ CREATE INDEX `idx_nexus_contracts_type` ON `nexus_contracts` (`type`);--> statement-breakpoint
134
+ CREATE INDEX `idx_nexus_contracts_path` ON `nexus_contracts` (`path`);--> statement-breakpoint
135
+ CREATE INDEX `idx_nexus_contracts_method` ON `nexus_contracts` (`method`);--> statement-breakpoint
136
+ CREATE INDEX `idx_nexus_contracts_source_symbol` ON `nexus_contracts` (`source_symbol_id`);--> statement-breakpoint
137
+ CREATE INDEX `idx_nexus_contracts_created` ON `nexus_contracts` (`created_at`);--> statement-breakpoint
138
+ CREATE INDEX `idx_nexus_code_index_file` ON `nexus_code_index` (`file_path`);--> statement-breakpoint
139
+ CREATE INDEX `idx_nexus_code_index_symbol` ON `nexus_code_index` (`symbol_name`);--> statement-breakpoint
140
+ CREATE INDEX `idx_nexus_code_index_kind` ON `nexus_code_index` (`kind`);