@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 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/perspectives/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Perspectives 模块 barrel(P3 4.4)
3
+ *
4
+ * @module @co-engram/core/perspectives
5
+ */
6
+ export * from "./multi-view.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/perspectives/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * 多视角保留(spec §5.3 机制 3,P3 4.4)
3
+ *
4
+ * 抗认知失调:矛盾 engram 并存且都可检索,不强制消除矛盾。
5
+ *
6
+ * 设计原则:
7
+ * - 检索时主动展示 contradicts 关系(双方都被返回)
8
+ * - 不主动排除任一方(避免单视角确认偏误)
9
+ * - 标注 resolutionState(pending/escalated/contested/...)
10
+ * - perspective 字段记录 engram 所属视角("team-a"、"expert-yang")
11
+ *
12
+ * @module @co-engram/core/perspectives
13
+ */
14
+ import type { EngramRepository } from "../storage/repository.js";
15
+ import type { EngramKind, EngramId } from "../types/engram.js";
16
+ import type { SynapseResolutionState } from "../types/synapse.js";
17
+ /** 单条 contradicts 视图 */
18
+ export interface ContradictingView {
19
+ readonly engramId: EngramId;
20
+ readonly title: string;
21
+ readonly kind: EngramKind;
22
+ readonly perspective?: string;
23
+ /** outgoing = center 主动反驳 other;incoming = other 反驳 center */
24
+ readonly direction: "outgoing" | "incoming";
25
+ readonly resolutionState?: SynapseResolutionState;
26
+ readonly synapseId: string;
27
+ }
28
+ /** 单个 engram 的多视角包 */
29
+ export interface MultiViewBundle {
30
+ readonly centerId: EngramId;
31
+ readonly contradictions: readonly ContradictingView[];
32
+ }
33
+ /** 检索结果 + 附加视图 */
34
+ export interface EnrichedResult {
35
+ readonly engramId: EngramId;
36
+ readonly contradictsViews: readonly ContradictingView[];
37
+ }
38
+ /** contradiction cluster(视角群) */
39
+ export interface ContradictionCluster {
40
+ readonly clusterId: string;
41
+ readonly memberIds: readonly EngramId[];
42
+ }
43
+ /**
44
+ * 收集单个 engram 的所有 contradicts 视图(双向)
45
+ *
46
+ * outgoing: center 的 synapses.outgoing 中 kind=contradicts
47
+ * incoming: 其他 engram 的 outgoing 指向 center 且 kind=contradicts
48
+ */
49
+ export declare function gatherContradictingViews(repo: EngramRepository, engramId: EngramId): MultiViewBundle;
50
+ /**
51
+ * 检索结果后处理:对每个结果附加 contradicts 视图
52
+ *
53
+ * 关键设计:本函数**不会从结果中移除任何 engram**,只附加 contradicts 元信息。
54
+ * 即使 other 的 resolutionState=resolved 或 refuted,也仍然返回(保留审计痕迹)。
55
+ *
56
+ * @param resultIds 检索返回的 engram ID 列表
57
+ * @param options.maxViewsPerResult 每个结果最多附加多少个视图(默认 5)
58
+ */
59
+ export declare function enrichWithContradictingViews(repo: EngramRepository, resultIds: readonly EngramId[], options?: {
60
+ readonly maxViewsPerResult?: number;
61
+ }): EnrichedResult[];
62
+ /**
63
+ * 找出整个仓库的 contradiction clusters(视角群)
64
+ *
65
+ * 算法:把 contradicts synapse 视为无向边,做 Union-Find 找连通分量。
66
+ * 每个 cluster 是一组互相矛盾的 engram(视角群)。
67
+ */
68
+ export declare function findContradictionClusters(repo: EngramRepository): ContradictionCluster[];
69
+ /**
70
+ * 统计:仓库中 multi-view 相关指标
71
+ */
72
+ export interface MultiViewStats {
73
+ readonly totalContradictsEdges: number;
74
+ readonly activeContradictions: number;
75
+ readonly resolvedContradictions: number;
76
+ readonly clusters: number;
77
+ readonly largestClusterSize: number;
78
+ readonly distinctPerspectives: number;
79
+ }
80
+ export declare function computeMultiViewStats(repo: EngramRepository): MultiViewStats;
81
+ //# sourceMappingURL=multi-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-view.d.ts","sourceRoot":"","sources":["../../src/perspectives/multi-view.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,wBAAwB;AACxB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,UAAU,GAAG,UAAU,CAAC;IAC5C,QAAQ,CAAC,eAAe,CAAC,EAAE,sBAAsB,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,sBAAsB;AACtB,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACvD;AAED,kBAAkB;AAClB,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACzD;AAED,iCAAiC;AACjC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;CACzC;AAID;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,gBAAgB,EACtB,QAAQ,EAAE,QAAQ,GACjB,eAAe,CA+DjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,SAAS,QAAQ,EAAE,EAC9B,OAAO,GAAE;IACP,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAChC,GACL,cAAc,EAAE,CAalB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,gBAAgB,GACrB,oBAAoB,EAAE,CAyExB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,GAAG,cAAc,CAiC5E"}
@@ -0,0 +1,221 @@
1
+ /**
2
+ * 多视角保留(spec §5.3 机制 3,P3 4.4)
3
+ *
4
+ * 抗认知失调:矛盾 engram 并存且都可检索,不强制消除矛盾。
5
+ *
6
+ * 设计原则:
7
+ * - 检索时主动展示 contradicts 关系(双方都被返回)
8
+ * - 不主动排除任一方(避免单视角确认偏误)
9
+ * - 标注 resolutionState(pending/escalated/contested/...)
10
+ * - perspective 字段记录 engram 所属视角("team-a"、"expert-yang")
11
+ *
12
+ * @module @co-engram/core/perspectives
13
+ */
14
+ const DEFAULT_MAX_VIEWS_PER_RESULT = 5;
15
+ /**
16
+ * 收集单个 engram 的所有 contradicts 视图(双向)
17
+ *
18
+ * outgoing: center 的 synapses.outgoing 中 kind=contradicts
19
+ * incoming: 其他 engram 的 outgoing 指向 center 且 kind=contradicts
20
+ */
21
+ export function gatherContradictingViews(repo, engramId) {
22
+ if (!repo.exists(engramId)) {
23
+ throw new Error(`Engram not found: ${engramId}`);
24
+ }
25
+ const views = [];
26
+ const seen = new Set();
27
+ // === outgoing:center 反驳别人 ===
28
+ const outgoing = repo.readSynapses(engramId).outgoing;
29
+ for (const syn of outgoing) {
30
+ if (syn.kind !== "contradicts")
31
+ continue;
32
+ if (!repo.exists(syn.to))
33
+ continue; // 跳过 dangling
34
+ const other = repo.readEngram(syn.to);
35
+ const key = `out:${syn.to}`;
36
+ if (seen.has(key))
37
+ continue;
38
+ seen.add(key);
39
+ views.push({
40
+ engramId: other.id,
41
+ title: other.title,
42
+ kind: other.kind,
43
+ perspective: other.perspective,
44
+ direction: "outgoing",
45
+ resolutionState: syn.resolutionState,
46
+ synapseId: syn.id,
47
+ });
48
+ }
49
+ // === incoming:别人反驳 center ===
50
+ for (const entry of repo.listEngrams()) {
51
+ if (entry.id === engramId)
52
+ continue;
53
+ const file = repo.readSynapses(entry.id);
54
+ for (const syn of file.outgoing) {
55
+ if (syn.kind !== "contradicts")
56
+ continue;
57
+ if (syn.to !== engramId)
58
+ continue;
59
+ const other = repo.readEngram(entry.id);
60
+ const key = `in:${entry.id}`;
61
+ if (seen.has(key))
62
+ continue;
63
+ seen.add(key);
64
+ views.push({
65
+ engramId: other.id,
66
+ title: other.title,
67
+ kind: other.kind,
68
+ perspective: other.perspective,
69
+ direction: "incoming",
70
+ resolutionState: syn.resolutionState,
71
+ synapseId: syn.id,
72
+ });
73
+ }
74
+ }
75
+ // 排序:incoming 优先(外部挑战更值得关注),然后按 engramId 字典序
76
+ views.sort((a, b) => {
77
+ if (a.direction !== b.direction) {
78
+ return a.direction === "incoming" ? -1 : 1;
79
+ }
80
+ return a.engramId < b.engramId ? -1 : 1;
81
+ });
82
+ return {
83
+ centerId: engramId,
84
+ contradictions: views,
85
+ };
86
+ }
87
+ /**
88
+ * 检索结果后处理:对每个结果附加 contradicts 视图
89
+ *
90
+ * 关键设计:本函数**不会从结果中移除任何 engram**,只附加 contradicts 元信息。
91
+ * 即使 other 的 resolutionState=resolved 或 refuted,也仍然返回(保留审计痕迹)。
92
+ *
93
+ * @param resultIds 检索返回的 engram ID 列表
94
+ * @param options.maxViewsPerResult 每个结果最多附加多少个视图(默认 5)
95
+ */
96
+ export function enrichWithContradictingViews(repo, resultIds, options = {}) {
97
+ const maxViews = options.maxViewsPerResult ?? DEFAULT_MAX_VIEWS_PER_RESULT;
98
+ return resultIds.map((id) => {
99
+ if (!repo.exists(id)) {
100
+ return { engramId: id, contradictsViews: [] };
101
+ }
102
+ const bundle = gatherContradictingViews(repo, id);
103
+ return {
104
+ engramId: id,
105
+ contradictsViews: bundle.contradictions.slice(0, maxViews),
106
+ };
107
+ });
108
+ }
109
+ /**
110
+ * 找出整个仓库的 contradiction clusters(视角群)
111
+ *
112
+ * 算法:把 contradicts synapse 视为无向边,做 Union-Find 找连通分量。
113
+ * 每个 cluster 是一组互相矛盾的 engram(视角群)。
114
+ */
115
+ export function findContradictionClusters(repo) {
116
+ // 收集所有 contradicts 边
117
+ const edges = [];
118
+ const allEngrams = new Set();
119
+ for (const entry of repo.listEngrams()) {
120
+ allEngrams.add(entry.id);
121
+ const file = repo.readSynapses(entry.id);
122
+ for (const syn of file.outgoing) {
123
+ if (syn.kind !== "contradicts")
124
+ continue;
125
+ if (!repo.exists(syn.to))
126
+ continue;
127
+ edges.push({ a: entry.id, b: syn.to });
128
+ allEngrams.add(syn.to);
129
+ }
130
+ }
131
+ // Union-Find
132
+ const parent = new Map();
133
+ function find(x) {
134
+ if (!parent.has(x))
135
+ parent.set(x, x);
136
+ let root = x;
137
+ while (parent.get(root) !== root) {
138
+ root = parent.get(root);
139
+ }
140
+ // path compression
141
+ let cur = x;
142
+ while (parent.get(cur) !== root) {
143
+ const next = parent.get(cur);
144
+ parent.set(cur, root);
145
+ cur = next;
146
+ }
147
+ return root;
148
+ }
149
+ function union(a, b) {
150
+ const ra = find(a);
151
+ const rb = find(b);
152
+ if (ra !== rb) {
153
+ parent.set(ra, rb);
154
+ }
155
+ }
156
+ for (const e of edges) {
157
+ union(e.a, e.b);
158
+ }
159
+ // 收集每个 root 下的成员
160
+ const clusters = new Map();
161
+ for (const id of allEngrams) {
162
+ const root = find(id);
163
+ const arr = clusters.get(root) ?? [];
164
+ arr.push(id);
165
+ clusters.set(root, arr);
166
+ }
167
+ // 过滤:只保留 ≥ 2 个成员的 cluster(孤立节点不算 cluster)
168
+ const result = [];
169
+ for (const [, members] of clusters) {
170
+ if (members.length < 2)
171
+ continue;
172
+ const sorted = [...members].sort();
173
+ result.push({
174
+ clusterId: `cluster-${sorted[0].replace(/\//g, "_")}`,
175
+ memberIds: sorted,
176
+ });
177
+ }
178
+ // 排序:成员数多的优先;同 size 按 clusterId 字典序
179
+ result.sort((a, b) => {
180
+ if (b.memberIds.length !== a.memberIds.length) {
181
+ return b.memberIds.length - a.memberIds.length;
182
+ }
183
+ return a.clusterId < b.clusterId ? -1 : 1;
184
+ });
185
+ return result;
186
+ }
187
+ export function computeMultiViewStats(repo) {
188
+ let totalEdges = 0;
189
+ let active = 0;
190
+ let resolved = 0;
191
+ const perspectives = new Set();
192
+ for (const entry of repo.listEngrams()) {
193
+ const engram = repo.readEngram(entry.id);
194
+ if (engram.perspective)
195
+ perspectives.add(engram.perspective);
196
+ const file = repo.readSynapses(entry.id);
197
+ for (const syn of file.outgoing) {
198
+ if (syn.kind !== "contradicts")
199
+ continue;
200
+ totalEdges += 1;
201
+ const status = syn.resolutionState?.status;
202
+ if (status === "resolved" || status === "auto_resolved") {
203
+ resolved += 1;
204
+ }
205
+ else {
206
+ active += 1;
207
+ }
208
+ }
209
+ }
210
+ const clusters = findContradictionClusters(repo);
211
+ const largest = clusters.reduce((m, c) => Math.max(m, c.memberIds.length), 0);
212
+ return {
213
+ totalContradictsEdges: totalEdges,
214
+ activeContradictions: active,
215
+ resolvedContradictions: resolved,
216
+ clusters: clusters.length,
217
+ largestClusterSize: largest,
218
+ distinctPerspectives: perspectives.size,
219
+ };
220
+ }
221
+ //# sourceMappingURL=multi-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-view.js","sourceRoot":"","sources":["../../src/perspectives/multi-view.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Co-Engram memory prompt builder(host-agnostic)
3
+ *
4
+ * 生成注入到 LLM 系统提示的 "## Memory Recall" section。
5
+ *
6
+ * 三层设计(可独立启用/禁用):
7
+ *
8
+ * 1. 基础引导(常驻)——何时调用 memory_search / 何时跳过 / 如何解读结果
9
+ * 2. Proposal 提醒(条件性)——count > 0 时注入
10
+ * 3. 自进化信号(条件性)——基于 prompt-signals.json:
11
+ * - topTags(高频 engram 领域)
12
+ * - lowConfidenceTopics(RPE false negative 检测)
13
+ *
14
+ * 所有文字走 i18n(en/zh)。
15
+ *
16
+ * 宿主集成:
17
+ * - OpenClaw:`registerMemoryCapability.promptBuilder`
18
+ * - Claude Code MCP:`serverInfo.instructions`(静态)+ hook(动态)
19
+ *
20
+ * @module @co-engram/core/prompt-builder
21
+ */
22
+ import type { Language } from "../i18n/index.js";
23
+ import type { BuildPromptInput, PromptBuilder, PromptSignals } from "./types.js";
24
+ export type { BuildPromptInput, PromptBuilder, PromptSignals };
25
+ /**
26
+ * 主构建函数:组装所有部分
27
+ *
28
+ * 返回 string[](宿主期望的 prompt lines 格式)。
29
+ * 每个 element 是一段,宿主用换行连接。
30
+ *
31
+ * 工具未注册时返回空(没有任何 memory 工具就不需要 memory section)。
32
+ */
33
+ export declare function buildCoEngramMemoryPrompt(input: BuildPromptInput): readonly string[];
34
+ /**
35
+ * 工厂:创建闭包绑定的 prompt builder
36
+ *
37
+ * 额外参数通过闭包注入:
38
+ * - language:固定(adapter 注册时确定)
39
+ * - signals:固定 snapshot(adapter 注册时读取,下次重启刷新)
40
+ * - proposalCount:动态(每次调用时通过 provider 获取)
41
+ */
42
+ export declare function createPromptBuilder(options: {
43
+ readonly language?: Language;
44
+ readonly signals?: PromptSignals;
45
+ readonly proposalCountProvider?: () => number;
46
+ }): PromptBuilder;
47
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/prompt-builder/builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAqG/D;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,gBAAgB,GACtB,SAAS,MAAM,EAAE,CAgBnB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,MAAM,CAAC;CAC/C,GAAG,aAAa,CAQhB"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Co-Engram memory prompt builder(host-agnostic)
3
+ *
4
+ * 生成注入到 LLM 系统提示的 "## Memory Recall" section。
5
+ *
6
+ * 三层设计(可独立启用/禁用):
7
+ *
8
+ * 1. 基础引导(常驻)——何时调用 memory_search / 何时跳过 / 如何解读结果
9
+ * 2. Proposal 提醒(条件性)——count > 0 时注入
10
+ * 3. 自进化信号(条件性)——基于 prompt-signals.json:
11
+ * - topTags(高频 engram 领域)
12
+ * - lowConfidenceTopics(RPE false negative 检测)
13
+ *
14
+ * 所有文字走 i18n(en/zh)。
15
+ *
16
+ * 宿主集成:
17
+ * - OpenClaw:`registerMemoryCapability.promptBuilder`
18
+ * - Claude Code MCP:`serverInfo.instructions`(静态)+ hook(动态)
19
+ *
20
+ * @module @co-engram/core/prompt-builder
21
+ */
22
+ import { DEFAULT_LANGUAGE, translatePrompt } from "../i18n/index.js";
23
+ /**
24
+ * 构建基础 memory section(常驻部分)
25
+ *
26
+ * 包含:
27
+ * - section header
28
+ * - 何时调用 memory_search(语义检索场景)
29
+ * - 何时调用 engram_list(列举场景,仅当 engram_list 可用时注入)
30
+ * - 何时跳过(负向引导)
31
+ * - 如何解读结果(truthScore + 低分处理)
32
+ * - 创建/更新引导(条件性)
33
+ * - 强化闭环引导(条件性,仅当 engram_reinforce 可用时注入)
34
+ */
35
+ function buildBaseSection(language, availableTools) {
36
+ const lines = [
37
+ translatePrompt(language, "prompt.memory.section_header"),
38
+ translatePrompt(language, "prompt.memory.when_to_search"),
39
+ ];
40
+ // 仅当 engram_list 在可用工具集时才注入列举场景引导
41
+ // (避免对未注册 engram_list 的 host adapter 误导 agent)
42
+ if (availableTools.has("engram_list")) {
43
+ lines.push(translatePrompt(language, "prompt.memory.when_to_list"));
44
+ }
45
+ lines.push(translatePrompt(language, "prompt.memory.when_not_to_search"), translatePrompt(language, "prompt.memory.reading_results"));
46
+ // 写入引导:仅当 engram_create 或 engram_update 可用时注入
47
+ // 避免 agent 在 createdBy 填通用词(AIOS/openclaw/assistant)
48
+ if (availableTools.has("engram_create") ||
49
+ availableTools.has("engram_update")) {
50
+ lines.push(translatePrompt(language, "prompt.memory.writing"));
51
+ }
52
+ // 强化闭环引导:仅当 engram_reinforce 可用时注入
53
+ // 引导 agent 在用户明确确认后主动调 engram_reinforce(避免 importance 评分污染)
54
+ if (availableTools.has("engram_reinforce")) {
55
+ lines.push(translatePrompt(language, "prompt.memory.when_to_reinforce"));
56
+ }
57
+ return lines;
58
+ }
59
+ /**
60
+ * 构建 proposal 提醒(条件性)
61
+ *
62
+ * 仅当 count > 0 时返回非空数组。
63
+ */
64
+ function buildProposalSection(count, language) {
65
+ if (count <= 0)
66
+ return [];
67
+ return [
68
+ translatePrompt(language, "prompt.memory.proposal_reminder", { count }),
69
+ ];
70
+ }
71
+ /**
72
+ * 构建自进化 signals 提示(条件性)
73
+ *
74
+ * 仅当 signals 存在且对应字段非空时注入。
75
+ */
76
+ function buildSignalsSection(signals, language) {
77
+ if (!signals)
78
+ return [];
79
+ const lines = [];
80
+ if (signals.topTags.length > 0) {
81
+ lines.push(translatePrompt(language, "prompt.memory.frequent_topics", {
82
+ tags: signals.topTags.join(", "),
83
+ }));
84
+ }
85
+ if (signals.missedTopics && signals.missedTopics.length > 0) {
86
+ lines.push(translatePrompt(language, "prompt.memory.missed_topics", {
87
+ topics: signals.missedTopics.join(", "),
88
+ }));
89
+ }
90
+ if (signals.lowConfidenceTopics && signals.lowConfidenceTopics.length > 0) {
91
+ lines.push(translatePrompt(language, "prompt.memory.low_confidence_topics", {
92
+ topics: signals.lowConfidenceTopics.join(", "),
93
+ }));
94
+ }
95
+ return lines;
96
+ }
97
+ /**
98
+ * 主构建函数:组装所有部分
99
+ *
100
+ * 返回 string[](宿主期望的 prompt lines 格式)。
101
+ * 每个 element 是一段,宿主用换行连接。
102
+ *
103
+ * 工具未注册时返回空(没有任何 memory 工具就不需要 memory section)。
104
+ */
105
+ export function buildCoEngramMemoryPrompt(input) {
106
+ const language = input.language ?? DEFAULT_LANGUAGE;
107
+ const hasSearch = input.availableTools.has("memory_search");
108
+ const hasGet = input.availableTools.has("memory_get");
109
+ const hasEngramSearch = input.availableTools.has("engram_search");
110
+ const hasEngramGet = input.availableTools.has("engram_get");
111
+ if (!hasSearch && !hasGet && !hasEngramSearch && !hasEngramGet)
112
+ return [];
113
+ const sections = [
114
+ buildBaseSection(language, input.availableTools),
115
+ buildSignalsSection(input.signals, language),
116
+ buildProposalSection(input.proposalCount ?? 0, language),
117
+ ];
118
+ return sections.flat();
119
+ }
120
+ /**
121
+ * 工厂:创建闭包绑定的 prompt builder
122
+ *
123
+ * 额外参数通过闭包注入:
124
+ * - language:固定(adapter 注册时确定)
125
+ * - signals:固定 snapshot(adapter 注册时读取,下次重启刷新)
126
+ * - proposalCount:动态(每次调用时通过 provider 获取)
127
+ */
128
+ export function createPromptBuilder(options) {
129
+ return (input) => buildCoEngramMemoryPrompt({
130
+ ...input,
131
+ language: options.language,
132
+ signals: options.signals,
133
+ proposalCount: options.proposalCountProvider?.() ?? 0,
134
+ });
135
+ }
136
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/prompt-builder/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Prompt builder barrel
3
+ *
4
+ * @module @co-engram/core/prompt-builder
5
+ */
6
+ export * from "./types.js";
7
+ export * from "./builder.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompt-builder/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Prompt builder barrel
3
+ *
4
+ * @module @co-engram/core/prompt-builder
5
+ */
6
+ export * from "./types.js";
7
+ export * from "./builder.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompt-builder/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Prompt builder 类型定义(host-agnostic)
3
+ *
4
+ * 与 OpenClaw / MCP 等具体宿主解耦 — 宿主 adapter 负责把各自的协议参数
5
+ * 适配为 BuildPromptInput,再调用 buildCoEngramMemoryPrompt。
6
+ *
7
+ * @module @co-engram/core/prompt-builder
8
+ */
9
+ import type { Language } from "../i18n/index.js";
10
+ import type { PromptSignalSnapshot } from "../prompt-signals/types.js";
11
+ /**
12
+ * 自进化信号(从 PromptSignalSnapshot 派生)
13
+ *
14
+ * 完整 snapshot 由 maintenance light stage 生成,
15
+ * 缓存在 `<dataRoot>/.co-engram/prompt-signals.json`。
16
+ *
17
+ * promptBuilder 只读取 snapshot 的字符串字段,不关心 stats 元数据。
18
+ */
19
+ export type PromptSignals = PromptSignalSnapshot;
20
+ /**
21
+ * Prompt builder 的完整输入(base + 动态状态)
22
+ *
23
+ * Host-agnostic:不依赖 OpenClaw MemoryPromptBuilderParams 等宿主协议类型。
24
+ * 宿主 adapter 负责在自己的类型和此类型之间转换。
25
+ */
26
+ export interface BuildPromptInput {
27
+ /** 当前会话可用的工具名集合(决定是否注入提示) */
28
+ readonly availableTools: ReadonlySet<string>;
29
+ /** 引用模式(目前实现忽略,预留扩展) */
30
+ readonly citationsMode?: "off" | "compact" | "full";
31
+ /** 自进化 signals;undefined 时跳过动态部分 */
32
+ readonly language?: Language;
33
+ /** 自进化 signals;undefined 时跳过动态部分 */
34
+ readonly signals?: PromptSignals;
35
+ /** 待处理 proposal 数量;0 时不注入 proposal 提醒 */
36
+ readonly proposalCount?: number;
37
+ }
38
+ /**
39
+ * Prompt builder 函数签名
40
+ */
41
+ export type PromptBuilder = (input: BuildPromptInput) => readonly string[];
42
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/prompt-builder/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6BAA6B;IAC7B,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,wBAAwB;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;IACpD,oCAAoC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B,oCAAoC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC,yCAAyC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,gBAAgB,KAAK,SAAS,MAAM,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Prompt builder 类型定义(host-agnostic)
3
+ *
4
+ * 与 OpenClaw / MCP 等具体宿主解耦 — 宿主 adapter 负责把各自的协议参数
5
+ * 适配为 BuildPromptInput,再调用 buildCoEngramMemoryPrompt。
6
+ *
7
+ * @module @co-engram/core/prompt-builder
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/prompt-builder/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Prompt signals 缓存文件读写
3
+ *
4
+ * 路径:`<dataRoot>/.co-engram/prompt-signals.json`
5
+ *
6
+ * 与 team-memory/config.json 同目录,但语义不同:
7
+ * - config.json:用户首次选择(语言/作者),很少变
8
+ * - prompt-signals.json:light stage 周期性生成,频繁变
9
+ *
10
+ * 失败策略:
11
+ * - read: 文件不存在或解析失败 → 返回 undefined(首次启动/损坏降级)
12
+ * - write: 失败抛错(light stage 会捕获并记 log)
13
+ *
14
+ * @module @co-engram/core/prompt-signals
15
+ */
16
+ import type { PromptSignalSnapshot } from "./types.js";
17
+ /**
18
+ * 缓存文件名
19
+ */
20
+ export declare const PROMPT_SIGNALS_FILENAME = "prompt-signals.json";
21
+ /**
22
+ * 读取 prompt signals 缓存
23
+ *
24
+ * @param dataRoot team-memory 根目录
25
+ * @param fsRead 可选的自定义读取函数(测试注入)
26
+ */
27
+ export declare function readPromptSignals(dataRoot: string, fsRead?: (path: string) => Promise<string>): Promise<PromptSignalSnapshot | undefined>;
28
+ /**
29
+ * 写入 prompt signals 缓存
30
+ *
31
+ * @param dataRoot team-memory 根目录
32
+ * @param signals 完整 snapshot
33
+ * @param fsWrite 可选的自定义写入函数(测试注入)
34
+ */
35
+ export declare function writePromptSignals(dataRoot: string, signals: PromptSignalSnapshot, fsWrite?: (path: string, content: string) => Promise<void>): Promise<void>;
36
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/prompt-signals/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAE7D;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GACzC,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAY3C;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,oBAAoB,EAC7B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACzD,OAAO,CAAC,IAAI,CAAC,CAQf"}