cognitive-core 0.1.0 → 0.1.2

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 (637) hide show
  1. package/.claude/settings.json +88 -0
  2. package/.claude/settings.local.json +11 -0
  3. package/.entire/settings.json +4 -0
  4. package/README.md +524 -254
  5. package/dist/atlas.d.ts +144 -6
  6. package/dist/atlas.d.ts.map +1 -1
  7. package/dist/atlas.js +339 -10
  8. package/dist/atlas.js.map +1 -1
  9. package/dist/embeddings/provider.d.ts.map +1 -1
  10. package/dist/embeddings/provider.js +6 -3
  11. package/dist/embeddings/provider.js.map +1 -1
  12. package/dist/index.d.ts +8 -6
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +37 -6
  15. package/dist/index.js.map +1 -1
  16. package/dist/learning/index.d.ts +5 -1
  17. package/dist/learning/index.d.ts.map +1 -1
  18. package/dist/learning/index.js +8 -2
  19. package/dist/learning/index.js.map +1 -1
  20. package/dist/learning/knowledge-extractor.d.ts +56 -0
  21. package/dist/learning/knowledge-extractor.d.ts.map +1 -0
  22. package/dist/learning/knowledge-extractor.js +336 -0
  23. package/dist/learning/knowledge-extractor.js.map +1 -0
  24. package/dist/learning/meta-learner.d.ts +7 -0
  25. package/dist/learning/meta-learner.d.ts.map +1 -1
  26. package/dist/learning/meta-learner.js +43 -0
  27. package/dist/learning/meta-learner.js.map +1 -1
  28. package/dist/learning/pipeline.d.ts +24 -0
  29. package/dist/learning/pipeline.d.ts.map +1 -1
  30. package/dist/learning/pipeline.js +70 -4
  31. package/dist/learning/pipeline.js.map +1 -1
  32. package/dist/learning/team-ingester.d.ts +152 -0
  33. package/dist/learning/team-ingester.d.ts.map +1 -0
  34. package/dist/learning/team-ingester.js +333 -0
  35. package/dist/learning/team-ingester.js.map +1 -0
  36. package/dist/learning/team-meta-learner.d.ts +50 -0
  37. package/dist/learning/team-meta-learner.d.ts.map +1 -0
  38. package/dist/learning/team-meta-learner.js +417 -0
  39. package/dist/learning/team-meta-learner.js.map +1 -0
  40. package/dist/learning/team-pipeline.d.ts +76 -0
  41. package/dist/learning/team-pipeline.d.ts.map +1 -0
  42. package/dist/learning/team-pipeline.js +266 -0
  43. package/dist/learning/team-pipeline.js.map +1 -0
  44. package/dist/learning/trajectory-sources/dataclaw.d.ts +41 -0
  45. package/dist/learning/trajectory-sources/dataclaw.d.ts.map +1 -0
  46. package/dist/learning/trajectory-sources/dataclaw.js +330 -0
  47. package/dist/learning/trajectory-sources/dataclaw.js.map +1 -0
  48. package/dist/learning/trajectory-sources/entire.d.ts +28 -0
  49. package/dist/learning/trajectory-sources/entire.d.ts.map +1 -0
  50. package/dist/learning/trajectory-sources/entire.js +182 -0
  51. package/dist/learning/trajectory-sources/entire.js.map +1 -0
  52. package/dist/learning/trajectory-sources/file.d.ts +23 -0
  53. package/dist/learning/trajectory-sources/file.d.ts.map +1 -0
  54. package/dist/learning/trajectory-sources/file.js +101 -0
  55. package/dist/learning/trajectory-sources/file.js.map +1 -0
  56. package/dist/learning/trajectory-sources/huggingface.d.ts +36 -0
  57. package/dist/learning/trajectory-sources/huggingface.d.ts.map +1 -0
  58. package/dist/learning/trajectory-sources/huggingface.js +157 -0
  59. package/dist/learning/trajectory-sources/huggingface.js.map +1 -0
  60. package/dist/learning/trajectory-sources/in-memory.d.ts +21 -0
  61. package/dist/learning/trajectory-sources/in-memory.d.ts.map +1 -0
  62. package/dist/learning/trajectory-sources/in-memory.js +43 -0
  63. package/dist/learning/trajectory-sources/in-memory.js.map +1 -0
  64. package/dist/learning/trajectory-sources/index.d.ts +7 -0
  65. package/dist/learning/trajectory-sources/index.d.ts.map +1 -0
  66. package/dist/learning/trajectory-sources/index.js +7 -0
  67. package/dist/learning/trajectory-sources/index.js.map +1 -0
  68. package/dist/learning/trajectory-sources/pipeline.d.ts +24 -0
  69. package/dist/learning/trajectory-sources/pipeline.d.ts.map +1 -0
  70. package/dist/learning/trajectory-sources/pipeline.js +47 -0
  71. package/dist/learning/trajectory-sources/pipeline.js.map +1 -0
  72. package/dist/memory/graph-layers/base.d.ts +29 -0
  73. package/dist/memory/graph-layers/base.d.ts.map +1 -0
  74. package/dist/memory/graph-layers/base.js +143 -0
  75. package/dist/memory/graph-layers/base.js.map +1 -0
  76. package/dist/memory/graph-layers/causal.d.ts +14 -0
  77. package/dist/memory/graph-layers/causal.d.ts.map +1 -0
  78. package/dist/memory/graph-layers/causal.js +14 -0
  79. package/dist/memory/graph-layers/causal.js.map +1 -0
  80. package/dist/memory/graph-layers/entity.d.ts +14 -0
  81. package/dist/memory/graph-layers/entity.d.ts.map +1 -0
  82. package/dist/memory/graph-layers/entity.js +14 -0
  83. package/dist/memory/graph-layers/entity.js.map +1 -0
  84. package/dist/memory/graph-layers/index.d.ts +6 -0
  85. package/dist/memory/graph-layers/index.d.ts.map +1 -0
  86. package/dist/memory/graph-layers/index.js +6 -0
  87. package/dist/memory/graph-layers/index.js.map +1 -0
  88. package/dist/memory/graph-layers/semantic.d.ts +14 -0
  89. package/dist/memory/graph-layers/semantic.d.ts.map +1 -0
  90. package/dist/memory/graph-layers/semantic.js +14 -0
  91. package/dist/memory/graph-layers/semantic.js.map +1 -0
  92. package/dist/memory/graph-layers/temporal.d.ts +14 -0
  93. package/dist/memory/graph-layers/temporal.d.ts.map +1 -0
  94. package/dist/memory/graph-layers/temporal.js +14 -0
  95. package/dist/memory/graph-layers/temporal.js.map +1 -0
  96. package/dist/memory/index.d.ts +8 -0
  97. package/dist/memory/index.d.ts.map +1 -1
  98. package/dist/memory/index.js +10 -0
  99. package/dist/memory/index.js.map +1 -1
  100. package/dist/memory/knowledge-bank.d.ts +220 -0
  101. package/dist/memory/knowledge-bank.d.ts.map +1 -0
  102. package/dist/memory/knowledge-bank.js +1003 -0
  103. package/dist/memory/knowledge-bank.js.map +1 -0
  104. package/dist/memory/knowledge-defrag.d.ts +49 -0
  105. package/dist/memory/knowledge-defrag.d.ts.map +1 -0
  106. package/dist/memory/knowledge-defrag.js +257 -0
  107. package/dist/memory/knowledge-defrag.js.map +1 -0
  108. package/dist/memory/knowledge-graph.d.ts +41 -0
  109. package/dist/memory/knowledge-graph.d.ts.map +1 -0
  110. package/dist/memory/knowledge-graph.js +273 -0
  111. package/dist/memory/knowledge-graph.js.map +1 -0
  112. package/dist/memory/search-provider.d.ts +31 -0
  113. package/dist/memory/search-provider.d.ts.map +1 -0
  114. package/dist/memory/search-provider.js +2 -0
  115. package/dist/memory/search-provider.js.map +1 -0
  116. package/dist/memory/search-providers/index.d.ts +3 -0
  117. package/dist/memory/search-providers/index.d.ts.map +1 -0
  118. package/dist/memory/search-providers/index.js +3 -0
  119. package/dist/memory/search-providers/index.js.map +1 -0
  120. package/dist/memory/search-providers/minimem.d.ts +43 -0
  121. package/dist/memory/search-providers/minimem.d.ts.map +1 -0
  122. package/dist/memory/search-providers/minimem.js +56 -0
  123. package/dist/memory/search-providers/minimem.js.map +1 -0
  124. package/dist/memory/search-providers/text-similarity.d.ts +15 -0
  125. package/dist/memory/search-providers/text-similarity.d.ts.map +1 -0
  126. package/dist/memory/search-providers/text-similarity.js +21 -0
  127. package/dist/memory/search-providers/text-similarity.js.map +1 -0
  128. package/dist/memory/skill-exporter.d.ts +75 -0
  129. package/dist/memory/skill-exporter.d.ts.map +1 -0
  130. package/dist/memory/skill-exporter.js +248 -0
  131. package/dist/memory/skill-exporter.js.map +1 -0
  132. package/dist/memory/system.d.ts +15 -3
  133. package/dist/memory/system.d.ts.map +1 -1
  134. package/dist/memory/system.js +46 -8
  135. package/dist/memory/system.js.map +1 -1
  136. package/dist/memory/team-experience.d.ts +298 -0
  137. package/dist/memory/team-experience.d.ts.map +1 -0
  138. package/dist/memory/team-experience.js +355 -0
  139. package/dist/memory/team-experience.js.map +1 -0
  140. package/dist/runtime/backends/acp-protocol.d.ts +49 -0
  141. package/dist/runtime/backends/acp-protocol.d.ts.map +1 -0
  142. package/dist/runtime/backends/acp-protocol.js +166 -0
  143. package/dist/runtime/backends/acp-protocol.js.map +1 -0
  144. package/dist/runtime/backends/acp.d.ts +26 -26
  145. package/dist/runtime/backends/acp.d.ts.map +1 -1
  146. package/dist/runtime/backends/acp.js +32 -156
  147. package/dist/runtime/backends/acp.js.map +1 -1
  148. package/dist/runtime/backends/index.d.ts +3 -1
  149. package/dist/runtime/backends/index.d.ts.map +1 -1
  150. package/dist/runtime/backends/index.js +3 -1
  151. package/dist/runtime/backends/index.js.map +1 -1
  152. package/dist/runtime/backends/macro-agent.d.ts +104 -0
  153. package/dist/runtime/backends/macro-agent.d.ts.map +1 -0
  154. package/dist/runtime/backends/macro-agent.js +107 -0
  155. package/dist/runtime/backends/macro-agent.js.map +1 -0
  156. package/dist/runtime/compute-provider.d.ts +87 -0
  157. package/dist/runtime/compute-provider.d.ts.map +1 -0
  158. package/dist/runtime/compute-provider.js +87 -0
  159. package/dist/runtime/compute-provider.js.map +1 -0
  160. package/dist/runtime/index.d.ts +3 -2
  161. package/dist/runtime/index.d.ts.map +1 -1
  162. package/dist/runtime/index.js +3 -1
  163. package/dist/runtime/index.js.map +1 -1
  164. package/dist/runtime/manager.d.ts +37 -4
  165. package/dist/runtime/manager.d.ts.map +1 -1
  166. package/dist/runtime/manager.js +139 -20
  167. package/dist/runtime/manager.js.map +1 -1
  168. package/dist/runtime/types.d.ts +38 -0
  169. package/dist/runtime/types.d.ts.map +1 -1
  170. package/dist/search/evaluator.d.ts +7 -0
  171. package/dist/search/evaluator.d.ts.map +1 -1
  172. package/dist/search/evaluator.js +24 -4
  173. package/dist/search/evaluator.js.map +1 -1
  174. package/dist/search/index.d.ts +1 -0
  175. package/dist/search/index.d.ts.map +1 -1
  176. package/dist/search/index.js +2 -0
  177. package/dist/search/index.js.map +1 -1
  178. package/dist/search/refinement-loop.d.ts +17 -0
  179. package/dist/search/refinement-loop.d.ts.map +1 -1
  180. package/dist/search/refinement-loop.js +77 -6
  181. package/dist/search/refinement-loop.js.map +1 -1
  182. package/dist/search/refinement-types.d.ts +2 -2
  183. package/dist/search/team-router.d.ts +91 -0
  184. package/dist/search/team-router.d.ts.map +1 -0
  185. package/dist/search/team-router.js +315 -0
  186. package/dist/search/team-router.js.map +1 -0
  187. package/dist/session-bank/git-reader.d.ts +39 -0
  188. package/dist/session-bank/git-reader.d.ts.map +1 -0
  189. package/dist/session-bank/git-reader.js +165 -0
  190. package/dist/session-bank/git-reader.js.map +1 -0
  191. package/dist/session-bank/index.d.ts +5 -0
  192. package/dist/session-bank/index.d.ts.map +1 -0
  193. package/dist/session-bank/index.js +4 -0
  194. package/dist/session-bank/index.js.map +1 -0
  195. package/dist/session-bank/parser.d.ts +39 -0
  196. package/dist/session-bank/parser.d.ts.map +1 -0
  197. package/dist/session-bank/parser.js +231 -0
  198. package/dist/session-bank/parser.js.map +1 -0
  199. package/dist/session-bank/session-bank.d.ts +35 -0
  200. package/dist/session-bank/session-bank.d.ts.map +1 -0
  201. package/dist/session-bank/session-bank.js +326 -0
  202. package/dist/session-bank/session-bank.js.map +1 -0
  203. package/dist/session-bank/types.d.ts +129 -0
  204. package/dist/session-bank/types.d.ts.map +1 -0
  205. package/dist/session-bank/types.js +7 -0
  206. package/dist/session-bank/types.js.map +1 -0
  207. package/dist/surfacing/index.d.ts +4 -0
  208. package/dist/surfacing/index.d.ts.map +1 -1
  209. package/dist/surfacing/index.js +3 -0
  210. package/dist/surfacing/index.js.map +1 -1
  211. package/dist/surfacing/publisher.d.ts +22 -0
  212. package/dist/surfacing/publisher.d.ts.map +1 -0
  213. package/dist/surfacing/publisher.js +9 -0
  214. package/dist/surfacing/publisher.js.map +1 -0
  215. package/dist/surfacing/skill-library.d.ts +12 -0
  216. package/dist/surfacing/skill-library.d.ts.map +1 -1
  217. package/dist/surfacing/skill-library.js +26 -0
  218. package/dist/surfacing/skill-library.js.map +1 -1
  219. package/dist/surfacing/skill-publisher.d.ts +43 -0
  220. package/dist/surfacing/skill-publisher.d.ts.map +1 -0
  221. package/dist/surfacing/skill-publisher.js +197 -0
  222. package/dist/surfacing/skill-publisher.js.map +1 -0
  223. package/dist/surfacing/sqlite-storage-adapter.d.ts +42 -0
  224. package/dist/surfacing/sqlite-storage-adapter.d.ts.map +1 -0
  225. package/dist/surfacing/sqlite-storage-adapter.js +207 -0
  226. package/dist/surfacing/sqlite-storage-adapter.js.map +1 -0
  227. package/dist/surfacing/team-skill-library.d.ts +180 -0
  228. package/dist/surfacing/team-skill-library.d.ts.map +1 -0
  229. package/dist/surfacing/team-skill-library.js +384 -0
  230. package/dist/surfacing/team-skill-library.js.map +1 -0
  231. package/dist/types/config.d.ts +1218 -44
  232. package/dist/types/config.d.ts.map +1 -1
  233. package/dist/types/config.js +216 -0
  234. package/dist/types/config.js.map +1 -1
  235. package/dist/types/dataclaw.d.ts +286 -0
  236. package/dist/types/dataclaw.d.ts.map +1 -0
  237. package/dist/types/dataclaw.js +84 -0
  238. package/dist/types/dataclaw.js.map +1 -0
  239. package/dist/types/index.d.ts +8 -1
  240. package/dist/types/index.d.ts.map +1 -1
  241. package/dist/types/index.js +13 -1
  242. package/dist/types/index.js.map +1 -1
  243. package/dist/types/knowledge-graph.d.ts +148 -0
  244. package/dist/types/knowledge-graph.d.ts.map +1 -0
  245. package/dist/types/knowledge-graph.js +40 -0
  246. package/dist/types/knowledge-graph.js.map +1 -0
  247. package/dist/types/knowledge.d.ts +280 -0
  248. package/dist/types/knowledge.d.ts.map +1 -0
  249. package/dist/types/knowledge.js +191 -0
  250. package/dist/types/knowledge.js.map +1 -0
  251. package/dist/types/team-meta.d.ts +160 -0
  252. package/dist/types/team-meta.d.ts.map +1 -0
  253. package/dist/types/team-meta.js +42 -0
  254. package/dist/types/team-meta.js.map +1 -0
  255. package/dist/types/team-playbook.d.ts +276 -0
  256. package/dist/types/team-playbook.d.ts.map +1 -0
  257. package/dist/types/team-playbook.js +85 -0
  258. package/dist/types/team-playbook.js.map +1 -0
  259. package/dist/types/team-trajectory.d.ts +305 -0
  260. package/dist/types/team-trajectory.d.ts.map +1 -0
  261. package/dist/types/team-trajectory.js +304 -0
  262. package/dist/types/team-trajectory.js.map +1 -0
  263. package/dist/types/trajectory-source.d.ts +39 -0
  264. package/dist/types/trajectory-source.d.ts.map +1 -0
  265. package/dist/types/trajectory-source.js +2 -0
  266. package/dist/types/trajectory-source.js.map +1 -0
  267. package/dist/utils/frontmatter.d.ts +34 -0
  268. package/dist/utils/frontmatter.d.ts.map +1 -0
  269. package/dist/utils/frontmatter.js +93 -0
  270. package/dist/utils/frontmatter.js.map +1 -0
  271. package/dist/utils/index.d.ts +1 -0
  272. package/dist/utils/index.d.ts.map +1 -1
  273. package/dist/utils/index.js +1 -0
  274. package/dist/utils/index.js.map +1 -1
  275. package/dist/workspace/index.d.ts +6 -0
  276. package/dist/workspace/index.d.ts.map +1 -0
  277. package/dist/workspace/index.js +11 -0
  278. package/dist/workspace/index.js.map +1 -0
  279. package/dist/workspace/runner.d.ts +50 -0
  280. package/dist/workspace/runner.d.ts.map +1 -0
  281. package/dist/workspace/runner.js +219 -0
  282. package/dist/workspace/runner.js.map +1 -0
  283. package/dist/workspace/skill-converter.d.ts +18 -0
  284. package/dist/workspace/skill-converter.d.ts.map +1 -0
  285. package/dist/workspace/skill-converter.js +257 -0
  286. package/dist/workspace/skill-converter.js.map +1 -0
  287. package/dist/workspace/templates/index.d.ts +11 -0
  288. package/dist/workspace/templates/index.d.ts.map +1 -0
  289. package/dist/workspace/templates/index.js +21 -0
  290. package/dist/workspace/templates/index.js.map +1 -0
  291. package/dist/workspace/templates/knowledge-defrag.d.ts +25 -0
  292. package/dist/workspace/templates/knowledge-defrag.d.ts.map +1 -0
  293. package/dist/workspace/templates/knowledge-defrag.js +154 -0
  294. package/dist/workspace/templates/knowledge-defrag.js.map +1 -0
  295. package/dist/workspace/templates/knowledge-extraction.d.ts +25 -0
  296. package/dist/workspace/templates/knowledge-extraction.d.ts.map +1 -0
  297. package/dist/workspace/templates/knowledge-extraction.js +246 -0
  298. package/dist/workspace/templates/knowledge-extraction.js.map +1 -0
  299. package/dist/workspace/templates/meta-reflection.d.ts +47 -0
  300. package/dist/workspace/templates/meta-reflection.d.ts.map +1 -0
  301. package/dist/workspace/templates/meta-reflection.js +135 -0
  302. package/dist/workspace/templates/meta-reflection.js.map +1 -0
  303. package/dist/workspace/templates/playbook-extraction.d.ts +20 -0
  304. package/dist/workspace/templates/playbook-extraction.d.ts.map +1 -0
  305. package/dist/workspace/templates/playbook-extraction.js +189 -0
  306. package/dist/workspace/templates/playbook-extraction.js.map +1 -0
  307. package/dist/workspace/templates/refinement-analysis.d.ts +31 -0
  308. package/dist/workspace/templates/refinement-analysis.d.ts.map +1 -0
  309. package/dist/workspace/templates/refinement-analysis.js +107 -0
  310. package/dist/workspace/templates/refinement-analysis.js.map +1 -0
  311. package/dist/workspace/templates/solution-evaluation.d.ts +21 -0
  312. package/dist/workspace/templates/solution-evaluation.d.ts.map +1 -0
  313. package/dist/workspace/templates/solution-evaluation.js +131 -0
  314. package/dist/workspace/templates/solution-evaluation.js.map +1 -0
  315. package/dist/workspace/templates/team-playbook-extraction.d.ts +44 -0
  316. package/dist/workspace/templates/team-playbook-extraction.d.ts.map +1 -0
  317. package/dist/workspace/templates/team-playbook-extraction.js +497 -0
  318. package/dist/workspace/templates/team-playbook-extraction.js.map +1 -0
  319. package/dist/workspace/templates/team-trajectory-analysis.d.ts +19 -0
  320. package/dist/workspace/templates/team-trajectory-analysis.d.ts.map +1 -0
  321. package/dist/workspace/templates/team-trajectory-analysis.js +442 -0
  322. package/dist/workspace/templates/team-trajectory-analysis.js.map +1 -0
  323. package/dist/workspace/templates/trajectory-analysis.d.ts +19 -0
  324. package/dist/workspace/templates/trajectory-analysis.d.ts.map +1 -0
  325. package/dist/workspace/templates/trajectory-analysis.js +170 -0
  326. package/dist/workspace/templates/trajectory-analysis.js.map +1 -0
  327. package/dist/workspace/templates/usage-inference.d.ts +19 -0
  328. package/dist/workspace/templates/usage-inference.d.ts.map +1 -0
  329. package/dist/workspace/templates/usage-inference.js +125 -0
  330. package/dist/workspace/templates/usage-inference.js.map +1 -0
  331. package/dist/workspace/types.d.ts +145 -0
  332. package/dist/workspace/types.d.ts.map +1 -0
  333. package/dist/workspace/types.js +17 -0
  334. package/dist/workspace/types.js.map +1 -0
  335. package/docs/DESIGN-agentic-workspace.md +2057 -0
  336. package/docs/DESIGN-semantic-memory-knowledge-bank.md +1789 -0
  337. package/docs/DESIGN-session-bank.md +1134 -0
  338. package/docs/DESIGN-team-extraction-pipeline.md +1369 -0
  339. package/docs/DESIGN-workspace-migration.md +1079 -0
  340. package/docs/PLAN-agentic-workspace-implementation.md +717 -0
  341. package/docs/PLAN-graph-migration.md +299 -0
  342. package/docs/PLAN-session-bank-implementation.md +474 -0
  343. package/docs/PROPOSAL-team-aware-learning.md +1080 -0
  344. package/docs/RESEARCH-semantic-memory-knowledge-structures.md +517 -0
  345. package/docs/RESEARCH-team-trajectory-learning.md +553 -0
  346. package/gaps.md +204 -0
  347. package/package.json +24 -6
  348. package/references/agent-workspace/CLAUDE.md +74 -0
  349. package/references/agent-workspace/README.md +587 -0
  350. package/references/agent-workspace/media/banner.png +0 -0
  351. package/references/agent-workspace/package-lock.json +2061 -0
  352. package/references/agent-workspace/package.json +54 -0
  353. package/references/agent-workspace/src/handle.ts +122 -0
  354. package/references/agent-workspace/src/index.ts +32 -0
  355. package/references/agent-workspace/src/manager.ts +102 -0
  356. package/references/agent-workspace/src/readers/json.ts +71 -0
  357. package/references/agent-workspace/src/readers/markdown.ts +37 -0
  358. package/references/agent-workspace/src/readers/raw.ts +27 -0
  359. package/references/agent-workspace/src/types.ts +68 -0
  360. package/references/agent-workspace/src/validation.ts +93 -0
  361. package/references/agent-workspace/src/writers/json.ts +17 -0
  362. package/references/agent-workspace/src/writers/markdown.ts +27 -0
  363. package/references/agent-workspace/src/writers/raw.ts +22 -0
  364. package/references/agent-workspace/tests/errors.test.ts +652 -0
  365. package/references/agent-workspace/tests/handle.test.ts +144 -0
  366. package/references/agent-workspace/tests/manager.test.ts +124 -0
  367. package/references/agent-workspace/tests/readers.test.ts +205 -0
  368. package/references/agent-workspace/tests/validation.test.ts +196 -0
  369. package/references/agent-workspace/tests/writers.test.ts +108 -0
  370. package/references/agent-workspace/tsconfig.json +20 -0
  371. package/references/agent-workspace/tsup.config.ts +9 -0
  372. package/references/minimem/.claude/settings.json +7 -0
  373. package/references/minimem/.sudocode/issues.jsonl +18 -0
  374. package/references/minimem/.sudocode/specs.jsonl +1 -0
  375. package/references/minimem/CLAUDE.md +310 -0
  376. package/references/minimem/README.md +556 -0
  377. package/references/minimem/claude-plugin/.claude-plugin/plugin.json +10 -0
  378. package/references/minimem/claude-plugin/.mcp.json +7 -0
  379. package/references/minimem/claude-plugin/README.md +158 -0
  380. package/references/minimem/claude-plugin/commands/recall.md +47 -0
  381. package/references/minimem/claude-plugin/commands/remember.md +41 -0
  382. package/references/minimem/claude-plugin/hooks/__tests__/hooks.test.ts +272 -0
  383. package/references/minimem/claude-plugin/hooks/hooks.json +27 -0
  384. package/references/minimem/claude-plugin/hooks/session-end.sh +86 -0
  385. package/references/minimem/claude-plugin/hooks/session-start.sh +85 -0
  386. package/references/minimem/claude-plugin/skills/memory/SKILL.md +108 -0
  387. package/references/minimem/package-lock.json +5373 -0
  388. package/references/minimem/package.json +60 -0
  389. package/references/minimem/scripts/postbuild.js +35 -0
  390. package/references/minimem/src/__tests__/edge-cases.test.ts +371 -0
  391. package/references/minimem/src/__tests__/errors.test.ts +265 -0
  392. package/references/minimem/src/__tests__/helpers.ts +199 -0
  393. package/references/minimem/src/__tests__/internal.test.ts +407 -0
  394. package/references/minimem/src/__tests__/knowledge.test.ts +287 -0
  395. package/references/minimem/src/__tests__/minimem.integration.test.ts +1127 -0
  396. package/references/minimem/src/__tests__/session.test.ts +190 -0
  397. package/references/minimem/src/cli/__tests__/commands.test.ts +759 -0
  398. package/references/minimem/src/cli/commands/__tests__/conflicts.test.ts +141 -0
  399. package/references/minimem/src/cli/commands/append.ts +76 -0
  400. package/references/minimem/src/cli/commands/config.ts +262 -0
  401. package/references/minimem/src/cli/commands/conflicts.ts +413 -0
  402. package/references/minimem/src/cli/commands/daemon.ts +169 -0
  403. package/references/minimem/src/cli/commands/index.ts +12 -0
  404. package/references/minimem/src/cli/commands/init.ts +88 -0
  405. package/references/minimem/src/cli/commands/mcp.ts +177 -0
  406. package/references/minimem/src/cli/commands/push-pull.ts +213 -0
  407. package/references/minimem/src/cli/commands/search.ts +158 -0
  408. package/references/minimem/src/cli/commands/status.ts +84 -0
  409. package/references/minimem/src/cli/commands/sync-init.ts +290 -0
  410. package/references/minimem/src/cli/commands/sync.ts +70 -0
  411. package/references/minimem/src/cli/commands/upsert.ts +197 -0
  412. package/references/minimem/src/cli/config.ts +584 -0
  413. package/references/minimem/src/cli/index.ts +264 -0
  414. package/references/minimem/src/cli/shared.ts +161 -0
  415. package/references/minimem/src/cli/sync/__tests__/central.test.ts +152 -0
  416. package/references/minimem/src/cli/sync/__tests__/conflicts.test.ts +209 -0
  417. package/references/minimem/src/cli/sync/__tests__/daemon.test.ts +118 -0
  418. package/references/minimem/src/cli/sync/__tests__/detection.test.ts +207 -0
  419. package/references/minimem/src/cli/sync/__tests__/integration.test.ts +476 -0
  420. package/references/minimem/src/cli/sync/__tests__/registry.test.ts +363 -0
  421. package/references/minimem/src/cli/sync/__tests__/state.test.ts +255 -0
  422. package/references/minimem/src/cli/sync/__tests__/validation.test.ts +193 -0
  423. package/references/minimem/src/cli/sync/__tests__/watcher.test.ts +178 -0
  424. package/references/minimem/src/cli/sync/central.ts +292 -0
  425. package/references/minimem/src/cli/sync/conflicts.ts +204 -0
  426. package/references/minimem/src/cli/sync/daemon.ts +407 -0
  427. package/references/minimem/src/cli/sync/detection.ts +138 -0
  428. package/references/minimem/src/cli/sync/index.ts +107 -0
  429. package/references/minimem/src/cli/sync/operations.ts +373 -0
  430. package/references/minimem/src/cli/sync/registry.ts +279 -0
  431. package/references/minimem/src/cli/sync/state.ts +355 -0
  432. package/references/minimem/src/cli/sync/validation.ts +206 -0
  433. package/references/minimem/src/cli/sync/watcher.ts +234 -0
  434. package/references/minimem/src/cli/version.ts +34 -0
  435. package/references/minimem/src/core/index.ts +9 -0
  436. package/references/minimem/src/core/indexer.ts +628 -0
  437. package/references/minimem/src/core/searcher.ts +221 -0
  438. package/references/minimem/src/db/schema.ts +183 -0
  439. package/references/minimem/src/db/sqlite-vec.ts +24 -0
  440. package/references/minimem/src/embeddings/__tests__/embeddings.test.ts +431 -0
  441. package/references/minimem/src/embeddings/batch-gemini.ts +392 -0
  442. package/references/minimem/src/embeddings/batch-openai.ts +409 -0
  443. package/references/minimem/src/embeddings/embeddings.ts +434 -0
  444. package/references/minimem/src/index.ts +109 -0
  445. package/references/minimem/src/internal.ts +299 -0
  446. package/references/minimem/src/minimem.ts +1276 -0
  447. package/references/minimem/src/search/__tests__/hybrid.test.ts +247 -0
  448. package/references/minimem/src/search/graph.ts +234 -0
  449. package/references/minimem/src/search/hybrid.ts +151 -0
  450. package/references/minimem/src/search/search.ts +256 -0
  451. package/references/minimem/src/server/__tests__/mcp.test.ts +341 -0
  452. package/references/minimem/src/server/__tests__/tools.test.ts +364 -0
  453. package/references/minimem/src/server/mcp.ts +326 -0
  454. package/references/minimem/src/server/tools.ts +720 -0
  455. package/references/minimem/src/session.ts +460 -0
  456. package/references/minimem/tsconfig.json +19 -0
  457. package/references/minimem/tsup.config.ts +26 -0
  458. package/references/minimem/vitest.config.ts +24 -0
  459. package/references/skill-tree/.claude/settings.json +6 -0
  460. package/references/skill-tree/.sudocode/issues.jsonl +11 -0
  461. package/references/skill-tree/.sudocode/specs.jsonl +1 -0
  462. package/references/skill-tree/CLAUDE.md +150 -0
  463. package/references/skill-tree/README.md +324 -0
  464. package/references/skill-tree/docs/GAPS_v1.md +221 -0
  465. package/references/skill-tree/docs/INTEGRATION_PLAN.md +467 -0
  466. package/references/skill-tree/docs/TODOS.md +91 -0
  467. package/references/skill-tree/docs/anthropic_skill_guide.md +1364 -0
  468. package/references/skill-tree/docs/design/federated-skill-trees.md +524 -0
  469. package/references/skill-tree/docs/design/multi-agent-sync.md +759 -0
  470. package/references/skill-tree/docs/scraper/BRAINSTORM.md +583 -0
  471. package/references/skill-tree/docs/scraper/POC_PLAN.md +420 -0
  472. package/references/skill-tree/docs/scraper/README.md +170 -0
  473. package/references/skill-tree/examples/basic-usage.ts +190 -0
  474. package/references/skill-tree/package-lock.json +1509 -0
  475. package/references/skill-tree/package.json +66 -0
  476. package/references/skill-tree/scraper/README.md +123 -0
  477. package/references/skill-tree/scraper/docs/DESIGN.md +683 -0
  478. package/references/skill-tree/scraper/docs/PLAN.md +336 -0
  479. package/references/skill-tree/scraper/drizzle.config.ts +10 -0
  480. package/references/skill-tree/scraper/package-lock.json +6329 -0
  481. package/references/skill-tree/scraper/package.json +68 -0
  482. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-description.md +7 -0
  483. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-name.md +7 -0
  484. package/references/skill-tree/scraper/test/fixtures/minimal-skill/SKILL.md +27 -0
  485. package/references/skill-tree/scraper/test/fixtures/skill-json/SKILL.json +21 -0
  486. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/SKILL.md +54 -0
  487. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/_meta.json +24 -0
  488. package/references/skill-tree/scraper/test/fixtures/valid-skill/SKILL.md +93 -0
  489. package/references/skill-tree/scraper/test/fixtures/valid-skill/_meta.json +22 -0
  490. package/references/skill-tree/scraper/tsup.config.ts +14 -0
  491. package/references/skill-tree/scraper/vitest.config.ts +17 -0
  492. package/references/skill-tree/scripts/convert-to-vitest.ts +166 -0
  493. package/references/skill-tree/skills/skill-writer/SKILL.md +339 -0
  494. package/references/skill-tree/skills/skill-writer/references/examples.md +326 -0
  495. package/references/skill-tree/skills/skill-writer/references/patterns.md +210 -0
  496. package/references/skill-tree/skills/skill-writer/references/quality-checklist.md +123 -0
  497. package/references/skill-tree/test/run-all.ts +106 -0
  498. package/references/skill-tree/test/utils.ts +128 -0
  499. package/references/skill-tree/vitest.config.ts +16 -0
  500. package/src/atlas.ts +525 -13
  501. package/src/embeddings/provider.ts +10 -3
  502. package/src/index.ts +127 -5
  503. package/src/learning/index.ts +41 -6
  504. package/src/learning/knowledge-extractor.ts +470 -0
  505. package/src/learning/meta-learner.ts +54 -0
  506. package/src/learning/pipeline.ts +87 -8
  507. package/src/learning/team-ingester.ts +499 -0
  508. package/src/learning/team-meta-learner.ts +558 -0
  509. package/src/learning/team-pipeline.ts +364 -0
  510. package/src/learning/trajectory-sources/dataclaw.ts +403 -0
  511. package/src/learning/trajectory-sources/entire.ts +240 -0
  512. package/src/learning/trajectory-sources/file.ts +136 -0
  513. package/src/learning/trajectory-sources/huggingface.ts +248 -0
  514. package/src/learning/trajectory-sources/in-memory.ts +61 -0
  515. package/src/learning/trajectory-sources/index.ts +15 -0
  516. package/src/learning/trajectory-sources/pipeline.ts +69 -0
  517. package/src/memory/graph-layers/base.ts +184 -0
  518. package/src/memory/graph-layers/causal.ts +16 -0
  519. package/src/memory/graph-layers/entity.ts +16 -0
  520. package/src/memory/graph-layers/index.ts +5 -0
  521. package/src/memory/graph-layers/semantic.ts +16 -0
  522. package/src/memory/graph-layers/temporal.ts +16 -0
  523. package/src/memory/index.ts +45 -0
  524. package/src/memory/knowledge-bank.ts +1260 -0
  525. package/src/memory/knowledge-defrag.ts +329 -0
  526. package/src/memory/knowledge-graph.ts +361 -0
  527. package/src/memory/search-provider.ts +35 -0
  528. package/src/memory/search-providers/index.ts +3 -0
  529. package/src/memory/search-providers/minimem.ts +84 -0
  530. package/src/memory/search-providers/text-similarity.ts +35 -0
  531. package/src/memory/skill-exporter.ts +357 -0
  532. package/src/memory/system.ts +61 -8
  533. package/src/memory/team-experience.ts +604 -0
  534. package/src/runtime/backends/acp-protocol.ts +231 -0
  535. package/src/runtime/backends/acp.ts +57 -196
  536. package/src/runtime/backends/index.ts +14 -0
  537. package/src/runtime/backends/macro-agent.ts +177 -0
  538. package/src/runtime/compute-provider.ts +206 -0
  539. package/src/runtime/index.ts +22 -0
  540. package/src/runtime/manager.ts +167 -23
  541. package/src/runtime/types.ts +41 -0
  542. package/src/search/evaluator.ts +29 -4
  543. package/src/search/index.ts +9 -0
  544. package/src/search/refinement-loop.ts +106 -12
  545. package/src/search/team-router.ts +459 -0
  546. package/src/session-bank/git-reader.ts +190 -0
  547. package/src/session-bank/index.ts +24 -0
  548. package/src/session-bank/parser.ts +366 -0
  549. package/src/session-bank/session-bank.ts +464 -0
  550. package/src/session-bank/types.ts +173 -0
  551. package/src/surfacing/index.ts +23 -0
  552. package/src/surfacing/publisher.ts +23 -0
  553. package/src/surfacing/skill-library.ts +31 -0
  554. package/src/surfacing/skill-publisher.ts +223 -0
  555. package/src/surfacing/sqlite-storage-adapter.ts +301 -0
  556. package/src/surfacing/team-skill-library.ts +610 -0
  557. package/src/types/config.ts +252 -0
  558. package/src/types/dataclaw.ts +99 -0
  559. package/src/types/huggingface-transformers.d.ts +12 -0
  560. package/src/types/index.ts +156 -0
  561. package/src/types/knowledge-graph.ts +246 -0
  562. package/src/types/knowledge.ts +388 -0
  563. package/src/types/team-meta.ts +212 -0
  564. package/src/types/team-playbook.ts +384 -0
  565. package/src/types/team-trajectory.ts +673 -0
  566. package/src/types/trajectory-source.ts +47 -0
  567. package/src/utils/frontmatter.ts +118 -0
  568. package/src/utils/index.ts +7 -0
  569. package/src/workspace/index.ts +48 -0
  570. package/src/workspace/runner.ts +281 -0
  571. package/src/workspace/skill-converter.ts +288 -0
  572. package/src/workspace/templates/index.ts +64 -0
  573. package/src/workspace/templates/knowledge-defrag.ts +223 -0
  574. package/src/workspace/templates/knowledge-extraction.ts +337 -0
  575. package/src/workspace/templates/meta-reflection.ts +208 -0
  576. package/src/workspace/templates/playbook-extraction.ts +240 -0
  577. package/src/workspace/templates/refinement-analysis.ts +162 -0
  578. package/src/workspace/templates/solution-evaluation.ts +199 -0
  579. package/src/workspace/templates/team-playbook-extraction.ts +631 -0
  580. package/src/workspace/templates/team-trajectory-analysis.ts +564 -0
  581. package/src/workspace/templates/trajectory-analysis.ts +234 -0
  582. package/src/workspace/templates/usage-inference.ts +163 -0
  583. package/src/workspace/types.ts +233 -0
  584. package/tests/atlas-knowledge.test.ts +165 -0
  585. package/tests/gap-fixes.test.ts +1103 -0
  586. package/tests/integration/dataclaw-e2e.test.ts +559 -0
  587. package/tests/integration/e2e.test.ts +407 -0
  588. package/tests/integration/entire-e2e.test.ts +187 -0
  589. package/tests/integration/huggingface-e2e.test.ts +627 -0
  590. package/tests/integration/session-bank.test.ts +225 -0
  591. package/tests/integration/skill-tree-wiring.test.ts +152 -0
  592. package/tests/learning/dataclaw-trajectory-source.test.ts +642 -0
  593. package/tests/learning/entire-trajectory-source.test.ts +380 -0
  594. package/tests/learning/huggingface-trajectory-source.test.ts +817 -0
  595. package/tests/learning/knowledge-extractor.test.ts +491 -0
  596. package/tests/learning/team-ingester.test.ts +349 -0
  597. package/tests/learning/team-meta-learner.test.ts +618 -0
  598. package/tests/learning/team-pipeline.test.ts +334 -0
  599. package/tests/learning/trajectory-sources.test.ts +312 -0
  600. package/tests/memory/graph-layers/semantic.test.ts +219 -0
  601. package/tests/memory/knowledge-bank-extraction.test.ts +558 -0
  602. package/tests/memory/knowledge-bank.test.ts +705 -0
  603. package/tests/memory/knowledge-defrag.test.ts +366 -0
  604. package/tests/memory/knowledge-evolution.test.ts +563 -0
  605. package/tests/memory/knowledge-graph.test.ts +492 -0
  606. package/tests/memory/knowledge-inbox.test.ts +258 -0
  607. package/tests/memory/knowledge-minimem.test.ts +251 -0
  608. package/tests/memory/skill-exporter.test.ts +470 -0
  609. package/tests/memory/team-experience.test.ts +411 -0
  610. package/tests/runtime/agent-manager.test.ts +1 -1
  611. package/tests/runtime/compute-provider.test.ts +288 -0
  612. package/tests/runtime/delegate.test.ts +349 -0
  613. package/tests/runtime/macro-agent-backend.test.ts +266 -0
  614. package/tests/search/team-router.test.ts +376 -0
  615. package/tests/session-bank/fixtures/multi-tool-session/full.jsonl +12 -0
  616. package/tests/session-bank/fixtures/multi-tool-session/metadata.json +28 -0
  617. package/tests/session-bank/fixtures/root-metadata.json +18 -0
  618. package/tests/session-bank/fixtures/simple-session/full.jsonl +6 -0
  619. package/tests/session-bank/fixtures/simple-session/metadata.json +38 -0
  620. package/tests/session-bank/git-reader.test.ts +232 -0
  621. package/tests/session-bank/parser.test.ts +321 -0
  622. package/tests/session-bank/session-bank.test.ts +546 -0
  623. package/tests/surfacing/skill-publisher.test.ts +398 -0
  624. package/tests/surfacing/sqlite-storage-adapter.test.ts +218 -0
  625. package/tests/surfacing/team-skill-library.test.ts +444 -0
  626. package/tests/types/team-meta.test.ts +147 -0
  627. package/tests/types/team-playbook.test.ts +246 -0
  628. package/tests/types/team-trajectory.test.ts +557 -0
  629. package/tests/utils/frontmatter.test.ts +208 -0
  630. package/tests/workspace/full-flow.test.ts +839 -0
  631. package/tests/workspace/manager.test.ts +215 -0
  632. package/tests/workspace/runner.test.ts +330 -0
  633. package/tests/workspace/skill-converter.test.ts +205 -0
  634. package/tests/workspace/templates/knowledge-extraction.test.ts +235 -0
  635. package/tests/workspace/templates/team-playbook-extraction.test.ts +341 -0
  636. package/tests/workspace/templates/team-trajectory-analysis.test.ts +417 -0
  637. package/src/learning/llm-extractor.ts +0 -542
@@ -0,0 +1,246 @@
1
+ import type { GraphLayerName, KnowledgeNote, LinkRelation } from './knowledge.js';
2
+
3
+ // ============================================================================
4
+ // Graph Node (shared across all layers)
5
+ // ============================================================================
6
+
7
+ export interface GraphNode {
8
+ /** Knowledge note ID */
9
+ id: string;
10
+ /** Relative file path from memory root */
11
+ file: string;
12
+ /** Note type */
13
+ type: 'observation' | 'entity' | 'domain-summary';
14
+ /** Domains for fast filtering */
15
+ domains: string[];
16
+ /** Entities for fast filtering */
17
+ entities: string[];
18
+ /** Tags for fast filtering */
19
+ tags: string[];
20
+ /** Current confidence */
21
+ confidence: number;
22
+ /** Last updated timestamp (ISO 8601) */
23
+ updated: string;
24
+ }
25
+
26
+ // ============================================================================
27
+ // Graph Edge (within a specific layer)
28
+ // ============================================================================
29
+
30
+ export interface GraphEdge {
31
+ /** Source note ID */
32
+ from: string;
33
+ /** Target note ID */
34
+ to: string;
35
+ /** Relationship type */
36
+ relation: string;
37
+ /** Edge weight (0-1, for ranked traversal) */
38
+ weight: number;
39
+ /** When this edge was established (ISO 8601) */
40
+ created: string;
41
+ /** Whether this edge crosses into another system */
42
+ crossSystem?: 'playbook' | 'experience';
43
+ /** Source trajectory that produced this edge, if any */
44
+ sourceTrajectory?: string;
45
+ }
46
+
47
+ // ============================================================================
48
+ // Graph Layer
49
+ // ============================================================================
50
+
51
+ export interface GraphLayer {
52
+ /** Layer identifier */
53
+ name: GraphLayerName;
54
+ /** Whether this layer is currently enabled */
55
+ enabled: boolean;
56
+ /** Edges in this layer */
57
+ edges: GraphEdge[];
58
+ }
59
+
60
+ // ============================================================================
61
+ // Multi-Graph Structure (top-level persisted format)
62
+ // ============================================================================
63
+
64
+ export interface KnowledgeMultiGraph {
65
+ /** Schema version for migration */
66
+ version: number;
67
+ /** Last rebuild timestamp */
68
+ lastRebuilt: string;
69
+ /** Shared node registry */
70
+ nodes: Record<string, GraphNode>;
71
+ /** Graph layers — each independently toggleable */
72
+ layers: Record<GraphLayerName, GraphLayer>;
73
+ }
74
+
75
+ // ============================================================================
76
+ // Layer Operations Interface
77
+ // ============================================================================
78
+
79
+ export interface GraphLayerOperations {
80
+ /** Layer name */
81
+ readonly name: GraphLayerName;
82
+
83
+ /** Whether this layer is enabled */
84
+ readonly enabled: boolean;
85
+
86
+ /** Get edges from/to a node in this layer */
87
+ getEdges(
88
+ nodeId: string,
89
+ direction?: 'outgoing' | 'incoming' | 'both'
90
+ ): GraphEdge[];
91
+
92
+ /** BFS neighbors within this layer */
93
+ neighbors(nodeId: string, depth?: number): string[];
94
+
95
+ /** Shortest path between two nodes within this layer */
96
+ pathBetween(fromId: string, toId: string): string[] | null;
97
+
98
+ /** Add an edge to this layer */
99
+ addEdge(edge: GraphEdge): void;
100
+
101
+ /** Remove an edge from this layer */
102
+ removeEdge(fromId: string, toId: string, relation: string): void;
103
+
104
+ /** Get all edges in this layer */
105
+ getAllEdges(): GraphEdge[];
106
+
107
+ /** Get edge count */
108
+ edgeCount(): number;
109
+
110
+ /** Rebuild this layer from knowledge notes */
111
+ rebuild(notes: KnowledgeNote[]): void;
112
+
113
+ /** Clear all edges */
114
+ clear(): void;
115
+ }
116
+
117
+ // ============================================================================
118
+ // Graph Manager Interface
119
+ // ============================================================================
120
+
121
+ export interface GraphNodeFilter {
122
+ domains?: string[];
123
+ entities?: string[];
124
+ tags?: string[];
125
+ type?: GraphNode['type'];
126
+ minConfidence?: number;
127
+ }
128
+
129
+ export interface NeighborOptions {
130
+ depth?: number;
131
+ layers?: GraphLayerName[];
132
+ minWeight?: number;
133
+ }
134
+
135
+ export interface KnowledgeGraphManagerInterface {
136
+ /** Get a specific layer */
137
+ getLayer(name: GraphLayerName): GraphLayerOperations | null;
138
+
139
+ /** Query across all enabled layers (union of edges) */
140
+ neighbors(nodeId: string, options?: NeighborOptions): GraphNode[];
141
+
142
+ /** Cross-layer path: can traverse edges from any enabled layer */
143
+ pathBetween(
144
+ fromId: string,
145
+ toId: string,
146
+ options?: { layers?: GraphLayerName[] }
147
+ ): Array<{ node: GraphNode; edge: GraphEdge; layer: GraphLayerName }> | null;
148
+
149
+ /** Filter nodes by criteria */
150
+ filterNodes(filter: GraphNodeFilter): GraphNode[];
151
+
152
+ /** Get cross-system links (to playbooks/experiences) */
153
+ crossSystemLinks(nodeId: string): GraphEdge[];
154
+
155
+ /** Add a node to the shared registry */
156
+ addNode(node: GraphNode): void;
157
+
158
+ /** Remove a node from the shared registry and all layers */
159
+ removeNode(nodeId: string): void;
160
+
161
+ /** Get a node by ID */
162
+ getNode(nodeId: string): GraphNode | undefined;
163
+
164
+ /** Get all nodes */
165
+ getAllNodes(): GraphNode[];
166
+
167
+ /** Rebuild all enabled layers from notes */
168
+ rebuildAll(notes: KnowledgeNote[]): void;
169
+
170
+ /** Load graph from disk */
171
+ loadFromDisk(dir: string): Promise<void>;
172
+
173
+ /** Save graph to disk */
174
+ saveToDisk(dir: string): Promise<void>;
175
+
176
+ /** Get statistics */
177
+ getStats(): {
178
+ nodeCount: number;
179
+ edgeCountByLayer: Record<string, number>;
180
+ enabledLayers: string[];
181
+ };
182
+ }
183
+
184
+ // ============================================================================
185
+ // Graph Configuration
186
+ // ============================================================================
187
+
188
+ export interface GraphConfig {
189
+ /** Which graph layers to enable */
190
+ enabledLayers: GraphLayerName[];
191
+ /** Whether to auto-infer temporal edges from timestamps */
192
+ inferTemporalEdges: boolean;
193
+ /** Whether to auto-infer causal edges from failure-recovery patterns */
194
+ inferCausalEdges: boolean;
195
+ /** Whether to auto-infer entity edges from shared entity tags */
196
+ inferEntityEdges: boolean;
197
+ /** Split layer files by domain when node count exceeds this */
198
+ domainSplitThreshold: number;
199
+ /** Promote to SQLite when total edge count exceeds this */
200
+ sqlitePromotionThreshold: number;
201
+ }
202
+
203
+ /** Default graph configuration */
204
+ export const DEFAULT_GRAPH_CONFIG: GraphConfig = {
205
+ enabledLayers: ['semantic'],
206
+ inferTemporalEdges: true,
207
+ inferCausalEdges: true,
208
+ inferEntityEdges: true,
209
+ domainSplitThreshold: 500,
210
+ sqlitePromotionThreshold: 10000,
211
+ };
212
+
213
+ // ============================================================================
214
+ // Valid relation sets per layer (for layer implementations)
215
+ // ============================================================================
216
+
217
+ export const SEMANTIC_RELATIONS: readonly LinkRelation[] = [
218
+ 'related-to',
219
+ 'depends-on',
220
+ 'specializes',
221
+ 'generalizes',
222
+ 'supports',
223
+ ];
224
+
225
+ export const TEMPORAL_RELATIONS: readonly LinkRelation[] = [
226
+ 'observed-before',
227
+ 'observed-after',
228
+ 'co-occurred',
229
+ 'supersedes',
230
+ ];
231
+
232
+ export const CAUSAL_RELATIONS: readonly LinkRelation[] = [
233
+ 'caused-by',
234
+ 'led-to',
235
+ 'broke',
236
+ 'enabled',
237
+ 'prevented',
238
+ ];
239
+
240
+ export const ENTITY_RELATIONS: readonly LinkRelation[] = [
241
+ 'uses',
242
+ 'part-of',
243
+ 'interacts-with',
244
+ 'contradicts',
245
+ 'created-by',
246
+ ];
@@ -0,0 +1,388 @@
1
+ import { z } from 'zod';
2
+
3
+ // ============================================================================
4
+ // Link Relations (organized by graph layer)
5
+ // ============================================================================
6
+
7
+ /** Semantic layer relations */
8
+ const SemanticRelations = [
9
+ 'related-to',
10
+ 'depends-on',
11
+ 'specializes',
12
+ 'generalizes',
13
+ 'supports',
14
+ ] as const;
15
+
16
+ /** Temporal layer relations */
17
+ const TemporalRelations = [
18
+ 'observed-before',
19
+ 'observed-after',
20
+ 'co-occurred',
21
+ 'supersedes',
22
+ ] as const;
23
+
24
+ /** Causal layer relations */
25
+ const CausalRelations = [
26
+ 'caused-by',
27
+ 'led-to',
28
+ 'broke',
29
+ 'enabled',
30
+ 'prevented',
31
+ ] as const;
32
+
33
+ /** Entity layer relations */
34
+ const EntityRelations = [
35
+ 'uses',
36
+ 'part-of',
37
+ 'interacts-with',
38
+ 'contradicts',
39
+ 'created-by',
40
+ ] as const;
41
+
42
+ export const AllLinkRelations = [
43
+ ...SemanticRelations,
44
+ ...TemporalRelations,
45
+ ...CausalRelations,
46
+ ...EntityRelations,
47
+ ] as const;
48
+
49
+ export const LinkRelationSchema = z.enum(AllLinkRelations);
50
+ export type LinkRelation = z.infer<typeof LinkRelationSchema>;
51
+
52
+ /** Map relation to its natural graph layer */
53
+ export function inferLayerFromRelation(
54
+ relation: LinkRelation
55
+ ): 'semantic' | 'temporal' | 'causal' | 'entity' {
56
+ if ((SemanticRelations as readonly string[]).includes(relation))
57
+ return 'semantic';
58
+ if ((TemporalRelations as readonly string[]).includes(relation))
59
+ return 'temporal';
60
+ if ((CausalRelations as readonly string[]).includes(relation))
61
+ return 'causal';
62
+ return 'entity';
63
+ }
64
+
65
+ // ============================================================================
66
+ // Note Types
67
+ // ============================================================================
68
+
69
+ export const NoteTypeSchema = z.enum([
70
+ 'observation',
71
+ 'entity',
72
+ 'domain-summary',
73
+ ]);
74
+ export type NoteType = z.infer<typeof NoteTypeSchema>;
75
+
76
+ export const SourceOriginSchema = z.enum([
77
+ 'extracted',
78
+ 'agent-authored',
79
+ 'imported',
80
+ ]);
81
+ export type SourceOrigin = z.infer<typeof SourceOriginSchema>;
82
+
83
+ export const GraphLayerNameSchema = z.enum([
84
+ 'semantic',
85
+ 'temporal',
86
+ 'causal',
87
+ 'entity',
88
+ ]);
89
+ export type GraphLayerName = z.infer<typeof GraphLayerNameSchema>;
90
+
91
+ // ============================================================================
92
+ // Knowledge Note Frontmatter Schema
93
+ // ============================================================================
94
+
95
+ export const KnowledgeLinkSchema = z.object({
96
+ target: z.string(),
97
+ relation: LinkRelationSchema,
98
+ layer: GraphLayerNameSchema.optional(),
99
+ });
100
+ export type KnowledgeLink = z.infer<typeof KnowledgeLinkSchema>;
101
+
102
+ export const KnowledgeSourceSchema = z.object({
103
+ origin: SourceOriginSchema,
104
+ trajectories: z.array(z.string()).optional(),
105
+ playbooks: z.array(z.string()).optional(),
106
+ agentId: z.string().optional(),
107
+ });
108
+ export type KnowledgeSource = z.infer<typeof KnowledgeSourceSchema>;
109
+
110
+ export const KnowledgeNoteFrontmatterSchema = z.object({
111
+ /** Unique identifier (kebab-case, prefixed with k- for observations) */
112
+ id: z.string(),
113
+ /** Note type determines organization and lifecycle */
114
+ type: NoteTypeSchema,
115
+ /** Knowledge domains this note belongs to */
116
+ domain: z.array(z.string()).default([]),
117
+ /** Specific entities (tools, libraries, patterns) referenced */
118
+ entities: z.array(z.string()).default([]),
119
+ /** Freeform tags for additional categorization */
120
+ tags: z.array(z.string()).default([]),
121
+ /** Confidence in this knowledge (0-1) */
122
+ confidence: z.number().min(0).max(1).default(0.5),
123
+ /** Where this knowledge came from */
124
+ source: KnowledgeSourceSchema,
125
+ /** Explicit links to other knowledge notes */
126
+ links: z.array(KnowledgeLinkSchema).default([]),
127
+ /** ISO 8601 creation timestamp */
128
+ created: z.string(),
129
+ /** ISO 8601 last updated timestamp */
130
+ updated: z.string(),
131
+ /** If this note replaces a previous one (contradiction resolution) */
132
+ supersedes: z.string().nullable().optional(),
133
+ });
134
+
135
+ export type KnowledgeNoteFrontmatter = z.infer<
136
+ typeof KnowledgeNoteFrontmatterSchema
137
+ >;
138
+
139
+ // ============================================================================
140
+ // Knowledge Note (frontmatter + body + file path)
141
+ // ============================================================================
142
+
143
+ export interface KnowledgeNote {
144
+ /** Parsed frontmatter */
145
+ frontmatter: KnowledgeNoteFrontmatter;
146
+ /** Markdown body content (after frontmatter) */
147
+ body: string;
148
+ /** Resolved file path (derived from type + name, not stored in frontmatter) */
149
+ filePath: string;
150
+ }
151
+
152
+ // ============================================================================
153
+ // Search & Retrieval
154
+ // ============================================================================
155
+
156
+ export interface KnowledgeMatch {
157
+ note: KnowledgeNote;
158
+ score: number;
159
+ matchType?: 'domain' | 'entity' | 'semantic' | 'graph';
160
+ }
161
+
162
+ // ============================================================================
163
+ // Extraction & Evolution Types (used in Phase 2-3, defined now for stability)
164
+ // ============================================================================
165
+
166
+ export interface EntityUpdate {
167
+ /** Entity note ID to update */
168
+ entityId: string;
169
+ /** Section to append */
170
+ section: string;
171
+ /** Evidence source trajectory ID */
172
+ trajectoryId: string;
173
+ }
174
+
175
+ export interface Contradiction {
176
+ /** Existing note that is contradicted */
177
+ existingNoteId: string;
178
+ /** New observation that contradicts it */
179
+ newObservation: KnowledgeNote;
180
+ /** How they conflict */
181
+ conflictDescription: string;
182
+ /** Recommendation */
183
+ resolution: 'supersede' | 'coexist' | 'review';
184
+ }
185
+
186
+ export interface PlaybookLink {
187
+ /** Knowledge note ID */
188
+ noteId: string;
189
+ /** Playbook ID */
190
+ playbookId: string;
191
+ /** Relationship direction */
192
+ relation: 'supports' | 'contradicts' | 'contextualizes';
193
+ }
194
+
195
+ export interface NewLink {
196
+ from: string;
197
+ to: string;
198
+ relation: LinkRelation;
199
+ layer?: GraphLayerName;
200
+ weight?: number;
201
+ }
202
+
203
+ export interface ExtractedKnowledge {
204
+ /** New observations to create */
205
+ observations: KnowledgeNote[];
206
+ /** Updates to existing entity notes (append sections) */
207
+ entityUpdates: EntityUpdate[];
208
+ /** Contradictions detected with existing knowledge */
209
+ contradictions: Contradiction[];
210
+ /** New links to add to the graph */
211
+ links: NewLink[];
212
+ /** Cross-references to playbooks */
213
+ playbookLinks: PlaybookLink[];
214
+ }
215
+
216
+ // ============================================================================
217
+ // Lifecycle Result Types
218
+ // ============================================================================
219
+
220
+ export interface InboxResult {
221
+ /** Total files processed */
222
+ processed: number;
223
+ /** Files that failed to parse/move */
224
+ failed: number;
225
+ /** Files moved to observations/ */
226
+ movedToObservations: number;
227
+ /** Files moved to entities/ */
228
+ movedToEntities: number;
229
+ /** Files moved to domains/ */
230
+ movedToDomains: number;
231
+ }
232
+
233
+ export interface DefragResult {
234
+ /** Inbox processing results */
235
+ inbox: InboxResult;
236
+ /** Number of observations consolidated into entity notes */
237
+ consolidated: number;
238
+ /** Number of contradictions detected */
239
+ contradictions: number;
240
+ /** Whether the graph was rebuilt */
241
+ graphRebuilt: boolean;
242
+ /** Number of domain summaries regenerated */
243
+ domainSummariesRegenerated: number;
244
+ /** Decay results */
245
+ decay: DecayResult;
246
+ }
247
+
248
+ export interface DecayResult {
249
+ /** Notes with reduced confidence */
250
+ decayed: number;
251
+ /** Notes newly marked as stale */
252
+ newlyStale: number;
253
+ /** Notes already marked stale */
254
+ alreadyStale: number;
255
+ }
256
+
257
+ // ============================================================================
258
+ // Knowledge Bank Stats
259
+ // ============================================================================
260
+
261
+ export interface KnowledgeStats {
262
+ observationCount: number;
263
+ entityCount: number;
264
+ domainCount: number;
265
+ inboxCount: number;
266
+ graph: {
267
+ nodeCount: number;
268
+ edgeCountByLayer: Record<string, number>;
269
+ enabledLayers: string[];
270
+ };
271
+ avgConfidence: number;
272
+ staleCount: number;
273
+ domainBreakdown: Record<string, number>;
274
+ }
275
+
276
+ // ============================================================================
277
+ // Factory Functions
278
+ // ============================================================================
279
+
280
+ let noteCounter = 0;
281
+
282
+ function generateNoteId(prefix: string): string {
283
+ const timestamp = Date.now().toString(36);
284
+ const counter = (noteCounter++).toString(36);
285
+ return `${prefix}-${timestamp}-${counter}`;
286
+ }
287
+
288
+ /**
289
+ * Create a new observation note
290
+ */
291
+ export function createObservation(input: {
292
+ id?: string;
293
+ title: string;
294
+ body: string;
295
+ domain: string[];
296
+ entities: string[];
297
+ tags?: string[];
298
+ confidence?: number;
299
+ source: KnowledgeSource;
300
+ links?: KnowledgeLink[];
301
+ }): KnowledgeNote {
302
+ const now = new Date().toISOString();
303
+ const id = input.id ?? generateNoteId('k');
304
+
305
+ return {
306
+ frontmatter: {
307
+ id,
308
+ type: 'observation',
309
+ domain: input.domain,
310
+ entities: input.entities,
311
+ tags: input.tags ?? [],
312
+ confidence: input.confidence ?? 0.3,
313
+ source: input.source,
314
+ links: input.links ?? [],
315
+ created: now,
316
+ updated: now,
317
+ supersedes: null,
318
+ },
319
+ body: `# ${input.title}\n\n${input.body}`,
320
+ filePath: `knowledge/observations/${id}.md`,
321
+ };
322
+ }
323
+
324
+ /**
325
+ * Create a new entity note
326
+ */
327
+ export function createEntityNote(input: {
328
+ entityName: string;
329
+ body: string;
330
+ domain: string[];
331
+ tags?: string[];
332
+ confidence?: number;
333
+ source: KnowledgeSource;
334
+ links?: KnowledgeLink[];
335
+ }): KnowledgeNote {
336
+ const now = new Date().toISOString();
337
+ const slug = input.entityName.toLowerCase().replace(/[^a-z0-9]+/g, '-');
338
+
339
+ return {
340
+ frontmatter: {
341
+ id: slug,
342
+ type: 'entity',
343
+ domain: input.domain,
344
+ entities: [input.entityName],
345
+ tags: input.tags ?? [],
346
+ confidence: input.confidence ?? 0.5,
347
+ source: input.source,
348
+ links: input.links ?? [],
349
+ created: now,
350
+ updated: now,
351
+ supersedes: null,
352
+ },
353
+ body: `# ${input.entityName}\n\n${input.body}`,
354
+ filePath: `knowledge/entities/${slug}.md`,
355
+ };
356
+ }
357
+
358
+ /**
359
+ * Create a new domain summary note
360
+ */
361
+ export function createDomainSummary(input: {
362
+ domainName: string;
363
+ body: string;
364
+ entities?: string[];
365
+ tags?: string[];
366
+ source: KnowledgeSource;
367
+ }): KnowledgeNote {
368
+ const now = new Date().toISOString();
369
+ const slug = input.domainName.toLowerCase().replace(/[^a-z0-9]+/g, '-');
370
+
371
+ return {
372
+ frontmatter: {
373
+ id: slug,
374
+ type: 'domain-summary',
375
+ domain: [input.domainName],
376
+ entities: input.entities ?? [],
377
+ tags: input.tags ?? [],
378
+ confidence: 1.0,
379
+ source: input.source,
380
+ links: [],
381
+ created: now,
382
+ updated: now,
383
+ supersedes: null,
384
+ },
385
+ body: `# ${input.domainName}\n\n${input.body}`,
386
+ filePath: `knowledge/domains/${slug}.md`,
387
+ };
388
+ }