@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
@@ -68,6 +68,20 @@ export interface AgentLoopOptions {
68
68
  * 避免关键信息永久丢失。(首次触发时增加 ~1-2s 延迟)
69
69
  */
70
70
  enableContextSummary?: boolean;
71
+ /**
72
+ * 上下文截断回调(宿主可据此发射 contextTruncated 事件通知用户)
73
+ *
74
+ * 每次 truncateMessages 触发截断时调用,传入被裁剪和保留的消息数量。
75
+ * 未注入时静默忽略。
76
+ */
77
+ onContextTruncated?: (skippedCount: number, keptCount: number) => void;
78
+ /**
79
+ * 护栏规则正则编译失败回调(宿主可据此发射 guardrailError 事件通知用户)
80
+ *
81
+ * 每次 runGuardrails 遇到正则编译异常时调用。
82
+ * 未注入时仅记日志(降级优先原则,不阻断对话)。
83
+ */
84
+ onGuardrailError?: (rule: string, message: string) => void;
71
85
  }
72
86
  export declare class AgentLoop {
73
87
  private readonly opts;
@@ -81,29 +95,32 @@ export declare class AgentLoop {
81
95
  private readonly guardrailRules;
82
96
  /** Reflection 最大重试次数(默认 2) */
83
97
  private readonly maxReflectionRetries;
98
+ /**
99
+ * 当前轮次已推送的 REFLECTION_HINT 次数(显式计数器)
100
+ *
101
+ * 替代旧实现通过 messages.filter(startsWith('[REFLECTION_HINT]')).length 推断的方式——
102
+ * 当 ContextManager 裁剪中间段消息时,REFLECTION_HINT 可能被裁掉导致计数失真。
103
+ * 显式字段不受 messages 数组变动影响,状态机更健壮。
104
+ */
105
+ private reflectionCountThisTurn;
84
106
  /** 宿主可覆盖的 UI 消息文本(已填充默认值) */
85
107
  private readonly ui;
108
+ /** 护栏规则正则编译失败回调(从 opts.onGuardrailError 提取,用于 GuardrailUI) */
109
+ private readonly guardrailUI;
86
110
  /** 上下文超限时是否自动生成摘要 */
87
111
  private readonly enableContextSummary;
88
112
  /** 上下文管理器(从 loop 提取的 token 估算 + 截断 + 摘要职责) */
89
113
  private readonly contextManager;
90
- /** LLM 调用总次数(含重试,每次 provider.chat 调用 +1) */
91
- private metricLlmCallCount;
92
- /** 累计输入 token 数(基于 estimateTokens 粗略估算) */
93
- private metricTotalInputTokens;
94
- /** 累计输出 token 数(基于 estimateTokens 粗略估算) */
95
- private metricTotalOutputTokens;
96
- /** 记忆召回总次数(每轮 processUserInput +1) */
97
- private metricRecallTotalCount;
98
- /** 记忆召回命中次数(召回结果非空 +1) */
99
- private metricRecallHitCount;
100
- /** 工具调用总次数 */
101
- private metricToolCallCount;
102
- /** 工具调用失败次数(结果以 [ERR 开头) */
103
- private metricToolFailureCount;
114
+ private metrics;
104
115
  constructor(opts: AgentLoopOptions);
105
116
  /**
106
- * 处理一轮用户输入
117
+ * 处理一轮用户输入(编排方法)
118
+ *
119
+ * 拆分为 4 个子方法:
120
+ * - handleRecallAndInputGuard:召回注入 + 输入护栏
121
+ * - handleIteration:单次迭代编排(abort 检查 + LLM 调用 + 分支路由)
122
+ * - handleToolCalls:工具调用分支 + Reflection
123
+ * - handleTextResponse:纯文本结束 + 输出护栏
107
124
  *
108
125
  * @param userInput - 用户原始输入
109
126
  * @param recalledMemories - 记忆召回结果(Agent.memory.search() 产出),
@@ -112,6 +129,57 @@ export declare class AgentLoop {
112
129
  * 泊文等宿主 UI 传入 AbortController.signal,用户点击"取消"时触发 abort
113
130
  */
114
131
  processUserInput(userInput: string, recalledMemories?: readonly Memory[], signal?: AbortSignal): AsyncGenerator<AgentChunk, void, unknown>;
132
+ /**
133
+ * 召回注入 + 输入护栏(processUserInput 子方法 1/4)
134
+ *
135
+ * 职责:
136
+ * - 注入记忆召回结果(system 消息,优先级高、不污染 user 输入)
137
+ * - 召回命中率统计(metricRecallTotalCount / metricRecallHitCount)
138
+ * - 通知上层 UI 召回透明度(yield recall chunk)
139
+ * - 输入护栏检查(block 时 yield text + done,warn 时 yield text)
140
+ *
141
+ * @yields recall / text(guardrail block/warn)/ done(block 时)
142
+ * @returns true 表示输入被 block 已 yield done,调用方应 return;false 表示继续
143
+ */
144
+ private handleRecallAndInputGuard;
145
+ /**
146
+ * 单次迭代编排(processUserInput 子方法 2/4)
147
+ *
148
+ * 职责:
149
+ * - abort 检查
150
+ * - 上下文摘要 + 截断
151
+ * - LLM 调用(callLlmWithRetry)
152
+ * - LLM 中断处理
153
+ * - 分支路由:工具调用 → handleToolCalls;纯文本 → handleTextResponse
154
+ *
155
+ * @yields text / aborted / done(由子方法委托)
156
+ * @returns 'aborted' | 'done' | 'continue'(continue 表示继续下一轮迭代)
157
+ */
158
+ private handleIteration;
159
+ /**
160
+ * 工具调用分支 + Reflection(processUserInput 子方法 3/4)
161
+ *
162
+ * 职责:
163
+ * - executeToolCalls 执行工具调用
164
+ * - abort 检查(工具执行中断)
165
+ * - Reflection:检查可重试错误,追加反思提示
166
+ *
167
+ * @yields aborted(工具执行中断时)
168
+ * @returns 'aborted' | 'continue'(continue 表示工具结果已回填,继续下一轮 LLM 调用)
169
+ */
170
+ private handleToolCalls;
171
+ /**
172
+ * 纯文本结束 + 输出护栏(processUserInput 子方法 4/4)
173
+ *
174
+ * 职责:
175
+ * - push assistant 消息(含空响应兜底)
176
+ * - 输出护栏检查(block 时 yield text + done,warn 时 yield text)
177
+ * - yield done 结束本轮对话
178
+ *
179
+ * @yields text(空响应兜底 / guardrail block/warn)/ done
180
+ * @returns 'done'(调用方收到后 return)
181
+ */
182
+ private handleTextResponse;
115
183
  /**
116
184
  * 调用 LLM(带指数退避重试)
117
185
  *
@@ -164,6 +232,27 @@ export declare class AgentLoop {
164
232
  * @returns 工具结果字符串,或 [ERR:TOOL:ABORTED] 表示被中断
165
233
  */
166
234
  private raceToolWithSignal;
235
+ /**
236
+ * 执行单个工具(E-803 抽取:为并行化提供独立执行单元)
237
+ *
238
+ * 职责:
239
+ * - startSpan / endSpan(工具执行 Span,并发时 span 时间重叠,可观测性改进)
240
+ * - raceToolWithSignal 竞争包裹(兼容 signal 中断,每个工具独立 race)
241
+ * - 异常捕获并转为结构化错误字符串([ERR:TOOL:code] 前缀,供 Reflection 解析)
242
+ *
243
+ * 不含职责(由 executeToolCalls 主循环控制,保证顺序确定):
244
+ * - yield tool_start / tool_result(事件顺序由主循环批量 yield 保证)
245
+ * - messages.push(消息顺序由主循环按原始顺序 push,确保 Reflection slice 正确)
246
+ * - metricToolCallCount / metricToolFailureCount(统计由主循环控制)
247
+ *
248
+ * 并发安全:本方法无共享状态,多个 executeOneTool 可同时执行。
249
+ * toolExecutor 内部无状态(纯分发 + 参数校验),天然支持并发调用。
250
+ *
251
+ * @param tc 单个工具调用描述(id + function.name + function.arguments)
252
+ * @param signal 可选的 AbortSignal
253
+ * @returns 工具结果字符串(成功)或 [ERR:TOOL:code] 错误字符串(失败)
254
+ */
255
+ private executeOneTool;
167
256
  /**
168
257
  * 构建 system prompt(注入人格 + 规则 + 领域 + 工具描述)
169
258
  */
@@ -231,6 +320,24 @@ export declare class AgentLoop {
231
320
  * @param newPrefix 新的系统 prompt 前缀(包含新角色 + 用户画像)
232
321
  */
233
322
  refreshPersonaPrefix(newPrefix: string): void;
323
+ /**
324
+ * 刷新 bootstrap 记忆段(设定面板 CRUD 专用)
325
+ *
326
+ * 设定面板对 rule/skill 执行增删改后,调用此方法用最新的记忆数组
327
+ * 重建 system prompt 中的 bootstrap 段,使变更立即对当前会话生效。
328
+ *
329
+ * 与 refreshPersonaPrefix 的区别:
330
+ * - refreshPersonaPrefix 替换 systemPromptPrefix(角色 + 画像)
331
+ * - refreshBootstrapMemories 替换 bootstrapMemories(rule + skill)
332
+ *
333
+ * 调用链:ConfigManager.deleteRule/updateRule/deleteSkill
334
+ * → refreshBootstrapMemories 回调(assembler 注入)
335
+ * → loop.refreshBootstrapMemories(memories)
336
+ * → rebuildSystemMessage()
337
+ *
338
+ * @param memories 最新的 rule + skill 活跃记忆数组(由 ConfigManager.getBootstrapMemories 提供)
339
+ */
340
+ refreshBootstrapMemories(memories: Memory[]): void;
234
341
  /**
235
342
  * 注入情感基调到 system prompt(Phase 2.1:AffectController)
236
343
  *
@@ -297,5 +404,20 @@ export declare class AgentLoop {
297
404
  * 调用 isRetryableErrorCode 判断。
298
405
  */
299
406
  private isRetryableToolError;
407
+ /**
408
+ * 重试延迟 + abort 支持(从 callLlmWithRetry 提取,编码约定 §6 ≤60 行约束)
409
+ *
410
+ * 发射 retry chunk、等待指数退避延迟(支持中途 abort),返回 void。
411
+ * 调用方在延迟后自行检查 signal.aborted 决定是否退出重试循环。
412
+ */
413
+ private _waitForRetryWithAbort;
414
+ /**
415
+ * 处理工具执行结果:push messages + yield tool_result(从 executeToolCalls 提取)
416
+ */
417
+ private _processToolResults;
418
+ /**
419
+ * 注入记忆召回结果 + 统计 + 透明度通知(从 handleRecallAndInputGuard 提取)
420
+ */
421
+ private _injectRecall;
300
422
  }
301
423
  //# sourceMappingURL=loop.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"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"}