@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.
- package/README.en.md +272 -0
- package/README.md +150 -38
- package/dist/agent/agent.d.ts +257 -115
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +747 -400
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/assembler.d.ts +32 -16
- package/dist/agent/assembler.d.ts.map +1 -1
- package/dist/agent/assembler.js +83 -47
- package/dist/agent/assembler.js.map +1 -1
- package/dist/agent/builtinToolHandlers.d.ts +27 -2
- package/dist/agent/builtinToolHandlers.d.ts.map +1 -1
- package/dist/agent/builtinToolHandlers.js +78 -5
- package/dist/agent/builtinToolHandlers.js.map +1 -1
- package/dist/agent/constants.d.ts +4 -0
- package/dist/agent/constants.d.ts.map +1 -1
- package/dist/agent/constants.js +4 -0
- package/dist/agent/constants.js.map +1 -1
- package/dist/agent/contextManager.d.ts +8 -0
- package/dist/agent/contextManager.d.ts.map +1 -1
- package/dist/agent/contextManager.js +7 -2
- package/dist/agent/contextManager.js.map +1 -1
- package/dist/agent/guardrail.d.ts +4 -2
- package/dist/agent/guardrail.d.ts.map +1 -1
- package/dist/agent/guardrail.js +13 -5
- package/dist/agent/guardrail.js.map +1 -1
- package/dist/agent/loop.d.ts +137 -15
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +449 -270
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/managers/archiveCoordinator.d.ts +126 -22
- package/dist/agent/managers/archiveCoordinator.d.ts.map +1 -1
- package/dist/agent/managers/archiveCoordinator.js +239 -44
- package/dist/agent/managers/archiveCoordinator.js.map +1 -1
- package/dist/agent/managers/autoConfigRefiner.d.ts.map +1 -1
- package/dist/agent/managers/autoConfigRefiner.js +4 -8
- package/dist/agent/managers/autoConfigRefiner.js.map +1 -1
- package/dist/agent/managers/chatLockManager.d.ts +116 -0
- package/dist/agent/managers/chatLockManager.d.ts.map +1 -0
- package/dist/agent/managers/chatLockManager.js +191 -0
- package/dist/agent/managers/chatLockManager.js.map +1 -0
- package/dist/agent/managers/configManager.d.ts +87 -3
- package/dist/agent/managers/configManager.d.ts.map +1 -1
- package/dist/agent/managers/configManager.js +139 -2
- package/dist/agent/managers/configManager.js.map +1 -1
- package/dist/agent/managers/dedupManager.d.ts +169 -0
- package/dist/agent/managers/dedupManager.d.ts.map +1 -0
- package/dist/agent/managers/dedupManager.js +336 -0
- package/dist/agent/managers/dedupManager.js.map +1 -0
- package/dist/agent/managers/insightExtractor.d.ts +31 -3
- package/dist/agent/managers/insightExtractor.d.ts.map +1 -1
- package/dist/agent/managers/insightExtractor.js +130 -59
- package/dist/agent/managers/insightExtractor.js.map +1 -1
- package/dist/agent/managers/llmJudgeHelper.d.ts +38 -0
- package/dist/agent/managers/llmJudgeHelper.d.ts.map +1 -0
- package/dist/agent/managers/llmJudgeHelper.js +49 -0
- package/dist/agent/managers/llmJudgeHelper.js.map +1 -0
- package/dist/agent/managers/memoryAdvisor.d.ts +102 -2
- package/dist/agent/managers/memoryAdvisor.d.ts.map +1 -1
- package/dist/agent/managers/memoryAdvisor.js +254 -10
- package/dist/agent/managers/memoryAdvisor.js.map +1 -1
- package/dist/agent/managers/memoryDecayScheduler.d.ts +127 -1
- package/dist/agent/managers/memoryDecayScheduler.d.ts.map +1 -1
- package/dist/agent/managers/memoryDecayScheduler.js +283 -4
- package/dist/agent/managers/memoryDecayScheduler.js.map +1 -1
- package/dist/agent/managers/memoryGovernance.d.ts +56 -0
- package/dist/agent/managers/memoryGovernance.d.ts.map +1 -0
- package/dist/agent/managers/memoryGovernance.js +63 -0
- package/dist/agent/managers/memoryGovernance.js.map +1 -0
- package/dist/agent/managers/memoryInspector.d.ts +113 -30
- package/dist/agent/managers/memoryInspector.d.ts.map +1 -1
- package/dist/agent/managers/memoryInspector.js +165 -32
- package/dist/agent/managers/memoryInspector.js.map +1 -1
- package/dist/agent/managers/relationBuilder.d.ts +4 -4
- package/dist/agent/managers/relationBuilder.d.ts.map +1 -1
- package/dist/agent/managers/relationBuilder.js +5 -4
- package/dist/agent/managers/relationBuilder.js.map +1 -1
- package/dist/agent/managers/sessionArchiver.d.ts +12 -1
- package/dist/agent/managers/sessionArchiver.d.ts.map +1 -1
- package/dist/agent/managers/sessionArchiver.js +87 -30
- package/dist/agent/managers/sessionArchiver.js.map +1 -1
- package/dist/agent/managers/sessionManager.d.ts.map +1 -1
- package/dist/agent/managers/sessionManager.js +9 -17
- package/dist/agent/managers/sessionManager.js.map +1 -1
- package/dist/agent/managers/streamAccumulator.d.ts +45 -0
- package/dist/agent/managers/streamAccumulator.d.ts.map +1 -0
- package/dist/agent/managers/streamAccumulator.js +40 -0
- package/dist/agent/managers/streamAccumulator.js.map +1 -0
- package/dist/agent/managers/textPolishManager.d.ts +62 -0
- package/dist/agent/managers/textPolishManager.d.ts.map +1 -0
- package/dist/agent/managers/textPolishManager.js +96 -0
- package/dist/agent/managers/textPolishManager.js.map +1 -0
- package/dist/agent/managers/workProjection.d.ts +16 -1
- package/dist/agent/managers/workProjection.d.ts.map +1 -1
- package/dist/agent/managers/workProjection.js +48 -24
- package/dist/agent/managers/workProjection.js.map +1 -1
- package/dist/agent/personaMatcher.d.ts +29 -0
- package/dist/agent/personaMatcher.d.ts.map +1 -0
- package/dist/agent/personaMatcher.js +60 -0
- package/dist/agent/personaMatcher.js.map +1 -0
- package/dist/agent/toolExecutor.d.ts +24 -4
- package/dist/agent/toolExecutor.d.ts.map +1 -1
- package/dist/agent/toolExecutor.js +30 -4
- package/dist/agent/toolExecutor.js.map +1 -1
- package/dist/agent/tracer.d.ts +31 -0
- package/dist/agent/tracer.d.ts.map +1 -1
- package/dist/agent/tracer.js +31 -0
- package/dist/agent/tracer.js.map +1 -1
- package/dist/agent/types.d.ts +133 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js +38 -0
- package/dist/agent/types.js.map +1 -1
- package/dist/agent/userFactExtractor.d.ts.map +1 -1
- package/dist/agent/userFactExtractor.js +7 -0
- package/dist/agent/userFactExtractor.js.map +1 -1
- package/dist/config/loader.d.ts +124 -236
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +296 -118
- package/dist/config/loader.js.map +1 -1
- package/dist/eval/evalRunner.d.ts +94 -0
- package/dist/eval/evalRunner.d.ts.map +1 -0
- package/dist/eval/evalRunner.js +141 -0
- package/dist/eval/evalRunner.js.map +1 -0
- package/dist/eval/evalTypes.d.ts +21 -0
- package/dist/eval/evalTypes.d.ts.map +1 -1
- package/dist/eval/evalTypes.js +15 -0
- package/dist/eval/evalTypes.js.map +1 -1
- package/dist/eval/scenarios.d.ts +33 -0
- package/dist/eval/scenarios.d.ts.map +1 -0
- package/dist/eval/scenarios.js +109 -0
- package/dist/eval/scenarios.js.map +1 -0
- package/dist/index.d.ts +45 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +45 -5
- package/dist/index.js.map +1 -1
- package/dist/llm/abortSignal.d.ts +27 -0
- package/dist/llm/abortSignal.d.ts.map +1 -0
- package/dist/llm/abortSignal.js +44 -0
- package/dist/llm/abortSignal.js.map +1 -0
- package/dist/llm/embedding.d.ts +13 -12
- package/dist/llm/embedding.d.ts.map +1 -1
- package/dist/llm/embedding.js +5 -17
- package/dist/llm/embedding.js.map +1 -1
- package/dist/llm/factory.d.ts +19 -5
- package/dist/llm/factory.d.ts.map +1 -1
- package/dist/llm/factory.js +19 -37
- package/dist/llm/factory.js.map +1 -1
- package/dist/llm/openaiCompatible.d.ts.map +1 -1
- package/dist/llm/openaiCompatible.js +17 -34
- package/dist/llm/openaiCompatible.js.map +1 -1
- package/dist/logging/logger.d.ts +3 -1
- package/dist/logging/logger.d.ts.map +1 -1
- package/dist/logging/logger.js +47 -50
- package/dist/logging/logger.js.map +1 -1
- package/dist/memory/governance.d.ts +50 -0
- package/dist/memory/governance.d.ts.map +1 -0
- package/dist/memory/governance.js +70 -0
- package/dist/memory/governance.js.map +1 -0
- package/dist/memory/hybridMerge.d.ts +0 -4
- package/dist/memory/hybridMerge.d.ts.map +1 -1
- package/dist/memory/hybridMerge.js +19 -4
- package/dist/memory/hybridMerge.js.map +1 -1
- package/dist/memory/inMemoryRelationStore.d.ts +7 -0
- package/dist/memory/inMemoryRelationStore.d.ts.map +1 -1
- package/dist/memory/inMemoryRelationStore.js +15 -0
- package/dist/memory/inMemoryRelationStore.js.map +1 -1
- package/dist/memory/inMemoryStorage.d.ts +36 -1
- package/dist/memory/inMemoryStorage.d.ts.map +1 -1
- package/dist/memory/inMemoryStorage.js +70 -19
- package/dist/memory/inMemoryStorage.js.map +1 -1
- package/dist/memory/loader.d.ts +2 -0
- package/dist/memory/loader.d.ts.map +1 -1
- package/dist/memory/loader.js +8 -1
- package/dist/memory/loader.js.map +1 -1
- package/dist/memory/lockManager.d.ts +7 -2
- package/dist/memory/lockManager.d.ts.map +1 -1
- package/dist/memory/lockManager.js +35 -17
- package/dist/memory/lockManager.js.map +1 -1
- package/dist/memory/projectManager.d.ts +8 -7
- package/dist/memory/projectManager.d.ts.map +1 -1
- package/dist/memory/projectManager.js +33 -15
- package/dist/memory/projectManager.js.map +1 -1
- package/dist/memory/projectRegistry.d.ts +34 -1
- package/dist/memory/projectRegistry.d.ts.map +1 -1
- package/dist/memory/projectRegistry.js +100 -31
- package/dist/memory/projectRegistry.js.map +1 -1
- package/dist/memory/recall.d.ts +16 -0
- package/dist/memory/recall.d.ts.map +1 -1
- package/dist/memory/recall.js +35 -20
- package/dist/memory/recall.js.map +1 -1
- package/dist/memory/relationStore.d.ts +20 -3
- package/dist/memory/relationStore.d.ts.map +1 -1
- package/dist/memory/sourceValidation.d.ts +17 -0
- package/dist/memory/sourceValidation.d.ts.map +1 -1
- package/dist/memory/sourceValidation.js +27 -3
- package/dist/memory/sourceValidation.js.map +1 -1
- package/dist/memory/storageInterface.d.ts +26 -1
- package/dist/memory/storageInterface.d.ts.map +1 -1
- package/dist/memory/store.d.ts +22 -1
- package/dist/memory/store.d.ts.map +1 -1
- package/dist/memory/store.js +58 -20
- package/dist/memory/store.js.map +1 -1
- package/dist/memory/types.d.ts +44 -31
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/memory/types.js +63 -24
- package/dist/memory/types.js.map +1 -1
- package/dist/memory/userProfile.d.ts +32 -8
- package/dist/memory/userProfile.d.ts.map +1 -1
- package/dist/memory/userProfile.js +105 -44
- package/dist/memory/userProfile.js.map +1 -1
- package/dist/memory/vectorStore.d.ts +16 -8
- package/dist/memory/vectorStore.d.ts.map +1 -1
- package/dist/memory/vectorStore.js +49 -22
- package/dist/memory/vectorStore.js.map +1 -1
- package/dist/persona/personaManager.d.ts +38 -63
- package/dist/persona/personaManager.d.ts.map +1 -1
- package/dist/persona/personaManager.js +136 -202
- package/dist/persona/personaManager.js.map +1 -1
- package/dist/skill/skillManager.d.ts +11 -57
- package/dist/skill/skillManager.d.ts.map +1 -1
- package/dist/skill/skillManager.js +46 -141
- package/dist/skill/skillManager.js.map +1 -1
- package/dist/skill/types.d.ts +2 -3
- package/dist/skill/types.d.ts.map +1 -1
- package/dist/utils/array.d.ts +24 -0
- package/dist/utils/array.d.ts.map +1 -0
- package/dist/utils/array.js +24 -0
- package/dist/utils/array.js.map +1 -0
- package/dist/utils/configResourceManager.d.ts +111 -0
- package/dist/utils/configResourceManager.d.ts.map +1 -0
- package/dist/utils/configResourceManager.js +148 -0
- package/dist/utils/configResourceManager.js.map +1 -0
- package/dist/utils/errors.d.ts +27 -8
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +31 -9
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/eventEmitter.d.ts +88 -4
- package/dist/utils/eventEmitter.d.ts.map +1 -1
- package/dist/utils/eventEmitter.js +23 -0
- package/dist/utils/eventEmitter.js.map +1 -1
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js +4 -2
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/math.d.ts +11 -0
- package/dist/utils/math.d.ts.map +1 -1
- package/dist/utils/math.js +17 -0
- package/dist/utils/math.js.map +1 -1
- package/dist/utils/objects.d.ts +17 -0
- package/dist/utils/objects.d.ts.map +1 -0
- package/dist/utils/objects.js +19 -0
- package/dist/utils/objects.js.map +1 -0
- package/dist/utils/segmenter.d.ts +11 -10
- package/dist/utils/segmenter.d.ts.map +1 -1
- package/dist/utils/segmenter.js +23 -1
- package/dist/utils/segmenter.js.map +1 -1
- package/dist/utils/strings.d.ts +22 -1
- package/dist/utils/strings.d.ts.map +1 -1
- package/dist/utils/strings.js +29 -1
- package/dist/utils/strings.js.map +1 -1
- package/dist/utils/time.d.ts +18 -3
- package/dist/utils/time.d.ts.map +1 -1
- package/dist/utils/time.js +24 -8
- package/dist/utils/time.js.map +1 -1
- package/dist/utils/toError.d.ts +8 -4
- package/dist/utils/toError.d.ts.map +1 -1
- package/dist/utils/toError.js +25 -5
- package/dist/utils/toError.js.map +1 -1
- package/docs/memora-api-reference.md +1235 -0
- package/docs/memora-/346/216/245/345/205/245/346/214/207/345/215/227.md +808 -0
- package/package.json +49 -22
- package/dist/agent/managers/memoryMutator.d.ts +0 -92
- package/dist/agent/managers/memoryMutator.d.ts.map +0 -1
- package/dist/agent/managers/memoryMutator.js +0 -94
- 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;
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
* 宿主项目调用此方法注册领域专属工具(如
|
|
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;
|
|
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
|
-
* 宿主项目调用此方法注册领域专属工具(如
|
|
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'
|
|
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;
|
|
1
|
+
{"version":3,"file":"toolExecutor.js","sourceRoot":"","sources":["../../src/agent/toolExecutor.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/tracer.d.ts
CHANGED
|
@@ -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"}
|
package/dist/agent/tracer.js
CHANGED
|
@@ -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
|
package/dist/agent/tracer.js.map
CHANGED
|
@@ -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;
|
|
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"}
|