@cleocode/core 2026.4.58 → 2026.4.59

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 (933) hide show
  1. package/dist/adapters/adapter-registry.js +64 -0
  2. package/dist/adapters/adapter-registry.js.map +1 -0
  3. package/dist/adapters/discovery.js +83 -0
  4. package/dist/adapters/discovery.js.map +1 -0
  5. package/dist/adapters/index.js +9 -0
  6. package/dist/adapters/index.js.map +1 -0
  7. package/dist/adapters/manager.js +260 -0
  8. package/dist/adapters/manager.js.map +1 -0
  9. package/dist/admin/export-tasks.js +171 -0
  10. package/dist/admin/export-tasks.js.map +1 -0
  11. package/dist/admin/export.js +103 -0
  12. package/dist/admin/export.js.map +1 -0
  13. package/dist/admin/help.js +106 -0
  14. package/dist/admin/help.js.map +1 -0
  15. package/dist/admin/import-tasks.js +182 -0
  16. package/dist/admin/import-tasks.js.map +1 -0
  17. package/dist/admin/import.js +129 -0
  18. package/dist/admin/import.js.map +1 -0
  19. package/dist/admin/index.js +13 -0
  20. package/dist/admin/index.js.map +1 -0
  21. package/dist/adrs/find.js +134 -0
  22. package/dist/adrs/find.js.map +1 -0
  23. package/dist/adrs/index.js +15 -0
  24. package/dist/adrs/index.js.map +1 -0
  25. package/dist/adrs/link-pipeline.js +160 -0
  26. package/dist/adrs/link-pipeline.js.map +1 -0
  27. package/dist/adrs/list.js +43 -0
  28. package/dist/adrs/list.js.map +1 -0
  29. package/dist/adrs/parse.js +51 -0
  30. package/dist/adrs/parse.js.map +1 -0
  31. package/dist/adrs/show.js +22 -0
  32. package/dist/adrs/show.js.map +1 -0
  33. package/dist/adrs/sync.js +232 -0
  34. package/dist/adrs/sync.js.map +1 -0
  35. package/dist/adrs/types.js +9 -0
  36. package/dist/adrs/types.js.map +1 -0
  37. package/dist/adrs/validate.js +57 -0
  38. package/dist/adrs/validate.js.map +1 -0
  39. package/dist/agents/agent-registry.js +288 -0
  40. package/dist/agents/agent-registry.js.map +1 -0
  41. package/dist/agents/agent-schema.js +82 -0
  42. package/dist/agents/agent-schema.js.map +1 -0
  43. package/dist/agents/capacity.js +116 -0
  44. package/dist/agents/capacity.js.map +1 -0
  45. package/dist/agents/execution-learning.js +474 -0
  46. package/dist/agents/execution-learning.js.map +1 -0
  47. package/dist/agents/health-monitor.js +217 -0
  48. package/dist/agents/health-monitor.js.map +1 -0
  49. package/dist/agents/index.js +29 -0
  50. package/dist/agents/index.js.map +1 -0
  51. package/dist/agents/registry.js +314 -0
  52. package/dist/agents/registry.js.map +1 -0
  53. package/dist/agents/retry.js +215 -0
  54. package/dist/agents/retry.js.map +1 -0
  55. package/dist/audit-prune.js +94 -0
  56. package/dist/audit-prune.js.map +1 -0
  57. package/dist/audit.js +68 -0
  58. package/dist/audit.js.map +1 -0
  59. package/dist/backfill/index.js +229 -0
  60. package/dist/backfill/index.js.map +1 -0
  61. package/dist/bootstrap.js +435 -0
  62. package/dist/bootstrap.js.map +1 -0
  63. package/dist/caamp/adapter.js +259 -0
  64. package/dist/caamp/adapter.js.map +1 -0
  65. package/dist/caamp/capability-check.js +38 -0
  66. package/dist/caamp/capability-check.js.map +1 -0
  67. package/dist/caamp/index.js +21 -0
  68. package/dist/caamp/index.js.map +1 -0
  69. package/dist/caamp-init.js +16 -0
  70. package/dist/caamp-init.js.map +1 -0
  71. package/dist/cleo.js +322 -0
  72. package/dist/cleo.js.map +1 -0
  73. package/dist/code/index.js +14 -0
  74. package/dist/code/index.js.map +1 -0
  75. package/dist/code/outline.js +165 -0
  76. package/dist/code/outline.js.map +1 -0
  77. package/dist/code/parser.js +420 -0
  78. package/dist/code/parser.js.map +1 -0
  79. package/dist/code/search.js +135 -0
  80. package/dist/code/search.js.map +1 -0
  81. package/dist/code/unfold.js +155 -0
  82. package/dist/code/unfold.js.map +1 -0
  83. package/dist/codebase-map/analyzers/architecture.js +129 -0
  84. package/dist/codebase-map/analyzers/architecture.js.map +1 -0
  85. package/dist/codebase-map/analyzers/concerns.js +122 -0
  86. package/dist/codebase-map/analyzers/concerns.js.map +1 -0
  87. package/dist/codebase-map/analyzers/conventions.js +149 -0
  88. package/dist/codebase-map/analyzers/conventions.js.map +1 -0
  89. package/dist/codebase-map/analyzers/integrations.js +108 -0
  90. package/dist/codebase-map/analyzers/integrations.js.map +1 -0
  91. package/dist/codebase-map/analyzers/stack.js +117 -0
  92. package/dist/codebase-map/analyzers/stack.js.map +1 -0
  93. package/dist/codebase-map/analyzers/structure.js +137 -0
  94. package/dist/codebase-map/analyzers/structure.js.map +1 -0
  95. package/dist/codebase-map/analyzers/testing.js +118 -0
  96. package/dist/codebase-map/analyzers/testing.js.map +1 -0
  97. package/dist/codebase-map/index.js +57 -0
  98. package/dist/codebase-map/index.js.map +1 -0
  99. package/dist/codebase-map/store.js +122 -0
  100. package/dist/codebase-map/store.js.map +1 -0
  101. package/dist/codebase-map/summary.js +152 -0
  102. package/dist/codebase-map/summary.js.map +1 -0
  103. package/dist/compliance/index.js +288 -0
  104. package/dist/compliance/index.js.map +1 -0
  105. package/dist/compliance/protocol-enforcement.js +332 -0
  106. package/dist/compliance/protocol-enforcement.js.map +1 -0
  107. package/dist/compliance/protocol-rules.js +786 -0
  108. package/dist/compliance/protocol-rules.js.map +1 -0
  109. package/dist/compliance/protocol-types.js +79 -0
  110. package/dist/compliance/protocol-types.js.map +1 -0
  111. package/dist/compliance/store.js +53 -0
  112. package/dist/compliance/store.js.map +1 -0
  113. package/dist/conduit/conduit-client.js +107 -0
  114. package/dist/conduit/conduit-client.js.map +1 -0
  115. package/dist/conduit/factory.js +55 -0
  116. package/dist/conduit/factory.js.map +1 -0
  117. package/dist/conduit/http-transport.js +155 -0
  118. package/dist/conduit/http-transport.js.map +1 -0
  119. package/dist/conduit/local-transport.js +255 -0
  120. package/dist/conduit/local-transport.js.map +1 -0
  121. package/dist/conduit/sse-transport.js +299 -0
  122. package/dist/conduit/sse-transport.js.map +1 -0
  123. package/dist/config/build-config.js +29 -0
  124. package/dist/config/build-config.js.map +1 -0
  125. package/dist/config.js +407 -0
  126. package/dist/config.js.map +1 -0
  127. package/dist/constants.js +18 -0
  128. package/dist/constants.js.map +1 -0
  129. package/dist/context/index.js +137 -0
  130. package/dist/context/index.js.map +1 -0
  131. package/dist/crypto/credentials.js +219 -0
  132. package/dist/crypto/credentials.js.map +1 -0
  133. package/dist/discovery.js +182 -0
  134. package/dist/discovery.js.map +1 -0
  135. package/dist/engine-result.js +12 -0
  136. package/dist/engine-result.js.map +1 -0
  137. package/dist/error-catalog.js +404 -0
  138. package/dist/error-catalog.js.map +1 -0
  139. package/dist/error-registry.js +393 -0
  140. package/dist/error-registry.js.map +1 -0
  141. package/dist/errors.js +173 -0
  142. package/dist/errors.js.map +1 -0
  143. package/dist/hooks/handlers/agent-hooks.js +106 -0
  144. package/dist/hooks/handlers/agent-hooks.js.map +1 -0
  145. package/dist/hooks/handlers/conduit-hooks.js +229 -0
  146. package/dist/hooks/handlers/conduit-hooks.js.map +1 -0
  147. package/dist/hooks/handlers/context-hooks.js +111 -0
  148. package/dist/hooks/handlers/context-hooks.js.map +1 -0
  149. package/dist/hooks/handlers/error-hooks.js +52 -0
  150. package/dist/hooks/handlers/error-hooks.js.map +1 -0
  151. package/dist/hooks/handlers/file-hooks.js +104 -0
  152. package/dist/hooks/handlers/file-hooks.js.map +1 -0
  153. package/dist/hooks/handlers/handler-helpers.js +61 -0
  154. package/dist/hooks/handlers/handler-helpers.js.map +1 -0
  155. package/dist/hooks/handlers/index.js +37 -0
  156. package/dist/hooks/handlers/index.js.map +1 -0
  157. package/dist/hooks/handlers/intelligence-hooks.js +69 -0
  158. package/dist/hooks/handlers/intelligence-hooks.js.map +1 -0
  159. package/dist/hooks/handlers/memory-bridge-refresh.js +42 -0
  160. package/dist/hooks/handlers/memory-bridge-refresh.js.map +1 -0
  161. package/dist/hooks/handlers/notification-hooks.js +62 -0
  162. package/dist/hooks/handlers/notification-hooks.js.map +1 -0
  163. package/dist/hooks/handlers/session-hooks.js +190 -0
  164. package/dist/hooks/handlers/session-hooks.js.map +1 -0
  165. package/dist/hooks/handlers/task-hooks.js +90 -0
  166. package/dist/hooks/handlers/task-hooks.js.map +1 -0
  167. package/dist/hooks/handlers/watchdog-hooks.js +162 -0
  168. package/dist/hooks/handlers/watchdog-hooks.js.map +1 -0
  169. package/dist/hooks/handlers/work-capture-hooks.js +165 -0
  170. package/dist/hooks/handlers/work-capture-hooks.js.map +1 -0
  171. package/dist/hooks/index.js +13 -0
  172. package/dist/hooks/index.js.map +1 -0
  173. package/dist/hooks/payload-schemas.js +220 -0
  174. package/dist/hooks/payload-schemas.js.map +1 -0
  175. package/dist/hooks/provider-hooks.js +66 -0
  176. package/dist/hooks/provider-hooks.js.map +1 -0
  177. package/dist/hooks/registry.js +229 -0
  178. package/dist/hooks/registry.js.map +1 -0
  179. package/dist/hooks/types.js +66 -0
  180. package/dist/hooks/types.js.map +1 -0
  181. package/dist/hooks.js +136 -0
  182. package/dist/hooks.js.map +1 -0
  183. package/dist/init.js +959 -0
  184. package/dist/init.js.map +1 -0
  185. package/dist/inject/index.js +82 -0
  186. package/dist/inject/index.js.map +1 -0
  187. package/dist/injection.js +377 -0
  188. package/dist/injection.js.map +1 -0
  189. package/dist/intelligence/adaptive-validation.js +497 -0
  190. package/dist/intelligence/adaptive-validation.js.map +1 -0
  191. package/dist/intelligence/impact.js +675 -0
  192. package/dist/intelligence/impact.js.map +1 -0
  193. package/dist/intelligence/index.js +22 -0
  194. package/dist/intelligence/index.js.map +1 -0
  195. package/dist/intelligence/patterns.js +492 -0
  196. package/dist/intelligence/patterns.js.map +1 -0
  197. package/dist/intelligence/prediction.js +499 -0
  198. package/dist/intelligence/prediction.js.map +1 -0
  199. package/dist/intelligence/types.js +13 -0
  200. package/dist/intelligence/types.js.map +1 -0
  201. package/dist/issue/create.js +121 -0
  202. package/dist/issue/create.js.map +1 -0
  203. package/dist/issue/diagnostics.js +59 -0
  204. package/dist/issue/diagnostics.js.map +1 -0
  205. package/dist/issue/index.js +10 -0
  206. package/dist/issue/index.js.map +1 -0
  207. package/dist/issue/template-parser.js +267 -0
  208. package/dist/issue/template-parser.js.map +1 -0
  209. package/dist/json-schema-validator.js +76 -0
  210. package/dist/json-schema-validator.js.map +1 -0
  211. package/dist/lib/index.js +11 -0
  212. package/dist/lib/index.js.map +1 -0
  213. package/dist/lib/retry.js +152 -0
  214. package/dist/lib/retry.js.map +1 -0
  215. package/dist/lib/tree-sitter-languages.js +75 -0
  216. package/dist/lib/tree-sitter-languages.js.map +1 -0
  217. package/dist/lifecycle/chain-composition.js +152 -0
  218. package/dist/lifecycle/chain-composition.js.map +1 -0
  219. package/dist/lifecycle/chain-store.js +246 -0
  220. package/dist/lifecycle/chain-store.js.map +1 -0
  221. package/dist/lifecycle/consolidate-rcasd.js +352 -0
  222. package/dist/lifecycle/consolidate-rcasd.js.map +1 -0
  223. package/dist/lifecycle/default-chain.js +176 -0
  224. package/dist/lifecycle/default-chain.js.map +1 -0
  225. package/dist/lifecycle/evidence.js +180 -0
  226. package/dist/lifecycle/evidence.js.map +1 -0
  227. package/dist/lifecycle/frontmatter.js +363 -0
  228. package/dist/lifecycle/frontmatter.js.map +1 -0
  229. package/dist/lifecycle/index.js +756 -0
  230. package/dist/lifecycle/index.js.map +1 -0
  231. package/dist/lifecycle/pipeline.js +656 -0
  232. package/dist/lifecycle/pipeline.js.map +1 -0
  233. package/dist/lifecycle/rcasd-index.js +326 -0
  234. package/dist/lifecycle/rcasd-index.js.map +1 -0
  235. package/dist/lifecycle/rcasd-paths.js +220 -0
  236. package/dist/lifecycle/rcasd-paths.js.map +1 -0
  237. package/dist/lifecycle/resume.js +864 -0
  238. package/dist/lifecycle/resume.js.map +1 -0
  239. package/dist/lifecycle/stage-artifacts.js +94 -0
  240. package/dist/lifecycle/stage-artifacts.js.map +1 -0
  241. package/dist/lifecycle/stage-guidance.js +234 -0
  242. package/dist/lifecycle/stage-guidance.js.map +1 -0
  243. package/dist/lifecycle/stages.js +534 -0
  244. package/dist/lifecycle/stages.js.map +1 -0
  245. package/dist/lifecycle/state-machine.js +516 -0
  246. package/dist/lifecycle/state-machine.js.map +1 -0
  247. package/dist/lifecycle/tessera-engine.js +249 -0
  248. package/dist/lifecycle/tessera-engine.js.map +1 -0
  249. package/dist/logger.js +140 -0
  250. package/dist/logger.js.map +1 -0
  251. package/dist/memory/anthropic-key-resolver.js +105 -0
  252. package/dist/memory/anthropic-key-resolver.js.map +1 -0
  253. package/dist/memory/auto-extract.js +77 -0
  254. package/dist/memory/auto-extract.js.map +1 -0
  255. package/dist/memory/brain-backfill.js +389 -0
  256. package/dist/memory/brain-backfill.js.map +1 -0
  257. package/dist/memory/brain-consolidator.js +294 -0
  258. package/dist/memory/brain-consolidator.js.map +1 -0
  259. package/dist/memory/brain-embedding.js +66 -0
  260. package/dist/memory/brain-embedding.js.map +1 -0
  261. package/dist/memory/brain-export.js +239 -0
  262. package/dist/memory/brain-export.js.map +1 -0
  263. package/dist/memory/brain-lifecycle.js +841 -0
  264. package/dist/memory/brain-lifecycle.js.map +1 -0
  265. package/dist/memory/brain-links.js +161 -0
  266. package/dist/memory/brain-links.js.map +1 -0
  267. package/dist/memory/brain-maintenance.js +125 -0
  268. package/dist/memory/brain-maintenance.js.map +1 -0
  269. package/dist/memory/brain-migration.js +149 -0
  270. package/dist/memory/brain-migration.js.map +1 -0
  271. package/dist/memory/brain-purge.js +243 -0
  272. package/dist/memory/brain-purge.js.map +1 -0
  273. package/dist/memory/brain-reasoning.js +215 -0
  274. package/dist/memory/brain-reasoning.js.map +1 -0
  275. package/dist/memory/brain-retrieval.js +1088 -0
  276. package/dist/memory/brain-retrieval.js.map +1 -0
  277. package/dist/memory/brain-row-types.js +10 -0
  278. package/dist/memory/brain-row-types.js.map +1 -0
  279. package/dist/memory/brain-search.js +613 -0
  280. package/dist/memory/brain-search.js.map +1 -0
  281. package/dist/memory/brain-similarity.js +145 -0
  282. package/dist/memory/brain-similarity.js.map +1 -0
  283. package/dist/memory/brain-stdp.js +297 -0
  284. package/dist/memory/brain-stdp.js.map +1 -0
  285. package/dist/memory/claude-mem-migration.js +277 -0
  286. package/dist/memory/claude-mem-migration.js.map +1 -0
  287. package/dist/memory/decision-cross-link.js +228 -0
  288. package/dist/memory/decision-cross-link.js.map +1 -0
  289. package/dist/memory/decisions.js +242 -0
  290. package/dist/memory/decisions.js.map +1 -0
  291. package/dist/memory/edge-types.js +31 -0
  292. package/dist/memory/edge-types.js.map +1 -0
  293. package/dist/memory/embedding-local.js +102 -0
  294. package/dist/memory/embedding-local.js.map +1 -0
  295. package/dist/memory/embedding-queue.js +271 -0
  296. package/dist/memory/embedding-queue.js.map +1 -0
  297. package/dist/memory/embedding-worker.js +58 -0
  298. package/dist/memory/embedding-worker.js.map +1 -0
  299. package/dist/memory/engine-compat.js +1597 -0
  300. package/dist/memory/engine-compat.js.map +1 -0
  301. package/dist/memory/extraction-gate.js +459 -0
  302. package/dist/memory/extraction-gate.js.map +1 -0
  303. package/dist/memory/graph-auto-populate.js +148 -0
  304. package/dist/memory/graph-auto-populate.js.map +1 -0
  305. package/dist/memory/graph-memory-bridge.js +517 -0
  306. package/dist/memory/graph-memory-bridge.js.map +1 -0
  307. package/dist/memory/graph-queries.js +290 -0
  308. package/dist/memory/graph-queries.js.map +1 -0
  309. package/dist/memory/index.js +1148 -0
  310. package/dist/memory/index.js.map +1 -0
  311. package/dist/memory/learnings.js +197 -0
  312. package/dist/memory/learnings.js.map +1 -0
  313. package/dist/memory/llm-extraction.js +425 -0
  314. package/dist/memory/llm-extraction.js.map +1 -0
  315. package/dist/memory/memory-bridge.js +382 -0
  316. package/dist/memory/memory-bridge.js.map +1 -0
  317. package/dist/memory/mental-model-injection.js +61 -0
  318. package/dist/memory/mental-model-injection.js.map +1 -0
  319. package/dist/memory/mental-model-queue.js +211 -0
  320. package/dist/memory/mental-model-queue.js.map +1 -0
  321. package/dist/memory/observer-reflector.js +626 -0
  322. package/dist/memory/observer-reflector.js.map +1 -0
  323. package/dist/memory/patterns.js +192 -0
  324. package/dist/memory/patterns.js.map +1 -0
  325. package/dist/memory/pipeline-manifest-sqlite.js +975 -0
  326. package/dist/memory/pipeline-manifest-sqlite.js.map +1 -0
  327. package/dist/memory/quality-feedback.js +449 -0
  328. package/dist/memory/quality-feedback.js.map +1 -0
  329. package/dist/memory/quality-scoring.js +182 -0
  330. package/dist/memory/quality-scoring.js.map +1 -0
  331. package/dist/memory/session-memory.js +331 -0
  332. package/dist/memory/session-memory.js.map +1 -0
  333. package/dist/memory/sleep-consolidation.js +706 -0
  334. package/dist/memory/sleep-consolidation.js.map +1 -0
  335. package/dist/memory/temporal-supersession.js +403 -0
  336. package/dist/memory/temporal-supersession.js.map +1 -0
  337. package/dist/metrics/ab-test.js +260 -0
  338. package/dist/metrics/ab-test.js.map +1 -0
  339. package/dist/metrics/aggregation.js +363 -0
  340. package/dist/metrics/aggregation.js.map +1 -0
  341. package/dist/metrics/common.js +64 -0
  342. package/dist/metrics/common.js.map +1 -0
  343. package/dist/metrics/enums.js +78 -0
  344. package/dist/metrics/enums.js.map +1 -0
  345. package/dist/metrics/index.js +19 -0
  346. package/dist/metrics/index.js.map +1 -0
  347. package/dist/metrics/model-provider-registry.js +88 -0
  348. package/dist/metrics/model-provider-registry.js.map +1 -0
  349. package/dist/metrics/otel-integration.js +263 -0
  350. package/dist/metrics/otel-integration.js.map +1 -0
  351. package/dist/metrics/provider-detection.js +103 -0
  352. package/dist/metrics/provider-detection.js.map +1 -0
  353. package/dist/metrics/token-estimation.js +253 -0
  354. package/dist/metrics/token-estimation.js.map +1 -0
  355. package/dist/metrics/token-service.js +450 -0
  356. package/dist/metrics/token-service.js.map +1 -0
  357. package/dist/migration/agent-outputs.js +316 -0
  358. package/dist/migration/agent-outputs.js.map +1 -0
  359. package/dist/migration/checksum.js +92 -0
  360. package/dist/migration/checksum.js.map +1 -0
  361. package/dist/migration/index.js +282 -0
  362. package/dist/migration/index.js.map +1 -0
  363. package/dist/migration/logger.js +360 -0
  364. package/dist/migration/logger.js.map +1 -0
  365. package/dist/migration/preflight.js +9 -0
  366. package/dist/migration/preflight.js.map +1 -0
  367. package/dist/migration/state.js +421 -0
  368. package/dist/migration/state.js.map +1 -0
  369. package/dist/migration/validate.js +241 -0
  370. package/dist/migration/validate.js.map +1 -0
  371. package/dist/mvi-helpers.js +73 -0
  372. package/dist/mvi-helpers.js.map +1 -0
  373. package/dist/nexus/deps.js +375 -0
  374. package/dist/nexus/deps.js.map +1 -0
  375. package/dist/nexus/discover.js +288 -0
  376. package/dist/nexus/discover.js.map +1 -0
  377. package/dist/nexus/hash.js +10 -0
  378. package/dist/nexus/hash.js.map +1 -0
  379. package/dist/nexus/index.js +40 -0
  380. package/dist/nexus/index.js.map +1 -0
  381. package/dist/nexus/migrate-json-to-sqlite.js +115 -0
  382. package/dist/nexus/migrate-json-to-sqlite.js.map +1 -0
  383. package/dist/nexus/nexus-bridge.js +321 -0
  384. package/dist/nexus/nexus-bridge.js.map +1 -0
  385. package/dist/nexus/permissions.js +105 -0
  386. package/dist/nexus/permissions.js.map +1 -0
  387. package/dist/nexus/query.js +175 -0
  388. package/dist/nexus/query.js.map +1 -0
  389. package/dist/nexus/registry.js +665 -0
  390. package/dist/nexus/registry.js.map +1 -0
  391. package/dist/nexus/sharing/index.js +288 -0
  392. package/dist/nexus/sharing/index.js.map +1 -0
  393. package/dist/nexus/transfer-types.js +8 -0
  394. package/dist/nexus/transfer-types.js.map +1 -0
  395. package/dist/nexus/transfer.js +271 -0
  396. package/dist/nexus/transfer.js.map +1 -0
  397. package/dist/nexus/workspace.js +355 -0
  398. package/dist/nexus/workspace.js.map +1 -0
  399. package/dist/observability/index.js +103 -0
  400. package/dist/observability/index.js.map +1 -0
  401. package/dist/observability/log-filter.js +63 -0
  402. package/dist/observability/log-filter.js.map +1 -0
  403. package/dist/observability/log-parser.js +99 -0
  404. package/dist/observability/log-parser.js.map +1 -0
  405. package/dist/observability/log-reader.js +139 -0
  406. package/dist/observability/log-reader.js.map +1 -0
  407. package/dist/observability/types.js +19 -0
  408. package/dist/observability/types.js.map +1 -0
  409. package/dist/orchestration/analyze.js +107 -0
  410. package/dist/orchestration/analyze.js.map +1 -0
  411. package/dist/orchestration/bootstrap.js +132 -0
  412. package/dist/orchestration/bootstrap.js.map +1 -0
  413. package/dist/orchestration/context.js +56 -0
  414. package/dist/orchestration/context.js.map +1 -0
  415. package/dist/orchestration/critical-path.js +100 -0
  416. package/dist/orchestration/critical-path.js.map +1 -0
  417. package/dist/orchestration/hierarchy.js +183 -0
  418. package/dist/orchestration/hierarchy.js.map +1 -0
  419. package/dist/orchestration/index.js +287 -0
  420. package/dist/orchestration/index.js.map +1 -0
  421. package/dist/orchestration/parallel.js +89 -0
  422. package/dist/orchestration/parallel.js.map +1 -0
  423. package/dist/orchestration/protocol-validators.js +815 -0
  424. package/dist/orchestration/protocol-validators.js.map +1 -0
  425. package/dist/orchestration/skill-ops.js +98 -0
  426. package/dist/orchestration/skill-ops.js.map +1 -0
  427. package/dist/orchestration/status.js +107 -0
  428. package/dist/orchestration/status.js.map +1 -0
  429. package/dist/orchestration/unblock.js +103 -0
  430. package/dist/orchestration/unblock.js.map +1 -0
  431. package/dist/orchestration/validate-spawn.js +67 -0
  432. package/dist/orchestration/validate-spawn.js.map +1 -0
  433. package/dist/orchestration/waves.js +86 -0
  434. package/dist/orchestration/waves.js.map +1 -0
  435. package/dist/otel/index.js +163 -0
  436. package/dist/otel/index.js.map +1 -0
  437. package/dist/output.js +164 -0
  438. package/dist/output.js.map +1 -0
  439. package/dist/pagination.js +64 -0
  440. package/dist/pagination.js.map +1 -0
  441. package/dist/paths.js +882 -0
  442. package/dist/paths.js.map +1 -0
  443. package/dist/phases/deps.js +372 -0
  444. package/dist/phases/deps.js.map +1 -0
  445. package/dist/phases/index.js +349 -0
  446. package/dist/phases/index.js.map +1 -0
  447. package/dist/pipeline/index.js +10 -0
  448. package/dist/pipeline/index.js.map +1 -0
  449. package/dist/pipeline/phase.js +45 -0
  450. package/dist/pipeline/phase.js.map +1 -0
  451. package/dist/platform.js +211 -0
  452. package/dist/platform.js.map +1 -0
  453. package/dist/project-info.js +84 -0
  454. package/dist/project-info.js.map +1 -0
  455. package/dist/reconciliation/index.js +10 -0
  456. package/dist/reconciliation/index.js.map +1 -0
  457. package/dist/reconciliation/link-store.js +175 -0
  458. package/dist/reconciliation/link-store.js.map +1 -0
  459. package/dist/reconciliation/reconciliation-engine.js +298 -0
  460. package/dist/reconciliation/reconciliation-engine.js.map +1 -0
  461. package/dist/release/artifacts.js +427 -0
  462. package/dist/release/artifacts.js.map +1 -0
  463. package/dist/release/changelog-writer.js +151 -0
  464. package/dist/release/changelog-writer.js.map +1 -0
  465. package/dist/release/channel.js +144 -0
  466. package/dist/release/channel.js.map +1 -0
  467. package/dist/release/ci.js +166 -0
  468. package/dist/release/ci.js.map +1 -0
  469. package/dist/release/github-pr.js +225 -0
  470. package/dist/release/github-pr.js.map +1 -0
  471. package/dist/release/guards.js +116 -0
  472. package/dist/release/guards.js.map +1 -0
  473. package/dist/release/index.js +22 -0
  474. package/dist/release/index.js.map +1 -0
  475. package/dist/release/release-config.js +158 -0
  476. package/dist/release/release-config.js.map +1 -0
  477. package/dist/release/release-manifest.js +1019 -0
  478. package/dist/release/release-manifest.js.map +1 -0
  479. package/dist/release/version-bump.js +255 -0
  480. package/dist/release/version-bump.js.map +1 -0
  481. package/dist/remote/index.js +257 -0
  482. package/dist/remote/index.js.map +1 -0
  483. package/dist/repair.js +130 -0
  484. package/dist/repair.js.map +1 -0
  485. package/dist/research/index.js +2 -0
  486. package/dist/research/index.js.map +1 -0
  487. package/dist/roadmap/index.js +59 -0
  488. package/dist/roadmap/index.js.map +1 -0
  489. package/dist/routing/capability-matrix.js +1556 -0
  490. package/dist/routing/capability-matrix.js.map +1 -0
  491. package/dist/routing/index.js +9 -0
  492. package/dist/routing/index.js.map +1 -0
  493. package/dist/scaffold.js +1937 -0
  494. package/dist/scaffold.js.map +1 -0
  495. package/dist/schema-management.js +295 -0
  496. package/dist/schema-management.js.map +1 -0
  497. package/dist/security/index.js +9 -0
  498. package/dist/security/index.js.map +1 -0
  499. package/dist/security/input-sanitization.js +326 -0
  500. package/dist/security/input-sanitization.js.map +1 -0
  501. package/dist/sequence/index.js +295 -0
  502. package/dist/sequence/index.js.map +1 -0
  503. package/dist/sessions/assumptions.js +54 -0
  504. package/dist/sessions/assumptions.js.map +1 -0
  505. package/dist/sessions/briefing.js +377 -0
  506. package/dist/sessions/briefing.js.map +1 -0
  507. package/dist/sessions/context-alert.js +222 -0
  508. package/dist/sessions/context-alert.js.map +1 -0
  509. package/dist/sessions/context-inject.js +61 -0
  510. package/dist/sessions/context-inject.js.map +1 -0
  511. package/dist/sessions/context-monitor.js +98 -0
  512. package/dist/sessions/context-monitor.js.map +1 -0
  513. package/dist/sessions/decisions.js +65 -0
  514. package/dist/sessions/decisions.js.map +1 -0
  515. package/dist/sessions/find.js +65 -0
  516. package/dist/sessions/find.js.map +1 -0
  517. package/dist/sessions/handoff.js +328 -0
  518. package/dist/sessions/handoff.js.map +1 -0
  519. package/dist/sessions/hitl-warnings.js +254 -0
  520. package/dist/sessions/hitl-warnings.js.map +1 -0
  521. package/dist/sessions/index.js +327 -0
  522. package/dist/sessions/index.js.map +1 -0
  523. package/dist/sessions/session-archive.js +40 -0
  524. package/dist/sessions/session-archive.js.map +1 -0
  525. package/dist/sessions/session-cleanup.js +59 -0
  526. package/dist/sessions/session-cleanup.js.map +1 -0
  527. package/dist/sessions/session-drift.js +134 -0
  528. package/dist/sessions/session-drift.js.map +1 -0
  529. package/dist/sessions/session-enforcement.js +144 -0
  530. package/dist/sessions/session-enforcement.js.map +1 -0
  531. package/dist/sessions/session-grade.js +253 -0
  532. package/dist/sessions/session-grade.js.map +1 -0
  533. package/dist/sessions/session-history.js +42 -0
  534. package/dist/sessions/session-history.js.map +1 -0
  535. package/dist/sessions/session-id.js +81 -0
  536. package/dist/sessions/session-id.js.map +1 -0
  537. package/dist/sessions/session-memory-bridge.js +30 -0
  538. package/dist/sessions/session-memory-bridge.js.map +1 -0
  539. package/dist/sessions/session-show.js +24 -0
  540. package/dist/sessions/session-show.js.map +1 -0
  541. package/dist/sessions/session-stats.js +69 -0
  542. package/dist/sessions/session-stats.js.map +1 -0
  543. package/dist/sessions/session-suspend.js +39 -0
  544. package/dist/sessions/session-suspend.js.map +1 -0
  545. package/dist/sessions/session-switch.js +51 -0
  546. package/dist/sessions/session-switch.js.map +1 -0
  547. package/dist/sessions/session-view.js +76 -0
  548. package/dist/sessions/session-view.js.map +1 -0
  549. package/dist/sessions/snapshot.js +213 -0
  550. package/dist/sessions/snapshot.js.map +1 -0
  551. package/dist/sessions/statusline-setup.js +85 -0
  552. package/dist/sessions/statusline-setup.js.map +1 -0
  553. package/dist/sessions/types.js +8 -0
  554. package/dist/sessions/types.js.map +1 -0
  555. package/dist/skills/agents/config.js +94 -0
  556. package/dist/skills/agents/config.js.map +1 -0
  557. package/dist/skills/agents/install.js +116 -0
  558. package/dist/skills/agents/install.js.map +1 -0
  559. package/dist/skills/agents/registry.js +161 -0
  560. package/dist/skills/agents/registry.js.map +1 -0
  561. package/dist/skills/discovery.js +333 -0
  562. package/dist/skills/discovery.js.map +1 -0
  563. package/dist/skills/dispatch.js +347 -0
  564. package/dist/skills/dispatch.js.map +1 -0
  565. package/dist/skills/dynamic-skill-generator.js +87 -0
  566. package/dist/skills/dynamic-skill-generator.js.map +1 -0
  567. package/dist/skills/index.js +44 -0
  568. package/dist/skills/index.js.map +1 -0
  569. package/dist/skills/injection/subagent.js +195 -0
  570. package/dist/skills/injection/subagent.js.map +1 -0
  571. package/dist/skills/injection/token.js +260 -0
  572. package/dist/skills/injection/token.js.map +1 -0
  573. package/dist/skills/install.js +40 -0
  574. package/dist/skills/install.js.map +1 -0
  575. package/dist/skills/manifests/contribution.js +175 -0
  576. package/dist/skills/manifests/contribution.js.map +1 -0
  577. package/dist/skills/manifests/research.js +281 -0
  578. package/dist/skills/manifests/research.js.map +1 -0
  579. package/dist/skills/manifests/resolver.js +146 -0
  580. package/dist/skills/manifests/resolver.js.map +1 -0
  581. package/dist/skills/marketplace.js +90 -0
  582. package/dist/skills/marketplace.js.map +1 -0
  583. package/dist/skills/orchestrator/spawn.js +178 -0
  584. package/dist/skills/orchestrator/spawn.js.map +1 -0
  585. package/dist/skills/orchestrator/startup.js +451 -0
  586. package/dist/skills/orchestrator/startup.js.map +1 -0
  587. package/dist/skills/orchestrator/validator.js +301 -0
  588. package/dist/skills/orchestrator/validator.js.map +1 -0
  589. package/dist/skills/precedence-integration.js +73 -0
  590. package/dist/skills/precedence-integration.js.map +1 -0
  591. package/dist/skills/precedence-types.js +16 -0
  592. package/dist/skills/precedence-types.js.map +1 -0
  593. package/dist/skills/routing-table.js +63 -0
  594. package/dist/skills/routing-table.js.map +1 -0
  595. package/dist/skills/skill-paths.js +217 -0
  596. package/dist/skills/skill-paths.js.map +1 -0
  597. package/dist/skills/test-utility.js +55 -0
  598. package/dist/skills/test-utility.js.map +1 -0
  599. package/dist/skills/types.js +118 -0
  600. package/dist/skills/types.js.map +1 -0
  601. package/dist/skills/validation.js +183 -0
  602. package/dist/skills/validation.js.map +1 -0
  603. package/dist/skills/version.js +57 -0
  604. package/dist/skills/version.js.map +1 -0
  605. package/dist/snapshot/index.js +188 -0
  606. package/dist/snapshot/index.js.map +1 -0
  607. package/dist/spawn/adapter-registry.js +246 -0
  608. package/dist/spawn/adapter-registry.js.map +1 -0
  609. package/dist/spawn/index.js +10 -0
  610. package/dist/spawn/index.js.map +1 -0
  611. package/dist/stats/index.js +350 -0
  612. package/dist/stats/index.js.map +1 -0
  613. package/dist/stats/workflow-telemetry.js +400 -0
  614. package/dist/stats/workflow-telemetry.js.map +1 -0
  615. package/dist/sticky/archive.js +47 -0
  616. package/dist/sticky/archive.js.map +1 -0
  617. package/dist/sticky/convert.js +235 -0
  618. package/dist/sticky/convert.js.map +1 -0
  619. package/dist/sticky/create.js +48 -0
  620. package/dist/sticky/create.js.map +1 -0
  621. package/dist/sticky/id.js +35 -0
  622. package/dist/sticky/id.js.map +1 -0
  623. package/dist/sticky/index.js +16 -0
  624. package/dist/sticky/index.js.map +1 -0
  625. package/dist/sticky/list.js +57 -0
  626. package/dist/sticky/list.js.map +1 -0
  627. package/dist/sticky/purge.js +45 -0
  628. package/dist/sticky/purge.js.map +1 -0
  629. package/dist/sticky/show.js +42 -0
  630. package/dist/sticky/show.js.map +1 -0
  631. package/dist/sticky/types.js +10 -0
  632. package/dist/sticky/types.js.map +1 -0
  633. package/dist/store/agent-registry-accessor.js +886 -0
  634. package/dist/store/agent-registry-accessor.js.map +1 -0
  635. package/dist/store/api-key-kdf.js +84 -0
  636. package/dist/store/api-key-kdf.js.map +1 -0
  637. package/dist/store/atomic.js +167 -0
  638. package/dist/store/atomic.js.map +1 -0
  639. package/dist/store/backup-crypto.js +184 -0
  640. package/dist/store/backup-crypto.js.map +1 -0
  641. package/dist/store/backup-pack.js +581 -0
  642. package/dist/store/backup-pack.js.map +1 -0
  643. package/dist/store/backup-unpack.js +449 -0
  644. package/dist/store/backup-unpack.js.map +1 -0
  645. package/dist/store/backup.js +94 -0
  646. package/dist/store/backup.js.map +1 -0
  647. package/dist/store/brain-accessor.js +429 -0
  648. package/dist/store/brain-accessor.js.map +1 -0
  649. package/dist/store/brain-schema.js +628 -0
  650. package/dist/store/brain-schema.js.map +1 -0
  651. package/dist/store/brain-sqlite.js +320 -0
  652. package/dist/store/brain-sqlite.js.map +1 -0
  653. package/dist/store/cache.js +168 -0
  654. package/dist/store/cache.js.map +1 -0
  655. package/dist/store/chain-schema.js +51 -0
  656. package/dist/store/chain-schema.js.map +1 -0
  657. package/dist/store/cleanup-legacy.js +171 -0
  658. package/dist/store/cleanup-legacy.js.map +1 -0
  659. package/dist/store/conduit-sqlite.js +570 -0
  660. package/dist/store/conduit-sqlite.js.map +1 -0
  661. package/dist/store/converters.js +124 -0
  662. package/dist/store/converters.js.map +1 -0
  663. package/dist/store/cross-db-cleanup.js +319 -0
  664. package/dist/store/cross-db-cleanup.js.map +1 -0
  665. package/dist/store/data-accessor.js +26 -0
  666. package/dist/store/data-accessor.js.map +1 -0
  667. package/dist/store/data-safety-central.js +269 -0
  668. package/dist/store/data-safety-central.js.map +1 -0
  669. package/dist/store/data-safety.js +274 -0
  670. package/dist/store/data-safety.js.map +1 -0
  671. package/dist/store/db-helpers.js +241 -0
  672. package/dist/store/db-helpers.js.map +1 -0
  673. package/dist/store/export.js +155 -0
  674. package/dist/store/export.js.map +1 -0
  675. package/dist/store/file-utils.js +270 -0
  676. package/dist/store/file-utils.js.map +1 -0
  677. package/dist/store/git-checkpoint.js +365 -0
  678. package/dist/store/git-checkpoint.js.map +1 -0
  679. package/dist/store/global-salt.js +147 -0
  680. package/dist/store/global-salt.js.map +1 -0
  681. package/dist/store/import-logging.js +139 -0
  682. package/dist/store/import-logging.js.map +1 -0
  683. package/dist/store/import-remap.js +145 -0
  684. package/dist/store/import-remap.js.map +1 -0
  685. package/dist/store/import-sort.js +121 -0
  686. package/dist/store/import-sort.js.map +1 -0
  687. package/dist/store/index.js +29 -0
  688. package/dist/store/index.js.map +1 -0
  689. package/dist/store/json.js +208 -0
  690. package/dist/store/json.js.map +1 -0
  691. package/dist/store/lifecycle-store.js +249 -0
  692. package/dist/store/lifecycle-store.js.map +1 -0
  693. package/dist/store/lock.js +70 -0
  694. package/dist/store/lock.js.map +1 -0
  695. package/dist/store/migrate-signaldock-to-conduit.js +562 -0
  696. package/dist/store/migrate-signaldock-to-conduit.js.map +1 -0
  697. package/dist/store/migration-manager.js +403 -0
  698. package/dist/store/migration-manager.js.map +1 -0
  699. package/dist/store/migration-sqlite.js +676 -0
  700. package/dist/store/migration-sqlite.js.map +1 -0
  701. package/dist/store/nexus-schema.js +277 -0
  702. package/dist/store/nexus-schema.js.map +1 -0
  703. package/dist/store/nexus-sqlite.js +242 -0
  704. package/dist/store/nexus-sqlite.js.map +1 -0
  705. package/dist/store/nexus-validation-schemas.js +40 -0
  706. package/dist/store/nexus-validation-schemas.js.map +1 -0
  707. package/dist/store/parsers.js +37 -0
  708. package/dist/store/parsers.js.map +1 -0
  709. package/dist/store/project-detect.js +457 -0
  710. package/dist/store/project-detect.js.map +1 -0
  711. package/dist/store/provider.js +101 -0
  712. package/dist/store/provider.js.map +1 -0
  713. package/dist/store/regenerators.js +207 -0
  714. package/dist/store/regenerators.js.map +1 -0
  715. package/dist/store/restore-conflict-report.js +206 -0
  716. package/dist/store/restore-conflict-report.js.map +1 -0
  717. package/dist/store/restore-json-merge.js +454 -0
  718. package/dist/store/restore-json-merge.js.map +1 -0
  719. package/dist/store/safety-data-accessor.js +257 -0
  720. package/dist/store/safety-data-accessor.js.map +1 -0
  721. package/dist/store/schema.js +7 -0
  722. package/dist/store/schema.js.map +1 -0
  723. package/dist/store/session-store.js +219 -0
  724. package/dist/store/session-store.js.map +1 -0
  725. package/dist/store/signaldock-sqlite.js +550 -0
  726. package/dist/store/signaldock-sqlite.js.map +1 -0
  727. package/dist/store/sqlite-backup.js +498 -0
  728. package/dist/store/sqlite-backup.js.map +1 -0
  729. package/dist/store/sqlite-data-accessor.js +788 -0
  730. package/dist/store/sqlite-data-accessor.js.map +1 -0
  731. package/dist/store/sqlite.js +483 -0
  732. package/dist/store/sqlite.js.map +1 -0
  733. package/dist/store/status-registry.js +8 -0
  734. package/dist/store/status-registry.js.map +1 -0
  735. package/dist/store/t310-readiness.js +115 -0
  736. package/dist/store/t310-readiness.js.map +1 -0
  737. package/dist/store/task-store.js +358 -0
  738. package/dist/store/task-store.js.map +1 -0
  739. package/dist/store/tasks-schema.js +610 -0
  740. package/dist/store/tasks-schema.js.map +1 -0
  741. package/dist/store/typed-query.js +15 -0
  742. package/dist/store/typed-query.js.map +1 -0
  743. package/dist/store/validation-schemas.js +278 -0
  744. package/dist/store/validation-schemas.js.map +1 -0
  745. package/dist/system/archive-analytics.js +277 -0
  746. package/dist/system/archive-analytics.js.map +1 -0
  747. package/dist/system/archive-stats.js +64 -0
  748. package/dist/system/archive-stats.js.map +1 -0
  749. package/dist/system/audit.js +145 -0
  750. package/dist/system/audit.js.map +1 -0
  751. package/dist/system/backup.js +280 -0
  752. package/dist/system/backup.js.map +1 -0
  753. package/dist/system/cleanup.js +134 -0
  754. package/dist/system/cleanup.js.map +1 -0
  755. package/dist/system/dependencies.js +466 -0
  756. package/dist/system/dependencies.js.map +1 -0
  757. package/dist/system/health.js +1207 -0
  758. package/dist/system/health.js.map +1 -0
  759. package/dist/system/index.js +18 -0
  760. package/dist/system/index.js.map +1 -0
  761. package/dist/system/inject-generate.js +122 -0
  762. package/dist/system/inject-generate.js.map +1 -0
  763. package/dist/system/labels.js +38 -0
  764. package/dist/system/labels.js.map +1 -0
  765. package/dist/system/metrics.js +61 -0
  766. package/dist/system/metrics.js.map +1 -0
  767. package/dist/system/migrate.js +43 -0
  768. package/dist/system/migrate.js.map +1 -0
  769. package/dist/system/platform-paths.js +80 -0
  770. package/dist/system/platform-paths.js.map +1 -0
  771. package/dist/system/runtime.js +161 -0
  772. package/dist/system/runtime.js.map +1 -0
  773. package/dist/system/safestop.js +89 -0
  774. package/dist/system/safestop.js.map +1 -0
  775. package/dist/system/storage-preflight.js +123 -0
  776. package/dist/system/storage-preflight.js.map +1 -0
  777. package/dist/task-work/index.js +159 -0
  778. package/dist/task-work/index.js.map +1 -0
  779. package/dist/tasks/add.js +837 -0
  780. package/dist/tasks/add.js.map +1 -0
  781. package/dist/tasks/analyze.js +85 -0
  782. package/dist/tasks/analyze.js.map +1 -0
  783. package/dist/tasks/archive.js +90 -0
  784. package/dist/tasks/archive.js.map +1 -0
  785. package/dist/tasks/atomicity.js +83 -0
  786. package/dist/tasks/atomicity.js.map +1 -0
  787. package/dist/tasks/cancel-ops.js +83 -0
  788. package/dist/tasks/cancel-ops.js.map +1 -0
  789. package/dist/tasks/complete.js +252 -0
  790. package/dist/tasks/complete.js.map +1 -0
  791. package/dist/tasks/crossref-extract.js +73 -0
  792. package/dist/tasks/crossref-extract.js.map +1 -0
  793. package/dist/tasks/delete-preview.js +192 -0
  794. package/dist/tasks/delete-preview.js.map +1 -0
  795. package/dist/tasks/delete.js +120 -0
  796. package/dist/tasks/delete.js.map +1 -0
  797. package/dist/tasks/deletion-strategy.js +200 -0
  798. package/dist/tasks/deletion-strategy.js.map +1 -0
  799. package/dist/tasks/dependency-check.js +278 -0
  800. package/dist/tasks/dependency-check.js.map +1 -0
  801. package/dist/tasks/deps-ready.js +32 -0
  802. package/dist/tasks/deps-ready.js.map +1 -0
  803. package/dist/tasks/enforcement.js +86 -0
  804. package/dist/tasks/enforcement.js.map +1 -0
  805. package/dist/tasks/epic-enforcement.js +294 -0
  806. package/dist/tasks/epic-enforcement.js.map +1 -0
  807. package/dist/tasks/find.js +163 -0
  808. package/dist/tasks/find.js.map +1 -0
  809. package/dist/tasks/graph-cache.js +127 -0
  810. package/dist/tasks/graph-cache.js.map +1 -0
  811. package/dist/tasks/graph-ops.js +173 -0
  812. package/dist/tasks/graph-ops.js.map +1 -0
  813. package/dist/tasks/graph-rag.js +328 -0
  814. package/dist/tasks/graph-rag.js.map +1 -0
  815. package/dist/tasks/hierarchy-policy.js +149 -0
  816. package/dist/tasks/hierarchy-policy.js.map +1 -0
  817. package/dist/tasks/hierarchy.js +185 -0
  818. package/dist/tasks/hierarchy.js.map +1 -0
  819. package/dist/tasks/id-generator.js +65 -0
  820. package/dist/tasks/id-generator.js.map +1 -0
  821. package/dist/tasks/index.js +14 -0
  822. package/dist/tasks/index.js.map +1 -0
  823. package/dist/tasks/labels.js +55 -0
  824. package/dist/tasks/labels.js.map +1 -0
  825. package/dist/tasks/list.js +75 -0
  826. package/dist/tasks/list.js.map +1 -0
  827. package/dist/tasks/phase-tracking.js +133 -0
  828. package/dist/tasks/phase-tracking.js.map +1 -0
  829. package/dist/tasks/pipeline-stage.js +248 -0
  830. package/dist/tasks/pipeline-stage.js.map +1 -0
  831. package/dist/tasks/plan.js +268 -0
  832. package/dist/tasks/plan.js.map +1 -0
  833. package/dist/tasks/relates.js +101 -0
  834. package/dist/tasks/relates.js.map +1 -0
  835. package/dist/tasks/show.js +83 -0
  836. package/dist/tasks/show.js.map +1 -0
  837. package/dist/tasks/size-weighting.js +86 -0
  838. package/dist/tasks/size-weighting.js.map +1 -0
  839. package/dist/tasks/staleness.js +86 -0
  840. package/dist/tasks/staleness.js.map +1 -0
  841. package/dist/tasks/task-ops.js +1741 -0
  842. package/dist/tasks/task-ops.js.map +1 -0
  843. package/dist/tasks/update.js +303 -0
  844. package/dist/tasks/update.js.map +1 -0
  845. package/dist/telemetry/index.js +249 -0
  846. package/dist/telemetry/index.js.map +1 -0
  847. package/dist/telemetry/schema.js +60 -0
  848. package/dist/telemetry/schema.js.map +1 -0
  849. package/dist/telemetry/sqlite.js +111 -0
  850. package/dist/telemetry/sqlite.js.map +1 -0
  851. package/dist/templates/index.js +10 -0
  852. package/dist/templates/index.js.map +1 -0
  853. package/dist/templates/parser.js +254 -0
  854. package/dist/templates/parser.js.map +1 -0
  855. package/dist/ui/aliases.js +153 -0
  856. package/dist/ui/aliases.js.map +1 -0
  857. package/dist/ui/changelog.js +184 -0
  858. package/dist/ui/changelog.js.map +1 -0
  859. package/dist/ui/command-registry.js +168 -0
  860. package/dist/ui/command-registry.js.map +1 -0
  861. package/dist/ui/flags.js +94 -0
  862. package/dist/ui/flags.js.map +1 -0
  863. package/dist/ui/index.js +24 -0
  864. package/dist/ui/index.js.map +1 -0
  865. package/dist/upgrade.js +1387 -0
  866. package/dist/upgrade.js.map +1 -0
  867. package/dist/validation/chain-validation.js +146 -0
  868. package/dist/validation/chain-validation.js.map +1 -0
  869. package/dist/validation/compliance.js +155 -0
  870. package/dist/validation/compliance.js.map +1 -0
  871. package/dist/validation/docs-sync.js +212 -0
  872. package/dist/validation/docs-sync.js.map +1 -0
  873. package/dist/validation/doctor/checks.js +1069 -0
  874. package/dist/validation/doctor/checks.js.map +1 -0
  875. package/dist/validation/doctor/index.js +9 -0
  876. package/dist/validation/doctor/index.js.map +1 -0
  877. package/dist/validation/doctor/project-cache.js +160 -0
  878. package/dist/validation/doctor/project-cache.js.map +1 -0
  879. package/dist/validation/doctor/utils.js +155 -0
  880. package/dist/validation/doctor/utils.js.map +1 -0
  881. package/dist/validation/engine.js +914 -0
  882. package/dist/validation/engine.js.map +1 -0
  883. package/dist/validation/gap-check.js +175 -0
  884. package/dist/validation/gap-check.js.map +1 -0
  885. package/dist/validation/index.js +40 -0
  886. package/dist/validation/index.js.map +1 -0
  887. package/dist/validation/manifest.js +237 -0
  888. package/dist/validation/manifest.js.map +1 -0
  889. package/dist/validation/operation-gate-validators.js +724 -0
  890. package/dist/validation/operation-gate-validators.js.map +1 -0
  891. package/dist/validation/operation-verification-gates.js +532 -0
  892. package/dist/validation/operation-verification-gates.js.map +1 -0
  893. package/dist/validation/param-utils.js +141 -0
  894. package/dist/validation/param-utils.js.map +1 -0
  895. package/dist/validation/protocol-common.js +300 -0
  896. package/dist/validation/protocol-common.js.map +1 -0
  897. package/dist/validation/protocols/_shared.js +82 -0
  898. package/dist/validation/protocols/_shared.js.map +1 -0
  899. package/dist/validation/protocols/architecture-decision.js +31 -0
  900. package/dist/validation/protocols/architecture-decision.js.map +1 -0
  901. package/dist/validation/protocols/artifact-publish.js +28 -0
  902. package/dist/validation/protocols/artifact-publish.js.map +1 -0
  903. package/dist/validation/protocols/consensus.js +41 -0
  904. package/dist/validation/protocols/consensus.js.map +1 -0
  905. package/dist/validation/protocols/contribution.js +27 -0
  906. package/dist/validation/protocols/contribution.js.map +1 -0
  907. package/dist/validation/protocols/decomposition.js +28 -0
  908. package/dist/validation/protocols/decomposition.js.map +1 -0
  909. package/dist/validation/protocols/implementation.js +24 -0
  910. package/dist/validation/protocols/implementation.js.map +1 -0
  911. package/dist/validation/protocols/provenance.js +29 -0
  912. package/dist/validation/protocols/provenance.js.map +1 -0
  913. package/dist/validation/protocols/release.js +29 -0
  914. package/dist/validation/protocols/release.js.map +1 -0
  915. package/dist/validation/protocols/research.js +24 -0
  916. package/dist/validation/protocols/research.js.map +1 -0
  917. package/dist/validation/protocols/specification.js +27 -0
  918. package/dist/validation/protocols/specification.js.map +1 -0
  919. package/dist/validation/protocols/testing.js +30 -0
  920. package/dist/validation/protocols/testing.js.map +1 -0
  921. package/dist/validation/protocols/validation.js +30 -0
  922. package/dist/validation/protocols/validation.js.map +1 -0
  923. package/dist/validation/schema-integrity.js +170 -0
  924. package/dist/validation/schema-integrity.js.map +1 -0
  925. package/dist/validation/schema-validator.js +176 -0
  926. package/dist/validation/schema-validator.js.map +1 -0
  927. package/dist/validation/validate-ops.js +937 -0
  928. package/dist/validation/validate-ops.js.map +1 -0
  929. package/dist/validation/validation-rules.js +226 -0
  930. package/dist/validation/validation-rules.js.map +1 -0
  931. package/dist/validation/verification.js +321 -0
  932. package/dist/validation/verification.js.map +1 -0
  933. package/package.json +8 -8
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mental-model-queue.js","sourceRoot":"","sources":["../../src/memory/mental-model-queue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,626 @@
1
+ /**
2
+ * Observer/Reflector — LLM-driven session compression for CLEO BRAIN.
3
+ *
4
+ * Implements the Mastra-style two-agent compression pattern that achieves
5
+ * 3-6x context compression on text and 5-40x on tool-call-heavy workloads.
6
+ *
7
+ * ## Architecture
8
+ *
9
+ * **Observer** (runs after each task or when observation count ≥ threshold):
10
+ * - Takes raw brain observations from the current session
11
+ * - Produces 3-5 dense, dated, prioritized observation notes (≤ 300 chars each)
12
+ * - Compresses verbose tool outputs into 1-line summaries
13
+ * - Stored as brain_observations with source='observer-compressed'
14
+ * - Linked to original observation IDs via brain_memory_links table
15
+ *
16
+ * **Reflector** (runs at session end when observation count ≥ threshold):
17
+ * - Takes accumulated observation notes from the current session
18
+ * - Restructures: combines related items, identifies cross-cutting patterns,
19
+ * drops superseded observations
20
+ * - Outputs stored as brain_patterns and brain_learnings via existing store fns
21
+ * - Source tagged as 'reflector-synthesized'
22
+ *
23
+ * ## LLM Backend
24
+ *
25
+ * Calls the Anthropic Messages API directly via native fetch (no SDK dep).
26
+ * Uses the cheapest available model (`claude-haiku-4-5` or env override).
27
+ * When `ANTHROPIC_API_KEY` is not set, both functions silently no-op — the
28
+ * rest of the memory pipeline still runs normally.
29
+ *
30
+ * ## Configuration
31
+ *
32
+ * Add to `config.json` under `brain.observer`:
33
+ * ```json
34
+ * {
35
+ * "brain": {
36
+ * "observer": {
37
+ * "enabled": true,
38
+ * "threshold": 10
39
+ * },
40
+ * "reflector": {
41
+ * "enabled": true
42
+ * }
43
+ * }
44
+ * }
45
+ * ```
46
+ *
47
+ * @task T554
48
+ * @epic T549
49
+ * @see .cleo/agent-outputs/R-llm-memory-systems-research.md §7 (Observer/Reflector Pattern)
50
+ */
51
+ import { randomBytes } from 'node:crypto';
52
+ import { getBrainNativeDb } from '../store/brain-sqlite.js';
53
+ import { addGraphEdge } from './graph-auto-populate.js';
54
+ import { storeLearning } from './learnings.js';
55
+ import { storePattern } from './patterns.js';
56
+ // ============================================================================
57
+ // Constants
58
+ // ============================================================================
59
+ /** Default model used for observer/reflector LLM calls. */
60
+ const DEFAULT_MODEL = 'claude-haiku-4-5';
61
+ /** Maximum tokens for LLM response. Enough for 5 structured observations. */
62
+ const MAX_RESPONSE_TOKENS = 1024;
63
+ /** Default threshold: trigger observer after this many session observations. */
64
+ const DEFAULT_OBSERVER_THRESHOLD = 10;
65
+ /** Maximum observations passed to observer in a single batch. */
66
+ const OBSERVER_BATCH_LIMIT = 30;
67
+ /** Source tag written to brain_observations for observer-compressed entries. */
68
+ const OBSERVER_SOURCE = 'observer-compressed';
69
+ /** Source tag written to brain_patterns / brain_learnings for reflector outputs. */
70
+ const REFLECTOR_SOURCE = 'reflector-synthesized';
71
+ /**
72
+ * Load observer configuration for the project.
73
+ * Falls back to defaults on any error (enabled=true, threshold=10).
74
+ */
75
+ async function loadObserverConfig(projectRoot) {
76
+ try {
77
+ const { loadConfig } = await import('../config.js');
78
+ const config = await loadConfig(projectRoot);
79
+ // Config type does not yet include observer/reflector — use dynamic cast
80
+ const brain = config.brain;
81
+ const observer = brain?.['observer'];
82
+ return {
83
+ enabled: observer?.['enabled'] !== false,
84
+ threshold: typeof observer?.['threshold'] === 'number'
85
+ ? observer['threshold']
86
+ : DEFAULT_OBSERVER_THRESHOLD,
87
+ };
88
+ }
89
+ catch {
90
+ return { enabled: true, threshold: DEFAULT_OBSERVER_THRESHOLD };
91
+ }
92
+ }
93
+ /**
94
+ * Load reflector configuration for the project.
95
+ * Falls back to defaults on any error (enabled=true).
96
+ */
97
+ async function loadReflectorConfig(projectRoot) {
98
+ try {
99
+ const { loadConfig } = await import('../config.js');
100
+ const config = await loadConfig(projectRoot);
101
+ const brain = config.brain;
102
+ const reflector = brain?.['reflector'];
103
+ return {
104
+ enabled: reflector?.['enabled'] !== false,
105
+ };
106
+ }
107
+ catch {
108
+ return { enabled: true };
109
+ }
110
+ }
111
+ /**
112
+ * Call the Anthropic Messages API via native fetch.
113
+ *
114
+ * Uses `ANTHROPIC_API_KEY` from the environment. Returns null when the key is
115
+ * not set or when the API call fails (caller handles graceful degradation).
116
+ *
117
+ * @param systemPrompt - System instruction for the LLM.
118
+ * @param userContent - User message content.
119
+ * @returns The assistant response text, or null on failure.
120
+ */
121
+ async function callAnthropicLlm(systemPrompt, userContent) {
122
+ const { resolveAnthropicApiKey } = await import('./anthropic-key-resolver.js');
123
+ const apiKey = resolveAnthropicApiKey();
124
+ if (!apiKey) {
125
+ return null;
126
+ }
127
+ const model = process.env['CLEO_OBSERVER_MODEL'] ?? DEFAULT_MODEL;
128
+ try {
129
+ const response = await fetch('https://api.anthropic.com/v1/messages', {
130
+ method: 'POST',
131
+ headers: {
132
+ 'Content-Type': 'application/json',
133
+ 'x-api-key': apiKey,
134
+ 'anthropic-version': '2023-06-01',
135
+ },
136
+ body: JSON.stringify({
137
+ model,
138
+ max_tokens: MAX_RESPONSE_TOKENS,
139
+ system: systemPrompt,
140
+ messages: [{ role: 'user', content: userContent }],
141
+ }),
142
+ });
143
+ if (!response.ok) {
144
+ const body = await response.text().catch(() => '');
145
+ console.warn(`[observer-reflector] Anthropic API error ${response.status}: ${body.slice(0, 200)}`);
146
+ return null;
147
+ }
148
+ const data = (await response.json());
149
+ const textBlock = data.content.find((b) => b.type === 'text');
150
+ return textBlock?.text ?? null;
151
+ }
152
+ catch (err) {
153
+ const msg = err instanceof Error ? err.message : String(err);
154
+ console.warn(`[observer-reflector] LLM call failed: ${msg}`);
155
+ return null;
156
+ }
157
+ }
158
+ // ============================================================================
159
+ // JSON parse helper
160
+ // ============================================================================
161
+ /**
162
+ * Attempt to parse the LLM response as JSON. Strips markdown code fences
163
+ * (```json ... ```) before parsing. Returns null on parse failure.
164
+ */
165
+ function parseJsonResponse(text) {
166
+ try {
167
+ // Strip markdown code fences if present
168
+ const cleaned = text
169
+ .replace(/^```(?:json)?\s*/m, '')
170
+ .replace(/\s*```\s*$/m, '')
171
+ .trim();
172
+ return JSON.parse(cleaned);
173
+ }
174
+ catch {
175
+ return null;
176
+ }
177
+ }
178
+ // ============================================================================
179
+ // Database helpers
180
+ // ============================================================================
181
+ /**
182
+ * Query recent brain_observations for a session.
183
+ *
184
+ * Returns up to `limit` observations (most recent first) that:
185
+ * - Were created within the current session (`source_session_id = sessionId`)
186
+ * - Are not already observer-compressed (`source_type != 'observer-compressed'`)
187
+ * - Have not been soft-evicted (`invalid_at IS NULL`)
188
+ *
189
+ * Falls back to all uncompressed observations from the last 24 hours when
190
+ * sessionId is not provided or yields fewer than 2 results.
191
+ */
192
+ function fetchSessionObservations(sessionId, limit) {
193
+ const nativeDb = getBrainNativeDb();
194
+ if (!nativeDb)
195
+ return [];
196
+ try {
197
+ if (sessionId) {
198
+ const rows = nativeDb
199
+ .prepare(`
200
+ SELECT id, type, title, narrative, created_at, source_session_id
201
+ FROM brain_observations
202
+ WHERE source_session_id = ?
203
+ AND (source_type IS NULL OR source_type != ?)
204
+ AND invalid_at IS NULL
205
+ ORDER BY created_at DESC
206
+ LIMIT ?
207
+ `)
208
+ .all(sessionId, OBSERVER_SOURCE, limit);
209
+ if (rows.length >= 2)
210
+ return rows;
211
+ }
212
+ // Fallback: recent uncompressed observations from the last 24 hours
213
+ const cutoff = new Date(Date.now() - 24 * 60 * 60 * 1000)
214
+ .toISOString()
215
+ .replace('T', ' ')
216
+ .slice(0, 19);
217
+ return nativeDb
218
+ .prepare(`
219
+ SELECT id, type, title, narrative, created_at, source_session_id
220
+ FROM brain_observations
221
+ WHERE created_at >= ?
222
+ AND (source_type IS NULL OR source_type != ?)
223
+ AND invalid_at IS NULL
224
+ ORDER BY created_at DESC
225
+ LIMIT ?
226
+ `)
227
+ .all(cutoff, OBSERVER_SOURCE, limit);
228
+ }
229
+ catch {
230
+ return [];
231
+ }
232
+ }
233
+ /**
234
+ * Count uncompressed observations for a session.
235
+ * Used to check the trigger threshold before running the observer.
236
+ */
237
+ function countSessionObservations(sessionId) {
238
+ const nativeDb = getBrainNativeDb();
239
+ if (!nativeDb)
240
+ return 0;
241
+ try {
242
+ if (sessionId) {
243
+ const row = nativeDb
244
+ .prepare(`
245
+ SELECT COUNT(*) as cnt
246
+ FROM brain_observations
247
+ WHERE source_session_id = ?
248
+ AND (source_type IS NULL OR source_type != ?)
249
+ AND invalid_at IS NULL
250
+ `)
251
+ .get(sessionId, OBSERVER_SOURCE);
252
+ if (row && row.cnt > 0)
253
+ return row.cnt;
254
+ }
255
+ const cutoff = new Date(Date.now() - 24 * 60 * 60 * 1000)
256
+ .toISOString()
257
+ .replace('T', ' ')
258
+ .slice(0, 19);
259
+ const row = nativeDb
260
+ .prepare(`
261
+ SELECT COUNT(*) as cnt
262
+ FROM brain_observations
263
+ WHERE created_at >= ?
264
+ AND (source_type IS NULL OR source_type != ?)
265
+ AND invalid_at IS NULL
266
+ `)
267
+ .get(cutoff, OBSERVER_SOURCE);
268
+ return row?.cnt ?? 0;
269
+ }
270
+ catch {
271
+ return 0;
272
+ }
273
+ }
274
+ /**
275
+ * Store a compressed observer note as a brain_observation entry.
276
+ *
277
+ * Uses source_type = 'observer-compressed' so it is excluded from
278
+ * future observer input batches (no infinite compression loops).
279
+ *
280
+ * @returns ID of the stored entry, or null on failure.
281
+ */
282
+ function storeObserverNote(projectRoot, note, sessionId) {
283
+ const nativeDb = getBrainNativeDb();
284
+ if (!nativeDb)
285
+ return null;
286
+ try {
287
+ const id = `O-${randomBytes(4).toString('hex')}`;
288
+ const now = new Date().toISOString().replace('T', ' ').slice(0, 19);
289
+ const title = `[Observer p${note.priority}] ${note.observation.slice(0, 80)}`;
290
+ const narrative = `${note.observation} (compressed from: ${note.source_ids.join(', ')})`;
291
+ nativeDb
292
+ .prepare(`
293
+ INSERT INTO brain_observations
294
+ (id, type, title, narrative, source_type, source_session_id, quality_score,
295
+ memory_tier, created_at)
296
+ VALUES (?, 'change', ?, ?, ?, ?, ?, 'short', ?)
297
+ `)
298
+ .run(id, title, narrative, OBSERVER_SOURCE, sessionId ?? null,
299
+ // Quality: priority 1 = highest quality (1.0), priority 5 = lowest (0.6)
300
+ Math.max(0.6, 1.0 - (note.priority - 1) * 0.1), now);
301
+ // Link compressed note to its source observation IDs via graph edges
302
+ // (best-effort, non-blocking)
303
+ for (const sourceId of note.source_ids) {
304
+ addGraphEdge(projectRoot, `observation:${id}`, `observation:${sourceId}`, 'supersedes', 0.9, 'observer-reflector').catch(() => undefined);
305
+ }
306
+ return id;
307
+ }
308
+ catch (err) {
309
+ const msg = err instanceof Error ? err.message : String(err);
310
+ console.warn(`[observer-reflector] Failed to store observer note: ${msg}`);
311
+ return null;
312
+ }
313
+ }
314
+ /**
315
+ * Mark observations as superseded by the reflector.
316
+ * Sets invalid_at so they are excluded from future queries.
317
+ */
318
+ function markSuperseded(ids) {
319
+ if (ids.length === 0)
320
+ return;
321
+ const nativeDb = getBrainNativeDb();
322
+ if (!nativeDb)
323
+ return;
324
+ const now = new Date().toISOString().replace('T', ' ').slice(0, 19);
325
+ try {
326
+ // SQLite placeholder limit is 999; process in safe batches
327
+ const BATCH = 100;
328
+ for (let i = 0; i < ids.length; i += BATCH) {
329
+ const batch = ids.slice(i, i + BATCH);
330
+ const placeholders = batch.map(() => '?').join(',');
331
+ nativeDb
332
+ .prepare(`UPDATE brain_observations
333
+ SET invalid_at = ?, updated_at = ?
334
+ WHERE id IN (${placeholders}) AND invalid_at IS NULL`)
335
+ .run(now, now, ...batch);
336
+ }
337
+ }
338
+ catch {
339
+ /* best-effort */
340
+ }
341
+ }
342
+ // ============================================================================
343
+ // Observer
344
+ // ============================================================================
345
+ /** System prompt for the Observer LLM call. */
346
+ const OBSERVER_SYSTEM_PROMPT = `You are compressing AI coding session activity into dense observation notes.
347
+ Input: recent observations and tool outputs from a CLEO agent coding session.
348
+ Output: 3-5 dated, prioritized observation notes (each ≤300 chars).
349
+ Focus on: state changes, decisions, errors, completed work.
350
+ Drop: verbose tool output, repetition, transient state.
351
+ Format: JSON array of objects with keys:
352
+ - date: ISO date string (YYYY-MM-DD)
353
+ - priority: integer 1-5 (1=architectural decision, 2=implementation choice, 3=constraint/bug, 4=routine action, 5=noise)
354
+ - observation: string ≤300 chars — capture DECISION+RATIONALE not the discussion
355
+ - source_ids: array of original observation IDs that this note compresses
356
+
357
+ Rules:
358
+ - For tool calls: capture the outcome, not the invocation
359
+ - For file reads: capture what was LEARNED, not what was read
360
+ - For errors: capture the ROOT CAUSE, not the stack trace
361
+ - Prefer priority 1-2 items; include priority 4-5 only if significant count
362
+ - ONLY return valid JSON array, no markdown fences or extra text`;
363
+ /**
364
+ * Run the Observer on current session observations.
365
+ *
366
+ * Triggered when:
367
+ * 1. `brain.observer.enabled` is true (default)
368
+ * 2. Uncompressed observation count ≥ `brain.observer.threshold` (default: 10)
369
+ * 3. `ANTHROPIC_API_KEY` is set in the environment
370
+ *
371
+ * Steps:
372
+ * 1. Fetch up to OBSERVER_BATCH_LIMIT recent uncompressed observations
373
+ * 2. Call Anthropic LLM with Observer prompt
374
+ * 3. Parse response as ObserverNote[]
375
+ * 4. Store each note as brain_observation with source='observer-compressed'
376
+ * 5. Add graph edges linking compressed notes → source observation IDs
377
+ *
378
+ * Always best-effort — errors are caught and logged, never thrown.
379
+ *
380
+ * @param projectRoot - Absolute path to project root.
381
+ * @param sessionId - Current CLEO session ID (used to scope observation query).
382
+ * @returns ObserverResult with counts and note details.
383
+ */
384
+ export async function runObserver(projectRoot, sessionId) {
385
+ const empty = { ran: false, stored: 0, compressedIds: [], notes: [] };
386
+ // Gate 1: API key must be present
387
+ const { resolveAnthropicApiKey: resolveKey } = await import('./anthropic-key-resolver.js');
388
+ if (!resolveKey())
389
+ return empty;
390
+ // Gate 2: Configuration must allow observer
391
+ const cfg = await loadObserverConfig(projectRoot);
392
+ if (!cfg.enabled)
393
+ return empty;
394
+ // Gate 3: Ensure brain.db is initialized
395
+ try {
396
+ const { getBrainDb } = await import('../store/brain-sqlite.js');
397
+ await getBrainDb(projectRoot);
398
+ }
399
+ catch {
400
+ return empty;
401
+ }
402
+ // Gate 4: Threshold check
403
+ const count = countSessionObservations(sessionId);
404
+ if (count < cfg.threshold)
405
+ return empty;
406
+ // Fetch input observations
407
+ const observations = fetchSessionObservations(sessionId, OBSERVER_BATCH_LIMIT);
408
+ if (observations.length < 2)
409
+ return empty;
410
+ // Build the user message: list of observation records
411
+ const observationList = observations
412
+ .map((obs) => `[${obs.id}] ${obs.created_at ?? 'unknown'}: ${obs.title ?? ''} — ${(obs.narrative ?? '').slice(0, 200)}`)
413
+ .join('\n');
414
+ const userContent = `Recent observations to compress (${observations.length} entries):\n\n${observationList}`;
415
+ // Call LLM
416
+ const rawResponse = await callAnthropicLlm(OBSERVER_SYSTEM_PROMPT, userContent);
417
+ if (!rawResponse)
418
+ return empty;
419
+ // Parse response
420
+ const notes = parseJsonResponse(rawResponse);
421
+ if (!notes || !Array.isArray(notes) || notes.length === 0) {
422
+ console.warn('[observer-reflector] Observer: failed to parse LLM response as ObserverNote[]');
423
+ return empty;
424
+ }
425
+ // Validate and store notes
426
+ let stored = 0;
427
+ const compressedIds = [];
428
+ for (const note of notes) {
429
+ // Basic structural validation
430
+ if (typeof note.observation !== 'string' ||
431
+ !note.observation ||
432
+ !Array.isArray(note.source_ids)) {
433
+ continue;
434
+ }
435
+ const id = storeObserverNote(projectRoot, note, sessionId);
436
+ if (id !== null) {
437
+ stored++;
438
+ compressedIds.push(...note.source_ids);
439
+ }
440
+ }
441
+ return {
442
+ ran: true,
443
+ stored,
444
+ compressedIds: [...new Set(compressedIds)],
445
+ notes,
446
+ };
447
+ }
448
+ // ============================================================================
449
+ // Reflector
450
+ // ============================================================================
451
+ /** System prompt for the Reflector LLM call. */
452
+ const REFLECTOR_SYSTEM_PROMPT = `You are restructuring accumulated observations from a coding agent session into durable knowledge.
453
+ Input: observation notes from the session (both raw and observer-compressed).
454
+ Output: extracted patterns + learnings.
455
+
456
+ Rules:
457
+ - Combine related observations into single insights
458
+ - Identify cross-cutting patterns (3+ similar events)
459
+ - Drop observations superseded by later ones (list their IDs in "superseded")
460
+ - Preserve ALL architectural decisions and their rationale
461
+ - Preserve ALL discovered constraints and bugs with root causes
462
+ - Add cross-cutting insights that emerge from the full picture
463
+
464
+ Format: JSON object with keys:
465
+ - patterns: array of { pattern: string (≤300 chars), context: string (≤150 chars) }
466
+ - learnings: array of { insight: string (≤300 chars), confidence: number 0.0-1.0 }
467
+ - superseded: array of observation IDs (strings) that are now redundant
468
+
469
+ ONLY return valid JSON, no markdown fences or extra text.
470
+ Maximum 5 patterns, 5 learnings. Quality over quantity.`;
471
+ /**
472
+ * Run the Reflector on accumulated session observation notes.
473
+ *
474
+ * Triggered at session end when:
475
+ * 1. `brain.reflector.enabled` is true (default)
476
+ * 2. Sufficient observations exist to reflect on (≥ 3)
477
+ * 3. `ANTHROPIC_API_KEY` is set in the environment
478
+ *
479
+ * Steps:
480
+ * 1. Fetch recent observations (raw + observer-compressed) for the session
481
+ * 2. Call Anthropic LLM with Reflector prompt
482
+ * 3. Parse response as { patterns, learnings, superseded }
483
+ * 4. Store patterns via storePattern()
484
+ * 5. Store learnings via storeLearning()
485
+ * 6. Mark superseded observations as invalid (soft-evict)
486
+ *
487
+ * Always best-effort — errors are caught and logged, never thrown.
488
+ *
489
+ * @param projectRoot - Absolute path to project root.
490
+ * @param sessionId - Current CLEO session ID.
491
+ * @returns ReflectorResult with counts.
492
+ */
493
+ export async function runReflector(projectRoot, sessionId) {
494
+ const empty = {
495
+ ran: false,
496
+ patternsStored: 0,
497
+ learningsStored: 0,
498
+ supersededIds: [],
499
+ };
500
+ // Gate 1: API key must be present
501
+ const { resolveAnthropicApiKey: resolveKey } = await import('./anthropic-key-resolver.js');
502
+ if (!resolveKey())
503
+ return empty;
504
+ // Gate 2: Configuration must allow reflector
505
+ const cfg = await loadReflectorConfig(projectRoot);
506
+ if (!cfg.enabled)
507
+ return empty;
508
+ // Gate 3: Ensure brain.db is initialized
509
+ try {
510
+ const { getBrainDb } = await import('../store/brain-sqlite.js');
511
+ await getBrainDb(projectRoot);
512
+ }
513
+ catch {
514
+ return empty;
515
+ }
516
+ // Fetch ALL recent session observations (both raw and compressed)
517
+ // for reflector to synthesize across
518
+ const nativeDb = getBrainNativeDb();
519
+ if (!nativeDb)
520
+ return empty;
521
+ let observations = [];
522
+ try {
523
+ const cutoff = new Date(Date.now() - 48 * 60 * 60 * 1000)
524
+ .toISOString()
525
+ .replace('T', ' ')
526
+ .slice(0, 19);
527
+ if (sessionId) {
528
+ observations = nativeDb
529
+ .prepare(`
530
+ SELECT id, type, title, narrative, created_at, source_type
531
+ FROM brain_observations
532
+ WHERE source_session_id = ?
533
+ AND invalid_at IS NULL
534
+ ORDER BY created_at DESC
535
+ LIMIT 50
536
+ `)
537
+ .all(sessionId);
538
+ }
539
+ if (observations.length < 3) {
540
+ // Fallback: last 48 hours
541
+ observations = nativeDb
542
+ .prepare(`
543
+ SELECT id, type, title, narrative, created_at, source_type
544
+ FROM brain_observations
545
+ WHERE created_at >= ?
546
+ AND invalid_at IS NULL
547
+ ORDER BY created_at DESC
548
+ LIMIT 50
549
+ `)
550
+ .all(cutoff);
551
+ }
552
+ }
553
+ catch {
554
+ return empty;
555
+ }
556
+ if (observations.length < 3)
557
+ return empty;
558
+ // Build user message
559
+ const obsList = observations
560
+ .map((obs) => `[${obs.id}] (${obs.source_type ?? 'raw'}): ${obs.title ?? ''} — ${(obs.narrative ?? '').slice(0, 200)}`)
561
+ .join('\n');
562
+ const userContent = `Session observations to synthesize (${observations.length} entries):\n\n${obsList}`;
563
+ // Call LLM
564
+ const rawResponse = await callAnthropicLlm(REFLECTOR_SYSTEM_PROMPT, userContent);
565
+ if (!rawResponse)
566
+ return empty;
567
+ // Parse response
568
+ const output = parseJsonResponse(rawResponse);
569
+ if (!output || typeof output !== 'object') {
570
+ console.warn('[observer-reflector] Reflector: failed to parse LLM response');
571
+ return empty;
572
+ }
573
+ let patternsStored = 0;
574
+ let learningsStored = 0;
575
+ // Store patterns
576
+ if (Array.isArray(output.patterns)) {
577
+ for (const p of output.patterns) {
578
+ if (typeof p.pattern !== 'string' || !p.pattern)
579
+ continue;
580
+ try {
581
+ await storePattern(projectRoot, {
582
+ type: 'workflow',
583
+ pattern: p.pattern.slice(0, 500),
584
+ context: (p.context ?? '').slice(0, 200),
585
+ source: REFLECTOR_SOURCE,
586
+ });
587
+ patternsStored++;
588
+ }
589
+ catch {
590
+ /* best-effort */
591
+ }
592
+ }
593
+ }
594
+ // Store learnings
595
+ if (Array.isArray(output.learnings)) {
596
+ for (const l of output.learnings) {
597
+ if (typeof l.insight !== 'string' || !l.insight)
598
+ continue;
599
+ const confidence = typeof l.confidence === 'number' ? Math.max(0.1, Math.min(1.0, l.confidence)) : 0.7;
600
+ try {
601
+ await storeLearning(projectRoot, {
602
+ insight: l.insight.slice(0, 500),
603
+ source: REFLECTOR_SOURCE,
604
+ confidence,
605
+ actionable: confidence >= 0.7,
606
+ });
607
+ learningsStored++;
608
+ }
609
+ catch {
610
+ /* best-effort */
611
+ }
612
+ }
613
+ }
614
+ // Mark superseded observations
615
+ const supersededIds = Array.isArray(output.superseded)
616
+ ? output.superseded.filter((id) => typeof id === 'string')
617
+ : [];
618
+ markSuperseded(supersededIds);
619
+ return {
620
+ ran: true,
621
+ patternsStored,
622
+ learningsStored,
623
+ supersededIds,
624
+ };
625
+ }
626
+ //# sourceMappingURL=observer-reflector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observer-reflector.js","sourceRoot":"","sources":["../../src/memory/observer-reflector.ts"],"names":[],"mappings":"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"}