@zooique/memora 2.0.3 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (588) hide show
  1. package/CHANGELOG.md +1028 -0
  2. package/README.en.md +305 -272
  3. package/README.md +303 -260
  4. package/config.example.json +43 -0
  5. package/dist/agent/agent.d.ts +376 -408
  6. package/dist/agent/agent.d.ts.map +1 -1
  7. package/dist/agent/agent.js +1166 -926
  8. package/dist/agent/agent.js.map +1 -1
  9. package/dist/agent/assembler.d.ts +105 -43
  10. package/dist/agent/assembler.d.ts.map +1 -1
  11. package/dist/agent/assembler.js +543 -75
  12. package/dist/agent/assembler.js.map +1 -1
  13. package/dist/agent/budget.d.ts +131 -0
  14. package/dist/agent/budget.d.ts.map +1 -0
  15. package/dist/agent/budget.js +128 -0
  16. package/dist/agent/budget.js.map +1 -0
  17. package/dist/agent/builtinToolHandlers.d.ts +225 -38
  18. package/dist/agent/builtinToolHandlers.d.ts.map +1 -1
  19. package/dist/agent/builtinToolHandlers.js +748 -132
  20. package/dist/agent/builtinToolHandlers.js.map +1 -1
  21. package/dist/agent/builtinTools.d.ts +198 -7
  22. package/dist/agent/builtinTools.d.ts.map +1 -1
  23. package/dist/agent/builtinTools.js +646 -14
  24. package/dist/agent/builtinTools.js.map +1 -1
  25. package/dist/agent/compaction.d.ts +93 -0
  26. package/dist/agent/compaction.d.ts.map +1 -0
  27. package/dist/agent/compaction.js +192 -0
  28. package/dist/agent/compaction.js.map +1 -0
  29. package/dist/agent/constants.d.ts +137 -20
  30. package/dist/agent/constants.d.ts.map +1 -1
  31. package/dist/agent/constants.js +152 -20
  32. package/dist/agent/constants.js.map +1 -1
  33. package/dist/agent/contextManager.d.ts +119 -77
  34. package/dist/agent/contextManager.d.ts.map +1 -1
  35. package/dist/agent/contextManager.js +192 -135
  36. package/dist/agent/contextManager.js.map +1 -1
  37. package/dist/agent/contextPreparer.d.ts +78 -0
  38. package/dist/agent/contextPreparer.d.ts.map +1 -0
  39. package/dist/agent/contextPreparer.js +128 -0
  40. package/dist/agent/contextPreparer.js.map +1 -0
  41. package/dist/agent/duplicateInterceptor.d.ts +67 -0
  42. package/dist/agent/duplicateInterceptor.d.ts.map +1 -0
  43. package/dist/agent/duplicateInterceptor.js +82 -0
  44. package/dist/agent/duplicateInterceptor.js.map +1 -0
  45. package/dist/agent/guardRail.d.ts +166 -0
  46. package/dist/agent/guardRail.d.ts.map +1 -0
  47. package/dist/agent/guardRail.js +333 -0
  48. package/dist/agent/guardRail.js.map +1 -0
  49. package/dist/agent/loop.d.ts +716 -295
  50. package/dist/agent/loop.d.ts.map +1 -1
  51. package/dist/agent/loop.js +2178 -664
  52. package/dist/agent/loop.js.map +1 -1
  53. package/dist/agent/managers/archiveCoordinator.d.ts +14 -171
  54. package/dist/agent/managers/archiveCoordinator.d.ts.map +1 -1
  55. package/dist/agent/managers/archiveCoordinator.js +19 -287
  56. package/dist/agent/managers/archiveCoordinator.js.map +1 -1
  57. package/dist/agent/managers/chatLockManager.d.ts +20 -88
  58. package/dist/agent/managers/chatLockManager.d.ts.map +1 -1
  59. package/dist/agent/managers/chatLockManager.js +31 -103
  60. package/dist/agent/managers/chatLockManager.js.map +1 -1
  61. package/dist/agent/managers/dedupManager.d.ts +31 -115
  62. package/dist/agent/managers/dedupManager.d.ts.map +1 -1
  63. package/dist/agent/managers/dedupManager.js +48 -136
  64. package/dist/agent/managers/dedupManager.js.map +1 -1
  65. package/dist/agent/managers/goalConsistencyChecker.d.ts +42 -0
  66. package/dist/agent/managers/goalConsistencyChecker.d.ts.map +1 -0
  67. package/dist/agent/managers/goalConsistencyChecker.js +178 -0
  68. package/dist/agent/managers/goalConsistencyChecker.js.map +1 -0
  69. package/dist/agent/managers/llmCaller.d.ts +124 -0
  70. package/dist/agent/managers/llmCaller.d.ts.map +1 -0
  71. package/dist/agent/managers/llmCaller.js +417 -0
  72. package/dist/agent/managers/llmCaller.js.map +1 -0
  73. package/dist/agent/managers/llmJudgeHelper.d.ts +8 -25
  74. package/dist/agent/managers/llmJudgeHelper.d.ts.map +1 -1
  75. package/dist/agent/managers/llmJudgeHelper.js +7 -24
  76. package/dist/agent/managers/llmJudgeHelper.js.map +1 -1
  77. package/dist/agent/managers/loopMetrics.d.ts +58 -0
  78. package/dist/agent/managers/loopMetrics.d.ts.map +1 -0
  79. package/dist/agent/managers/loopMetrics.js +68 -0
  80. package/dist/agent/managers/loopMetrics.js.map +1 -0
  81. package/dist/agent/managers/memoryAdvisor.d.ts +27 -120
  82. package/dist/agent/managers/memoryAdvisor.d.ts.map +1 -1
  83. package/dist/agent/managers/memoryAdvisor.js +85 -207
  84. package/dist/agent/managers/memoryAdvisor.js.map +1 -1
  85. package/dist/agent/managers/memoryGovernance.d.ts +10 -42
  86. package/dist/agent/managers/memoryGovernance.d.ts.map +1 -1
  87. package/dist/agent/managers/memoryGovernance.js +19 -36
  88. package/dist/agent/managers/memoryGovernance.js.map +1 -1
  89. package/dist/agent/managers/memoryInspector.d.ts +59 -268
  90. package/dist/agent/managers/memoryInspector.d.ts.map +1 -1
  91. package/dist/agent/managers/memoryInspector.js +91 -442
  92. package/dist/agent/managers/memoryInspector.js.map +1 -1
  93. package/dist/agent/managers/roundSummaryGenerator.d.ts +56 -0
  94. package/dist/agent/managers/roundSummaryGenerator.d.ts.map +1 -0
  95. package/dist/agent/managers/roundSummaryGenerator.js +201 -0
  96. package/dist/agent/managers/roundSummaryGenerator.js.map +1 -0
  97. package/dist/agent/managers/sessionArchiver.d.ts +19 -68
  98. package/dist/agent/managers/sessionArchiver.d.ts.map +1 -1
  99. package/dist/agent/managers/sessionArchiver.js +76 -147
  100. package/dist/agent/managers/sessionArchiver.js.map +1 -1
  101. package/dist/agent/managers/sessionManager.d.ts +286 -57
  102. package/dist/agent/managers/sessionManager.d.ts.map +1 -1
  103. package/dist/agent/managers/sessionManager.js +846 -85
  104. package/dist/agent/managers/sessionManager.js.map +1 -1
  105. package/dist/agent/managers/sessionNamer.d.ts +35 -0
  106. package/dist/agent/managers/sessionNamer.d.ts.map +1 -0
  107. package/dist/agent/managers/sessionNamer.js +104 -0
  108. package/dist/agent/managers/sessionNamer.js.map +1 -0
  109. package/dist/agent/managers/streamAccumulator.d.ts +8 -33
  110. package/dist/agent/managers/streamAccumulator.d.ts.map +1 -1
  111. package/dist/agent/managers/streamAccumulator.js +4 -29
  112. package/dist/agent/managers/streamAccumulator.js.map +1 -1
  113. package/dist/agent/managers/textPolishManager.d.ts +8 -44
  114. package/dist/agent/managers/textPolishManager.d.ts.map +1 -1
  115. package/dist/agent/managers/textPolishManager.js +9 -41
  116. package/dist/agent/managers/textPolishManager.js.map +1 -1
  117. package/dist/agent/managers/toolCallHelpers.d.ts +105 -0
  118. package/dist/agent/managers/toolCallHelpers.d.ts.map +1 -0
  119. package/dist/agent/managers/toolCallHelpers.js +161 -0
  120. package/dist/agent/managers/toolCallHelpers.js.map +1 -0
  121. package/dist/agent/managers/workProjection.d.ts +55 -100
  122. package/dist/agent/managers/workProjection.d.ts.map +1 -1
  123. package/dist/agent/managers/workProjection.js +164 -268
  124. package/dist/agent/managers/workProjection.js.map +1 -1
  125. package/dist/agent/messageHistory.d.ts +134 -84
  126. package/dist/agent/messageHistory.d.ts.map +1 -1
  127. package/dist/agent/messageHistory.js +419 -133
  128. package/dist/agent/messageHistory.js.map +1 -1
  129. package/dist/agent/needsPlanning.d.ts +28 -0
  130. package/dist/agent/needsPlanning.d.ts.map +1 -0
  131. package/dist/agent/needsPlanning.js +68 -0
  132. package/dist/agent/needsPlanning.js.map +1 -0
  133. package/dist/agent/seed/index.d.ts +11 -0
  134. package/dist/agent/seed/index.d.ts.map +1 -0
  135. package/dist/agent/seed/index.js +10 -0
  136. package/dist/agent/seed/index.js.map +1 -0
  137. package/dist/agent/seed/orchestrator.d.ts +83 -0
  138. package/dist/agent/seed/orchestrator.d.ts.map +1 -0
  139. package/dist/agent/seed/orchestrator.js +260 -0
  140. package/dist/agent/seed/orchestrator.js.map +1 -0
  141. package/dist/agent/seed/prepare.d.ts +49 -0
  142. package/dist/agent/seed/prepare.d.ts.map +1 -0
  143. package/dist/agent/seed/prepare.js +107 -0
  144. package/dist/agent/seed/prepare.js.map +1 -0
  145. package/dist/agent/seed/types.d.ts +115 -0
  146. package/dist/agent/seed/types.d.ts.map +1 -0
  147. package/dist/agent/seed/types.js +15 -0
  148. package/dist/agent/seed/types.js.map +1 -0
  149. package/dist/agent/sessionStateMachine.d.ts +78 -0
  150. package/dist/agent/sessionStateMachine.d.ts.map +1 -0
  151. package/dist/agent/sessionStateMachine.js +182 -0
  152. package/dist/agent/sessionStateMachine.js.map +1 -0
  153. package/dist/agent/taskTableRenderer.d.ts +51 -0
  154. package/dist/agent/taskTableRenderer.d.ts.map +1 -0
  155. package/dist/agent/taskTableRenderer.js +115 -0
  156. package/dist/agent/taskTableRenderer.js.map +1 -0
  157. package/dist/agent/toolExecutor.d.ts +236 -10
  158. package/dist/agent/toolExecutor.d.ts.map +1 -1
  159. package/dist/agent/toolExecutor.js +932 -21
  160. package/dist/agent/toolExecutor.js.map +1 -1
  161. package/dist/agent/toolLedger.d.ts +120 -0
  162. package/dist/agent/toolLedger.d.ts.map +1 -0
  163. package/dist/agent/toolLedger.js +149 -0
  164. package/dist/agent/toolLedger.js.map +1 -0
  165. package/dist/agent/toolResultCache.d.ts +134 -0
  166. package/dist/agent/toolResultCache.d.ts.map +1 -0
  167. package/dist/agent/toolResultCache.js +243 -0
  168. package/dist/agent/toolResultCache.js.map +1 -0
  169. package/dist/agent/toolResultOffload.d.ts +59 -0
  170. package/dist/agent/toolResultOffload.d.ts.map +1 -0
  171. package/dist/agent/toolResultOffload.js +70 -0
  172. package/dist/agent/toolResultOffload.js.map +1 -0
  173. package/dist/agent/toolRunner.d.ts +59 -0
  174. package/dist/agent/toolRunner.d.ts.map +1 -0
  175. package/dist/agent/toolRunner.js +147 -0
  176. package/dist/agent/toolRunner.js.map +1 -0
  177. package/dist/agent/tracer.d.ts +99 -107
  178. package/dist/agent/tracer.d.ts.map +1 -1
  179. package/dist/agent/tracer.js +24 -69
  180. package/dist/agent/tracer.js.map +1 -1
  181. package/dist/agent/types.d.ts +510 -169
  182. package/dist/agent/types.d.ts.map +1 -1
  183. package/dist/agent/types.js +2 -51
  184. package/dist/agent/types.js.map +1 -1
  185. package/dist/code-exec/codeExecutionProvider.d.ts +16 -0
  186. package/dist/code-exec/codeExecutionProvider.d.ts.map +1 -0
  187. package/dist/code-exec/codeExecutionProvider.js +57 -0
  188. package/dist/code-exec/codeExecutionProvider.js.map +1 -0
  189. package/dist/code-exec/types.d.ts +37 -0
  190. package/dist/code-exec/types.d.ts.map +1 -0
  191. package/dist/code-exec/types.js +12 -0
  192. package/dist/code-exec/types.js.map +1 -0
  193. package/dist/config/expandEnvVars.d.ts +22 -0
  194. package/dist/config/expandEnvVars.d.ts.map +1 -0
  195. package/dist/config/expandEnvVars.js +38 -0
  196. package/dist/config/expandEnvVars.js.map +1 -0
  197. package/dist/config/loader.d.ts +27 -98
  198. package/dist/config/loader.d.ts.map +1 -1
  199. package/dist/config/loader.js +110 -223
  200. package/dist/config/loader.js.map +1 -1
  201. package/dist/index.d.ts +67 -77
  202. package/dist/index.d.ts.map +1 -1
  203. package/dist/index.js +90 -69
  204. package/dist/index.js.map +1 -1
  205. package/dist/llm/abortSignal.d.ts +2 -3
  206. package/dist/llm/abortSignal.d.ts.map +1 -1
  207. package/dist/llm/abortSignal.js +2 -3
  208. package/dist/llm/abortSignal.js.map +1 -1
  209. package/dist/llm/factory.d.ts +22 -32
  210. package/dist/llm/factory.d.ts.map +1 -1
  211. package/dist/llm/factory.js +29 -46
  212. package/dist/llm/factory.js.map +1 -1
  213. package/dist/llm/openaiCompatible.d.ts +25 -40
  214. package/dist/llm/openaiCompatible.d.ts.map +1 -1
  215. package/dist/llm/openaiCompatible.js +179 -120
  216. package/dist/llm/openaiCompatible.js.map +1 -1
  217. package/dist/llm/provider.d.ts +29 -42
  218. package/dist/llm/provider.d.ts.map +1 -1
  219. package/dist/llm/provider.js +11 -10
  220. package/dist/llm/provider.js.map +1 -1
  221. package/dist/llm/types.d.ts +54 -11
  222. package/dist/llm/types.d.ts.map +1 -1
  223. package/dist/llm/types.js +0 -5
  224. package/dist/llm/types.js.map +1 -1
  225. package/dist/logging/logger.d.ts +8 -31
  226. package/dist/logging/logger.d.ts.map +1 -1
  227. package/dist/logging/logger.js +28 -215
  228. package/dist/logging/logger.js.map +1 -1
  229. package/dist/logging/loggerInterface.d.ts +9 -8
  230. package/dist/logging/loggerInterface.d.ts.map +1 -1
  231. package/dist/memory/gcService.d.ts +164 -0
  232. package/dist/memory/gcService.d.ts.map +1 -0
  233. package/dist/memory/gcService.js +215 -0
  234. package/dist/memory/gcService.js.map +1 -0
  235. package/dist/memory/governance.d.ts +11 -44
  236. package/dist/memory/governance.d.ts.map +1 -1
  237. package/dist/memory/governance.js +11 -64
  238. package/dist/memory/governance.js.map +1 -1
  239. package/dist/memory/inMemoryRoundStore.d.ts +124 -0
  240. package/dist/memory/inMemoryRoundStore.d.ts.map +1 -0
  241. package/dist/memory/inMemoryRoundStore.js +216 -0
  242. package/dist/memory/inMemoryRoundStore.js.map +1 -0
  243. package/dist/memory/inMemorySessionStore.d.ts +92 -0
  244. package/dist/memory/inMemorySessionStore.d.ts.map +1 -0
  245. package/dist/memory/inMemorySessionStore.js +219 -0
  246. package/dist/memory/inMemorySessionStore.js.map +1 -0
  247. package/dist/memory/inMemorySessionViewLoader.d.ts +89 -0
  248. package/dist/memory/inMemorySessionViewLoader.d.ts.map +1 -0
  249. package/dist/memory/inMemorySessionViewLoader.js +183 -0
  250. package/dist/memory/inMemorySessionViewLoader.js.map +1 -0
  251. package/dist/memory/inMemoryStorage.d.ts +25 -175
  252. package/dist/memory/inMemoryStorage.d.ts.map +1 -1
  253. package/dist/memory/inMemoryStorage.js +32 -221
  254. package/dist/memory/inMemoryStorage.js.map +1 -1
  255. package/dist/memory/keywordsTouch.d.ts +20 -0
  256. package/dist/memory/keywordsTouch.d.ts.map +1 -0
  257. package/dist/memory/keywordsTouch.js +25 -0
  258. package/dist/memory/keywordsTouch.js.map +1 -0
  259. package/dist/memory/lockManager.d.ts +2 -2
  260. package/dist/memory/lockManager.d.ts.map +1 -1
  261. package/dist/memory/lockManager.js +6 -8
  262. package/dist/memory/lockManager.js.map +1 -1
  263. package/dist/memory/projectManager.d.ts +30 -129
  264. package/dist/memory/projectManager.d.ts.map +1 -1
  265. package/dist/memory/projectManager.js +39 -189
  266. package/dist/memory/projectManager.js.map +1 -1
  267. package/dist/memory/projectRegistry.d.ts +14 -62
  268. package/dist/memory/projectRegistry.d.ts.map +1 -1
  269. package/dist/memory/projectRegistry.js +27 -111
  270. package/dist/memory/projectRegistry.js.map +1 -1
  271. package/dist/memory/roundStore.d.ts +629 -0
  272. package/dist/memory/roundStore.d.ts.map +1 -0
  273. package/dist/memory/roundStore.js +116 -0
  274. package/dist/memory/roundStore.js.map +1 -0
  275. package/dist/memory/sessionStore.d.ts +70 -61
  276. package/dist/memory/sessionStore.d.ts.map +1 -1
  277. package/dist/memory/sessionStore.js +23 -1
  278. package/dist/memory/sessionStore.js.map +1 -1
  279. package/dist/memory/sessionViewLoader.d.ts +141 -0
  280. package/dist/memory/sessionViewLoader.d.ts.map +1 -0
  281. package/dist/memory/sessionViewLoader.js +65 -0
  282. package/dist/memory/sessionViewLoader.js.map +1 -0
  283. package/dist/memory/sourceValidation.d.ts +10 -12
  284. package/dist/memory/sourceValidation.d.ts.map +1 -1
  285. package/dist/memory/sourceValidation.js +16 -32
  286. package/dist/memory/sourceValidation.js.map +1 -1
  287. package/dist/memory/storageInterface.d.ts +44 -150
  288. package/dist/memory/storageInterface.d.ts.map +1 -1
  289. package/dist/memory/types.d.ts +65 -164
  290. package/dist/memory/types.d.ts.map +1 -1
  291. package/dist/memory/types.js +81 -83
  292. package/dist/memory/types.js.map +1 -1
  293. package/dist/project-search/projectSearchProvider.d.ts +29 -0
  294. package/dist/project-search/projectSearchProvider.d.ts.map +1 -0
  295. package/dist/project-search/projectSearchProvider.js +57 -0
  296. package/dist/project-search/projectSearchProvider.js.map +1 -0
  297. package/dist/project-search/terms.d.ts +14 -0
  298. package/dist/project-search/terms.d.ts.map +1 -0
  299. package/dist/project-search/terms.js +68 -0
  300. package/dist/project-search/terms.js.map +1 -0
  301. package/dist/project-search/types.d.ts +139 -0
  302. package/dist/project-search/types.d.ts.map +1 -0
  303. package/dist/project-search/types.js +8 -0
  304. package/dist/project-search/types.js.map +1 -0
  305. package/dist/role-pack/capabilityMap.d.ts +28 -0
  306. package/dist/role-pack/capabilityMap.d.ts.map +1 -0
  307. package/dist/role-pack/capabilityMap.js +56 -0
  308. package/dist/role-pack/capabilityMap.js.map +1 -0
  309. package/dist/role-pack/constants.d.ts +21 -0
  310. package/dist/role-pack/constants.d.ts.map +1 -0
  311. package/dist/role-pack/constants.js +21 -0
  312. package/dist/role-pack/constants.js.map +1 -0
  313. package/dist/role-pack/rolePackManager.d.ts +269 -0
  314. package/dist/role-pack/rolePackManager.d.ts.map +1 -0
  315. package/dist/role-pack/rolePackManager.js +1082 -0
  316. package/dist/role-pack/rolePackManager.js.map +1 -0
  317. package/dist/role-pack/strategyKeys.d.ts +100 -0
  318. package/dist/role-pack/strategyKeys.d.ts.map +1 -0
  319. package/dist/role-pack/strategyKeys.js +184 -0
  320. package/dist/role-pack/strategyKeys.js.map +1 -0
  321. package/dist/role-pack/strategyResolver.d.ts +109 -0
  322. package/dist/role-pack/strategyResolver.d.ts.map +1 -0
  323. package/dist/role-pack/strategyResolver.js +304 -0
  324. package/dist/role-pack/strategyResolver.js.map +1 -0
  325. package/dist/role-pack/types.d.ts +237 -0
  326. package/dist/role-pack/types.d.ts.map +1 -0
  327. package/dist/role-pack/types.js +8 -0
  328. package/dist/role-pack/types.js.map +1 -0
  329. package/dist/role-pack/validator.d.ts +38 -0
  330. package/dist/role-pack/validator.d.ts.map +1 -0
  331. package/dist/role-pack/validator.js +436 -0
  332. package/dist/role-pack/validator.js.map +1 -0
  333. package/dist/security/pathGuard.d.ts +69 -72
  334. package/dist/security/pathGuard.d.ts.map +1 -1
  335. package/dist/security/pathGuard.js +151 -131
  336. package/dist/security/pathGuard.js.map +1 -1
  337. package/dist/skill/skillLayer3.d.ts +91 -0
  338. package/dist/skill/skillLayer3.d.ts.map +1 -0
  339. package/dist/skill/skillLayer3.js +104 -0
  340. package/dist/skill/skillLayer3.js.map +1 -0
  341. package/dist/skill/skillManager.d.ts +136 -19
  342. package/dist/skill/skillManager.d.ts.map +1 -1
  343. package/dist/skill/skillManager.js +312 -61
  344. package/dist/skill/skillManager.js.map +1 -1
  345. package/dist/skill/skillScriptRunner.d.ts +97 -0
  346. package/dist/skill/skillScriptRunner.d.ts.map +1 -0
  347. package/dist/skill/skillScriptRunner.js +271 -0
  348. package/dist/skill/skillScriptRunner.js.map +1 -0
  349. package/dist/skill/types.d.ts +73 -16
  350. package/dist/skill/types.d.ts.map +1 -1
  351. package/dist/skill/types.js +5 -1
  352. package/dist/skill/types.js.map +1 -1
  353. package/dist/utils/array.d.ts +5 -6
  354. package/dist/utils/array.d.ts.map +1 -1
  355. package/dist/utils/array.js +6 -6
  356. package/dist/utils/array.js.map +1 -1
  357. package/dist/utils/atomicWrite.d.ts +8 -0
  358. package/dist/utils/atomicWrite.d.ts.map +1 -0
  359. package/dist/utils/atomicWrite.js +31 -0
  360. package/dist/utils/atomicWrite.js.map +1 -0
  361. package/dist/utils/backgroundTask.d.ts +38 -0
  362. package/dist/utils/backgroundTask.d.ts.map +1 -0
  363. package/dist/utils/backgroundTask.js +117 -0
  364. package/dist/utils/backgroundTask.js.map +1 -0
  365. package/dist/utils/configResourceManager.d.ts +40 -72
  366. package/dist/utils/configResourceManager.d.ts.map +1 -1
  367. package/dist/utils/configResourceManager.js +78 -76
  368. package/dist/utils/configResourceManager.js.map +1 -1
  369. package/dist/utils/errors.d.ts +44 -69
  370. package/dist/utils/errors.d.ts.map +1 -1
  371. package/dist/utils/errors.js +54 -71
  372. package/dist/utils/errors.js.map +1 -1
  373. package/dist/utils/eventEmitter.d.ts +104 -103
  374. package/dist/utils/eventEmitter.d.ts.map +1 -1
  375. package/dist/utils/eventEmitter.js +37 -45
  376. package/dist/utils/eventEmitter.js.map +1 -1
  377. package/dist/utils/fileSafe.d.ts +20 -0
  378. package/dist/utils/fileSafe.d.ts.map +1 -0
  379. package/dist/utils/fileSafe.js +56 -0
  380. package/dist/utils/fileSafe.js.map +1 -0
  381. package/dist/utils/frontmatter.d.ts +2 -3
  382. package/dist/utils/frontmatter.d.ts.map +1 -1
  383. package/dist/utils/frontmatter.js +2 -3
  384. package/dist/utils/frontmatter.js.map +1 -1
  385. package/dist/utils/hash.d.ts +12 -0
  386. package/dist/utils/hash.d.ts.map +1 -0
  387. package/dist/utils/hash.js +27 -0
  388. package/dist/utils/hash.js.map +1 -0
  389. package/dist/utils/http.d.ts +17 -0
  390. package/dist/utils/http.d.ts.map +1 -0
  391. package/dist/utils/http.js +29 -0
  392. package/dist/utils/http.js.map +1 -0
  393. package/dist/utils/json.d.ts +1 -1
  394. package/dist/utils/json.js +1 -1
  395. package/dist/utils/math.d.ts +25 -3
  396. package/dist/utils/math.d.ts.map +1 -1
  397. package/dist/utils/math.js +32 -16
  398. package/dist/utils/math.js.map +1 -1
  399. package/dist/utils/objects.d.ts +2 -3
  400. package/dist/utils/objects.d.ts.map +1 -1
  401. package/dist/utils/objects.js +2 -3
  402. package/dist/utils/objects.js.map +1 -1
  403. package/dist/utils/recallDefaults.d.ts +16 -0
  404. package/dist/utils/recallDefaults.d.ts.map +1 -0
  405. package/dist/utils/recallDefaults.js +16 -0
  406. package/dist/utils/recallDefaults.js.map +1 -0
  407. package/dist/utils/safeTimer.d.ts +8 -36
  408. package/dist/utils/safeTimer.d.ts.map +1 -1
  409. package/dist/utils/safeTimer.js +9 -37
  410. package/dist/utils/safeTimer.js.map +1 -1
  411. package/dist/utils/scanner.d.ts +97 -17
  412. package/dist/utils/scanner.d.ts.map +1 -1
  413. package/dist/utils/scanner.js +269 -47
  414. package/dist/utils/scanner.js.map +1 -1
  415. package/dist/utils/segmenter.d.ts +20 -19
  416. package/dist/utils/segmenter.d.ts.map +1 -1
  417. package/dist/utils/segmenter.js +230 -97
  418. package/dist/utils/segmenter.js.map +1 -1
  419. package/dist/utils/strings.d.ts +15 -32
  420. package/dist/utils/strings.d.ts.map +1 -1
  421. package/dist/utils/strings.js +25 -44
  422. package/dist/utils/strings.js.map +1 -1
  423. package/dist/utils/time.d.ts +37 -0
  424. package/dist/utils/time.d.ts.map +1 -1
  425. package/dist/utils/time.js +56 -0
  426. package/dist/utils/time.js.map +1 -1
  427. package/dist/utils/toError.d.ts +13 -1
  428. package/dist/utils/toError.d.ts.map +1 -1
  429. package/dist/utils/toError.js +18 -1
  430. package/dist/utils/toError.js.map +1 -1
  431. package/dist/web-fetch/fetchWebFetchProvider.d.ts +14 -0
  432. package/dist/web-fetch/fetchWebFetchProvider.d.ts.map +1 -0
  433. package/dist/web-fetch/fetchWebFetchProvider.js +69 -0
  434. package/dist/web-fetch/fetchWebFetchProvider.js.map +1 -0
  435. package/dist/web-fetch/types.d.ts +30 -0
  436. package/dist/web-fetch/types.d.ts.map +1 -0
  437. package/dist/web-fetch/types.js +7 -0
  438. package/dist/web-fetch/types.js.map +1 -0
  439. package/dist/web-fetch/webFetchProvider.d.ts +10 -0
  440. package/dist/web-fetch/webFetchProvider.d.ts.map +1 -0
  441. package/dist/web-fetch/webFetchProvider.js +28 -0
  442. package/dist/web-fetch/webFetchProvider.js.map +1 -0
  443. package/dist/web-search/fetchWebSearchProvider.d.ts +27 -0
  444. package/dist/web-search/fetchWebSearchProvider.d.ts.map +1 -0
  445. package/dist/web-search/fetchWebSearchProvider.js +199 -0
  446. package/dist/web-search/fetchWebSearchProvider.js.map +1 -0
  447. package/dist/web-search/types.d.ts +46 -0
  448. package/dist/web-search/types.d.ts.map +1 -0
  449. package/dist/web-search/types.js +2 -0
  450. package/dist/{persona → web-search}/types.js.map +1 -1
  451. package/dist/web-search/webSearchProvider.d.ts +10 -0
  452. package/dist/web-search/webSearchProvider.d.ts.map +1 -0
  453. package/dist/web-search/webSearchProvider.js +30 -0
  454. package/dist/web-search/webSearchProvider.js.map +1 -0
  455. package/docs/architecture/role-pack-authoring-guide.md +243 -0
  456. package/docs/architecture/role-pack-spec.md +767 -0
  457. package/docs/memora-api-reference.md +416 -476
  458. package/docs/memora-/346/216/245/345/205/245/346/214/207/345/215/227.md +841 -806
  459. package/docs/role-pack-/345/274/200/346/224/276/351/224/256/346/214/207/345/215/227.md +148 -0
  460. package/package.json +105 -100
  461. package/role-packs/README.md +41 -0
  462. package/role-packs/memora/345/212/251/346/211/213/manifest.json +12 -0
  463. package/role-packs/memora/345/212/251/346/211/213/persona.md +12 -0
  464. package/role-packs/memora/345/212/251/346/211/213/rules.md +4 -0
  465. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/manifest.json +44 -0
  466. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/persona.md +46 -0
  467. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/rules.md +15 -0
  468. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/character-sheet.md +34 -0
  469. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/core-extractor.md +37 -0
  470. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/craft-review.md +69 -0
  471. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/dialogue-craft.md +45 -0
  472. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/emotion-wave.md +46 -0
  473. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/empathy-craft.md +79 -0
  474. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/foreshadow.md +29 -0
  475. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/hotspot-mapping.md +121 -0
  476. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/idea-lever.md +42 -0
  477. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/logline-craft.md +47 -0
  478. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/longform-guard.md +64 -0
  479. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/need-finder.md +40 -0
  480. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/outline-expand.md +46 -0
  481. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/pacing-hook.md +34 -0
  482. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/polish-method.md +113 -0
  483. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/pov-discipline.md +79 -0
  484. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/project-init/SKILL.md +112 -0
  485. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/project-init/scripts/init-novel-project.mjs +441 -0
  486. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/relationship-web.md +47 -0
  487. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/scene-craft.md +46 -0
  488. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/story-bible.md +60 -0
  489. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/story-structure.md +36 -0
  490. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/style-weaver.md +109 -0
  491. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/three-layer-check.md +27 -0
  492. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/world-builder.md +41 -0
  493. package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/manifest.json +48 -0
  494. package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/persona.md +73 -0
  495. package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/rules.md +19 -0
  496. package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/skills/api-doc-writer.md +40 -0
  497. package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/skills/doc-planner.md +42 -0
  498. package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/skills/nutrient-search.md +28 -0
  499. package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/skills/seed-finder.md +28 -0
  500. package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/skills/ssot-audit.md +34 -0
  501. package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/skills/style-guide.md +40 -0
  502. package/dist/agent/guardrail.d.ts +0 -49
  503. package/dist/agent/guardrail.d.ts.map +0 -1
  504. package/dist/agent/guardrail.js +0 -59
  505. package/dist/agent/guardrail.js.map +0 -1
  506. package/dist/agent/managers/autoConfigRefiner.d.ts +0 -39
  507. package/dist/agent/managers/autoConfigRefiner.d.ts.map +0 -1
  508. package/dist/agent/managers/autoConfigRefiner.js +0 -146
  509. package/dist/agent/managers/autoConfigRefiner.js.map +0 -1
  510. package/dist/agent/managers/configManager.d.ts +0 -209
  511. package/dist/agent/managers/configManager.d.ts.map +0 -1
  512. package/dist/agent/managers/configManager.js +0 -331
  513. package/dist/agent/managers/configManager.js.map +0 -1
  514. package/dist/agent/managers/insightExtractor.d.ts +0 -139
  515. package/dist/agent/managers/insightExtractor.d.ts.map +0 -1
  516. package/dist/agent/managers/insightExtractor.js +0 -401
  517. package/dist/agent/managers/insightExtractor.js.map +0 -1
  518. package/dist/agent/managers/memoryDecayScheduler.d.ts +0 -239
  519. package/dist/agent/managers/memoryDecayScheduler.d.ts.map +0 -1
  520. package/dist/agent/managers/memoryDecayScheduler.js +0 -413
  521. package/dist/agent/managers/memoryDecayScheduler.js.map +0 -1
  522. package/dist/agent/managers/relationBuilder.d.ts +0 -131
  523. package/dist/agent/managers/relationBuilder.d.ts.map +0 -1
  524. package/dist/agent/managers/relationBuilder.js +0 -192
  525. package/dist/agent/managers/relationBuilder.js.map +0 -1
  526. package/dist/agent/personaMatcher.d.ts +0 -29
  527. package/dist/agent/personaMatcher.d.ts.map +0 -1
  528. package/dist/agent/personaMatcher.js +0 -60
  529. package/dist/agent/personaMatcher.js.map +0 -1
  530. package/dist/agent/userFactExtractor.d.ts +0 -25
  531. package/dist/agent/userFactExtractor.d.ts.map +0 -1
  532. package/dist/agent/userFactExtractor.js +0 -88
  533. package/dist/agent/userFactExtractor.js.map +0 -1
  534. package/dist/eval/evalRunner.d.ts +0 -94
  535. package/dist/eval/evalRunner.d.ts.map +0 -1
  536. package/dist/eval/evalRunner.js +0 -141
  537. package/dist/eval/evalRunner.js.map +0 -1
  538. package/dist/eval/evalTypes.d.ts +0 -148
  539. package/dist/eval/evalTypes.d.ts.map +0 -1
  540. package/dist/eval/evalTypes.js +0 -118
  541. package/dist/eval/evalTypes.js.map +0 -1
  542. package/dist/eval/scenarios.d.ts +0 -33
  543. package/dist/eval/scenarios.d.ts.map +0 -1
  544. package/dist/eval/scenarios.js +0 -109
  545. package/dist/eval/scenarios.js.map +0 -1
  546. package/dist/llm/embedding.d.ts +0 -79
  547. package/dist/llm/embedding.d.ts.map +0 -1
  548. package/dist/llm/embedding.js +0 -184
  549. package/dist/llm/embedding.js.map +0 -1
  550. package/dist/memory/hybridMerge.d.ts +0 -50
  551. package/dist/memory/hybridMerge.d.ts.map +0 -1
  552. package/dist/memory/hybridMerge.js +0 -51
  553. package/dist/memory/hybridMerge.js.map +0 -1
  554. package/dist/memory/inMemoryRelationStore.d.ts +0 -58
  555. package/dist/memory/inMemoryRelationStore.d.ts.map +0 -1
  556. package/dist/memory/inMemoryRelationStore.js +0 -80
  557. package/dist/memory/inMemoryRelationStore.js.map +0 -1
  558. package/dist/memory/loader.d.ts +0 -51
  559. package/dist/memory/loader.d.ts.map +0 -1
  560. package/dist/memory/loader.js +0 -100
  561. package/dist/memory/loader.js.map +0 -1
  562. package/dist/memory/recall.d.ts +0 -82
  563. package/dist/memory/recall.d.ts.map +0 -1
  564. package/dist/memory/recall.js +0 -157
  565. package/dist/memory/recall.js.map +0 -1
  566. package/dist/memory/relationStore.d.ts +0 -95
  567. package/dist/memory/relationStore.d.ts.map +0 -1
  568. package/dist/memory/relationStore.js +0 -2
  569. package/dist/memory/relationStore.js.map +0 -1
  570. package/dist/memory/store.d.ts +0 -71
  571. package/dist/memory/store.d.ts.map +0 -1
  572. package/dist/memory/store.js +0 -199
  573. package/dist/memory/store.js.map +0 -1
  574. package/dist/memory/userProfile.d.ts +0 -180
  575. package/dist/memory/userProfile.d.ts.map +0 -1
  576. package/dist/memory/userProfile.js +0 -381
  577. package/dist/memory/userProfile.js.map +0 -1
  578. package/dist/memory/vectorStore.d.ts +0 -179
  579. package/dist/memory/vectorStore.d.ts.map +0 -1
  580. package/dist/memory/vectorStore.js +0 -284
  581. package/dist/memory/vectorStore.js.map +0 -1
  582. package/dist/persona/personaManager.d.ts +0 -109
  583. package/dist/persona/personaManager.d.ts.map +0 -1
  584. package/dist/persona/personaManager.js +0 -315
  585. package/dist/persona/personaManager.js.map +0 -1
  586. package/dist/persona/types.d.ts +0 -32
  587. package/dist/persona/types.d.ts.map +0 -1
  588. package/dist/persona/types.js +0 -5
@@ -1,44 +1,55 @@
1
1
  /**
2
2
  * 配置加载
3
3
  *
4
- * 查找顺序(高 → 低):
5
- * 1. 显式 configPath(由宿主传入,如用户级配置路径)
6
- * 2. 项目级 .memora/config.json
7
- * 3. 内置默认值(仅提供机制,不预设厂商/路径策略——ADR-002 + ADR-003)
8
- *
9
- * API Key 从环境变量读取(不写入配置文件)
10
- *
11
- * 多 Provider 管理(v1.2):
12
- * - providers:命名 Provider 映射表,key 为别名(如 "deepseek"、"openai")
13
- * - active:当前激活的 Provider 别名
14
- * - 不配置 providers 时,回退到旧的单 provider 扁平字段(向后兼容)
4
+ * 查找顺序:显式 configPath → 项目级 .memora/config.json → 内置默认值。
5
+ * 内核只提供机制,不预设厂商/路径策略;API Key 从环境变量读取,不写文件。
6
+ * 多 Provider(唯一格式):providers 映射表 + active 激活别名。
15
7
  */
16
8
  import { readFile } from 'node:fs/promises';
17
9
  import { resolve } from 'node:path';
18
10
  import { configError } from '../utils/errors.js';
19
- import { toError } from '../utils/toError.js';
11
+ import { toError, isNodeErrorCode } from '../utils/toError.js';
20
12
  import { logger } from '../logging/logger.js';
13
+ import { expandEnvVars } from '../config/expandEnvVars.js';
21
14
  /**
22
- * 默认上下文 token 数(120K)
23
- *
24
- * 模块级常量,消除 schema default 与 DEFAULT_CONFIG 的重复硬编码。
25
- * 注意:与 agent/constants.ts 的 AGENT_CONSTANTS.DEFAULT_MAX_CONTEXT_TOKENS 保持一致,
26
- * 但不跨层引用(config/ 不能反向依赖 agent/,详见 backend_layers_rules.md 依赖方向)。
27
- * 修改时需同步两处。
15
+ * 默认上下文 token 数(120K)。与 agent/constants.ts 的 DEFAULT_MAX_CONTEXT_TOKENS 保持一致,
16
+ * 但不跨层引用(config/ 不能反向依赖 agent/),修改需同步两处。
28
17
  */
29
18
  const DEFAULT_MAX_CONTEXT_TOKENS = 120_000;
30
- // 单一真理源:所有默认值由 DEFAULT_CONFIG 声明,parseConfig({}) 即可得到完整默认配置。
31
- // 嵌套对象(llm/memory/security)必须有完整默认值,
32
- // 否则会在对象缺失时使用内部字段的默认值。
19
+ // ════════════════════════════════════════════════════════════
20
+ // 配置边界常量(SSOT:config 层唯一来源,防无条件填写导致资源失控)
21
+ // ════════════════════════════════════════════════════════════
22
+ /** maxContextTokens 下限:低于此无法承载最小上下文装配 */
23
+ const MIN_MAX_CONTEXT_TOKENS = 1000;
24
+ /** maxContextTokens 上限:2_000_000 覆盖 2M 上下文窗口(与 MAX_CONTEXT_WINDOW 同量级,对齐 Gemini/MiMo 等旗舰模型) */
25
+ const MAX_MAX_CONTEXT_TOKENS = 2_000_000;
26
+ /**
27
+ * contextWindow 的**告警参考上界**:2M(当前主流旗舰模型窗口量级)。
28
+ *
29
+ * ⚠️ **这不是裁决上界**:内核**不做区间裁决** —— 超出此值仅 `logger.warn`(观测),
30
+ * 值仍**原样生效**。理由:「模型能吃多大」是只有 provider/API 知道的事实,内核替用户猜会造成
31
+ * 「UI 显示值 ≠ 真实生效值」的静默失真(坑:填 3M → 静默丢弃 → 兜底 120K,全程无提示);
32
+ * 预算口径定:用户配置的 contextWindow 是预算唯一来源。超模型能力时由 **API 报错**(真实层可见失败)。
33
+ * 若将来必须恢复拦截,**只允许显式报错,不得回到静默**。
34
+ *
35
+ * ⚠️ 与 `src/role-pack/strategyKeys.ts` 的 `MAX_CONTEXT_LIMIT`(角色包 contextLimit 声明上界)**同值对齐,改一处须同步另一处**;
36
+ * 两者语义不同(provider 声明的告警参考 vs 角色包声明上界),故按本仓对 `DEFAULT_MAX_CONTEXT_TOKENS` 的既有做法
37
+ * 「重复 + 双向注释对冲」处理,**不跨层 import**(config 层不依赖 role-pack)。
38
+ * 导出仅供跨模块护栏测试断言同值(constants.test.ts),非 API 承诺。
39
+ */
40
+ export const MAX_CONTEXT_WINDOW = 2_000_000;
41
+ /** allowedPaths 最大条数:路径白名单防膨胀 */
42
+ const MAX_ALLOWED_PATHS = 50;
43
+ // 单一真理源:所有默认值只由 DEFAULT_CONFIG 声明,parseConfig({}) 即得完整默认配置。
44
+ // 嵌套对象(llm/memory/security)必须有完整默认值,否则对象缺失时无法落到内部字段默认值。
33
45
  const DEFAULT_CONFIG = {
34
46
  llm: {
35
- provider: 'mock',
36
- // model 留空:factory.ts 会校验并抛出 'LLM model 未配置',由宿主显式填充
37
- model: '',
38
- temperature: 0.7,
47
+ // 无默认 provider:mock 由 factory 在显式配置 provider: 'mock' 时创建
48
+ providers: undefined,
49
+ active: undefined,
39
50
  },
40
51
  memory: {
41
- // dataDir 留空:由宿主显式注入,内核不硬编码具体目录路径(ADR-002 v0.6)
52
+ // dataDir 由宿主显式注入,内核不硬编码具体目录路径
42
53
  dataDir: '',
43
54
  maxContextTokens: DEFAULT_MAX_CONTEXT_TOKENS,
44
55
  },
@@ -49,83 +60,51 @@ const DEFAULT_CONFIG = {
49
60
  allowedPaths: [],
50
61
  };
51
62
  /**
52
- * 解析并验证配置
53
- *
54
- * 将原始 JSON 解析结果转换为完整的 Config 对象,
55
- * 验证类型并应用默认值。
63
+ * 解析并验证配置:将原始 JSON 转为完整 Config,验证类型并应用默认值
56
64
  *
57
- * @param raw 原始 JSON 解析结果(unknown 类型)
58
- * @returns 完整的 Config 对象
59
65
  * @throws 当类型不匹配时抛出错误
60
66
  */
61
- function parseConfig(raw) {
62
- // 如果 raw 不是对象,使用空对象(MIND-C2:守卫+断言合一为 asRecordIfObject)
67
+ export function parseConfig(raw) {
68
+ // 若 raw 非对象则视为空对象(守卫+断言合一)
63
69
  const input = asRecordIfObject(raw);
64
- // 解析 llm 配置
65
70
  const llmInput = asRecordIfObject(input.llm);
66
71
  const llm = {
67
- provider: typeof llmInput.provider === 'string' ? llmInput.provider : DEFAULT_CONFIG.llm.provider,
68
- model: typeof llmInput.model === 'string' ? llmInput.model : DEFAULT_CONFIG.llm.model,
69
- // 过滤空字符串:空字符串视为未配置,避免旧格式分支中 resolvedBaseUrl = '' 触发误报
70
- baseUrl: typeof llmInput.baseUrl === 'string' && llmInput.baseUrl ? llmInput.baseUrl : undefined,
71
- apiKey: typeof llmInput.apiKey === 'string' && llmInput.apiKey ? llmInput.apiKey : undefined,
72
- temperature: validateTemperature(llmInput.temperature, DEFAULT_CONFIG.llm.temperature),
73
72
  providers: parseProviders(llmInput.providers),
74
73
  active: typeof llmInput.active === 'string' ? llmInput.active : undefined,
75
- background: parseBackground(llmInput.background),
76
74
  };
77
- // 解析 memory 配置
78
75
  const memoryInput = asRecordIfObject(input.memory);
79
76
  const memory = {
80
77
  dataDir: typeof memoryInput.dataDir === 'string' ? memoryInput.dataDir : DEFAULT_CONFIG.memory.dataDir,
81
- maxContextTokens: (typeof memoryInput.maxContextTokens === 'number' && Number.isFinite(memoryInput.maxContextTokens))
82
- ? memoryInput.maxContextTokens
83
- : DEFAULT_CONFIG.memory.maxContextTokens,
78
+ maxContextTokens: validateMaxContextTokens(memoryInput.maxContextTokens, DEFAULT_CONFIG.memory.maxContextTokens),
84
79
  };
85
- // 解析 security 配置
86
80
  const securityInput = asRecordIfObject(input.security);
87
81
  const security = {
88
82
  permission: validatePermission(securityInput.permission),
89
- confirmWrites: typeof securityInput.confirmWrites === 'boolean' ? securityInput.confirmWrites : DEFAULT_CONFIG.security.confirmWrites,
83
+ confirmWrites: typeof securityInput.confirmWrites === 'boolean'
84
+ ? securityInput.confirmWrites
85
+ : DEFAULT_CONFIG.security.confirmWrites,
90
86
  };
91
- // 解析 allowedPaths
92
87
  const allowedPaths = validateAllowedPaths(input.allowedPaths);
93
- // 解析 persona
94
- const persona = typeof input.persona === 'string' ? input.persona : undefined;
95
- // 解析 embedding 配置
96
- const embedding = parseEmbedding(input.embedding);
97
88
  return {
98
89
  llm,
99
90
  memory,
100
91
  security,
101
92
  allowedPaths,
102
- persona,
103
- embedding,
104
93
  };
105
94
  }
106
95
  /**
107
- * 类型守卫辅助:非空对象 → Record,否则 → 空对象
108
- *
109
- * 收紧 MIND-C2 的 8 处 `as Record<string, unknown>` 隐式断言:
110
- * 守卫与断言合一,避免守卫变更时编译器不报警的类型安全风险。
111
- *
112
- * @param value 待收窄的值
113
- * @returns 非空对象返回 value as Record;否则返回空对象 {}
96
+ * 类型守卫辅助:非空对象 → Record,否则 → 空对象。
97
+ * 守卫与断言合一,避免守卫变更时编译器不报类型安全风险。
114
98
  */
115
99
  function asRecordIfObject(value) {
116
- return (value && typeof value === 'object' && !Array.isArray(value))
100
+ return value && typeof value === 'object' && !Array.isArray(value)
117
101
  ? value
118
102
  : {};
119
103
  }
120
104
  /**
121
105
  * 断言值为字符串,否则抛出 configError
122
106
  *
123
- * 消除 loader.ts 中重复的"typeof x !== 'string' → throw"模式(ADR-017 枝叶层 2 次提取原则,6 处重复)。
124
- *
125
- * @param value 待校验的值
126
- * @param field 字段名(用于错误信息,如 "providers.openai.model")
127
- * @returns 类型收窄后的字符串
128
- * @throws MemoraError(category: 'config')当值不是字符串时
107
+ * 消除 loader 中重复的 "typeof x !== 'string' → throw"(枝叶层 2 次提取,收敛 6 处重复)。
129
108
  */
130
109
  function assertString(value, field) {
131
110
  if (typeof value !== 'string') {
@@ -137,29 +116,56 @@ function assertString(value, field) {
137
116
  return value;
138
117
  }
139
118
  /**
140
- * 验证 temperature 值
141
- *
142
- * @param value 待验证的值
143
- * @param defaultValue 默认值
144
- * @returns 有效的 temperature 值
145
- * @throws MemoraError 当值超出范围时抛出
119
+ * 验证 temperature(0-2),非法类型取默认值,超出范围抛错
146
120
  */
147
121
  function validateTemperature(value, defaultValue) {
148
- // Number.isFinite 同时排除 NaN/Infinity(对齐 zod z.number() 行为)
122
+ // Number.isFinite 同时排除 NaN/Infinity(对齐 zod z.number())
149
123
  if (typeof value === 'number' && Number.isFinite(value)) {
150
124
  if (value < 0 || value > 2) {
151
- throw configError('temperature 配置项超出范围', `当前值: ${value}(合法范围 0-2)`, ['将 temperature 调整为 0-2 之间的数字']);
125
+ throw configError('temperature 配置项超出范围', `当前值: ${value}(合法范围 0-2)`, [
126
+ '将 temperature 调整为 0-2 之间的数字',
127
+ ]);
128
+ }
129
+ return value;
130
+ }
131
+ return defaultValue;
132
+ }
133
+ /**
134
+ * 验证 maxContextTokens(上下限内),非法类型取默认值,超出范围抛错。
135
+ * 上下限防配置成 0/负数(上下文预算异常)或超大值(资源失控)。
136
+ */
137
+ function validateMaxContextTokens(value, defaultValue) {
138
+ // Number.isFinite 同时排除 NaN/Infinity
139
+ if (typeof value === 'number' && Number.isFinite(value)) {
140
+ if (value < MIN_MAX_CONTEXT_TOKENS || value > MAX_MAX_CONTEXT_TOKENS) {
141
+ throw configError('maxContextTokens 配置项超出范围', `当前值: ${value}(合法范围 ${MIN_MAX_CONTEXT_TOKENS}-${MAX_MAX_CONTEXT_TOKENS})`, [
142
+ `将 maxContextTokens 调整为 ${MIN_MAX_CONTEXT_TOKENS}-${MAX_MAX_CONTEXT_TOKENS} 之间的数字`,
143
+ ]);
152
144
  }
153
145
  return value;
154
146
  }
155
147
  return defaultValue;
156
148
  }
157
149
  /**
158
- * 验证 permission 值
150
+ * 验证 contextWindow(可选,provider 上下文窗口声明)。
159
151
  *
160
- * @param value 待验证的值
161
- * @returns 有效的 permission 值
162
- * @throws MemoraError 当值无效时抛出
152
+ * **只做自身防御**(类型非法 / 非有限数 / 非正数 → undefined = 未声明),**不做区间裁决**:
153
+ * 「模型能吃多大」是只有 provider/API 知道的事实,内核替用户裁决会造成「UI 显示值 ≠ 真实生效值」
154
+ * 的静默失真(填 3M 被静默丢弃、兜底 120K,全程无提示)。值**原样生效**,
155
+ * 超模型能力时由 **API 报错**(真实层可见失败);超出常规量级仅 `warn` 作**观测**、**不改变行为**。
156
+ */
157
+ function validateContextWindow(value) {
158
+ if (typeof value !== 'number' || !Number.isFinite(value))
159
+ return undefined;
160
+ if (value <= 0)
161
+ return undefined;
162
+ if (value > MAX_CONTEXT_WINDOW) {
163
+ logger.warn({ contextWindow: value, warnAbove: MAX_CONTEXT_WINDOW }, 'contextWindow 超出常规模型窗口量级:内核不裁决,按原值生效;若模型不支持将由 API 报错');
164
+ }
165
+ return value;
166
+ }
167
+ /**
168
+ * 验证 permission(仅 owner/guest),空值取默认,非法抛错
163
169
  */
164
170
  function validatePermission(value) {
165
171
  if (value === undefined || value === null) {
@@ -171,28 +177,22 @@ function validatePermission(value) {
171
177
  throw configError('security.permission 配置项无效', `当前值: ${JSON.stringify(value)}(仅允许 "owner" 或 "guest")`, ['将 security.permission 修改为 "owner" 或 "guest"']);
172
178
  }
173
179
  /**
174
- * 验证 allowedPaths 数组
175
- *
176
- * @param value 待验证的值
177
- * @returns 有效的路径数组
178
- * @throws MemoraError 当数组元素类型不匹配时抛出
180
+ * 验证 allowedPaths 数组,元素非字符串抛错;超过最大条数截断(防白名单膨胀)
179
181
  */
180
182
  function validateAllowedPaths(value) {
181
183
  if (!Array.isArray(value)) {
182
184
  return DEFAULT_CONFIG.allowedPaths;
183
185
  }
184
- // 验证每个元素都是字符串(断言失败抛 configError)
185
186
  for (let i = 0; i < value.length; i++) {
186
187
  assertString(value[i], `allowedPaths[${i}]`);
187
188
  }
188
- return value;
189
+ // 数量上限:路径白名单防膨胀(超过则截断保留前 MAX_ALLOWED_PATHS 条)
190
+ return value.length > MAX_ALLOWED_PATHS
191
+ ? value.slice(0, MAX_ALLOWED_PATHS)
192
+ : value;
189
193
  }
190
194
  /**
191
195
  * 解析 Provider 配置映射表
192
- *
193
- * @param value 待解析的值
194
- * @returns 有效的 Provider 配置映射表或 undefined
195
- * @throws MemoraError 当 Provider 配置无效时抛出
196
196
  */
197
197
  function parseProviders(value) {
198
198
  if (!value || typeof value !== 'object' || Array.isArray(value)) {
@@ -205,7 +205,6 @@ function parseProviders(value) {
205
205
  throw configError(`配置项 providers.${key} 必须是对象`, `当前类型: ${providerValue === null ? 'null' : Array.isArray(providerValue) ? 'array' : typeof providerValue}`, [`将 providers.${key} 配置为包含 provider/model 等字段的对象`]);
206
206
  }
207
207
  const p = providerValue;
208
- // 验证必需字段(断言失败抛 configError,返回值类型收窄为 string)
209
208
  const providerName = assertString(p.provider, `providers.${key}.provider`);
210
209
  const modelName = assertString(p.model, `providers.${key}.model`);
211
210
  providers[key] = {
@@ -215,81 +214,36 @@ function parseProviders(value) {
215
214
  baseUrl: typeof p.baseUrl === 'string' && p.baseUrl ? p.baseUrl : undefined,
216
215
  apiKey: typeof p.apiKey === 'string' && p.apiKey ? p.apiKey : undefined,
217
216
  temperature: p.temperature !== undefined ? validateTemperature(p.temperature, 0) : undefined,
218
- contextWindow: (typeof p.contextWindow === 'number' && Number.isFinite(p.contextWindow)) ? p.contextWindow : undefined,
217
+ contextWindow: validateContextWindow(p.contextWindow),
218
+ // 能力位(互斥双能力位):三态保真透传——显式 true/false 如实保留,
219
+ // 仅未配置(undefined)才由下游 Provider 内回落默认(toolCalling 默认 true、structured 默认 false)。
220
+ supportsToolCalling: typeof p.supportsToolCalling === 'boolean' ? p.supportsToolCalling : undefined,
221
+ supportsStructuredOutput: typeof p.supportsStructuredOutput === 'boolean' ? p.supportsStructuredOutput : undefined,
219
222
  };
220
223
  }
221
224
  return Object.keys(providers).length > 0 ? providers : undefined;
222
225
  }
223
226
  /**
224
- * 解析后台通道配置
225
- *
226
- * @param value 待解析的值
227
- * @returns 有效的后台通道配置或 undefined
228
- * @throws MemoraError 当配置无效时抛出
229
- */
230
- function parseBackground(value) {
231
- if (!value || typeof value !== 'object' || Array.isArray(value)) {
232
- return undefined;
233
- }
234
- const bg = value;
235
- // 验证必需字段(断言失败抛 configError,返回值类型收窄为 string)
236
- const bgProvider = assertString(bg.provider, 'background.provider');
237
- const bgModel = assertString(bg.model, 'background.model');
238
- return {
239
- provider: bgProvider,
240
- model: bgModel,
241
- baseUrl: typeof bg.baseUrl === 'string' ? bg.baseUrl : undefined,
242
- apiKey: typeof bg.apiKey === 'string' ? bg.apiKey : undefined,
243
- temperature: bg.temperature !== undefined ? validateTemperature(bg.temperature, 0.5) : 0.5,
244
- };
245
- }
246
- /**
247
- * 解析 Embedding 配置
248
- *
249
- * @param value 待解析的值
250
- * @returns 有效的 Embedding 配置或 undefined
251
- * @throws MemoraError 当配置无效时抛出
252
- */
253
- function parseEmbedding(value) {
254
- if (!value || typeof value !== 'object' || Array.isArray(value)) {
255
- return undefined;
256
- }
257
- const emb = value;
258
- // 验证必需字段(断言失败抛 configError,返回值类型收窄为 string)
259
- const embModel = assertString(emb.model, 'embedding.model');
260
- return {
261
- model: embModel,
262
- baseUrl: typeof emb.baseUrl === 'string' ? emb.baseUrl : undefined,
263
- apiKey: typeof emb.apiKey === 'string' ? emb.apiKey : undefined,
264
- };
265
- }
266
- /**
267
- * 加载配置
268
- *
269
- * 单一真理源:所有默认值由 DEFAULT_CONFIG 声明,
270
- * 不再维护独立的 schema(避免两处真理源打架)。
271
- *
272
- * 查找顺序:显式 configPath → 项目级 .memora/config.json → 内置默认值。
273
- * 用户级配置路径由宿主通过 configPath 显式传入。
274
- *
275
- * @param configPath 显式指定的配置文件路径
227
+ * 加载配置。
228
+ * 单一真理源:所有默认值由 DEFAULT_CONFIG 声明,不维护独立 schema。
229
+ * 查找顺序:显式 configPath → 项目级 .memora/config.json → 内置默认值(apply env 展开)。
230
+ * 默认值合并走 parseConfig(不 spread DEFAULT_CONFIG,避免覆盖 schema 默认)。
276
231
  */
277
232
  export async function loadConfig(configPath) {
278
233
  // 1. 显式指定
279
234
  if (configPath) {
280
235
  const config = await readJsonFile(configPath);
281
- return expandEnvVars(mergeWithDefaults(config));
236
+ return expandEnvVars(parseConfig(config));
282
237
  }
283
238
  // 2. 项目级
284
239
  const projectPath = resolve(process.cwd(), '.memora/config.json');
285
240
  try {
286
241
  const config = await readJsonFile(projectPath);
287
- return expandEnvVars(mergeWithDefaults(config));
242
+ return expandEnvVars(parseConfig(config));
288
243
  }
289
244
  catch (err) {
290
- // 项目级不可用(不存在/损坏/权限),使用内置默认值
291
- // 排除 ENOENT(正常情况),其他错误应暴露根因供诊断
292
- if (!isEnoent(err)) {
245
+ // 项目级不可用(不存在/损坏/权限)时用默认值;排除 ENOENT(正常),其他错误暴露根因
246
+ if (!isNodeErrorCode(err, 'ENOENT')) {
293
247
  logger.warn({ path: projectPath, err: toError(err) }, '项目级配置加载失败,使用默认值');
294
248
  }
295
249
  }
@@ -297,10 +251,8 @@ export async function loadConfig(configPath) {
297
251
  return expandEnvVars(parseConfig({}));
298
252
  }
299
253
  /**
300
- * 读取并解析 JSON 文件
301
- *
302
- * 将 JSON.parse 的 SyntaxError 包装为 configError,
303
- * 防止裸 Error 通过显式 --config 路径传播。
254
+ * 读取并解析 JSON 文件,将 JSON.parse 的 SyntaxError 包装为 configError
255
+ * (防止裸 Error 通过显式 --config 路径传播)
304
256
  */
305
257
  async function readJsonFile(path) {
306
258
  const content = await readFile(path, 'utf-8');
@@ -308,74 +260,9 @@ async function readJsonFile(path) {
308
260
  return JSON.parse(content);
309
261
  }
310
262
  catch (err) {
311
- throw configError(`配置文件 JSON 格式错误: ${path}`, toError(err).message, ['检查配置文件语法(逗号、引号配对、尾随逗号)']);
263
+ throw configError(`配置文件 JSON 格式错误: ${path}`, toError(err).message, [
264
+ '检查配置文件语法(逗号、引号配对、尾随逗号)',
265
+ ]);
312
266
  }
313
267
  }
314
- /**
315
- * 判断错误是否为 ENOENT(文件不存在)
316
- */
317
- function isEnoent(err) {
318
- return err instanceof Object && 'code' in err && err.code === 'ENOENT';
319
- }
320
- /**
321
- * 合并用户配置与默认值
322
- *
323
- * 直接用 parseConfig(userConfig),让默认值填充缺失字段。
324
- * 不再 spread DEFAULT_CONFIG,避免覆盖 schema default。
325
- */
326
- function mergeWithDefaults(userConfig) {
327
- return parseConfig(userConfig);
328
- }
329
- /**
330
- * 展开 ${ENV_VAR} 占位符
331
- * 配置文件可写 "apiKey": "${MEMORA_LLM_API_KEY}"
332
- * 实际读取时展开为环境变量值
333
- *
334
- * 展开范围覆盖所有可能包含敏感信息的通道:
335
- * - llm(前台主通道):apiKey / baseUrl
336
- * - llm.providers(多 Provider 映射表):每个 Provider 的 apiKey / baseUrl
337
- * - llm.background(后台通道):apiKey / baseUrl
338
- * - embedding(向量嵌入通道):apiKey / baseUrl
339
- */
340
- function expandEnvVars(config) {
341
- const expand = (val) => {
342
- if (!val)
343
- return val;
344
- return val.replace(/\$\{([A-Z_][A-Z0-9_]*)\}/g, (_, name) => process.env[name] ?? '');
345
- };
346
- // 展开 providers 映射表中的环境变量
347
- const expandedProviders = config.llm.providers
348
- ? Object.fromEntries(Object.entries(config.llm.providers).map(([key, p]) => [
349
- key,
350
- { ...p, apiKey: expand(p.apiKey), baseUrl: expand(p.baseUrl) },
351
- ]))
352
- : undefined;
353
- // 展开 background 后台通道的环境变量(与前台 llm 通道同模式)
354
- const expandedBackground = config.llm.background
355
- ? {
356
- ...config.llm.background,
357
- apiKey: expand(config.llm.background.apiKey),
358
- baseUrl: expand(config.llm.background.baseUrl),
359
- }
360
- : undefined;
361
- // 展开 embedding 向量嵌入通道的环境变量
362
- const expandedEmbedding = config.embedding
363
- ? {
364
- ...config.embedding,
365
- apiKey: expand(config.embedding.apiKey),
366
- baseUrl: expand(config.embedding.baseUrl),
367
- }
368
- : undefined;
369
- return {
370
- ...config,
371
- llm: {
372
- ...config.llm,
373
- apiKey: expand(config.llm.apiKey),
374
- baseUrl: expand(config.llm.baseUrl),
375
- providers: expandedProviders,
376
- background: expandedBackground,
377
- },
378
- embedding: expandedEmbedding,
379
- };
380
- }
381
268
  //# sourceMappingURL=loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}