@zooique/memora 1.0.1 → 2.0.3

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 (274) hide show
  1. package/README.en.md +272 -0
  2. package/README.md +150 -38
  3. package/dist/agent/agent.d.ts +257 -115
  4. package/dist/agent/agent.d.ts.map +1 -1
  5. package/dist/agent/agent.js +747 -400
  6. package/dist/agent/agent.js.map +1 -1
  7. package/dist/agent/assembler.d.ts +32 -16
  8. package/dist/agent/assembler.d.ts.map +1 -1
  9. package/dist/agent/assembler.js +83 -47
  10. package/dist/agent/assembler.js.map +1 -1
  11. package/dist/agent/builtinToolHandlers.d.ts +27 -2
  12. package/dist/agent/builtinToolHandlers.d.ts.map +1 -1
  13. package/dist/agent/builtinToolHandlers.js +78 -5
  14. package/dist/agent/builtinToolHandlers.js.map +1 -1
  15. package/dist/agent/constants.d.ts +4 -0
  16. package/dist/agent/constants.d.ts.map +1 -1
  17. package/dist/agent/constants.js +4 -0
  18. package/dist/agent/constants.js.map +1 -1
  19. package/dist/agent/contextManager.d.ts +8 -0
  20. package/dist/agent/contextManager.d.ts.map +1 -1
  21. package/dist/agent/contextManager.js +7 -2
  22. package/dist/agent/contextManager.js.map +1 -1
  23. package/dist/agent/guardrail.d.ts +4 -2
  24. package/dist/agent/guardrail.d.ts.map +1 -1
  25. package/dist/agent/guardrail.js +13 -5
  26. package/dist/agent/guardrail.js.map +1 -1
  27. package/dist/agent/loop.d.ts +137 -15
  28. package/dist/agent/loop.d.ts.map +1 -1
  29. package/dist/agent/loop.js +449 -270
  30. package/dist/agent/loop.js.map +1 -1
  31. package/dist/agent/managers/archiveCoordinator.d.ts +126 -22
  32. package/dist/agent/managers/archiveCoordinator.d.ts.map +1 -1
  33. package/dist/agent/managers/archiveCoordinator.js +239 -44
  34. package/dist/agent/managers/archiveCoordinator.js.map +1 -1
  35. package/dist/agent/managers/autoConfigRefiner.d.ts.map +1 -1
  36. package/dist/agent/managers/autoConfigRefiner.js +4 -8
  37. package/dist/agent/managers/autoConfigRefiner.js.map +1 -1
  38. package/dist/agent/managers/chatLockManager.d.ts +116 -0
  39. package/dist/agent/managers/chatLockManager.d.ts.map +1 -0
  40. package/dist/agent/managers/chatLockManager.js +191 -0
  41. package/dist/agent/managers/chatLockManager.js.map +1 -0
  42. package/dist/agent/managers/configManager.d.ts +87 -3
  43. package/dist/agent/managers/configManager.d.ts.map +1 -1
  44. package/dist/agent/managers/configManager.js +139 -2
  45. package/dist/agent/managers/configManager.js.map +1 -1
  46. package/dist/agent/managers/dedupManager.d.ts +169 -0
  47. package/dist/agent/managers/dedupManager.d.ts.map +1 -0
  48. package/dist/agent/managers/dedupManager.js +336 -0
  49. package/dist/agent/managers/dedupManager.js.map +1 -0
  50. package/dist/agent/managers/insightExtractor.d.ts +31 -3
  51. package/dist/agent/managers/insightExtractor.d.ts.map +1 -1
  52. package/dist/agent/managers/insightExtractor.js +130 -59
  53. package/dist/agent/managers/insightExtractor.js.map +1 -1
  54. package/dist/agent/managers/llmJudgeHelper.d.ts +38 -0
  55. package/dist/agent/managers/llmJudgeHelper.d.ts.map +1 -0
  56. package/dist/agent/managers/llmJudgeHelper.js +49 -0
  57. package/dist/agent/managers/llmJudgeHelper.js.map +1 -0
  58. package/dist/agent/managers/memoryAdvisor.d.ts +102 -2
  59. package/dist/agent/managers/memoryAdvisor.d.ts.map +1 -1
  60. package/dist/agent/managers/memoryAdvisor.js +254 -10
  61. package/dist/agent/managers/memoryAdvisor.js.map +1 -1
  62. package/dist/agent/managers/memoryDecayScheduler.d.ts +127 -1
  63. package/dist/agent/managers/memoryDecayScheduler.d.ts.map +1 -1
  64. package/dist/agent/managers/memoryDecayScheduler.js +283 -4
  65. package/dist/agent/managers/memoryDecayScheduler.js.map +1 -1
  66. package/dist/agent/managers/memoryGovernance.d.ts +56 -0
  67. package/dist/agent/managers/memoryGovernance.d.ts.map +1 -0
  68. package/dist/agent/managers/memoryGovernance.js +63 -0
  69. package/dist/agent/managers/memoryGovernance.js.map +1 -0
  70. package/dist/agent/managers/memoryInspector.d.ts +113 -30
  71. package/dist/agent/managers/memoryInspector.d.ts.map +1 -1
  72. package/dist/agent/managers/memoryInspector.js +165 -32
  73. package/dist/agent/managers/memoryInspector.js.map +1 -1
  74. package/dist/agent/managers/relationBuilder.d.ts +4 -4
  75. package/dist/agent/managers/relationBuilder.d.ts.map +1 -1
  76. package/dist/agent/managers/relationBuilder.js +5 -4
  77. package/dist/agent/managers/relationBuilder.js.map +1 -1
  78. package/dist/agent/managers/sessionArchiver.d.ts +12 -1
  79. package/dist/agent/managers/sessionArchiver.d.ts.map +1 -1
  80. package/dist/agent/managers/sessionArchiver.js +87 -30
  81. package/dist/agent/managers/sessionArchiver.js.map +1 -1
  82. package/dist/agent/managers/sessionManager.d.ts.map +1 -1
  83. package/dist/agent/managers/sessionManager.js +9 -17
  84. package/dist/agent/managers/sessionManager.js.map +1 -1
  85. package/dist/agent/managers/streamAccumulator.d.ts +45 -0
  86. package/dist/agent/managers/streamAccumulator.d.ts.map +1 -0
  87. package/dist/agent/managers/streamAccumulator.js +40 -0
  88. package/dist/agent/managers/streamAccumulator.js.map +1 -0
  89. package/dist/agent/managers/textPolishManager.d.ts +62 -0
  90. package/dist/agent/managers/textPolishManager.d.ts.map +1 -0
  91. package/dist/agent/managers/textPolishManager.js +96 -0
  92. package/dist/agent/managers/textPolishManager.js.map +1 -0
  93. package/dist/agent/managers/workProjection.d.ts +16 -1
  94. package/dist/agent/managers/workProjection.d.ts.map +1 -1
  95. package/dist/agent/managers/workProjection.js +48 -24
  96. package/dist/agent/managers/workProjection.js.map +1 -1
  97. package/dist/agent/personaMatcher.d.ts +29 -0
  98. package/dist/agent/personaMatcher.d.ts.map +1 -0
  99. package/dist/agent/personaMatcher.js +60 -0
  100. package/dist/agent/personaMatcher.js.map +1 -0
  101. package/dist/agent/toolExecutor.d.ts +24 -4
  102. package/dist/agent/toolExecutor.d.ts.map +1 -1
  103. package/dist/agent/toolExecutor.js +30 -4
  104. package/dist/agent/toolExecutor.js.map +1 -1
  105. package/dist/agent/tracer.d.ts +31 -0
  106. package/dist/agent/tracer.d.ts.map +1 -1
  107. package/dist/agent/tracer.js +31 -0
  108. package/dist/agent/tracer.js.map +1 -1
  109. package/dist/agent/types.d.ts +133 -0
  110. package/dist/agent/types.d.ts.map +1 -1
  111. package/dist/agent/types.js +38 -0
  112. package/dist/agent/types.js.map +1 -1
  113. package/dist/agent/userFactExtractor.d.ts.map +1 -1
  114. package/dist/agent/userFactExtractor.js +7 -0
  115. package/dist/agent/userFactExtractor.js.map +1 -1
  116. package/dist/config/loader.d.ts +124 -236
  117. package/dist/config/loader.d.ts.map +1 -1
  118. package/dist/config/loader.js +296 -118
  119. package/dist/config/loader.js.map +1 -1
  120. package/dist/eval/evalRunner.d.ts +94 -0
  121. package/dist/eval/evalRunner.d.ts.map +1 -0
  122. package/dist/eval/evalRunner.js +141 -0
  123. package/dist/eval/evalRunner.js.map +1 -0
  124. package/dist/eval/evalTypes.d.ts +21 -0
  125. package/dist/eval/evalTypes.d.ts.map +1 -1
  126. package/dist/eval/evalTypes.js +15 -0
  127. package/dist/eval/evalTypes.js.map +1 -1
  128. package/dist/eval/scenarios.d.ts +33 -0
  129. package/dist/eval/scenarios.d.ts.map +1 -0
  130. package/dist/eval/scenarios.js +109 -0
  131. package/dist/eval/scenarios.js.map +1 -0
  132. package/dist/index.d.ts +45 -6
  133. package/dist/index.d.ts.map +1 -1
  134. package/dist/index.js +45 -5
  135. package/dist/index.js.map +1 -1
  136. package/dist/llm/abortSignal.d.ts +27 -0
  137. package/dist/llm/abortSignal.d.ts.map +1 -0
  138. package/dist/llm/abortSignal.js +44 -0
  139. package/dist/llm/abortSignal.js.map +1 -0
  140. package/dist/llm/embedding.d.ts +13 -12
  141. package/dist/llm/embedding.d.ts.map +1 -1
  142. package/dist/llm/embedding.js +5 -17
  143. package/dist/llm/embedding.js.map +1 -1
  144. package/dist/llm/factory.d.ts +19 -5
  145. package/dist/llm/factory.d.ts.map +1 -1
  146. package/dist/llm/factory.js +19 -37
  147. package/dist/llm/factory.js.map +1 -1
  148. package/dist/llm/openaiCompatible.d.ts.map +1 -1
  149. package/dist/llm/openaiCompatible.js +17 -34
  150. package/dist/llm/openaiCompatible.js.map +1 -1
  151. package/dist/logging/logger.d.ts +3 -1
  152. package/dist/logging/logger.d.ts.map +1 -1
  153. package/dist/logging/logger.js +47 -50
  154. package/dist/logging/logger.js.map +1 -1
  155. package/dist/memory/governance.d.ts +50 -0
  156. package/dist/memory/governance.d.ts.map +1 -0
  157. package/dist/memory/governance.js +70 -0
  158. package/dist/memory/governance.js.map +1 -0
  159. package/dist/memory/hybridMerge.d.ts +0 -4
  160. package/dist/memory/hybridMerge.d.ts.map +1 -1
  161. package/dist/memory/hybridMerge.js +19 -4
  162. package/dist/memory/hybridMerge.js.map +1 -1
  163. package/dist/memory/inMemoryRelationStore.d.ts +7 -0
  164. package/dist/memory/inMemoryRelationStore.d.ts.map +1 -1
  165. package/dist/memory/inMemoryRelationStore.js +15 -0
  166. package/dist/memory/inMemoryRelationStore.js.map +1 -1
  167. package/dist/memory/inMemoryStorage.d.ts +36 -1
  168. package/dist/memory/inMemoryStorage.d.ts.map +1 -1
  169. package/dist/memory/inMemoryStorage.js +70 -19
  170. package/dist/memory/inMemoryStorage.js.map +1 -1
  171. package/dist/memory/loader.d.ts +2 -0
  172. package/dist/memory/loader.d.ts.map +1 -1
  173. package/dist/memory/loader.js +8 -1
  174. package/dist/memory/loader.js.map +1 -1
  175. package/dist/memory/lockManager.d.ts +7 -2
  176. package/dist/memory/lockManager.d.ts.map +1 -1
  177. package/dist/memory/lockManager.js +35 -17
  178. package/dist/memory/lockManager.js.map +1 -1
  179. package/dist/memory/projectManager.d.ts +8 -7
  180. package/dist/memory/projectManager.d.ts.map +1 -1
  181. package/dist/memory/projectManager.js +33 -15
  182. package/dist/memory/projectManager.js.map +1 -1
  183. package/dist/memory/projectRegistry.d.ts +34 -1
  184. package/dist/memory/projectRegistry.d.ts.map +1 -1
  185. package/dist/memory/projectRegistry.js +100 -31
  186. package/dist/memory/projectRegistry.js.map +1 -1
  187. package/dist/memory/recall.d.ts +16 -0
  188. package/dist/memory/recall.d.ts.map +1 -1
  189. package/dist/memory/recall.js +35 -20
  190. package/dist/memory/recall.js.map +1 -1
  191. package/dist/memory/relationStore.d.ts +20 -3
  192. package/dist/memory/relationStore.d.ts.map +1 -1
  193. package/dist/memory/sourceValidation.d.ts +17 -0
  194. package/dist/memory/sourceValidation.d.ts.map +1 -1
  195. package/dist/memory/sourceValidation.js +27 -3
  196. package/dist/memory/sourceValidation.js.map +1 -1
  197. package/dist/memory/storageInterface.d.ts +26 -1
  198. package/dist/memory/storageInterface.d.ts.map +1 -1
  199. package/dist/memory/store.d.ts +22 -1
  200. package/dist/memory/store.d.ts.map +1 -1
  201. package/dist/memory/store.js +58 -20
  202. package/dist/memory/store.js.map +1 -1
  203. package/dist/memory/types.d.ts +44 -31
  204. package/dist/memory/types.d.ts.map +1 -1
  205. package/dist/memory/types.js +63 -24
  206. package/dist/memory/types.js.map +1 -1
  207. package/dist/memory/userProfile.d.ts +32 -8
  208. package/dist/memory/userProfile.d.ts.map +1 -1
  209. package/dist/memory/userProfile.js +105 -44
  210. package/dist/memory/userProfile.js.map +1 -1
  211. package/dist/memory/vectorStore.d.ts +16 -8
  212. package/dist/memory/vectorStore.d.ts.map +1 -1
  213. package/dist/memory/vectorStore.js +49 -22
  214. package/dist/memory/vectorStore.js.map +1 -1
  215. package/dist/persona/personaManager.d.ts +38 -63
  216. package/dist/persona/personaManager.d.ts.map +1 -1
  217. package/dist/persona/personaManager.js +136 -202
  218. package/dist/persona/personaManager.js.map +1 -1
  219. package/dist/skill/skillManager.d.ts +11 -57
  220. package/dist/skill/skillManager.d.ts.map +1 -1
  221. package/dist/skill/skillManager.js +46 -141
  222. package/dist/skill/skillManager.js.map +1 -1
  223. package/dist/skill/types.d.ts +2 -3
  224. package/dist/skill/types.d.ts.map +1 -1
  225. package/dist/utils/array.d.ts +24 -0
  226. package/dist/utils/array.d.ts.map +1 -0
  227. package/dist/utils/array.js +24 -0
  228. package/dist/utils/array.js.map +1 -0
  229. package/dist/utils/configResourceManager.d.ts +111 -0
  230. package/dist/utils/configResourceManager.d.ts.map +1 -0
  231. package/dist/utils/configResourceManager.js +148 -0
  232. package/dist/utils/configResourceManager.js.map +1 -0
  233. package/dist/utils/errors.d.ts +27 -8
  234. package/dist/utils/errors.d.ts.map +1 -1
  235. package/dist/utils/errors.js +31 -9
  236. package/dist/utils/errors.js.map +1 -1
  237. package/dist/utils/eventEmitter.d.ts +88 -4
  238. package/dist/utils/eventEmitter.d.ts.map +1 -1
  239. package/dist/utils/eventEmitter.js +23 -0
  240. package/dist/utils/eventEmitter.js.map +1 -1
  241. package/dist/utils/frontmatter.d.ts.map +1 -1
  242. package/dist/utils/frontmatter.js +4 -2
  243. package/dist/utils/frontmatter.js.map +1 -1
  244. package/dist/utils/math.d.ts +11 -0
  245. package/dist/utils/math.d.ts.map +1 -1
  246. package/dist/utils/math.js +17 -0
  247. package/dist/utils/math.js.map +1 -1
  248. package/dist/utils/objects.d.ts +17 -0
  249. package/dist/utils/objects.d.ts.map +1 -0
  250. package/dist/utils/objects.js +19 -0
  251. package/dist/utils/objects.js.map +1 -0
  252. package/dist/utils/segmenter.d.ts +11 -10
  253. package/dist/utils/segmenter.d.ts.map +1 -1
  254. package/dist/utils/segmenter.js +23 -1
  255. package/dist/utils/segmenter.js.map +1 -1
  256. package/dist/utils/strings.d.ts +22 -1
  257. package/dist/utils/strings.d.ts.map +1 -1
  258. package/dist/utils/strings.js +29 -1
  259. package/dist/utils/strings.js.map +1 -1
  260. package/dist/utils/time.d.ts +18 -3
  261. package/dist/utils/time.d.ts.map +1 -1
  262. package/dist/utils/time.js +24 -8
  263. package/dist/utils/time.js.map +1 -1
  264. package/dist/utils/toError.d.ts +8 -4
  265. package/dist/utils/toError.d.ts.map +1 -1
  266. package/dist/utils/toError.js +25 -5
  267. package/dist/utils/toError.js.map +1 -1
  268. package/docs/memora-api-reference.md +1235 -0
  269. package/docs/memora-/346/216/245/345/205/245/346/214/207/345/215/227.md +808 -0
  270. package/package.json +49 -22
  271. package/dist/agent/managers/memoryMutator.d.ts +0 -92
  272. package/dist/agent/managers/memoryMutator.d.ts.map +0 -1
  273. package/dist/agent/managers/memoryMutator.js +0 -94
  274. package/dist/agent/managers/memoryMutator.js.map +0 -1
@@ -1,21 +1,29 @@
1
1
  /**
2
- * 记忆查看器 — 统一查看记忆快照 + 搜索 + 统计
2
+ * 记忆管理器 — 统一的记忆读写入口
3
3
  *
4
- * 从 Agent 拆分出来,负责只读记忆查询操作。
4
+ * 从 Agent 拆分出来,负责记忆的查询 + 写入操作。
5
+ * 写方法以 writeXxx 前缀命名,与读方法明确区分。
5
6
  *
6
7
  * 设计原则:
7
- * - 纯只读——不动任何组件状态(写操作已迁移至 MemoryMutator,详见 P1-2 拆分)
8
- * - 同步返回——避免数据不一致(不调 LLM、不调 SQLite 写入)
8
+ * - 读写统一入口——writeXxx 前缀区分写操作,降低认知负荷
9
+ * - 同步返回——避免数据不一致(不调 LLM、不调 SQLite 异步写入)
9
10
  * - 轻量——每层只返回前 N 条 + 总数
11
+ * - 静默降级——relationStore 未注入时关系方法静默 no-op(ADR-014 降级优先)
10
12
  *
11
- * 与 MemoryMutator 的分工(P1-2 拆分,1.0 接口稳定化):
12
- * - MemoryInspector(本类):snapshot / search / searchHybrid / stats /
13
+ * 方法清单:
14
+ * - 只读查询:snapshot / search / searchHybrid / stats /
13
15
  * getRelations / getAllRelations / getRelationPath / getRelationNeighbors /
14
- * getById / getBySource / list / listDeleted / getDeletedById /
15
- * sourceHealth / suggest
16
- * - MemoryMutator(src/agent/managers/memoryMutator.ts):
17
- * upsert / delete / restore / purge / purgeExpired /
18
- * addRelation / removeRelation
16
+ * getById / getBySource / list / listDeleted / getDeletedById
17
+ * - 写操作(writeXxx 前缀):
18
+ * writeUpsert / writeDelete / writeRestore / writePurge / writePurgeExpired /
19
+ * writeAddRelation / writeRemoveRelation
20
+ *
21
+ * 拆分历史:
22
+ * - SPLIT-3(2026-07-21):L1 语义去重(deduplicateMemories)拆分至 DedupManager
23
+ * - v2 PROXY-1(2026-07-21):detectConflicts 直连 MemoryAdvisor(消除 3 层代理)
24
+ * - FIX-P1-3(2026-07-24):sourceHealth/suggest 直连 MemoryAdvisor,
25
+ * 删除本类转发方法 + advisor 字段,Agent 作为门面委托 advisor(与
26
+ * detectConflicts 同模式)。本类回归纯存储读写 + 查询入口。
19
27
  */
20
28
  import type { Memory } from '../../memory/types.js';
21
29
  import type { IMemoryStorage } from '../../memory/storageInterface.js';
@@ -24,7 +32,6 @@ import type { MemoryRelation, RelationDirection, RelationPath, RelationNeighbor
24
32
  import type { IVectorStore } from '../../memory/vectorStore.js';
25
33
  import type { MessageHistory } from '../../agent/messageHistory.js';
26
34
  import type { AgentLoop } from '../../agent/loop.js';
27
- import type { MemoryAdvisor, SourceHealthReport, SuggestOptions, SuggestHit } from '../../agent/managers/memoryAdvisor.js';
28
35
  export type { SourceHealthStatus, SourceHealthEntry, SourceHealthReport, SuggestOptions, SuggestHit, } from '../../agent/managers/memoryAdvisor.js';
29
36
  /** 记忆快照 */
30
37
  export interface MemorySnapshot {
@@ -106,18 +113,18 @@ export declare class MemoryInspector {
106
113
  private readonly history;
107
114
  /** 向量存储(可选,提供时 searchHybrid 启用语义搜索) */
108
115
  private vectorStore;
109
- /** 关系存储(可选,ADR-014 侧车,未注入时跳过关系查询) */
116
+ /** 关系存储(可选,ADR-014 侧车,未注入时关系方法静默降级) */
110
117
  private readonly relationStore;
111
- /** 记忆顾问(sourceHealth + suggest 委托) */
112
- private readonly advisor;
113
118
  /**
114
- * @param index - 记忆存储(用于搜索 + 统计)
119
+ * FIX-P1-3(2026-07-24):移除 advisor 参数,sourceHealth/suggest 改由
120
+ * Agent 直接委托 MemoryAdvisor(与 detectConflicts 同模式),消除 3 层代理。
121
+ *
122
+ * @param index - 记忆存储(用于读写操作)
115
123
  * @param loop - AgentLoop(用于获取工作记忆)
116
124
  * @param history - MessageHistory(用于获取当前会话信息)
117
- * @param advisor - 记忆顾问(组合根一致性,由 assembler.ts 显式注入,必填)
118
- * @param relationStore - 关系存储侧车(可选,ADR-014,未注入时关系相关方法降级返回空)
125
+ * @param relationStore - 关系存储侧车(可选,ADR-014,未注入时关系方法降级返回空/no-op)
119
126
  */
120
- constructor(index: IMemoryStorage, loop: AgentLoop, history: MessageHistory, advisor: MemoryAdvisor, relationStore?: IMemoryRelationStore | null);
127
+ constructor(index: IMemoryStorage, loop: AgentLoop, history: MessageHistory, relationStore?: IMemoryRelationStore | null);
121
128
  /**
122
129
  * 注入向量存储(由 Agent 在初始化后调用,解决构造时序)
123
130
  */
@@ -125,7 +132,8 @@ export declare class MemoryInspector {
125
132
  /**
126
133
  * 列出回收站中的软删除记忆(只读查询)
127
134
  *
128
- * @param limit 返回数量上限(默认 50)
135
+ * @param limit 返回数量上限。`limit <= 0` 或 `undefined` 表示不设上限(返回全部);
136
+ * 正整数 N 表示返回最近 N 条。默认 undefined(全部)。
129
137
  * @returns 软删除记忆列表(按 deletedAt 降序)
130
138
  */
131
139
  listDeleted(limit?: number): Memory[];
@@ -259,21 +267,96 @@ export declare class MemoryInspector {
259
267
  */
260
268
  private countRelations;
261
269
  /**
262
- * 记忆源健康诊断(委托给 MemoryAdvisor)
270
+ * 插入或更新记忆
271
+ *
272
+ * @param memory 完整记忆对象
273
+ */
274
+ writeUpsert(memory: Memory): void;
275
+ /**
276
+ * 提升记忆的 score(L2 采纳反哺内核)
277
+ *
278
+ * 用户在补全模块采纳某条候选后,通过 IPC 调用此方法反哺到内核 Memory.score。
279
+ * 与 recall.ts 的 boostScore 路径语义一致("越常用越重要"),但触发源不同:
280
+ * - recall.ts boostScore:召回时触发(被动)
281
+ * - writeBoost:用户主动采纳时触发(主动)
282
+ *
283
+ * 设计原则:
284
+ * - score 上限 1.0(与 recall.ts SCORE_CEILING 一致)
285
+ * - 同步更新 accessedAt,避免被衰减机制误降级
286
+ * - 记忆不存在时静默返回 false(补全候选可能来自对话历史,无对应记忆)
287
+ *
288
+ * @param id 记忆唯一标识(${source}:${name} 格式)
289
+ * @param increment score 提升量(默认 0.05,与 recall.ts BOOST_INCREMENT 一致)
290
+ * @returns 是否成功提升(记忆不存在时返回 false)
291
+ */
292
+ writeBoost(id: string, increment?: number): boolean;
293
+ /**
294
+ * 软删除记忆(写入 deletedAt)
295
+ *
296
+ * @param id 记忆唯一标识(${source}:${name} 格式)
297
+ */
298
+ writeDelete(id: string): void;
299
+ /**
300
+ * 恢复软删除的记忆(清除 deletedAt)
301
+ *
302
+ * @param id 记忆唯一标识
303
+ */
304
+ writeRestore(id: string): void;
305
+ /**
306
+ * 物理删除记忆(不可恢复,用于回收站彻底删除)
307
+ *
308
+ * @param id 记忆唯一标识
309
+ */
310
+ writePurge(id: string): void;
311
+ /**
312
+ * 清理过期的软删除记忆(FIX-P0-2:统一编排关系清理)
313
+ *
314
+ * 物理删除所有 deletedAt 早于 before 的记忆,并同步清理这些记忆的关系边。
315
+ * 由宿主项目的定时器调用(默认 30 天保留期)。
316
+ *
317
+ * FIX-P0-2 修复说明:
318
+ * 原实现仅调用 `index.purgeExpired(before)` 物理删除记忆,不清理 memory_relations
319
+ * 表中的关系边,导致孤儿边残留。手动 purge 路径会清理关系,但自动清理路径遗漏。
320
+ * 本方法是统一协调点(已持有 relationStore 引用),先查询待清理记忆 → 逐个清理关系边
321
+ * → 再物理删除记忆,保证两侧数据一致。
322
+ *
323
+ * 容错策略:
324
+ * - relationStore 未注入时跳过关系清理,仅物理删除记忆(向后兼容)
325
+ * - 单条关系清理失败不阻塞整体流程,记录 warn 日志后继续
326
+ *
327
+ * @param before 时间阈值,deletedAt 早于此值的记忆将被物理删除
328
+ * @returns 被清理的记忆数量
329
+ */
330
+ writePurgeExpired(before: Date): number;
331
+ /**
332
+ * 添加记忆关系(透传 relationStore)
333
+ *
334
+ * 用于宿主 UI 手动创建关系(关系图右键菜单 → 连线 → 创建关系)。
335
+ * relationStore 未注入时静默降级(不阻塞)。
336
+ *
337
+ * @param relation 关系边数据
338
+ */
339
+ writeAddRelation(relation: MemoryRelation): void;
340
+ /**
341
+ * 删除记忆关系(透传 relationStore)
342
+ *
343
+ * 用于宿主 UI 手动删除关系(关系图右键菜单 → 编辑关系 → 删除)。
344
+ * relationStore 未注入时静默降级(不阻塞)。
263
345
  *
264
- * 为每个 source 计算健康指标(数量、平均 score、新鲜度、状态)。
265
- * 实现已迁移至 MemoryAdvisor,此处保留委托以维持 API 契约。
346
+ * @param sourceId 关系起点
347
+ * @param targetId 关系终点
348
+ * @param type 关系类型
266
349
  */
267
- sourceHealth(): SourceHealthReport;
350
+ writeRemoveRelation(sourceId: string, targetId: string, type: string): void;
268
351
  /**
269
- * 关联推荐(委托给 MemoryAdvisor)
352
+ * 删除某记忆的所有关系边(透传 relationStore)
270
353
  *
271
- * 基于 score + 时效性 + source 多样性推荐记忆。
272
- * 实现已迁移至 MemoryAdvisor,此处保留委托以维持 API 契约。
354
+ * 用于记忆软删除/物理删除场景,防止 memory_relations 表残留孤儿边。
355
+ * relationStore 未注入时静默降级(不阻塞记忆删除主流程)。
273
356
  *
274
- * @param query - 可选的搜索关键词(提供时结合搜索结果推荐,省略时基于全局热度推荐)
275
- * @param options - 推荐选项
357
+ * @param memoryId 记忆 ID
358
+ * @returns 被删除的关系数量(relationStore 未注入时返回 0)
276
359
  */
277
- suggest(query?: string, options?: SuggestOptions): SuggestHit[];
360
+ writeRemoveRelationsByMemoryId(memoryId: string): number;
278
361
  }
279
362
  //# sourceMappingURL=memoryInspector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memoryInspector.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/memoryInspector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memoryInspector.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/memoryInspector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC3G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAkBjD,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,UAAU,GACX,MAAM,mCAAmC,CAAC;AAa3C,WAAW;AACX,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,OAAO,EAAE,qBAAqB,CAAC;IAC/B,kCAAkC;IAClC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,6BAA6B;IAC7B,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,mBAAmB;AACnB,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;QAC/C,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;CACJ;AAED,2BAA2B;AAC3B,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,kBAAkB;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAED,wDAAwD;AACxD,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,eAAe;IACf,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED,gCAAgC;AAChC,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,cAAc;IACd,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,cAAc;AACd,MAAM,WAAW,UAAU;IACzB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;CACvB;AAID,qBAAa,eAAe;IAgBxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAjB1B,uCAAuC;IACvC,OAAO,CAAC,WAAW,CAA6B;IAChD,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAE5D;;;;;;;;OAQG;gBAEgB,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,cAAc,EACxC,aAAa,GAAE,oBAAoB,GAAG,IAAW;IAKnD;;OAEG;IACH,cAAc,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI;IAO7C;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAIrC;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIzC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIlC;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAIrC;;;;;;;;;OASG;IACH,IAAI,CAAC,KAAK,SAAK,GAAG,MAAM,EAAE;IAM1B;;;;;;;;;OASG;IACH,QAAQ,IAAI,cAAc;IA0D1B;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,cAAc,EAAE;IAyBnD;;;;;;;;;;OAUG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAqDxE;;;;;;OAMG;IACH,KAAK,IAAI,UAAU;IAenB;;;;;;;;;OASG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAE,iBAA0B,GAAG,cAAc,EAAE;IAKvF;;;;;;;OAOG;IACH,eAAe,IAAI,cAAc,EAAE;IAOnC;;;;;;;;;;;;;;;OAeG;IACH,eAAe,CACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,SAAI,EACZ,SAAS,GAAE,iBAA8B,GACxC,YAAY,EAAE;IA0DjB;;;;;;;;;;;OAWG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,gBAAgB,EAAE;IA4CtE;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAgBtB;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIjC;;;;;;;;;;;;;;;;OAgBG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,GAAE,MAAwB,GAAG,OAAO;IAMpE;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI7B;;;;OAIG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI9B;;;;OAIG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI5B;;;;;;;;;;;;;;;;;;OAkBG;IACH,iBAAiB,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM;IAmCvC;;;;;;;OAOG;IACH,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAKhD;;;;;;;;;OASG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3E;;;;;;;;OAQG;IACH,8BAA8B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;CAIzD"}
@@ -1,9 +1,14 @@
1
1
  import { SOURCE_LABELS } from '../../memory/types.js';
2
2
  import { configError } from '../../utils/errors.js';
3
+ import { nowIso } from '../../utils/time.js';
4
+ import { truncate } from '../../utils/strings.js';
3
5
  import { logger } from '../../logging/logger.js';
4
6
  // 双通道融合排序算法 + 常量从 hybridMerge 导入(不再绕道 recall.ts)
5
7
  // 消除"agent 模块依赖 memory/recall.ts 内部常量"的分层违规
6
8
  import { hybridMerge, RECALL_LIMIT_MULTIPLIER, } from '../../memory/hybridMerge.js';
9
+ // LLM 治理共享常量(v2 REPEAT-1/2 闭环,消除 5 处独立维护的治理源列表 + 2 处 score 常量重复)
10
+ // MIND2-L3:SCORE_CEILING 不再需要(incrementScore 内部 clamp),仅保留 BOOST_INCREMENT
11
+ import { BOOST_INCREMENT } from '../../memory/governance.js';
7
12
  // ─── 常量 ────────────────────────────────────────────────
8
13
  /** 工作记忆预览条数(最近 N 条) */
9
14
  const WORKING_PREVIEW = 5;
@@ -18,23 +23,21 @@ export class MemoryInspector {
18
23
  history;
19
24
  /** 向量存储(可选,提供时 searchHybrid 启用语义搜索) */
20
25
  vectorStore = null;
21
- /** 关系存储(可选,ADR-014 侧车,未注入时跳过关系查询) */
26
+ /** 关系存储(可选,ADR-014 侧车,未注入时关系方法静默降级) */
22
27
  relationStore;
23
- /** 记忆顾问(sourceHealth + suggest 委托) */
24
- advisor;
25
28
  /**
26
- * @param index - 记忆存储(用于搜索 + 统计)
29
+ * FIX-P1-3(2026-07-24):移除 advisor 参数,sourceHealth/suggest 改由
30
+ * Agent 直接委托 MemoryAdvisor(与 detectConflicts 同模式),消除 3 层代理。
31
+ *
32
+ * @param index - 记忆存储(用于读写操作)
27
33
  * @param loop - AgentLoop(用于获取工作记忆)
28
34
  * @param history - MessageHistory(用于获取当前会话信息)
29
- * @param advisor - 记忆顾问(组合根一致性,由 assembler.ts 显式注入,必填)
30
- * @param relationStore - 关系存储侧车(可选,ADR-014,未注入时关系相关方法降级返回空)
35
+ * @param relationStore - 关系存储侧车(可选,ADR-014,未注入时关系方法降级返回空/no-op)
31
36
  */
32
- constructor(index, loop, history, advisor, relationStore = null) {
37
+ constructor(index, loop, history, relationStore = null) {
33
38
  this.index = index;
34
39
  this.loop = loop;
35
40
  this.history = history;
36
- // 组合根一致性——advisor 由 assembler.ts 显式注入(必填,不再内部创建)
37
- this.advisor = advisor;
38
41
  this.relationStore = relationStore;
39
42
  }
40
43
  /**
@@ -44,15 +47,15 @@ export class MemoryInspector {
44
47
  this.vectorStore = vs;
45
48
  }
46
49
  // ─── 只读查询(IMemoryStorage 透传) ───────────────────
47
- // 写操作(upsert/delete/restore/purge/purgeExpired)已迁移至 MemoryMutator(P1-2 拆分)。
48
- // 本节仅保留查询方法:getById / getBySource / list / listDeleted / getDeletedById。
50
+ // 写操作以 writeXxx 前缀命名,集中在本类末尾的"写操作"section。
49
51
  /**
50
52
  * 列出回收站中的软删除记忆(只读查询)
51
53
  *
52
- * @param limit 返回数量上限(默认 50)
54
+ * @param limit 返回数量上限。`limit <= 0` 或 `undefined` 表示不设上限(返回全部);
55
+ * 正整数 N 表示返回最近 N 条。默认 undefined(全部)。
53
56
  * @returns 软删除记忆列表(按 deletedAt 降序)
54
57
  */
55
- listDeleted(limit = 50) {
58
+ listDeleted(limit) {
56
59
  return this.index.listDeleted(limit);
57
60
  }
58
61
  /**
@@ -185,7 +188,7 @@ export class MemoryInspector {
185
188
  source: m.source,
186
189
  score: m.score,
187
190
  // 截断长内容到搜索预览长度
188
- contentPreview: m.content.length > SEARCH_PREVIEW_LEN ? m.content.slice(0, SEARCH_PREVIEW_LEN) + '...' : m.content,
191
+ contentPreview: truncate(m.content, SEARCH_PREVIEW_LEN),
189
192
  createdAt: m.createdAt,
190
193
  }));
191
194
  }
@@ -242,7 +245,7 @@ export class MemoryInspector {
242
245
  source: memory.source,
243
246
  score: memory.score,
244
247
  similarity: vectorScore,
245
- contentPreview: memory.content.length > SEARCH_PREVIEW_LEN ? memory.content.slice(0, SEARCH_PREVIEW_LEN) + '...' : memory.content,
248
+ contentPreview: truncate(memory.content, SEARCH_PREVIEW_LEN),
246
249
  createdAt: memory.createdAt,
247
250
  }));
248
251
  }
@@ -294,8 +297,7 @@ export class MemoryInspector {
294
297
  return [];
295
298
  return this.relationStore.getAllRelations();
296
299
  }
297
- // 关系写操作(addRelation / removeRelation)已迁移至 MemoryMutator(P1-2 拆分)。
298
- // 本类仅保留关系查询:getRelations / getAllRelations / getRelationPath / getRelationNeighbors。
300
+ // 关系写操作以 writeAddRelation / writeRemoveRelation 命名,见本类末尾"写操作"section。
299
301
  /**
300
302
  * 记忆关系路径追溯(ADR-014 扩展,Phase 5.1)
301
303
  *
@@ -339,8 +341,10 @@ export class MemoryInspector {
339
341
  continue;
340
342
  const relations = this.relationStore.getRelations(current.id, direction);
341
343
  for (const rel of relations) {
342
- // direction='incoming' 时邻居是 sourceId;'outgoing' 时邻居是 targetId
343
- const neighborId = direction === 'incoming' ? rel.sourceId : rel.targetId;
344
+ // 根据每条边的实际方向判断邻居,不依赖 direction 参数
345
+ // (direction='both' 时返回的边可能 incoming 也可能 outgoing,
346
+ // 旧实现按 direction 取 neighborId 会漏掉 incoming 邻居)
347
+ const neighborId = rel.sourceId === current.id ? rel.targetId : rel.sourceId;
344
348
  if (visited.has(neighborId))
345
349
  continue;
346
350
  visited.add(neighborId);
@@ -428,27 +432,156 @@ export class MemoryInspector {
428
432
  return 0;
429
433
  return this.relationStore.getAllRelations().length;
430
434
  }
431
- // ─── 源健康诊断 + 关联推荐(委托给 MemoryAdvisor) ───
435
+ // ─── 源健康诊断 + 关联推荐 ───
436
+ //
437
+ // FIX-P1-3(2026-07-24):sourceHealth() / suggest() 已从此处删除。
438
+ // 调用方应通过 Agent 门面访问:
439
+ // - agent.sourceHealth() → MemoryAdvisor.sourceHealth()
440
+ // - agent.suggest(...) → MemoryAdvisor.suggest(...)
441
+ // 与 detectConflicts 同模式(agent.detectConflicts → advisor.detectConflicts),
442
+ // 消除"inspector 三层纯转发"的设计气味。
443
+ // ─── 写操作(writeXxx 前缀,IMemoryStorage / IMemoryRelationStore 透传) ───
444
+ /**
445
+ * 插入或更新记忆
446
+ *
447
+ * @param memory 完整记忆对象
448
+ */
449
+ writeUpsert(memory) {
450
+ this.index.upsert(memory);
451
+ }
452
+ /**
453
+ * 提升记忆的 score(L2 采纳反哺内核)
454
+ *
455
+ * 用户在补全模块采纳某条候选后,通过 IPC 调用此方法反哺到内核 Memory.score。
456
+ * 与 recall.ts 的 boostScore 路径语义一致("越常用越重要"),但触发源不同:
457
+ * - recall.ts boostScore:召回时触发(被动)
458
+ * - writeBoost:用户主动采纳时触发(主动)
459
+ *
460
+ * 设计原则:
461
+ * - score 上限 1.0(与 recall.ts SCORE_CEILING 一致)
462
+ * - 同步更新 accessedAt,避免被衰减机制误降级
463
+ * - 记忆不存在时静默返回 false(补全候选可能来自对话历史,无对应记忆)
464
+ *
465
+ * @param id 记忆唯一标识(${source}:${name} 格式)
466
+ * @param increment score 提升量(默认 0.05,与 recall.ts BOOST_INCREMENT 一致)
467
+ * @returns 是否成功提升(记忆不存在时返回 false)
468
+ */
469
+ writeBoost(id, increment = BOOST_INCREMENT) {
470
+ // MIND2-L3:改用 incrementScore 原子操作,消除 read-modify-write 并发冲突
471
+ // 原 getById → spread → boostScore → upsert 四步合并为存储层一条原子更新
472
+ return this.index.incrementScore(id, increment, nowIso());
473
+ }
432
474
  /**
433
- * 记忆源健康诊断(委托给 MemoryAdvisor)
475
+ * 软删除记忆(写入 deletedAt)
434
476
  *
435
- * 为每个 source 计算健康指标(数量、平均 score、新鲜度、状态)。
436
- * 实现已迁移至 MemoryAdvisor,此处保留委托以维持 API 契约。
477
+ * @param id 记忆唯一标识(${source}:${name} 格式)
437
478
  */
438
- sourceHealth() {
439
- return this.advisor.sourceHealth();
479
+ writeDelete(id) {
480
+ this.index.delete(id);
440
481
  }
441
482
  /**
442
- * 关联推荐(委托给 MemoryAdvisor)
483
+ * 恢复软删除的记忆(清除 deletedAt)
484
+ *
485
+ * @param id 记忆唯一标识
486
+ */
487
+ writeRestore(id) {
488
+ this.index.restore(id);
489
+ }
490
+ /**
491
+ * 物理删除记忆(不可恢复,用于回收站彻底删除)
492
+ *
493
+ * @param id 记忆唯一标识
494
+ */
495
+ writePurge(id) {
496
+ this.index.purge(id);
497
+ }
498
+ /**
499
+ * 清理过期的软删除记忆(FIX-P0-2:统一编排关系清理)
500
+ *
501
+ * 物理删除所有 deletedAt 早于 before 的记忆,并同步清理这些记忆的关系边。
502
+ * 由宿主项目的定时器调用(默认 30 天保留期)。
503
+ *
504
+ * FIX-P0-2 修复说明:
505
+ * 原实现仅调用 `index.purgeExpired(before)` 物理删除记忆,不清理 memory_relations
506
+ * 表中的关系边,导致孤儿边残留。手动 purge 路径会清理关系,但自动清理路径遗漏。
507
+ * 本方法是统一协调点(已持有 relationStore 引用),先查询待清理记忆 → 逐个清理关系边
508
+ * → 再物理删除记忆,保证两侧数据一致。
443
509
  *
444
- * 基于 score + 时效性 + source 多样性推荐记忆。
445
- * 实现已迁移至 MemoryAdvisor,此处保留委托以维持 API 契约。
510
+ * 容错策略:
511
+ * - relationStore 未注入时跳过关系清理,仅物理删除记忆(向后兼容)
512
+ * - 单条关系清理失败不阻塞整体流程,记录 warn 日志后继续
446
513
  *
447
- * @param query - 可选的搜索关键词(提供时结合搜索结果推荐,省略时基于全局热度推荐)
448
- * @param options - 推荐选项
514
+ * @param before 时间阈值,deletedAt 早于此值的记忆将被物理删除
515
+ * @returns 被清理的记忆数量
449
516
  */
450
- suggest(query, options) {
451
- return this.advisor.suggest(query, options);
517
+ writePurgeExpired(before) {
518
+ // 1. 先查询待清理的软删除记忆(listDeleted 不传 limit = 全部)
519
+ // 用 before 时间戳过滤,避免清理未过期的记忆
520
+ const beforeMs = before.getTime();
521
+ const candidates = this.index
522
+ .listDeleted()
523
+ .filter((m) => m.deletedAt && new Date(m.deletedAt).getTime() < beforeMs);
524
+ // 2. 关系清理:在物理删除前移除关系边,防止 memory_relations 残留孤儿边
525
+ // relationStore 未注入时跳过(ADR-014 降级优先)
526
+ if (this.relationStore && candidates.length > 0) {
527
+ for (const m of candidates) {
528
+ try {
529
+ const removed = this.relationStore.removeRelationsByMemoryId(m.id);
530
+ if (removed > 0) {
531
+ logger.debug({ memoryId: m.id, removedRelations: removed }, '自动清理过期记忆时清理了关系边');
532
+ }
533
+ }
534
+ catch (err) {
535
+ // 单条关系清理失败不阻塞整体流程,记忆仍会被物理删除
536
+ // 孤儿边比记忆残留更可控(后续可由关系图谱治理任务清理)
537
+ logger.warn({ err, memoryId: m.id }, '清理过期记忆的关系边失败,可能残留孤儿边');
538
+ }
539
+ }
540
+ }
541
+ // 3. 物理删除记忆(IMemoryStorage.purgeExpired 返回被清理的数量)
542
+ return this.index.purgeExpired(before);
543
+ }
544
+ /**
545
+ * 添加记忆关系(透传 relationStore)
546
+ *
547
+ * 用于宿主 UI 手动创建关系(关系图右键菜单 → 连线 → 创建关系)。
548
+ * relationStore 未注入时静默降级(不阻塞)。
549
+ *
550
+ * @param relation 关系边数据
551
+ */
552
+ writeAddRelation(relation) {
553
+ if (!this.relationStore)
554
+ return;
555
+ this.relationStore.addRelation(relation);
556
+ }
557
+ /**
558
+ * 删除记忆关系(透传 relationStore)
559
+ *
560
+ * 用于宿主 UI 手动删除关系(关系图右键菜单 → 编辑关系 → 删除)。
561
+ * relationStore 未注入时静默降级(不阻塞)。
562
+ *
563
+ * @param sourceId 关系起点
564
+ * @param targetId 关系终点
565
+ * @param type 关系类型
566
+ */
567
+ writeRemoveRelation(sourceId, targetId, type) {
568
+ if (!this.relationStore)
569
+ return;
570
+ this.relationStore.removeRelation(sourceId, targetId, type);
571
+ }
572
+ /**
573
+ * 删除某记忆的所有关系边(透传 relationStore)
574
+ *
575
+ * 用于记忆软删除/物理删除场景,防止 memory_relations 表残留孤儿边。
576
+ * relationStore 未注入时静默降级(不阻塞记忆删除主流程)。
577
+ *
578
+ * @param memoryId 记忆 ID
579
+ * @returns 被删除的关系数量(relationStore 未注入时返回 0)
580
+ */
581
+ writeRemoveRelationsByMemoryId(memoryId) {
582
+ if (!this.relationStore)
583
+ return 0;
584
+ return this.relationStore.removeRelationsByMemoryId(memoryId);
452
585
  }
453
586
  }
454
587
  //# sourceMappingURL=memoryInspector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memoryInspector.js","sourceRoot":"","sources":["../../../src/agent/managers/memoryInspector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memoryInspector.js","sourceRoot":"","sources":["../../../src/agent/managers/memoryInspector.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * 关系构建器 — ADR-014 记忆关系构建的专职 Manager
3
3
  *
4
- * 从 InsightExtractor 拆分出来(P1-3),负责:
4
+ * 从 InsightExtractor 拆分出来,负责:
5
5
  * - 召回关系判断候选记忆(top-5 关键词搜索)
6
6
  * - 构建关系判断 prompt 片段(候选列表 + 关系类型说明)
7
7
  * - 解析 LLM 输出的 relations 字段并写入 IMemoryRelationStore
@@ -12,11 +12,11 @@
12
12
  * - 静默降级——relationStore 未注入时所有方法返回空/no-op(ADR-014 降级优先)
13
13
  * - 薄层代理——关系写入直接透传到 IMemoryRelationStore,仅增加 weight 推断 + targetId 校验
14
14
  *
15
- * 与 InsightExtractor 的分工(P1-3 拆分,1.0 接口稳定化):
15
+ * 与 InsightExtractor 的分工(1.0 接口稳定化):
16
16
  * - InsightExtractor:insight 提取 + 去重 + 写入 + 输入分类
17
17
  * - RelationBuilder:候选召回 + prompt 构建 + 关系写入 + 冲突检测
18
18
  *
19
- * 详见 ADR-014(记忆关系侧车模型)+ 迭代文档 P1-3
19
+ * 详见 ADR-014(记忆关系侧车模型)
20
20
  */
21
21
  import type { Memory } from '../../memory/types.js';
22
22
  import type { IMemoryStorage } from '../../memory/storageInterface.js';
@@ -40,7 +40,7 @@ export interface ConflictInfo {
40
40
  /**
41
41
  * 关系构建器
42
42
  *
43
- * 封装 ADR-014 记忆关系构建的全部逻辑,从 InsightExtractor 拆分(P1-3)。
43
+ * 封装 ADR-014 记忆关系构建的全部逻辑,从 InsightExtractor 拆分。
44
44
  * relationStore 未注入时所有方法静默降级(返回空/no-op)。
45
45
  */
46
46
  export declare class RelationBuilder {
@@ -1 +1 @@
1
- {"version":3,"file":"relationBuilder.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/relationBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AActE;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAID;;;;;GAKG;AACH,qBAAa,eAAe;IASxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAThC,+DAA+D;IAC/D,OAAO,CAAC,UAAU,CAA+C;IAEjE;;;OAGG;gBAEgB,KAAK,EAAE,cAAc,EACrB,aAAa,GAAE,oBAAoB,GAAG,IAAW;IAGpE,yCAAyC;IACzC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAM/D;;;;;;;;;OASG;IACH,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAMrD;;;;;;;;;;OAUG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM;IAWnD;;;;;;;OAOG;IACH,oBAAoB,IAAI,MAAM;IAqB9B;;;;;;;;;;;;;OAaG;IACH,cAAc,CACZ,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,KAAK,CAAC;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,EACxD,UAAU,EAAE,MAAM,EAAE,GACnB,IAAI;IA4CP;;;;;;;;;;OAUG;IACH,OAAO,CAAC,YAAY;CAYrB"}
1
+ {"version":3,"file":"relationBuilder.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/relationBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAetE;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAID;;;;;GAKG;AACH,qBAAa,eAAe;IASxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAThC,+DAA+D;IAC/D,OAAO,CAAC,UAAU,CAA+C;IAEjE;;;OAGG;gBAEgB,KAAK,EAAE,cAAc,EACrB,aAAa,GAAE,oBAAoB,GAAG,IAAW;IAGpE,yCAAyC;IACzC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAM/D;;;;;;;;;OASG;IACH,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAMrD;;;;;;;;;;OAUG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM;IAWnD;;;;;;;OAOG;IACH,oBAAoB,IAAI,MAAM;IAqB9B;;;;;;;;;;;;;OAaG;IACH,cAAc,CACZ,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,KAAK,CAAC;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,EACxD,UAAU,EAAE,MAAM,EAAE,GACnB,IAAI;IA4CP;;;;;;;;;;OAUG;IACH,OAAO,CAAC,YAAY;CAYrB"}
@@ -1,7 +1,8 @@
1
1
  import { RELATION_WEIGHTS } from '../../memory/types.js';
2
- import { escapeLike } from '../../memory/sourceValidation.js';
2
+ import { escapeLikeSnippet } from '../../memory/sourceValidation.js';
3
3
  import { logger } from '../../logging/logger.js';
4
4
  import { nowIso } from '../../utils/time.js';
5
+ import { truncate } from '../../utils/strings.js';
5
6
  // ─── 常量 ────────────────────────────────────────────────
6
7
  /** 关系判断:召回候选记忆数量上限(top-5) */
7
8
  const RELATION_CANDIDATE_LIMIT = 5;
@@ -11,7 +12,7 @@ const RELATION_CANDIDATE_CONTENT_LIMIT = 100;
11
12
  /**
12
13
  * 关系构建器
13
14
  *
14
- * 封装 ADR-014 记忆关系构建的全部逻辑,从 InsightExtractor 拆分(P1-3)。
15
+ * 封装 ADR-014 记忆关系构建的全部逻辑,从 InsightExtractor 拆分。
15
16
  * relationStore 未注入时所有方法静默降级(返回空/no-op)。
16
17
  */
17
18
  export class RelationBuilder {
@@ -57,7 +58,7 @@ export class RelationBuilder {
57
58
  recallRelationCandidates(userInput) {
58
59
  if (!this.relationStore)
59
60
  return [];
60
- const snippet = escapeLike(userInput.slice(0, 50));
61
+ const snippet = escapeLikeSnippet(userInput);
61
62
  return this.index.search(snippet, RELATION_CANDIDATE_LIMIT);
62
63
  }
63
64
  /**
@@ -76,7 +77,7 @@ export class RelationBuilder {
76
77
  return '';
77
78
  const lines = candidates.map((m, i) => {
78
79
  const safeContent = m.content.length > RELATION_CANDIDATE_CONTENT_LIMIT
79
- ? m.content.slice(0, RELATION_CANDIDATE_CONTENT_LIMIT) + '…'
80
+ ? truncate(m.content, RELATION_CANDIDATE_CONTENT_LIMIT)
80
81
  : m.content;
81
82
  return `[${i + 1}] id: ${m.id}, content: ${safeContent}`;
82
83
  });
@@ -1 +1 @@
1
- {"version":3,"file":"relationBuilder.js","sourceRoot":"","sources":["../../../src/agent/managers/relationBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relationBuilder.js","sourceRoot":"","sources":["../../../src/agent/managers/relationBuilder.ts"],"names":[],"mappings":"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"}