@zooique/memora 2.0.3 → 3.0.1

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 +1037 -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,331 +0,0 @@
1
- import { SOURCE_LABELS } from '../../memory/types.js';
2
- import { configError, toError } from '../../utils/errors.js';
3
- import { logger } from '../../logging/logger.js';
4
- import { nowIso } from '../../utils/time.js';
5
- // parseFrontmatter:与 FileStore.parseMemory 保持一致的 content 处理(只存 body,去掉 frontmatter)
6
- import { parseFrontmatter } from '../../utils/frontmatter.js';
7
- // ─── 类 ──────────────────────────────────────────────────
8
- export class ConfigManager {
9
- index;
10
- skillManager;
11
- injectSystemMessage;
12
- writeConfigFile;
13
- refreshBootstrapMemories;
14
- /** 配置建议回调(模式 3) */
15
- suggestionHandler = null;
16
- /**
17
- * @param index - 记忆存储(规则写入 SQLite)
18
- * @param skillManager - 技能管理器(运行时注入技能)
19
- * @param injectSystemMessage - 注入 system 消息的回调(来自 AgentLoop)
20
- * @param writeConfigFile - 写入配置文件的回调(来自 Agent,解耦 FileStore 依赖)
21
- * @param refreshBootstrapMemories - 刷新 AgentLoop system prompt 中 bootstrap 段的回调
22
- * 设定 CRUD(deleteRule/updateRule/deleteSkill)后调用,使 system prompt 中的
23
- * rule/skill 段立即同步。由 Agent 在装配时注入(assembler.ts)。
24
- */
25
- constructor(index, skillManager, injectSystemMessage, writeConfigFile, refreshBootstrapMemories) {
26
- this.index = index;
27
- this.skillManager = skillManager;
28
- this.injectSystemMessage = injectSystemMessage;
29
- this.writeConfigFile = writeConfigFile;
30
- this.refreshBootstrapMemories = refreshBootstrapMemories;
31
- }
32
- // ─── 配置建议 ─────────────────────────────────────────
33
- /**
34
- * 注册配置建议回调(模式 3)
35
- *
36
- * 宿主项目通过此方法注册回调,当 AutoConfigRefiner 从对话中
37
- * 提取到配置建议时,通过此回调通知宿主。
38
- */
39
- onConfigSuggestion(handler) {
40
- this.suggestionHandler = handler;
41
- }
42
- /** 获取当前注册的配置建议回调 */
43
- get suggestionCallback() {
44
- return this.suggestionHandler;
45
- }
46
- /**
47
- * 确认配置建议并写入配置文件(模式 3)
48
- *
49
- * 用户确认配置建议后,宿主调用此方法将建议持久化到 configDir/ 目录。
50
- * 写入的是配置文件(真理源),下次启动时 MemoryLoader 自动扫描加载到 SQLite。
51
- *
52
- * 与 addRule() 的关键区别:
53
- * - addRule() → 写入 SQLite(运行时注入,会话级,重启后需重新注入)
54
- * - confirmConfigSuggestion() → 写入配置文件(持久化,重启后自动加载)
55
- */
56
- async confirmConfigSuggestion(suggestion) {
57
- if (!this.writeConfigFile) {
58
- throw configError('writeConfigFile 未设置', '模式 3 需要注入配置文件写入回调才能持久化', [
59
- '在 Agent 构造时传入 configDir 参数(Agent 会自动创建 FileStore 并注入回调)',
60
- ]);
61
- }
62
- // 根据建议类型映射到 source 标签(ADR-004:开放字符串,约定值走 sourceMap,扩展值走 memorySource)
63
- const sourceMap = {
64
- rule: SOURCE_LABELS.RULE,
65
- persona: SOURCE_LABELS.PERSONA,
66
- skill: SOURCE_LABELS.SKILL,
67
- };
68
- // 优先级:memorySource(扩展值)> sourceMap[type](约定值)
69
- const source = suggestion.memorySource ?? sourceMap[suggestion.type];
70
- if (!source) {
71
- throw configError('无法确定配置建议的 source 标签', `type='${suggestion.type}' 不在约定值(rule/persona/skill)内,且未提供 memorySource 字段`, [
72
- '使用约定 type 值(rule/persona/skill)',
73
- '或提供 memorySource 字段指定自定义 source 标签',
74
- ]);
75
- }
76
- // 构造记忆对象并写入配置文件(真理源)
77
- // 写入 SQLite index(运行时索引):配置文件是真理源,SQLite 是运行时检索索引
78
- // 两层写入语义:配置文件保证重启后自动加载;SQLite 保证当前会话 search_memories 可检索
79
- const now = nowIso();
80
- const memory = {
81
- id: `${source}:${suggestion.name}`,
82
- content: suggestion.content,
83
- source,
84
- name: suggestion.name,
85
- createdAt: now,
86
- accessedAt: now,
87
- score: suggestion.confidence,
88
- // metadata 透传到 FileStore.write,合并到 frontmatter(如 keywords/description)
89
- metadata: suggestion.metadata,
90
- };
91
- // 包裹错误处理:磁盘满/权限不足/路径越界等异常转为友好的 configError
92
- try {
93
- await this.writeConfigFile(memory);
94
- }
95
- catch (err) {
96
- const e = toError(err);
97
- throw configError('配置文件写入失败', `source=${source} name=${suggestion.name} 错误:${e.message}`, [
98
- '检查 configDir 路径是否存在且可写',
99
- '确认磁盘空间充足',
100
- '确认进程对配置目录有写权限',
101
- ], e);
102
- }
103
- // 同步写入 SQLite index:当前会话的 search_memories / recall 可立即检索到新创建的配置
104
- // persona/skill 后续由 reloadConfig → SkillManager.reload / PersonaManager.reload 重新扫描覆盖,
105
- // 但 rule 的 reloadConfig 是 no-op(agent.ts 内跳过),必须在此显式同步
106
- this.index.upsert(memory);
107
- // 如果是规则,立即注入到 AgentLoop(当前会话生效,重启后由配置文件自动加载)
108
- if (suggestion.type === 'rule') {
109
- const rulePrompt = `【项目规则】${suggestion.name}\n${suggestion.content}`;
110
- this.injectSystemMessage(rulePrompt);
111
- }
112
- logger.info({ type: suggestion.type, name: suggestion.name, confidence: suggestion.confidence }, '配置建议已确认并写入配置文件');
113
- }
114
- // ─── 规则注入 ─────────────────────────────────────────
115
- /**
116
- * 新增项目规则记忆(Q-701 · v1.1)
117
- *
118
- * 宿主项目可通过此 API 在运行时动态注入规则记忆。
119
- * 规则写入 SQLite 索引后,重启时由 bootstrap 自动召回。
120
- * 当前轮次以 system 消息注入 AgentLoop。
121
- */
122
- async addRule(memory) {
123
- if (memory.source !== SOURCE_LABELS.RULE) {
124
- throw configError('无效来源', `addRule 只接受 source='rule',收到 '${memory.source}'`, [
125
- '使用 SOURCE_LABELS.RULE 作为 source 字段',
126
- ]);
127
- }
128
- this.index.upsert(memory);
129
- const rulePrompt = `【项目规则】${memory.name}\n${memory.content}`;
130
- this.injectSystemMessage(rulePrompt);
131
- logger.info({ name: memory.name, source: memory.source }, '项目规则已注入');
132
- }
133
- /**
134
- * 新增项目规则的便捷方法
135
- *
136
- * 宿主程序只需提供 name + content 两个业务字段,
137
- * 内部自动填充 id / source / createdAt / accessedAt / score 等字段。
138
- */
139
- async addSimpleRule(name, content) {
140
- const now = nowIso();
141
- const memory = {
142
- id: `rule:${name}`,
143
- content,
144
- source: SOURCE_LABELS.RULE,
145
- name,
146
- createdAt: now,
147
- accessedAt: now,
148
- score: 0.8,
149
- };
150
- await this.addRule(memory);
151
- }
152
- // ─── 技能注入 ─────────────────────────────────────────
153
- /**
154
- * 运行时动态注入技能(session-only)
155
- *
156
- * 技能在 Skill 的设计中属于"配置型记忆"——
157
- * 由 SkillManager 在内存中管理,通过关键词匹配触发,
158
- * 同时写入 SQLite 索引(source: skill)以支持 recall() 检索。
159
- *
160
- * 路径一(文件加载):SkillManager.load() 扫描 configDir/skills/*.md → 内存 + SQLite
161
- * 路径二(运行时注入):addSkill() → SkillManager.register() → 内存 + SQLite
162
- * 路径三(持久化新增):config.confirmConfigSuggestion({type:'skill',...}) → 写配置文件 → 下次 load() 自动加载
163
- *
164
- * 注意:运行时注入的技能仅在当前会话内生效,重启后需重新注入。
165
- * 如需跨会话持久化,宿主应调用 config.confirmConfigSuggestion() 写入配置文件。
166
- */
167
- async addSkill(memory) {
168
- if (memory.source !== SOURCE_LABELS.SKILL) {
169
- throw configError('无效来源', `addSkill 只接受 source='skill',收到 '${memory.source}'`, [
170
- '使用 SOURCE_LABELS.SKILL 作为 source 字段',
171
- ]);
172
- }
173
- // 写入 SQLite 索引(遵循"万物皆记忆"——与 PersonaManager 一致)
174
- this.index.upsert(memory);
175
- // 同时注册到 SkillManager(内存缓存,用于关键词匹配)
176
- this.skillManager.register({
177
- name: memory.name,
178
- keywords: [],
179
- content: memory.content,
180
- description: memory.content.slice(0, 80),
181
- filePath: '',
182
- layer: 'agent',
183
- });
184
- logger.info({ name: memory.name }, '技能已注入');
185
- }
186
- /**
187
- * 运行时注入技能的便捷方法(session-only)
188
- *
189
- * 宿主程序只需提供 name + content 两个业务字段,
190
- * 内部自动填充 id / source / createdAt / accessedAt / score。
191
- * 注入后仅在当前会话生效,持久化需调用 config.confirmConfigSuggestion()。
192
- */
193
- async addSimpleSkill(name, content, keywords = []) {
194
- void keywords; // 基元驱动模型下关键词暂不存储到 Memory,由 SkillManager 管理
195
- const now = nowIso();
196
- const memory = {
197
- id: `skill:${name}`,
198
- content,
199
- source: SOURCE_LABELS.SKILL,
200
- name,
201
- createdAt: now,
202
- accessedAt: now,
203
- score: 0.7,
204
- };
205
- await this.addSkill(memory);
206
- }
207
- // ─── 设定 CRUD(设定面板专用) ───────────────────────
208
- /**
209
- * 删除规则(设定面板调用)
210
- *
211
- * 软删除 SQLite 中 source='rule' name=name 的记忆,
212
- * 并刷新 AgentLoop system prompt 中的 bootstrap 段。
213
- *
214
- * 文件层删除由宿主层 configFileManager 处理(本方法不操作文件)。
215
- * 删除后调用 refreshBootstrapMemories 回调,使 system prompt 立即同步。
216
- *
217
- * @param name 规则名(与 frontmatter name 字段一致)
218
- * @returns true 删除成功;false 规则不存在
219
- */
220
- deleteRule(name) {
221
- const id = `rule:${name}`;
222
- const existing = this.index.getById(id);
223
- if (!existing) {
224
- logger.warn({ name, id }, '删除规则失败:规则不存在');
225
- return false;
226
- }
227
- this.index.delete(id);
228
- this.refreshBootstrapMemories?.();
229
- logger.info({ name, id }, '规则已删除');
230
- return true;
231
- }
232
- /**
233
- * 更新规则内容(设定面板调用)
234
- *
235
- * upsert SQLite 中 source='rule' name=name 的记忆,
236
- * 并刷新 AgentLoop system prompt 中的 bootstrap 段。
237
- *
238
- * 文件层更新由宿主层 configFileManager 处理(本方法不操作文件)。
239
- * 与 addRule 的区别:addRule 是新增(追加 system 消息),
240
- * updateRule 是覆盖更新(刷新 bootstrap 段,不追加 system 消息)。
241
- *
242
- * content 处理:调用方传入的是完整文件内容(含 frontmatter + body),
243
- * 本方法用 parseFrontmatter 解析后只存 body.trim(),
244
- * 与 FileStore.parseMemory(store.ts)保持一致——避免 system prompt bootstrap 段
245
- * 含 frontmatter 噪音,且重启后 MemoryLoader 重新加载时内容一致。
246
- *
247
- * @param name 规则名
248
- * @param content 新的规则文件内容(含 frontmatter + body)
249
- */
250
- updateRule(name, content) {
251
- const id = `rule:${name}`;
252
- const existing = this.index.getById(id);
253
- const now = nowIso();
254
- // 与 FileStore.parseMemory 保持一致:只存 body(去掉 frontmatter),避免 system prompt 含噪音
255
- const { body } = parseFrontmatter(content);
256
- const memory = {
257
- id,
258
- content: body.trim(),
259
- source: SOURCE_LABELS.RULE,
260
- name,
261
- createdAt: existing?.createdAt ?? now,
262
- accessedAt: now,
263
- score: existing?.score ?? 0.8,
264
- };
265
- // 若 existing 已软删除,需先 restore 再 upsert(避免"通过 upsert 复活软删除记忆"校验失败)
266
- if (existing?.deletedAt) {
267
- this.index.restore(id);
268
- }
269
- this.index.upsert(memory);
270
- this.refreshBootstrapMemories?.();
271
- logger.info({ name, id }, '规则已更新');
272
- }
273
- /**
274
- * 列出所有规则(设定面板调用)
275
- *
276
- * @returns 所有 source='rule' 的活跃记忆(按 score 降序)
277
- */
278
- listRules() {
279
- return this.index.getBySource(SOURCE_LABELS.RULE);
280
- }
281
- /**
282
- * 删除技能(设定面板调用)
283
- *
284
- * 软删除 SQLite 中 source='skill' name=name 的记忆,
285
- * 同步清理 SkillManager 内存缓存,
286
- * 并刷新 AgentLoop system prompt 中的 bootstrap 段。
287
- *
288
- * 文件层删除由宿主层 configFileManager 处理(本方法不操作文件)。
289
- *
290
- * @param name 技能名
291
- * @returns true 删除成功;false 技能不存在
292
- */
293
- deleteSkill(name) {
294
- const id = `skill:${name}`;
295
- const existing = this.index.getById(id);
296
- if (!existing) {
297
- logger.warn({ name, id }, '删除技能失败:技能不存在');
298
- return false;
299
- }
300
- this.index.delete(id);
301
- // 同步清理 SkillManager 内存缓存(deleteSkill 内部处理 name 不存在的情况)
302
- this.skillManager.deleteSkill(name);
303
- this.refreshBootstrapMemories?.();
304
- logger.info({ name, id }, '技能已删除');
305
- return true;
306
- }
307
- /**
308
- * 列出所有技能(设定面板调用)
309
- *
310
- * @returns 所有 source='skill' 的活跃记忆(按 score 降序)
311
- */
312
- listSkills() {
313
- return this.index.getBySource(SOURCE_LABELS.SKILL);
314
- }
315
- /**
316
- * 获取 bootstrap 记忆(仅 Rule,供 AgentLoop 刷新 system prompt)
317
- *
318
- * AgentLoop 的 system prompt 中包含 bootstrap 段(rule 记忆)。
319
- * Skill 已迁移到 per-round matchAndInjectSkill 动态注入,不再放入 bootstrap。
320
- * 设定 CRUD 后调用 refreshBootstrapMemories 回调,回调内部调用此方法
321
- * 获取最新的 rule 记忆,传给 AgentLoop.refreshBootstrapMemories()。
322
- *
323
- * @returns rule 活跃记忆数组
324
- */
325
- getBootstrapMemories() {
326
- return [
327
- ...this.index.getBySource(SOURCE_LABELS.RULE),
328
- ];
329
- }
330
- }
331
- //# sourceMappingURL=configManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configManager.js","sourceRoot":"","sources":["../../../src/agent/managers/configManager.ts"],"names":[],"mappings":"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"}
@@ -1,139 +0,0 @@
1
- /**
2
- * Insight 提取器 — 输入分类 + 记忆提取
3
- *
4
- * 从 Agent 拆分出来,负责:
5
- * - 三层输入分类(通用规则 → 宿主关键词 → 默认提取)
6
- * - 异步 insight 提取(LLM 判断 + 去重 + 写入 SQLite)
7
- * - 宿主记忆关键词管理
8
- *
9
- * 关系构建逻辑(ADR-014)已拆分至 RelationBuilder,本类通过 relationBuilder 委托调用。
10
- *
11
- * 设计原则:
12
- * - 独立于 Agent 生命周期,仅依赖 Provider/Storage/Loop
13
- * - 提取失败不影响主对话流程(fire-and-forget)
14
- */
15
- import type { LlmProvider } from '../../llm/provider.js';
16
- import type { Memory } from '../../memory/types.js';
17
- import type { IMemoryStorage } from '../../memory/storageInterface.js';
18
- import type { WriteExtensions } from '../../agent/toolExecutor.js';
19
- import type { RelationBuilder, ConflictInfo } from '../../agent/managers/relationBuilder.js';
20
- /**
21
- * 记忆关键词(宿主提供,用于输入分类 Layer 2)
22
- *
23
- * 宿主通过 setKeywords() 注册领域关键词和用户专属关键词,
24
- * 用于判断用户输入是否值得提取记忆。
25
- */
26
- export interface MemoryKeywords {
27
- /** 领域关键词(如项目相关:['架构', '接口', '性能', '测试']) */
28
- domain: string[];
29
- /** 用户专属关键词(如:['我', '我的', '记住', '帮我']) */
30
- personal: string[];
31
- }
32
- export declare class InsightExtractor {
33
- private readonly provider;
34
- private readonly index;
35
- /** 宿主提供的记忆关键词(用于输入分类 Layer 2) */
36
- private hostKeywords;
37
- /** 写入扩展回调(宿主注入 diff 对比确认逻辑) */
38
- writeExtensions: WriteExtensions | null;
39
- /**
40
- * 关系构建器(ADR-014 关系构建委托给 RelationBuilder)
41
- * 未注入时跳过所有关系构建(保持向后兼容)
42
- */
43
- private readonly relationBuilder;
44
- /**
45
- * @param provider - LLM Provider(用于 insight 提取)
46
- * @param index - 记忆存储(用于去重搜索 + 写入)
47
- * @param relationBuilder - 关系构建器(可选,替代直接 relationStore 注入)
48
- * 未注入时跳过关系构建(保持向后兼容,ADR-014 侧车模型)
49
- */
50
- constructor(provider: LlmProvider, index: IMemoryStorage, relationBuilder?: RelationBuilder | null);
51
- /** 获取最近 N 轮对话历史的回调(由 AgentLoop 通过 bindGetRecentHistory 注入) */
52
- private _getRecentHistory;
53
- /**
54
- * 绑定历史回调(由 assembler 在 AgentLoop 创建后调用,解决构造时序循环依赖)
55
- */
56
- bindGetRecentHistory(fn: (rounds: number) => Array<{
57
- role: 'user' | 'assistant';
58
- content: string;
59
- }>): void;
60
- /**
61
- * 绑定冲突检测回调(委托给 RelationBuilder)
62
- *
63
- * 由 Agent.init() 在创建 InsightExtractor 后调用(与 bindGetRecentHistory 同模式),
64
- * 解决 Agent 实例晚于 InsightExtractor 创建的时序循环依赖。
65
- * RelationBuilder.buildRelations 检测到 contradicts 关系时调用此回调,Agent 在回调中 emit('conflictDetected')。
66
- *
67
- * @param fn 冲突检测回调(传入 null 可解除绑定)
68
- */
69
- bindOnConflict(fn: ((info: ConflictInfo) => void) | null): void;
70
- /**
71
- * 设置宿主记忆关键词(输入分类 Layer 2)
72
- */
73
- setKeywords(keywords: MemoryKeywords): void;
74
- /**
75
- * 设置写入扩展回调
76
- */
77
- setWriteExtensions(ext: WriteExtensions | null): void;
78
- /**
79
- * 输入分类三层架构(串联)
80
- *
81
- * Layer 1: 通用规则(Memora 内置,零成本)
82
- * Layer 2: 宿主关键词(宿主提供,零成本)
83
- * Layer 3: 默认 extract + 后台异步精判修正
84
- *
85
- * @returns 'skip' 或 'extract'
86
- */
87
- classify(input: string): 'skip' | 'extract';
88
- /**
89
- * 提取对话中的 insight(每轮异步提取)
90
- *
91
- * 流程:
92
- * 1. 调用 LLM 提取 insight(异步,不阻塞主对话)
93
- * 2. 去重检查(防止重复写入)
94
- * 3. 写入 SQLite(source='insight', score=0.5)
95
- */
96
- extract(userInput: string, assistantContent: string): Promise<Memory[]>;
97
- /**
98
- * 计算 Jaccard 相似度(词级,基于 ICU 分词)
99
- *
100
- * 使用 segmentText(Intl.Segmenter ICU 分词)替代 split(/\s+/),
101
- * 正确处理中文(中文无空格分隔,split 会把整段中文当作一个"词"导致相似度失效)。
102
- * 与 recall.ts extractKeywords 保持一致的分词策略。
103
- */
104
- private jaccardSimilarity;
105
- /**
106
- * 根据 LLM 返回的质量分级设置 score
107
- * high → 0.8(优先召回)
108
- * medium → 0.5(默认值)
109
- * low → 0.2(快速衰减)
110
- */
111
- private scoreByQuality;
112
- /**
113
- * 利用 LLM 返回的 tags 生成语义化 name
114
- *
115
- * name 格式:`{清洗后的tag}-{uuid前6位}`(如 "偏好-a1b2c3")
116
- * - 取 tags 数组第一个非空 tag
117
- * - 清洗 tag:保留中文/字母/数字,移除其他字符,取前 8 字符
118
- * - UUID 前缀保证唯一性,tag 前缀提升 UI 可读性
119
- * - 无 tags 或清洗后为空时,回退到 `insight-{uuid前8位}`
120
- *
121
- * @param tagsRaw - LLM 返回的 tags 字段(类型未知,需运行时校验)
122
- * @param insightId - UUID,用于保证 name 唯一性
123
- * @returns 语义化 name 字符串
124
- */
125
- private generateSemanticName;
126
- /**
127
- * Layer 1: 通用规则过滤
128
- *
129
- * 零成本规则过滤:短输入、问候、确认等无信息量输入 → skip
130
- */
131
- private classifyByRules;
132
- /**
133
- * Layer 2: 宿主关键词匹配
134
- *
135
- * 宿主提供的领域关键词和用户专属关键词匹配。
136
- */
137
- private classifyByHostKeywords;
138
- }
139
- //# sourceMappingURL=insightExtractor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"insightExtractor.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/insightExtractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,WAAW,EAAW,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAInE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAkCzF;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAsFD,qBAAa,gBAAgB;IAoBzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IApBxB,iCAAiC;IACjC,OAAO,CAAC,YAAY,CAA+B;IAEnD,+BAA+B;IACxB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAQ;IAEtD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyB;IAEzD;;;;;OAKG;gBAEgB,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,cAAc,EACtC,eAAe,GAAE,eAAe,GAAG,IAAW;IAOhD,8DAA8D;IAC9D,OAAO,CAAC,iBAAiB,CAA6E;IAEtG;;OAEG;IACH,oBAAoB,CAClB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAC7E,IAAI;IAIP;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAM/D;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAQ3C;;OAEG;IACH,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI;IAOrD;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAe3C;;;;;;;OAOG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA2I7E;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAQtB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,oBAAoB;IAyB5B;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAUvB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;CAU/B"}