@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,5 +1,5 @@
1
1
  import type { AgentLoop } from '../agent/loop.js';
2
- import type { AgentChunk, UIMessages, ArchiveMode } from '../agent/types.js';
2
+ import type { AgentChunk, ArchiveMode, AgentOptions, AgentContext } from '../agent/types.js';
3
3
  import type { ToolExecutor } from '../agent/toolExecutor.js';
4
4
  import type { MessageHistory } from '../agent/messageHistory.js';
5
5
  import { ProjectManager, type ProjectContext } from '../memory/projectManager.js';
@@ -9,82 +9,23 @@ import type { UserProfile, UserProfileEntry } from '../memory/userProfile.js';
9
9
  import type { SkillManager } from '../skill/skillManager.js';
10
10
  import type { InsightExtractor } from '../agent/managers/insightExtractor.js';
11
11
  import type { SessionArchiveResult } from '../agent/managers/sessionArchiver.js';
12
+ import type { TextPolishManager } from '../agent/managers/textPolishManager.js';
12
13
  import type { ConfigManager } from '../agent/managers/configManager.js';
13
14
  import type { WorkProjectionManager } from '../agent/managers/workProjection.js';
14
15
  import type { MemoryInspector } from '../agent/managers/memoryInspector.js';
15
- import type { MemoryMutator } from '../agent/managers/memoryMutator.js';
16
16
  import { SessionManager, type AgentForkResult } from '../agent/managers/sessionManager.js';
17
+ import { MemoryGovernance } from '../agent/managers/memoryGovernance.js';
18
+ import { type ArchiveTriggerOptions } from '../agent/managers/archiveCoordinator.js';
17
19
  import { TypedEventEmitter, type AgentEventMap } from '../utils/eventEmitter.js';
18
- import type { LlmProvider } from '../llm/provider.js';
20
+ import type { LlmProvider, Message } from '../llm/provider.js';
19
21
  import type { Memory } from '../memory/types.js';
20
- import type { IMemoryStorage } from '../memory/storageInterface.js';
21
- import type { IMemoryRelationStore } from '../memory/relationStore.js';
22
- import type { ISessionStore } from '../memory/sessionStore.js';
23
- import type { IVectorStore } from '../memory/vectorStore.js';
24
- import type { ITracer, AgentMetrics } from '../agent/tracer.js';
25
- /** Agent 构造选项 */
26
- export interface AgentOptions {
27
- /** 项目路径(必须) */
28
- projectPath: string;
29
- /** 前台 LLM Provider(必须,宿主负责创建) */
30
- provider: LlmProvider;
31
- /** 后台 LLM Provider(可选,用于投影等后台操作,不配时复用前台) */
32
- backgroundProvider?: LlmProvider;
33
- /** 配置目录(personas/rules/skills) */
34
- configDir?: string;
35
- /** 记忆数据目录(默认 ~/.memora) */
36
- dataDir?: string;
37
- /** 项目注册表目录(默认与 dataDir 相同)。设为用户级路径可避免每项目重复存储 */
38
- registryDir?: string;
39
- /** 最大上下文 token 数(默认 120000) */
40
- maxContextTokens?: number;
41
- /** 默认角色名 */
42
- persona?: string;
43
- /** 安全权限 */
44
- permission?: 'owner' | 'guest';
45
- /** 允许的路径白名单 */
46
- allowedPaths?: string[];
47
- /** 写入确认 */
48
- confirmWrites?: boolean;
49
- /** 向量存储(可选,提供时启用语义搜索召回;宿主可注入任意 IVectorStore 实现) */
50
- vectorStore?: IVectorStore;
51
- /** 召回时排除的 source 标签(默认 ['persona', 'rule', 'skill'],这些已由 bootstrap 注入) */
52
- recallExcludeSources?: string[];
53
- /** 外部注入的存储实例(可选,不传则内部创建 InMemoryStorage) */
54
- storage?: IMemoryStorage;
55
- /** 外部注入的记忆关系存储(可选,ADR-014 侧车模型,不传则跳过关系构建) */
56
- relationStore?: IMemoryRelationStore;
57
- /** 外部注入的会话存储(可选,不传则仅在内存中保存) */
58
- sessionStore?: ISessionStore;
59
- /** 可观测性 Tracer(可选,不传则使用 NoopTracer 静默丢弃所有 span) */
60
- tracer?: ITracer;
61
- /** 宿主可覆盖的 UI 消息文本(默认英文,宿主覆盖为中文等) */
62
- messages?: UIMessages;
63
- /** 上下文超限时是否自动生成摘要(默认 true,开启后首次截断时增加 ~1-2s 延迟) */
64
- enableContextSummary?: boolean;
65
- /**
66
- * 归档模式(ADR-015,默认 'full')
67
- *
68
- * - 'full':profile facts + insight 自动归档(对话原始内容待会话归档实现后自动)
69
- * - 'insights-only':profile facts + insight 自动归档,对话原始内容需手动
70
- * - 'manual':所有归档都需手动触发
71
- */
72
- archiveMode?: ArchiveMode;
73
- }
74
- /** Agent 初始化后暴露的运行时上下文 */
75
- export type AgentContext = ProjectContext;
76
- /** Agent 项目条目(来自 ProjectManager 注册表) */
77
- export interface AgentProjectEntry {
78
- name: string;
79
- path: string;
80
- lastOpened: string;
81
- }
22
+ import type { AgentMetrics } from '../agent/tracer.js';
82
23
  /**
83
24
  * Memora Agent 门面类
84
25
  *
85
26
  * **设计哲学**:单 Agent,单配置,单记忆。每个 Agent 实例拥有独立的
86
27
  * 对话管线(AgentLoop)、独立的消息历史(MessageHistory)和独立的
87
- * 运行时状态(activeSkill、chatBusy)。
28
+ * 运行时状态(chatBusy)。activeSkill 已移除——技能匹配改为当轮实时注入,无需跨轮状态缓存。
88
29
  *
89
30
  * **多实例**:宿主可通过 new Agent({ dataDir: './agent2' }) 创建
90
31
  * 独立实例。只要 dataDir 不同,它们拥有完全隔离的记忆库和会话。
@@ -120,44 +61,54 @@ export declare class Agent extends TypedEventEmitter<AgentEventMap> {
120
61
  private insightExtractor;
121
62
  private configManager;
122
63
  private memoryInspector;
64
+ /**
65
+ * 语义去重管理器(L1 LLM 记忆治理)
66
+ *
67
+ * SPLIT-3 闭环(2026-07-21):从 MemoryInspector 拆分出 deduplicateMemories 职责,
68
+ * 让 MemoryInspector 回归纯存储读写。Agent.deduplicateMemories() 委托本对象。
69
+ */
70
+ private dedupManager;
71
+ /**
72
+ * 记忆顾问(L3 冲突检测 / sourceHealth / suggest)
73
+ *
74
+ * v2 PROXY-1 闭环:Agent.detectConflicts 直接调用 advisor,
75
+ * 不再经 MemoryInspector 转发,消除 3 层无意义代理。
76
+ * sourceHealth/suggest 仍由 inspector 转发以保持 agent.memory 统一入口语义。
77
+ */
78
+ private memoryAdvisor;
79
+ /** 记忆治理统一门面(L0/L1/L2/L3 + 诊断) */
80
+ private _governance;
123
81
  private workProjection;
124
82
  /** AutoConfigRefiner(模式 3:Agent 智能总结) */
125
83
  private autoConfigRefiner;
126
84
  /** SessionArchiver(会话内容归档器,content 类记忆) */
127
85
  private sessionArchiver;
86
+ /** TextPolishManager(文本润色管理器,LLM 语法修正 + 表达优化) */
87
+ private textPolisher;
128
88
  /** 会话管理器(从 Agent 拆分出的会话管理职责) */
129
89
  private _sessionManager;
130
- /** 当前激活的技能名(上一轮匹配,本轮注入) */
131
- private activeSkill;
132
90
  private _initialized;
133
91
  private pctx;
134
- /** chat() 并发锁 */
135
- private _chatBusy;
136
- /**
137
- * chat() 锁持有者 token(race condition 防护)
138
- *
139
- * 设计目的:
140
- * 原锁是简单布尔值 `_chatBusy`,无 owner 校验。超时回调与 finally 块无差别清理,
141
- * 导致 race condition:T=0 A 获取锁 → T=180s 超时释放 → T=181s B 获取锁
142
- * → T=182s A 的 finally 误清 B 的锁/计时器/controller。
143
- *
144
- * 防护方案:
145
- * - 获取锁时 token 递增:`const myToken = ++this._chatLockToken`
146
- * - 超时回调校验 `this._chatLockToken === myToken` 后才释放
147
- * - finally 块校验 `this._chatLockToken === myToken` 后才清理
148
- * - 不匹配时跳过清理,避免误清新调用者的资源
149
- *
150
- * 选择 number 而非 Symbol:递增计数器可序列化、零依赖、足够唯一(同一 Agent 实例内)
151
- */
152
- private _chatLockToken;
153
- /** 聊天锁超时计时器(防止 LLM 卡死时锁永久持有) */
154
- private chatLockTimer;
155
- /** chat() 内部 AbortController(超时时中断 generator,防止并发) */
156
- private chatAbortController;
157
- /** 记忆衰减定时器(已迁移至 MemoryDecayScheduler,此字段保留用于 close 时引用判断) */
158
- private decayTimer;
92
+ /**
93
+ * chat() 并发锁管理器(init 时创建,close 时销毁)
94
+ *
95
+ * 职责:chat() 并发锁 + token 校验(race condition 防护)+ 超时保护 + 外部 signal 合并。
96
+ * 详见 ChatLockManager 类注释。
97
+ */
98
+ private chatLockManager;
159
99
  /** 最近一次 chat() 调用的时间戳 */
160
100
  private _lastInteractionAt;
101
+ /**
102
+ * 对话进行中暂存的配置重载请求集合(chatLock 释放后补执行)
103
+ *
104
+ * 场景:用户在对话中通过 create_persona / create_skill 工具创建配置,
105
+ * reloadConfig 因 chatLock 冲突失败时,将 source 暂存于此。
106
+ * chat() 的 finally 块释放锁后遍历此集合逐个补执行 reloadConfig,
107
+ * 兑现"对话结束后自动加载"的承诺(见 tools.ts createConfigHandler 提示文案)。
108
+ *
109
+ * 用 Set 而非数组:同一 source 多次请求只需补执行一次(去重)。
110
+ */
111
+ private pendingConfigReload;
161
112
  /** 记忆衰减调度器(init 时创建,close 时销毁) */
162
113
  private memoryDecayScheduler;
163
114
  /** 归档协调器(归档操作委托给 ArchiveCoordinator) */
@@ -167,10 +118,47 @@ export declare class Agent extends TypedEventEmitter<AgentEventMap> {
167
118
  * 初始化 Agent:加载索引、组装内部组件
168
119
  */
169
120
  init(projectPathOverride?: string): Promise<ProjectContext>;
121
+ /**
122
+ * 关闭旧实例(如果已初始化),失败不阻塞重建
123
+ */
124
+ private disposePreviousInstance;
125
+ /**
126
+ * 创建 ProjectManager 并初始化项目上下文
127
+ */
128
+ private initializeProject;
129
+ /**
130
+ * 校验核心组件(loop / history)非空
131
+ */
132
+ private validateCoreComponents;
133
+ /**
134
+ * 创建 init() 后期组件(初始化完成后才需要的组件)
135
+ */
136
+ private createPostInitComponents;
170
137
  /**
171
138
  * 流式对话(核心 API)
172
139
  */
173
140
  chat(input: string, signal?: AbortSignal): AsyncGenerator<AgentChunk, void, unknown>;
141
+ /**
142
+ * 校验 chat 输入
143
+ */
144
+ private validateChatInput;
145
+ /**
146
+ * 获取对话锁 — 返回锁上下文
147
+ */
148
+ private acquireChatLock;
149
+ /**
150
+ * 准备对话上下文:角色匹配 → 记忆召回 → 技能注入 → 用户消息写历史
151
+ * @returns 召回的记忆列表(供 loop.processUserInput 注入为 system 消息)
152
+ */
153
+ private prepareChatContext;
154
+ /**
155
+ * 执行 LLM 流式循环 → 追加助手消息 → 触发后处理
156
+ */
157
+ private executeChatLoop;
158
+ /**
159
+ * 补执行对话期间暂存的配置重载请求
160
+ */
161
+ private flushPendingConfigReload;
174
162
  /**
175
163
  * 强制释放对话锁
176
164
  *
@@ -182,7 +170,7 @@ export declare class Agent extends TypedEventEmitter<AgentEventMap> {
182
170
  *
183
171
  * 本方法让宿主在确认 generator 挂起后强制释放锁,让用户能立即发起新对话。
184
172
  *
185
- * 安全机制:
173
+ * 安全机制(委托至 ChatLockManager.forceRelease):
186
174
  * - 递增 _chatLockToken,让原 chat() 的 finally 块检测到 token 不匹配后
187
175
  * 跳过资源清理(避免误清新调用者的 _chatBusy/chatAbortController)
188
176
  * - abort chatAbortController,让响应 signal 的 await 点(如 fetch)退出
@@ -209,9 +197,19 @@ export declare class Agent extends TypedEventEmitter<AgentEventMap> {
209
197
  */
210
198
  private recallAndInject;
211
199
  /**
212
- * 注入上一轮匹配的技能 prompt
200
+ * 匹配技能并立即注入本轮对话(当轮生效,不延迟到下一轮)
201
+ *
202
+ * 与 persona 的 tryAutoMatchPersona 同模式:匹配 → 注入 → 本轮 LLM 即生效。
203
+ * 原设计为 injectActiveSkill(注入上一轮匹配结果),导致用户说"写代码"的第一轮
204
+ * 得不到技能增强,需再发一条消息才生效。已改为实时匹配注入。
205
+ *
206
+ * 匹配策略:regex trigger 优先(score=1.0),其次关键词匹配(阈值 0.3)。
207
+ * 清理机制:cleanTemporarySystemMessages() 每轮开头清除临时 system 消息,
208
+ * 技能 prompt 自然不会累积到下一轮。
209
+ *
210
+ * @param input 用户输入文本
213
211
  */
214
- private injectActiveSkill;
212
+ private matchAndInjectSkill;
215
213
  /**
216
214
  * 对话后处理:用户画像归档、角色匹配、技能匹配、Insight 提取
217
215
  *
@@ -226,6 +224,12 @@ export declare class Agent extends TypedEventEmitter<AgentEventMap> {
226
224
  * (会话归档实现后,`insights-only` 将跳过对话原始内容自动归档)
227
225
  */
228
226
  private postProcess;
227
+ /**
228
+ * postProcess 内部实现(为 span 埋点提供 try/finally 包裹边界)
229
+ *
230
+ * 原 postProcess 逻辑完整保留于此,由外层 postProcess 负责 span 生命周期管理。
231
+ */
232
+ private doPostProcess;
229
233
  /**
230
234
  * 发送用户消息,非流式返回完整回复
231
235
  */
@@ -280,44 +284,137 @@ export declare class Agent extends TypedEventEmitter<AgentEventMap> {
280
284
  * 宿主 UI(如设置面板)可据此同步显示当前模式。
281
285
  */
282
286
  getArchiveMode(): ArchiveMode;
287
+ /**
288
+ * 手动切换角色(宿主 UI 角色选择器入口)
289
+ *
290
+ * 与 doPostProcess 中的自动匹配走同一条事件链路,确保:
291
+ * 1. AgentLoop 的 systemPromptPrefix 立即刷新(下一次对话使用新角色 prompt)
292
+ * 2. 发射 personaSwitched 事件,触发 spriteLifecycleManager 的完整副作用:
293
+ * - emit('personaChanged') 通知宿主 UI
294
+ * - proactiveEngine.addNotice('persona', ...) 记录通知
295
+ * - perceptionCoordinator.refreshBeforeChat() 基于新角色 traits 重新推导情感基调
296
+ *
297
+ * 对话进行中切换角色会破坏当前 system prompt,与项目切换一致拒绝。
298
+ *
299
+ * @param name 目标角色名
300
+ * @returns 切换成功返回新角色的 system prompt 段;角色不存在或切换失败返回 null
301
+ */
302
+ switchPersona(name: string): string | null;
303
+ /**
304
+ * 获取角色切换锁定状态(透传 PersonaManager,P0-2 用户体验打磨)
305
+ *
306
+ * 与 switchPersona 分离:switchPersona 仍返回 string | null 不变,
307
+ * 锁定原因查询走独立路径,避免破坏既有契约(cli.ts、sprite.test.ts 等消费者无感)。
308
+ *
309
+ * 宿主 IPC 层调用此方法前置判断锁定状态,区分"切换失败"原因
310
+ * (locked / busy / not_found / invalid),让用户知道为什么没反应。
311
+ *
312
+ * @returns locked 是否处于锁定状态;unlockAt 锁定自动恢复时间戳(ms epoch),未锁定时为 null
313
+ */
314
+ getPersonaSwitchLockStatus(): {
315
+ locked: boolean;
316
+ unlockAt: number | null;
317
+ };
318
+ /**
319
+ * 刷新 AgentLoop 的 systemPromptPrefix(角色 prompt + profile prompt)
320
+ *
321
+ * 提取自 doPostProcess 自动匹配 + switchPersona 手动切换两处共用逻辑(ADR-017 枝叶层 2 次提取)。
322
+ * 组装规则:[personaPrompt, profilePrompt].filter(Boolean).join('\n\n') + 末尾分隔符 '---'
323
+ *
324
+ * 调用时机:
325
+ * - tryAutoMatchPersona 中角色自动匹配成功后(chat() 回答前)
326
+ * - switchPersona 手动切换成功后
327
+ * - loop 为 null 时静默跳过(init 前或 close 后的边界场景)
328
+ */
329
+ private refreshPersonaPrefixOnLoop;
330
+ /**
331
+ * 角色自动匹配(best-effort:失败不阻塞对话流程)
332
+ *
333
+ * 在 chat() 回答前执行,确保本轮 LLM 调用就用匹配到的角色 system prompt。
334
+ * 两层匹配策略:关键词高置信度 → LLM 辅助(低置信度且 backgroundProvider 已注入时)。
335
+ * LLM 辅助匹配在 agent 层执行,遵循 backend_layers_rules §分层职责(persona/ 不直接调 LLM)。
336
+ *
337
+ * 匹配成功时:切换角色 + 发射 personaSwitched 事件 + 刷新 AgentLoop 前缀。
338
+ * 匹配失败/异常时:静默降级,保持当前角色。
339
+ *
340
+ * @param input 用户输入文本
341
+ */
342
+ private tryAutoMatchPersona;
343
+ /**
344
+ * 判断是否应回退到默认角色
345
+ *
346
+ * 回退条件(全部满足):
347
+ * 1. 当前激活角色不是默认角色(已在默认角色则无需回退)
348
+ * 2. 角色管理器存在且非锁定状态(锁定时 switchPersona 也会被拦截,回退无意义)
349
+ *
350
+ * 注意:bgProvider 未配置时也会触发回退——因为关键词 + LLM 均未命中说明当前角色不匹配本轮对话,
351
+ * 回退默认角色比卡在错误角色上更合理。
352
+ *
353
+ * @returns 是否应回退到默认角色
354
+ */
355
+ private shouldFallbackToDefault;
283
356
  /**
284
357
  * 手动触发 profile facts 归档(manual 模式下使用)
285
358
  *
286
359
  * manual 模式下 postProcess 跳过自动归档,用户需通过此 API 主动归档。
287
360
  * full / insights-only 模式下也可调用(会重复归档,但不推荐)。
288
361
  *
362
+ * FIX-P1-4:新增 options 参数透传给 ArchiveCoordinator。
363
+ * 宿主自动触发时传 `{ autoTriggered: true }`,由 ArchiveCoordinator 内部按模式判断;
364
+ * 用户手动触发时无需传 options(默认 autoTriggered=false,无条件执行)。
365
+ *
289
366
  * 归档逻辑已委托给 ArchiveCoordinator
290
367
  *
291
368
  * @param input 本轮用户输入
369
+ * @param options 触发选项(autoTriggered 默认 false,即手动触发)
292
370
  * @returns 写入/更新的 UserProfileEntry 列表
293
371
  */
294
- archiveProfileFacts(input: string): Promise<UserProfileEntry[]>;
372
+ archiveProfileFacts(input: string, options?: ArchiveTriggerOptions): Promise<UserProfileEntry[]>;
295
373
  /**
296
374
  * 手动触发 insight 提取(manual 模式下使用)
297
375
  *
298
376
  * manual 模式下 postProcess 跳过自动归档,用户需通过此 API 主动归档。
299
377
  * 内部仍走 classify 判断(避免无价值输入浪费 LLM 调用)。
300
378
  *
379
+ * FIX-P1-4:新增 options 参数透传给 ArchiveCoordinator。
380
+ * 宿主自动触发时传 `{ autoTriggered: true }`,由 ArchiveCoordinator 内部按模式判断;
381
+ * 用户手动触发时无需传 options(默认 autoTriggered=false,无条件执行)。
382
+ *
301
383
  * 归档逻辑已委托给 ArchiveCoordinator
302
384
  *
303
385
  * @param input 本轮用户输入
304
386
  * @param assistantContent 本轮助手回复内容
387
+ * @param options 触发选项(autoTriggered 默认 false,即手动触发)
305
388
  * @returns 写入/更新的 Memory 列表
306
389
  */
307
- archiveInsight(input: string, assistantContent: string): Promise<Memory[]>;
390
+ archiveInsight(input: string, assistantContent: string, options?: ArchiveTriggerOptions): Promise<Memory[]>;
308
391
  /**
309
392
  * 手动归档会话内容(content 类记忆)
310
393
  *
311
394
  * 适用于 `insights-only` / `manual` 模式下用户手动触发会话内容归档。
312
395
  * `full` 模式下由宿主在会话切换前自动调用,无需用户干预。
313
396
  *
397
+ * FIX-P1-4:新增 options 参数透传给 ArchiveCoordinator。
398
+ * 宿主自动触发时传 `{ autoTriggered: true }`,由 ArchiveCoordinator 内部按模式判断;
399
+ * 用户手动触发时无需传 options(默认 autoTriggered=false,无条件执行)。
400
+ *
314
401
  * 归档逻辑已委托给 ArchiveCoordinator
315
402
  *
316
403
  * @param date 会话日期 YYYY-MM-DD
317
404
  * @param session 会话标识(不含日期前缀)
405
+ * @param options 触发选项(autoTriggered 默认 false,即手动触发)
318
406
  * @returns 归档结果(memories 可能为空,表示无归档价值或 LLM 失败)
319
407
  */
320
- archiveSessionContent(date: string, session: string): Promise<SessionArchiveResult>;
408
+ archiveSessionContent(date: string, session: string, options?: ArchiveTriggerOptions): Promise<SessionArchiveResult>;
409
+ /**
410
+ * 获取 pending 归档队列长度(MIND2-C3)
411
+ *
412
+ * 返回待重试的失败归档数。归档失败时输入入队,下次同阶段归档调用时自动重试。
413
+ * 供宿主 UI 展示"N 条待补归档"提示,或判断是否需要手动触发重试。
414
+ *
415
+ * @returns pending 队列长度(0 表示无待补)
416
+ */
417
+ getPendingArchiveCount(): number;
321
418
  /**
322
419
  * 重载配置类记忆:从 configDir 重新扫描指定 source 的配置文件并更新内存缓存 + SQLite 索引
323
420
  *
@@ -327,7 +424,7 @@ export declare class Agent extends TypedEventEmitter<AgentEventMap> {
327
424
  * 支持的 source:
328
425
  * - 'skill' → SkillManager.reload() 清空缓存重新扫描 skills/ 目录
329
426
  * - 'persona' → PersonaManager.reload() 清空缓存重新扫描 personas/ 目录(保持激活角色)
330
- * - 'rule' → 无操作(rule 类型已由 ConfigManager.addRule() 即时注入 system prompt)
427
+ * - 'rule' → 无操作(rule 类型由 ConfigManager CRUD 即时同步 bootstrap 段,详见 deleteRule/updateRule)
331
428
  * - 'guardrail' → 抛错(guardrail 是 AgentLoop 的 readonly 数组,需 rebuildComponents 才能重载)
332
429
  * - undefined → 重载 skill + persona(全量重载,不含 guardrail)
333
430
  *
@@ -353,20 +450,61 @@ export declare class Agent extends TypedEventEmitter<AgentEventMap> {
353
450
  */
354
451
  private assertInitialized;
355
452
  /**
356
- * 非空断言守卫——对 null/undefined 值抛出清晰错误的运行时检查
453
+ * 断言对话未进行中 — 统一守卫,避免在 chat() 进行中执行会破坏状态一致性的操作
454
+ *
455
+ * 提取原因:switchProject / setProvider / setBackgroundProvider / setArchiveMode /
456
+ * switchPersona / rebuildComponents 等 6 处方法均有相同的 `if (isBusy) throw chatBusyError('XXX')` 守卫,
457
+ * 违反 DRY 原则(v2 神木回天 REPEAT-4 闭环)。
458
+ *
459
+ * 注意:reloadConfig 不使用本方法——它在 isBusy 时需暂存 source 而非直接抛错。
357
460
  *
358
- * @param value 可能为 null/undefined 的值
359
- * @param name 组件名称(用于错误消息)
360
- * @throws MemoraError 如果 value 为 null/undefined
461
+ * @param operation 操作名称(用于错误消息,如 "切换项目")
361
462
  */
362
- private requireNonNull;
463
+ private assertNotBusy;
464
+ /**
465
+ * 断言 getter:获取 loop,若 null 则抛出明确错误
466
+ * 替代 `this.loop!` 非空断言,提供更好的重构安全性
467
+ */
468
+ private get requireLoop();
469
+ /**
470
+ * 断言 getter:获取 history,若 null 则抛出明确错误
471
+ */
472
+ private get requireHistory();
473
+ /**
474
+ * 断言 getter:获取 pctx,若 null 则抛出明确错误
475
+ */
476
+ private get requirePctx();
477
+ private get requireArchiveCoordinator();
478
+ private get requireSessionManager();
363
479
  /**
364
480
  * 关闭 Agent,释放 SQLite 连接等资源
365
481
  */
366
482
  close(): Promise<void>;
483
+ /**
484
+ * 统一 null 化所有组件字段(新增 Manager 时在此处追加一行)
485
+ *
486
+ * 仅处理"纯 null 化"字段,带副作用的清理(dispose/stop/close/shutdown)
487
+ * 仍由 close() 显式调用,顺序敏感不可合并。
488
+ */
489
+ private nullifyAllComponents;
367
490
  get initialized(): boolean;
368
491
  get context(): AgentContext | null;
492
+ /**
493
+ * @deprecated 直接暴露 AgentLoop 破坏封装,将在下一主版本移除。
494
+ * 使用 getMessages() / getMessageCount() 等有界接口替代。
495
+ */
369
496
  get agentLoop(): AgentLoop | null;
497
+ /**
498
+ * 获取当前消息列表(只读副本,不可绕过 Agent 编排链路直接修改)
499
+ */
500
+ getMessages(): readonly Message[];
501
+ /** 获取当前消息数量 */
502
+ getMessageCount(): number;
503
+ /**
504
+ * @deprecated 直接暴露 MessageHistory 破坏封装,将在下一主版本移除。
505
+ * 使用 Agent 的对话管理方法(chat/chatSync/forkSession)替代直接操作。
506
+ */
507
+ get agentHistory(): MessageHistory | null;
370
508
  /**
371
509
  * 注入情感基调到 system prompt(Phase 2.1:AffectController)
372
510
  *
@@ -376,10 +514,21 @@ export declare class Agent extends TypedEventEmitter<AgentEventMap> {
376
514
  * @param affectString 情感描述文本,传空字符串清除注入
377
515
  */
378
516
  injectAffect(affectString: string): void;
379
- get agentHistory(): MessageHistory | null;
380
517
  get provider(): LlmProvider;
381
518
  get isBusy(): boolean;
382
519
  get lastInteractionAt(): Date | null;
520
+ /**
521
+ * 记忆治理统一门面(L0 衰减 / L1 去重 / L2 时效性 / L3 冲突 / 诊断 / 推荐)
522
+ *
523
+ * 统一入口替代散落在 Agent 上的 6 个独立方法:
524
+ * agent.governance.decay() → 原 runMemoryDecayOnce()
525
+ * agent.governance.deduplicate() → 原 deduplicateMemories()
526
+ * agent.governance.evaluateTimeliness() → 原 evaluateTimeliness()
527
+ * agent.governance.detectConflicts() → 原 detectConflicts()
528
+ * agent.governance.sourceHealth() → 原 sourceHealth()
529
+ * agent.governance.suggest() → 原 suggest()
530
+ */
531
+ get governance(): MemoryGovernance | null;
383
532
  /**
384
533
  * 获取 Agent 运行时指标快照(可观测性增强)
385
534
  *
@@ -434,15 +583,6 @@ export declare class Agent extends TypedEventEmitter<AgentEventMap> {
434
583
  * 宿主项目常用模式:`const mem = agent.memory; if (!mem) return [];`
435
584
  */
436
585
  get memory(): MemoryInspector | null;
437
- /**
438
- * 记忆写入器(可能为 null)—— upsert / delete / restore / purge / purgeExpired /
439
- * addRelation / removeRelation
440
- *
441
- * P1-2 拆分:从 MemoryInspector 拆出写操作代理,与 MemoryInspector 严格分工。
442
- * 返回 null 时表示 Agent 未初始化或存储层未就绪。
443
- * 宿主项目常用模式:`const m = agent.memoryMutator; if (!m) return; m.upsert(...)`
444
- */
445
- get memoryMutator(): MemoryMutator | null;
446
586
  /**
447
587
  * 项目管理器(可能为 null)
448
588
  *
@@ -481,5 +621,7 @@ export declare class Agent extends TypedEventEmitter<AgentEventMap> {
481
621
  get works(): WorkProjectionManager | null;
482
622
  /** 会话管理器(宿主可通过此 getter 访问会话恢复/切换/分叉功能) */
483
623
  get sessionManager(): SessionManager | null;
624
+ /** 文本润色管理器(宿主可通过此 getter 调用 polish 方法) */
625
+ get polish(): TextPolishManager | null;
484
626
  }
485
627
  //# sourceMappingURL=agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent/agent.ts"],"names":[],"mappings":"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"}