@co-engram/core 0.1.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 (531) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +167 -0
  3. package/dist/config/defaults.d.ts +45 -0
  4. package/dist/config/defaults.d.ts.map +1 -0
  5. package/dist/config/defaults.js +70 -0
  6. package/dist/config/defaults.js.map +1 -0
  7. package/dist/config/index.d.ts +84 -0
  8. package/dist/config/index.d.ts.map +1 -0
  9. package/dist/config/index.js +230 -0
  10. package/dist/config/index.js.map +1 -0
  11. package/dist/config/types.d.ts +145 -0
  12. package/dist/config/types.d.ts.map +1 -0
  13. package/dist/config/types.js +14 -0
  14. package/dist/config/types.js.map +1 -0
  15. package/dist/contradiction/arbiter.d.ts +51 -0
  16. package/dist/contradiction/arbiter.d.ts.map +1 -0
  17. package/dist/contradiction/arbiter.js +112 -0
  18. package/dist/contradiction/arbiter.js.map +1 -0
  19. package/dist/contradiction/auto-degrade.d.ts +53 -0
  20. package/dist/contradiction/auto-degrade.d.ts.map +1 -0
  21. package/dist/contradiction/auto-degrade.js +79 -0
  22. package/dist/contradiction/auto-degrade.js.map +1 -0
  23. package/dist/contradiction/detector.d.ts +33 -0
  24. package/dist/contradiction/detector.d.ts.map +1 -0
  25. package/dist/contradiction/detector.js +76 -0
  26. package/dist/contradiction/detector.js.map +1 -0
  27. package/dist/contradiction/index.d.ts +11 -0
  28. package/dist/contradiction/index.d.ts.map +1 -0
  29. package/dist/contradiction/index.js +11 -0
  30. package/dist/contradiction/index.js.map +1 -0
  31. package/dist/contradiction/resolver.d.ts +45 -0
  32. package/dist/contradiction/resolver.d.ts.map +1 -0
  33. package/dist/contradiction/resolver.js +196 -0
  34. package/dist/contradiction/resolver.js.map +1 -0
  35. package/dist/contradiction/types.d.ts +73 -0
  36. package/dist/contradiction/types.d.ts.map +1 -0
  37. package/dist/contradiction/types.js +7 -0
  38. package/dist/contradiction/types.js.map +1 -0
  39. package/dist/dedup/dedupe.d.ts +49 -0
  40. package/dist/dedup/dedupe.d.ts.map +1 -0
  41. package/dist/dedup/dedupe.js +111 -0
  42. package/dist/dedup/dedupe.js.map +1 -0
  43. package/dist/dedup/hash.d.ts +27 -0
  44. package/dist/dedup/hash.d.ts.map +1 -0
  45. package/dist/dedup/hash.js +43 -0
  46. package/dist/dedup/hash.js.map +1 -0
  47. package/dist/dedup/index.d.ts +12 -0
  48. package/dist/dedup/index.d.ts.map +1 -0
  49. package/dist/dedup/index.js +12 -0
  50. package/dist/dedup/index.js.map +1 -0
  51. package/dist/dedup/llm-triage.d.ts +48 -0
  52. package/dist/dedup/llm-triage.d.ts.map +1 -0
  53. package/dist/dedup/llm-triage.js +100 -0
  54. package/dist/dedup/llm-triage.js.map +1 -0
  55. package/dist/dedup/merge.d.ts +41 -0
  56. package/dist/dedup/merge.d.ts.map +1 -0
  57. package/dist/dedup/merge.js +55 -0
  58. package/dist/dedup/merge.js.map +1 -0
  59. package/dist/dedup/similar.d.ts +45 -0
  60. package/dist/dedup/similar.d.ts.map +1 -0
  61. package/dist/dedup/similar.js +103 -0
  62. package/dist/dedup/similar.js.map +1 -0
  63. package/dist/dedup/types.d.ts +72 -0
  64. package/dist/dedup/types.d.ts.map +1 -0
  65. package/dist/dedup/types.js +18 -0
  66. package/dist/dedup/types.js.map +1 -0
  67. package/dist/disclosure/adaptive.d.ts +86 -0
  68. package/dist/disclosure/adaptive.d.ts.map +1 -0
  69. package/dist/disclosure/adaptive.js +196 -0
  70. package/dist/disclosure/adaptive.js.map +1 -0
  71. package/dist/disclosure/budget.d.ts +51 -0
  72. package/dist/disclosure/budget.d.ts.map +1 -0
  73. package/dist/disclosure/budget.js +91 -0
  74. package/dist/disclosure/budget.js.map +1 -0
  75. package/dist/disclosure/index.d.ts +11 -0
  76. package/dist/disclosure/index.d.ts.map +1 -0
  77. package/dist/disclosure/index.js +11 -0
  78. package/dist/disclosure/index.js.map +1 -0
  79. package/dist/disclosure/tier-loader.d.ts +58 -0
  80. package/dist/disclosure/tier-loader.d.ts.map +1 -0
  81. package/dist/disclosure/tier-loader.js +205 -0
  82. package/dist/disclosure/tier-loader.js.map +1 -0
  83. package/dist/dreaming/decay.d.ts +46 -0
  84. package/dist/dreaming/decay.d.ts.map +1 -0
  85. package/dist/dreaming/decay.js +69 -0
  86. package/dist/dreaming/decay.js.map +1 -0
  87. package/dist/dreaming/deep.d.ts +48 -0
  88. package/dist/dreaming/deep.d.ts.map +1 -0
  89. package/dist/dreaming/deep.js +41 -0
  90. package/dist/dreaming/deep.js.map +1 -0
  91. package/dist/dreaming/index.d.ts +12 -0
  92. package/dist/dreaming/index.d.ts.map +1 -0
  93. package/dist/dreaming/index.js +12 -0
  94. package/dist/dreaming/index.js.map +1 -0
  95. package/dist/dreaming/light.d.ts +54 -0
  96. package/dist/dreaming/light.d.ts.map +1 -0
  97. package/dist/dreaming/light.js +114 -0
  98. package/dist/dreaming/light.js.map +1 -0
  99. package/dist/dreaming/rem.d.ts +128 -0
  100. package/dist/dreaming/rem.d.ts.map +1 -0
  101. package/dist/dreaming/rem.js +228 -0
  102. package/dist/dreaming/rem.js.map +1 -0
  103. package/dist/dreaming/scheduler.d.ts +75 -0
  104. package/dist/dreaming/scheduler.d.ts.map +1 -0
  105. package/dist/dreaming/scheduler.js +138 -0
  106. package/dist/dreaming/scheduler.js.map +1 -0
  107. package/dist/dreaming/trash.d.ts +174 -0
  108. package/dist/dreaming/trash.d.ts.map +1 -0
  109. package/dist/dreaming/trash.js +466 -0
  110. package/dist/dreaming/trash.js.map +1 -0
  111. package/dist/evolution/category.d.ts +127 -0
  112. package/dist/evolution/category.d.ts.map +1 -0
  113. package/dist/evolution/category.js +271 -0
  114. package/dist/evolution/category.js.map +1 -0
  115. package/dist/evolution/index.d.ts +8 -0
  116. package/dist/evolution/index.d.ts.map +1 -0
  117. package/dist/evolution/index.js +8 -0
  118. package/dist/evolution/index.js.map +1 -0
  119. package/dist/evolution/triggered.d.ts +107 -0
  120. package/dist/evolution/triggered.d.ts.map +1 -0
  121. package/dist/evolution/triggered.js +278 -0
  122. package/dist/evolution/triggered.js.map +1 -0
  123. package/dist/generative/cross-pollinate.d.ts +144 -0
  124. package/dist/generative/cross-pollinate.d.ts.map +1 -0
  125. package/dist/generative/cross-pollinate.js +390 -0
  126. package/dist/generative/cross-pollinate.js.map +1 -0
  127. package/dist/generative/gap-detector.d.ts +80 -0
  128. package/dist/generative/gap-detector.d.ts.map +1 -0
  129. package/dist/generative/gap-detector.js +250 -0
  130. package/dist/generative/gap-detector.js.map +1 -0
  131. package/dist/generative/hypothesis.d.ts +161 -0
  132. package/dist/generative/hypothesis.d.ts.map +1 -0
  133. package/dist/generative/hypothesis.js +356 -0
  134. package/dist/generative/hypothesis.js.map +1 -0
  135. package/dist/generative/index.d.ts +9 -0
  136. package/dist/generative/index.d.ts.map +1 -0
  137. package/dist/generative/index.js +9 -0
  138. package/dist/generative/index.js.map +1 -0
  139. package/dist/graph/clustering.d.ts +117 -0
  140. package/dist/graph/clustering.d.ts.map +1 -0
  141. package/dist/graph/clustering.js +196 -0
  142. package/dist/graph/clustering.js.map +1 -0
  143. package/dist/graph/index.d.ts +13 -0
  144. package/dist/graph/index.d.ts.map +1 -0
  145. package/dist/graph/index.js +13 -0
  146. package/dist/graph/index.js.map +1 -0
  147. package/dist/graph/layout.d.ts +46 -0
  148. package/dist/graph/layout.d.ts.map +1 -0
  149. package/dist/graph/layout.js +269 -0
  150. package/dist/graph/layout.js.map +1 -0
  151. package/dist/graph/presets.d.ts +134 -0
  152. package/dist/graph/presets.d.ts.map +1 -0
  153. package/dist/graph/presets.js +190 -0
  154. package/dist/graph/presets.js.map +1 -0
  155. package/dist/graph/registry.d.ts +42 -0
  156. package/dist/graph/registry.d.ts.map +1 -0
  157. package/dist/graph/registry.js +158 -0
  158. package/dist/graph/registry.js.map +1 -0
  159. package/dist/graph/snapshot.d.ts +113 -0
  160. package/dist/graph/snapshot.d.ts.map +1 -0
  161. package/dist/graph/snapshot.js +194 -0
  162. package/dist/graph/snapshot.js.map +1 -0
  163. package/dist/graph/traverse.d.ts +84 -0
  164. package/dist/graph/traverse.d.ts.map +1 -0
  165. package/dist/graph/traverse.js +190 -0
  166. package/dist/graph/traverse.js.map +1 -0
  167. package/dist/graph/view-config.d.ts +99 -0
  168. package/dist/graph/view-config.d.ts.map +1 -0
  169. package/dist/graph/view-config.js +208 -0
  170. package/dist/graph/view-config.js.map +1 -0
  171. package/dist/host/detect-git-author.d.ts +26 -0
  172. package/dist/host/detect-git-author.d.ts.map +1 -0
  173. package/dist/host/detect-git-author.js +53 -0
  174. package/dist/host/detect-git-author.js.map +1 -0
  175. package/dist/host/index.d.ts +7 -0
  176. package/dist/host/index.d.ts.map +1 -0
  177. package/dist/host/index.js +7 -0
  178. package/dist/host/index.js.map +1 -0
  179. package/dist/i18n/en.d.ts +8 -0
  180. package/dist/i18n/en.d.ts.map +1 -0
  181. package/dist/i18n/en.js +211 -0
  182. package/dist/i18n/en.js.map +1 -0
  183. package/dist/i18n/field-names.d.ts +95 -0
  184. package/dist/i18n/field-names.d.ts.map +1 -0
  185. package/dist/i18n/field-names.js +329 -0
  186. package/dist/i18n/field-names.js.map +1 -0
  187. package/dist/i18n/index.d.ts +92 -0
  188. package/dist/i18n/index.d.ts.map +1 -0
  189. package/dist/i18n/index.js +135 -0
  190. package/dist/i18n/index.js.map +1 -0
  191. package/dist/i18n/types.d.ts +92 -0
  192. package/dist/i18n/types.d.ts.map +1 -0
  193. package/dist/i18n/types.js +7 -0
  194. package/dist/i18n/types.js.map +1 -0
  195. package/dist/i18n/zh.d.ts +197 -0
  196. package/dist/i18n/zh.d.ts.map +1 -0
  197. package/dist/i18n/zh.js +216 -0
  198. package/dist/i18n/zh.js.map +1 -0
  199. package/dist/importance/index.d.ts +7 -0
  200. package/dist/importance/index.d.ts.map +1 -0
  201. package/dist/importance/index.js +7 -0
  202. package/dist/importance/index.js.map +1 -0
  203. package/dist/importance/vector.d.ts +113 -0
  204. package/dist/importance/vector.d.ts.map +1 -0
  205. package/dist/importance/vector.js +202 -0
  206. package/dist/importance/vector.js.map +1 -0
  207. package/dist/index/digest-builder.d.ts +59 -0
  208. package/dist/index/digest-builder.d.ts.map +1 -0
  209. package/dist/index/digest-builder.js +195 -0
  210. package/dist/index/digest-builder.js.map +1 -0
  211. package/dist/index/graph-builder.d.ts +32 -0
  212. package/dist/index/graph-builder.d.ts.map +1 -0
  213. package/dist/index/graph-builder.js +104 -0
  214. package/dist/index/graph-builder.js.map +1 -0
  215. package/dist/index/incremental.d.ts +31 -0
  216. package/dist/index/incremental.d.ts.map +1 -0
  217. package/dist/index/incremental.js +47 -0
  218. package/dist/index/incremental.js.map +1 -0
  219. package/dist/index/index.d.ts +11 -0
  220. package/dist/index/index.d.ts.map +1 -0
  221. package/dist/index/index.js +11 -0
  222. package/dist/index/index.js.map +1 -0
  223. package/dist/index/orchestrator.d.ts +60 -0
  224. package/dist/index/orchestrator.d.ts.map +1 -0
  225. package/dist/index/orchestrator.js +99 -0
  226. package/dist/index/orchestrator.js.map +1 -0
  227. package/dist/index/types.d.ts +116 -0
  228. package/dist/index/types.d.ts.map +1 -0
  229. package/dist/index/types.js +10 -0
  230. package/dist/index/types.js.map +1 -0
  231. package/dist/index.d.ts +37 -0
  232. package/dist/index.d.ts.map +1 -0
  233. package/dist/index.js +37 -0
  234. package/dist/index.js.map +1 -0
  235. package/dist/learning/index.d.ts +7 -0
  236. package/dist/learning/index.d.ts.map +1 -0
  237. package/dist/learning/index.js +7 -0
  238. package/dist/learning/index.js.map +1 -0
  239. package/dist/learning/loop.d.ts +79 -0
  240. package/dist/learning/loop.d.ts.map +1 -0
  241. package/dist/learning/loop.js +116 -0
  242. package/dist/learning/loop.js.map +1 -0
  243. package/dist/lifecycle/freshness.d.ts +35 -0
  244. package/dist/lifecycle/freshness.d.ts.map +1 -0
  245. package/dist/lifecycle/freshness.js +60 -0
  246. package/dist/lifecycle/freshness.js.map +1 -0
  247. package/dist/lifecycle/index.d.ts +7 -0
  248. package/dist/lifecycle/index.d.ts.map +1 -0
  249. package/dist/lifecycle/index.js +7 -0
  250. package/dist/lifecycle/index.js.map +1 -0
  251. package/dist/lineage/index.d.ts +10 -0
  252. package/dist/lineage/index.d.ts.map +1 -0
  253. package/dist/lineage/index.js +10 -0
  254. package/dist/lineage/index.js.map +1 -0
  255. package/dist/lineage/trace.d.ts +142 -0
  256. package/dist/lineage/trace.d.ts.map +1 -0
  257. package/dist/lineage/trace.js +316 -0
  258. package/dist/lineage/trace.js.map +1 -0
  259. package/dist/maintenance/engine.d.ts +78 -0
  260. package/dist/maintenance/engine.d.ts.map +1 -0
  261. package/dist/maintenance/engine.js +291 -0
  262. package/dist/maintenance/engine.js.map +1 -0
  263. package/dist/maintenance/index.d.ts +8 -0
  264. package/dist/maintenance/index.d.ts.map +1 -0
  265. package/dist/maintenance/index.js +8 -0
  266. package/dist/maintenance/index.js.map +1 -0
  267. package/dist/maintenance/types.d.ts +111 -0
  268. package/dist/maintenance/types.d.ts.map +1 -0
  269. package/dist/maintenance/types.js +24 -0
  270. package/dist/maintenance/types.js.map +1 -0
  271. package/dist/observability/audit-log.d.ts +77 -0
  272. package/dist/observability/audit-log.d.ts.map +1 -0
  273. package/dist/observability/audit-log.js +101 -0
  274. package/dist/observability/audit-log.js.map +1 -0
  275. package/dist/observability/effectiveness-tracker.d.ts +162 -0
  276. package/dist/observability/effectiveness-tracker.d.ts.map +1 -0
  277. package/dist/observability/effectiveness-tracker.js +251 -0
  278. package/dist/observability/effectiveness-tracker.js.map +1 -0
  279. package/dist/observability/index.d.ts +16 -0
  280. package/dist/observability/index.d.ts.map +1 -0
  281. package/dist/observability/index.js +16 -0
  282. package/dist/observability/index.js.map +1 -0
  283. package/dist/observability/necessity-evaluator.d.ts +116 -0
  284. package/dist/observability/necessity-evaluator.d.ts.map +1 -0
  285. package/dist/observability/necessity-evaluator.js +487 -0
  286. package/dist/observability/necessity-evaluator.js.map +1 -0
  287. package/dist/observability/proposal-engine.d.ts +224 -0
  288. package/dist/observability/proposal-engine.d.ts.map +1 -0
  289. package/dist/observability/proposal-engine.js +651 -0
  290. package/dist/observability/proposal-engine.js.map +1 -0
  291. package/dist/perspectives/index.d.ts +7 -0
  292. package/dist/perspectives/index.d.ts.map +1 -0
  293. package/dist/perspectives/index.js +7 -0
  294. package/dist/perspectives/index.js.map +1 -0
  295. package/dist/perspectives/multi-view.d.ts +81 -0
  296. package/dist/perspectives/multi-view.d.ts.map +1 -0
  297. package/dist/perspectives/multi-view.js +221 -0
  298. package/dist/perspectives/multi-view.js.map +1 -0
  299. package/dist/prompt-builder/builder.d.ts +47 -0
  300. package/dist/prompt-builder/builder.d.ts.map +1 -0
  301. package/dist/prompt-builder/builder.js +136 -0
  302. package/dist/prompt-builder/builder.js.map +1 -0
  303. package/dist/prompt-builder/index.d.ts +8 -0
  304. package/dist/prompt-builder/index.d.ts.map +1 -0
  305. package/dist/prompt-builder/index.js +8 -0
  306. package/dist/prompt-builder/index.js.map +1 -0
  307. package/dist/prompt-builder/types.d.ts +42 -0
  308. package/dist/prompt-builder/types.d.ts.map +1 -0
  309. package/dist/prompt-builder/types.js +10 -0
  310. package/dist/prompt-builder/types.js.map +1 -0
  311. package/dist/prompt-signals/cache.d.ts +36 -0
  312. package/dist/prompt-signals/cache.d.ts.map +1 -0
  313. package/dist/prompt-signals/cache.js +70 -0
  314. package/dist/prompt-signals/cache.js.map +1 -0
  315. package/dist/prompt-signals/index.d.ts +12 -0
  316. package/dist/prompt-signals/index.d.ts.map +1 -0
  317. package/dist/prompt-signals/index.js +11 -0
  318. package/dist/prompt-signals/index.js.map +1 -0
  319. package/dist/prompt-signals/stats.d.ts +45 -0
  320. package/dist/prompt-signals/stats.d.ts.map +1 -0
  321. package/dist/prompt-signals/stats.js +119 -0
  322. package/dist/prompt-signals/stats.js.map +1 -0
  323. package/dist/prompt-signals/types.d.ts +53 -0
  324. package/dist/prompt-signals/types.d.ts.map +1 -0
  325. package/dist/prompt-signals/types.js +34 -0
  326. package/dist/prompt-signals/types.js.map +1 -0
  327. package/dist/provenance/index.d.ts +7 -0
  328. package/dist/provenance/index.d.ts.map +1 -0
  329. package/dist/provenance/index.js +7 -0
  330. package/dist/provenance/index.js.map +1 -0
  331. package/dist/provenance/reliability.d.ts +133 -0
  332. package/dist/provenance/reliability.d.ts.map +1 -0
  333. package/dist/provenance/reliability.js +213 -0
  334. package/dist/provenance/reliability.js.map +1 -0
  335. package/dist/reinforcement/config.d.ts +34 -0
  336. package/dist/reinforcement/config.d.ts.map +1 -0
  337. package/dist/reinforcement/config.js +43 -0
  338. package/dist/reinforcement/config.js.map +1 -0
  339. package/dist/reinforcement/index.d.ts +12 -0
  340. package/dist/reinforcement/index.d.ts.map +1 -0
  341. package/dist/reinforcement/index.js +12 -0
  342. package/dist/reinforcement/index.js.map +1 -0
  343. package/dist/reinforcement/ltd.d.ts +59 -0
  344. package/dist/reinforcement/ltd.d.ts.map +1 -0
  345. package/dist/reinforcement/ltd.js +90 -0
  346. package/dist/reinforcement/ltd.js.map +1 -0
  347. package/dist/reinforcement/ltp.d.ts +63 -0
  348. package/dist/reinforcement/ltp.d.ts.map +1 -0
  349. package/dist/reinforcement/ltp.js +99 -0
  350. package/dist/reinforcement/ltp.js.map +1 -0
  351. package/dist/reinforcement/related.d.ts +39 -0
  352. package/dist/reinforcement/related.d.ts.map +1 -0
  353. package/dist/reinforcement/related.js +92 -0
  354. package/dist/reinforcement/related.js.map +1 -0
  355. package/dist/retrieval/filter.d.ts +18 -0
  356. package/dist/retrieval/filter.d.ts.map +1 -0
  357. package/dist/retrieval/filter.js +68 -0
  358. package/dist/retrieval/filter.js.map +1 -0
  359. package/dist/retrieval/fts.d.ts +44 -0
  360. package/dist/retrieval/fts.d.ts.map +1 -0
  361. package/dist/retrieval/fts.js +120 -0
  362. package/dist/retrieval/fts.js.map +1 -0
  363. package/dist/retrieval/index.d.ts +10 -0
  364. package/dist/retrieval/index.d.ts.map +1 -0
  365. package/dist/retrieval/index.js +10 -0
  366. package/dist/retrieval/index.js.map +1 -0
  367. package/dist/retrieval/orchestrator.d.ts +78 -0
  368. package/dist/retrieval/orchestrator.d.ts.map +1 -0
  369. package/dist/retrieval/orchestrator.js +156 -0
  370. package/dist/retrieval/orchestrator.js.map +1 -0
  371. package/dist/retrieval/scoring.d.ts +105 -0
  372. package/dist/retrieval/scoring.d.ts.map +1 -0
  373. package/dist/retrieval/scoring.js +165 -0
  374. package/dist/retrieval/scoring.js.map +1 -0
  375. package/dist/signals/extract.d.ts +98 -0
  376. package/dist/signals/extract.d.ts.map +1 -0
  377. package/dist/signals/extract.js +388 -0
  378. package/dist/signals/extract.js.map +1 -0
  379. package/dist/signals/file-sink.d.ts +81 -0
  380. package/dist/signals/file-sink.d.ts.map +1 -0
  381. package/dist/signals/file-sink.js +227 -0
  382. package/dist/signals/file-sink.js.map +1 -0
  383. package/dist/signals/index.d.ts +12 -0
  384. package/dist/signals/index.d.ts.map +1 -0
  385. package/dist/signals/index.js +12 -0
  386. package/dist/signals/index.js.map +1 -0
  387. package/dist/signals/rpe.d.ts +60 -0
  388. package/dist/signals/rpe.d.ts.map +1 -0
  389. package/dist/signals/rpe.js +68 -0
  390. package/dist/signals/rpe.js.map +1 -0
  391. package/dist/signals/types.d.ts +80 -0
  392. package/dist/signals/types.d.ts.map +1 -0
  393. package/dist/signals/types.js +14 -0
  394. package/dist/signals/types.js.map +1 -0
  395. package/dist/storage/engram-index.d.ts +73 -0
  396. package/dist/storage/engram-index.d.ts.map +1 -0
  397. package/dist/storage/engram-index.js +215 -0
  398. package/dist/storage/engram-index.js.map +1 -0
  399. package/dist/storage/engram-store.d.ts +147 -0
  400. package/dist/storage/engram-store.d.ts.map +1 -0
  401. package/dist/storage/engram-store.js +221 -0
  402. package/dist/storage/engram-store.js.map +1 -0
  403. package/dist/storage/git-stage.d.ts +56 -0
  404. package/dist/storage/git-stage.d.ts.map +1 -0
  405. package/dist/storage/git-stage.js +147 -0
  406. package/dist/storage/git-stage.js.map +1 -0
  407. package/dist/storage/git.d.ts +57 -0
  408. package/dist/storage/git.d.ts.map +1 -0
  409. package/dist/storage/git.js +156 -0
  410. package/dist/storage/git.js.map +1 -0
  411. package/dist/storage/hash.d.ts +23 -0
  412. package/dist/storage/hash.d.ts.map +1 -0
  413. package/dist/storage/hash.js +31 -0
  414. package/dist/storage/hash.js.map +1 -0
  415. package/dist/storage/index.d.ts +14 -0
  416. package/dist/storage/index.d.ts.map +1 -0
  417. package/dist/storage/index.js +14 -0
  418. package/dist/storage/index.js.map +1 -0
  419. package/dist/storage/path.d.ts +51 -0
  420. package/dist/storage/path.d.ts.map +1 -0
  421. package/dist/storage/path.js +72 -0
  422. package/dist/storage/path.js.map +1 -0
  423. package/dist/storage/repository.d.ts +342 -0
  424. package/dist/storage/repository.d.ts.map +1 -0
  425. package/dist/storage/repository.js +1221 -0
  426. package/dist/storage/repository.js.map +1 -0
  427. package/dist/storage/synapse-store.d.ts +113 -0
  428. package/dist/storage/synapse-store.d.ts.map +1 -0
  429. package/dist/storage/synapse-store.js +279 -0
  430. package/dist/storage/synapse-store.js.map +1 -0
  431. package/dist/tools/doctor-tools.d.ts +53 -0
  432. package/dist/tools/doctor-tools.d.ts.map +1 -0
  433. package/dist/tools/doctor-tools.js +97 -0
  434. package/dist/tools/doctor-tools.js.map +1 -0
  435. package/dist/tools/engram-tools.d.ts +166 -0
  436. package/dist/tools/engram-tools.d.ts.map +1 -0
  437. package/dist/tools/engram-tools.js +834 -0
  438. package/dist/tools/engram-tools.js.map +1 -0
  439. package/dist/tools/index.d.ts +16 -0
  440. package/dist/tools/index.d.ts.map +1 -0
  441. package/dist/tools/index.js +16 -0
  442. package/dist/tools/index.js.map +1 -0
  443. package/dist/tools/llm-descriptions.d.ts +61 -0
  444. package/dist/tools/llm-descriptions.d.ts.map +1 -0
  445. package/dist/tools/llm-descriptions.js +556 -0
  446. package/dist/tools/llm-descriptions.js.map +1 -0
  447. package/dist/tools/proposal-tools.d.ts +40 -0
  448. package/dist/tools/proposal-tools.d.ts.map +1 -0
  449. package/dist/tools/proposal-tools.js +99 -0
  450. package/dist/tools/proposal-tools.js.map +1 -0
  451. package/dist/tools/registry.d.ts +30 -0
  452. package/dist/tools/registry.d.ts.map +1 -0
  453. package/dist/tools/registry.js +43 -0
  454. package/dist/tools/registry.js.map +1 -0
  455. package/dist/tools/schemas.d.ts +715 -0
  456. package/dist/tools/schemas.d.ts.map +1 -0
  457. package/dist/tools/schemas.js +383 -0
  458. package/dist/tools/schemas.js.map +1 -0
  459. package/dist/tools/skill-tools.d.ts +26 -0
  460. package/dist/tools/skill-tools.d.ts.map +1 -0
  461. package/dist/tools/skill-tools.js +84 -0
  462. package/dist/tools/skill-tools.js.map +1 -0
  463. package/dist/tools/synapse-tools.d.ts +28 -0
  464. package/dist/tools/synapse-tools.d.ts.map +1 -0
  465. package/dist/tools/synapse-tools.js +177 -0
  466. package/dist/tools/synapse-tools.js.map +1 -0
  467. package/dist/tools/tool.d.ts +84 -0
  468. package/dist/tools/tool.d.ts.map +1 -0
  469. package/dist/tools/tool.js +22 -0
  470. package/dist/tools/tool.js.map +1 -0
  471. package/dist/tools/wrapped.d.ts +28 -0
  472. package/dist/tools/wrapped.d.ts.map +1 -0
  473. package/dist/tools/wrapped.js +172 -0
  474. package/dist/tools/wrapped.js.map +1 -0
  475. package/dist/types/disclosure.d.ts +70 -0
  476. package/dist/types/disclosure.d.ts.map +1 -0
  477. package/dist/types/disclosure.js +9 -0
  478. package/dist/types/disclosure.js.map +1 -0
  479. package/dist/types/engram.d.ts +203 -0
  480. package/dist/types/engram.d.ts.map +1 -0
  481. package/dist/types/engram.js +7 -0
  482. package/dist/types/engram.js.map +1 -0
  483. package/dist/types/index.d.ts +15 -0
  484. package/dist/types/index.d.ts.map +1 -0
  485. package/dist/types/index.js +15 -0
  486. package/dist/types/index.js.map +1 -0
  487. package/dist/types/intention.d.ts +91 -0
  488. package/dist/types/intention.d.ts.map +1 -0
  489. package/dist/types/intention.js +9 -0
  490. package/dist/types/intention.js.map +1 -0
  491. package/dist/types/repository-types.d.ts +113 -0
  492. package/dist/types/repository-types.d.ts.map +1 -0
  493. package/dist/types/repository-types.js +18 -0
  494. package/dist/types/repository-types.js.map +1 -0
  495. package/dist/types/scene.d.ts +52 -0
  496. package/dist/types/scene.d.ts.map +1 -0
  497. package/dist/types/scene.js +12 -0
  498. package/dist/types/scene.js.map +1 -0
  499. package/dist/types/skill.d.ts +107 -0
  500. package/dist/types/skill.d.ts.map +1 -0
  501. package/dist/types/skill.js +10 -0
  502. package/dist/types/skill.js.map +1 -0
  503. package/dist/types/slugify.d.ts +34 -0
  504. package/dist/types/slugify.d.ts.map +1 -0
  505. package/dist/types/slugify.js +55 -0
  506. package/dist/types/slugify.js.map +1 -0
  507. package/dist/types/synapse-id.d.ts +22 -0
  508. package/dist/types/synapse-id.d.ts.map +1 -0
  509. package/dist/types/synapse-id.js +34 -0
  510. package/dist/types/synapse-id.js.map +1 -0
  511. package/dist/types/synapse.d.ts +99 -0
  512. package/dist/types/synapse.d.ts.map +1 -0
  513. package/dist/types/synapse.js +9 -0
  514. package/dist/types/synapse.js.map +1 -0
  515. package/dist/verification/index.d.ts +11 -0
  516. package/dist/verification/index.d.ts.map +1 -0
  517. package/dist/verification/index.js +11 -0
  518. package/dist/verification/index.js.map +1 -0
  519. package/dist/verification/metacognition.d.ts +102 -0
  520. package/dist/verification/metacognition.d.ts.map +1 -0
  521. package/dist/verification/metacognition.js +284 -0
  522. package/dist/verification/metacognition.js.map +1 -0
  523. package/dist/verification/state-machine.d.ts +77 -0
  524. package/dist/verification/state-machine.d.ts.map +1 -0
  525. package/dist/verification/state-machine.js +126 -0
  526. package/dist/verification/state-machine.js.map +1 -0
  527. package/dist/verification/upgrade.d.ts +133 -0
  528. package/dist/verification/upgrade.d.ts.map +1 -0
  529. package/dist/verification/upgrade.js +364 -0
  530. package/dist/verification/upgrade.js.map +1 -0
  531. package/package.json +70 -0
@@ -0,0 +1,46 @@
1
+ /**
2
+ * 艾宾浩斯衰减批量应用(Deep Dreaming 的一部分)
3
+ *
4
+ * 神经科学依据:记忆痕迹随时间衰退,需通过再激活维持;
5
+ * 长期未强化且低重要性的 engram 进入归档/遗忘。
6
+ *
7
+ * 规则(spec §5.2 + §6.2):
8
+ * - freshness=forgotten → 直接 forget
9
+ * - freshness=stale 且 importance < forgetImportanceThreshold → forget
10
+ * - freshness=stale 且 importance ≥ 阈值 → archive(保留可恢复)
11
+ * - freshness=aging/fresh → 不动
12
+ *
13
+ * @module @co-engram/core/dreaming
14
+ */
15
+ import type { EngramFreshness } from "../types/engram.js";
16
+ import type { EngramRepository } from "../storage/repository.js";
17
+ export interface DecayOptions {
18
+ /**
19
+ * 当 freshness=stale 时,importance 低于此值 → forget;否则 archive。
20
+ * 默认 0.2。
21
+ */
22
+ readonly forgetImportanceThreshold?: number;
23
+ /** 当前时间(测试用),默认 new Date() */
24
+ readonly nowIso?: string;
25
+ /** 只读模式:只计算不落盘 */
26
+ readonly dryRun?: boolean;
27
+ }
28
+ export interface DecayResult {
29
+ /** 扫描的 active engram 数 */
30
+ readonly scanned: number;
31
+ /** 被遗忘的 engram id 列表 */
32
+ readonly forgotten: string[];
33
+ /** 被归档的 engram id 列表 */
34
+ readonly archived: string[];
35
+ /** 按 freshness 统计(扫描时计算,不含后续变更) */
36
+ readonly byFreshness: Record<EngramFreshness, number>;
37
+ }
38
+ /** 默认遗忘重要性阈值(spec §6.2 + 经验值) */
39
+ export declare const DEFAULT_FORGET_IMPORTANCE_THRESHOLD = 0.2;
40
+ /**
41
+ * 批量应用艾宾浩斯衰减
42
+ *
43
+ * 只处理 status=active 的 engram;已经是 archived/forgotten 的跳过。
44
+ */
45
+ export declare function applyDecayBatch(repo: EngramRepository, options?: DecayOptions): DecayResult;
46
+ //# sourceMappingURL=decay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decay.d.ts","sourceRoot":"","sources":["../../src/dreaming/decay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,QAAQ,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAC5C,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB;IAClB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,0BAA0B;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,wBAAwB;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,wBAAwB;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC5B,mCAAmC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;CACvD;AAED,iCAAiC;AACjC,eAAO,MAAM,mCAAmC,MAAM,CAAC;AAEvD;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,gBAAgB,EACtB,OAAO,GAAE,YAAiB,GACzB,WAAW,CAsEb"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * 艾宾浩斯衰减批量应用(Deep Dreaming 的一部分)
3
+ *
4
+ * 神经科学依据:记忆痕迹随时间衰退,需通过再激活维持;
5
+ * 长期未强化且低重要性的 engram 进入归档/遗忘。
6
+ *
7
+ * 规则(spec §5.2 + §6.2):
8
+ * - freshness=forgotten → 直接 forget
9
+ * - freshness=stale 且 importance < forgetImportanceThreshold → forget
10
+ * - freshness=stale 且 importance ≥ 阈值 → archive(保留可恢复)
11
+ * - freshness=aging/fresh → 不动
12
+ *
13
+ * @module @co-engram/core/dreaming
14
+ */
15
+ import { computeFreshness } from "../lifecycle/freshness.js";
16
+ /** 默认遗忘重要性阈值(spec §6.2 + 经验值) */
17
+ export const DEFAULT_FORGET_IMPORTANCE_THRESHOLD = 0.2;
18
+ /**
19
+ * 批量应用艾宾浩斯衰减
20
+ *
21
+ * 只处理 status=active 的 engram;已经是 archived/forgotten 的跳过。
22
+ */
23
+ export function applyDecayBatch(repo, options = {}) {
24
+ const forgetThreshold = options.forgetImportanceThreshold ?? DEFAULT_FORGET_IMPORTANCE_THRESHOLD;
25
+ const now = options.nowIso ? new Date(options.nowIso) : new Date();
26
+ const dryRun = options.dryRun ?? false;
27
+ const byFreshness = {
28
+ fresh: 0,
29
+ aging: 0,
30
+ stale: 0,
31
+ forgotten: 0,
32
+ };
33
+ const forgotten = [];
34
+ const archived = [];
35
+ // 按 id 字典序稳定扫描
36
+ const entries = [...repo.listEngrams()].sort((a, b) => a.id < b.id ? -1 : 1);
37
+ let scanned = 0;
38
+ for (const entry of entries) {
39
+ const engram = repo.readEngram(entry.id);
40
+ if (engram.status !== "active")
41
+ continue;
42
+ scanned += 1;
43
+ const freshness = computeFreshness(engram.lastEffectiveAt, engram.decayHalfLifeDays, now);
44
+ byFreshness[freshness] += 1;
45
+ if (freshness === "forgotten") {
46
+ forgotten.push(engram.id);
47
+ if (!dryRun) {
48
+ repo.updateLifecycle(engram.id, "forgotten", freshness);
49
+ }
50
+ continue;
51
+ }
52
+ if (freshness === "stale") {
53
+ if (engram.importance < forgetThreshold) {
54
+ forgotten.push(engram.id);
55
+ if (!dryRun) {
56
+ repo.updateLifecycle(engram.id, "forgotten", freshness);
57
+ }
58
+ }
59
+ else {
60
+ archived.push(engram.id);
61
+ if (!dryRun) {
62
+ repo.updateLifecycle(engram.id, "archived", freshness);
63
+ }
64
+ }
65
+ }
66
+ }
67
+ return { scanned, forgotten, archived, byFreshness };
68
+ }
69
+ //# sourceMappingURL=decay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decay.js","sourceRoot":"","sources":["../../src/dreaming/decay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAyB7D,iCAAiC;AACjC,MAAM,CAAC,MAAM,mCAAmC,GAAG,GAAG,CAAC;AAEvD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAsB,EACtB,UAAwB,EAAE;IAE1B,MAAM,eAAe,GACnB,OAAO,CAAC,yBAAyB,IAAI,mCAAmC,CAAC;IAC3E,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IACnE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IAEvC,MAAM,WAAW,GAAoC;QACnD,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,CAAC;QACR,SAAS,EAAE,CAAC;KACb,CAAC;IAEF,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,eAAe;IACf,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACpD,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACrB,CAAC;IAEF,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ;YAAE,SAAS;QACzC,OAAO,IAAI,CAAC,CAAC;QAEb,MAAM,SAAS,GAAG,gBAAgB,CAChC,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,iBAAiB,EACxB,GAAG,CACJ,CAAC;QACF,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YAC9B,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,eAAe,CAClB,MAAM,CAAC,EAAE,EACT,WAAkC,EAClC,SAAS,CACV,CAAC;YACJ,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YAC1B,IAAI,MAAM,CAAC,UAAU,GAAG,eAAe,EAAE,CAAC;gBACxC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,IAAI,CAAC,eAAe,CAClB,MAAM,CAAC,EAAE,EACT,WAAkC,EAClC,SAAS,CACV,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzB,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,IAAI,CAAC,eAAe,CAClB,MAAM,CAAC,EAAE,EACT,UAAiC,EACjC,SAAS,CACV,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AACvD,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Deep Dreaming(慢波睡眠巩固:整合 + 归档 + 遗忘)
3
+ *
4
+ * 神经科学依据:慢波睡眠期间,海马与皮层协同完成记忆巩固——
5
+ * 重要痕迹被强化,陈旧痕迹被归档或遗忘,为新的学习腾出空间。
6
+ *
7
+ * 实现(spec §5.2):
8
+ * - 调用 Light Dreaming 清理重复
9
+ * - 调用 Decay 批量归档/遗忘
10
+ * - 调用 Trash Sweep 把长期 forgotten 的 engram 移入 .trash/
11
+ * - 返回整合统计
12
+ *
13
+ * REM Dreaming(跨情境抽象)留 P2。
14
+ *
15
+ * @module @co-engram/core/dreaming
16
+ */
17
+ import type { EngramRepository } from "../storage/repository.js";
18
+ import { type DecayOptions, type DecayResult } from "./decay.js";
19
+ import { type LightDreamingOptions, type LightDreamingResult } from "./light.js";
20
+ import { type TrashOptions, type TrashSweepResult } from "./trash.js";
21
+ export interface DeepDreamingOptions {
22
+ readonly light?: LightDreamingOptions;
23
+ readonly decay?: DecayOptions;
24
+ /** Trash sweep 配置。undefined → 跳过 sweep;{} → 启用并用默认值 */
25
+ readonly trash?: TrashOptions;
26
+ /** 跳过 light 阶段(只跑 decay + trash) */
27
+ readonly skipLight?: boolean;
28
+ /** 跳过 decay 阶段(只跑 light + trash) */
29
+ readonly skipDecay?: boolean;
30
+ /** 跳过 trash 阶段 */
31
+ readonly skipTrash?: boolean;
32
+ }
33
+ export interface DeepDreamingResult {
34
+ readonly light: LightDreamingResult | null;
35
+ readonly decay: DecayResult | null;
36
+ readonly trash: TrashSweepResult | null;
37
+ }
38
+ /**
39
+ * 执行 Deep Dreaming
40
+ *
41
+ * 默认顺序:先 light(清理重复)→ 再 decay(归档/遗忘陈旧)→ 最后 trash(移入回收站)。
42
+ * 这样 decay 阶段扫描的 engram 数更少,且 trash 能立刻处理本次刚被遗忘的陈旧 engram。
43
+ *
44
+ * 注意:trash 默认不开启(需要显式传 options.trash 或 MaintenanceConfig.trash.enabled=true),
45
+ * 因为 sweep 涉及跨目录移动,属可观测的副作用。
46
+ */
47
+ export declare function runDeepDreaming(repo: EngramRepository, options?: DeepDreamingOptions): DeepDreamingResult;
48
+ //# sourceMappingURL=deep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep.d.ts","sourceRoot":"","sources":["../../src/dreaming/deep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,uDAAuD;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,oCAAoC;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,oCAAoC;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB;IAClB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACzC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,gBAAgB,EACtB,OAAO,GAAE,mBAAwB,GAChC,kBAAkB,CAepB"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Deep Dreaming(慢波睡眠巩固:整合 + 归档 + 遗忘)
3
+ *
4
+ * 神经科学依据:慢波睡眠期间,海马与皮层协同完成记忆巩固——
5
+ * 重要痕迹被强化,陈旧痕迹被归档或遗忘,为新的学习腾出空间。
6
+ *
7
+ * 实现(spec §5.2):
8
+ * - 调用 Light Dreaming 清理重复
9
+ * - 调用 Decay 批量归档/遗忘
10
+ * - 调用 Trash Sweep 把长期 forgotten 的 engram 移入 .trash/
11
+ * - 返回整合统计
12
+ *
13
+ * REM Dreaming(跨情境抽象)留 P2。
14
+ *
15
+ * @module @co-engram/core/dreaming
16
+ */
17
+ import { applyDecayBatch, } from "./decay.js";
18
+ import { runLightDreaming, } from "./light.js";
19
+ import { sweepToTrash, } from "./trash.js";
20
+ /**
21
+ * 执行 Deep Dreaming
22
+ *
23
+ * 默认顺序:先 light(清理重复)→ 再 decay(归档/遗忘陈旧)→ 最后 trash(移入回收站)。
24
+ * 这样 decay 阶段扫描的 engram 数更少,且 trash 能立刻处理本次刚被遗忘的陈旧 engram。
25
+ *
26
+ * 注意:trash 默认不开启(需要显式传 options.trash 或 MaintenanceConfig.trash.enabled=true),
27
+ * 因为 sweep 涉及跨目录移动,属可观测的副作用。
28
+ */
29
+ export function runDeepDreaming(repo, options = {}) {
30
+ const light = options.skipLight
31
+ ? null
32
+ : runLightDreaming(repo, options.light ?? {});
33
+ const decay = options.skipDecay
34
+ ? null
35
+ : applyDecayBatch(repo, options.decay ?? {});
36
+ const trash = options.skipTrash || options.trash === undefined
37
+ ? null
38
+ : sweepToTrash(repo, options.trash);
39
+ return { light, decay, trash };
40
+ }
41
+ //# sourceMappingURL=deep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep.js","sourceRoot":"","sources":["../../src/dreaming/deep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,eAAe,GAGhB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,gBAAgB,GAGjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,YAAY,GAGb,MAAM,YAAY,CAAC;AAqBpB;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAsB,EACtB,UAA+B,EAAE;IAEjC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS;QAC7B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAEhD,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS;QAC7B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,KAAK,GACT,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;QAC9C,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAExC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACjC,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Dreaming 模块 barrel
3
+ *
4
+ * @module @co-engram/core/dreaming
5
+ */
6
+ export * from "./decay.js";
7
+ export * from "./light.js";
8
+ export * from "./deep.js";
9
+ export * from "./rem.js";
10
+ export * from "./scheduler.js";
11
+ export * from "./trash.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dreaming/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Dreaming 模块 barrel
3
+ *
4
+ * @module @co-engram/core/dreaming
5
+ */
6
+ export * from "./decay.js";
7
+ export * from "./light.js";
8
+ export * from "./deep.js";
9
+ export * from "./rem.js";
10
+ export * from "./scheduler.js";
11
+ export * from "./trash.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dreaming/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Light Dreaming(海马 CA3 模式完成:批量去重)
3
+ *
4
+ * 神经科学依据:海马 CA3 区在睡眠中重放近期经历,完成"模式补全",
5
+ * 把重复的记忆痕迹合并到同一表征。
6
+ *
7
+ * 实现(spec §5.2):
8
+ * - 遍历所有 active engram
9
+ * - 对每个 engram 调 checkDuplicateSync 查"是否是其他 engram 的重复/相似"
10
+ * - DUPLICATE:强化 targetId,删除当前
11
+ * - UPDATE:合并到 targetId,删除当前
12
+ * - NEW:保留
13
+ *
14
+ * 处理顺序:按 id 字典序,保留第一个(稳定且 prompt-cache 友好)。
15
+ *
16
+ * @module @co-engram/core/dreaming
17
+ */
18
+ import type { EngramRepository } from "../storage/repository.js";
19
+ export interface LightDreamingOptions {
20
+ /** 相似度引擎的最小 similarity(默认 0.3) */
21
+ readonly minSimilarity?: number;
22
+ /** Top-K 候选(默认 5) */
23
+ readonly topK?: number;
24
+ /** 只读模式:只计算不落盘 */
25
+ readonly dryRun?: boolean;
26
+ }
27
+ export interface DedupActionRecord {
28
+ /** 被合并/删除的 engram id */
29
+ readonly from: string;
30
+ /** 合并到的目标 engram id */
31
+ readonly to: string;
32
+ /** 触发原因(来自 triage reason) */
33
+ readonly reason: string;
34
+ /** 置信度(DUPLICATE=1,UPDATE=similarity) */
35
+ readonly confidence?: number;
36
+ }
37
+ export interface LightDreamingResult {
38
+ /** 扫描的 active engram 数 */
39
+ readonly scanned: number;
40
+ /** DUPLICATE 处理记录 */
41
+ readonly duplicatesHandled: DedupActionRecord[];
42
+ /** UPDATE 处理记录 */
43
+ readonly updatesHandled: DedupActionRecord[];
44
+ /** NEW 保留数 */
45
+ readonly newConsidered: number;
46
+ }
47
+ /**
48
+ * 执行 Light Dreaming(批量去重)
49
+ *
50
+ * 只处理 status=active 的 engram;已经是 archived/forgotten 的跳过。
51
+ * 如果 dryRun=true,只返回计算结果不落盘。
52
+ */
53
+ export declare function runLightDreaming(repo: EngramRepository, options?: LightDreamingOptions): LightDreamingResult;
54
+ //# sourceMappingURL=light.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"light.d.ts","sourceRoot":"","sources":["../../src/dreaming/light.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAMjE,MAAM,WAAW,oBAAoB;IACnC,kCAAkC;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,qBAAqB;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB;IAClB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,qBAAqB;IACrB,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;IAChD,kBAAkB;IAClB,QAAQ,CAAC,cAAc,EAAE,iBAAiB,EAAE,CAAC;IAC7C,cAAc;IACd,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,gBAAgB,EACtB,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CA8FrB"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Light Dreaming(海马 CA3 模式完成:批量去重)
3
+ *
4
+ * 神经科学依据:海马 CA3 区在睡眠中重放近期经历,完成"模式补全",
5
+ * 把重复的记忆痕迹合并到同一表征。
6
+ *
7
+ * 实现(spec §5.2):
8
+ * - 遍历所有 active engram
9
+ * - 对每个 engram 调 checkDuplicateSync 查"是否是其他 engram 的重复/相似"
10
+ * - DUPLICATE:强化 targetId,删除当前
11
+ * - UPDATE:合并到 targetId,删除当前
12
+ * - NEW:保留
13
+ *
14
+ * 处理顺序:按 id 字典序,保留第一个(稳定且 prompt-cache 友好)。
15
+ *
16
+ * @module @co-engram/core/dreaming
17
+ */
18
+ import { checkDuplicateSync } from "../dedup/dedupe.js";
19
+ import { mergeEngram } from "../dedup/merge.js";
20
+ import { recordRetrievalSuccess } from "../reinforcement/ltp.js";
21
+ /**
22
+ * 执行 Light Dreaming(批量去重)
23
+ *
24
+ * 只处理 status=active 的 engram;已经是 archived/forgotten 的跳过。
25
+ * 如果 dryRun=true,只返回计算结果不落盘。
26
+ */
27
+ export function runLightDreaming(repo, options = {}) {
28
+ const minSimilarity = options.minSimilarity ?? 0.3;
29
+ const topK = options.topK ?? 5;
30
+ const dryRun = options.dryRun ?? false;
31
+ const duplicatesHandled = [];
32
+ const updatesHandled = [];
33
+ const removed = new Set();
34
+ // 按 id 字典序稳定扫描
35
+ const entries = [...repo.listEngrams()].sort((a, b) => a.id < b.id ? -1 : 1);
36
+ let scanned = 0;
37
+ for (const entry of entries) {
38
+ if (removed.has(entry.id))
39
+ continue;
40
+ const engram = repo.readEngram(entry.id);
41
+ if (engram.status !== "active")
42
+ continue;
43
+ scanned += 1;
44
+ const dedupInput = {
45
+ title: engram.title,
46
+ content: engram.content,
47
+ kind: engram.kind,
48
+ kinds: engram.kinds,
49
+ summary: engram.summary,
50
+ domainTags: [...engram.domainTags],
51
+ contextTags: [...engram.contextTags],
52
+ encodingContext: engram.encodingContext,
53
+ importance: engram.importance,
54
+ confidence: engram.confidence,
55
+ emotionalValence: engram.emotionalValence,
56
+ sourceType: engram.sourceType,
57
+ visibility: engram.visibility,
58
+ decayHalfLifeDays: engram.decayHalfLifeDays,
59
+ createdBy: engram.createdBy,
60
+ };
61
+ const result = checkDuplicateSync({ repository: repo, options: { minSimilarity, topK } }, dedupInput);
62
+ // targetId 是自己 → 跳过(理论上 checkDuplicate 会返回自己作为候选)
63
+ if (!result.targetId || result.targetId === engram.id)
64
+ continue;
65
+ // 目标已被删除(例如先前的合并)→ 跳过
66
+ if (removed.has(result.targetId))
67
+ continue;
68
+ if (!repo.exists(result.targetId))
69
+ continue;
70
+ if (result.verdict === "DUPLICATE") {
71
+ // 强化目标,删除当前
72
+ if (!dryRun) {
73
+ recordRetrievalSuccess(repo, result.targetId, 1);
74
+ repo.deleteEngram(engram.id);
75
+ }
76
+ removed.add(engram.id);
77
+ duplicatesHandled.push({
78
+ from: engram.id,
79
+ to: result.targetId,
80
+ reason: result.reason,
81
+ confidence: result.confidence,
82
+ });
83
+ }
84
+ else if (result.verdict === "UPDATE") {
85
+ // 合并到目标,删除当前
86
+ if (!dryRun) {
87
+ mergeEngram(repo, {
88
+ id: result.targetId,
89
+ newTitle: engram.title,
90
+ newContent: engram.content,
91
+ newSummary: engram.summary,
92
+ newImportance: engram.importance,
93
+ mergedBy: "dreaming-light",
94
+ reason: result.reason ?? "light dreaming auto-merge",
95
+ });
96
+ repo.deleteEngram(engram.id);
97
+ }
98
+ removed.add(engram.id);
99
+ updatesHandled.push({
100
+ from: engram.id,
101
+ to: result.targetId,
102
+ reason: result.reason,
103
+ confidence: result.confidence,
104
+ });
105
+ }
106
+ }
107
+ return {
108
+ scanned,
109
+ duplicatesHandled,
110
+ updatesHandled,
111
+ newConsidered: scanned - duplicatesHandled.length - updatesHandled.length,
112
+ };
113
+ }
114
+ //# sourceMappingURL=light.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"light.js","sourceRoot":"","sources":["../../src/dreaming/light.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * REM Dreaming(跨情境抽象 + 模式发现)
3
+ *
4
+ * 神经科学依据:REM 睡眠期间,海马与皮层协同重放,发现跨情境的共同模式。
5
+ *
6
+ * 实现(spec §5.2):
7
+ * 1. 取所有 active engram
8
+ * 2. 相似度聚类(基于 TokenJaccardSimilarityEngine)
9
+ * 3. 对每个 ≥ minClusterSize 的 cluster 调用 abstractionProvider 抽象
10
+ * 4. 生成 ConsolidationProposal(title/content/sourceIds/confidence)
11
+ * 5. confidence ≥ autoAdoptionThreshold → 自动创建 pattern engram + 连接 derives_from
12
+ *
13
+ * Core 层提供 PatternAbstractionProvider 接口,宿主可注入真正的 LLM 抽象器;
14
+ * 默认实现 LocalHeuristicPatternAbstraction 基于 token 频率提取共同 tokens。
15
+ *
16
+ * @module @co-engram/core/dreaming
17
+ */
18
+ import type { EngramRepository } from "../storage/repository.js";
19
+ import type { EngramId } from "../types/engram.js";
20
+ export interface AbstractionInput {
21
+ /** Cluster 内的 engram 摘要列表 */
22
+ readonly engrams: ReadonlyArray<{
23
+ readonly id: EngramId;
24
+ readonly title: string;
25
+ readonly summary: string;
26
+ readonly content: string;
27
+ readonly domainTags: readonly string[];
28
+ }>;
29
+ }
30
+ export interface AbstractionOutput {
31
+ /** 抽象出的模式 title */
32
+ readonly title: string;
33
+ /** 抽象出的模式 content(Markdown) */
34
+ readonly content: string;
35
+ /** 摘要 */
36
+ readonly summary: string;
37
+ /** 置信度 [0,1] */
38
+ readonly confidence: number;
39
+ /** 抽象理由(可解释性) */
40
+ readonly reason: string;
41
+ }
42
+ /**
43
+ * 模式抽象 Provider 接口
44
+ *
45
+ * 默认实现:LocalHeuristicPatternAbstraction(基于 token 频率)
46
+ * 生产实现:宿主注入真正的 LLM provider(调用 GPT/Claude)
47
+ */
48
+ export interface PatternAbstractionProvider {
49
+ abstract(input: AbstractionInput): Promise<AbstractionOutput> | AbstractionOutput;
50
+ }
51
+ /**
52
+ * 启发式模式抽象(无 LLM)
53
+ *
54
+ * 算法:
55
+ * 1. 合并 cluster 内所有 engram 的 tokens
56
+ * 2. 按 token 频率倒序,取 top N 作为"共同关键词"
57
+ * 3. title = "Pattern: {top1} {top2} {top3}"
58
+ * 4. content = 共同关键词列表 + source 列表
59
+ * 5. confidence = (top1 频率 / cluster size) × 加权
60
+ *
61
+ * 这是 P2 启发式;生产环境应该用 LLM 做语义抽象。
62
+ */
63
+ export declare class LocalHeuristicPatternAbstraction implements PatternAbstractionProvider {
64
+ private readonly options;
65
+ constructor(options?: {
66
+ readonly topTokens?: number;
67
+ readonly minConfidence?: number;
68
+ });
69
+ abstract(input: AbstractionInput): AbstractionOutput;
70
+ }
71
+ export interface Cluster {
72
+ readonly representativeId: EngramId;
73
+ readonly memberIds: readonly EngramId[];
74
+ }
75
+ export interface ClusteringOptions {
76
+ /** 相似度阈值(两个 engram 视为同 cluster) */
77
+ readonly similarityThreshold?: number;
78
+ /** 一个 cluster 的 最大成员数 */
79
+ readonly maxClusterSize?: number;
80
+ }
81
+ /**
82
+ * 简单贪心聚类:按 id 字典序遍历,每个 engram 找未聚类的相似邻居组成 cluster
83
+ */
84
+ export declare function clusterSimilarEngrams(repo: EngramRepository, options?: ClusteringOptions): readonly Cluster[];
85
+ export interface ConsolidationProposal {
86
+ readonly title: string;
87
+ readonly content: string;
88
+ readonly summary: string;
89
+ readonly confidence: number;
90
+ readonly reason: string;
91
+ readonly sourceIds: readonly EngramId[];
92
+ readonly clusterRepresentativeId: EngramId;
93
+ }
94
+ export interface RemDreamingOptions {
95
+ readonly abstractionProvider?: PatternAbstractionProvider;
96
+ readonly clustering?: ClusteringOptions;
97
+ /** 最小 cluster size(默认 3) */
98
+ readonly minClusterSize?: number;
99
+ /** 自动采纳阈值(默认 0.85) */
100
+ readonly autoAdoptionThreshold?: number;
101
+ /** 创建 pattern engram 时使用 */
102
+ readonly createdBy?: string;
103
+ /** 只读模式:只生成提案不落盘 */
104
+ readonly dryRun?: boolean;
105
+ }
106
+ export interface RemDreamingResult {
107
+ readonly clustersScanned: number;
108
+ readonly proposals: readonly ConsolidationProposal[];
109
+ readonly adopted: ReadonlyArray<{
110
+ patternEngramId: EngramId;
111
+ proposal: ConsolidationProposal;
112
+ }>;
113
+ readonly skipped: ReadonlyArray<{
114
+ proposal: ConsolidationProposal;
115
+ reason: string;
116
+ }>;
117
+ }
118
+ /**
119
+ * 执行 REM Dreaming
120
+ *
121
+ * 1. 聚类所有 active engram
122
+ * 2. 对每个 ≥ minClusterSize 的 cluster 生成抽象提案
123
+ * 3. confidence ≥ autoAdoptionThreshold → 自动创建 pattern engram + derives_from synapse
124
+ *
125
+ * 注意:core 层不绑定 LLM;abstractionProvider 由宿主注入。
126
+ */
127
+ export declare function runRemDreaming(repo: EngramRepository, options?: RemDreamingOptions): Promise<RemDreamingResult>;
128
+ //# sourceMappingURL=rem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rem.d.ts","sourceRoot":"","sources":["../../src/dreaming/rem.ts"],"names":[],"mappings":"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"}