@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,213 @@
1
+ /**
2
+ * Provenance 奖惩回路(spec §3.8 核心创新)
3
+ *
4
+ * 把单条 engram 的三信号追踪聚合到来源(createdBy)级别,形成信用系统:
5
+ *
6
+ * sourceReliability = Σ effectiveRetrievals / (Σ effectiveRetrievals + Σ failedUses)
7
+ *
8
+ * 关键设计:派生而非存储(零额外字段)。每次需要时从所有 engram 的统计派生。
9
+ *
10
+ * 副作用(落盘时):
11
+ * - 低 reliability 来源旗下 engram 的 verificationStatus 降级(默认 → plausible)
12
+ * - 高 reliability 来源的新 engram 初始 confidence 加成(默认 +0.1)
13
+ *
14
+ * 与 closeLearningLoop 集成:上层在 onProvenanceUpdate 回调中调用 applyProvenanceSignal,
15
+ * 或显式调用本模块独立 API。
16
+ *
17
+ * @module @co-engram/core/provenance
18
+ */
19
+ export const DEFAULT_PROVENANCE_CONFIG = {
20
+ lowReliabilityThreshold: 0.4,
21
+ highReliabilityThreshold: 0.8,
22
+ confidenceBoost: 0.1,
23
+ minSampleSize: 3,
24
+ flaggedVerificationStatus: "plausible",
25
+ };
26
+ /**
27
+ * 派生单个来源的 reliability
28
+ *
29
+ * 实现细节:扫描所有 engram,过滤 createdBy 匹配的,累加三信号。
30
+ * 无样本时 reliability = 0.5(中性,避免一上来就被标记为低信用)。
31
+ */
32
+ export function deriveSourceReliability(repo, createdBy) {
33
+ const entries = repo.listEngrams();
34
+ let totalEffective = 0;
35
+ let totalFailed = 0;
36
+ let totalRetrievals = 0;
37
+ let engramCount = 0;
38
+ for (const entry of entries) {
39
+ const engram = repo.readEngram(entry.id);
40
+ if (engram.createdBy !== createdBy)
41
+ continue;
42
+ totalEffective += engram.effectiveRetrievals;
43
+ totalFailed += engram.failedUses;
44
+ totalRetrievals += engram.retrievalCount;
45
+ engramCount += 1;
46
+ }
47
+ if (engramCount === 0)
48
+ return null;
49
+ const sampleSize = totalEffective + totalFailed;
50
+ const reliability = sampleSize === 0 ? 0.5 : totalEffective / sampleSize;
51
+ return {
52
+ createdBy,
53
+ totalEffective,
54
+ totalFailed,
55
+ totalRetrievals,
56
+ engramCount,
57
+ reliability,
58
+ };
59
+ }
60
+ /**
61
+ * 派生所有来源的 reliability
62
+ *
63
+ * 返回按 reliability 升序排序(最低信用在前,便于优先标记)。
64
+ */
65
+ export function deriveAllSourceReliability(repo) {
66
+ const creators = new Set();
67
+ for (const entry of repo.listEngrams()) {
68
+ const engram = repo.readEngram(entry.id);
69
+ creators.add(engram.createdBy);
70
+ }
71
+ const result = [];
72
+ for (const createdBy of creators) {
73
+ const r = deriveSourceReliability(repo, createdBy);
74
+ if (r)
75
+ result.push(r);
76
+ }
77
+ result.sort((a, b) => {
78
+ if (a.reliability !== b.reliability)
79
+ return a.reliability - b.reliability;
80
+ return a.createdBy < b.createdBy ? -1 : 1;
81
+ });
82
+ return result;
83
+ }
84
+ /**
85
+ * 判定 reliability 是否为低/高信用
86
+ *
87
+ * 样本不足时一律不评判(避免新来源被误判)。
88
+ */
89
+ export function classifyReliability(reliability, config = DEFAULT_PROVENANCE_CONFIG) {
90
+ const sample = reliability.totalEffective + reliability.totalFailed;
91
+ if (sample < config.minSampleSize) {
92
+ return { isLow: false, isHigh: false, insufficient: true };
93
+ }
94
+ return {
95
+ isLow: reliability.reliability < config.lowReliabilityThreshold,
96
+ isHigh: reliability.reliability >= config.highReliabilityThreshold,
97
+ insufficient: false,
98
+ };
99
+ }
100
+ /**
101
+ * Provenance 奖惩钩子
102
+ *
103
+ * 从 engramId 解析 createdBy,派生当前 reliability,返回信号快照。
104
+ *
105
+ * 注意:reliability 本身是派生的,三信号已经在 closeLearningLoop 的 LTP/LTD 阶段
106
+ * 更新到 engram 上,所以本函数只做"读取 + 分类",不写盘。
107
+ *
108
+ * 副作用(如 verificationStatus 降级)通过 flagLowReliabilitySources 显式触发。
109
+ */
110
+ export function applyProvenanceSignal(repo, engramId, outcome, effectiveness, options = {}) {
111
+ if (!repo.exists(engramId)) {
112
+ throw new Error(`Engram not found: ${engramId}`);
113
+ }
114
+ const cfg = {
115
+ ...DEFAULT_PROVENANCE_CONFIG,
116
+ ...options.config,
117
+ };
118
+ const engram = repo.readEngram(engramId);
119
+ const reliability = deriveSourceReliability(repo, engram.createdBy);
120
+ const cls = classifyReliability(reliability, cfg);
121
+ return {
122
+ engramId,
123
+ createdBy: engram.createdBy,
124
+ outcome,
125
+ effectiveness,
126
+ reliability,
127
+ isLowReliability: cls.isLow,
128
+ isHighReliability: cls.isHigh,
129
+ insufficientSamples: cls.insufficient,
130
+ };
131
+ }
132
+ /**
133
+ * 扫描所有来源,把低 reliability 来源旗下 engram 的 verificationStatus 降级
134
+ *
135
+ * 默认目标状态:plausible(spec §3.8:触发反思或标记为"不可信来源")。
136
+ * 已是 refuted 的不升回 plausible(避免覆盖人工裁决)。
137
+ *
138
+ * @param persist true 则写盘 verificationStatus;false 只返回计算结果
139
+ */
140
+ export function flagLowReliabilitySources(repo, options = {}) {
141
+ const cfg = {
142
+ ...DEFAULT_PROVENANCE_CONFIG,
143
+ ...options.config,
144
+ };
145
+ const persist = options.persist ?? true;
146
+ const all = deriveAllSourceReliability(repo);
147
+ const flagged = [];
148
+ for (const source of all) {
149
+ const cls = classifyReliability(source, cfg);
150
+ if (!cls.isLow)
151
+ continue;
152
+ const engramIds = [];
153
+ for (const entry of repo.listEngrams()) {
154
+ const engram = repo.readEngram(entry.id);
155
+ if (engram.createdBy !== source.createdBy)
156
+ continue;
157
+ // 已 refuted 的不覆盖(保留人工裁决)
158
+ if (engram.verificationStatus === "refuted") {
159
+ engramIds.push(entry.id);
160
+ continue;
161
+ }
162
+ // 已是目标状态的不重复写盘
163
+ if (engram.verificationStatus === cfg.flaggedVerificationStatus) {
164
+ engramIds.push(entry.id);
165
+ continue;
166
+ }
167
+ if (persist) {
168
+ repo.updateVerificationStatus(entry.id, cfg.flaggedVerificationStatus);
169
+ }
170
+ engramIds.push(entry.id);
171
+ }
172
+ if (engramIds.length > 0) {
173
+ flagged.push({
174
+ createdBy: source.createdBy,
175
+ reliability: source.reliability,
176
+ engramIds,
177
+ });
178
+ }
179
+ }
180
+ return { flagged, persisted: persist };
181
+ }
182
+ /**
183
+ * 计算高 reliability 来源新 engram 的初始 confidence 加成
184
+ *
185
+ * 用法:engram_create 时,先按 sourceType 默认 confidence 生成 base,
186
+ * 再调用本函数:如果 createdBy reliability 高,返回 min(1.0, base + boost)。
187
+ *
188
+ * @returns 调整后的 confidence ∈ [0,1]
189
+ */
190
+ export function computeInitialConfidence(repo, createdBy, baseConfidence, options = {}) {
191
+ const cfg = {
192
+ ...DEFAULT_PROVENANCE_CONFIG,
193
+ ...options.config,
194
+ };
195
+ const reliability = deriveSourceReliability(repo, createdBy);
196
+ if (!reliability)
197
+ return clamp01(baseConfidence);
198
+ const cls = classifyReliability(reliability, cfg);
199
+ if (!cls.isHigh)
200
+ return clamp01(baseConfidence);
201
+ return clamp01(baseConfidence + cfg.confidenceBoost);
202
+ }
203
+ /** 数值截断到 [0,1] */
204
+ function clamp01(x) {
205
+ if (Number.isNaN(x))
206
+ return 0;
207
+ if (x < 0)
208
+ return 0;
209
+ if (x > 1)
210
+ return 1;
211
+ return x;
212
+ }
213
+ //# sourceMappingURL=reliability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reliability.js","sourceRoot":"","sources":["../../src/provenance/reliability.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * LTP/LTD 强化机制配置
3
+ *
4
+ * Hebbian 原则:"一起激活的神经元连接增强"
5
+ * LTP(Long-Term Potentiation):有效检索 → importance 增强
6
+ * LTD(Long-Term Depression):失败使用 → importance 削弱
7
+ *
8
+ * spec 6.2 默认值:
9
+ * - 每次 effective=1 的检索 → importance += 0.02(10 次从 0.5 → 0.7)
10
+ * - 邻居强化系数:0.5(直接邻居得到一半增益)
11
+ * - LTD 单次惩罚:0.03(略大于 LTP 增益,符合"失败比成功更显著"的神经科学规律)
12
+ *
13
+ * @module @co-engram/core/reinforcement
14
+ */
15
+ /** LTP/LTD 参数 */
16
+ export interface ReinforcementConfig {
17
+ /** 每次 effective=1 检索的 importance 增益 */
18
+ readonly ltpGain: number;
19
+ /** 每次失败使用的 importance 削弱(绝对值) */
20
+ readonly ltdPenalty: number;
21
+ /** Hebbian 邻居强化系数 ∈ [0,1] */
22
+ readonly hebbianRatio: number;
23
+ /** 失败累积阈值:超过此值后额外惩罚 */
24
+ readonly failureThreshold: number;
25
+ /** 阈值之上的额外惩罚倍率 */
26
+ readonly failureEscalation: number;
27
+ }
28
+ /** 默认配置(spec 6.2) */
29
+ export declare const DEFAULT_CONFIG: ReinforcementConfig;
30
+ /**
31
+ * 校验配置合法性
32
+ */
33
+ export declare function validateConfig(config: ReinforcementConfig): void;
34
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/reinforcement/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,iBAAiB;AACjB,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iCAAiC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,6BAA6B;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,uBAAuB;IACvB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,kBAAkB;IAClB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,qBAAqB;AACrB,eAAO,MAAM,cAAc,EAAE,mBAM5B,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAsBhE"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * LTP/LTD 强化机制配置
3
+ *
4
+ * Hebbian 原则:"一起激活的神经元连接增强"
5
+ * LTP(Long-Term Potentiation):有效检索 → importance 增强
6
+ * LTD(Long-Term Depression):失败使用 → importance 削弱
7
+ *
8
+ * spec 6.2 默认值:
9
+ * - 每次 effective=1 的检索 → importance += 0.02(10 次从 0.5 → 0.7)
10
+ * - 邻居强化系数:0.5(直接邻居得到一半增益)
11
+ * - LTD 单次惩罚:0.03(略大于 LTP 增益,符合"失败比成功更显著"的神经科学规律)
12
+ *
13
+ * @module @co-engram/core/reinforcement
14
+ */
15
+ /** 默认配置(spec 6.2) */
16
+ export const DEFAULT_CONFIG = {
17
+ ltpGain: 0.02,
18
+ ltdPenalty: 0.03,
19
+ hebbianRatio: 0.5,
20
+ failureThreshold: 3,
21
+ failureEscalation: 1.5,
22
+ };
23
+ /**
24
+ * 校验配置合法性
25
+ */
26
+ export function validateConfig(config) {
27
+ if (config.ltpGain <= 0 || config.ltpGain > 1) {
28
+ throw new Error(`ltpGain must be in (0,1], got ${config.ltpGain}`);
29
+ }
30
+ if (config.ltdPenalty <= 0 || config.ltdPenalty > 1) {
31
+ throw new Error(`ltdPenalty must be in (0,1], got ${config.ltdPenalty}`);
32
+ }
33
+ if (config.hebbianRatio < 0 || config.hebbianRatio > 1) {
34
+ throw new Error(`hebbianRatio must be in [0,1], got ${config.hebbianRatio}`);
35
+ }
36
+ if (config.failureThreshold < 1) {
37
+ throw new Error(`failureThreshold must be >= 1, got ${config.failureThreshold}`);
38
+ }
39
+ if (config.failureEscalation < 1) {
40
+ throw new Error(`failureEscalation must be >= 1, got ${config.failureEscalation}`);
41
+ }
42
+ }
43
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/reinforcement/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAgBH,qBAAqB;AACrB,MAAM,CAAC,MAAM,cAAc,GAAwB;IACjD,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,GAAG;IACjB,gBAAgB,EAAE,CAAC;IACnB,iBAAiB,EAAE,GAAG;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAA2B;IACxD,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,oCAAoC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CACb,sCAAsC,MAAM,CAAC,YAAY,EAAE,CAC5D,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,sCAAsC,MAAM,CAAC,gBAAgB,EAAE,CAChE,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,uCAAuC,MAAM,CAAC,iBAAiB,EAAE,CAClE,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Reinforcement 模块 barrel
3
+ *
4
+ * LTP/LTD + Hebbian 关联强化
5
+ *
6
+ * @module @co-engram/core/reinforcement
7
+ */
8
+ export * from "./config.js";
9
+ export * from "./ltp.js";
10
+ export * from "./ltd.js";
11
+ export * from "./related.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reinforcement/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Reinforcement 模块 barrel
3
+ *
4
+ * LTP/LTD + Hebbian 关联强化
5
+ *
6
+ * @module @co-engram/core/reinforcement
7
+ */
8
+ export * from "./config.js";
9
+ export * from "./ltp.js";
10
+ export * from "./ltd.js";
11
+ export * from "./related.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reinforcement/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * LTD(Long-Term Depression)- 失败使用削弱
3
+ *
4
+ * 神经科学依据:海马 LTD,长期不被激活或激活后失败的突触削弱。
5
+ * 业务含义:engram 被使用但失败 → importance 削弱。
6
+ *
7
+ * 触发场景:
8
+ * - 工具调用基于该 engram 后出错
9
+ * - LLM 引用后被指正
10
+ * - engram 内容与实际情况冲突
11
+ *
12
+ * 实现:
13
+ * - failedUses += 1
14
+ * - retrievalCount += 1
15
+ * - importance -= ltdPenalty × escalationFactor
16
+ * · escalationFactor:失败累积 ≥ failureThreshold 后按 failureEscalation 倍增
17
+ *
18
+ * 触发降级条件(外层调用方判断):
19
+ * - failedUses >= 阈值(如 3)→ 自动 archive
20
+ * - failedUses >= 高阈值(如 5)→ 自动 forget
21
+ *
22
+ * @module @co-engram/core/reinforcement
23
+ */
24
+ import type { EngramRepository } from "../storage/repository.js";
25
+ import type { Engram } from "../types/engram.js";
26
+ import { type ReinforcementConfig } from "./config.js";
27
+ export interface LtdResult {
28
+ readonly id: string;
29
+ readonly importanceDelta: number;
30
+ readonly importance: number;
31
+ readonly failedUses: number;
32
+ readonly retrievalCount: number;
33
+ /** 是否触发降级建议(failedUses 达到阈值) */
34
+ readonly shouldArchive: boolean;
35
+ readonly shouldForget: boolean;
36
+ }
37
+ /** 默认降级阈值(失败次数达到即触发) */
38
+ export declare const DEFAULT_ARCHIVE_THRESHOLD = 3;
39
+ export declare const DEFAULT_FORGET_THRESHOLD = 5;
40
+ /**
41
+ * 记录一次失败使用(LTD 削弱)
42
+ *
43
+ * importance 削弱规则:
44
+ * - failedUses < failureThreshold:penalty = ltdPenalty
45
+ * - failedUses >= failureThreshold:penalty = ltdPenalty × failureEscalation
46
+ *
47
+ * @param repo - 仓库
48
+ * @param id - 目标 engram id
49
+ * @param config - 配置(可选)
50
+ * @param archiveThreshold - 触发 archive 的 failedUses 阈值(默认 3)
51
+ * @param forgetThreshold - 触发 forget 的 failedUses 阈值(默认 5)
52
+ * @param nowIso - 当前时间
53
+ */
54
+ export declare function recordRetrievalFailure(repo: EngramRepository, id: string, config?: ReinforcementConfig, archiveThreshold?: number, forgetThreshold?: number, nowIso?: string): LtdResult;
55
+ /**
56
+ * 计算失败 N 次后的预期 importance(不写盘)
57
+ */
58
+ export declare function projectImportanceAfterFailures(engram: Engram, times: number, config?: ReinforcementConfig): number;
59
+ //# sourceMappingURL=ltd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ltd.d.ts","sourceRoot":"","sources":["../../src/reinforcement/ltd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,gCAAgC;IAChC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED,wBAAwB;AACxB,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,gBAAgB,EACtB,EAAE,EAAE,MAAM,EACV,MAAM,GAAE,mBAAoC,EAC5C,gBAAgB,GAAE,MAAkC,EACpD,eAAe,GAAE,MAAiC,EAClD,MAAM,GAAE,MAAiC,GACxC,SAAS,CAkCX;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,mBAAoC,GAC3C,MAAM,CAaR"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * LTD(Long-Term Depression)- 失败使用削弱
3
+ *
4
+ * 神经科学依据:海马 LTD,长期不被激活或激活后失败的突触削弱。
5
+ * 业务含义:engram 被使用但失败 → importance 削弱。
6
+ *
7
+ * 触发场景:
8
+ * - 工具调用基于该 engram 后出错
9
+ * - LLM 引用后被指正
10
+ * - engram 内容与实际情况冲突
11
+ *
12
+ * 实现:
13
+ * - failedUses += 1
14
+ * - retrievalCount += 1
15
+ * - importance -= ltdPenalty × escalationFactor
16
+ * · escalationFactor:失败累积 ≥ failureThreshold 后按 failureEscalation 倍增
17
+ *
18
+ * 触发降级条件(外层调用方判断):
19
+ * - failedUses >= 阈值(如 3)→ 自动 archive
20
+ * - failedUses >= 高阈值(如 5)→ 自动 forget
21
+ *
22
+ * @module @co-engram/core/reinforcement
23
+ */
24
+ import { DEFAULT_CONFIG } from "./config.js";
25
+ /** 默认降级阈值(失败次数达到即触发) */
26
+ export const DEFAULT_ARCHIVE_THRESHOLD = 3;
27
+ export const DEFAULT_FORGET_THRESHOLD = 5;
28
+ /**
29
+ * 记录一次失败使用(LTD 削弱)
30
+ *
31
+ * importance 削弱规则:
32
+ * - failedUses < failureThreshold:penalty = ltdPenalty
33
+ * - failedUses >= failureThreshold:penalty = ltdPenalty × failureEscalation
34
+ *
35
+ * @param repo - 仓库
36
+ * @param id - 目标 engram id
37
+ * @param config - 配置(可选)
38
+ * @param archiveThreshold - 触发 archive 的 failedUses 阈值(默认 3)
39
+ * @param forgetThreshold - 触发 forget 的 failedUses 阈值(默认 5)
40
+ * @param nowIso - 当前时间
41
+ */
42
+ export function recordRetrievalFailure(repo, id, config = DEFAULT_CONFIG, archiveThreshold = DEFAULT_ARCHIVE_THRESHOLD, forgetThreshold = DEFAULT_FORGET_THRESHOLD, nowIso = new Date().toISOString()) {
43
+ if (!repo.exists(id)) {
44
+ throw new Error(`Engram not found: ${id}`);
45
+ }
46
+ if (archiveThreshold < 1 || forgetThreshold < archiveThreshold) {
47
+ throw new Error(`thresholds invalid: archive=${archiveThreshold}, forget=${forgetThreshold}`);
48
+ }
49
+ const before = repo.readEngram(id);
50
+ const newFailedUses = before.failedUses + 1;
51
+ const isEscalated = newFailedUses >= config.failureThreshold;
52
+ const penalty = isEscalated
53
+ ? config.ltdPenalty * config.failureEscalation
54
+ : config.ltdPenalty;
55
+ repo.bumpRetrievalStats(id, {
56
+ retrievedDelta: 1,
57
+ failedDelta: 1,
58
+ importanceDelta: -penalty,
59
+ lastRetrievedAt: nowIso,
60
+ });
61
+ const updated = repo.readEngram(id);
62
+ return {
63
+ id,
64
+ importanceDelta: -penalty,
65
+ importance: updated.importance,
66
+ failedUses: updated.failedUses,
67
+ retrievalCount: updated.retrievalCount,
68
+ shouldArchive: updated.failedUses >= archiveThreshold,
69
+ shouldForget: updated.failedUses >= forgetThreshold,
70
+ };
71
+ }
72
+ /**
73
+ * 计算失败 N 次后的预期 importance(不写盘)
74
+ */
75
+ export function projectImportanceAfterFailures(engram, times, config = DEFAULT_CONFIG) {
76
+ let importance = engram.importance;
77
+ let failedUses = engram.failedUses;
78
+ for (let i = 0; i < times; i++) {
79
+ failedUses += 1;
80
+ const isEscalated = failedUses >= config.failureThreshold;
81
+ const penalty = isEscalated
82
+ ? config.ltdPenalty * config.failureEscalation
83
+ : config.ltdPenalty;
84
+ importance -= penalty;
85
+ if (importance <= 0)
86
+ return 0;
87
+ }
88
+ return Math.max(0, importance);
89
+ }
90
+ //# sourceMappingURL=ltd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ltd.js","sourceRoot":"","sources":["../../src/reinforcement/ltd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,EAAE,cAAc,EAA4B,MAAM,aAAa,CAAC;AAavE,wBAAwB;AACxB,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAsB,EACtB,EAAU,EACV,SAA8B,cAAc,EAC5C,mBAA2B,yBAAyB,EACpD,kBAA0B,wBAAwB,EAClD,SAAiB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IAEzC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,gBAAgB,GAAG,CAAC,IAAI,eAAe,GAAG,gBAAgB,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CACb,+BAA+B,gBAAgB,YAAY,eAAe,EAAE,CAC7E,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,aAAa,IAAI,MAAM,CAAC,gBAAgB,CAAC;IAC7D,MAAM,OAAO,GAAG,WAAW;QACzB,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,iBAAiB;QAC9C,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;IAEtB,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE;QAC1B,cAAc,EAAE,CAAC;QACjB,WAAW,EAAE,CAAC;QACd,eAAe,EAAE,CAAC,OAAO;QACzB,eAAe,EAAE,MAAM;KACxB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACpC,OAAO;QACL,EAAE;QACF,eAAe,EAAE,CAAC,OAAO;QACzB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,aAAa,EAAE,OAAO,CAAC,UAAU,IAAI,gBAAgB;QACrD,YAAY,EAAE,OAAO,CAAC,UAAU,IAAI,eAAe;KACpD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAC5C,MAAc,EACd,KAAa,EACb,SAA8B,cAAc;IAE5C,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACnC,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,UAAU,IAAI,CAAC,CAAC;QAChB,MAAM,WAAW,GAAG,UAAU,IAAI,MAAM,CAAC,gBAAgB,CAAC;QAC1D,MAAM,OAAO,GAAG,WAAW;YACzB,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,iBAAiB;YAC9C,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;QACtB,UAAU,IAAI,OAAO,CAAC;QACtB,IAAI,UAAU,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * LTP(Long-Term Potentiation)- 有效检索强化
3
+ *
4
+ * 神经科学依据:海马 LTP,重复激活的突触连接增强。
5
+ * 业务含义:engram 被实际使用并证明有效 → importance 提升。
6
+ *
7
+ * 触发场景:
8
+ * - 工具调用结果被用户采纳
9
+ * - LLM 引用后给出正面反馈
10
+ * - 同样的 engram 被多次有效检索
11
+ *
12
+ * 实现:
13
+ * - effectiveRetrievals += 1
14
+ * - retrievalCount += 1
15
+ * - reinforcementScore += effectiveness
16
+ * - importance += effectiveness × ltpGain(clamp [0,1])
17
+ * - lastEffectiveAt = now
18
+ *
19
+ * @module @co-engram/core/reinforcement
20
+ */
21
+ import type { EngramRepository } from "../storage/repository.js";
22
+ import type { Engram } from "../types/engram.js";
23
+ import { type ReinforcementConfig } from "./config.js";
24
+ export interface LtpResult {
25
+ readonly id: string;
26
+ readonly importanceDelta: number;
27
+ readonly importance: number;
28
+ readonly retrievalCount: number;
29
+ readonly effectiveRetrievals: number;
30
+ readonly reinforcementScore: number;
31
+ readonly lastEffectiveAt: string;
32
+ }
33
+ /**
34
+ * 记录一次有效检索(LTP 强化)
35
+ *
36
+ * 注意:本函数只更新统计 + importance,
37
+ * Hebbian 邻居强化请用 reinforceRelated()(related.ts)。
38
+ *
39
+ * @param repo - 仓库
40
+ * @param id - 目标 engram id
41
+ * @param effectiveness - 有效性 [0,1],1=完全有效
42
+ * @param config - 配置(可选,默认 DEFAULT_CONFIG)
43
+ * @param nowIso - 当前时间(测试用,默认 new Date())
44
+ */
45
+ export declare function recordRetrievalSuccess(repo: EngramRepository, id: string, effectiveness: number, config?: ReinforcementConfig, nowIso?: string): LtpResult;
46
+ /**
47
+ * 强化 engram(不更新 retrieval 统计,只提升 importance)
48
+ *
49
+ * 用于 Hebbian 间接强化(邻居得到增益时),
50
+ * 或外部队列触发的批量强化(如 Dreaming 周期)。
51
+ */
52
+ export declare function reinforceEngram(repo: EngramRepository, id: string, amount: number, nowIso?: string): {
53
+ id: string;
54
+ importanceDelta: number;
55
+ importance: number;
56
+ };
57
+ /**
58
+ * 计算强化 N 次后的预期 importance(不写盘)
59
+ *
60
+ * 用于规划/模拟:例如想知道"再强化 5 次 importance 会到多少"。
61
+ */
62
+ export declare function projectImportance(engram: Engram, times: number, effectivenessPerUse?: number, config?: ReinforcementConfig): number;
63
+ //# sourceMappingURL=ltp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ltp.d.ts","sourceRoot":"","sources":["../../src/reinforcement/ltp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,gBAAgB,EACtB,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,MAAM,EACrB,MAAM,GAAE,mBAAoC,EAC5C,MAAM,GAAE,MAAiC,GACxC,SAAS,CA0BX;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,gBAAgB,EACtB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,MAAiC,GACxC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAiB7D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,mBAAmB,SAAI,EACvB,MAAM,GAAE,mBAAoC,GAC3C,MAAM,CAOR"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * LTP(Long-Term Potentiation)- 有效检索强化
3
+ *
4
+ * 神经科学依据:海马 LTP,重复激活的突触连接增强。
5
+ * 业务含义:engram 被实际使用并证明有效 → importance 提升。
6
+ *
7
+ * 触发场景:
8
+ * - 工具调用结果被用户采纳
9
+ * - LLM 引用后给出正面反馈
10
+ * - 同样的 engram 被多次有效检索
11
+ *
12
+ * 实现:
13
+ * - effectiveRetrievals += 1
14
+ * - retrievalCount += 1
15
+ * - reinforcementScore += effectiveness
16
+ * - importance += effectiveness × ltpGain(clamp [0,1])
17
+ * - lastEffectiveAt = now
18
+ *
19
+ * @module @co-engram/core/reinforcement
20
+ */
21
+ import { DEFAULT_CONFIG } from "./config.js";
22
+ /**
23
+ * 记录一次有效检索(LTP 强化)
24
+ *
25
+ * 注意:本函数只更新统计 + importance,
26
+ * Hebbian 邻居强化请用 reinforceRelated()(related.ts)。
27
+ *
28
+ * @param repo - 仓库
29
+ * @param id - 目标 engram id
30
+ * @param effectiveness - 有效性 [0,1],1=完全有效
31
+ * @param config - 配置(可选,默认 DEFAULT_CONFIG)
32
+ * @param nowIso - 当前时间(测试用,默认 new Date())
33
+ */
34
+ export function recordRetrievalSuccess(repo, id, effectiveness, config = DEFAULT_CONFIG, nowIso = new Date().toISOString()) {
35
+ if (effectiveness < 0 || effectiveness > 1) {
36
+ throw new Error(`effectiveness must be in [0,1], got ${effectiveness}`);
37
+ }
38
+ if (!repo.exists(id)) {
39
+ throw new Error(`Engram not found: ${id}`);
40
+ }
41
+ const importanceDelta = effectiveness * config.ltpGain;
42
+ repo.bumpRetrievalStats(id, {
43
+ retrievedDelta: 1,
44
+ effectiveDelta: 1,
45
+ reinforcementDelta: effectiveness,
46
+ importanceDelta,
47
+ lastRetrievedAt: nowIso,
48
+ lastEffectiveAt: nowIso,
49
+ });
50
+ const updated = repo.readEngram(id);
51
+ return {
52
+ id,
53
+ importanceDelta,
54
+ importance: updated.importance,
55
+ retrievalCount: updated.retrievalCount,
56
+ effectiveRetrievals: updated.effectiveRetrievals,
57
+ reinforcementScore: updated.reinforcementScore,
58
+ lastEffectiveAt: updated.lastEffectiveAt ?? nowIso,
59
+ };
60
+ }
61
+ /**
62
+ * 强化 engram(不更新 retrieval 统计,只提升 importance)
63
+ *
64
+ * 用于 Hebbian 间接强化(邻居得到增益时),
65
+ * 或外部队列触发的批量强化(如 Dreaming 周期)。
66
+ */
67
+ export function reinforceEngram(repo, id, amount, nowIso = new Date().toISOString()) {
68
+ if (!repo.exists(id)) {
69
+ throw new Error(`Engram not found: ${id}`);
70
+ }
71
+ if (amount < 0) {
72
+ throw new Error(`amount must be >= 0, got ${amount}`);
73
+ }
74
+ repo.bumpRetrievalStats(id, {
75
+ importanceDelta: amount,
76
+ lastEffectiveAt: nowIso,
77
+ });
78
+ const updated = repo.readEngram(id);
79
+ return {
80
+ id,
81
+ importanceDelta: amount,
82
+ importance: updated.importance,
83
+ };
84
+ }
85
+ /**
86
+ * 计算强化 N 次后的预期 importance(不写盘)
87
+ *
88
+ * 用于规划/模拟:例如想知道"再强化 5 次 importance 会到多少"。
89
+ */
90
+ export function projectImportance(engram, times, effectivenessPerUse = 1, config = DEFAULT_CONFIG) {
91
+ let importance = engram.importance;
92
+ for (let i = 0; i < times; i++) {
93
+ importance += effectivenessPerUse * config.ltpGain;
94
+ if (importance >= 1)
95
+ return 1;
96
+ }
97
+ return Math.min(1, importance);
98
+ }
99
+ //# sourceMappingURL=ltp.js.map