@zooique/memora 1.0.1 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/README.en.md +272 -0
  2. package/README.md +150 -38
  3. package/dist/agent/agent.d.ts +257 -115
  4. package/dist/agent/agent.d.ts.map +1 -1
  5. package/dist/agent/agent.js +747 -400
  6. package/dist/agent/agent.js.map +1 -1
  7. package/dist/agent/assembler.d.ts +32 -16
  8. package/dist/agent/assembler.d.ts.map +1 -1
  9. package/dist/agent/assembler.js +83 -47
  10. package/dist/agent/assembler.js.map +1 -1
  11. package/dist/agent/builtinToolHandlers.d.ts +27 -2
  12. package/dist/agent/builtinToolHandlers.d.ts.map +1 -1
  13. package/dist/agent/builtinToolHandlers.js +78 -5
  14. package/dist/agent/builtinToolHandlers.js.map +1 -1
  15. package/dist/agent/constants.d.ts +4 -0
  16. package/dist/agent/constants.d.ts.map +1 -1
  17. package/dist/agent/constants.js +4 -0
  18. package/dist/agent/constants.js.map +1 -1
  19. package/dist/agent/contextManager.d.ts +8 -0
  20. package/dist/agent/contextManager.d.ts.map +1 -1
  21. package/dist/agent/contextManager.js +7 -2
  22. package/dist/agent/contextManager.js.map +1 -1
  23. package/dist/agent/guardrail.d.ts +4 -2
  24. package/dist/agent/guardrail.d.ts.map +1 -1
  25. package/dist/agent/guardrail.js +13 -5
  26. package/dist/agent/guardrail.js.map +1 -1
  27. package/dist/agent/loop.d.ts +137 -15
  28. package/dist/agent/loop.d.ts.map +1 -1
  29. package/dist/agent/loop.js +449 -270
  30. package/dist/agent/loop.js.map +1 -1
  31. package/dist/agent/managers/archiveCoordinator.d.ts +126 -22
  32. package/dist/agent/managers/archiveCoordinator.d.ts.map +1 -1
  33. package/dist/agent/managers/archiveCoordinator.js +239 -44
  34. package/dist/agent/managers/archiveCoordinator.js.map +1 -1
  35. package/dist/agent/managers/autoConfigRefiner.d.ts.map +1 -1
  36. package/dist/agent/managers/autoConfigRefiner.js +4 -8
  37. package/dist/agent/managers/autoConfigRefiner.js.map +1 -1
  38. package/dist/agent/managers/chatLockManager.d.ts +116 -0
  39. package/dist/agent/managers/chatLockManager.d.ts.map +1 -0
  40. package/dist/agent/managers/chatLockManager.js +191 -0
  41. package/dist/agent/managers/chatLockManager.js.map +1 -0
  42. package/dist/agent/managers/configManager.d.ts +87 -3
  43. package/dist/agent/managers/configManager.d.ts.map +1 -1
  44. package/dist/agent/managers/configManager.js +139 -2
  45. package/dist/agent/managers/configManager.js.map +1 -1
  46. package/dist/agent/managers/dedupManager.d.ts +169 -0
  47. package/dist/agent/managers/dedupManager.d.ts.map +1 -0
  48. package/dist/agent/managers/dedupManager.js +336 -0
  49. package/dist/agent/managers/dedupManager.js.map +1 -0
  50. package/dist/agent/managers/insightExtractor.d.ts +31 -3
  51. package/dist/agent/managers/insightExtractor.d.ts.map +1 -1
  52. package/dist/agent/managers/insightExtractor.js +130 -59
  53. package/dist/agent/managers/insightExtractor.js.map +1 -1
  54. package/dist/agent/managers/llmJudgeHelper.d.ts +38 -0
  55. package/dist/agent/managers/llmJudgeHelper.d.ts.map +1 -0
  56. package/dist/agent/managers/llmJudgeHelper.js +49 -0
  57. package/dist/agent/managers/llmJudgeHelper.js.map +1 -0
  58. package/dist/agent/managers/memoryAdvisor.d.ts +102 -2
  59. package/dist/agent/managers/memoryAdvisor.d.ts.map +1 -1
  60. package/dist/agent/managers/memoryAdvisor.js +254 -10
  61. package/dist/agent/managers/memoryAdvisor.js.map +1 -1
  62. package/dist/agent/managers/memoryDecayScheduler.d.ts +127 -1
  63. package/dist/agent/managers/memoryDecayScheduler.d.ts.map +1 -1
  64. package/dist/agent/managers/memoryDecayScheduler.js +283 -4
  65. package/dist/agent/managers/memoryDecayScheduler.js.map +1 -1
  66. package/dist/agent/managers/memoryGovernance.d.ts +56 -0
  67. package/dist/agent/managers/memoryGovernance.d.ts.map +1 -0
  68. package/dist/agent/managers/memoryGovernance.js +63 -0
  69. package/dist/agent/managers/memoryGovernance.js.map +1 -0
  70. package/dist/agent/managers/memoryInspector.d.ts +113 -30
  71. package/dist/agent/managers/memoryInspector.d.ts.map +1 -1
  72. package/dist/agent/managers/memoryInspector.js +165 -32
  73. package/dist/agent/managers/memoryInspector.js.map +1 -1
  74. package/dist/agent/managers/relationBuilder.d.ts +4 -4
  75. package/dist/agent/managers/relationBuilder.d.ts.map +1 -1
  76. package/dist/agent/managers/relationBuilder.js +5 -4
  77. package/dist/agent/managers/relationBuilder.js.map +1 -1
  78. package/dist/agent/managers/sessionArchiver.d.ts +12 -1
  79. package/dist/agent/managers/sessionArchiver.d.ts.map +1 -1
  80. package/dist/agent/managers/sessionArchiver.js +87 -30
  81. package/dist/agent/managers/sessionArchiver.js.map +1 -1
  82. package/dist/agent/managers/sessionManager.d.ts.map +1 -1
  83. package/dist/agent/managers/sessionManager.js +9 -17
  84. package/dist/agent/managers/sessionManager.js.map +1 -1
  85. package/dist/agent/managers/streamAccumulator.d.ts +45 -0
  86. package/dist/agent/managers/streamAccumulator.d.ts.map +1 -0
  87. package/dist/agent/managers/streamAccumulator.js +40 -0
  88. package/dist/agent/managers/streamAccumulator.js.map +1 -0
  89. package/dist/agent/managers/textPolishManager.d.ts +62 -0
  90. package/dist/agent/managers/textPolishManager.d.ts.map +1 -0
  91. package/dist/agent/managers/textPolishManager.js +96 -0
  92. package/dist/agent/managers/textPolishManager.js.map +1 -0
  93. package/dist/agent/managers/workProjection.d.ts +16 -1
  94. package/dist/agent/managers/workProjection.d.ts.map +1 -1
  95. package/dist/agent/managers/workProjection.js +48 -24
  96. package/dist/agent/managers/workProjection.js.map +1 -1
  97. package/dist/agent/personaMatcher.d.ts +29 -0
  98. package/dist/agent/personaMatcher.d.ts.map +1 -0
  99. package/dist/agent/personaMatcher.js +60 -0
  100. package/dist/agent/personaMatcher.js.map +1 -0
  101. package/dist/agent/toolExecutor.d.ts +24 -4
  102. package/dist/agent/toolExecutor.d.ts.map +1 -1
  103. package/dist/agent/toolExecutor.js +30 -4
  104. package/dist/agent/toolExecutor.js.map +1 -1
  105. package/dist/agent/tracer.d.ts +31 -0
  106. package/dist/agent/tracer.d.ts.map +1 -1
  107. package/dist/agent/tracer.js +31 -0
  108. package/dist/agent/tracer.js.map +1 -1
  109. package/dist/agent/types.d.ts +133 -0
  110. package/dist/agent/types.d.ts.map +1 -1
  111. package/dist/agent/types.js +38 -0
  112. package/dist/agent/types.js.map +1 -1
  113. package/dist/agent/userFactExtractor.d.ts.map +1 -1
  114. package/dist/agent/userFactExtractor.js +7 -0
  115. package/dist/agent/userFactExtractor.js.map +1 -1
  116. package/dist/config/loader.d.ts +124 -236
  117. package/dist/config/loader.d.ts.map +1 -1
  118. package/dist/config/loader.js +296 -118
  119. package/dist/config/loader.js.map +1 -1
  120. package/dist/eval/evalRunner.d.ts +94 -0
  121. package/dist/eval/evalRunner.d.ts.map +1 -0
  122. package/dist/eval/evalRunner.js +141 -0
  123. package/dist/eval/evalRunner.js.map +1 -0
  124. package/dist/eval/evalTypes.d.ts +21 -0
  125. package/dist/eval/evalTypes.d.ts.map +1 -1
  126. package/dist/eval/evalTypes.js +15 -0
  127. package/dist/eval/evalTypes.js.map +1 -1
  128. package/dist/eval/scenarios.d.ts +33 -0
  129. package/dist/eval/scenarios.d.ts.map +1 -0
  130. package/dist/eval/scenarios.js +109 -0
  131. package/dist/eval/scenarios.js.map +1 -0
  132. package/dist/index.d.ts +45 -6
  133. package/dist/index.d.ts.map +1 -1
  134. package/dist/index.js +45 -5
  135. package/dist/index.js.map +1 -1
  136. package/dist/llm/abortSignal.d.ts +27 -0
  137. package/dist/llm/abortSignal.d.ts.map +1 -0
  138. package/dist/llm/abortSignal.js +44 -0
  139. package/dist/llm/abortSignal.js.map +1 -0
  140. package/dist/llm/embedding.d.ts +13 -12
  141. package/dist/llm/embedding.d.ts.map +1 -1
  142. package/dist/llm/embedding.js +5 -17
  143. package/dist/llm/embedding.js.map +1 -1
  144. package/dist/llm/factory.d.ts +19 -5
  145. package/dist/llm/factory.d.ts.map +1 -1
  146. package/dist/llm/factory.js +19 -37
  147. package/dist/llm/factory.js.map +1 -1
  148. package/dist/llm/openaiCompatible.d.ts.map +1 -1
  149. package/dist/llm/openaiCompatible.js +17 -34
  150. package/dist/llm/openaiCompatible.js.map +1 -1
  151. package/dist/logging/logger.d.ts +3 -1
  152. package/dist/logging/logger.d.ts.map +1 -1
  153. package/dist/logging/logger.js +47 -50
  154. package/dist/logging/logger.js.map +1 -1
  155. package/dist/memory/governance.d.ts +50 -0
  156. package/dist/memory/governance.d.ts.map +1 -0
  157. package/dist/memory/governance.js +70 -0
  158. package/dist/memory/governance.js.map +1 -0
  159. package/dist/memory/hybridMerge.d.ts +0 -4
  160. package/dist/memory/hybridMerge.d.ts.map +1 -1
  161. package/dist/memory/hybridMerge.js +19 -4
  162. package/dist/memory/hybridMerge.js.map +1 -1
  163. package/dist/memory/inMemoryRelationStore.d.ts +7 -0
  164. package/dist/memory/inMemoryRelationStore.d.ts.map +1 -1
  165. package/dist/memory/inMemoryRelationStore.js +15 -0
  166. package/dist/memory/inMemoryRelationStore.js.map +1 -1
  167. package/dist/memory/inMemoryStorage.d.ts +36 -1
  168. package/dist/memory/inMemoryStorage.d.ts.map +1 -1
  169. package/dist/memory/inMemoryStorage.js +70 -19
  170. package/dist/memory/inMemoryStorage.js.map +1 -1
  171. package/dist/memory/loader.d.ts +2 -0
  172. package/dist/memory/loader.d.ts.map +1 -1
  173. package/dist/memory/loader.js +8 -1
  174. package/dist/memory/loader.js.map +1 -1
  175. package/dist/memory/lockManager.d.ts +7 -2
  176. package/dist/memory/lockManager.d.ts.map +1 -1
  177. package/dist/memory/lockManager.js +35 -17
  178. package/dist/memory/lockManager.js.map +1 -1
  179. package/dist/memory/projectManager.d.ts +8 -7
  180. package/dist/memory/projectManager.d.ts.map +1 -1
  181. package/dist/memory/projectManager.js +33 -15
  182. package/dist/memory/projectManager.js.map +1 -1
  183. package/dist/memory/projectRegistry.d.ts +34 -1
  184. package/dist/memory/projectRegistry.d.ts.map +1 -1
  185. package/dist/memory/projectRegistry.js +100 -31
  186. package/dist/memory/projectRegistry.js.map +1 -1
  187. package/dist/memory/recall.d.ts +16 -0
  188. package/dist/memory/recall.d.ts.map +1 -1
  189. package/dist/memory/recall.js +35 -20
  190. package/dist/memory/recall.js.map +1 -1
  191. package/dist/memory/relationStore.d.ts +20 -3
  192. package/dist/memory/relationStore.d.ts.map +1 -1
  193. package/dist/memory/sourceValidation.d.ts +17 -0
  194. package/dist/memory/sourceValidation.d.ts.map +1 -1
  195. package/dist/memory/sourceValidation.js +27 -3
  196. package/dist/memory/sourceValidation.js.map +1 -1
  197. package/dist/memory/storageInterface.d.ts +26 -1
  198. package/dist/memory/storageInterface.d.ts.map +1 -1
  199. package/dist/memory/store.d.ts +22 -1
  200. package/dist/memory/store.d.ts.map +1 -1
  201. package/dist/memory/store.js +58 -20
  202. package/dist/memory/store.js.map +1 -1
  203. package/dist/memory/types.d.ts +44 -31
  204. package/dist/memory/types.d.ts.map +1 -1
  205. package/dist/memory/types.js +63 -24
  206. package/dist/memory/types.js.map +1 -1
  207. package/dist/memory/userProfile.d.ts +32 -8
  208. package/dist/memory/userProfile.d.ts.map +1 -1
  209. package/dist/memory/userProfile.js +105 -44
  210. package/dist/memory/userProfile.js.map +1 -1
  211. package/dist/memory/vectorStore.d.ts +16 -8
  212. package/dist/memory/vectorStore.d.ts.map +1 -1
  213. package/dist/memory/vectorStore.js +49 -22
  214. package/dist/memory/vectorStore.js.map +1 -1
  215. package/dist/persona/personaManager.d.ts +38 -63
  216. package/dist/persona/personaManager.d.ts.map +1 -1
  217. package/dist/persona/personaManager.js +136 -202
  218. package/dist/persona/personaManager.js.map +1 -1
  219. package/dist/skill/skillManager.d.ts +11 -57
  220. package/dist/skill/skillManager.d.ts.map +1 -1
  221. package/dist/skill/skillManager.js +46 -141
  222. package/dist/skill/skillManager.js.map +1 -1
  223. package/dist/skill/types.d.ts +2 -3
  224. package/dist/skill/types.d.ts.map +1 -1
  225. package/dist/utils/array.d.ts +24 -0
  226. package/dist/utils/array.d.ts.map +1 -0
  227. package/dist/utils/array.js +24 -0
  228. package/dist/utils/array.js.map +1 -0
  229. package/dist/utils/configResourceManager.d.ts +111 -0
  230. package/dist/utils/configResourceManager.d.ts.map +1 -0
  231. package/dist/utils/configResourceManager.js +148 -0
  232. package/dist/utils/configResourceManager.js.map +1 -0
  233. package/dist/utils/errors.d.ts +27 -8
  234. package/dist/utils/errors.d.ts.map +1 -1
  235. package/dist/utils/errors.js +31 -9
  236. package/dist/utils/errors.js.map +1 -1
  237. package/dist/utils/eventEmitter.d.ts +88 -4
  238. package/dist/utils/eventEmitter.d.ts.map +1 -1
  239. package/dist/utils/eventEmitter.js +23 -0
  240. package/dist/utils/eventEmitter.js.map +1 -1
  241. package/dist/utils/frontmatter.d.ts.map +1 -1
  242. package/dist/utils/frontmatter.js +4 -2
  243. package/dist/utils/frontmatter.js.map +1 -1
  244. package/dist/utils/math.d.ts +11 -0
  245. package/dist/utils/math.d.ts.map +1 -1
  246. package/dist/utils/math.js +17 -0
  247. package/dist/utils/math.js.map +1 -1
  248. package/dist/utils/objects.d.ts +17 -0
  249. package/dist/utils/objects.d.ts.map +1 -0
  250. package/dist/utils/objects.js +19 -0
  251. package/dist/utils/objects.js.map +1 -0
  252. package/dist/utils/segmenter.d.ts +11 -10
  253. package/dist/utils/segmenter.d.ts.map +1 -1
  254. package/dist/utils/segmenter.js +23 -1
  255. package/dist/utils/segmenter.js.map +1 -1
  256. package/dist/utils/strings.d.ts +22 -1
  257. package/dist/utils/strings.d.ts.map +1 -1
  258. package/dist/utils/strings.js +29 -1
  259. package/dist/utils/strings.js.map +1 -1
  260. package/dist/utils/time.d.ts +18 -3
  261. package/dist/utils/time.d.ts.map +1 -1
  262. package/dist/utils/time.js +24 -8
  263. package/dist/utils/time.js.map +1 -1
  264. package/dist/utils/toError.d.ts +8 -4
  265. package/dist/utils/toError.d.ts.map +1 -1
  266. package/dist/utils/toError.js +25 -5
  267. package/dist/utils/toError.js.map +1 -1
  268. package/docs/memora-api-reference.md +1235 -0
  269. package/docs/memora-/346/216/245/345/205/245/346/214/207/345/215/227.md +808 -0
  270. package/package.json +49 -22
  271. package/dist/agent/managers/memoryMutator.d.ts +0 -92
  272. package/dist/agent/managers/memoryMutator.d.ts.map +0 -1
  273. package/dist/agent/managers/memoryMutator.js +0 -94
  274. package/dist/agent/managers/memoryMutator.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"workProjection.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/workProjection.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,WAAW,EAAW,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAanE,iBAAiB;AACjB,MAAM,WAAW,mBAAmB;IAClC,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW;IACX,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,WAAW;IAGxC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+D;IAExF;;;;;;;;;;;;;;;;OAgBG;IACG,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAgBtC;;OAEG;YACW,kBAAkB;IAiDhC;;;;;OAKG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAO1E;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAO/C;;;;;;OAMG;YACW,QAAQ;IAuDtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAIjB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAchB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAalB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAUrB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;CAyCtB"}
1
+ {"version":3,"file":"workProjection.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/workProjection.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,WAAW,EAAW,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAcnE,iBAAiB;AACjB,MAAM,WAAW,mBAAmB;IAClC,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW;IACX,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,qBAAqB;IAK9B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAL3B,mCAAmC;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAgD;gBAG1D,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,WAAW,EACtC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI;IAK7D;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+D;IAExF;;;;;;;;;;;;;;;;OAgBG;IACG,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAgBtC;;OAEG;YACW,kBAAkB;IAkDhC;;;;;OAKG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAO1E;;;;;;;;;;;OAWG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAO/C;;;;;;OAMG;YACW,QAAQ;IAoDtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAIjB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAoBhB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAclB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAYrB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;CA6CtB"}
@@ -28,6 +28,7 @@ import { getBaseName } from '../../utils/path.js';
28
28
  import { toError } from '../../utils/toError.js';
29
29
  import { parseLlmJson } from '../../utils/json.js';
30
30
  import { nowIso } from '../../utils/time.js';
31
+ import { accumulateStream } from '../../agent/managers/streamAccumulator.js';
31
32
  /** 作品投影生成时内容截断长度(字符),控制 LLM token 消耗 */
32
33
  const CONTENT_TRUNCATE_CHARS = 3000;
33
34
  /**
@@ -39,9 +40,12 @@ const CONTENT_TRUNCATE_CHARS = 3000;
39
40
  export class WorkProjectionManager {
40
41
  index;
41
42
  provider;
42
- constructor(index, provider) {
43
+ /** 作品投影生成/更新时的回调(宿主可据此发射事件通知用户) */
44
+ onGenerated;
45
+ constructor(index, provider, onGenerated) {
43
46
  this.index = index;
44
47
  this.provider = provider;
48
+ this.onGenerated = onGenerated;
45
49
  }
46
50
  /**
47
51
  * in-flight Promise 缓存,防止同文件并发读取时重复调用 LLM
@@ -113,6 +117,7 @@ export class WorkProjectionManager {
113
117
  // 写入存储(source = 'work-projection',语义独立)
114
118
  this.index.upsert(this.toMemory(entry, hash));
115
119
  logger.info({ file: filePath, hash, summaryLen: projection.summary.length }, '作品投影已生成');
120
+ this.onGenerated?.(filePath, projection.summary);
116
121
  return entry;
117
122
  }
118
123
  catch (err) {
@@ -132,6 +137,25 @@ export class WorkProjectionManager {
132
137
  const existing = this.index.getById(id);
133
138
  return existing ? this.fromMemory(existing) : null;
134
139
  }
140
+ /**
141
+ * 等待所有 inflight 投影生成完成
142
+ *
143
+ * FIX-P0-1:Agent.close() 调用此方法,确保所有正在进行的 LLM 生成 Promise
144
+ * 完成后再关闭 storage,防止 close 后 upsert 写入已关闭的 storage。
145
+ *
146
+ * 实现:等待 inflight Map 中所有 Promise 完成(不论成功失败)。
147
+ * 不 abort LLM 调用——作品投影生成是用户主动触发的高价值操作,
148
+ * 让正在进行的生成完成比快速失败更合理(与 L2 时效性评估的批量场景不同)。
149
+ *
150
+ * @returns 完成 Promise,无 inflight 时立即 resolve
151
+ */
152
+ async awaitInflight() {
153
+ if (this.inflight.size === 0)
154
+ return;
155
+ // 收集所有 inflight Promise,等待全部完成
156
+ const promises = Array.from(this.inflight.values());
157
+ await Promise.allSettled(promises);
158
+ }
135
159
  /**
136
160
  * 加载所有作品投影(按 source 标签召回)
137
161
  */
@@ -153,28 +177,24 @@ export class WorkProjectionManager {
153
177
  const promptMessages = [
154
178
  {
155
179
  role: 'system',
156
- content: `你是作品分析助手。阅读用户的作品,生成一个"投影"——完整的作品概要、结构和关键决策。
157
-
158
- 输出格式(严格 JSON,不含 markdown 代码块标记):
159
- {
160
- "summary": "50-100字的作品概要",
161
- "structure": ["模块1", "模块2", "..."],
162
- "keyDecisions": ["关键决策1", "关键决策2", "..."]
163
- }
164
-
165
- 要求:
166
- - summary 控制在 50-100 字
167
- - structure 列出 2-8 个模块名称
168
- - keyDecisions 列出 1-3 个关键决策(如有)
180
+ content: `你是作品分析助手。阅读用户的作品,生成一个"投影"——完整的作品概要、结构和关键决策。
181
+
182
+ 输出格式(严格 JSON,不含 markdown 代码块标记):
183
+ {
184
+ "summary": "50-100字的作品概要",
185
+ "structure": ["模块1", "模块2", "..."],
186
+ "keyDecisions": ["关键决策1", "关键决策2", "..."]
187
+ }
188
+
189
+ 要求:
190
+ - summary 控制在 50-100 字
191
+ - structure 列出 2-8 个模块名称
192
+ - keyDecisions 列出 1-3 个关键决策(如有)
169
193
  - 不评价优劣,只客观描述`,
170
194
  },
171
195
  { role: 'user', content: `# ${name}\n\n${truncated}` },
172
196
  ];
173
- let result = '';
174
- for await (const chunk of this.provider.chat(promptMessages, { maxTokens: 400 })) {
175
- if (chunk.content)
176
- result += chunk.content;
177
- }
197
+ const result = await accumulateStream(this.provider, promptMessages, { maxTokens: 400 });
178
198
  const parsed = parseLlmJson(result.trim());
179
199
  if (parsed) {
180
200
  return {
@@ -216,7 +236,7 @@ export class WorkProjectionManager {
216
236
  const fileName = getBaseName(entry.sourcePath);
217
237
  return {
218
238
  id: entry.id,
219
- content: this.encodeContent(hash, entry.structure, entry.keyDecisions, entry.summary),
239
+ content: this.encodeContent(hash, entry.sourcePath, entry.structure, entry.keyDecisions, entry.summary),
220
240
  source: SOURCE_LABELS.WORK_PROJECTION,
221
241
  name: `作品投影: ${fileName}`,
222
242
  createdAt: now,
@@ -230,10 +250,11 @@ export class WorkProjectionManager {
230
250
  * 从 content 的 HTML 注释中解码 hash / structure / keyDecisions
231
251
  */
232
252
  fromMemory(m) {
233
- const { hash, structure, keyDecisions, summary } = this.decodeContent(m.content);
253
+ const { hash, structure, keyDecisions, summary, sourcePath } = this.decodeContent(m.content);
234
254
  return {
235
255
  id: m.id,
236
- sourcePath: '',
256
+ // M1 修复:从 content 还原 sourcePath(旧数据无该字段 → 兜底空串,向后兼容)
257
+ sourcePath: sourcePath ?? '',
237
258
  fileHash: hash ?? '',
238
259
  summary,
239
260
  structure,
@@ -249,8 +270,9 @@ export class WorkProjectionManager {
249
270
  * (空行)
250
271
  * <summary>
251
272
  */
252
- encodeContent(hash, structure, keyDecisions, summary) {
253
- const meta = JSON.stringify({ hash, structure, decisions: keyDecisions });
273
+ encodeContent(hash, sourcePath, structure, keyDecisions, summary) {
274
+ // M1 修复:将 sourcePath 编入元数据,使往返(toMemory → fromMemory)不丢字段
275
+ const meta = JSON.stringify({ hash, sourcePath, structure, decisions: keyDecisions });
254
276
  return `${meta}\n\n${summary}`;
255
277
  }
256
278
  /**
@@ -268,6 +290,7 @@ export class WorkProjectionManager {
268
290
  const summary = content.slice(firstLine.length).trim();
269
291
  return {
270
292
  hash: meta.hash ?? null,
293
+ sourcePath: meta.sourcePath ?? '',
271
294
  structure: meta.structure ?? [],
272
295
  keyDecisions: meta.decisions ?? [],
273
296
  summary,
@@ -284,6 +307,7 @@ export class WorkProjectionManager {
284
307
  const summary = content.replace(/<!--\s*wp:\S+\s*-->\n?/g, '').trim();
285
308
  return {
286
309
  hash: hashMatch?.[1] ?? null,
310
+ sourcePath: '',
287
311
  structure: structureMatch?.[1]?.split('|') ?? [],
288
312
  keyDecisions: decisionsMatch?.[1]?.split('|') ?? [],
289
313
  summary,
@@ -1 +1 @@
1
- {"version":3,"file":"workProjection.js","sourceRoot":"","sources":["../../../src/agent/managers/workProjection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workProjection.js","sourceRoot":"","sources":["../../../src/agent/managers/workProjection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * 角色语义匹配器 — LLM 辅助角色匹配(agent 层纯函数模块)
3
+ *
4
+ * 从 PersonaManager.matchByLlm 迁移至此,遵循 backend_layers_rules §分层职责:
5
+ * persona/ 不直接调 LLM,agent/ 可通过 provider 接口调 LLM。
6
+ *
7
+ * 与 userFactExtractor.ts 同级,为 agent/ 根级纯函数模块(非有状态 Manager)。
8
+ */
9
+ import type { LlmProvider } from '../llm/provider.js';
10
+ import type { Persona } from '../persona/types.js';
11
+ /**
12
+ * LLM 辅助语义角色匹配
13
+ *
14
+ * 当关键词匹配低置信度或无命中时,由 agent 层调用此函数进行语义级匹配。
15
+ *
16
+ * 降级策略:
17
+ * - LLM 调用失败/超时 → 返回 null(由调用方降级处理)
18
+ * - LLM 返回无效角色名 → 返回 null(防止幻觉)
19
+ * - LLM 返回 "none" → 返回 null(明确无匹配)
20
+ * - 候选列表为空(排除当前角色后) → 返回 null
21
+ *
22
+ * @param provider 后台 LLM Provider
23
+ * @param personaList 完整角色列表(函数内部排除当前激活角色)
24
+ * @param activePersonaName 当前激活角色名(排除自身,避免无意义切换)
25
+ * @param userInput 用户输入文本
26
+ * @returns 匹配的角色名,无匹配/失败返回 null
27
+ */
28
+ export declare function matchPersonaByLlm(provider: LlmProvider, personaList: Persona[], activePersonaName: string | undefined, userInput: string): Promise<string | null>;
29
+ //# sourceMappingURL=personaMatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personaMatcher.d.ts","sourceRoot":"","sources":["../../src/agent/personaMatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAMlD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,WAAW,EACrB,WAAW,EAAE,OAAO,EAAE,EACtB,iBAAiB,EAAE,MAAM,GAAG,SAAS,EACrC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2CxB"}
@@ -0,0 +1,60 @@
1
+ import { logger } from '../logging/logger.js';
2
+ /** LLM 辅助匹配的 maxTokens 上限(角色名很短,无需长响应) */
3
+ const LLM_MATCH_MAX_TOKENS = 50;
4
+ /**
5
+ * LLM 辅助语义角色匹配
6
+ *
7
+ * 当关键词匹配低置信度或无命中时,由 agent 层调用此函数进行语义级匹配。
8
+ *
9
+ * 降级策略:
10
+ * - LLM 调用失败/超时 → 返回 null(由调用方降级处理)
11
+ * - LLM 返回无效角色名 → 返回 null(防止幻觉)
12
+ * - LLM 返回 "none" → 返回 null(明确无匹配)
13
+ * - 候选列表为空(排除当前角色后) → 返回 null
14
+ *
15
+ * @param provider 后台 LLM Provider
16
+ * @param personaList 完整角色列表(函数内部排除当前激活角色)
17
+ * @param activePersonaName 当前激活角色名(排除自身,避免无意义切换)
18
+ * @param userInput 用户输入文本
19
+ * @returns 匹配的角色名,无匹配/失败返回 null
20
+ */
21
+ export async function matchPersonaByLlm(provider, personaList, activePersonaName, userInput) {
22
+ // 排除当前激活角色(避免无意义切换)
23
+ const candidates = personaList.filter((p) => p.name !== activePersonaName);
24
+ if (candidates.length === 0)
25
+ return null;
26
+ // 构造角色列表描述(name + description/content 前缀 + keywords)
27
+ const personaListText = candidates
28
+ .map((p) => {
29
+ const desc = p.description ?? p.content.substring(0, 50).trim();
30
+ return `- ${p.name}:${desc}(关键词:${p.keywords.join(', ')})`;
31
+ })
32
+ .join('\n');
33
+ try {
34
+ const stream = provider.chat([
35
+ {
36
+ role: 'system',
37
+ content: '你是角色匹配助手。根据用户输入,从以下角色中选择最匹配的一个。\n\n' +
38
+ `角色列表:\n${personaListText}\n\n` +
39
+ '规则:\n1. 只返回角色名,不解释\n2. 无匹配返回 "none"',
40
+ },
41
+ { role: 'user', content: userInput },
42
+ ], { maxTokens: LLM_MATCH_MAX_TOKENS, temperature: 0 });
43
+ let result = '';
44
+ for await (const chunk of stream) {
45
+ if (chunk.content)
46
+ result += chunk.content;
47
+ }
48
+ const trimmed = result.trim();
49
+ if (!trimmed || trimmed === 'none')
50
+ return null;
51
+ // 验证返回的角色名在候选列表中(防止 LLM 幻觉)
52
+ const matched = candidates.find((p) => p.name === trimmed);
53
+ return matched ? matched.name : null;
54
+ }
55
+ catch (err) {
56
+ logger.warn({ err }, 'LLM 辅助角色匹配失败,降级为关键词匹配');
57
+ return null;
58
+ }
59
+ }
60
+ //# sourceMappingURL=personaMatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personaMatcher.js","sourceRoot":"","sources":["../../src/agent/personaMatcher.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,0CAA0C;AAC1C,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAqB,EACrB,WAAsB,EACtB,iBAAqC,EACrC,SAAiB;IAEjB,oBAAoB;IACpB,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC;IAC3E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,qDAAqD;IACrD,MAAM,eAAe,GAAG,UAAU;SAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC7D,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAC1B;YACE;gBACE,IAAI,EAAE,QAAQ;gBACd,OAAO,EACL,qCAAqC;oBACrC,UAAU,eAAe,MAAM;oBAC/B,qCAAqC;aACxC;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;SACrC,EACD,EAAE,SAAS,EAAE,oBAAoB,EAAE,WAAW,EAAE,CAAC,EAAE,CACpD,CAAC;QAEF,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC;QAC7C,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAEhD,4BAA4B;QAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QAC3D,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,uBAAuB,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -33,7 +33,7 @@ export interface WriteExtensions {
33
33
  /**
34
34
  * 自定义工具的执行上下文
35
35
  *
36
- * S-01: 提供安全校验方法,让自定义工具可以(且应该)通过安全层校验路径。
36
+ * 提供安全校验方法,让自定义工具可以(且应该)通过安全层校验路径。
37
37
  * 内置工具(read_file/write_file/list_dir)已内置路径校验,
38
38
  * 自定义工具如需访问文件系统,应调用 ctx.guardPath() 确保路径在白名单内。
39
39
  */
@@ -53,7 +53,7 @@ export interface ToolContext {
53
53
  * 需提供此签名的 handler 函数。
54
54
  * handler 接收解析后的参数对象和工具上下文,返回字符串结果。
55
55
  *
56
- * S-01: 自定义工具如需访问文件系统,应调用 ctx.guardPath(path) 校验路径。
56
+ * 自定义工具如需访问文件系统,应调用 ctx.guardPath(path) 校验路径。
57
57
  */
58
58
  export type ToolHandler = (args: Record<string, unknown>, ctx: ToolContext) => Promise<string>;
59
59
  /**
@@ -67,13 +67,22 @@ export declare class ToolExecutor {
67
67
  private readonly customTools;
68
68
  /** 内置工具处理器(路径安全 + 内置工具实现) */
69
69
  private readonly builtinHandlers;
70
+ /**
71
+ * 工具列表变更回调(由 assembleComponents 设置为 loop.refreshToolDefinitions)
72
+ *
73
+ * registerTool 调用后触发,确保 AgentLoop 的 toolDefinitions 快照和 system prompt
74
+ * 同步更新。无 AgentLoop 时为 undefined(如纯 ToolExecutor 单元测试场景)。
75
+ */
76
+ private onToolsChanged?;
70
77
  constructor(projectPath: string, security: SecurityGuard, memoryIndex: IMemoryStorage,
71
78
  /** 作品投影管理器(可选,读取文件时自动生成投影) */
72
- workProjection?: WorkProjectionManager);
79
+ workProjection?: WorkProjectionManager,
80
+ /** 配置目录路径(可选,拦截提示中告知 LLM 正确的写入位置) */
81
+ configDir?: string);
73
82
  /**
74
83
  * 注册自定义工具
75
84
  *
76
- * 宿主项目调用此方法注册领域专属工具(如 create_chapter、run_tests 等业务专属操作)。
85
+ * 宿主项目调用此方法注册领域专属工具(如 run_tests、query_database、send_email 等业务专属操作)。
77
86
  * 工具名不能与内置工具重复,也不能重复注册。
78
87
  * 注册后工具会出现在 `tools.list` 列表中,
79
88
  * LLM 可通过 tool_call 调用,execute() 会路由到 handler。
@@ -83,6 +92,17 @@ export declare class ToolExecutor {
83
92
  * @throws 工具名与内置工具冲突或已注册时抛错
84
93
  */
85
94
  registerTool(definition: ToolDefinition, handler: ToolHandler): void;
95
+ /**
96
+ * 设置工具列表变更回调
97
+ *
98
+ * 由 assembleComponents 在构造 AgentLoop 后调用,将 loop.refreshToolDefinitions
99
+ * 绑定到 registerTool 的副作用链路中。这样宿主调用 registerTool 注册工具后,
100
+ * AgentLoop 的 toolDefinitions 快照和 system prompt 会自动刷新,
101
+ * 无需宿主手动调用 refreshToolDefinitions。
102
+ *
103
+ * @param callback 工具列表变更时的回调(传 undefined 清除回调)
104
+ */
105
+ setOnToolsChanged(callback: (() => void) | undefined): void;
86
106
  /**
87
107
  * 获取所有工具定义(IX-02:统一为 getter 风格,与 persona/skill 一致)
88
108
  */
@@ -1 +1 @@
1
- {"version":3,"file":"toolExecutor.d.ts","sourceRoot":"","sources":["../../src/agent/toolExecutor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,KAAK,UAAU,GAAG,MAAM,CAAC;AAEzB;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CACd,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,YAAY,EAAE,MAAM,KACjB,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAgB/F;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,2CAA2C;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsB;gBAGpD,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,cAAc;IAC3B,8BAA8B;IAC9B,cAAc,CAAC,EAAE,qBAAqB;IAYxC;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAwBpE;;OAEG;IACH,IAAI,IAAI,IAAI,cAAc,EAAE,CAE3B;IAED;;;;;;;;;;;;OAYG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAwGhG;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,qBAAqB;CAyE9B"}
1
+ {"version":3,"file":"toolExecutor.d.ts","sourceRoot":"","sources":["../../src/agent/toolExecutor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,KAAK,UAAU,GAAG,MAAM,CAAC;AAEzB;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CACd,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,YAAY,EAAE,MAAM,KACjB,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAgB/F;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,2CAA2C;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsB;IACtD;;;;;OAKG;IACH,OAAO,CAAC,cAAc,CAAC,CAAa;gBAGlC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,cAAc;IAC3B,8BAA8B;IAC9B,cAAc,CAAC,EAAE,qBAAqB;IACtC,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM;IAapB;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IA2BpE;;;;;;;;;OASG;IACH,iBAAiB,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI;IAI3D;;OAEG;IACH,IAAI,IAAI,IAAI,cAAc,EAAE,CAE3B;IAED;;;;;;;;;;;;OAYG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAwGhG;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,qBAAqB;CAyE9B"}
@@ -1,5 +1,6 @@
1
1
  import { toolError, configError, MemoraError, ToolErrorCode, toError } from '../utils/errors.js';
2
2
  import { logger } from '../logging/logger.js';
3
+ import { truncate } from '../utils/strings.js';
3
4
  import { BUILTIN_TOOLS } from '../agent/builtinTools.js';
4
5
  import { BuiltinToolHandlers } from '../agent/builtinToolHandlers.js';
5
6
  export { BUILTIN_TOOLS } from '../agent/builtinTools.js';
@@ -14,17 +15,26 @@ export class ToolExecutor {
14
15
  customTools = new Map();
15
16
  /** 内置工具处理器(路径安全 + 内置工具实现) */
16
17
  builtinHandlers;
18
+ /**
19
+ * 工具列表变更回调(由 assembleComponents 设置为 loop.refreshToolDefinitions)
20
+ *
21
+ * registerTool 调用后触发,确保 AgentLoop 的 toolDefinitions 快照和 system prompt
22
+ * 同步更新。无 AgentLoop 时为 undefined(如纯 ToolExecutor 单元测试场景)。
23
+ */
24
+ onToolsChanged;
17
25
  constructor(projectPath, security, memoryIndex,
18
26
  /** 作品投影管理器(可选,读取文件时自动生成投影) */
19
- workProjection) {
27
+ workProjection,
28
+ /** 配置目录路径(可选,拦截提示中告知 LLM 正确的写入位置) */
29
+ configDir) {
20
30
  // 内置工具实现 + 路径安全委托给 BuiltinToolHandlers
21
31
  // 构造参数仅用于初始化 BuiltinToolHandlers,ToolExecutor 自身不再持有这些引用
22
- this.builtinHandlers = new BuiltinToolHandlers(projectPath, security, memoryIndex, workProjection);
32
+ this.builtinHandlers = new BuiltinToolHandlers(projectPath, security, memoryIndex, workProjection, configDir);
23
33
  }
24
34
  /**
25
35
  * 注册自定义工具
26
36
  *
27
- * 宿主项目调用此方法注册领域专属工具(如 create_chapter、run_tests 等业务专属操作)。
37
+ * 宿主项目调用此方法注册领域专属工具(如 run_tests、query_database、send_email 等业务专属操作)。
28
38
  * 工具名不能与内置工具重复,也不能重复注册。
29
39
  * 注册后工具会出现在 `tools.list` 列表中,
30
40
  * LLM 可通过 tool_call 调用,execute() 会路由到 handler。
@@ -51,6 +61,22 @@ export class ToolExecutor {
51
61
  }
52
62
  this.customTools.set(definition.name, { definition, handler });
53
63
  logger.info({ tool: definition.name }, '自定义工具已注册');
64
+ // 触发 AgentLoop 刷新 toolDefinitions 快照 + system prompt
65
+ // 未设置回调时(如单元测试)静默跳过
66
+ this.onToolsChanged?.();
67
+ }
68
+ /**
69
+ * 设置工具列表变更回调
70
+ *
71
+ * 由 assembleComponents 在构造 AgentLoop 后调用,将 loop.refreshToolDefinitions
72
+ * 绑定到 registerTool 的副作用链路中。这样宿主调用 registerTool 注册工具后,
73
+ * AgentLoop 的 toolDefinitions 快照和 system prompt 会自动刷新,
74
+ * 无需宿主手动调用 refreshToolDefinitions。
75
+ *
76
+ * @param callback 工具列表变更时的回调(传 undefined 清除回调)
77
+ */
78
+ setOnToolsChanged(callback) {
79
+ this.onToolsChanged = callback;
54
80
  }
55
81
  /**
56
82
  * 获取所有工具定义(IX-02:统一为 getter 风格,与 persona/skill 一致)
@@ -89,7 +115,7 @@ export class ToolExecutor {
89
115
  }
90
116
  const safeArgs = Object.fromEntries(Object.entries(args).map(([k, v]) => [
91
117
  k,
92
- typeof v === 'string' && v.length > 200 ? `${v.slice(0, 200)}...` : v,
118
+ typeof v === 'string' ? truncate(v, 200) : v,
93
119
  ]));
94
120
  logger.info({ tool: name, args: safeArgs }, '执行工具');
95
121
  // 运行时类型安全:从 args 中提取字符串参数,避免不安全的 as string 断言
@@ -1 +1 @@
1
- {"version":3,"file":"toolExecutor.js","sourceRoot":"","sources":["../../src/agent/toolExecutor.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,aAAa,EAAuB,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAoExD;;;;;GAKG;AACH,MAAM,OAAO,YAAY;IACvB,2CAA2C;IAC1B,WAAW,GAAG,IAAI,GAAG,EAA2B,CAAC;IAClE,6BAA6B;IACZ,eAAe,CAAsB;IAEtD,YACE,WAAmB,EACnB,QAAuB,EACvB,WAA2B;IAC3B,8BAA8B;IAC9B,cAAsC;QAEtC,uCAAuC;QACvC,yDAAyD;QACzD,IAAI,CAAC,eAAe,GAAG,IAAI,mBAAmB,CAC5C,WAAW,EACX,QAAQ,EACR,WAAW,EACX,cAAc,CACf,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,UAA0B,EAAE,OAAoB;QAC3D,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1E,MAAM,WAAW,CACf,UAAU,UAAU,CAAC,IAAI,GAAG,EAC5B,yBAAyB,EACzB,CAAC,iBAAiB,CAAC,CACpB,CAAC;QACJ,CAAC;QACD,YAAY;QACZ,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1D,MAAM,WAAW,CAAC,YAAY,UAAU,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE;gBAC1D,YAAY;aACb,CAAC,CAAC;QACL,CAAC;QACD,UAAU;QACV,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,WAAW,CAAC,SAAS,UAAU,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE;gBACvD,qBAAqB;aACtB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,CAAC,GAAG,aAAa,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IACxF,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,QAAgB,EAAE,UAA4B;QACxE,IAAI,IAA6B,CAAC;QAClC,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAA4B,CAAC;QACzD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,SAAS,CACb,UAAU,EACV,gBAAgB,CAAC,CAAC,OAAO,EAAE,EAC3B,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,EACxC,CAAC,EACD,aAAa,CAAC,cAAc,CAC7B,CAAC;QACJ,CAAC;QAED,gBAAgB;QAChB,mDAAmD;QACnD,8CAA8C;QAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC1D,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CACjC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YACnC,CAAC;YACD,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACtE,CAAC,CACH,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;QAEpD,8CAA8C;QAC9C,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,QAAiB,EAAU,EAAE;YACxD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC;QAEF,gCAAgC;QAChC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACvD,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CACnC,MAAM,CAAC,MAAM,CAAC,EACd,MAAM,CAAC,SAAS,CAAC,EACjB,UAAU,EACV,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAC3B,MAAM,CAAC,aAAa,CAAC,IAAI,SAAS,CACnC,CAAC;YACJ,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CACjC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnB,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,EAC5B,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CACxB,CAAC;YACJ,KAAK,iBAAiB;gBACpB,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CACxC,MAAM,CAAC,OAAO,CAAC,EACf,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EACrB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACxB,CAAC;YACJ,OAAO,CAAC,CAAC,CAAC;gBACR,oCAAoC;gBACpC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1C,IAAI,MAAM,EAAE,CAAC;oBACX,qCAAqC;oBACrC,8BAA8B;oBAC9B,MAAM,GAAG,GAAgB;wBACvB,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE;4BAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;4BAChE,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;wBACtE,CAAC;qBACF,CAAC;oBACF,IAAI,CAAC;wBACH,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;oBACzC,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,8BAA8B;wBAC9B,IAAI,GAAG,YAAY,WAAW;4BAAE,MAAM,GAAG,CAAC;wBAC1C,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;wBACvB,MAAM,SAAS,CACb,WAAW,EACX,GAAG,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,EACvB,CAAC,YAAY,EAAE,wBAAwB,CAAC,EACxC,CAAC,EACD,aAAa,CAAC,kBAAkB,CACjC,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,MAAM,SAAS,CACb,MAAM,EACN,mBAAmB,IAAI,EAAE,EACzB;oBACE,SAAS,IAAI,CAAC,IAAI;yBACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;yBAClB,IAAI,CAAC,IAAI,CAAC,EAAE;oBACf,4BAA4B;iBAC7B,EACD,SAAS,EACT,aAAa,CAAC,YAAY,CAC3B,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACK,qBAAqB,CAC3B,QAAgB,EAChB,IAA6B,EAC7B,UAA0B;QAE1B,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;QAC/C,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC;QAChD,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QAE3B,SAAS;QACT,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBACtD,MAAM,SAAS,CACb,QAAQ,EACR,GAAG,QAAQ,aAAa,GAAG,GAAG,EAC9B,CAAC,OAAO,GAAG,UAAU,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC,EACrD,SAAS,EACT,aAAa,CAAC,cAAc,CAC7B,CAAC;YACJ,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;gBAAE,SAAS,CAAC,YAAY;YAEjE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC;YACjC,MAAM,UAAU,GAAG,OAAO,KAAK,CAAC;YAEhC,wCAAwC;YACxC,IAAI,YAAY,KAAK,QAAQ,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACzD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5B,MAAM,CAAC,KAAK,CACV,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAC9D,UAAU,CACX,CAAC;YACJ,CAAC;YACD,8BAA8B;iBACzB,IAAI,YAAY,KAAK,QAAQ,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;oBAClB,MAAM,CAAC,KAAK,CACV,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAC5D,UAAU,CACX,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,gCAAgC;iBAC3B,IAAI,YAAY,KAAK,SAAS,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC/D,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;oBACtC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBACrB,CAAC;qBAAM,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;oBAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,CAAC;gBACD,MAAM,CAAC,KAAK,CACV,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAC7D,UAAU,CACX,CAAC;YACJ,CAAC;YACD,qBAAqB;iBAChB,IAAI,YAAY,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3D,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACtB,MAAM,CAAC,KAAK,CACV,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,EAC7D,UAAU,CACX,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
1
+ {"version":3,"file":"toolExecutor.js","sourceRoot":"","sources":["../../src/agent/toolExecutor.ts"],"names":[],"mappings":"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"}
@@ -66,6 +66,37 @@ export declare const TRACE_SPANS: {
66
66
  * 监控此 span 可观察截断频率、摘要生成耗时与失败率。
67
67
  */
68
68
  readonly CONTEXT_SUMMARY: "context.summary";
69
+ /**
70
+ * 对话后归档处理
71
+ *
72
+ * 触发条件:每轮 chat() 完成后调用 postProcess,含角色匹配、技能匹配、
73
+ * profile 归档、insight 提取、AutoConfigRefiner 五个子步骤。
74
+ * 监控此 span 可观察归档耗时、失败率、各子步骤执行情况。
75
+ */
76
+ readonly POST_PROCESS: "archive.postProcess";
77
+ /**
78
+ * 实际记忆召回函数
79
+ *
80
+ * 触发条件:每轮 processUserInput 调用 recall() 执行双通道召回
81
+ * (语义搜索 + 关键词搜索 + hybridMerge 融合排序)。
82
+ * 现有 RECALL span 仅 wrapping 注入动作并立即 end,不覆盖实际召回耗时。
83
+ * 此 span 在 recall() 函数内部埋点,可观察真实召回耗时与双通道命中分布。
84
+ */
85
+ readonly RECALL_ACTUAL: "recall.actual";
86
+ /**
87
+ * 输入护栏检查
88
+ *
89
+ * 触发条件:用户输入注入上下文前调用 runGuardrails 检查。
90
+ * 监控此 span 可观察护栏触发频率、阻断率、耗时。
91
+ */
92
+ readonly GUARDRAIL_INPUT: "guardrail.input";
93
+ /**
94
+ * 输出护栏检查
95
+ *
96
+ * 触发条件:LLM 响应返回给用户前调用 runGuardrails 检查。
97
+ * 监控此 span 可观察输出护栏触发频率、阻断率、耗时。
98
+ */
99
+ readonly GUARDRAIL_OUTPUT: "guardrail.output";
69
100
  };
70
101
  /**
71
102
  * Agent 运行时指标快照
@@ -1 +1 @@
1
- {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../src/agent/tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,iBAAiB;AACjB,KAAK,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAIpD,6BAA6B;AAC7B,MAAM,WAAW,KAAK;IACpB,yBAAyB;IACzB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC3D,iBAAiB;IACjB,GAAG,IAAI,IAAI,CAAC;IACZ,4BAA4B;IAC5B,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrC;AAID,8BAA8B;AAC9B,MAAM,WAAW,OAAO;IACtB;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC;CACjF;AA4BD,qCAAqC;AACrC,eAAO,MAAM,WAAW,EAAE,OAA0B,CAAC;AAIrD;;;;GAIG;AACH,eAAO,MAAM,WAAW;IACtB,aAAa;;IAEb,iBAAiB;;IAEjB,WAAW;;IAEX,aAAa;;IAEb,yBAAyB;;IAEzB;;;;;OAKG;;CAEK,CAAC;AAIX;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,YAAY;IAC3B,iBAAiB;IACjB,GAAG,EAAE;QACH,4CAA4C;QAC5C,SAAS,EAAE,MAAM,CAAC;QAClB,2CAA2C;QAC3C,gBAAgB,EAAE,MAAM,CAAC;QACzB,2CAA2C;QAC3C,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,eAAe;IACf,MAAM,EAAE;QACN,uCAAuC;QACvC,UAAU,EAAE,MAAM,CAAC;QACnB,sBAAsB;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,0DAA0D;QAC1D,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,eAAe;IACf,KAAK,EAAE;QACL,cAAc;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,4BAA4B;QAC5B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,cAAc;IACd,OAAO,EAAE;QACP,oDAAoD;QACpD,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,sCAAsC;QACtC,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,+CAA+C;IAC/C,KAAK,EAAE;QACL,aAAa;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,8BAA8B;QAC9B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,oCAAoC;QACpC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,GAAG,IAAI,CAAC;CACV"}
1
+ {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../src/agent/tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,iBAAiB;AACjB,KAAK,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAIpD,6BAA6B;AAC7B,MAAM,WAAW,KAAK;IACpB,yBAAyB;IACzB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC3D,iBAAiB;IACjB,GAAG,IAAI,IAAI,CAAC;IACZ,4BAA4B;IAC5B,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrC;AAID,8BAA8B;AAC9B,MAAM,WAAW,OAAO;IACtB;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC;CACjF;AA4BD,qCAAqC;AACrC,eAAO,MAAM,WAAW,EAAE,OAA0B,CAAC;AAIrD;;;;GAIG;AACH,eAAO,MAAM,WAAW;IACtB,aAAa;;IAEb,iBAAiB;;IAEjB,WAAW;;IAEX,aAAa;;IAEb,yBAAyB;;IAEzB;;;;;OAKG;;IAEH;;;;;;OAMG;;IAEH;;;;;;;OAOG;;IAEH;;;;;OAKG;;IAEH;;;;;OAKG;;CAEK,CAAC;AAIX;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,YAAY;IAC3B,iBAAiB;IACjB,GAAG,EAAE;QACH,4CAA4C;QAC5C,SAAS,EAAE,MAAM,CAAC;QAClB,2CAA2C;QAC3C,gBAAgB,EAAE,MAAM,CAAC;QACzB,2CAA2C;QAC3C,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,eAAe;IACf,MAAM,EAAE;QACN,uCAAuC;QACvC,UAAU,EAAE,MAAM,CAAC;QACnB,sBAAsB;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,0DAA0D;QAC1D,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,eAAe;IACf,KAAK,EAAE;QACL,cAAc;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,4BAA4B;QAC5B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,cAAc;IACd,OAAO,EAAE;QACP,oDAAoD;QACpD,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,sCAAsC;QACtC,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,+CAA+C;IAC/C,KAAK,EAAE;QACL,aAAa;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,8BAA8B;QAC9B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,oCAAoC;QACpC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,GAAG,IAAI,CAAC;CACV"}
@@ -67,5 +67,36 @@ export const TRACE_SPANS = {
67
67
  * 监控此 span 可观察截断频率、摘要生成耗时与失败率。
68
68
  */
69
69
  CONTEXT_SUMMARY: 'context.summary',
70
+ /**
71
+ * 对话后归档处理
72
+ *
73
+ * 触发条件:每轮 chat() 完成后调用 postProcess,含角色匹配、技能匹配、
74
+ * profile 归档、insight 提取、AutoConfigRefiner 五个子步骤。
75
+ * 监控此 span 可观察归档耗时、失败率、各子步骤执行情况。
76
+ */
77
+ POST_PROCESS: 'archive.postProcess',
78
+ /**
79
+ * 实际记忆召回函数
80
+ *
81
+ * 触发条件:每轮 processUserInput 调用 recall() 执行双通道召回
82
+ * (语义搜索 + 关键词搜索 + hybridMerge 融合排序)。
83
+ * 现有 RECALL span 仅 wrapping 注入动作并立即 end,不覆盖实际召回耗时。
84
+ * 此 span 在 recall() 函数内部埋点,可观察真实召回耗时与双通道命中分布。
85
+ */
86
+ RECALL_ACTUAL: 'recall.actual',
87
+ /**
88
+ * 输入护栏检查
89
+ *
90
+ * 触发条件:用户输入注入上下文前调用 runGuardrails 检查。
91
+ * 监控此 span 可观察护栏触发频率、阻断率、耗时。
92
+ */
93
+ GUARDRAIL_INPUT: 'guardrail.input',
94
+ /**
95
+ * 输出护栏检查
96
+ *
97
+ * 触发条件:LLM 响应返回给用户前调用 runGuardrails 检查。
98
+ * 监控此 span 可观察输出护栏触发频率、阻断率、耗时。
99
+ */
100
+ GUARDRAIL_OUTPUT: 'guardrail.output',
70
101
  };
71
102
  //# sourceMappingURL=tracer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../src/agent/tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAiCH,6CAA6C;AAE7C,0BAA0B;AAC1B,MAAM,QAAQ;IACZ,YAAY,CAAC,IAAY,EAAE,MAA0B;QACnD,OAAO;IACT,CAAC;IACD,GAAG;QACD,OAAO;IACT,CAAC;IACD,eAAe,CAAC,MAAa;QAC3B,OAAO;IACT,CAAC;CACF;AAED,iCAAiC;AACjC,MAAM,UAAU;IACd,SAAS,CAAC,KAAa,EAAE,WAAgD;QACvE,2BAA2B;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAED,4CAA4C;AAC5C,MAAM,SAAS,GAAG,IAAI,QAAQ,EAAE,CAAC;AAEjC,qCAAqC;AACrC,MAAM,CAAC,MAAM,WAAW,GAAY,IAAI,UAAU,EAAE,CAAC;AAErD,kDAAkD;AAElD;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,aAAa;IACb,MAAM,EAAE,eAAe;IACvB,iBAAiB;IACjB,QAAQ,EAAE,UAAU;IACpB,WAAW;IACX,SAAS,EAAE,cAAc;IACzB,aAAa;IACb,QAAQ,EAAE,mBAAmB;IAC7B,yBAAyB;IACzB,KAAK,EAAE,cAAc;IACrB;;;;;OAKG;IACH,eAAe,EAAE,iBAAiB;CAC1B,CAAC"}
1
+ {"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../src/agent/tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAiCH,6CAA6C;AAE7C,0BAA0B;AAC1B,MAAM,QAAQ;IACZ,YAAY,CAAC,IAAY,EAAE,MAA0B;QACnD,OAAO;IACT,CAAC;IACD,GAAG;QACD,OAAO;IACT,CAAC;IACD,eAAe,CAAC,MAAa;QAC3B,OAAO;IACT,CAAC;CACF;AAED,iCAAiC;AACjC,MAAM,UAAU;IACd,SAAS,CAAC,KAAa,EAAE,WAAgD;QACvE,2BAA2B;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAED,4CAA4C;AAC5C,MAAM,SAAS,GAAG,IAAI,QAAQ,EAAE,CAAC;AAEjC,qCAAqC;AACrC,MAAM,CAAC,MAAM,WAAW,GAAY,IAAI,UAAU,EAAE,CAAC;AAErD,kDAAkD;AAElD;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,aAAa;IACb,MAAM,EAAE,eAAe;IACvB,iBAAiB;IACjB,QAAQ,EAAE,UAAU;IACpB,WAAW;IACX,SAAS,EAAE,cAAc;IACzB,aAAa;IACb,QAAQ,EAAE,mBAAmB;IAC7B,yBAAyB;IACzB,KAAK,EAAE,cAAc;IACrB;;;;;OAKG;IACH,eAAe,EAAE,iBAAiB;IAClC;;;;;;OAMG;IACH,YAAY,EAAE,qBAAqB;IACnC;;;;;;;OAOG;IACH,aAAa,EAAE,eAAe;IAC9B;;;;;OAKG;IACH,eAAe,EAAE,iBAAiB;IAClC;;;;;OAKG;IACH,gBAAgB,EAAE,kBAAkB;CAC5B,CAAC"}