@soleri/core 2.12.0 → 8.0.0

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 (430) hide show
  1. package/data/flows/build.flow.yaml +128 -0
  2. package/data/flows/deliver.flow.yaml +110 -0
  3. package/data/flows/design.flow.yaml +108 -0
  4. package/data/flows/enhance.flow.yaml +90 -0
  5. package/data/flows/explore.flow.yaml +84 -0
  6. package/data/flows/fix.flow.yaml +90 -0
  7. package/data/flows/plan.flow.yaml +87 -0
  8. package/data/flows/review.flow.yaml +90 -0
  9. package/dist/agency/agency-manager.d.ts +27 -1
  10. package/dist/agency/agency-manager.d.ts.map +1 -1
  11. package/dist/agency/agency-manager.js +180 -9
  12. package/dist/agency/agency-manager.js.map +1 -1
  13. package/dist/agency/default-rules.d.ts +7 -0
  14. package/dist/agency/default-rules.d.ts.map +1 -0
  15. package/dist/agency/default-rules.js +79 -0
  16. package/dist/agency/default-rules.js.map +1 -0
  17. package/dist/agency/types.d.ts +48 -0
  18. package/dist/agency/types.d.ts.map +1 -1
  19. package/dist/brain/brain.d.ts +17 -2
  20. package/dist/brain/brain.d.ts.map +1 -1
  21. package/dist/brain/brain.js +118 -8
  22. package/dist/brain/brain.js.map +1 -1
  23. package/dist/brain/intelligence.d.ts.map +1 -1
  24. package/dist/brain/intelligence.js +16 -2
  25. package/dist/brain/intelligence.js.map +1 -1
  26. package/dist/brain/knowledge-synthesizer.d.ts +37 -0
  27. package/dist/brain/knowledge-synthesizer.d.ts.map +1 -0
  28. package/dist/brain/knowledge-synthesizer.js +161 -0
  29. package/dist/brain/knowledge-synthesizer.js.map +1 -0
  30. package/dist/brain/learning-radar.d.ts +96 -0
  31. package/dist/brain/learning-radar.d.ts.map +1 -0
  32. package/dist/brain/learning-radar.js +202 -0
  33. package/dist/brain/learning-radar.js.map +1 -0
  34. package/dist/brain/types.d.ts +15 -0
  35. package/dist/brain/types.d.ts.map +1 -1
  36. package/dist/capabilities/chain-mapping.d.ts +21 -0
  37. package/dist/capabilities/chain-mapping.d.ts.map +1 -0
  38. package/dist/capabilities/chain-mapping.js +86 -0
  39. package/dist/capabilities/chain-mapping.js.map +1 -0
  40. package/dist/capabilities/index.d.ts +10 -0
  41. package/dist/capabilities/index.d.ts.map +1 -0
  42. package/dist/capabilities/index.js +8 -0
  43. package/dist/capabilities/index.js.map +1 -0
  44. package/dist/capabilities/registry.d.ts +95 -0
  45. package/dist/capabilities/registry.d.ts.map +1 -0
  46. package/dist/capabilities/registry.js +227 -0
  47. package/dist/capabilities/registry.js.map +1 -0
  48. package/dist/capabilities/types.d.ts +106 -0
  49. package/dist/capabilities/types.d.ts.map +1 -0
  50. package/dist/capabilities/types.js +12 -0
  51. package/dist/capabilities/types.js.map +1 -0
  52. package/dist/context/context-engine.d.ts.map +1 -1
  53. package/dist/context/context-engine.js +82 -17
  54. package/dist/context/context-engine.js.map +1 -1
  55. package/dist/context/types.d.ts +5 -0
  56. package/dist/context/types.d.ts.map +1 -1
  57. package/dist/control/intent-router.d.ts +12 -1
  58. package/dist/control/intent-router.d.ts.map +1 -1
  59. package/dist/control/intent-router.js +126 -2
  60. package/dist/control/intent-router.js.map +1 -1
  61. package/dist/control/types.d.ts +17 -0
  62. package/dist/control/types.d.ts.map +1 -1
  63. package/dist/curator/classifier.d.ts +18 -0
  64. package/dist/curator/classifier.d.ts.map +1 -0
  65. package/dist/curator/classifier.js +61 -0
  66. package/dist/curator/classifier.js.map +1 -0
  67. package/dist/curator/quality-gate.d.ts +29 -0
  68. package/dist/curator/quality-gate.d.ts.map +1 -0
  69. package/dist/curator/quality-gate.js +88 -0
  70. package/dist/curator/quality-gate.js.map +1 -0
  71. package/dist/domain-packs/index.d.ts +8 -0
  72. package/dist/domain-packs/index.d.ts.map +1 -0
  73. package/dist/domain-packs/index.js +8 -0
  74. package/dist/domain-packs/index.js.map +1 -0
  75. package/dist/domain-packs/inject-rules.d.ts +24 -0
  76. package/dist/domain-packs/inject-rules.d.ts.map +1 -0
  77. package/dist/domain-packs/inject-rules.js +65 -0
  78. package/dist/domain-packs/inject-rules.js.map +1 -0
  79. package/dist/domain-packs/knowledge-installer.d.ts +27 -0
  80. package/dist/domain-packs/knowledge-installer.d.ts.map +1 -0
  81. package/dist/domain-packs/knowledge-installer.js +89 -0
  82. package/dist/domain-packs/knowledge-installer.js.map +1 -0
  83. package/dist/domain-packs/loader.d.ts +28 -0
  84. package/dist/domain-packs/loader.d.ts.map +1 -0
  85. package/dist/domain-packs/loader.js +105 -0
  86. package/dist/domain-packs/loader.js.map +1 -0
  87. package/dist/domain-packs/pack-runtime.d.ts +80 -0
  88. package/dist/domain-packs/pack-runtime.d.ts.map +1 -0
  89. package/dist/domain-packs/pack-runtime.js +36 -0
  90. package/dist/domain-packs/pack-runtime.js.map +1 -0
  91. package/dist/domain-packs/skills-installer.d.ts +21 -0
  92. package/dist/domain-packs/skills-installer.d.ts.map +1 -0
  93. package/dist/domain-packs/skills-installer.js +38 -0
  94. package/dist/domain-packs/skills-installer.js.map +1 -0
  95. package/dist/domain-packs/token-resolver.d.ts +37 -0
  96. package/dist/domain-packs/token-resolver.d.ts.map +1 -0
  97. package/dist/domain-packs/token-resolver.js +109 -0
  98. package/dist/domain-packs/token-resolver.js.map +1 -0
  99. package/dist/domain-packs/types.d.ts +91 -0
  100. package/dist/domain-packs/types.d.ts.map +1 -0
  101. package/dist/domain-packs/types.js +122 -0
  102. package/dist/domain-packs/types.js.map +1 -0
  103. package/dist/engine/bin/soleri-engine.d.ts +12 -0
  104. package/dist/engine/bin/soleri-engine.d.ts.map +1 -0
  105. package/dist/engine/bin/soleri-engine.js +184 -0
  106. package/dist/engine/bin/soleri-engine.js.map +1 -0
  107. package/dist/engine/core-ops.d.ts +27 -0
  108. package/dist/engine/core-ops.d.ts.map +1 -0
  109. package/dist/engine/core-ops.js +159 -0
  110. package/dist/engine/core-ops.js.map +1 -0
  111. package/dist/engine/index.d.ts +19 -0
  112. package/dist/engine/index.d.ts.map +1 -0
  113. package/dist/engine/index.js +17 -0
  114. package/dist/engine/index.js.map +1 -0
  115. package/dist/engine/register-engine.d.ts +54 -0
  116. package/dist/engine/register-engine.d.ts.map +1 -0
  117. package/dist/engine/register-engine.js +270 -0
  118. package/dist/engine/register-engine.js.map +1 -0
  119. package/dist/engine/test-helpers.d.ts +30 -0
  120. package/dist/engine/test-helpers.d.ts.map +1 -0
  121. package/dist/engine/test-helpers.js +59 -0
  122. package/dist/engine/test-helpers.js.map +1 -0
  123. package/dist/events/event-bus.d.ts +30 -0
  124. package/dist/events/event-bus.d.ts.map +1 -0
  125. package/dist/events/event-bus.js +51 -0
  126. package/dist/events/event-bus.js.map +1 -0
  127. package/dist/flows/chain-runner.d.ts +46 -0
  128. package/dist/flows/chain-runner.d.ts.map +1 -0
  129. package/dist/flows/chain-runner.js +271 -0
  130. package/dist/flows/chain-runner.js.map +1 -0
  131. package/dist/flows/chain-types.d.ts +103 -0
  132. package/dist/flows/chain-types.d.ts.map +1 -0
  133. package/dist/flows/chain-types.js +23 -0
  134. package/dist/flows/chain-types.js.map +1 -0
  135. package/dist/flows/context-router.d.ts +39 -0
  136. package/dist/flows/context-router.d.ts.map +1 -0
  137. package/dist/flows/context-router.js +206 -0
  138. package/dist/flows/context-router.js.map +1 -0
  139. package/dist/flows/dispatch-registry.d.ts +24 -0
  140. package/dist/flows/dispatch-registry.d.ts.map +1 -0
  141. package/dist/flows/dispatch-registry.js +70 -0
  142. package/dist/flows/dispatch-registry.js.map +1 -0
  143. package/dist/flows/epilogue.d.ts +24 -0
  144. package/dist/flows/epilogue.d.ts.map +1 -0
  145. package/dist/flows/epilogue.js +52 -0
  146. package/dist/flows/epilogue.js.map +1 -0
  147. package/dist/flows/executor.d.ts +25 -0
  148. package/dist/flows/executor.d.ts.map +1 -0
  149. package/dist/flows/executor.js +153 -0
  150. package/dist/flows/executor.js.map +1 -0
  151. package/dist/flows/gate-evaluator.d.ts +26 -0
  152. package/dist/flows/gate-evaluator.d.ts.map +1 -0
  153. package/dist/flows/gate-evaluator.js +162 -0
  154. package/dist/flows/gate-evaluator.js.map +1 -0
  155. package/dist/flows/index.d.ts +14 -0
  156. package/dist/flows/index.d.ts.map +1 -0
  157. package/dist/flows/index.js +20 -0
  158. package/dist/flows/index.js.map +1 -0
  159. package/dist/flows/loader.d.ts +17 -0
  160. package/dist/flows/loader.d.ts.map +1 -0
  161. package/dist/flows/loader.js +61 -0
  162. package/dist/flows/loader.js.map +1 -0
  163. package/dist/flows/plan-builder.d.ts +40 -0
  164. package/dist/flows/plan-builder.d.ts.map +1 -0
  165. package/dist/flows/plan-builder.js +213 -0
  166. package/dist/flows/plan-builder.js.map +1 -0
  167. package/dist/flows/probes.d.ts +11 -0
  168. package/dist/flows/probes.d.ts.map +1 -0
  169. package/dist/flows/probes.js +62 -0
  170. package/dist/flows/probes.js.map +1 -0
  171. package/dist/flows/types.d.ts +950 -0
  172. package/dist/flows/types.d.ts.map +1 -0
  173. package/dist/flows/types.js +105 -0
  174. package/dist/flows/types.js.map +1 -0
  175. package/dist/health/doctor-checks.d.ts +15 -0
  176. package/dist/health/doctor-checks.d.ts.map +1 -0
  177. package/dist/health/doctor-checks.js +98 -0
  178. package/dist/health/doctor-checks.js.map +1 -0
  179. package/dist/index.d.ts +11 -1
  180. package/dist/index.d.ts.map +1 -1
  181. package/dist/index.js +10 -1
  182. package/dist/index.js.map +1 -1
  183. package/dist/intake/text-ingester.d.ts +52 -0
  184. package/dist/intake/text-ingester.d.ts.map +1 -0
  185. package/dist/intake/text-ingester.js +181 -0
  186. package/dist/intake/text-ingester.js.map +1 -0
  187. package/dist/intelligence/loader.d.ts +19 -0
  188. package/dist/intelligence/loader.d.ts.map +1 -1
  189. package/dist/intelligence/loader.js +35 -0
  190. package/dist/intelligence/loader.js.map +1 -1
  191. package/dist/intelligence/types.d.ts +1 -0
  192. package/dist/intelligence/types.d.ts.map +1 -1
  193. package/dist/llm/llm-client.d.ts.map +1 -1
  194. package/dist/llm/llm-client.js +37 -1
  195. package/dist/llm/llm-client.js.map +1 -1
  196. package/dist/llm/oauth-discovery.d.ts +26 -0
  197. package/dist/llm/oauth-discovery.d.ts.map +1 -0
  198. package/dist/llm/oauth-discovery.js +149 -0
  199. package/dist/llm/oauth-discovery.js.map +1 -0
  200. package/dist/packs/types.d.ts +58 -19
  201. package/dist/packs/types.d.ts.map +1 -1
  202. package/dist/packs/types.js +14 -0
  203. package/dist/packs/types.js.map +1 -1
  204. package/dist/planning/evidence-collector.d.ts +41 -0
  205. package/dist/planning/evidence-collector.d.ts.map +1 -0
  206. package/dist/planning/evidence-collector.js +194 -0
  207. package/dist/planning/evidence-collector.js.map +1 -0
  208. package/dist/planning/planner.d.ts +4 -0
  209. package/dist/planning/planner.d.ts.map +1 -1
  210. package/dist/planning/planner.js +11 -0
  211. package/dist/planning/planner.js.map +1 -1
  212. package/dist/playbooks/generic/onboarding.d.ts +9 -0
  213. package/dist/playbooks/generic/onboarding.d.ts.map +1 -0
  214. package/dist/playbooks/generic/onboarding.js +74 -0
  215. package/dist/playbooks/generic/onboarding.js.map +1 -0
  216. package/dist/playbooks/playbook-registry.d.ts.map +1 -1
  217. package/dist/playbooks/playbook-registry.js +2 -0
  218. package/dist/playbooks/playbook-registry.js.map +1 -1
  219. package/dist/queue/job-queue.d.ts +92 -0
  220. package/dist/queue/job-queue.d.ts.map +1 -0
  221. package/dist/queue/job-queue.js +180 -0
  222. package/dist/queue/job-queue.js.map +1 -0
  223. package/dist/queue/pipeline-runner.d.ts +62 -0
  224. package/dist/queue/pipeline-runner.d.ts.map +1 -0
  225. package/dist/queue/pipeline-runner.js +126 -0
  226. package/dist/queue/pipeline-runner.js.map +1 -0
  227. package/dist/runtime/admin-extra-ops.d.ts.map +1 -1
  228. package/dist/runtime/admin-extra-ops.js +15 -9
  229. package/dist/runtime/admin-extra-ops.js.map +1 -1
  230. package/dist/runtime/admin-ops.js +4 -4
  231. package/dist/runtime/admin-ops.js.map +1 -1
  232. package/dist/runtime/admin-setup-ops.d.ts +20 -0
  233. package/dist/runtime/admin-setup-ops.d.ts.map +1 -0
  234. package/dist/runtime/admin-setup-ops.js +583 -0
  235. package/dist/runtime/admin-setup-ops.js.map +1 -0
  236. package/dist/runtime/capture-ops.d.ts.map +1 -1
  237. package/dist/runtime/capture-ops.js +33 -1
  238. package/dist/runtime/capture-ops.js.map +1 -1
  239. package/dist/runtime/chain-ops.d.ts +9 -0
  240. package/dist/runtime/chain-ops.d.ts.map +1 -0
  241. package/dist/runtime/chain-ops.js +107 -0
  242. package/dist/runtime/chain-ops.js.map +1 -0
  243. package/dist/runtime/claude-md-helpers.d.ts +65 -0
  244. package/dist/runtime/claude-md-helpers.d.ts.map +1 -0
  245. package/dist/runtime/claude-md-helpers.js +173 -0
  246. package/dist/runtime/claude-md-helpers.js.map +1 -0
  247. package/dist/runtime/curator-extra-ops.d.ts +3 -2
  248. package/dist/runtime/curator-extra-ops.d.ts.map +1 -1
  249. package/dist/runtime/curator-extra-ops.js +81 -3
  250. package/dist/runtime/curator-extra-ops.js.map +1 -1
  251. package/dist/runtime/domain-ops.d.ts +21 -5
  252. package/dist/runtime/domain-ops.d.ts.map +1 -1
  253. package/dist/runtime/domain-ops.js +64 -6
  254. package/dist/runtime/domain-ops.js.map +1 -1
  255. package/dist/runtime/facades/admin-facade.d.ts.map +1 -1
  256. package/dist/runtime/facades/admin-facade.js +4 -0
  257. package/dist/runtime/facades/admin-facade.js.map +1 -1
  258. package/dist/runtime/facades/agency-facade.d.ts.map +1 -1
  259. package/dist/runtime/facades/agency-facade.js +64 -0
  260. package/dist/runtime/facades/agency-facade.js.map +1 -1
  261. package/dist/runtime/facades/brain-facade.d.ts.map +1 -1
  262. package/dist/runtime/facades/brain-facade.js +122 -1
  263. package/dist/runtime/facades/brain-facade.js.map +1 -1
  264. package/dist/runtime/facades/cognee-facade.d.ts.map +1 -1
  265. package/dist/runtime/facades/cognee-facade.js +3 -1
  266. package/dist/runtime/facades/cognee-facade.js.map +1 -1
  267. package/dist/runtime/facades/control-facade.d.ts.map +1 -1
  268. package/dist/runtime/facades/control-facade.js +42 -0
  269. package/dist/runtime/facades/control-facade.js.map +1 -1
  270. package/dist/runtime/facades/index.d.ts.map +1 -1
  271. package/dist/runtime/facades/index.js +10 -6
  272. package/dist/runtime/facades/index.js.map +1 -1
  273. package/dist/runtime/facades/memory-facade.d.ts.map +1 -1
  274. package/dist/runtime/facades/memory-facade.js +20 -2
  275. package/dist/runtime/facades/memory-facade.js.map +1 -1
  276. package/dist/runtime/facades/plan-facade.d.ts.map +1 -1
  277. package/dist/runtime/facades/plan-facade.js +2 -0
  278. package/dist/runtime/facades/plan-facade.js.map +1 -1
  279. package/dist/runtime/facades/vault-facade.d.ts.map +1 -1
  280. package/dist/runtime/facades/vault-facade.js +27 -5
  281. package/dist/runtime/facades/vault-facade.js.map +1 -1
  282. package/dist/runtime/intake-ops.d.ts +7 -5
  283. package/dist/runtime/intake-ops.d.ts.map +1 -1
  284. package/dist/runtime/intake-ops.js +98 -5
  285. package/dist/runtime/intake-ops.js.map +1 -1
  286. package/dist/runtime/memory-extra-ops.d.ts +6 -3
  287. package/dist/runtime/memory-extra-ops.d.ts.map +1 -1
  288. package/dist/runtime/memory-extra-ops.js +292 -4
  289. package/dist/runtime/memory-extra-ops.js.map +1 -1
  290. package/dist/runtime/orchestrate-ops.d.ts +8 -7
  291. package/dist/runtime/orchestrate-ops.d.ts.map +1 -1
  292. package/dist/runtime/orchestrate-ops.js +217 -61
  293. package/dist/runtime/orchestrate-ops.js.map +1 -1
  294. package/dist/runtime/planning-extra-ops.d.ts.map +1 -1
  295. package/dist/runtime/planning-extra-ops.js +85 -0
  296. package/dist/runtime/planning-extra-ops.js.map +1 -1
  297. package/dist/runtime/playbook-ops.js +1 -1
  298. package/dist/runtime/playbook-ops.js.map +1 -1
  299. package/dist/runtime/runtime.d.ts.map +1 -1
  300. package/dist/runtime/runtime.js +165 -18
  301. package/dist/runtime/runtime.js.map +1 -1
  302. package/dist/runtime/session-briefing.d.ts +23 -0
  303. package/dist/runtime/session-briefing.d.ts.map +1 -0
  304. package/dist/runtime/session-briefing.js +140 -0
  305. package/dist/runtime/session-briefing.js.map +1 -0
  306. package/dist/runtime/types.d.ts +29 -2
  307. package/dist/runtime/types.d.ts.map +1 -1
  308. package/dist/runtime/vault-linking-ops.d.ts +13 -0
  309. package/dist/runtime/vault-linking-ops.d.ts.map +1 -0
  310. package/dist/runtime/vault-linking-ops.js +365 -0
  311. package/dist/runtime/vault-linking-ops.js.map +1 -0
  312. package/dist/vault/linking.d.ts +46 -0
  313. package/dist/vault/linking.d.ts.map +1 -0
  314. package/dist/vault/linking.js +275 -0
  315. package/dist/vault/linking.js.map +1 -0
  316. package/dist/vault/vault-types.d.ts +37 -0
  317. package/dist/vault/vault-types.d.ts.map +1 -1
  318. package/dist/vault/vault.d.ts +37 -0
  319. package/dist/vault/vault.d.ts.map +1 -1
  320. package/dist/vault/vault.js +152 -9
  321. package/dist/vault/vault.js.map +1 -1
  322. package/package.json +4 -1
  323. package/src/__tests__/admin-extra-ops.test.ts +1 -1
  324. package/src/__tests__/admin-ops.test.ts +2 -1
  325. package/src/__tests__/admin-setup-ops.test.ts +355 -0
  326. package/src/__tests__/async-infrastructure.test.ts +307 -0
  327. package/src/__tests__/cognee-client-gaps.test.ts +474 -0
  328. package/src/__tests__/cognee-hybrid-search.test.ts +492 -0
  329. package/src/__tests__/cognee-sync-manager-deep.test.ts +654 -0
  330. package/src/__tests__/cognee-sync-manager.test.ts +1 -0
  331. package/src/__tests__/core-ops.test.ts +9 -61
  332. package/src/__tests__/curator-extra-ops.test.ts +6 -2
  333. package/src/__tests__/curator-pipeline-e2e.test.ts +358 -0
  334. package/src/__tests__/domain-packs.test.ts +421 -0
  335. package/src/__tests__/flows.test.ts +604 -0
  336. package/src/__tests__/memory-extra-ops.test.ts +2 -2
  337. package/src/__tests__/planning-extra-ops.test.ts +2 -2
  338. package/src/__tests__/playbook-registry.test.ts +2 -2
  339. package/src/__tests__/playbook-seeder.test.ts +8 -8
  340. package/src/__tests__/playbook.test.ts +5 -5
  341. package/src/__tests__/second-brain-features.test.ts +583 -0
  342. package/src/__tests__/token-resolver.test.ts +79 -0
  343. package/src/agency/agency-manager.ts +217 -9
  344. package/src/agency/default-rules.ts +83 -0
  345. package/src/agency/types.ts +61 -0
  346. package/src/brain/brain.ts +110 -8
  347. package/src/brain/intelligence.ts +21 -2
  348. package/src/brain/knowledge-synthesizer.ts +218 -0
  349. package/src/brain/learning-radar.ts +340 -0
  350. package/src/brain/types.ts +16 -0
  351. package/src/capabilities/chain-mapping.ts +93 -0
  352. package/src/capabilities/index.ts +21 -0
  353. package/src/capabilities/registry.ts +290 -0
  354. package/src/capabilities/types.ts +143 -0
  355. package/src/context/context-engine.ts +114 -15
  356. package/src/context/types.ts +5 -0
  357. package/src/control/intent-router.ts +153 -2
  358. package/src/control/types.ts +10 -0
  359. package/src/curator/classifier.ts +88 -0
  360. package/src/curator/quality-gate.ts +129 -0
  361. package/src/domain-packs/index.ts +27 -0
  362. package/src/domain-packs/inject-rules.ts +74 -0
  363. package/src/domain-packs/knowledge-installer.ts +116 -0
  364. package/src/domain-packs/loader.ts +124 -0
  365. package/src/domain-packs/pack-runtime.ts +99 -0
  366. package/src/domain-packs/skills-installer.ts +56 -0
  367. package/src/domain-packs/token-resolver.ts +126 -0
  368. package/src/domain-packs/types.ts +229 -0
  369. package/src/engine/__tests__/register-engine.test.ts +104 -0
  370. package/src/engine/bin/soleri-engine.ts +218 -0
  371. package/src/engine/core-ops.ts +178 -0
  372. package/src/engine/index.ts +19 -0
  373. package/src/engine/register-engine.ts +385 -0
  374. package/src/engine/test-helpers.ts +83 -0
  375. package/src/events/event-bus.ts +58 -0
  376. package/src/flows/chain-runner.ts +369 -0
  377. package/src/flows/chain-types.ts +57 -0
  378. package/src/flows/context-router.ts +257 -0
  379. package/src/flows/dispatch-registry.ts +80 -0
  380. package/src/flows/epilogue.ts +65 -0
  381. package/src/flows/executor.ts +182 -0
  382. package/src/flows/gate-evaluator.ts +171 -0
  383. package/src/flows/index.ts +52 -0
  384. package/src/flows/loader.ts +63 -0
  385. package/src/flows/plan-builder.ts +250 -0
  386. package/src/flows/probes.ts +70 -0
  387. package/src/flows/types.ts +217 -0
  388. package/src/health/doctor-checks.ts +115 -0
  389. package/src/index.ts +68 -1
  390. package/src/intake/text-ingester.ts +234 -0
  391. package/src/intelligence/loader.ts +38 -0
  392. package/src/intelligence/types.ts +1 -0
  393. package/src/llm/llm-client.ts +38 -1
  394. package/src/llm/oauth-discovery.ts +169 -0
  395. package/src/packs/types.ts +19 -0
  396. package/src/planning/evidence-collector.ts +247 -0
  397. package/src/planning/planner.ts +11 -0
  398. package/src/playbooks/generic/onboarding.ts +79 -0
  399. package/src/playbooks/playbook-registry.ts +2 -0
  400. package/src/queue/job-queue.ts +281 -0
  401. package/src/queue/pipeline-runner.ts +149 -0
  402. package/src/runtime/admin-extra-ops.ts +14 -8
  403. package/src/runtime/admin-ops.ts +4 -4
  404. package/src/runtime/admin-setup-ops.ts +664 -0
  405. package/src/runtime/capture-ops.ts +40 -1
  406. package/src/runtime/chain-ops.ts +121 -0
  407. package/src/runtime/claude-md-helpers.ts +236 -0
  408. package/src/runtime/curator-extra-ops.ts +86 -3
  409. package/src/runtime/domain-ops.ts +71 -5
  410. package/src/runtime/facades/admin-facade.ts +4 -0
  411. package/src/runtime/facades/agency-facade.ts +68 -0
  412. package/src/runtime/facades/brain-facade.ts +142 -1
  413. package/src/runtime/facades/cognee-facade.ts +3 -1
  414. package/src/runtime/facades/control-facade.ts +45 -0
  415. package/src/runtime/facades/index.ts +12 -6
  416. package/src/runtime/facades/memory-facade.ts +20 -2
  417. package/src/runtime/facades/plan-facade.ts +2 -0
  418. package/src/runtime/facades/vault-facade.ts +30 -5
  419. package/src/runtime/intake-ops.ts +107 -5
  420. package/src/runtime/memory-extra-ops.ts +312 -4
  421. package/src/runtime/orchestrate-ops.ts +261 -65
  422. package/src/runtime/planning-extra-ops.ts +94 -0
  423. package/src/runtime/playbook-ops.ts +1 -1
  424. package/src/runtime/runtime.ts +164 -19
  425. package/src/runtime/session-briefing.ts +161 -0
  426. package/src/runtime/types.ts +29 -2
  427. package/src/runtime/vault-linking-ops.ts +452 -0
  428. package/src/vault/linking.ts +333 -0
  429. package/src/vault/vault-types.ts +46 -0
  430. package/src/vault/vault.ts +173 -11
@@ -1,11 +1,14 @@
1
1
  /**
2
- * Extended memory operations — 8 ops for advanced memory management.
2
+ * Extended memory operations — 18 ops for advanced memory management.
3
3
  *
4
4
  * These complement the 4 base memory ops in core-ops.ts:
5
5
  * memory_search, memory_capture, memory_list, session_capture
6
6
  *
7
- * New ops: memory_delete, memory_stats, memory_export, memory_import,
8
- * memory_prune, memory_deduplicate, memory_topics, memory_by_project
7
+ * CRUD: memory_delete, memory_stats, memory_export, memory_import,
8
+ * memory_prune, memory_deduplicate, memory_topics, memory_by_project
9
+ * Governance (#213): memory_get, session_search, knowledge_audit, smart_capture,
10
+ * knowledge_health, merge_patterns, knowledge_reorganize,
11
+ * list_project_knowledge, list_projects, knowledge_debug
9
12
  */
10
13
 
11
14
  import { z } from 'zod';
@@ -13,7 +16,7 @@ import type { OpDefinition } from '../facades/types.js';
13
16
  import type { AgentRuntime } from './types.js';
14
17
 
15
18
  export function createMemoryExtraOps(runtime: AgentRuntime): OpDefinition[] {
16
- const { vault } = runtime;
19
+ const { vault, brain, curator, linkManager } = runtime;
17
20
 
18
21
  return [
19
22
  {
@@ -116,6 +119,11 @@ export function createMemoryExtraOps(runtime: AgentRuntime): OpDefinition[] {
116
119
  topics: (m.topics as string[]) ?? [],
117
120
  filesModified: (m.filesModified as string[]) ?? [],
118
121
  toolsUsed: (m.toolsUsed as string[]) ?? [],
122
+ intent: (m.intent as string) ?? null,
123
+ decisions: (m.decisions as string[]) ?? [],
124
+ currentState: (m.currentState as string) ?? null,
125
+ nextSteps: (m.nextSteps as string[]) ?? [],
126
+ vaultEntriesReferenced: (m.vaultEntriesReferenced as string[]) ?? [],
119
127
  createdAt: m.createdAt as number,
120
128
  archivedAt: (m.archivedAt as number | null) ?? null,
121
129
  }));
@@ -182,5 +190,305 @@ export function createMemoryExtraOps(runtime: AgentRuntime): OpDefinition[] {
182
190
  return { count: groups.length, projects: groups };
183
191
  },
184
192
  },
193
+
194
+ // ─── Knowledge Governance (#213) ─────────────────────────────────
195
+
196
+ {
197
+ name: 'memory_get',
198
+ description: 'Get a single memory entry by ID.',
199
+ auth: 'read',
200
+ schema: z.object({
201
+ id: z.string().describe('Memory ID'),
202
+ }),
203
+ handler: async (params) => {
204
+ const memory = vault.getMemory(params.id as string);
205
+ if (!memory) return { found: false, id: params.id };
206
+ return memory;
207
+ },
208
+ },
209
+ {
210
+ name: 'session_search',
211
+ description: 'Search session memories with optional includeArchived flag.',
212
+ auth: 'read',
213
+ schema: z.object({
214
+ query: z.string().describe('Search query'),
215
+ includeArchived: z.boolean().optional().default(false),
216
+ intent: z.string().optional().describe('Filter by session intent'),
217
+ limit: z.number().optional().default(10),
218
+ }),
219
+ handler: async (params) => {
220
+ // Use searchMemories with type=session
221
+ const results = vault.searchMemories(params.query as string, {
222
+ type: 'session',
223
+ intent: params.intent as string | undefined,
224
+ limit: params.limit as number,
225
+ });
226
+ // If includeArchived, also search archived
227
+ if (params.includeArchived) {
228
+ try {
229
+ const archived = vault
230
+ .getProvider()
231
+ .all<Record<string, unknown>>(
232
+ "SELECT * FROM memories WHERE type = 'session' AND archived_at IS NOT NULL AND summary LIKE @q ORDER BY created_at DESC LIMIT @limit",
233
+ { q: `%${params.query}%`, limit: params.limit as number },
234
+ );
235
+ // Minimal parsing for archived results
236
+ const archivedMemories = archived.map((r) => ({
237
+ id: r.id,
238
+ summary: r.summary,
239
+ intent: r.intent ?? null,
240
+ createdAt: r.created_at,
241
+ archived: true,
242
+ }));
243
+ return { active: results, archived: archivedMemories };
244
+ } catch {
245
+ return { active: results, archived: [] };
246
+ }
247
+ }
248
+ return { results };
249
+ },
250
+ },
251
+ {
252
+ name: 'knowledge_audit',
253
+ description:
254
+ 'Audit vault knowledge quality — coverage, freshness, tag health, recommendations.',
255
+ auth: 'read',
256
+ handler: async () => {
257
+ const healthAudit = curator.healthAudit();
258
+ const vaultStats = vault.stats();
259
+ const brainStats = brain.getStats();
260
+ return {
261
+ vault: {
262
+ totalEntries: vaultStats.totalEntries,
263
+ byType: vaultStats.byType,
264
+ byDomain: vaultStats.byDomain,
265
+ },
266
+ health: healthAudit,
267
+ brain: brainStats,
268
+ };
269
+ },
270
+ },
271
+ {
272
+ name: 'smart_capture',
273
+ description:
274
+ 'Capture knowledge with auto-classification — infers type, tags, and severity from content.',
275
+ auth: 'write',
276
+ schema: z.object({
277
+ title: z.string(),
278
+ description: z.string(),
279
+ domain: z.string().optional().default('general'),
280
+ context: z.string().optional(),
281
+ why: z.string().optional(),
282
+ }),
283
+ handler: async (params) => {
284
+ const id = `smart-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`;
285
+ // Auto-infer type from keywords
286
+ const desc = (params.description as string).toLowerCase();
287
+ const inferredType: 'pattern' | 'anti-pattern' =
288
+ desc.includes('never') ||
289
+ desc.includes("don't") ||
290
+ desc.includes('avoid') ||
291
+ desc.includes('anti')
292
+ ? 'anti-pattern'
293
+ : 'pattern';
294
+ const inferredSeverity: 'critical' | 'warning' | 'suggestion' =
295
+ desc.includes('must') || desc.includes('critical') || desc.includes('always')
296
+ ? 'critical'
297
+ : desc.includes('should') || desc.includes('important')
298
+ ? 'warning'
299
+ : 'suggestion';
300
+
301
+ const result = brain.enrichAndCapture({
302
+ id,
303
+ type: inferredType,
304
+ domain: params.domain as string,
305
+ title: params.title as string,
306
+ description: params.description as string,
307
+ severity: inferredSeverity,
308
+ context: params.context as string | undefined,
309
+ why: params.why as string | undefined,
310
+ });
311
+
312
+ return {
313
+ ...result,
314
+ inferred: { type: inferredType, severity: inferredSeverity },
315
+ };
316
+ },
317
+ },
318
+ {
319
+ name: 'knowledge_health',
320
+ description: 'Knowledge base health — freshness, staleness, contradictions, coverage gaps.',
321
+ auth: 'read',
322
+ handler: async () => {
323
+ const audit = curator.healthAudit();
324
+ const ageReport = vault.getAgeReport();
325
+ const contradictions = curator.detectContradictions();
326
+ return {
327
+ score: audit.score,
328
+ metrics: audit.metrics,
329
+ ageDistribution: ageReport,
330
+ openContradictions: contradictions.filter((c) => c.status === 'open').length,
331
+ recommendations: audit.recommendations,
332
+ };
333
+ },
334
+ },
335
+ {
336
+ name: 'merge_patterns',
337
+ description: 'Merge two vault entries into one — combines tags, preserves links from both.',
338
+ auth: 'write',
339
+ schema: z.object({
340
+ keepId: z.string().describe('Entry ID to keep (survives the merge)'),
341
+ removeId: z.string().describe('Entry ID to remove (merged into keepId)'),
342
+ }),
343
+ handler: async (params) => {
344
+ const keepEntry = vault.get(params.keepId as string);
345
+ const removeEntry = vault.get(params.removeId as string);
346
+ if (!keepEntry) return { error: `Entry not found: ${params.keepId}` };
347
+ if (!removeEntry) return { error: `Entry not found: ${params.removeId}` };
348
+
349
+ // Merge tags
350
+ const mergedTags = [...new Set([...keepEntry.tags, ...removeEntry.tags])];
351
+
352
+ // Update the kept entry with merged tags and enriched description
353
+ vault.update(params.keepId as string, {
354
+ tags: mergedTags,
355
+ description: keepEntry.description.includes(removeEntry.title)
356
+ ? keepEntry.description
357
+ : `${keepEntry.description}\n\n[Merged from: ${removeEntry.title}] ${removeEntry.description}`,
358
+ });
359
+
360
+ // Transfer links from removed entry to kept entry
361
+ if (linkManager) {
362
+ try {
363
+ const links = linkManager.getLinks(params.removeId as string);
364
+ for (const link of links) {
365
+ const otherId = link.sourceId === params.removeId ? link.targetId : link.sourceId;
366
+ if (otherId !== params.keepId) {
367
+ try {
368
+ linkManager.addLink(
369
+ params.keepId as string,
370
+ otherId,
371
+ link.linkType,
372
+ `merged from ${params.removeId}`,
373
+ );
374
+ } catch {
375
+ /* duplicate link — skip */
376
+ }
377
+ }
378
+ }
379
+ } catch {
380
+ /* link manager ops failed — non-critical */
381
+ }
382
+ }
383
+
384
+ // Remove the merged entry
385
+ vault.remove(params.removeId as string);
386
+
387
+ return {
388
+ merged: true,
389
+ keptId: params.keepId,
390
+ removedId: params.removeId,
391
+ mergedTags,
392
+ };
393
+ },
394
+ },
395
+ {
396
+ name: 'knowledge_reorganize',
397
+ description: 'Re-categorize vault entries — change domain, retag, with dry-run preview.',
398
+ auth: 'write',
399
+ schema: z.object({
400
+ fromDomain: z.string().describe('Current domain to reorganize'),
401
+ toDomain: z.string().describe('Target domain'),
402
+ addTags: z.array(z.string()).optional().describe('Tags to add to all affected entries'),
403
+ removeTags: z
404
+ .array(z.string())
405
+ .optional()
406
+ .describe('Tags to remove from all affected entries'),
407
+ dryRun: z.boolean().optional().default(true).describe('Preview without applying'),
408
+ }),
409
+ handler: async (params) => {
410
+ const entries = vault.list({ limit: 10000 }).filter((e) => e.domain === params.fromDomain);
411
+ const addTags = (params.addTags as string[]) ?? [];
412
+ const removeTags = new Set((params.removeTags as string[]) ?? []);
413
+ const toDomain = params.toDomain as string;
414
+
415
+ if (params.dryRun) {
416
+ return {
417
+ dryRun: true,
418
+ affected: entries.length,
419
+ fromDomain: params.fromDomain,
420
+ toDomain,
421
+ entries: entries.slice(0, 20).map((e) => ({ id: e.id, title: e.title })),
422
+ };
423
+ }
424
+
425
+ let updated = 0;
426
+ for (const entry of entries) {
427
+ const newTags = [...entry.tags.filter((t) => !removeTags.has(t)), ...addTags];
428
+ vault.update(entry.id, { domain: toDomain, tags: [...new Set(newTags)] });
429
+ updated++;
430
+ }
431
+
432
+ return { applied: true, updated, fromDomain: params.fromDomain, toDomain };
433
+ },
434
+ },
435
+ {
436
+ name: 'list_project_knowledge',
437
+ description: 'List vault entries scoped to a project (by tier tag or domain).',
438
+ auth: 'read',
439
+ schema: z.object({
440
+ project: z.string().describe('Project name or path to filter by'),
441
+ limit: z.number().optional().default(50),
442
+ }),
443
+ handler: async () => {
444
+ // Entries with tier='project' or tagged with project name
445
+ const all = vault.list({ limit: 10000 });
446
+ const projectEntries = all.filter((e) => e.tier === 'project' || e.origin === 'user');
447
+ return {
448
+ count: projectEntries.length,
449
+ entries: projectEntries.slice(0, 50).map((e) => ({
450
+ id: e.id,
451
+ title: e.title,
452
+ type: e.type,
453
+ domain: e.domain,
454
+ tier: e.tier,
455
+ })),
456
+ };
457
+ },
458
+ },
459
+ {
460
+ name: 'list_projects',
461
+ description:
462
+ 'List all distinct domains and tiers in the vault — shows knowledge distribution.',
463
+ auth: 'read',
464
+ handler: async () => {
465
+ const stats = vault.stats();
466
+ return {
467
+ domains: Object.entries(stats.byDomain ?? {}).map(([domain, count]) => ({
468
+ domain,
469
+ count,
470
+ })),
471
+ types: Object.entries(stats.byType ?? {}).map(([type, count]) => ({ type, count })),
472
+ total: stats.totalEntries,
473
+ };
474
+ },
475
+ },
476
+ {
477
+ name: 'knowledge_debug',
478
+ description:
479
+ 'Debug knowledge system internals — vault DB stats, brain state, curator state, memory counts.',
480
+ auth: 'admin',
481
+ handler: async () => {
482
+ return {
483
+ vault: {
484
+ stats: vault.stats(),
485
+ recentCount: vault.getRecent(1).length > 0 ? 'has entries' : 'empty',
486
+ },
487
+ brain: brain.getStats(),
488
+ curator: curator.getStatus(),
489
+ memory: vault.memoryStats(),
490
+ };
491
+ },
492
+ },
185
493
  ];
186
494
  }