@cleocode/core 2026.4.42 → 2026.4.44

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 (934) hide show
  1. package/dist/conduit/factory.d.ts +10 -5
  2. package/dist/conduit/factory.d.ts.map +1 -1
  3. package/dist/index.js +66 -7
  4. package/dist/index.js.map +3 -3
  5. package/dist/init.d.ts.map +1 -1
  6. package/dist/store/brain-sqlite.d.ts.map +1 -1
  7. package/package.json +13 -8
  8. package/src/conduit/factory.ts +20 -17
  9. package/src/init.ts +14 -0
  10. package/src/store/__tests__/git-checkpoint.test.ts +12 -15
  11. package/src/store/brain-sqlite.ts +7 -0
  12. package/dist/adapters/adapter-registry.js +0 -64
  13. package/dist/adapters/adapter-registry.js.map +0 -1
  14. package/dist/adapters/discovery.js +0 -83
  15. package/dist/adapters/discovery.js.map +0 -1
  16. package/dist/adapters/index.js +0 -9
  17. package/dist/adapters/index.js.map +0 -1
  18. package/dist/adapters/manager.js +0 -260
  19. package/dist/adapters/manager.js.map +0 -1
  20. package/dist/admin/export-tasks.js +0 -171
  21. package/dist/admin/export-tasks.js.map +0 -1
  22. package/dist/admin/export.js +0 -103
  23. package/dist/admin/export.js.map +0 -1
  24. package/dist/admin/help.js +0 -106
  25. package/dist/admin/help.js.map +0 -1
  26. package/dist/admin/import-tasks.js +0 -182
  27. package/dist/admin/import-tasks.js.map +0 -1
  28. package/dist/admin/import.js +0 -129
  29. package/dist/admin/import.js.map +0 -1
  30. package/dist/admin/index.js +0 -13
  31. package/dist/admin/index.js.map +0 -1
  32. package/dist/adrs/find.js +0 -134
  33. package/dist/adrs/find.js.map +0 -1
  34. package/dist/adrs/index.js +0 -15
  35. package/dist/adrs/index.js.map +0 -1
  36. package/dist/adrs/link-pipeline.js +0 -160
  37. package/dist/adrs/link-pipeline.js.map +0 -1
  38. package/dist/adrs/list.js +0 -43
  39. package/dist/adrs/list.js.map +0 -1
  40. package/dist/adrs/parse.js +0 -51
  41. package/dist/adrs/parse.js.map +0 -1
  42. package/dist/adrs/show.js +0 -22
  43. package/dist/adrs/show.js.map +0 -1
  44. package/dist/adrs/sync.js +0 -232
  45. package/dist/adrs/sync.js.map +0 -1
  46. package/dist/adrs/types.js +0 -9
  47. package/dist/adrs/types.js.map +0 -1
  48. package/dist/adrs/validate.js +0 -57
  49. package/dist/adrs/validate.js.map +0 -1
  50. package/dist/agents/agent-registry.js +0 -288
  51. package/dist/agents/agent-registry.js.map +0 -1
  52. package/dist/agents/agent-schema.js +0 -82
  53. package/dist/agents/agent-schema.js.map +0 -1
  54. package/dist/agents/capacity.js +0 -116
  55. package/dist/agents/capacity.js.map +0 -1
  56. package/dist/agents/execution-learning.js +0 -474
  57. package/dist/agents/execution-learning.js.map +0 -1
  58. package/dist/agents/health-monitor.js +0 -217
  59. package/dist/agents/health-monitor.js.map +0 -1
  60. package/dist/agents/index.js +0 -29
  61. package/dist/agents/index.js.map +0 -1
  62. package/dist/agents/registry.js +0 -314
  63. package/dist/agents/registry.js.map +0 -1
  64. package/dist/agents/retry.js +0 -215
  65. package/dist/agents/retry.js.map +0 -1
  66. package/dist/audit-prune.js +0 -94
  67. package/dist/audit-prune.js.map +0 -1
  68. package/dist/audit.js +0 -68
  69. package/dist/audit.js.map +0 -1
  70. package/dist/backfill/index.js +0 -229
  71. package/dist/backfill/index.js.map +0 -1
  72. package/dist/bootstrap.js +0 -435
  73. package/dist/bootstrap.js.map +0 -1
  74. package/dist/caamp/adapter.js +0 -259
  75. package/dist/caamp/adapter.js.map +0 -1
  76. package/dist/caamp/capability-check.js +0 -38
  77. package/dist/caamp/capability-check.js.map +0 -1
  78. package/dist/caamp/index.js +0 -21
  79. package/dist/caamp/index.js.map +0 -1
  80. package/dist/caamp-init.js +0 -16
  81. package/dist/caamp-init.js.map +0 -1
  82. package/dist/cleo.js +0 -322
  83. package/dist/cleo.js.map +0 -1
  84. package/dist/code/index.js +0 -14
  85. package/dist/code/index.js.map +0 -1
  86. package/dist/code/outline.js +0 -165
  87. package/dist/code/outline.js.map +0 -1
  88. package/dist/code/parser.js +0 -420
  89. package/dist/code/parser.js.map +0 -1
  90. package/dist/code/search.js +0 -135
  91. package/dist/code/search.js.map +0 -1
  92. package/dist/code/unfold.js +0 -155
  93. package/dist/code/unfold.js.map +0 -1
  94. package/dist/codebase-map/analyzers/architecture.js +0 -129
  95. package/dist/codebase-map/analyzers/architecture.js.map +0 -1
  96. package/dist/codebase-map/analyzers/concerns.js +0 -122
  97. package/dist/codebase-map/analyzers/concerns.js.map +0 -1
  98. package/dist/codebase-map/analyzers/conventions.js +0 -149
  99. package/dist/codebase-map/analyzers/conventions.js.map +0 -1
  100. package/dist/codebase-map/analyzers/integrations.js +0 -108
  101. package/dist/codebase-map/analyzers/integrations.js.map +0 -1
  102. package/dist/codebase-map/analyzers/stack.js +0 -117
  103. package/dist/codebase-map/analyzers/stack.js.map +0 -1
  104. package/dist/codebase-map/analyzers/structure.js +0 -137
  105. package/dist/codebase-map/analyzers/structure.js.map +0 -1
  106. package/dist/codebase-map/analyzers/testing.js +0 -118
  107. package/dist/codebase-map/analyzers/testing.js.map +0 -1
  108. package/dist/codebase-map/index.js +0 -57
  109. package/dist/codebase-map/index.js.map +0 -1
  110. package/dist/codebase-map/store.js +0 -122
  111. package/dist/codebase-map/store.js.map +0 -1
  112. package/dist/codebase-map/summary.js +0 -152
  113. package/dist/codebase-map/summary.js.map +0 -1
  114. package/dist/compliance/index.js +0 -288
  115. package/dist/compliance/index.js.map +0 -1
  116. package/dist/compliance/protocol-enforcement.js +0 -332
  117. package/dist/compliance/protocol-enforcement.js.map +0 -1
  118. package/dist/compliance/protocol-rules.js +0 -786
  119. package/dist/compliance/protocol-rules.js.map +0 -1
  120. package/dist/compliance/protocol-types.js +0 -79
  121. package/dist/compliance/protocol-types.js.map +0 -1
  122. package/dist/compliance/store.js +0 -53
  123. package/dist/compliance/store.js.map +0 -1
  124. package/dist/conduit/conduit-client.js +0 -107
  125. package/dist/conduit/conduit-client.js.map +0 -1
  126. package/dist/conduit/factory.js +0 -52
  127. package/dist/conduit/factory.js.map +0 -1
  128. package/dist/conduit/http-transport.js +0 -155
  129. package/dist/conduit/http-transport.js.map +0 -1
  130. package/dist/conduit/index.js +0 -15
  131. package/dist/conduit/index.js.map +0 -1
  132. package/dist/conduit/local-transport.js +0 -255
  133. package/dist/conduit/local-transport.js.map +0 -1
  134. package/dist/conduit/sse-transport.js +0 -299
  135. package/dist/conduit/sse-transport.js.map +0 -1
  136. package/dist/config/build-config.js +0 -29
  137. package/dist/config/build-config.js.map +0 -1
  138. package/dist/config.js +0 -407
  139. package/dist/config.js.map +0 -1
  140. package/dist/constants.js +0 -18
  141. package/dist/constants.js.map +0 -1
  142. package/dist/context/index.js +0 -137
  143. package/dist/context/index.js.map +0 -1
  144. package/dist/crypto/credentials.js +0 -219
  145. package/dist/crypto/credentials.js.map +0 -1
  146. package/dist/discovery.js +0 -182
  147. package/dist/discovery.js.map +0 -1
  148. package/dist/engine-result.js +0 -12
  149. package/dist/engine-result.js.map +0 -1
  150. package/dist/error-catalog.js +0 -404
  151. package/dist/error-catalog.js.map +0 -1
  152. package/dist/error-registry.js +0 -393
  153. package/dist/error-registry.js.map +0 -1
  154. package/dist/errors.js +0 -173
  155. package/dist/errors.js.map +0 -1
  156. package/dist/hooks/handlers/agent-hooks.js +0 -106
  157. package/dist/hooks/handlers/agent-hooks.js.map +0 -1
  158. package/dist/hooks/handlers/conduit-hooks.js +0 -229
  159. package/dist/hooks/handlers/conduit-hooks.js.map +0 -1
  160. package/dist/hooks/handlers/context-hooks.js +0 -111
  161. package/dist/hooks/handlers/context-hooks.js.map +0 -1
  162. package/dist/hooks/handlers/error-hooks.js +0 -52
  163. package/dist/hooks/handlers/error-hooks.js.map +0 -1
  164. package/dist/hooks/handlers/file-hooks.js +0 -104
  165. package/dist/hooks/handlers/file-hooks.js.map +0 -1
  166. package/dist/hooks/handlers/handler-helpers.js +0 -61
  167. package/dist/hooks/handlers/handler-helpers.js.map +0 -1
  168. package/dist/hooks/handlers/index.js +0 -37
  169. package/dist/hooks/handlers/index.js.map +0 -1
  170. package/dist/hooks/handlers/intelligence-hooks.js +0 -69
  171. package/dist/hooks/handlers/intelligence-hooks.js.map +0 -1
  172. package/dist/hooks/handlers/memory-bridge-refresh.js +0 -42
  173. package/dist/hooks/handlers/memory-bridge-refresh.js.map +0 -1
  174. package/dist/hooks/handlers/notification-hooks.js +0 -62
  175. package/dist/hooks/handlers/notification-hooks.js.map +0 -1
  176. package/dist/hooks/handlers/session-hooks.js +0 -190
  177. package/dist/hooks/handlers/session-hooks.js.map +0 -1
  178. package/dist/hooks/handlers/task-hooks.js +0 -90
  179. package/dist/hooks/handlers/task-hooks.js.map +0 -1
  180. package/dist/hooks/handlers/watchdog-hooks.js +0 -162
  181. package/dist/hooks/handlers/watchdog-hooks.js.map +0 -1
  182. package/dist/hooks/handlers/work-capture-hooks.js +0 -165
  183. package/dist/hooks/handlers/work-capture-hooks.js.map +0 -1
  184. package/dist/hooks/index.js +0 -13
  185. package/dist/hooks/index.js.map +0 -1
  186. package/dist/hooks/payload-schemas.js +0 -220
  187. package/dist/hooks/payload-schemas.js.map +0 -1
  188. package/dist/hooks/provider-hooks.js +0 -66
  189. package/dist/hooks/provider-hooks.js.map +0 -1
  190. package/dist/hooks/registry.js +0 -229
  191. package/dist/hooks/registry.js.map +0 -1
  192. package/dist/hooks/types.js +0 -66
  193. package/dist/hooks/types.js.map +0 -1
  194. package/dist/hooks.js +0 -136
  195. package/dist/hooks.js.map +0 -1
  196. package/dist/init.js +0 -942
  197. package/dist/init.js.map +0 -1
  198. package/dist/inject/index.js +0 -82
  199. package/dist/inject/index.js.map +0 -1
  200. package/dist/injection.js +0 -377
  201. package/dist/injection.js.map +0 -1
  202. package/dist/intelligence/adaptive-validation.js +0 -497
  203. package/dist/intelligence/adaptive-validation.js.map +0 -1
  204. package/dist/intelligence/impact.js +0 -675
  205. package/dist/intelligence/impact.js.map +0 -1
  206. package/dist/intelligence/index.js +0 -22
  207. package/dist/intelligence/index.js.map +0 -1
  208. package/dist/intelligence/patterns.js +0 -492
  209. package/dist/intelligence/patterns.js.map +0 -1
  210. package/dist/intelligence/prediction.js +0 -499
  211. package/dist/intelligence/prediction.js.map +0 -1
  212. package/dist/intelligence/types.js +0 -13
  213. package/dist/intelligence/types.js.map +0 -1
  214. package/dist/internal.js +0 -324
  215. package/dist/internal.js.map +0 -1
  216. package/dist/issue/create.js +0 -121
  217. package/dist/issue/create.js.map +0 -1
  218. package/dist/issue/diagnostics.js +0 -59
  219. package/dist/issue/diagnostics.js.map +0 -1
  220. package/dist/issue/index.js +0 -10
  221. package/dist/issue/index.js.map +0 -1
  222. package/dist/issue/template-parser.js +0 -267
  223. package/dist/issue/template-parser.js.map +0 -1
  224. package/dist/json-schema-validator.js +0 -76
  225. package/dist/json-schema-validator.js.map +0 -1
  226. package/dist/lib/index.js +0 -11
  227. package/dist/lib/index.js.map +0 -1
  228. package/dist/lib/retry.js +0 -152
  229. package/dist/lib/retry.js.map +0 -1
  230. package/dist/lib/tree-sitter-languages.js +0 -75
  231. package/dist/lib/tree-sitter-languages.js.map +0 -1
  232. package/dist/lifecycle/chain-composition.js +0 -152
  233. package/dist/lifecycle/chain-composition.js.map +0 -1
  234. package/dist/lifecycle/chain-store.js +0 -246
  235. package/dist/lifecycle/chain-store.js.map +0 -1
  236. package/dist/lifecycle/consolidate-rcasd.js +0 -352
  237. package/dist/lifecycle/consolidate-rcasd.js.map +0 -1
  238. package/dist/lifecycle/default-chain.js +0 -176
  239. package/dist/lifecycle/default-chain.js.map +0 -1
  240. package/dist/lifecycle/evidence.js +0 -180
  241. package/dist/lifecycle/evidence.js.map +0 -1
  242. package/dist/lifecycle/frontmatter.js +0 -363
  243. package/dist/lifecycle/frontmatter.js.map +0 -1
  244. package/dist/lifecycle/index.js +0 -756
  245. package/dist/lifecycle/index.js.map +0 -1
  246. package/dist/lifecycle/pipeline.js +0 -656
  247. package/dist/lifecycle/pipeline.js.map +0 -1
  248. package/dist/lifecycle/rcasd-index.js +0 -326
  249. package/dist/lifecycle/rcasd-index.js.map +0 -1
  250. package/dist/lifecycle/rcasd-paths.js +0 -220
  251. package/dist/lifecycle/rcasd-paths.js.map +0 -1
  252. package/dist/lifecycle/resume.js +0 -864
  253. package/dist/lifecycle/resume.js.map +0 -1
  254. package/dist/lifecycle/stage-artifacts.js +0 -94
  255. package/dist/lifecycle/stage-artifacts.js.map +0 -1
  256. package/dist/lifecycle/stage-guidance.js +0 -234
  257. package/dist/lifecycle/stage-guidance.js.map +0 -1
  258. package/dist/lifecycle/stages.js +0 -534
  259. package/dist/lifecycle/stages.js.map +0 -1
  260. package/dist/lifecycle/state-machine.js +0 -516
  261. package/dist/lifecycle/state-machine.js.map +0 -1
  262. package/dist/lifecycle/tessera-engine.js +0 -249
  263. package/dist/lifecycle/tessera-engine.js.map +0 -1
  264. package/dist/logger.js +0 -140
  265. package/dist/logger.js.map +0 -1
  266. package/dist/memory/anthropic-key-resolver.js +0 -105
  267. package/dist/memory/anthropic-key-resolver.js.map +0 -1
  268. package/dist/memory/auto-extract.js +0 -77
  269. package/dist/memory/auto-extract.js.map +0 -1
  270. package/dist/memory/brain-backfill.js +0 -389
  271. package/dist/memory/brain-backfill.js.map +0 -1
  272. package/dist/memory/brain-consolidator.js +0 -294
  273. package/dist/memory/brain-consolidator.js.map +0 -1
  274. package/dist/memory/brain-embedding.js +0 -66
  275. package/dist/memory/brain-embedding.js.map +0 -1
  276. package/dist/memory/brain-lifecycle.js +0 -818
  277. package/dist/memory/brain-lifecycle.js.map +0 -1
  278. package/dist/memory/brain-links.js +0 -161
  279. package/dist/memory/brain-links.js.map +0 -1
  280. package/dist/memory/brain-maintenance.js +0 -114
  281. package/dist/memory/brain-maintenance.js.map +0 -1
  282. package/dist/memory/brain-migration.js +0 -149
  283. package/dist/memory/brain-migration.js.map +0 -1
  284. package/dist/memory/brain-purge.js +0 -243
  285. package/dist/memory/brain-purge.js.map +0 -1
  286. package/dist/memory/brain-reasoning.js +0 -215
  287. package/dist/memory/brain-reasoning.js.map +0 -1
  288. package/dist/memory/brain-retrieval.js +0 -1044
  289. package/dist/memory/brain-retrieval.js.map +0 -1
  290. package/dist/memory/brain-row-types.js +0 -10
  291. package/dist/memory/brain-row-types.js.map +0 -1
  292. package/dist/memory/brain-search.js +0 -613
  293. package/dist/memory/brain-search.js.map +0 -1
  294. package/dist/memory/brain-similarity.js +0 -145
  295. package/dist/memory/brain-similarity.js.map +0 -1
  296. package/dist/memory/claude-mem-migration.js +0 -277
  297. package/dist/memory/claude-mem-migration.js.map +0 -1
  298. package/dist/memory/decisions.js +0 -236
  299. package/dist/memory/decisions.js.map +0 -1
  300. package/dist/memory/embedding-local.js +0 -102
  301. package/dist/memory/embedding-local.js.map +0 -1
  302. package/dist/memory/embedding-queue.js +0 -271
  303. package/dist/memory/embedding-queue.js.map +0 -1
  304. package/dist/memory/embedding-worker.js +0 -58
  305. package/dist/memory/embedding-worker.js.map +0 -1
  306. package/dist/memory/engine-compat.js +0 -1597
  307. package/dist/memory/engine-compat.js.map +0 -1
  308. package/dist/memory/extraction-gate.js +0 -459
  309. package/dist/memory/extraction-gate.js.map +0 -1
  310. package/dist/memory/graph-auto-populate.js +0 -148
  311. package/dist/memory/graph-auto-populate.js.map +0 -1
  312. package/dist/memory/graph-memory-bridge.js +0 -519
  313. package/dist/memory/graph-memory-bridge.js.map +0 -1
  314. package/dist/memory/graph-queries.js +0 -290
  315. package/dist/memory/graph-queries.js.map +0 -1
  316. package/dist/memory/index.js +0 -1146
  317. package/dist/memory/index.js.map +0 -1
  318. package/dist/memory/learnings.js +0 -197
  319. package/dist/memory/learnings.js.map +0 -1
  320. package/dist/memory/llm-extraction.js +0 -425
  321. package/dist/memory/llm-extraction.js.map +0 -1
  322. package/dist/memory/memory-bridge.js +0 -382
  323. package/dist/memory/memory-bridge.js.map +0 -1
  324. package/dist/memory/mental-model-injection.js +0 -61
  325. package/dist/memory/mental-model-injection.js.map +0 -1
  326. package/dist/memory/mental-model-queue.js +0 -211
  327. package/dist/memory/mental-model-queue.js.map +0 -1
  328. package/dist/memory/observer-reflector.js +0 -626
  329. package/dist/memory/observer-reflector.js.map +0 -1
  330. package/dist/memory/patterns.js +0 -192
  331. package/dist/memory/patterns.js.map +0 -1
  332. package/dist/memory/pipeline-manifest-sqlite.js +0 -975
  333. package/dist/memory/pipeline-manifest-sqlite.js.map +0 -1
  334. package/dist/memory/quality-feedback.js +0 -449
  335. package/dist/memory/quality-feedback.js.map +0 -1
  336. package/dist/memory/quality-scoring.js +0 -182
  337. package/dist/memory/quality-scoring.js.map +0 -1
  338. package/dist/memory/session-memory.js +0 -331
  339. package/dist/memory/session-memory.js.map +0 -1
  340. package/dist/memory/sleep-consolidation.js +0 -706
  341. package/dist/memory/sleep-consolidation.js.map +0 -1
  342. package/dist/memory/temporal-supersession.js +0 -403
  343. package/dist/memory/temporal-supersession.js.map +0 -1
  344. package/dist/metrics/ab-test.js +0 -260
  345. package/dist/metrics/ab-test.js.map +0 -1
  346. package/dist/metrics/aggregation.js +0 -363
  347. package/dist/metrics/aggregation.js.map +0 -1
  348. package/dist/metrics/common.js +0 -64
  349. package/dist/metrics/common.js.map +0 -1
  350. package/dist/metrics/enums.js +0 -78
  351. package/dist/metrics/enums.js.map +0 -1
  352. package/dist/metrics/index.js +0 -19
  353. package/dist/metrics/index.js.map +0 -1
  354. package/dist/metrics/model-provider-registry.js +0 -88
  355. package/dist/metrics/model-provider-registry.js.map +0 -1
  356. package/dist/metrics/otel-integration.js +0 -263
  357. package/dist/metrics/otel-integration.js.map +0 -1
  358. package/dist/metrics/provider-detection.js +0 -103
  359. package/dist/metrics/provider-detection.js.map +0 -1
  360. package/dist/metrics/token-estimation.js +0 -253
  361. package/dist/metrics/token-estimation.js.map +0 -1
  362. package/dist/metrics/token-service.js +0 -450
  363. package/dist/metrics/token-service.js.map +0 -1
  364. package/dist/migration/agent-outputs.js +0 -316
  365. package/dist/migration/agent-outputs.js.map +0 -1
  366. package/dist/migration/checksum.js +0 -92
  367. package/dist/migration/checksum.js.map +0 -1
  368. package/dist/migration/index.js +0 -282
  369. package/dist/migration/index.js.map +0 -1
  370. package/dist/migration/logger.js +0 -360
  371. package/dist/migration/logger.js.map +0 -1
  372. package/dist/migration/preflight.js +0 -9
  373. package/dist/migration/preflight.js.map +0 -1
  374. package/dist/migration/state.js +0 -421
  375. package/dist/migration/state.js.map +0 -1
  376. package/dist/migration/validate.js +0 -241
  377. package/dist/migration/validate.js.map +0 -1
  378. package/dist/mvi-helpers.js +0 -73
  379. package/dist/mvi-helpers.js.map +0 -1
  380. package/dist/nexus/deps.js +0 -375
  381. package/dist/nexus/deps.js.map +0 -1
  382. package/dist/nexus/discover.js +0 -288
  383. package/dist/nexus/discover.js.map +0 -1
  384. package/dist/nexus/hash.js +0 -10
  385. package/dist/nexus/hash.js.map +0 -1
  386. package/dist/nexus/index.js +0 -40
  387. package/dist/nexus/index.js.map +0 -1
  388. package/dist/nexus/migrate-json-to-sqlite.js +0 -115
  389. package/dist/nexus/migrate-json-to-sqlite.js.map +0 -1
  390. package/dist/nexus/nexus-bridge.js +0 -321
  391. package/dist/nexus/nexus-bridge.js.map +0 -1
  392. package/dist/nexus/permissions.js +0 -105
  393. package/dist/nexus/permissions.js.map +0 -1
  394. package/dist/nexus/query.js +0 -175
  395. package/dist/nexus/query.js.map +0 -1
  396. package/dist/nexus/registry.js +0 -584
  397. package/dist/nexus/registry.js.map +0 -1
  398. package/dist/nexus/sharing/index.js +0 -288
  399. package/dist/nexus/sharing/index.js.map +0 -1
  400. package/dist/nexus/transfer-types.js +0 -8
  401. package/dist/nexus/transfer-types.js.map +0 -1
  402. package/dist/nexus/transfer.js +0 -271
  403. package/dist/nexus/transfer.js.map +0 -1
  404. package/dist/nexus/workspace.js +0 -355
  405. package/dist/nexus/workspace.js.map +0 -1
  406. package/dist/observability/index.js +0 -103
  407. package/dist/observability/index.js.map +0 -1
  408. package/dist/observability/log-filter.js +0 -63
  409. package/dist/observability/log-filter.js.map +0 -1
  410. package/dist/observability/log-parser.js +0 -99
  411. package/dist/observability/log-parser.js.map +0 -1
  412. package/dist/observability/log-reader.js +0 -139
  413. package/dist/observability/log-reader.js.map +0 -1
  414. package/dist/observability/types.js +0 -19
  415. package/dist/observability/types.js.map +0 -1
  416. package/dist/orchestration/analyze.js +0 -107
  417. package/dist/orchestration/analyze.js.map +0 -1
  418. package/dist/orchestration/bootstrap.js +0 -132
  419. package/dist/orchestration/bootstrap.js.map +0 -1
  420. package/dist/orchestration/context.js +0 -56
  421. package/dist/orchestration/context.js.map +0 -1
  422. package/dist/orchestration/critical-path.js +0 -100
  423. package/dist/orchestration/critical-path.js.map +0 -1
  424. package/dist/orchestration/hierarchy.js +0 -183
  425. package/dist/orchestration/hierarchy.js.map +0 -1
  426. package/dist/orchestration/index.js +0 -287
  427. package/dist/orchestration/index.js.map +0 -1
  428. package/dist/orchestration/parallel.js +0 -89
  429. package/dist/orchestration/parallel.js.map +0 -1
  430. package/dist/orchestration/protocol-validators.js +0 -815
  431. package/dist/orchestration/protocol-validators.js.map +0 -1
  432. package/dist/orchestration/skill-ops.js +0 -98
  433. package/dist/orchestration/skill-ops.js.map +0 -1
  434. package/dist/orchestration/status.js +0 -107
  435. package/dist/orchestration/status.js.map +0 -1
  436. package/dist/orchestration/unblock.js +0 -103
  437. package/dist/orchestration/unblock.js.map +0 -1
  438. package/dist/orchestration/validate-spawn.js +0 -67
  439. package/dist/orchestration/validate-spawn.js.map +0 -1
  440. package/dist/orchestration/waves.js +0 -86
  441. package/dist/orchestration/waves.js.map +0 -1
  442. package/dist/otel/index.js +0 -163
  443. package/dist/otel/index.js.map +0 -1
  444. package/dist/output.js +0 -164
  445. package/dist/output.js.map +0 -1
  446. package/dist/pagination.js +0 -64
  447. package/dist/pagination.js.map +0 -1
  448. package/dist/paths.js +0 -882
  449. package/dist/paths.js.map +0 -1
  450. package/dist/phases/deps.js +0 -372
  451. package/dist/phases/deps.js.map +0 -1
  452. package/dist/phases/index.js +0 -349
  453. package/dist/phases/index.js.map +0 -1
  454. package/dist/pipeline/index.js +0 -10
  455. package/dist/pipeline/index.js.map +0 -1
  456. package/dist/pipeline/phase.js +0 -45
  457. package/dist/pipeline/phase.js.map +0 -1
  458. package/dist/platform.js +0 -211
  459. package/dist/platform.js.map +0 -1
  460. package/dist/project-info.js +0 -84
  461. package/dist/project-info.js.map +0 -1
  462. package/dist/reconciliation/index.js +0 -10
  463. package/dist/reconciliation/index.js.map +0 -1
  464. package/dist/reconciliation/link-store.js +0 -175
  465. package/dist/reconciliation/link-store.js.map +0 -1
  466. package/dist/reconciliation/reconciliation-engine.js +0 -298
  467. package/dist/reconciliation/reconciliation-engine.js.map +0 -1
  468. package/dist/release/artifacts.js +0 -427
  469. package/dist/release/artifacts.js.map +0 -1
  470. package/dist/release/changelog-writer.js +0 -151
  471. package/dist/release/changelog-writer.js.map +0 -1
  472. package/dist/release/channel.js +0 -144
  473. package/dist/release/channel.js.map +0 -1
  474. package/dist/release/ci.js +0 -166
  475. package/dist/release/ci.js.map +0 -1
  476. package/dist/release/github-pr.js +0 -225
  477. package/dist/release/github-pr.js.map +0 -1
  478. package/dist/release/guards.js +0 -116
  479. package/dist/release/guards.js.map +0 -1
  480. package/dist/release/index.js +0 -22
  481. package/dist/release/index.js.map +0 -1
  482. package/dist/release/release-config.js +0 -158
  483. package/dist/release/release-config.js.map +0 -1
  484. package/dist/release/release-manifest.js +0 -1019
  485. package/dist/release/release-manifest.js.map +0 -1
  486. package/dist/release/version-bump.js +0 -255
  487. package/dist/release/version-bump.js.map +0 -1
  488. package/dist/remote/index.js +0 -257
  489. package/dist/remote/index.js.map +0 -1
  490. package/dist/repair.js +0 -130
  491. package/dist/repair.js.map +0 -1
  492. package/dist/research/index.js +0 -2
  493. package/dist/research/index.js.map +0 -1
  494. package/dist/roadmap/index.js +0 -59
  495. package/dist/roadmap/index.js.map +0 -1
  496. package/dist/routing/capability-matrix.js +0 -1556
  497. package/dist/routing/capability-matrix.js.map +0 -1
  498. package/dist/routing/index.js +0 -9
  499. package/dist/routing/index.js.map +0 -1
  500. package/dist/scaffold.js +0 -1798
  501. package/dist/scaffold.js.map +0 -1
  502. package/dist/schema-management.js +0 -295
  503. package/dist/schema-management.js.map +0 -1
  504. package/dist/security/index.js +0 -9
  505. package/dist/security/index.js.map +0 -1
  506. package/dist/security/input-sanitization.js +0 -326
  507. package/dist/security/input-sanitization.js.map +0 -1
  508. package/dist/sequence/index.js +0 -295
  509. package/dist/sequence/index.js.map +0 -1
  510. package/dist/sessions/assumptions.js +0 -54
  511. package/dist/sessions/assumptions.js.map +0 -1
  512. package/dist/sessions/briefing.js +0 -377
  513. package/dist/sessions/briefing.js.map +0 -1
  514. package/dist/sessions/context-alert.js +0 -222
  515. package/dist/sessions/context-alert.js.map +0 -1
  516. package/dist/sessions/context-inject.js +0 -61
  517. package/dist/sessions/context-inject.js.map +0 -1
  518. package/dist/sessions/context-monitor.js +0 -98
  519. package/dist/sessions/context-monitor.js.map +0 -1
  520. package/dist/sessions/decisions.js +0 -65
  521. package/dist/sessions/decisions.js.map +0 -1
  522. package/dist/sessions/find.js +0 -65
  523. package/dist/sessions/find.js.map +0 -1
  524. package/dist/sessions/handoff.js +0 -328
  525. package/dist/sessions/handoff.js.map +0 -1
  526. package/dist/sessions/hitl-warnings.js +0 -254
  527. package/dist/sessions/hitl-warnings.js.map +0 -1
  528. package/dist/sessions/index.js +0 -327
  529. package/dist/sessions/index.js.map +0 -1
  530. package/dist/sessions/session-archive.js +0 -40
  531. package/dist/sessions/session-archive.js.map +0 -1
  532. package/dist/sessions/session-cleanup.js +0 -59
  533. package/dist/sessions/session-cleanup.js.map +0 -1
  534. package/dist/sessions/session-drift.js +0 -134
  535. package/dist/sessions/session-drift.js.map +0 -1
  536. package/dist/sessions/session-enforcement.js +0 -144
  537. package/dist/sessions/session-enforcement.js.map +0 -1
  538. package/dist/sessions/session-grade.js +0 -253
  539. package/dist/sessions/session-grade.js.map +0 -1
  540. package/dist/sessions/session-history.js +0 -42
  541. package/dist/sessions/session-history.js.map +0 -1
  542. package/dist/sessions/session-id.js +0 -81
  543. package/dist/sessions/session-id.js.map +0 -1
  544. package/dist/sessions/session-memory-bridge.js +0 -30
  545. package/dist/sessions/session-memory-bridge.js.map +0 -1
  546. package/dist/sessions/session-show.js +0 -24
  547. package/dist/sessions/session-show.js.map +0 -1
  548. package/dist/sessions/session-stats.js +0 -69
  549. package/dist/sessions/session-stats.js.map +0 -1
  550. package/dist/sessions/session-suspend.js +0 -39
  551. package/dist/sessions/session-suspend.js.map +0 -1
  552. package/dist/sessions/session-switch.js +0 -51
  553. package/dist/sessions/session-switch.js.map +0 -1
  554. package/dist/sessions/session-view.js +0 -76
  555. package/dist/sessions/session-view.js.map +0 -1
  556. package/dist/sessions/snapshot.js +0 -213
  557. package/dist/sessions/snapshot.js.map +0 -1
  558. package/dist/sessions/statusline-setup.js +0 -85
  559. package/dist/sessions/statusline-setup.js.map +0 -1
  560. package/dist/sessions/types.js +0 -8
  561. package/dist/sessions/types.js.map +0 -1
  562. package/dist/skills/agents/config.js +0 -94
  563. package/dist/skills/agents/config.js.map +0 -1
  564. package/dist/skills/agents/install.js +0 -116
  565. package/dist/skills/agents/install.js.map +0 -1
  566. package/dist/skills/agents/registry.js +0 -161
  567. package/dist/skills/agents/registry.js.map +0 -1
  568. package/dist/skills/discovery.js +0 -333
  569. package/dist/skills/discovery.js.map +0 -1
  570. package/dist/skills/dispatch.js +0 -347
  571. package/dist/skills/dispatch.js.map +0 -1
  572. package/dist/skills/dynamic-skill-generator.js +0 -87
  573. package/dist/skills/dynamic-skill-generator.js.map +0 -1
  574. package/dist/skills/index.js +0 -44
  575. package/dist/skills/index.js.map +0 -1
  576. package/dist/skills/injection/subagent.js +0 -195
  577. package/dist/skills/injection/subagent.js.map +0 -1
  578. package/dist/skills/injection/token.js +0 -260
  579. package/dist/skills/injection/token.js.map +0 -1
  580. package/dist/skills/install.js +0 -40
  581. package/dist/skills/install.js.map +0 -1
  582. package/dist/skills/manifests/contribution.js +0 -175
  583. package/dist/skills/manifests/contribution.js.map +0 -1
  584. package/dist/skills/manifests/research.js +0 -281
  585. package/dist/skills/manifests/research.js.map +0 -1
  586. package/dist/skills/manifests/resolver.js +0 -146
  587. package/dist/skills/manifests/resolver.js.map +0 -1
  588. package/dist/skills/marketplace.js +0 -90
  589. package/dist/skills/marketplace.js.map +0 -1
  590. package/dist/skills/orchestrator/spawn.js +0 -178
  591. package/dist/skills/orchestrator/spawn.js.map +0 -1
  592. package/dist/skills/orchestrator/startup.js +0 -451
  593. package/dist/skills/orchestrator/startup.js.map +0 -1
  594. package/dist/skills/orchestrator/validator.js +0 -301
  595. package/dist/skills/orchestrator/validator.js.map +0 -1
  596. package/dist/skills/precedence-integration.js +0 -73
  597. package/dist/skills/precedence-integration.js.map +0 -1
  598. package/dist/skills/precedence-types.js +0 -16
  599. package/dist/skills/precedence-types.js.map +0 -1
  600. package/dist/skills/routing-table.js +0 -63
  601. package/dist/skills/routing-table.js.map +0 -1
  602. package/dist/skills/skill-paths.js +0 -217
  603. package/dist/skills/skill-paths.js.map +0 -1
  604. package/dist/skills/test-utility.js +0 -55
  605. package/dist/skills/test-utility.js.map +0 -1
  606. package/dist/skills/types.js +0 -118
  607. package/dist/skills/types.js.map +0 -1
  608. package/dist/skills/validation.js +0 -183
  609. package/dist/skills/validation.js.map +0 -1
  610. package/dist/skills/version.js +0 -57
  611. package/dist/skills/version.js.map +0 -1
  612. package/dist/snapshot/index.js +0 -188
  613. package/dist/snapshot/index.js.map +0 -1
  614. package/dist/spawn/adapter-registry.js +0 -246
  615. package/dist/spawn/adapter-registry.js.map +0 -1
  616. package/dist/spawn/index.js +0 -10
  617. package/dist/spawn/index.js.map +0 -1
  618. package/dist/stats/index.js +0 -350
  619. package/dist/stats/index.js.map +0 -1
  620. package/dist/stats/workflow-telemetry.js +0 -400
  621. package/dist/stats/workflow-telemetry.js.map +0 -1
  622. package/dist/sticky/archive.js +0 -47
  623. package/dist/sticky/archive.js.map +0 -1
  624. package/dist/sticky/convert.js +0 -235
  625. package/dist/sticky/convert.js.map +0 -1
  626. package/dist/sticky/create.js +0 -48
  627. package/dist/sticky/create.js.map +0 -1
  628. package/dist/sticky/id.js +0 -35
  629. package/dist/sticky/id.js.map +0 -1
  630. package/dist/sticky/index.js +0 -16
  631. package/dist/sticky/index.js.map +0 -1
  632. package/dist/sticky/list.js +0 -57
  633. package/dist/sticky/list.js.map +0 -1
  634. package/dist/sticky/purge.js +0 -45
  635. package/dist/sticky/purge.js.map +0 -1
  636. package/dist/sticky/show.js +0 -42
  637. package/dist/sticky/show.js.map +0 -1
  638. package/dist/sticky/types.js +0 -10
  639. package/dist/sticky/types.js.map +0 -1
  640. package/dist/store/agent-registry-accessor.js +0 -886
  641. package/dist/store/agent-registry-accessor.js.map +0 -1
  642. package/dist/store/api-key-kdf.js +0 -84
  643. package/dist/store/api-key-kdf.js.map +0 -1
  644. package/dist/store/atomic.js +0 -167
  645. package/dist/store/atomic.js.map +0 -1
  646. package/dist/store/backup-crypto.js +0 -184
  647. package/dist/store/backup-crypto.js.map +0 -1
  648. package/dist/store/backup-pack.js +0 -581
  649. package/dist/store/backup-pack.js.map +0 -1
  650. package/dist/store/backup-unpack.js +0 -449
  651. package/dist/store/backup-unpack.js.map +0 -1
  652. package/dist/store/backup.js +0 -94
  653. package/dist/store/backup.js.map +0 -1
  654. package/dist/store/brain-accessor.js +0 -429
  655. package/dist/store/brain-accessor.js.map +0 -1
  656. package/dist/store/brain-schema.js +0 -579
  657. package/dist/store/brain-schema.js.map +0 -1
  658. package/dist/store/brain-sqlite.js +0 -297
  659. package/dist/store/brain-sqlite.js.map +0 -1
  660. package/dist/store/cache.js +0 -168
  661. package/dist/store/cache.js.map +0 -1
  662. package/dist/store/chain-schema.js +0 -51
  663. package/dist/store/chain-schema.js.map +0 -1
  664. package/dist/store/cleanup-legacy.js +0 -171
  665. package/dist/store/cleanup-legacy.js.map +0 -1
  666. package/dist/store/conduit-sqlite.js +0 -570
  667. package/dist/store/conduit-sqlite.js.map +0 -1
  668. package/dist/store/converters.js +0 -124
  669. package/dist/store/converters.js.map +0 -1
  670. package/dist/store/cross-db-cleanup.js +0 -319
  671. package/dist/store/cross-db-cleanup.js.map +0 -1
  672. package/dist/store/data-accessor.js +0 -26
  673. package/dist/store/data-accessor.js.map +0 -1
  674. package/dist/store/data-safety-central.js +0 -269
  675. package/dist/store/data-safety-central.js.map +0 -1
  676. package/dist/store/data-safety.js +0 -274
  677. package/dist/store/data-safety.js.map +0 -1
  678. package/dist/store/db-helpers.js +0 -224
  679. package/dist/store/db-helpers.js.map +0 -1
  680. package/dist/store/export.js +0 -155
  681. package/dist/store/export.js.map +0 -1
  682. package/dist/store/file-utils.js +0 -270
  683. package/dist/store/file-utils.js.map +0 -1
  684. package/dist/store/git-checkpoint.js +0 -365
  685. package/dist/store/git-checkpoint.js.map +0 -1
  686. package/dist/store/global-salt.js +0 -147
  687. package/dist/store/global-salt.js.map +0 -1
  688. package/dist/store/import-logging.js +0 -139
  689. package/dist/store/import-logging.js.map +0 -1
  690. package/dist/store/import-remap.js +0 -145
  691. package/dist/store/import-remap.js.map +0 -1
  692. package/dist/store/import-sort.js +0 -121
  693. package/dist/store/import-sort.js.map +0 -1
  694. package/dist/store/index.js +0 -29
  695. package/dist/store/index.js.map +0 -1
  696. package/dist/store/json.js +0 -208
  697. package/dist/store/json.js.map +0 -1
  698. package/dist/store/lifecycle-store.js +0 -249
  699. package/dist/store/lifecycle-store.js.map +0 -1
  700. package/dist/store/lock.js +0 -70
  701. package/dist/store/lock.js.map +0 -1
  702. package/dist/store/migrate-signaldock-to-conduit.js +0 -562
  703. package/dist/store/migrate-signaldock-to-conduit.js.map +0 -1
  704. package/dist/store/migration-manager.js +0 -288
  705. package/dist/store/migration-manager.js.map +0 -1
  706. package/dist/store/migration-sqlite.js +0 -676
  707. package/dist/store/migration-sqlite.js.map +0 -1
  708. package/dist/store/nexus-schema.js +0 -268
  709. package/dist/store/nexus-schema.js.map +0 -1
  710. package/dist/store/nexus-sqlite.js +0 -242
  711. package/dist/store/nexus-sqlite.js.map +0 -1
  712. package/dist/store/nexus-validation-schemas.js +0 -40
  713. package/dist/store/nexus-validation-schemas.js.map +0 -1
  714. package/dist/store/parsers.js +0 -37
  715. package/dist/store/parsers.js.map +0 -1
  716. package/dist/store/project-detect.js +0 -457
  717. package/dist/store/project-detect.js.map +0 -1
  718. package/dist/store/provider.js +0 -101
  719. package/dist/store/provider.js.map +0 -1
  720. package/dist/store/regenerators.js +0 -207
  721. package/dist/store/regenerators.js.map +0 -1
  722. package/dist/store/restore-conflict-report.js +0 -206
  723. package/dist/store/restore-conflict-report.js.map +0 -1
  724. package/dist/store/restore-json-merge.js +0 -454
  725. package/dist/store/restore-json-merge.js.map +0 -1
  726. package/dist/store/safety-data-accessor.js +0 -257
  727. package/dist/store/safety-data-accessor.js.map +0 -1
  728. package/dist/store/schema.js +0 -7
  729. package/dist/store/schema.js.map +0 -1
  730. package/dist/store/session-store.js +0 -219
  731. package/dist/store/session-store.js.map +0 -1
  732. package/dist/store/signaldock-sqlite.js +0 -550
  733. package/dist/store/signaldock-sqlite.js.map +0 -1
  734. package/dist/store/sqlite-backup.js +0 -498
  735. package/dist/store/sqlite-backup.js.map +0 -1
  736. package/dist/store/sqlite-data-accessor.js +0 -787
  737. package/dist/store/sqlite-data-accessor.js.map +0 -1
  738. package/dist/store/sqlite.js +0 -483
  739. package/dist/store/sqlite.js.map +0 -1
  740. package/dist/store/status-registry.js +0 -8
  741. package/dist/store/status-registry.js.map +0 -1
  742. package/dist/store/t310-readiness.js +0 -115
  743. package/dist/store/t310-readiness.js.map +0 -1
  744. package/dist/store/task-store.js +0 -358
  745. package/dist/store/task-store.js.map +0 -1
  746. package/dist/store/tasks-schema.js +0 -610
  747. package/dist/store/tasks-schema.js.map +0 -1
  748. package/dist/store/typed-query.js +0 -15
  749. package/dist/store/typed-query.js.map +0 -1
  750. package/dist/store/validation-schemas.js +0 -278
  751. package/dist/store/validation-schemas.js.map +0 -1
  752. package/dist/system/archive-analytics.js +0 -277
  753. package/dist/system/archive-analytics.js.map +0 -1
  754. package/dist/system/archive-stats.js +0 -64
  755. package/dist/system/archive-stats.js.map +0 -1
  756. package/dist/system/audit.js +0 -145
  757. package/dist/system/audit.js.map +0 -1
  758. package/dist/system/backup.js +0 -280
  759. package/dist/system/backup.js.map +0 -1
  760. package/dist/system/cleanup.js +0 -134
  761. package/dist/system/cleanup.js.map +0 -1
  762. package/dist/system/dependencies.js +0 -466
  763. package/dist/system/dependencies.js.map +0 -1
  764. package/dist/system/health.js +0 -1206
  765. package/dist/system/health.js.map +0 -1
  766. package/dist/system/index.js +0 -18
  767. package/dist/system/index.js.map +0 -1
  768. package/dist/system/inject-generate.js +0 -122
  769. package/dist/system/inject-generate.js.map +0 -1
  770. package/dist/system/labels.js +0 -38
  771. package/dist/system/labels.js.map +0 -1
  772. package/dist/system/metrics.js +0 -61
  773. package/dist/system/metrics.js.map +0 -1
  774. package/dist/system/migrate.js +0 -43
  775. package/dist/system/migrate.js.map +0 -1
  776. package/dist/system/platform-paths.js +0 -80
  777. package/dist/system/platform-paths.js.map +0 -1
  778. package/dist/system/runtime.js +0 -161
  779. package/dist/system/runtime.js.map +0 -1
  780. package/dist/system/safestop.js +0 -89
  781. package/dist/system/safestop.js.map +0 -1
  782. package/dist/system/storage-preflight.js +0 -123
  783. package/dist/system/storage-preflight.js.map +0 -1
  784. package/dist/task-work/index.js +0 -159
  785. package/dist/task-work/index.js.map +0 -1
  786. package/dist/tasks/add.js +0 -837
  787. package/dist/tasks/add.js.map +0 -1
  788. package/dist/tasks/analyze.js +0 -85
  789. package/dist/tasks/analyze.js.map +0 -1
  790. package/dist/tasks/archive.js +0 -90
  791. package/dist/tasks/archive.js.map +0 -1
  792. package/dist/tasks/atomicity.js +0 -83
  793. package/dist/tasks/atomicity.js.map +0 -1
  794. package/dist/tasks/cancel-ops.js +0 -83
  795. package/dist/tasks/cancel-ops.js.map +0 -1
  796. package/dist/tasks/complete.js +0 -248
  797. package/dist/tasks/complete.js.map +0 -1
  798. package/dist/tasks/crossref-extract.js +0 -73
  799. package/dist/tasks/crossref-extract.js.map +0 -1
  800. package/dist/tasks/delete-preview.js +0 -192
  801. package/dist/tasks/delete-preview.js.map +0 -1
  802. package/dist/tasks/delete.js +0 -120
  803. package/dist/tasks/delete.js.map +0 -1
  804. package/dist/tasks/deletion-strategy.js +0 -200
  805. package/dist/tasks/deletion-strategy.js.map +0 -1
  806. package/dist/tasks/dependency-check.js +0 -278
  807. package/dist/tasks/dependency-check.js.map +0 -1
  808. package/dist/tasks/deps-ready.js +0 -32
  809. package/dist/tasks/deps-ready.js.map +0 -1
  810. package/dist/tasks/enforcement.js +0 -86
  811. package/dist/tasks/enforcement.js.map +0 -1
  812. package/dist/tasks/epic-enforcement.js +0 -294
  813. package/dist/tasks/epic-enforcement.js.map +0 -1
  814. package/dist/tasks/find.js +0 -163
  815. package/dist/tasks/find.js.map +0 -1
  816. package/dist/tasks/graph-cache.js +0 -127
  817. package/dist/tasks/graph-cache.js.map +0 -1
  818. package/dist/tasks/graph-ops.js +0 -173
  819. package/dist/tasks/graph-ops.js.map +0 -1
  820. package/dist/tasks/graph-rag.js +0 -328
  821. package/dist/tasks/graph-rag.js.map +0 -1
  822. package/dist/tasks/hierarchy-policy.js +0 -149
  823. package/dist/tasks/hierarchy-policy.js.map +0 -1
  824. package/dist/tasks/hierarchy.js +0 -185
  825. package/dist/tasks/hierarchy.js.map +0 -1
  826. package/dist/tasks/id-generator.js +0 -65
  827. package/dist/tasks/id-generator.js.map +0 -1
  828. package/dist/tasks/index.js +0 -14
  829. package/dist/tasks/index.js.map +0 -1
  830. package/dist/tasks/labels.js +0 -55
  831. package/dist/tasks/labels.js.map +0 -1
  832. package/dist/tasks/list.js +0 -75
  833. package/dist/tasks/list.js.map +0 -1
  834. package/dist/tasks/phase-tracking.js +0 -133
  835. package/dist/tasks/phase-tracking.js.map +0 -1
  836. package/dist/tasks/pipeline-stage.js +0 -248
  837. package/dist/tasks/pipeline-stage.js.map +0 -1
  838. package/dist/tasks/plan.js +0 -268
  839. package/dist/tasks/plan.js.map +0 -1
  840. package/dist/tasks/relates.js +0 -101
  841. package/dist/tasks/relates.js.map +0 -1
  842. package/dist/tasks/show.js +0 -83
  843. package/dist/tasks/show.js.map +0 -1
  844. package/dist/tasks/size-weighting.js +0 -86
  845. package/dist/tasks/size-weighting.js.map +0 -1
  846. package/dist/tasks/staleness.js +0 -86
  847. package/dist/tasks/staleness.js.map +0 -1
  848. package/dist/tasks/task-ops.js +0 -1741
  849. package/dist/tasks/task-ops.js.map +0 -1
  850. package/dist/tasks/update.js +0 -303
  851. package/dist/tasks/update.js.map +0 -1
  852. package/dist/templates/index.js +0 -10
  853. package/dist/templates/index.js.map +0 -1
  854. package/dist/templates/parser.js +0 -254
  855. package/dist/templates/parser.js.map +0 -1
  856. package/dist/ui/aliases.js +0 -153
  857. package/dist/ui/aliases.js.map +0 -1
  858. package/dist/ui/changelog.js +0 -184
  859. package/dist/ui/changelog.js.map +0 -1
  860. package/dist/ui/command-registry.js +0 -168
  861. package/dist/ui/command-registry.js.map +0 -1
  862. package/dist/ui/flags.js +0 -94
  863. package/dist/ui/flags.js.map +0 -1
  864. package/dist/ui/index.js +0 -24
  865. package/dist/ui/index.js.map +0 -1
  866. package/dist/upgrade.js +0 -1371
  867. package/dist/upgrade.js.map +0 -1
  868. package/dist/validation/chain-validation.js +0 -146
  869. package/dist/validation/chain-validation.js.map +0 -1
  870. package/dist/validation/compliance.js +0 -155
  871. package/dist/validation/compliance.js.map +0 -1
  872. package/dist/validation/docs-sync.js +0 -212
  873. package/dist/validation/docs-sync.js.map +0 -1
  874. package/dist/validation/doctor/checks.js +0 -1069
  875. package/dist/validation/doctor/checks.js.map +0 -1
  876. package/dist/validation/doctor/index.js +0 -9
  877. package/dist/validation/doctor/index.js.map +0 -1
  878. package/dist/validation/doctor/project-cache.js +0 -160
  879. package/dist/validation/doctor/project-cache.js.map +0 -1
  880. package/dist/validation/doctor/utils.js +0 -155
  881. package/dist/validation/doctor/utils.js.map +0 -1
  882. package/dist/validation/engine.js +0 -914
  883. package/dist/validation/engine.js.map +0 -1
  884. package/dist/validation/gap-check.js +0 -175
  885. package/dist/validation/gap-check.js.map +0 -1
  886. package/dist/validation/index.js +0 -40
  887. package/dist/validation/index.js.map +0 -1
  888. package/dist/validation/manifest.js +0 -237
  889. package/dist/validation/manifest.js.map +0 -1
  890. package/dist/validation/operation-gate-validators.js +0 -724
  891. package/dist/validation/operation-gate-validators.js.map +0 -1
  892. package/dist/validation/operation-verification-gates.js +0 -532
  893. package/dist/validation/operation-verification-gates.js.map +0 -1
  894. package/dist/validation/param-utils.js +0 -141
  895. package/dist/validation/param-utils.js.map +0 -1
  896. package/dist/validation/protocol-common.js +0 -300
  897. package/dist/validation/protocol-common.js.map +0 -1
  898. package/dist/validation/protocols/_shared.js +0 -82
  899. package/dist/validation/protocols/_shared.js.map +0 -1
  900. package/dist/validation/protocols/architecture-decision.js +0 -31
  901. package/dist/validation/protocols/architecture-decision.js.map +0 -1
  902. package/dist/validation/protocols/artifact-publish.js +0 -28
  903. package/dist/validation/protocols/artifact-publish.js.map +0 -1
  904. package/dist/validation/protocols/consensus.js +0 -41
  905. package/dist/validation/protocols/consensus.js.map +0 -1
  906. package/dist/validation/protocols/contribution.js +0 -27
  907. package/dist/validation/protocols/contribution.js.map +0 -1
  908. package/dist/validation/protocols/decomposition.js +0 -28
  909. package/dist/validation/protocols/decomposition.js.map +0 -1
  910. package/dist/validation/protocols/implementation.js +0 -24
  911. package/dist/validation/protocols/implementation.js.map +0 -1
  912. package/dist/validation/protocols/provenance.js +0 -29
  913. package/dist/validation/protocols/provenance.js.map +0 -1
  914. package/dist/validation/protocols/release.js +0 -29
  915. package/dist/validation/protocols/release.js.map +0 -1
  916. package/dist/validation/protocols/research.js +0 -24
  917. package/dist/validation/protocols/research.js.map +0 -1
  918. package/dist/validation/protocols/specification.js +0 -27
  919. package/dist/validation/protocols/specification.js.map +0 -1
  920. package/dist/validation/protocols/testing.js +0 -30
  921. package/dist/validation/protocols/testing.js.map +0 -1
  922. package/dist/validation/protocols/validation.js +0 -30
  923. package/dist/validation/protocols/validation.js.map +0 -1
  924. package/dist/validation/schema-integrity.js +0 -170
  925. package/dist/validation/schema-integrity.js.map +0 -1
  926. package/dist/validation/schema-validator.js +0 -176
  927. package/dist/validation/schema-validator.js.map +0 -1
  928. package/dist/validation/validate-ops.js +0 -937
  929. package/dist/validation/validate-ops.js.map +0 -1
  930. package/dist/validation/validation-rules.js +0 -226
  931. package/dist/validation/validation-rules.js.map +0 -1
  932. package/dist/validation/verification.js +0 -321
  933. package/dist/validation/verification.js.map +0 -1
  934. package/migrations/drizzle-nexus/20260412000001_t529-nexus-graph-tables/migration.sql +0 -49
@@ -1,1597 +0,0 @@
1
- /**
2
- * Memory Engine Compatibility Layer — Brain.db Cognitive Memory
3
- *
4
- * Async wrappers around brain.db cognitive memory functions that return
5
- * EngineResult<T> format for consumption by the dispatch layer.
6
- *
7
- * After the memory domain cutover (T5241), this file contains ONLY
8
- * brain.db-backed operations. Manifest operations moved to
9
- * pipeline-manifest-compat.ts, and context injection moved to
10
- * sessions/context-inject.ts.
11
- *
12
- * @task T5241
13
- * @epic T5149
14
- */
15
- import { getProjectRoot } from '../paths.js';
16
- // BRAIN accessor for direct table queries (T5241)
17
- import { getBrainAccessor } from '../store/brain-accessor.js';
18
- import { getAccessor } from '../store/data-accessor.js';
19
- import { linkMemoryToTask, unlinkMemoryFromTask } from './brain-links.js';
20
- // BRAIN retrieval imports (T5131-T5135)
21
- import { fetchBrainEntries, observeBrain, searchBrainCompact, timelineBrain, } from './brain-retrieval.js';
22
- // T545: Decision store with quality scoring and graph auto-population
23
- import { storeDecision } from './decisions.js';
24
- import { learningStats, searchLearnings, storeLearning, } from './learnings.js';
25
- // T419: async reinforcement queue for mental-model writes (ULTRAPLAN L5)
26
- import { isMentalModelObservation, mentalModelQueue } from './mental-model-queue.js';
27
- // BRAIN memory imports (T4770)
28
- import { patternStats, searchPatterns, storePattern, } from './patterns.js';
29
- // ============================================================================
30
- // Internal helpers
31
- // ============================================================================
32
- function resolveRoot(projectRoot) {
33
- return projectRoot || getProjectRoot();
34
- }
35
- /**
36
- * Parse brain.db entry ID prefix to determine the table type.
37
- *
38
- * Conventions:
39
- * - D... -> decision (D001, D-xxx)
40
- * - P... -> pattern (P001, P-xxx)
41
- * - L... -> learning (L001, L-xxx)
42
- * - O... or CM-... -> observation (O-xxx, CM-xxx)
43
- */
44
- function parseIdPrefix(id) {
45
- if (id.startsWith('D-') || /^D\d/.test(id))
46
- return 'decision';
47
- if (id.startsWith('P-') || /^P\d/.test(id))
48
- return 'pattern';
49
- if (id.startsWith('L-') || /^L\d/.test(id))
50
- return 'learning';
51
- if (id.startsWith('O-') || id.startsWith('O') || id.startsWith('CM-'))
52
- return 'observation';
53
- return null;
54
- }
55
- // ============================================================================
56
- // Brain.db Entry Lookup
57
- // ============================================================================
58
- /**
59
- * Look up a brain.db entry by ID.
60
- *
61
- * @param entryId - Brain entry ID with type prefix (D-, P-, L-, O-, or CM-)
62
- * @param projectRoot - Optional project root path; defaults to resolved root
63
- * @returns EngineResult containing the typed entry data on success
64
- *
65
- * @remarks
66
- * Parses the ID prefix to determine the entry type (decision, pattern, learning,
67
- * or observation) and queries the corresponding brain.db table.
68
- *
69
- * @example
70
- * ```typescript
71
- * const result = await memoryShow('O-abc123', '/project');
72
- * if (result.success) console.log(result.data.type, result.data.entry);
73
- * ```
74
- */
75
- export async function memoryShow(entryId, projectRoot) {
76
- if (!entryId) {
77
- return { success: false, error: { code: 'E_INVALID_INPUT', message: 'entryId is required' } };
78
- }
79
- try {
80
- const root = resolveRoot(projectRoot);
81
- const entryType = parseIdPrefix(entryId);
82
- if (!entryType) {
83
- return {
84
- success: false,
85
- error: {
86
- code: 'E_INVALID_INPUT',
87
- message: `Unknown entry ID format: '${entryId}'. Expected prefix D-, P-, L-, or O-`,
88
- },
89
- };
90
- }
91
- const accessor = await getBrainAccessor(root);
92
- switch (entryType) {
93
- case 'decision': {
94
- const row = await accessor.getDecision(entryId);
95
- if (!row) {
96
- return {
97
- success: false,
98
- error: { code: 'E_NOT_FOUND', message: `Decision '${entryId}' not found in brain.db` },
99
- };
100
- }
101
- return { success: true, data: { type: 'decision', entry: row } };
102
- }
103
- case 'pattern': {
104
- const row = await accessor.getPattern(entryId);
105
- if (!row) {
106
- return {
107
- success: false,
108
- error: { code: 'E_NOT_FOUND', message: `Pattern '${entryId}' not found in brain.db` },
109
- };
110
- }
111
- return { success: true, data: { type: 'pattern', entry: row } };
112
- }
113
- case 'learning': {
114
- const row = await accessor.getLearning(entryId);
115
- if (!row) {
116
- return {
117
- success: false,
118
- error: { code: 'E_NOT_FOUND', message: `Learning '${entryId}' not found in brain.db` },
119
- };
120
- }
121
- return { success: true, data: { type: 'learning', entry: row } };
122
- }
123
- case 'observation': {
124
- const row = await accessor.getObservation(entryId);
125
- if (!row) {
126
- return {
127
- success: false,
128
- error: {
129
- code: 'E_NOT_FOUND',
130
- message: `Observation '${entryId}' not found in brain.db`,
131
- },
132
- };
133
- }
134
- return { success: true, data: { type: 'observation', entry: row } };
135
- }
136
- }
137
- }
138
- catch (error) {
139
- return {
140
- success: false,
141
- error: {
142
- code: 'E_BRAIN_SHOW',
143
- message: error instanceof Error ? error.message : String(error),
144
- },
145
- };
146
- }
147
- }
148
- // ============================================================================
149
- // Brain.db Aggregate Stats
150
- // ============================================================================
151
- /**
152
- * Aggregate stats from brain.db across all tables.
153
- *
154
- * @param projectRoot - Optional project root path; defaults to resolved root
155
- * @returns EngineResult with observation, decision, pattern, and learning counts
156
- *
157
- * @remarks
158
- * Queries each brain.db table for row counts and returns a combined statistics object.
159
- * Returns zero counts if brain.db is not initialized.
160
- *
161
- * @example
162
- * ```typescript
163
- * const result = await memoryBrainStats('/project');
164
- * if (result.success) console.log(result.data.observations);
165
- * ```
166
- */
167
- export async function memoryBrainStats(projectRoot) {
168
- try {
169
- const root = resolveRoot(projectRoot);
170
- const { getBrainDb, getBrainNativeDb } = await import('../store/brain-sqlite.js');
171
- await getBrainDb(root);
172
- const nativeDb = getBrainNativeDb();
173
- if (!nativeDb) {
174
- return {
175
- success: true,
176
- data: {
177
- observations: 0,
178
- decisions: 0,
179
- patterns: 0,
180
- learnings: 0,
181
- total: 0,
182
- message: 'brain.db not initialized',
183
- },
184
- };
185
- }
186
- const obsCount = nativeDb.prepare('SELECT COUNT(*) AS cnt FROM brain_observations').get().cnt;
187
- const decCount = nativeDb.prepare('SELECT COUNT(*) AS cnt FROM brain_decisions').get().cnt;
188
- const patCount = nativeDb.prepare('SELECT COUNT(*) AS cnt FROM brain_patterns').get().cnt;
189
- const learnCount = nativeDb.prepare('SELECT COUNT(*) AS cnt FROM brain_learnings').get().cnt;
190
- return {
191
- success: true,
192
- data: {
193
- observations: obsCount,
194
- decisions: decCount,
195
- patterns: patCount,
196
- learnings: learnCount,
197
- total: obsCount + decCount + patCount + learnCount,
198
- },
199
- };
200
- }
201
- catch (error) {
202
- return {
203
- success: false,
204
- error: {
205
- code: 'E_BRAIN_STATS',
206
- message: error instanceof Error ? error.message : String(error),
207
- },
208
- };
209
- }
210
- }
211
- // ============================================================================
212
- // Brain.db Decision Operations
213
- // ============================================================================
214
- /**
215
- * Search decisions in brain.db.
216
- *
217
- * @param params - Search parameters (query, limit, etc.)
218
- * @param projectRoot - Optional project root path; defaults to resolved root
219
- * @returns EngineResult with matching decision entries
220
- *
221
- * @remarks
222
- * Queries the brain.db decisions table with optional text filtering and pagination.
223
- *
224
- * @example
225
- * ```typescript
226
- * const result = await memoryDecisionFind({ query: 'auth' }, '/project');
227
- * ```
228
- */
229
- export async function memoryDecisionFind(params, projectRoot) {
230
- try {
231
- const root = resolveRoot(projectRoot);
232
- const accessor = await getBrainAccessor(root);
233
- if (params.query) {
234
- const { getBrainDb, getBrainNativeDb } = await import('../store/brain-sqlite.js');
235
- await getBrainDb(root);
236
- const nativeDb = getBrainNativeDb();
237
- if (!nativeDb) {
238
- return { success: true, data: { decisions: [], total: 0 } };
239
- }
240
- const likePattern = `%${params.query}%`;
241
- const limit = params.limit ?? 20;
242
- const rows = nativeDb
243
- .prepare(`
244
- SELECT * FROM brain_decisions
245
- WHERE decision LIKE ? OR rationale LIKE ?
246
- ORDER BY created_at DESC
247
- LIMIT ?
248
- `)
249
- .all(likePattern, likePattern, limit);
250
- return { success: true, data: { decisions: rows, total: rows.length } };
251
- }
252
- const decisions = await accessor.findDecisions({
253
- contextTaskId: params.taskId,
254
- limit: params.limit ?? 20,
255
- });
256
- return { success: true, data: { decisions, total: decisions.length } };
257
- }
258
- catch (error) {
259
- return {
260
- success: false,
261
- error: {
262
- code: 'E_DECISION_FIND',
263
- message: error instanceof Error ? error.message : String(error),
264
- },
265
- };
266
- }
267
- }
268
- /**
269
- * Store a decision to brain.db.
270
- *
271
- * @param params - Decision data including title, rationale, and alternatives
272
- * @param projectRoot - Optional project root path; defaults to resolved root
273
- * @returns EngineResult with the stored decision ID
274
- *
275
- * @remarks
276
- * Creates a new decision entry in brain.db with a D-prefixed ID.
277
- * Optionally refreshes the memory bridge after storing.
278
- *
279
- * @example
280
- * ```typescript
281
- * const result = await memoryDecisionStore({ title: 'Use SQLite', rationale: 'Embedded, fast' }, '/project');
282
- * ```
283
- */
284
- export async function memoryDecisionStore(params, projectRoot) {
285
- if (!params.decision) {
286
- return {
287
- success: false,
288
- error: { code: 'E_INVALID_INPUT', message: 'decision text is required' },
289
- };
290
- }
291
- if (!params.rationale) {
292
- return { success: false, error: { code: 'E_INVALID_INPUT', message: 'rationale is required' } };
293
- }
294
- try {
295
- const root = resolveRoot(projectRoot);
296
- // Route through storeDecision() so quality scoring and graph auto-population
297
- // (upsertGraphNode) run on every insert — fixes T545 regression where
298
- // engine-compat bypassed decisions.ts and wrote directly to the accessor,
299
- // leaving quality_score NULL and no graph node created.
300
- const row = await storeDecision(root, {
301
- type: 'technical',
302
- decision: params.decision,
303
- rationale: params.rationale,
304
- confidence: 'medium',
305
- outcome: 'pending',
306
- alternatives: params.alternatives,
307
- contextTaskId: params.taskId,
308
- });
309
- return {
310
- success: true,
311
- data: {
312
- id: row.id,
313
- type: row.type,
314
- decision: row.decision,
315
- createdAt: row.createdAt,
316
- },
317
- };
318
- }
319
- catch (error) {
320
- return {
321
- success: false,
322
- error: {
323
- code: 'E_DECISION_STORE',
324
- message: error instanceof Error ? error.message : String(error),
325
- },
326
- };
327
- }
328
- }
329
- // ============================================================================
330
- // BRAIN Retrieval Operations (T5131-T5135) — Renamed from brain.* to flat ops
331
- // ============================================================================
332
- /**
333
- * Token-efficient brain search returning compact results.
334
- *
335
- * @param params - Search parameters including query string and limit
336
- * @param projectRoot - Optional project root path; defaults to resolved root
337
- * @returns EngineResult with compact search hits (IDs and titles)
338
- *
339
- * @remarks
340
- * Designed for the cheapest-first retrieval pattern. Returns minimal fields
341
- * per hit to conserve tokens. Use memoryFetch for full entry details.
342
- *
343
- * @example
344
- * ```typescript
345
- * const result = await memoryFind({ query: 'authentication', limit: 10 }, '/project');
346
- * ```
347
- */
348
- export async function memoryFind(params, projectRoot) {
349
- try {
350
- const root = resolveRoot(projectRoot);
351
- const result = await searchBrainCompact(root, {
352
- query: params.query,
353
- limit: params.limit,
354
- tables: params.tables,
355
- dateStart: params.dateStart,
356
- dateEnd: params.dateEnd,
357
- agent: params.agent,
358
- });
359
- return { success: true, data: result };
360
- }
361
- catch (error) {
362
- return {
363
- success: false,
364
- error: {
365
- code: 'E_BRAIN_SEARCH',
366
- message: error instanceof Error ? error.message : String(error),
367
- },
368
- };
369
- }
370
- }
371
- /**
372
- * Chronological context around a brain entry anchor.
373
- *
374
- * @param params - Timeline parameters including anchor ID and window size
375
- * @param projectRoot - Optional project root path; defaults to resolved root
376
- * @returns EngineResult with chronologically ordered entries around the anchor
377
- *
378
- * @remarks
379
- * Retrieves entries before and after a given anchor ID for temporal context.
380
- * Useful for understanding the sequence of observations and decisions.
381
- *
382
- * @example
383
- * ```typescript
384
- * const result = await memoryTimeline({ anchorId: 'O-abc123', window: 5 }, '/project');
385
- * ```
386
- */
387
- export async function memoryTimeline(params, projectRoot) {
388
- try {
389
- const root = resolveRoot(projectRoot);
390
- const result = await timelineBrain(root, {
391
- anchor: params.anchor,
392
- depthBefore: params.depthBefore,
393
- depthAfter: params.depthAfter,
394
- });
395
- return { success: true, data: result };
396
- }
397
- catch (error) {
398
- return {
399
- success: false,
400
- error: {
401
- code: 'E_BRAIN_TIMELINE',
402
- message: error instanceof Error ? error.message : String(error),
403
- },
404
- };
405
- }
406
- }
407
- /**
408
- * Batch fetch brain entries by IDs.
409
- *
410
- * @param params - Fetch parameters including an array of entry IDs
411
- * @param projectRoot - Optional project root path; defaults to resolved root
412
- * @returns EngineResult with full entry details for each requested ID
413
- *
414
- * @remarks
415
- * Use after memoryFind to retrieve full details for specific entries.
416
- * Part of the 3-layer retrieval pattern: search -> filter -> fetch.
417
- *
418
- * @example
419
- * ```typescript
420
- * const result = await memoryFetch({ ids: ['O-abc123', 'D-def456'] }, '/project');
421
- * ```
422
- */
423
- export async function memoryFetch(params, projectRoot) {
424
- try {
425
- const root = resolveRoot(projectRoot);
426
- const result = await fetchBrainEntries(root, { ids: params.ids });
427
- return { success: true, data: result };
428
- }
429
- catch (error) {
430
- return {
431
- success: false,
432
- error: {
433
- code: 'E_BRAIN_FETCH',
434
- message: error instanceof Error ? error.message : String(error),
435
- },
436
- };
437
- }
438
- }
439
- /**
440
- * Save an observation to brain.db.
441
- *
442
- * @param params - Observation data including text, title, and optional tags
443
- * @param projectRoot - Optional project root path; defaults to resolved root
444
- * @returns EngineResult with the stored observation ID
445
- *
446
- * @remarks
447
- * Creates a new observation entry in brain.db with an O-prefixed ID.
448
- * Optionally refreshes the memory bridge after storing.
449
- *
450
- * @example
451
- * ```typescript
452
- * const result = await memoryObserve({ text: 'Auth uses JWT', title: 'Auth discovery' }, '/project');
453
- * ```
454
- */
455
- export async function memoryObserve(params, projectRoot) {
456
- try {
457
- const root = resolveRoot(projectRoot);
458
- const observeParams = {
459
- text: params.text,
460
- title: params.title,
461
- type: params.type,
462
- project: params.project,
463
- sourceSessionId: params.sourceSessionId,
464
- sourceType: params.sourceType,
465
- agent: params.agent,
466
- };
467
- // T419: route mental-model observations (agent-tagged, relevant type) through
468
- // the async reinforcement queue for non-blocking writes (ULTRAPLAN L5).
469
- // All other observations use the existing synchronous path.
470
- let result;
471
- if (isMentalModelObservation(observeParams) && observeParams.agent) {
472
- result = await mentalModelQueue.enqueue(root, {
473
- ...observeParams,
474
- agent: observeParams.agent,
475
- });
476
- }
477
- else {
478
- result = await observeBrain(root, observeParams);
479
- }
480
- return { success: true, data: result };
481
- }
482
- catch (error) {
483
- return {
484
- success: false,
485
- error: {
486
- code: 'E_BRAIN_OBSERVE',
487
- message: error instanceof Error ? error.message : String(error),
488
- },
489
- };
490
- }
491
- }
492
- // ============================================================================
493
- // BRAIN Pattern Operations (T4770)
494
- // ============================================================================
495
- /**
496
- * Store a pattern to BRAIN memory.
497
- *
498
- * @param params - Pattern data including pattern string, type, and confidence
499
- * @param projectRoot - Optional project root path; defaults to resolved root
500
- * @returns EngineResult with the stored pattern ID
501
- *
502
- * @remarks
503
- * Persists a detected pattern (success or failure) to brain.db for future scoring.
504
- *
505
- * @example
506
- * ```typescript
507
- * const result = await memoryPatternStore({ pattern: 'migration', type: 'success' }, '/project');
508
- * ```
509
- */
510
- export async function memoryPatternStore(params, projectRoot) {
511
- try {
512
- const root = resolveRoot(projectRoot);
513
- const result = await storePattern(root, params);
514
- return { success: true, data: result };
515
- }
516
- catch (error) {
517
- return {
518
- success: false,
519
- error: {
520
- code: 'E_PATTERN_STORE',
521
- message: error instanceof Error ? error.message : String(error),
522
- },
523
- };
524
- }
525
- }
526
- /**
527
- * Search patterns in BRAIN memory.
528
- *
529
- * @param params - Search parameters including query and type filter
530
- * @param projectRoot - Optional project root path; defaults to resolved root
531
- * @returns EngineResult with matching pattern entries
532
- *
533
- * @remarks
534
- * Queries the brain.db patterns table with optional type filtering.
535
- *
536
- * @example
537
- * ```typescript
538
- * const result = await memoryPatternFind({ type: 'success', limit: 10 }, '/project');
539
- * ```
540
- */
541
- export async function memoryPatternFind(params, projectRoot) {
542
- try {
543
- const root = resolveRoot(projectRoot);
544
- const results = await searchPatterns(root, params);
545
- return { success: true, data: { patterns: results, total: results.length } };
546
- }
547
- catch (error) {
548
- return {
549
- success: false,
550
- error: {
551
- code: 'E_PATTERN_SEARCH',
552
- message: error instanceof Error ? error.message : String(error),
553
- },
554
- };
555
- }
556
- }
557
- /**
558
- * Get pattern memory statistics.
559
- *
560
- * @param projectRoot - Optional project root path; defaults to resolved root
561
- * @returns EngineResult with pattern counts by type and overall totals
562
- *
563
- * @remarks
564
- * Aggregates pattern data from brain.db to provide type distribution and counts.
565
- *
566
- * @example
567
- * ```typescript
568
- * const result = await memoryPatternStats('/project');
569
- * ```
570
- */
571
- export async function memoryPatternStats(projectRoot) {
572
- try {
573
- const root = resolveRoot(projectRoot);
574
- const stats = await patternStats(root);
575
- return { success: true, data: stats };
576
- }
577
- catch (error) {
578
- return {
579
- success: false,
580
- error: {
581
- code: 'E_PATTERN_STATS',
582
- message: error instanceof Error ? error.message : String(error),
583
- },
584
- };
585
- }
586
- }
587
- // ============================================================================
588
- // BRAIN Learning Operations (T4770)
589
- // ============================================================================
590
- /**
591
- * Store a learning to BRAIN memory.
592
- *
593
- * @param params - Learning data including text and confidence level
594
- * @param projectRoot - Optional project root path; defaults to resolved root
595
- * @returns EngineResult with the stored learning ID
596
- *
597
- * @remarks
598
- * Creates a new learning entry in brain.db with an L-prefixed ID.
599
- *
600
- * @example
601
- * ```typescript
602
- * const result = await memoryLearningStore({ text: 'Drizzle v1 requires beta flag' }, '/project');
603
- * ```
604
- */
605
- export async function memoryLearningStore(params, projectRoot) {
606
- try {
607
- const root = resolveRoot(projectRoot);
608
- const result = await storeLearning(root, params);
609
- return { success: true, data: result };
610
- }
611
- catch (error) {
612
- return {
613
- success: false,
614
- error: {
615
- code: 'E_LEARNING_STORE',
616
- message: error instanceof Error ? error.message : String(error),
617
- },
618
- };
619
- }
620
- }
621
- /**
622
- * Search learnings in BRAIN memory.
623
- *
624
- * @param params - Search parameters including query and limit
625
- * @param projectRoot - Optional project root path; defaults to resolved root
626
- * @returns EngineResult with matching learning entries
627
- *
628
- * @remarks
629
- * Queries the brain.db learnings table with optional text filtering.
630
- *
631
- * @example
632
- * ```typescript
633
- * const result = await memoryLearningFind({ query: 'drizzle' }, '/project');
634
- * ```
635
- */
636
- export async function memoryLearningFind(params, projectRoot) {
637
- try {
638
- const root = resolveRoot(projectRoot);
639
- const results = await searchLearnings(root, params);
640
- return { success: true, data: { learnings: results, total: results.length } };
641
- }
642
- catch (error) {
643
- return {
644
- success: false,
645
- error: {
646
- code: 'E_LEARNING_SEARCH',
647
- message: error instanceof Error ? error.message : String(error),
648
- },
649
- };
650
- }
651
- }
652
- /**
653
- * Get learning memory statistics.
654
- *
655
- * @param projectRoot - Optional project root path; defaults to resolved root
656
- * @returns EngineResult with learning counts and confidence distribution
657
- *
658
- * @remarks
659
- * Aggregates learning data from brain.db to provide totals and breakdowns.
660
- *
661
- * @example
662
- * ```typescript
663
- * const result = await memoryLearningStats('/project');
664
- * ```
665
- */
666
- export async function memoryLearningStats(projectRoot) {
667
- try {
668
- const root = resolveRoot(projectRoot);
669
- const stats = await learningStats(root);
670
- return { success: true, data: stats };
671
- }
672
- catch (error) {
673
- return {
674
- success: false,
675
- error: {
676
- code: 'E_LEARNING_STATS',
677
- message: error instanceof Error ? error.message : String(error),
678
- },
679
- };
680
- }
681
- }
682
- // ============================================================================
683
- // BRAIN Advanced Queries & Links (T5241)
684
- // ============================================================================
685
- /**
686
- * Find contradictory entries in brain.db.
687
- *
688
- * @param projectRoot - Optional project root path; defaults to resolved root
689
- * @returns EngineResult with pairs of contradicting observations
690
- *
691
- * @remarks
692
- * Scans brain.db for observations that contradict each other based on
693
- * semantic similarity and opposing sentiment or content.
694
- *
695
- * @example
696
- * ```typescript
697
- * const result = await memoryContradictions('/project');
698
- * if (result.success) console.log(result.data.contradictions);
699
- * ```
700
- */
701
- export async function memoryContradictions(projectRoot) {
702
- try {
703
- const root = resolveRoot(projectRoot);
704
- const { getBrainDb, getBrainNativeDb } = await import('../store/brain-sqlite.js');
705
- await getBrainDb(root);
706
- const nativeDb = getBrainNativeDb();
707
- if (!nativeDb) {
708
- return { success: true, data: { contradictions: [] } };
709
- }
710
- // Negation patterns for detecting contradictions (adapted from manifest logic)
711
- const negationPairs = [
712
- [/\bdoes NOT\b/i, /\bdoes\b(?!.*\bnot\b)/i],
713
- [/\bcannot\b/i, /\bcan\b(?!.*\bnot\b)/i],
714
- [/\bno\s+\w+\s+required\b/i, /\brequired\b(?!.*\bno\b)/i],
715
- [
716
- /\bnot\s+(?:available|supported|possible|recommended)\b/i,
717
- /\b(?:available|supported|possible|recommended)\b(?!.*\bnot\b)/i,
718
- ],
719
- [/\bwithout\b/i, /\brequires?\b/i],
720
- [/\bavoid\b/i, /\buse\b/i],
721
- [/\bdeprecated\b/i, /\brecommended\b/i],
722
- [/\banti-pattern\b/i, /\bbest practice\b/i],
723
- ];
724
- // Fetch all decisions with context for comparison
725
- const decisions = nativeDb
726
- .prepare(`
727
- SELECT id, type, decision, rationale, context_task_id, created_at
728
- FROM brain_decisions
729
- ORDER BY created_at DESC
730
- `)
731
- .all();
732
- // Fetch all patterns
733
- const patterns = nativeDb
734
- .prepare(`
735
- SELECT id, type, pattern, context, anti_pattern, created_at
736
- FROM brain_patterns
737
- ORDER BY created_at DESC
738
- `)
739
- .all();
740
- // Fetch all learnings
741
- const learnings = nativeDb
742
- .prepare(`
743
- SELECT id, insight, source, created_at
744
- FROM brain_learnings
745
- ORDER BY created_at DESC
746
- `)
747
- .all();
748
- const contradictions = [];
749
- const seenPairs = new Set();
750
- // Helper to create sorted pair key
751
- const pairKey = (idA, idB) => (idA < idB ? `${idA}::${idB}` : `${idB}::${idA}`);
752
- // Check decisions against each other (grouped by task context)
753
- const decisionsByTask = new Map();
754
- for (const d of decisions) {
755
- const key = d.context_task_id;
756
- if (!decisionsByTask.has(key))
757
- decisionsByTask.set(key, []);
758
- decisionsByTask.get(key).push(d);
759
- }
760
- for (const [taskId, taskDecisions] of decisionsByTask) {
761
- if (taskDecisions.length < 2)
762
- continue;
763
- for (let i = 0; i < taskDecisions.length; i++) {
764
- for (let j = i + 1; j < taskDecisions.length; j++) {
765
- const a = taskDecisions[i];
766
- const b = taskDecisions[j];
767
- const key = pairKey(a.id, b.id);
768
- if (seenPairs.has(key))
769
- continue;
770
- const contentA = `${a.decision} ${a.rationale}`;
771
- const contentB = `${b.decision} ${b.rationale}`;
772
- for (const [patternNeg, patternPos] of negationPairs) {
773
- if ((patternNeg.test(contentA) && patternPos.test(contentB)) ||
774
- (patternPos.test(contentA) && patternNeg.test(contentB))) {
775
- seenPairs.add(key);
776
- contradictions.push({
777
- entryA: {
778
- id: a.id,
779
- type: 'decision',
780
- content: a.decision,
781
- createdAt: a.created_at,
782
- },
783
- entryB: {
784
- id: b.id,
785
- type: 'decision',
786
- content: b.decision,
787
- createdAt: b.created_at,
788
- },
789
- context: taskId || undefined,
790
- conflictDetails: `Negation pattern: "${contentA.slice(0, 80)}..." vs "${contentB.slice(0, 80)}..."`,
791
- });
792
- break;
793
- }
794
- }
795
- }
796
- }
797
- }
798
- // Check patterns with anti-patterns
799
- for (const p of patterns) {
800
- if (p.anti_pattern) {
801
- contradictions.push({
802
- entryA: { id: p.id, type: 'pattern', content: p.pattern, createdAt: p.created_at },
803
- entryB: {
804
- id: p.id,
805
- type: 'anti-pattern',
806
- content: p.anti_pattern,
807
- createdAt: p.created_at,
808
- },
809
- conflictDetails: `Pattern defines its own anti-pattern`,
810
- });
811
- }
812
- }
813
- // Check learnings against each other
814
- for (let i = 0; i < learnings.length; i++) {
815
- for (let j = i + 1; j < learnings.length; j++) {
816
- const a = learnings[i];
817
- const b = learnings[j];
818
- const key = pairKey(a.id, b.id);
819
- if (seenPairs.has(key))
820
- continue;
821
- for (const [patternNeg, patternPos] of negationPairs) {
822
- if ((patternNeg.test(a.insight) && patternPos.test(b.insight)) ||
823
- (patternPos.test(a.insight) && patternNeg.test(b.insight))) {
824
- seenPairs.add(key);
825
- contradictions.push({
826
- entryA: { id: a.id, type: 'learning', content: a.insight, createdAt: a.created_at },
827
- entryB: { id: b.id, type: 'learning', content: b.insight, createdAt: b.created_at },
828
- conflictDetails: `Learning contradiction detected`,
829
- });
830
- break;
831
- }
832
- }
833
- }
834
- }
835
- return { success: true, data: { contradictions } };
836
- }
837
- catch (error) {
838
- return {
839
- success: false,
840
- error: {
841
- code: 'E_CONTRADICTIONS',
842
- message: error instanceof Error ? error.message : String(error),
843
- },
844
- };
845
- }
846
- }
847
- /**
848
- * Find superseded entries in brain.db.
849
- *
850
- * Identifies entries that have been superseded by newer entries on the same topic.
851
- *
852
- * @param params - Superseded search parameters
853
- * @param projectRoot - Optional project root path; defaults to resolved root
854
- * @returns EngineResult with superseded entry pairs and their replacements
855
- *
856
- * @remarks
857
- * Scans brain.db for entries where a newer observation or decision covers
858
- * the same topic, rendering the older entry obsolete.
859
- *
860
- * For brain.db, we group by:
861
- * - Decisions: type + contextTaskId/contextEpicId
862
- * - Patterns: type + context (first 100 chars for similarity)
863
- * - Learnings: source + applicableTypes
864
- * - Observations: type + project
865
- *
866
- * @example
867
- * ```typescript
868
- * const result = await memorySuperseded({ type: 'decision' }, '/project');
869
- * ```
870
- */
871
- export async function memorySuperseded(params, projectRoot) {
872
- try {
873
- const root = resolveRoot(projectRoot);
874
- const { getBrainDb, getBrainNativeDb } = await import('../store/brain-sqlite.js');
875
- await getBrainDb(root);
876
- const nativeDb = getBrainNativeDb();
877
- if (!nativeDb) {
878
- return { success: true, data: { superseded: [] } };
879
- }
880
- const superseded = [];
881
- // Helper to normalize and group by key
882
- const addSuperseded = (entries, groupKey) => {
883
- if (entries.length < 2)
884
- return;
885
- // Sort by creation date (oldest first)
886
- const sorted = [...entries].sort((a, b) => a.createdAt.localeCompare(b.createdAt));
887
- // All but the newest are superseded by the newest
888
- const newest = sorted[sorted.length - 1];
889
- for (let i = 0; i < sorted.length - 1; i++) {
890
- superseded.push({
891
- oldEntry: sorted[i],
892
- replacement: newest,
893
- grouping: groupKey,
894
- });
895
- }
896
- };
897
- // === DECISIONS: Group by type + contextTaskId/contextEpicId ===
898
- const decisionGroups = new Map();
899
- const decisionQuery = params?.type
900
- ? `SELECT id, type, decision, context_task_id, context_epic_id, created_at
901
- FROM brain_decisions WHERE type = ? ORDER BY created_at DESC`
902
- : `SELECT id, type, decision, context_task_id, context_epic_id, created_at
903
- FROM brain_decisions ORDER BY created_at DESC`;
904
- const decisionParams = params?.type ? [params.type] : [];
905
- const decisions = nativeDb.prepare(decisionQuery).all(...decisionParams);
906
- for (const d of decisions) {
907
- const contextKey = d.context_task_id || d.context_epic_id || 'general';
908
- const groupKey = `decision:${d.type}:${contextKey}`;
909
- if (!decisionGroups.has(groupKey))
910
- decisionGroups.set(groupKey, []);
911
- decisionGroups.get(groupKey).push({
912
- id: d.id,
913
- type: d.type,
914
- createdAt: d.created_at,
915
- summary: d.decision.slice(0, 100),
916
- });
917
- }
918
- for (const [key, entries] of decisionGroups) {
919
- addSuperseded(entries, key);
920
- }
921
- // === PATTERNS: Group by type + context (first 100 chars for similarity) ===
922
- const patternGroups = new Map();
923
- const patternQuery = params?.type
924
- ? `SELECT id, type, pattern, context, extracted_at
925
- FROM brain_patterns WHERE type = ? ORDER BY extracted_at DESC`
926
- : `SELECT id, type, pattern, context, extracted_at
927
- FROM brain_patterns ORDER BY extracted_at DESC`;
928
- const patternParams = params?.type ? [params.type] : [];
929
- const patterns = nativeDb.prepare(patternQuery).all(...patternParams);
930
- for (const p of patterns) {
931
- // Use first 80 chars of context as grouping key for similarity
932
- const contextKey = p.context?.slice(0, 80) || 'unknown';
933
- const groupKey = `pattern:${p.type}:${contextKey}`;
934
- if (!patternGroups.has(groupKey))
935
- patternGroups.set(groupKey, []);
936
- patternGroups.get(groupKey).push({
937
- id: p.id,
938
- type: p.type,
939
- createdAt: p.extracted_at,
940
- summary: p.pattern.slice(0, 100),
941
- });
942
- }
943
- for (const [key, entries] of patternGroups) {
944
- addSuperseded(entries, key);
945
- }
946
- // === LEARNINGS: Group by source + applicableTypes ===
947
- const learningGroups = new Map();
948
- const learningQuery = `SELECT id, source, insight, applicable_types_json, created_at
949
- FROM brain_learnings ORDER BY created_at DESC`;
950
- const learnings = nativeDb.prepare(learningQuery).all();
951
- for (const l of learnings) {
952
- const applicableTypes = l.applicable_types_json
953
- ? JSON.parse(l.applicable_types_json).slice(0, 2).join(',')
954
- : 'general';
955
- const groupKey = `learning:${l.source}:${applicableTypes}`;
956
- if (!learningGroups.has(groupKey))
957
- learningGroups.set(groupKey, []);
958
- learningGroups.get(groupKey).push({
959
- id: l.id,
960
- type: 'learning',
961
- createdAt: l.created_at,
962
- summary: l.insight.slice(0, 100),
963
- });
964
- }
965
- for (const [key, entries] of learningGroups) {
966
- addSuperseded(entries, key);
967
- }
968
- // === OBSERVATIONS: Group by type + project ===
969
- const observationGroups = new Map();
970
- const observationQuery = params?.type
971
- ? `SELECT id, type, title, project, created_at
972
- FROM brain_observations WHERE type = ? ORDER BY created_at DESC`
973
- : `SELECT id, type, title, project, created_at
974
- FROM brain_observations ORDER BY created_at DESC`;
975
- const observationParams = params?.type ? [params.type] : [];
976
- const observations = nativeDb.prepare(observationQuery).all(...observationParams);
977
- for (const o of observations) {
978
- const projectKey = params?.project ? params.project : o.project || 'general';
979
- const groupKey = `observation:${o.type}:${projectKey}`;
980
- if (!observationGroups.has(groupKey))
981
- observationGroups.set(groupKey, []);
982
- observationGroups.get(groupKey).push({
983
- id: o.id,
984
- type: o.type,
985
- createdAt: o.created_at,
986
- summary: o.title.slice(0, 100),
987
- });
988
- }
989
- for (const [key, entries] of observationGroups) {
990
- addSuperseded(entries, key);
991
- }
992
- return { success: true, data: { superseded, total: superseded.length } };
993
- }
994
- catch (error) {
995
- return {
996
- success: false,
997
- error: {
998
- code: 'E_MEMORY_SUPERSEDED',
999
- message: error instanceof Error ? error.message : String(error),
1000
- },
1001
- };
1002
- }
1003
- }
1004
- /**
1005
- * Link a brain entry to a task.
1006
- *
1007
- * @param params - Link parameters including entryId and taskId
1008
- * @param projectRoot - Optional project root path; defaults to resolved root
1009
- * @returns EngineResult confirming the link was created
1010
- *
1011
- * @remarks
1012
- * Creates an association between a brain.db entry and a task in tasks.db.
1013
- * Used for traceability between memory entries and the work they relate to.
1014
- *
1015
- * @example
1016
- * ```typescript
1017
- * const result = await memoryLink({ entryId: 'O-abc123', taskId: 'T042' }, '/project');
1018
- * ```
1019
- */
1020
- export async function memoryLink(params, projectRoot) {
1021
- if (!params.taskId || !params.entryId) {
1022
- return {
1023
- success: false,
1024
- error: { code: 'E_INVALID_INPUT', message: 'taskId and entryId are required' },
1025
- };
1026
- }
1027
- const entryType = parseIdPrefix(params.entryId);
1028
- if (!entryType) {
1029
- return {
1030
- success: false,
1031
- error: { code: 'E_INVALID_INPUT', message: 'Invalid entryId format' },
1032
- };
1033
- }
1034
- try {
1035
- const root = resolveRoot(projectRoot);
1036
- await linkMemoryToTask(root, entryType, params.entryId, params.taskId, 'applies_to');
1037
- return {
1038
- success: true,
1039
- data: { linked: true, taskId: params.taskId, entryId: params.entryId },
1040
- };
1041
- }
1042
- catch (error) {
1043
- return {
1044
- success: false,
1045
- error: {
1046
- code: 'E_MEMORY_LINK',
1047
- message: error instanceof Error ? error.message : String(error),
1048
- },
1049
- };
1050
- }
1051
- }
1052
- /**
1053
- * Remove a link between a brain entry and a task.
1054
- *
1055
- * @param params - Unlink parameters including entryId and taskId
1056
- * @param projectRoot - Optional project root path; defaults to resolved root
1057
- * @returns EngineResult confirming the link was removed
1058
- *
1059
- * @remarks
1060
- * Removes the association created by memoryLink. Idempotent if the link
1061
- * does not exist.
1062
- *
1063
- * @example
1064
- * ```typescript
1065
- * const result = await memoryUnlink({ entryId: 'O-abc123', taskId: 'T042' }, '/project');
1066
- * ```
1067
- */
1068
- export async function memoryUnlink(params, projectRoot) {
1069
- if (!params.taskId || !params.entryId) {
1070
- return {
1071
- success: false,
1072
- error: { code: 'E_INVALID_INPUT', message: 'taskId and entryId are required' },
1073
- };
1074
- }
1075
- const entryType = parseIdPrefix(params.entryId);
1076
- if (!entryType) {
1077
- return {
1078
- success: false,
1079
- error: { code: 'E_INVALID_INPUT', message: 'Invalid entryId format' },
1080
- };
1081
- }
1082
- try {
1083
- const root = resolveRoot(projectRoot);
1084
- await unlinkMemoryFromTask(root, entryType, params.entryId, params.taskId, 'applies_to');
1085
- return {
1086
- success: true,
1087
- data: { unlinked: true, taskId: params.taskId, entryId: params.entryId },
1088
- };
1089
- }
1090
- catch (error) {
1091
- return {
1092
- success: false,
1093
- error: {
1094
- code: 'E_MEMORY_UNLINK',
1095
- message: error instanceof Error ? error.message : String(error),
1096
- },
1097
- };
1098
- }
1099
- }
1100
- // ============================================================================
1101
- // PageIndex Graph Operations (T5385)
1102
- // ============================================================================
1103
- /**
1104
- * Add a node or edge to the PageIndex graph.
1105
- *
1106
- * @param params - Graph add parameters (node data or edge endpoints)
1107
- * @param projectRoot - Optional project root path; defaults to resolved root
1108
- * @returns EngineResult confirming the node or edge was added
1109
- *
1110
- * @remarks
1111
- * Supports adding both nodes (concepts) and edges (relationships) to the
1112
- * brain.db knowledge graph (PageIndex).
1113
- *
1114
- * @example
1115
- * ```typescript
1116
- * const result = await memoryGraphAdd({ type: 'node', label: 'auth', nodeType: 'concept' }, '/project');
1117
- * ```
1118
- */
1119
- export async function memoryGraphAdd(params, projectRoot) {
1120
- try {
1121
- const root = resolveRoot(projectRoot);
1122
- const accessor = await getBrainAccessor(root);
1123
- // Edge mode: fromId + toId + edgeType
1124
- if (params.fromId && params.toId && params.edgeType) {
1125
- const edge = await accessor.addPageEdge({
1126
- fromId: params.fromId,
1127
- toId: params.toId,
1128
- edgeType: params.edgeType,
1129
- weight: params.weight,
1130
- });
1131
- return { success: true, data: { type: 'edge', edge } };
1132
- }
1133
- // Node mode: nodeId + nodeType + label
1134
- if (params.nodeId && params.nodeType && params.label) {
1135
- const node = await accessor.addPageNode({
1136
- id: params.nodeId,
1137
- nodeType: params.nodeType,
1138
- label: params.label,
1139
- metadataJson: params.metadataJson,
1140
- });
1141
- return { success: true, data: { type: 'node', node } };
1142
- }
1143
- return {
1144
- success: false,
1145
- error: {
1146
- code: 'E_INVALID_INPUT',
1147
- message: 'Provide (nodeId + nodeType + label) for a node or (fromId + toId + edgeType) for an edge',
1148
- },
1149
- };
1150
- }
1151
- catch (error) {
1152
- return {
1153
- success: false,
1154
- error: {
1155
- code: 'E_GRAPH_ADD',
1156
- message: error instanceof Error ? error.message : String(error),
1157
- },
1158
- };
1159
- }
1160
- }
1161
- /**
1162
- * Get a node and its edges from the PageIndex graph.
1163
- *
1164
- * @param params - Parameters including the node ID to look up
1165
- * @param projectRoot - Optional project root path; defaults to resolved root
1166
- * @returns EngineResult with the node data and its connected edges
1167
- *
1168
- * @remarks
1169
- * Returns the full node record plus all edges where the node appears as
1170
- * either source or target.
1171
- *
1172
- * @example
1173
- * ```typescript
1174
- * const result = await memoryGraphShow({ nodeId: 'auth' }, '/project');
1175
- * ```
1176
- */
1177
- export async function memoryGraphShow(params, projectRoot) {
1178
- if (!params.nodeId) {
1179
- return { success: false, error: { code: 'E_INVALID_INPUT', message: 'nodeId is required' } };
1180
- }
1181
- try {
1182
- const root = resolveRoot(projectRoot);
1183
- const accessor = await getBrainAccessor(root);
1184
- const node = await accessor.getPageNode(params.nodeId);
1185
- if (!node) {
1186
- return {
1187
- success: false,
1188
- error: { code: 'E_NOT_FOUND', message: `Node '${params.nodeId}' not found` },
1189
- };
1190
- }
1191
- const edges = await accessor.getPageEdges(params.nodeId, 'both');
1192
- return { success: true, data: { node, edges } };
1193
- }
1194
- catch (error) {
1195
- return {
1196
- success: false,
1197
- error: {
1198
- code: 'E_GRAPH_SHOW',
1199
- message: error instanceof Error ? error.message : String(error),
1200
- },
1201
- };
1202
- }
1203
- }
1204
- /**
1205
- * Get neighbor nodes from the PageIndex graph.
1206
- *
1207
- * @param params - Parameters including the node ID and optional depth
1208
- * @param projectRoot - Optional project root path; defaults to resolved root
1209
- * @returns EngineResult with neighboring nodes and connecting edges
1210
- *
1211
- * @remarks
1212
- * Traverses the knowledge graph outward from a given node to find related
1213
- * concepts within the specified depth.
1214
- *
1215
- * @example
1216
- * ```typescript
1217
- * const result = await memoryGraphNeighbors({ nodeId: 'auth', depth: 2 }, '/project');
1218
- * ```
1219
- */
1220
- export async function memoryGraphNeighbors(params, projectRoot) {
1221
- if (!params.nodeId) {
1222
- return { success: false, error: { code: 'E_INVALID_INPUT', message: 'nodeId is required' } };
1223
- }
1224
- try {
1225
- const root = resolveRoot(projectRoot);
1226
- const accessor = await getBrainAccessor(root);
1227
- const neighbors = await accessor.getNeighbors(params.nodeId, params.edgeType);
1228
- return { success: true, data: { neighbors, total: neighbors.length } };
1229
- }
1230
- catch (error) {
1231
- return {
1232
- success: false,
1233
- error: {
1234
- code: 'E_GRAPH_NEIGHBORS',
1235
- message: error instanceof Error ? error.message : String(error),
1236
- },
1237
- };
1238
- }
1239
- }
1240
- // ============================================================================
1241
- // BRAIN Reasoning & Hybrid Search Operations (T5388-T5393)
1242
- // ============================================================================
1243
- /**
1244
- * Causal trace through task dependency chains.
1245
- *
1246
- * @param params - Parameters including the entry or task ID to trace
1247
- * @param projectRoot - Optional project root path; defaults to resolved root
1248
- * @returns EngineResult with the causal chain explaining why something happened
1249
- *
1250
- * @remarks
1251
- * Traces backward through task dependencies and brain entries to build
1252
- * an explanation chain for a given decision or observation.
1253
- *
1254
- * @example
1255
- * ```typescript
1256
- * const result = await memoryReasonWhy({ id: 'D-abc123' }, '/project');
1257
- * ```
1258
- */
1259
- export async function memoryReasonWhy(params, projectRoot) {
1260
- if (!params.taskId) {
1261
- return { success: false, error: { code: 'E_INVALID_INPUT', message: 'taskId is required' } };
1262
- }
1263
- try {
1264
- const root = resolveRoot(projectRoot);
1265
- const taskAccessor = await getAccessor(root);
1266
- const { reasonWhy } = await import('./brain-reasoning.js');
1267
- const result = await reasonWhy(params.taskId, root, taskAccessor);
1268
- return { success: true, data: result };
1269
- }
1270
- catch (error) {
1271
- return {
1272
- success: false,
1273
- error: {
1274
- code: 'E_REASON_WHY',
1275
- message: error instanceof Error ? error.message : String(error),
1276
- },
1277
- };
1278
- }
1279
- }
1280
- /**
1281
- * Find semantically similar entries.
1282
- *
1283
- * @param params - Parameters including the source entry ID or query text
1284
- * @param projectRoot - Optional project root path; defaults to resolved root
1285
- * @returns EngineResult with entries ranked by semantic similarity
1286
- *
1287
- * @remarks
1288
- * Uses embedding vectors or text similarity to find brain entries that are
1289
- * semantically close to the given reference.
1290
- *
1291
- * @example
1292
- * ```typescript
1293
- * const result = await memoryReasonSimilar({ id: 'O-abc123', limit: 5 }, '/project');
1294
- * ```
1295
- */
1296
- export async function memoryReasonSimilar(params, projectRoot) {
1297
- if (!params.entryId) {
1298
- return { success: false, error: { code: 'E_INVALID_INPUT', message: 'entryId is required' } };
1299
- }
1300
- try {
1301
- const root = resolveRoot(projectRoot);
1302
- const { reasonSimilar } = await import('./brain-reasoning.js');
1303
- const results = await reasonSimilar(params.entryId, root, params.limit);
1304
- return { success: true, data: { results, total: results.length } };
1305
- }
1306
- catch (error) {
1307
- return {
1308
- success: false,
1309
- error: {
1310
- code: 'E_REASON_SIMILAR',
1311
- message: error instanceof Error ? error.message : String(error),
1312
- },
1313
- };
1314
- }
1315
- }
1316
- /**
1317
- * Hybrid search across FTS5, vector, and graph.
1318
- *
1319
- * @param params - Search parameters including query and optional mode/limit
1320
- * @param projectRoot - Optional project root path; defaults to resolved root
1321
- * @returns EngineResult with merged and ranked results from all search backends
1322
- *
1323
- * @remarks
1324
- * Combines full-text search (FTS5), vector similarity, and graph traversal
1325
- * to produce comprehensive search results with merged relevance scoring.
1326
- *
1327
- * @example
1328
- * ```typescript
1329
- * const result = await memorySearchHybrid({ query: 'authentication flow' }, '/project');
1330
- * ```
1331
- */
1332
- export async function memorySearchHybrid(params, projectRoot) {
1333
- if (!params.query) {
1334
- return { success: false, error: { code: 'E_INVALID_INPUT', message: 'query is required' } };
1335
- }
1336
- try {
1337
- const root = resolveRoot(projectRoot);
1338
- const { hybridSearch } = await import('./brain-search.js');
1339
- const results = await hybridSearch(params.query, root, {
1340
- limit: params.limit,
1341
- });
1342
- return { success: true, data: { results, total: results.length } };
1343
- }
1344
- catch (error) {
1345
- return {
1346
- success: false,
1347
- error: {
1348
- code: 'E_HYBRID_SEARCH',
1349
- message: error instanceof Error ? error.message : String(error),
1350
- },
1351
- };
1352
- }
1353
- }
1354
- // ============================================================================
1355
- // Brain Graph Traversal Operations (T535)
1356
- // ============================================================================
1357
- /**
1358
- * BFS traversal of the brain knowledge graph from a seed node.
1359
- *
1360
- * @param params - Traversal parameters: nodeId and optional maxDepth (default 3)
1361
- * @param projectRoot - Optional project root path; defaults to resolved root
1362
- * @returns EngineResult with traversal nodes annotated with depth
1363
- *
1364
- * @remarks
1365
- * Uses a recursive CTE against brain_page_nodes / brain_page_edges.
1366
- * Follows edges bidirectionally. Returns the seed node at depth 0.
1367
- *
1368
- * @example
1369
- * ```typescript
1370
- * const result = await memoryGraphTrace({ nodeId: 'decision:D-abc123', maxDepth: 2 }, '/project');
1371
- * ```
1372
- */
1373
- export async function memoryGraphTrace(params, projectRoot) {
1374
- if (!params.nodeId) {
1375
- return { success: false, error: { code: 'E_INVALID_INPUT', message: 'nodeId is required' } };
1376
- }
1377
- try {
1378
- const root = resolveRoot(projectRoot);
1379
- const { traceBrainGraph } = await import('./graph-queries.js');
1380
- const nodes = await traceBrainGraph(root, params.nodeId, params.maxDepth ?? 3);
1381
- if (nodes.length === 0) {
1382
- return {
1383
- success: false,
1384
- error: { code: 'E_NOT_FOUND', message: `Node '${params.nodeId}' not found in brain graph` },
1385
- };
1386
- }
1387
- return { success: true, data: { nodes, total: nodes.length, seed: params.nodeId } };
1388
- }
1389
- catch (error) {
1390
- return {
1391
- success: false,
1392
- error: {
1393
- code: 'E_GRAPH_TRACE',
1394
- message: error instanceof Error ? error.message : String(error),
1395
- },
1396
- };
1397
- }
1398
- }
1399
- /**
1400
- * Return the immediate (1-hop) neighbours of a brain graph node.
1401
- *
1402
- * @param params - Parameters: nodeId, optional edgeType filter
1403
- * @param projectRoot - Optional project root path; defaults to resolved root
1404
- * @returns EngineResult with neighbour nodes and edge metadata
1405
- *
1406
- * @remarks
1407
- * Follows edges in both directions. Results include direction ('in'/'out'),
1408
- * edge type, and weight.
1409
- *
1410
- * @example
1411
- * ```typescript
1412
- * const result = await memoryGraphRelated({ nodeId: 'decision:D-abc123', edgeType: 'applies_to' }, '/project');
1413
- * ```
1414
- */
1415
- export async function memoryGraphRelated(params, projectRoot) {
1416
- if (!params.nodeId) {
1417
- return { success: false, error: { code: 'E_INVALID_INPUT', message: 'nodeId is required' } };
1418
- }
1419
- try {
1420
- const root = resolveRoot(projectRoot);
1421
- const { relatedBrainNodes } = await import('./graph-queries.js');
1422
- const related = await relatedBrainNodes(root, params.nodeId, params.edgeType);
1423
- return { success: true, data: { related, total: related.length, seed: params.nodeId } };
1424
- }
1425
- catch (error) {
1426
- return {
1427
- success: false,
1428
- error: {
1429
- code: 'E_GRAPH_RELATED',
1430
- message: error instanceof Error ? error.message : String(error),
1431
- },
1432
- };
1433
- }
1434
- }
1435
- /**
1436
- * Return a 360-degree context view of a single brain graph node.
1437
- *
1438
- * @param params - Parameters: nodeId
1439
- * @param projectRoot - Optional project root path; defaults to resolved root
1440
- * @returns EngineResult with the node, all edges, and neighbouring nodes
1441
- *
1442
- * @remarks
1443
- * Includes the node itself, in-edges, out-edges, and all immediately
1444
- * reachable neighbour nodes with their edge relationships.
1445
- *
1446
- * @example
1447
- * ```typescript
1448
- * const result = await memoryGraphContext({ nodeId: 'decision:D-abc123' }, '/project');
1449
- * ```
1450
- */
1451
- export async function memoryGraphContext(params, projectRoot) {
1452
- if (!params.nodeId) {
1453
- return { success: false, error: { code: 'E_INVALID_INPUT', message: 'nodeId is required' } };
1454
- }
1455
- try {
1456
- const root = resolveRoot(projectRoot);
1457
- const { contextBrainNode } = await import('./graph-queries.js');
1458
- const context = await contextBrainNode(root, params.nodeId);
1459
- if (!context) {
1460
- return {
1461
- success: false,
1462
- error: { code: 'E_NOT_FOUND', message: `Node '${params.nodeId}' not found in brain graph` },
1463
- };
1464
- }
1465
- return { success: true, data: context };
1466
- }
1467
- catch (error) {
1468
- return {
1469
- success: false,
1470
- error: {
1471
- code: 'E_GRAPH_CONTEXT',
1472
- message: error instanceof Error ? error.message : String(error),
1473
- },
1474
- };
1475
- }
1476
- }
1477
- /**
1478
- * Return aggregate statistics for the brain knowledge graph.
1479
- *
1480
- * @param projectRoot - Optional project root path; defaults to resolved root
1481
- * @returns EngineResult with node counts by type, edge counts by type, and totals
1482
- *
1483
- * @example
1484
- * ```typescript
1485
- * const result = await memoryGraphStatsFull('/project');
1486
- * ```
1487
- */
1488
- export async function memoryGraphStatsFull(projectRoot) {
1489
- try {
1490
- const root = resolveRoot(projectRoot);
1491
- const { graphStats } = await import('./graph-queries.js');
1492
- const stats = await graphStats(root);
1493
- return { success: true, data: stats };
1494
- }
1495
- catch (error) {
1496
- return {
1497
- success: false,
1498
- error: {
1499
- code: 'E_GRAPH_STATS',
1500
- message: error instanceof Error ? error.message : String(error),
1501
- },
1502
- };
1503
- }
1504
- }
1505
- /**
1506
- * Remove a node or edge from the PageIndex graph.
1507
- *
1508
- * @param params - Parameters specifying the node or edge to remove
1509
- * @param projectRoot - Optional project root path; defaults to resolved root
1510
- * @returns EngineResult confirming the removal
1511
- *
1512
- * @remarks
1513
- * Removes a node (and its connected edges) or a specific edge from the
1514
- * brain.db knowledge graph.
1515
- *
1516
- * @example
1517
- * ```typescript
1518
- * const result = await memoryGraphRemove({ type: 'node', nodeId: 'stale-concept' }, '/project');
1519
- * ```
1520
- */
1521
- export async function memoryGraphRemove(params, projectRoot) {
1522
- try {
1523
- const root = resolveRoot(projectRoot);
1524
- const accessor = await getBrainAccessor(root);
1525
- // Edge removal: fromId + toId + edgeType
1526
- if (params.fromId && params.toId && params.edgeType) {
1527
- await accessor.removePageEdge(params.fromId, params.toId, params.edgeType);
1528
- return {
1529
- success: true,
1530
- data: {
1531
- removed: 'edge',
1532
- fromId: params.fromId,
1533
- toId: params.toId,
1534
- edgeType: params.edgeType,
1535
- },
1536
- };
1537
- }
1538
- // Node removal: nodeId (cascades edges)
1539
- if (params.nodeId) {
1540
- await accessor.removePageNode(params.nodeId);
1541
- return { success: true, data: { removed: 'node', nodeId: params.nodeId } };
1542
- }
1543
- return {
1544
- success: false,
1545
- error: {
1546
- code: 'E_INVALID_INPUT',
1547
- message: 'Provide nodeId to remove a node or (fromId + toId + edgeType) to remove an edge',
1548
- },
1549
- };
1550
- }
1551
- catch (error) {
1552
- return {
1553
- success: false,
1554
- error: {
1555
- code: 'E_GRAPH_REMOVE',
1556
- message: error instanceof Error ? error.message : String(error),
1557
- },
1558
- };
1559
- }
1560
- }
1561
- // ============================================================================
1562
- // Quality Feedback Report (T555)
1563
- // ============================================================================
1564
- /**
1565
- * Return the BRAIN memory quality dashboard report.
1566
- *
1567
- * Aggregates retrieval log, usage log, and all four typed tables to produce
1568
- * a MemoryQualityReport with tier distribution, top/never-retrieved entries,
1569
- * quality score distribution, and noise ratio.
1570
- *
1571
- * @param projectRoot - Optional project root path; defaults to resolved root
1572
- * @returns EngineResult containing a MemoryQualityReport object
1573
- *
1574
- * @example
1575
- * ```typescript
1576
- * const result = await memoryQualityReport('/project');
1577
- * if (result.success) console.log(result.data.noiseRatio);
1578
- * ```
1579
- */
1580
- export async function memoryQualityReport(projectRoot) {
1581
- try {
1582
- const root = resolveRoot(projectRoot);
1583
- const { getMemoryQualityReport } = await import('./quality-feedback.js');
1584
- const report = await getMemoryQualityReport(root);
1585
- return { success: true, data: report };
1586
- }
1587
- catch (error) {
1588
- return {
1589
- success: false,
1590
- error: {
1591
- code: 'E_QUALITY_REPORT',
1592
- message: error instanceof Error ? error.message : String(error),
1593
- },
1594
- };
1595
- }
1596
- }
1597
- //# sourceMappingURL=engine-compat.js.map