@zooique/memora 2.0.0 → 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 (212) hide show
  1. package/README.en.md +272 -0
  2. package/README.md +150 -38
  3. package/dist/agent/agent.d.ts +233 -58
  4. package/dist/agent/agent.d.ts.map +1 -1
  5. package/dist/agent/agent.js +651 -359
  6. package/dist/agent/agent.js.map +1 -1
  7. package/dist/agent/assembler.d.ts +29 -13
  8. package/dist/agent/assembler.d.ts.map +1 -1
  9. package/dist/agent/assembler.js +79 -44
  10. package/dist/agent/assembler.js.map +1 -1
  11. package/dist/agent/builtinToolHandlers.d.ts +26 -1
  12. package/dist/agent/builtinToolHandlers.d.ts.map +1 -1
  13. package/dist/agent/builtinToolHandlers.js +73 -1
  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 +58 -14
  28. package/dist/agent/loop.d.ts.map +1 -1
  29. package/dist/agent/loop.js +184 -131
  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/configManager.d.ts +87 -3
  39. package/dist/agent/managers/configManager.d.ts.map +1 -1
  40. package/dist/agent/managers/configManager.js +139 -2
  41. package/dist/agent/managers/configManager.js.map +1 -1
  42. package/dist/agent/managers/dedupManager.d.ts +169 -0
  43. package/dist/agent/managers/dedupManager.d.ts.map +1 -0
  44. package/dist/agent/managers/dedupManager.js +336 -0
  45. package/dist/agent/managers/dedupManager.js.map +1 -0
  46. package/dist/agent/managers/insightExtractor.d.ts.map +1 -1
  47. package/dist/agent/managers/insightExtractor.js +11 -11
  48. package/dist/agent/managers/insightExtractor.js.map +1 -1
  49. package/dist/agent/managers/llmJudgeHelper.d.ts +38 -0
  50. package/dist/agent/managers/llmJudgeHelper.d.ts.map +1 -0
  51. package/dist/agent/managers/llmJudgeHelper.js +49 -0
  52. package/dist/agent/managers/llmJudgeHelper.js.map +1 -0
  53. package/dist/agent/managers/memoryAdvisor.d.ts +3 -3
  54. package/dist/agent/managers/memoryAdvisor.d.ts.map +1 -1
  55. package/dist/agent/managers/memoryAdvisor.js +53 -67
  56. package/dist/agent/managers/memoryAdvisor.js.map +1 -1
  57. package/dist/agent/managers/memoryDecayScheduler.d.ts +46 -5
  58. package/dist/agent/managers/memoryDecayScheduler.d.ts.map +1 -1
  59. package/dist/agent/managers/memoryDecayScheduler.js +127 -63
  60. package/dist/agent/managers/memoryDecayScheduler.js.map +1 -1
  61. package/dist/agent/managers/memoryGovernance.d.ts +56 -0
  62. package/dist/agent/managers/memoryGovernance.d.ts.map +1 -0
  63. package/dist/agent/managers/memoryGovernance.js +63 -0
  64. package/dist/agent/managers/memoryGovernance.js.map +1 -0
  65. package/dist/agent/managers/memoryInspector.d.ts +32 -157
  66. package/dist/agent/managers/memoryInspector.d.ts.map +1 -1
  67. package/dist/agent/managers/memoryInspector.js +70 -363
  68. package/dist/agent/managers/memoryInspector.js.map +1 -1
  69. package/dist/agent/managers/relationBuilder.js +2 -2
  70. package/dist/agent/managers/relationBuilder.js.map +1 -1
  71. package/dist/agent/managers/sessionArchiver.d.ts +6 -1
  72. package/dist/agent/managers/sessionArchiver.d.ts.map +1 -1
  73. package/dist/agent/managers/sessionArchiver.js +19 -22
  74. package/dist/agent/managers/sessionArchiver.js.map +1 -1
  75. package/dist/agent/managers/streamAccumulator.d.ts +45 -0
  76. package/dist/agent/managers/streamAccumulator.d.ts.map +1 -0
  77. package/dist/agent/managers/streamAccumulator.js +40 -0
  78. package/dist/agent/managers/streamAccumulator.js.map +1 -0
  79. package/dist/agent/managers/textPolishManager.d.ts.map +1 -1
  80. package/dist/agent/managers/textPolishManager.js +4 -7
  81. package/dist/agent/managers/textPolishManager.js.map +1 -1
  82. package/dist/agent/managers/workProjection.d.ts +16 -1
  83. package/dist/agent/managers/workProjection.d.ts.map +1 -1
  84. package/dist/agent/managers/workProjection.js +48 -24
  85. package/dist/agent/managers/workProjection.js.map +1 -1
  86. package/dist/agent/toolExecutor.d.ts +22 -2
  87. package/dist/agent/toolExecutor.d.ts.map +1 -1
  88. package/dist/agent/toolExecutor.js +28 -3
  89. package/dist/agent/toolExecutor.js.map +1 -1
  90. package/dist/agent/types.d.ts +10 -1
  91. package/dist/agent/types.d.ts.map +1 -1
  92. package/dist/agent/userFactExtractor.d.ts.map +1 -1
  93. package/dist/agent/userFactExtractor.js +7 -0
  94. package/dist/agent/userFactExtractor.js.map +1 -1
  95. package/dist/config/loader.d.ts +124 -236
  96. package/dist/config/loader.d.ts.map +1 -1
  97. package/dist/config/loader.js +273 -117
  98. package/dist/config/loader.js.map +1 -1
  99. package/dist/index.d.ts +7 -2
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/index.js +9 -0
  102. package/dist/index.js.map +1 -1
  103. package/dist/llm/embedding.d.ts +13 -1
  104. package/dist/llm/embedding.d.ts.map +1 -1
  105. package/dist/llm/embedding.js.map +1 -1
  106. package/dist/llm/factory.d.ts +19 -5
  107. package/dist/llm/factory.d.ts.map +1 -1
  108. package/dist/llm/factory.js +19 -37
  109. package/dist/llm/factory.js.map +1 -1
  110. package/dist/llm/openaiCompatible.d.ts.map +1 -1
  111. package/dist/llm/openaiCompatible.js +2 -9
  112. package/dist/llm/openaiCompatible.js.map +1 -1
  113. package/dist/logging/logger.d.ts +3 -1
  114. package/dist/logging/logger.d.ts.map +1 -1
  115. package/dist/logging/logger.js +47 -50
  116. package/dist/logging/logger.js.map +1 -1
  117. package/dist/memory/governance.d.ts +50 -0
  118. package/dist/memory/governance.d.ts.map +1 -0
  119. package/dist/memory/governance.js +70 -0
  120. package/dist/memory/governance.js.map +1 -0
  121. package/dist/memory/hybridMerge.d.ts +0 -4
  122. package/dist/memory/hybridMerge.d.ts.map +1 -1
  123. package/dist/memory/hybridMerge.js +19 -4
  124. package/dist/memory/hybridMerge.js.map +1 -1
  125. package/dist/memory/inMemoryRelationStore.d.ts +7 -0
  126. package/dist/memory/inMemoryRelationStore.d.ts.map +1 -1
  127. package/dist/memory/inMemoryRelationStore.js +15 -0
  128. package/dist/memory/inMemoryRelationStore.js.map +1 -1
  129. package/dist/memory/inMemoryStorage.d.ts +36 -1
  130. package/dist/memory/inMemoryStorage.d.ts.map +1 -1
  131. package/dist/memory/inMemoryStorage.js +66 -16
  132. package/dist/memory/inMemoryStorage.js.map +1 -1
  133. package/dist/memory/loader.d.ts +2 -0
  134. package/dist/memory/loader.d.ts.map +1 -1
  135. package/dist/memory/loader.js +8 -1
  136. package/dist/memory/loader.js.map +1 -1
  137. package/dist/memory/lockManager.d.ts +7 -2
  138. package/dist/memory/lockManager.d.ts.map +1 -1
  139. package/dist/memory/lockManager.js +31 -5
  140. package/dist/memory/lockManager.js.map +1 -1
  141. package/dist/memory/projectManager.d.ts +2 -1
  142. package/dist/memory/projectManager.d.ts.map +1 -1
  143. package/dist/memory/projectManager.js +21 -3
  144. package/dist/memory/projectManager.js.map +1 -1
  145. package/dist/memory/projectRegistry.d.ts +34 -1
  146. package/dist/memory/projectRegistry.d.ts.map +1 -1
  147. package/dist/memory/projectRegistry.js +99 -22
  148. package/dist/memory/projectRegistry.js.map +1 -1
  149. package/dist/memory/recall.d.ts +16 -0
  150. package/dist/memory/recall.d.ts.map +1 -1
  151. package/dist/memory/recall.js +33 -18
  152. package/dist/memory/recall.js.map +1 -1
  153. package/dist/memory/relationStore.d.ts +20 -3
  154. package/dist/memory/relationStore.d.ts.map +1 -1
  155. package/dist/memory/sourceValidation.d.ts +11 -0
  156. package/dist/memory/sourceValidation.d.ts.map +1 -1
  157. package/dist/memory/sourceValidation.js +24 -2
  158. package/dist/memory/sourceValidation.js.map +1 -1
  159. package/dist/memory/storageInterface.d.ts +26 -1
  160. package/dist/memory/storageInterface.d.ts.map +1 -1
  161. package/dist/memory/store.d.ts +22 -1
  162. package/dist/memory/store.d.ts.map +1 -1
  163. package/dist/memory/store.js +58 -20
  164. package/dist/memory/store.js.map +1 -1
  165. package/dist/memory/types.d.ts +44 -31
  166. package/dist/memory/types.d.ts.map +1 -1
  167. package/dist/memory/types.js +63 -24
  168. package/dist/memory/types.js.map +1 -1
  169. package/dist/memory/userProfile.d.ts +32 -8
  170. package/dist/memory/userProfile.d.ts.map +1 -1
  171. package/dist/memory/userProfile.js +105 -44
  172. package/dist/memory/userProfile.js.map +1 -1
  173. package/dist/memory/vectorStore.d.ts +16 -22
  174. package/dist/memory/vectorStore.d.ts.map +1 -1
  175. package/dist/memory/vectorStore.js +49 -22
  176. package/dist/memory/vectorStore.js.map +1 -1
  177. package/dist/persona/personaManager.d.ts +36 -87
  178. package/dist/persona/personaManager.d.ts.map +1 -1
  179. package/dist/persona/personaManager.js +131 -230
  180. package/dist/persona/personaManager.js.map +1 -1
  181. package/dist/skill/skillManager.d.ts +11 -57
  182. package/dist/skill/skillManager.d.ts.map +1 -1
  183. package/dist/skill/skillManager.js +46 -142
  184. package/dist/skill/skillManager.js.map +1 -1
  185. package/dist/skill/types.d.ts +2 -3
  186. package/dist/skill/types.d.ts.map +1 -1
  187. package/dist/utils/configResourceManager.d.ts +111 -0
  188. package/dist/utils/configResourceManager.d.ts.map +1 -0
  189. package/dist/utils/configResourceManager.js +148 -0
  190. package/dist/utils/configResourceManager.js.map +1 -0
  191. package/dist/utils/errors.d.ts +17 -0
  192. package/dist/utils/errors.d.ts.map +1 -1
  193. package/dist/utils/errors.js +19 -0
  194. package/dist/utils/errors.js.map +1 -1
  195. package/dist/utils/eventEmitter.d.ts +83 -6
  196. package/dist/utils/eventEmitter.d.ts.map +1 -1
  197. package/dist/utils/eventEmitter.js +23 -0
  198. package/dist/utils/eventEmitter.js.map +1 -1
  199. package/dist/utils/frontmatter.d.ts.map +1 -1
  200. package/dist/utils/frontmatter.js +4 -2
  201. package/dist/utils/frontmatter.js.map +1 -1
  202. package/dist/utils/math.d.ts +11 -0
  203. package/dist/utils/math.d.ts.map +1 -1
  204. package/dist/utils/math.js +17 -0
  205. package/dist/utils/math.js.map +1 -1
  206. package/dist/utils/segmenter.d.ts +0 -10
  207. package/dist/utils/segmenter.d.ts.map +1 -1
  208. package/dist/utils/segmenter.js +10 -1
  209. package/dist/utils/segmenter.js.map +1 -1
  210. package/docs/memora-api-reference.md +1235 -0
  211. package/docs/memora-/346/216/245/345/205/245/346/214/207/345/215/227.md +808 -0
  212. package/package.json +39 -22
@@ -156,6 +156,15 @@ export interface UIMessages {
156
156
  guardrailWarningPrefix?: string;
157
157
  /** 输出被护栏阻断提示模板 */
158
158
  outputBlockedByGuard?: (rule: string) => string;
159
+ /**
160
+ * Reflection(反思/自修正)提示生成函数
161
+ *
162
+ * 工具调用失败且错误可重试时,在 LLM 上下文中追加此提示,帮助 LLM 聚焦于修正而非放弃。
163
+ *
164
+ * @param remaining 剩余反思次数
165
+ * @returns 系统消息内容
166
+ */
167
+ reflectionHint?: (remaining: number) => string;
159
168
  }
160
169
  /**
161
170
  * Agent 归档模式三态控制
@@ -187,7 +196,7 @@ export interface AgentOptions {
187
196
  backgroundProvider?: LlmProvider;
188
197
  /** 配置目录(personas/rules/skills) */
189
198
  configDir?: string;
190
- /** 记忆数据目录(默认 ~/.memora) */
199
+ /** 记忆数据目录(由宿主显式注入) */
191
200
  dataDir?: string;
192
201
  /** 项目注册表目录(默认与 dataDir 相同)。设为用户级路径可避免每项目重复存储 */
193
202
  registryDir?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"userFactExtractor.d.ts","sourceRoot":"","sources":["../../src/agent/userFactExtractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,EAAE,CAgFlF"}
1
+ {"version":3,"file":"userFactExtractor.d.ts","sourceRoot":"","sources":["../../src/agent/userFactExtractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,EAAE,CAuFlF"}
@@ -17,6 +17,8 @@ export function extractUserFacts(input, turnIndex) {
17
17
  if (identityMatch) {
18
18
  facts.push({
19
19
  category: 'identity',
20
+ // 显式 fieldName,冲突检测基于 category + fieldName
21
+ fieldName: '姓名',
20
22
  value: `姓名: ${identityMatch[1]}`,
21
23
  sourceTurn: turnIndex,
22
24
  confidence: 0.95,
@@ -27,6 +29,7 @@ export function extractUserFacts(input, turnIndex) {
27
29
  if (locationMatch) {
28
30
  facts.push({
29
31
  category: 'identity',
32
+ fieldName: '住址',
30
33
  value: `住址: ${locationMatch[1]}`,
31
34
  sourceTurn: turnIndex,
32
35
  confidence: 0.9,
@@ -38,6 +41,7 @@ export function extractUserFacts(input, turnIndex) {
38
41
  // 避免与 identityMatch 重复
39
42
  facts.push({
40
43
  category: 'identity',
44
+ fieldName: '职业',
41
45
  value: `职业: ${jobMatch[1]}`,
42
46
  sourceTurn: turnIndex,
43
47
  confidence: 0.85,
@@ -49,6 +53,7 @@ export function extractUserFacts(input, turnIndex) {
49
53
  if (prefMatch) {
50
54
  facts.push({
51
55
  category: 'preference',
56
+ fieldName: '偏好',
52
57
  value: `偏好: ${prefMatch[1]}`,
53
58
  sourceTurn: turnIndex,
54
59
  confidence: 0.85,
@@ -60,6 +65,7 @@ export function extractUserFacts(input, turnIndex) {
60
65
  if (toolMatch && !prefMatch) {
61
66
  facts.push({
62
67
  category: 'preference',
68
+ fieldName: '工具',
63
69
  value: `工具: ${toolMatch[1]}`,
64
70
  sourceTurn: turnIndex,
65
71
  confidence: 0.8,
@@ -71,6 +77,7 @@ export function extractUserFacts(input, turnIndex) {
71
77
  if (expertiseMatch) {
72
78
  facts.push({
73
79
  category: 'expertise',
80
+ fieldName: '专长',
74
81
  value: `专长: ${expertiseMatch[1]}`,
75
82
  sourceTurn: turnIndex,
76
83
  confidence: 0.75,
@@ -1 +1 @@
1
- {"version":3,"file":"userFactExtractor.js","sourceRoot":"","sources":["../../src/agent/userFactExtractor.ts"],"names":[],"mappings":"AAeA;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,SAAiB;IAC/D,MAAM,KAAK,GAAoB,EAAE,CAAC;IAElC,kBAAkB;IAClB,0BAA0B;IAC1B,uCAAuC;IACzC,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAChF,IAAI,aAAa,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,OAAO,aAAa,CAAC,CAAC,CAAC,EAAE;YAChC,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;IAClB,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7E,IAAI,aAAa,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,OAAO,aAAa,CAAC,CAAC,CAAC,EAAE;YAChC,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAC1B,4DAA4D,CAC7D,CAAC;IACF,IAAI,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;QAC/B,uBAAuB;QACvB,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE;YAC3B,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;IAClB,qCAAqC;IACrC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAC3B,wEAAwE,CACzE,CAAC;IACF,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,YAAY;YACtB,KAAK,EAAE,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE;YAC5B,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;IACrB,6BAA6B;IAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC3E,IAAI,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,YAAY;YACtB,KAAK,EAAE,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE;YAC5B,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB;IACnB,qBAAqB;IACrB,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACjF,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,OAAO,cAAc,CAAC,CAAC,CAAC,EAAE;YACjC,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"userFactExtractor.js","sourceRoot":"","sources":["../../src/agent/userFactExtractor.ts"],"names":[],"mappings":"AAeA;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,SAAiB;IAC/D,MAAM,KAAK,GAAoB,EAAE,CAAC;IAElC,kBAAkB;IAClB,0BAA0B;IAC1B,uCAAuC;IACzC,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAChF,IAAI,aAAa,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,UAAU;YACpB,2CAA2C;YAC3C,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,OAAO,aAAa,CAAC,CAAC,CAAC,EAAE;YAChC,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;IAClB,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7E,IAAI,aAAa,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,OAAO,aAAa,CAAC,CAAC,CAAC,EAAE;YAChC,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAC1B,4DAA4D,CAC7D,CAAC;IACF,IAAI,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;QAC/B,uBAAuB;QACvB,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE;YAC3B,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;IAClB,qCAAqC;IACrC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAC3B,wEAAwE,CACzE,CAAC;IACF,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,YAAY;YACtB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE;YAC5B,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;IACrB,6BAA6B;IAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC3E,IAAI,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,YAAY;YACtB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE;YAC5B,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB;IACnB,qBAAqB;IACrB,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACjF,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,OAAO,cAAc,CAAC,CAAC,CAAC,EAAE;YACjC,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,246 +1,134 @@
1
- import { z } from 'zod';
2
- declare const ConfigSchema: z.ZodObject<{
3
- llm: z.ZodDefault<z.ZodObject<{
4
- provider: z.ZodDefault<z.ZodString>;
5
- model: z.ZodDefault<z.ZodString>;
6
- baseUrl: z.ZodOptional<z.ZodString>;
7
- apiKey: z.ZodOptional<z.ZodString>;
8
- temperature: z.ZodDefault<z.ZodNumber>;
9
- /**
10
- * 多 Provider 映射表
11
- *
12
- * key 为 Provider 别名(如 "deepseek"、"openai"),value 为 Provider 配置。
13
- * 配置后,旧扁平字段(provider/model/baseUrl/apiKey)被忽略。
14
- * 不配置时回退到旧的单 provider 行为——完全向后兼容。
15
- */
16
- providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
17
- provider: z.ZodString;
18
- model: z.ZodString;
19
- baseUrl: z.ZodOptional<z.ZodString>;
20
- apiKey: z.ZodOptional<z.ZodString>;
21
- /** 该 Provider 的 temperature,未配置时回退到全局 llm.temperature */
22
- temperature: z.ZodOptional<z.ZodNumber>;
23
- /** 该 Provider 的上下文窗口大小(token 数),未配置时回退到 memory.maxContextTokens */
24
- contextWindow: z.ZodOptional<z.ZodNumber>;
25
- }, "strip", z.ZodTypeAny, {
26
- model: string;
27
- provider: string;
28
- apiKey?: string | undefined;
29
- temperature?: number | undefined;
30
- baseUrl?: string | undefined;
31
- contextWindow?: number | undefined;
32
- }, {
33
- model: string;
34
- provider: string;
35
- apiKey?: string | undefined;
36
- temperature?: number | undefined;
37
- baseUrl?: string | undefined;
38
- contextWindow?: number | undefined;
39
- }>>>;
40
- /**
41
- * 当前激活的 Provider 别名
42
- *
43
- * 必须与 providers 中的某个 key 一致。
44
- * 不配置时默认使用 providers 的第一个 key。
45
- */
46
- active: z.ZodOptional<z.ZodString>;
47
- /**
48
- * 后台通道配置(多 Provider 路由预留)
49
- *
50
- * 不配时所有消费者复用前台(llm)配置——零破坏性,完全向后兼容。
51
- * 配置后,归档/投影/画像等后台操作使用此通道,降低成本。
52
- * 详见接入指南 §九
53
- */
54
- background: z.ZodOptional<z.ZodObject<{
55
- provider: z.ZodString;
56
- model: z.ZodString;
57
- baseUrl: z.ZodOptional<z.ZodString>;
58
- apiKey: z.ZodOptional<z.ZodString>;
59
- temperature: z.ZodDefault<z.ZodNumber>;
60
- }, "strip", z.ZodTypeAny, {
61
- temperature: number;
62
- model: string;
63
- provider: string;
64
- apiKey?: string | undefined;
65
- baseUrl?: string | undefined;
66
- }, {
67
- model: string;
68
- provider: string;
69
- apiKey?: string | undefined;
70
- temperature?: number | undefined;
71
- baseUrl?: string | undefined;
72
- }>>;
73
- }, "strip", z.ZodTypeAny, {
74
- temperature: number;
75
- model: string;
76
- provider: string;
77
- apiKey?: string | undefined;
78
- active?: string | undefined;
79
- baseUrl?: string | undefined;
80
- providers?: Record<string, {
81
- model: string;
82
- provider: string;
83
- apiKey?: string | undefined;
84
- temperature?: number | undefined;
85
- baseUrl?: string | undefined;
86
- contextWindow?: number | undefined;
87
- }> | undefined;
88
- background?: {
89
- temperature: number;
90
- model: string;
91
- provider: string;
92
- apiKey?: string | undefined;
93
- baseUrl?: string | undefined;
94
- } | undefined;
95
- }, {
96
- apiKey?: string | undefined;
97
- temperature?: number | undefined;
98
- model?: string | undefined;
99
- active?: string | undefined;
100
- provider?: string | undefined;
101
- baseUrl?: string | undefined;
102
- providers?: Record<string, {
103
- model: string;
104
- provider: string;
105
- apiKey?: string | undefined;
106
- temperature?: number | undefined;
107
- baseUrl?: string | undefined;
108
- contextWindow?: number | undefined;
109
- }> | undefined;
110
- background?: {
111
- model: string;
112
- provider: string;
113
- apiKey?: string | undefined;
114
- temperature?: number | undefined;
115
- baseUrl?: string | undefined;
116
- } | undefined;
117
- }>>;
118
- memory: z.ZodDefault<z.ZodObject<{
119
- dataDir: z.ZodDefault<z.ZodString>;
120
- maxContextTokens: z.ZodDefault<z.ZodNumber>;
121
- }, "strip", z.ZodTypeAny, {
122
- dataDir: string;
123
- maxContextTokens: number;
124
- }, {
125
- dataDir?: string | undefined;
126
- maxContextTokens?: number | undefined;
127
- }>>;
128
- security: z.ZodDefault<z.ZodObject<{
129
- permission: z.ZodDefault<z.ZodEnum<["owner", "guest"]>>;
130
- confirmWrites: z.ZodDefault<z.ZodBoolean>;
131
- }, "strip", z.ZodTypeAny, {
132
- permission: "owner" | "guest";
133
- confirmWrites: boolean;
134
- }, {
135
- permission?: "owner" | "guest" | undefined;
136
- confirmWrites?: boolean | undefined;
137
- }>>;
138
- allowedPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
139
- persona: z.ZodOptional<z.ZodString>;
1
+ interface ProviderConfig {
140
2
  /**
141
- * Embedding 配置(可选,配置后启用向量语义召回)
3
+ * Provider 标识(仅用于日志,不影响路由)
142
4
  *
143
- * 复用 OpenAI 兼容协议的 /embeddings 端点。
144
- * 不配置时降级为纯关键词召回(当前行为)。
5
+ * 宿主 UI 用此字段存储模式标识('cloud' / 'local' / 厂商名),
6
+ * 内核仅作透传,不依据此字段做路由决策。
145
7
  */
146
- embedding: z.ZodOptional<z.ZodObject<{
147
- model: z.ZodString;
148
- baseUrl: z.ZodOptional<z.ZodString>;
149
- apiKey: z.ZodOptional<z.ZodString>;
150
- }, "strip", z.ZodTypeAny, {
151
- model: string;
152
- apiKey?: string | undefined;
153
- baseUrl?: string | undefined;
154
- }, {
155
- model: string;
156
- apiKey?: string | undefined;
157
- baseUrl?: string | undefined;
158
- }>>;
159
- }, "strip", z.ZodTypeAny, {
160
- llm: {
161
- temperature: number;
162
- model: string;
163
- provider: string;
164
- apiKey?: string | undefined;
165
- active?: string | undefined;
166
- baseUrl?: string | undefined;
167
- providers?: Record<string, {
168
- model: string;
169
- provider: string;
170
- apiKey?: string | undefined;
171
- temperature?: number | undefined;
172
- baseUrl?: string | undefined;
173
- contextWindow?: number | undefined;
174
- }> | undefined;
175
- background?: {
176
- temperature: number;
177
- model: string;
178
- provider: string;
179
- apiKey?: string | undefined;
180
- baseUrl?: string | undefined;
181
- } | undefined;
182
- };
183
- security: {
184
- permission: "owner" | "guest";
185
- confirmWrites: boolean;
186
- };
187
- memory: {
188
- dataDir: string;
189
- maxContextTokens: number;
190
- };
8
+ provider: string;
9
+ /** 模型名称 */
10
+ model: string;
11
+ /** API 基础 URL(可选——内核不做预设回退,缺失时工厂会报错) */
12
+ baseUrl?: string;
13
+ /** API 密钥(可选,从环境变量读取。本地 LLM 如 Ollama 可为空字符串) */
14
+ apiKey?: string;
15
+ /** 该 Provider 的 temperature,未配置时回退到全局 llm.temperature */
16
+ temperature?: number;
17
+ /** 该 Provider 的上下文窗口大小(token 数),未配置时回退到 memory.maxContextTokens */
18
+ contextWindow?: number;
19
+ }
20
+ /**
21
+ * 后台通道配置接口(多 Provider 路由预留)
22
+ *
23
+ * 不配时所有消费者复用前台(llm)配置——零破坏性,完全向后兼容。
24
+ * 配置后,归档/投影/画像等后台操作使用此通道,降低成本。
25
+ * 详见接入指南 §九
26
+ */
27
+ interface BackgroundConfig {
28
+ /** Provider 名称 */
29
+ provider: string;
30
+ /** 模型名称 */
31
+ model: string;
32
+ /** API 基础 URL(可选) */
33
+ baseUrl?: string;
34
+ /** API 密钥(可选,从环境变量读取) */
35
+ apiKey?: string;
36
+ /** 该通道的 temperature */
37
+ temperature: number;
38
+ }
39
+ /**
40
+ * LLM 配置接口
41
+ *
42
+ * provider 允许任意字符串:内核仅内置 'mock' 一种机制(用于无 API Key 的测试/降级),
43
+ * 其他厂商 provider(deepseek/openai/doubao 等)需宿主或用户显式配置 baseUrl + model。
44
+ * 详见 ADR-003(内核只提供机制,不预设厂商策略)
45
+ */
46
+ interface LlmConfig {
47
+ /** Provider 名称 */
48
+ provider: string;
49
+ /** 模型名称 */
50
+ model: string;
51
+ /** API 基础 URL(可选) */
52
+ baseUrl?: string;
53
+ /** API 密钥(可选,从环境变量读取。本地 LLM 可为空) */
54
+ apiKey?: string;
55
+ /** 采样温度(0-2) */
56
+ temperature: number;
57
+ /**
58
+ * 多 Provider 映射表
59
+ *
60
+ * key 为 Provider 别名(如 "deepseek"、"openai"),value 为 Provider 配置。
61
+ * 配置后,旧扁平字段(provider/model/baseUrl/apiKey)被忽略。
62
+ * 不配置时回退到旧的单 provider 行为——完全向后兼容。
63
+ */
64
+ providers?: Record<string, ProviderConfig>;
65
+ /**
66
+ * 当前激活的 Provider 别名
67
+ *
68
+ * 必须与 providers 中的某个 key 一致。
69
+ * 不配置时默认使用 providers 的第一个 key。
70
+ */
71
+ active?: string;
72
+ /**
73
+ * 后台通道配置(多 Provider 路由预留)
74
+ *
75
+ * 不配时所有消费者复用前台(llm)配置——零破坏性,完全向后兼容。
76
+ * 配置后,归档/投影/画像等后台操作使用此通道,降低成本。
77
+ * 详见接入指南 §九
78
+ */
79
+ background?: BackgroundConfig;
80
+ }
81
+ /** 内存配置接口 */
82
+ interface MemoryConfig {
83
+ /** 数据存储目录 */
84
+ dataDir: string;
85
+ /** 最大上下文 token 数 */
86
+ maxContextTokens: number;
87
+ }
88
+ /** 安全配置接口 */
89
+ interface SecurityConfig {
90
+ /** 权限级别:owner(所有者)或 guest(访客) */
91
+ permission: 'owner' | 'guest';
92
+ /** 是否确认写入操作 */
93
+ confirmWrites: boolean;
94
+ }
95
+ /**
96
+ * Embedding 配置接口(可选,配置后启用向量语义召回)
97
+ *
98
+ * 复用 OpenAI 兼容协议的 /embeddings 端点。
99
+ * 不配置时降级为纯关键词召回(当前行为)。
100
+ */
101
+ interface EmbeddingConfig {
102
+ /** Embedding 模型名称 */
103
+ model: string;
104
+ /** API 基础 URL(可选) */
105
+ baseUrl?: string;
106
+ /** API 密钥(可选,从环境变量读取) */
107
+ apiKey?: string;
108
+ }
109
+ /** 完整配置接口 */
110
+ export interface Config {
111
+ /** LLM 配置 */
112
+ llm: LlmConfig;
113
+ /** 内存配置 */
114
+ memory: MemoryConfig;
115
+ /** 安全配置 */
116
+ security: SecurityConfig;
117
+ /** 允许的路径白名单(绝对路径) */
191
118
  allowedPaths: string[];
192
- persona?: string | undefined;
193
- embedding?: {
194
- model: string;
195
- apiKey?: string | undefined;
196
- baseUrl?: string | undefined;
197
- } | undefined;
198
- }, {
199
- persona?: string | undefined;
200
- llm?: {
201
- apiKey?: string | undefined;
202
- temperature?: number | undefined;
203
- model?: string | undefined;
204
- active?: string | undefined;
205
- provider?: string | undefined;
206
- baseUrl?: string | undefined;
207
- providers?: Record<string, {
208
- model: string;
209
- provider: string;
210
- apiKey?: string | undefined;
211
- temperature?: number | undefined;
212
- baseUrl?: string | undefined;
213
- contextWindow?: number | undefined;
214
- }> | undefined;
215
- background?: {
216
- model: string;
217
- provider: string;
218
- apiKey?: string | undefined;
219
- temperature?: number | undefined;
220
- baseUrl?: string | undefined;
221
- } | undefined;
222
- } | undefined;
223
- security?: {
224
- permission?: "owner" | "guest" | undefined;
225
- confirmWrites?: boolean | undefined;
226
- } | undefined;
227
- memory?: {
228
- dataDir?: string | undefined;
229
- maxContextTokens?: number | undefined;
230
- } | undefined;
231
- allowedPaths?: string[] | undefined;
232
- embedding?: {
233
- model: string;
234
- apiKey?: string | undefined;
235
- baseUrl?: string | undefined;
236
- } | undefined;
237
- }>;
238
- export type Config = z.infer<typeof ConfigSchema>;
119
+ /** 默认角色名(对应 personas/*.md) */
120
+ persona?: string;
121
+ /** Embedding 配置(可选) */
122
+ embedding?: EmbeddingConfig;
123
+ }
239
124
  /**
240
125
  * 加载配置
241
126
  *
242
- * 单一真理源:所有默认值由 ConfigSchema 的 .default() 声明,
243
- * 不再维护独立的 DEFAULT_CONFIG 常量(避免两处真理源打架)。
127
+ * 单一真理源:所有默认值由 DEFAULT_CONFIG 声明,
128
+ * 不再维护独立的 schema(避免两处真理源打架)。
129
+ *
130
+ * 查找顺序:显式 configPath → 项目级 .memora/config.json → 内置默认值。
131
+ * 用户级配置路径由宿主通过 configPath 显式传入。
244
132
  *
245
133
  * @param configPath 显式指定的配置文件路径
246
134
  */
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgCxB,QAAA,MAAM,YAAY;;;;;;;QASZ;;;;;;WAMG;;;;;;YA7BP,yDAAyD;;YAEzD,mEAAmE;;;;;;;;;;;;;;;;;QA6B/D;;;;;WAKG;;QAEH;;;;;;WAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4BP;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQH,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA2BrE"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAgCA,UAAU,cAAc;IACtB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,UAAU,gBAAgB;IACxB,kBAAkB;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,UAAU,SAAS;IAEjB,kBAAkB;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC3C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,aAAa;AACb,UAAU,YAAY;IACpB,aAAa;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,aAAa;AACb,UAAU,cAAc;IACtB,iCAAiC;IACjC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC;IAC9B,eAAe;IACf,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;;;;GAKG;AACH,UAAU,eAAe;IACvB,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,aAAa;AACb,MAAM,WAAW,MAAM;IACrB,aAAa;IACb,GAAG,EAAE,SAAS,CAAC;IACf,WAAW;IACX,MAAM,EAAE,YAAY,CAAC;IACrB,WAAW;IACX,QAAQ,EAAE,cAAc,CAAC;IACzB,qBAAqB;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAgSD;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBrE"}