@zooique/memora 4.0.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +165 -1743
- package/README.en.md +43 -36
- package/README.md +308 -303
- package/dist/agent/agent.d.ts +46 -82
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +153 -220
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/assembler.d.ts +3 -16
- package/dist/agent/assembler.d.ts.map +1 -1
- package/dist/agent/assembler.js +46 -35
- package/dist/agent/assembler.js.map +1 -1
- package/dist/agent/backgroundTasks.d.ts +8 -1
- package/dist/agent/backgroundTasks.d.ts.map +1 -1
- package/dist/agent/backgroundTasks.js +8 -1
- package/dist/agent/backgroundTasks.js.map +1 -1
- package/dist/agent/budget.d.ts +23 -5
- package/dist/agent/budget.d.ts.map +1 -1
- package/dist/agent/budget.js +8 -2
- package/dist/agent/budget.js.map +1 -1
- package/dist/agent/builtinToolHandlers.d.ts +27 -8
- package/dist/agent/builtinToolHandlers.d.ts.map +1 -1
- package/dist/agent/builtinToolHandlers.js +45 -9
- package/dist/agent/builtinToolHandlers.js.map +1 -1
- package/dist/agent/builtinTools.d.ts.map +1 -1
- package/dist/agent/builtinTools.js +4 -3
- package/dist/agent/builtinTools.js.map +1 -1
- package/dist/agent/constants.d.ts +0 -6
- package/dist/agent/constants.d.ts.map +1 -1
- package/dist/agent/constants.js +7 -8
- 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 +45 -3
- package/dist/agent/contextManager.js.map +1 -1
- package/dist/agent/contextPreparer.d.ts +1 -1
- package/dist/agent/contextPreparer.d.ts.map +1 -1
- package/dist/agent/contextPreparer.js +15 -10
- package/dist/agent/contextPreparer.js.map +1 -1
- package/dist/agent/guardRail.d.ts +1 -1
- package/dist/agent/guardRail.d.ts.map +1 -1
- package/dist/agent/guardRail.js +1 -1
- package/dist/agent/guardRail.js.map +1 -1
- package/dist/agent/loop.d.ts +46 -13
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +128 -25
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/managers/archiveCoordinator.d.ts +15 -3
- package/dist/agent/managers/archiveCoordinator.d.ts.map +1 -1
- package/dist/agent/managers/archiveCoordinator.js +13 -7
- package/dist/agent/managers/archiveCoordinator.js.map +1 -1
- package/dist/agent/managers/chatLockManager.d.ts +3 -9
- package/dist/agent/managers/chatLockManager.d.ts.map +1 -1
- package/dist/agent/managers/chatLockManager.js +7 -25
- package/dist/agent/managers/chatLockManager.js.map +1 -1
- package/dist/agent/managers/llmCaller.d.ts.map +1 -1
- package/dist/agent/managers/llmCaller.js +27 -1
- package/dist/agent/managers/llmCaller.js.map +1 -1
- package/dist/agent/managers/memoryInspector.d.ts +12 -7
- package/dist/agent/managers/memoryInspector.d.ts.map +1 -1
- package/dist/agent/managers/memoryInspector.js +32 -19
- package/dist/agent/managers/memoryInspector.js.map +1 -1
- package/dist/agent/managers/roundSummaryGenerator.d.ts +3 -1
- package/dist/agent/managers/roundSummaryGenerator.d.ts.map +1 -1
- package/dist/agent/managers/roundSummaryGenerator.js +14 -4
- package/dist/agent/managers/roundSummaryGenerator.js.map +1 -1
- package/dist/agent/managers/sessionArchiver.d.ts +20 -6
- package/dist/agent/managers/sessionArchiver.d.ts.map +1 -1
- package/dist/agent/managers/sessionArchiver.js +19 -5
- package/dist/agent/managers/sessionArchiver.js.map +1 -1
- package/dist/agent/managers/sessionManager.d.ts +21 -88
- package/dist/agent/managers/sessionManager.d.ts.map +1 -1
- package/dist/agent/managers/sessionManager.js +77 -278
- package/dist/agent/managers/sessionManager.js.map +1 -1
- package/dist/agent/seed/orchestrator.d.ts.map +1 -1
- package/dist/agent/seed/orchestrator.js +3 -3
- package/dist/agent/seed/orchestrator.js.map +1 -1
- package/dist/agent/seed/prepare.d.ts.map +1 -1
- package/dist/agent/seed/prepare.js +9 -4
- package/dist/agent/seed/prepare.js.map +1 -1
- package/dist/agent/seed/types.d.ts +11 -4
- package/dist/agent/seed/types.d.ts.map +1 -1
- package/dist/agent/seed/types.js +2 -2
- package/dist/agent/toolExecutor.d.ts +51 -6
- package/dist/agent/toolExecutor.d.ts.map +1 -1
- package/dist/agent/toolExecutor.js +74 -9
- package/dist/agent/toolExecutor.js.map +1 -1
- package/dist/agent/toolResultCache.js +1 -1
- package/dist/agent/toolRunner.d.ts +4 -2
- package/dist/agent/toolRunner.d.ts.map +1 -1
- package/dist/agent/toolRunner.js +7 -4
- package/dist/agent/toolRunner.js.map +1 -1
- package/dist/agent/types.d.ts +8 -25
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/index.d.ts +9 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -32
- package/dist/index.js.map +1 -1
- package/dist/logging/logger.d.ts +4 -1
- package/dist/logging/logger.d.ts.map +1 -1
- package/dist/logging/logger.js +5 -2
- package/dist/logging/logger.js.map +1 -1
- package/dist/memory/gcService.d.ts.map +1 -1
- package/dist/memory/gcService.js +3 -5
- package/dist/memory/gcService.js.map +1 -1
- package/dist/memory/inMemorySessionStore.d.ts +2 -2
- package/dist/memory/inMemorySessionStore.js +2 -2
- package/dist/memory/inMemoryStorage.d.ts +4 -3
- package/dist/memory/inMemoryStorage.d.ts.map +1 -1
- package/dist/memory/inMemoryStorage.js +2 -2
- package/dist/memory/inMemoryStorage.js.map +1 -1
- package/dist/memory/nodeSqliteStorage.d.ts +17 -0
- package/dist/memory/nodeSqliteStorage.d.ts.map +1 -0
- package/dist/memory/nodeSqliteStorage.js +393 -0
- package/dist/memory/nodeSqliteStorage.js.map +1 -0
- package/dist/memory/projectManager.d.ts +10 -20
- package/dist/memory/projectManager.d.ts.map +1 -1
- package/dist/memory/projectManager.js +27 -41
- package/dist/memory/projectManager.js.map +1 -1
- package/dist/memory/roundStore.d.ts +76 -1
- package/dist/memory/roundStore.d.ts.map +1 -1
- package/dist/memory/roundStore.js.map +1 -1
- package/dist/memory/roundSummaryLookup.d.ts +26 -0
- package/dist/memory/roundSummaryLookup.d.ts.map +1 -0
- package/dist/memory/roundSummaryLookup.js +19 -0
- package/dist/memory/roundSummaryLookup.js.map +1 -0
- package/dist/memory/sessionStore.d.ts +19 -2
- package/dist/memory/sessionStore.d.ts.map +1 -1
- package/dist/memory/sessionStore.js.map +1 -1
- package/dist/memory/sourceValidation.d.ts +2 -13
- package/dist/memory/sourceValidation.d.ts.map +1 -1
- package/dist/memory/sourceValidation.js +5 -16
- package/dist/memory/sourceValidation.js.map +1 -1
- package/dist/memory/storageInterface.d.ts +26 -16
- package/dist/memory/storageInterface.d.ts.map +1 -1
- package/dist/memory/supersedeResolve.d.ts +39 -0
- package/dist/memory/supersedeResolve.d.ts.map +1 -0
- package/dist/memory/supersedeResolve.js +16 -0
- package/dist/memory/supersedeResolve.js.map +1 -0
- package/dist/memory/types.d.ts +3 -2
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/memory/types.js +2 -1
- package/dist/memory/types.js.map +1 -1
- package/dist/role-pack/rolePackManager.d.ts +33 -24
- package/dist/role-pack/rolePackManager.d.ts.map +1 -1
- package/dist/role-pack/rolePackManager.js +48 -42
- package/dist/role-pack/rolePackManager.js.map +1 -1
- package/dist/role-pack/strategyKeys.d.ts +8 -0
- package/dist/role-pack/strategyKeys.d.ts.map +1 -1
- package/dist/role-pack/strategyKeys.js +10 -0
- package/dist/role-pack/strategyKeys.js.map +1 -1
- package/dist/role-pack/strategyResolver.d.ts +6 -1
- package/dist/role-pack/strategyResolver.d.ts.map +1 -1
- package/dist/role-pack/strategyResolver.js +20 -2
- package/dist/role-pack/strategyResolver.js.map +1 -1
- package/dist/role-pack/types.d.ts +5 -1
- package/dist/role-pack/types.d.ts.map +1 -1
- package/dist/security/pathGuard.d.ts +1 -1
- package/dist/security/pathGuard.d.ts.map +1 -1
- package/dist/security/pathGuard.js +1 -1
- package/dist/security/pathGuard.js.map +1 -1
- package/dist/utils/backgroundTask.d.ts +56 -34
- package/dist/utils/backgroundTask.d.ts.map +1 -1
- package/dist/utils/backgroundTask.js +130 -99
- package/dist/utils/backgroundTask.js.map +1 -1
- package/dist/utils/errors.d.ts +3 -2
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +3 -2
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/eventEmitter.d.ts +20 -22
- package/dist/utils/eventEmitter.d.ts.map +1 -1
- package/dist/utils/eventEmitter.js +0 -3
- package/dist/utils/eventEmitter.js.map +1 -1
- package/dist/utils/time.d.ts +3 -3
- package/dist/utils/time.d.ts.map +1 -1
- package/dist/utils/time.js +3 -3
- package/dist/utils/time.js.map +1 -1
- package/dist/utils/toError.d.ts +1 -1
- package/dist/utils/toError.js +1 -1
- package/dist/web-fetch/loginWall.d.ts +39 -0
- package/dist/web-fetch/loginWall.d.ts.map +1 -0
- package/dist/web-fetch/loginWall.js +78 -0
- package/dist/web-fetch/loginWall.js.map +1 -0
- package/dist/web-fetch/types.d.ts +8 -0
- package/dist/web-fetch/types.d.ts.map +1 -1
- package/dist/web-fetch/webFetchProvider.d.ts.map +1 -1
- package/dist/web-fetch/webFetchProvider.js +3 -1
- package/dist/web-fetch/webFetchProvider.js.map +1 -1
- package/dist/web-search/fetchWebSearchProvider.js +28 -23
- package/dist/web-search/fetchWebSearchProvider.js.map +1 -1
- package/docs/architecture/role-pack-authoring-guide.md +3 -1
- package/docs/architecture/role-pack-spec.md +2 -1
- package/docs/memora-api-reference.md +1349 -1276
- package/docs/memora-/345/215/207/347/272/247/346/214/207/345/215/227-4.x-/345/210/260-5.0.0.md +385 -0
- package/docs/memora-/346/216/245/345/205/245/346/214/207/345/215/227.md +87 -49
- package/docs/role-pack-/345/274/200/346/224/276/351/224/256/346/214/207/345/215/227.md +148 -148
- package/package.json +9 -4
- package/role-packs/README.md +41 -40
- package/role-packs/memora/345/212/251/346/211/213/rules.md +4 -4
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/manifest.json +1 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/persona.md +46 -46
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/rules.md +16 -16
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/emotion-wave.md +46 -46
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/foreshadow.md +29 -29
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/outline-expand.md +73 -48
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/project-init/scripts/init-novel-project.mjs +445 -441
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/story-bible.md +62 -62
- package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/manifest.json +1 -0
- package/dist/agent/managers/dedupManager.d.ts +0 -85
- package/dist/agent/managers/dedupManager.d.ts.map +0 -1
- package/dist/agent/managers/dedupManager.js +0 -248
- package/dist/agent/managers/dedupManager.js.map +0 -1
- package/dist/agent/managers/goalConsistencyChecker.d.ts +0 -42
- package/dist/agent/managers/goalConsistencyChecker.d.ts.map +0 -1
- package/dist/agent/managers/goalConsistencyChecker.js +0 -178
- package/dist/agent/managers/goalConsistencyChecker.js.map +0 -1
- package/dist/agent/managers/llmJudgeHelper.d.ts +0 -21
- package/dist/agent/managers/llmJudgeHelper.d.ts.map +0 -1
- package/dist/agent/managers/llmJudgeHelper.js +0 -32
- package/dist/agent/managers/llmJudgeHelper.js.map +0 -1
- package/dist/agent/managers/memoryAdvisor.d.ts +0 -105
- package/dist/agent/managers/memoryAdvisor.d.ts.map +0 -1
- package/dist/agent/managers/memoryAdvisor.js +0 -322
- package/dist/agent/managers/memoryAdvisor.js.map +0 -1
- package/dist/agent/managers/memoryGovernance.d.ts +0 -24
- package/dist/agent/managers/memoryGovernance.d.ts.map +0 -1
- package/dist/agent/managers/memoryGovernance.js +0 -46
- package/dist/agent/managers/memoryGovernance.js.map +0 -1
- package/dist/memory/governance.d.ts +0 -17
- package/dist/memory/governance.d.ts.map +0 -1
- package/dist/memory/governance.js +0 -17
- package/dist/memory/governance.js.map +0 -1
- package/dist/memory/projectRegistry.d.ts +0 -47
- package/dist/memory/projectRegistry.d.ts.map +0 -1
- package/dist/memory/projectRegistry.js +0 -151
- package/dist/memory/projectRegistry.js.map +0 -1
- package/dist/utils/recallDefaults.d.ts +0 -16
- package/dist/utils/recallDefaults.d.ts.map +0 -1
- package/dist/utils/recallDefaults.js +0 -16
- package/dist/utils/recallDefaults.js.map +0 -1
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 目标一致性校验器(目标版本一致性校验)。
|
|
3
|
-
* 两层校验:确定性层(关键约束提取 + 文本相似度)+ LLM 层(可选,仅对需确认场景生成解释)。
|
|
4
|
-
* 关键约束由确定性规则提取而非 LLM(防自我引用)。漂移等级:same(>0.7 无需确认)/confirm(0.4-0.7 建议确认)/drift(<0.4 需确认)。
|
|
5
|
-
*/
|
|
6
|
-
/** 约束关键词单一真源:提取 pattern(全文匹配)与剥离前缀(checkConstraintsConsistent 用)共用,防双列表漂移 */
|
|
7
|
-
const CONSTRAINT_KEYWORDS = [
|
|
8
|
-
'必须',
|
|
9
|
-
'不能',
|
|
10
|
-
'需要',
|
|
11
|
-
'确保',
|
|
12
|
-
'禁止',
|
|
13
|
-
'只能',
|
|
14
|
-
'至少',
|
|
15
|
-
'不允许',
|
|
16
|
-
'应当',
|
|
17
|
-
'不得',
|
|
18
|
-
];
|
|
19
|
-
/** 目标一致性校验器:纯函数式(无状态无副作用),SessionManager / Agent 层直接可用,不依赖外部服务 */
|
|
20
|
-
export class GoalConsistencyChecker {
|
|
21
|
-
/** 提取关键约束:从目标描述中按确定性规则提取"必须/不能/需要/确保"等关键词句段(不依赖 LLM 防自我引用),去重返回 */
|
|
22
|
-
extractConstraints(goal) {
|
|
23
|
-
if (!goal || goal.trim() === '')
|
|
24
|
-
return [];
|
|
25
|
-
const constraints = [];
|
|
26
|
-
// 约束关键词匹配模式——由 CONSTRAINT_KEYWORDS 单一真源生成(全文匹配)
|
|
27
|
-
const constraintPatterns = CONSTRAINT_KEYWORDS.map((kw) => new RegExp(`${kw}[^,。!?;\n,;.!?]*`, 'g'));
|
|
28
|
-
for (const pattern of constraintPatterns) {
|
|
29
|
-
const matches = goal.match(pattern);
|
|
30
|
-
if (matches) {
|
|
31
|
-
constraints.push(...matches.map((m) => m.trim()));
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
// 去重
|
|
35
|
-
return [...new Set(constraints)];
|
|
36
|
-
}
|
|
37
|
-
/** 计算文本相似度:长文本(>20 字符)用 Jaccard,短文本用字符级 bigram(对短文本更敏感) */
|
|
38
|
-
computeSimilarity(a, b) {
|
|
39
|
-
if (!a && !b)
|
|
40
|
-
return 1;
|
|
41
|
-
if (!a || !b)
|
|
42
|
-
return 0;
|
|
43
|
-
const aTrim = a.trim();
|
|
44
|
-
const bTrim = b.trim();
|
|
45
|
-
if (aTrim === bTrim)
|
|
46
|
-
return 1;
|
|
47
|
-
// 短文本:字符级 bigram(对短文本更敏感)
|
|
48
|
-
if (aTrim.length <= 20 || bTrim.length <= 20) {
|
|
49
|
-
return this.bigramSimilarity(aTrim, bTrim);
|
|
50
|
-
}
|
|
51
|
-
// 长文本:Jaccard
|
|
52
|
-
return this.jaccardSimilarity(aTrim, bTrim);
|
|
53
|
-
}
|
|
54
|
-
/** 执行一致性校验:提取约束 → 算相似度定漂移等级(>0.7 same / >=0.4 confirm / else drift)→ 检查约束是否仍满足 */
|
|
55
|
-
checkConsistency(mainGoal, newGoal) {
|
|
56
|
-
const constraints = this.extractConstraints(mainGoal);
|
|
57
|
-
const similarity = this.computeSimilarity(mainGoal, newGoal);
|
|
58
|
-
// 确定漂移等级
|
|
59
|
-
let level;
|
|
60
|
-
if (similarity > 0.7) {
|
|
61
|
-
level = 'same';
|
|
62
|
-
}
|
|
63
|
-
else if (similarity >= 0.4) {
|
|
64
|
-
level = 'confirm';
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
level = 'drift';
|
|
68
|
-
}
|
|
69
|
-
// 检查约束一致性
|
|
70
|
-
const { constraintsConsistent, conflictExplanation } = this.checkConstraintsConsistent(constraints, newGoal);
|
|
71
|
-
return {
|
|
72
|
-
level,
|
|
73
|
-
similarity,
|
|
74
|
-
constraints,
|
|
75
|
-
constraintsConsistent,
|
|
76
|
-
conflictExplanation,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
/** 检查约束在新目标是否仍满足:对每条约束提取核心词,任一命中即视为满足;全不满足则标记冲突 */
|
|
80
|
-
checkConstraintsConsistent(constraints, newGoal) {
|
|
81
|
-
if (constraints.length === 0) {
|
|
82
|
-
return { constraintsConsistent: true };
|
|
83
|
-
}
|
|
84
|
-
const conflictConstraints = [];
|
|
85
|
-
for (const constraint of constraints) {
|
|
86
|
-
// 提取约束核心词并检查新目标是否包含
|
|
87
|
-
const keywords = this.extractKeywords(constraint);
|
|
88
|
-
const satisfied = keywords.some((k) => newGoal.includes(k));
|
|
89
|
-
if (!satisfied) {
|
|
90
|
-
conflictConstraints.push(constraint);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
if (conflictConstraints.length > 0) {
|
|
94
|
-
return {
|
|
95
|
-
constraintsConsistent: false,
|
|
96
|
-
conflictExplanation: `以下约束在新目标中未体现:${conflictConstraints.join(';')}`,
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
return { constraintsConsistent: true };
|
|
100
|
-
}
|
|
101
|
-
/** 提取约束核心词:去除标记词保留核心名词短语(如"必须使用TypeScript" → "使用TypeScript"),再按分隔符切分;剥离前缀由 CONSTRAINT_KEYWORDS 生成 */
|
|
102
|
-
extractKeywords(constraint) {
|
|
103
|
-
const cleaned = constraint
|
|
104
|
-
.replace(new RegExp(`^(${CONSTRAINT_KEYWORDS.join('|')})`), '')
|
|
105
|
-
.trim();
|
|
106
|
-
const parts = cleaned.split(/[,,、\s]+/).filter(Boolean);
|
|
107
|
-
return parts.length > 0 ? parts : [cleaned];
|
|
108
|
-
}
|
|
109
|
-
/** Jaccard 相似度:分词后交集/并集。分词策略:中文字符逐字 + 英文单词 + 数字 */
|
|
110
|
-
jaccardSimilarity(a, b) {
|
|
111
|
-
const tokensA = this.tokenize(a);
|
|
112
|
-
const tokensB = this.tokenize(b);
|
|
113
|
-
if (tokensA.size === 0 && tokensB.size === 0)
|
|
114
|
-
return 1;
|
|
115
|
-
if (tokensA.size === 0 || tokensB.size === 0)
|
|
116
|
-
return 0;
|
|
117
|
-
let intersection = 0;
|
|
118
|
-
for (const token of tokensA) {
|
|
119
|
-
if (tokensB.has(token))
|
|
120
|
-
intersection++;
|
|
121
|
-
}
|
|
122
|
-
const union = tokensA.size + tokensB.size - intersection;
|
|
123
|
-
return union > 0 ? intersection / union : 0;
|
|
124
|
-
}
|
|
125
|
-
/** 字符级 bigram 相似度:拆相邻字符对求交集/并集,适用于短文本 */
|
|
126
|
-
bigramSimilarity(a, b) {
|
|
127
|
-
const bigramsA = this.getBigrams(a);
|
|
128
|
-
const bigramsB = this.getBigrams(b);
|
|
129
|
-
if (bigramsA.size === 0 && bigramsB.size === 0)
|
|
130
|
-
return 1;
|
|
131
|
-
if (bigramsA.size === 0 || bigramsB.size === 0)
|
|
132
|
-
return 0;
|
|
133
|
-
let intersection = 0;
|
|
134
|
-
for (const bigram of bigramsA) {
|
|
135
|
-
if (bigramsB.has(bigram))
|
|
136
|
-
intersection++;
|
|
137
|
-
}
|
|
138
|
-
const union = bigramsA.size + bigramsB.size - intersection;
|
|
139
|
-
return union > 0 ? intersection / union : 0;
|
|
140
|
-
}
|
|
141
|
-
/** 分词:提取中文字符(逐字,对中文更敏感)+ 英文单词(小写)+ 数字;零外部依赖 */
|
|
142
|
-
tokenize(text) {
|
|
143
|
-
const tokens = new Set();
|
|
144
|
-
// 中文字符序列(逐字作为 token)
|
|
145
|
-
const chineseChars = text.match(/[\u4e00-\u9fff\u3400-\u4dbf]+/g);
|
|
146
|
-
if (chineseChars) {
|
|
147
|
-
for (const seq of chineseChars) {
|
|
148
|
-
for (const char of seq) {
|
|
149
|
-
tokens.add(char);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
// 英文单词(小写归一化,大小写不敏感)
|
|
154
|
-
const englishWords = text.match(/[a-zA-Z_][a-zA-Z0-9_]*/g);
|
|
155
|
-
if (englishWords) {
|
|
156
|
-
for (const word of englishWords) {
|
|
157
|
-
tokens.add(word.toLowerCase());
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
// 数字
|
|
161
|
-
const numbers = text.match(/\d+/g);
|
|
162
|
-
if (numbers) {
|
|
163
|
-
for (const num of numbers) {
|
|
164
|
-
tokens.add(num);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
return tokens;
|
|
168
|
-
}
|
|
169
|
-
/** 获取字符级 bigram:拆相邻字符对(如 "TypeScript" → ["Ty","yp",...]) */
|
|
170
|
-
getBigrams(text) {
|
|
171
|
-
const bigrams = new Set();
|
|
172
|
-
for (let i = 0; i < text.length - 1; i++) {
|
|
173
|
-
bigrams.add(text.slice(i, i + 2));
|
|
174
|
-
}
|
|
175
|
-
return bigrams;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
//# sourceMappingURL=goalConsistencyChecker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"goalConsistencyChecker.js","sourceRoot":"","sources":["../../../src/agent/managers/goalConsistencyChecker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LLM Judge 高阶辅助函数:封装"流式累积 → parseLlmJson → 判 null → 抛 configError"三件套。
|
|
3
|
-
* 由 memoryInspector / memoryAdvisor 复用,消除重复。
|
|
4
|
-
* 统一异常:解析失败抛 configError(MemoraError 体系);类型参数化,调用方指定返回类型 T。
|
|
5
|
-
*/
|
|
6
|
-
import type { LlmProvider, Message } from '../../llm/provider.js';
|
|
7
|
-
/** LLM Judge 调用选项(流式 + 超时 + 取消信号) */
|
|
8
|
-
export interface LlmJudgeOptions {
|
|
9
|
-
/** 流式响应最大 token 数(控制单次调用成本) */
|
|
10
|
-
maxTokens: number;
|
|
11
|
-
/** LLM 调用超时(ms),超时中止请求 */
|
|
12
|
-
timeoutMs: number;
|
|
13
|
-
/** 可选取消信号(与 timeoutMs 独立,任一触发即中止) */
|
|
14
|
-
signal?: AbortSignal;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* 调用 LLM 流式累积响应并解析为 JSON 对象 T。
|
|
18
|
-
* 流式累积 → parseLlmJson(容错剥离代码块/修复错误/正则兜底)→ 解析失败抛 configError。
|
|
19
|
-
*/
|
|
20
|
-
export declare function judgeWithLlm<T extends object>(provider: LlmProvider, messages: Message[], options: LlmJudgeOptions, errorTitle: string): Promise<T>;
|
|
21
|
-
//# sourceMappingURL=llmJudgeHelper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"llmJudgeHelper.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/llmJudgeHelper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAK9D,qCAAqC;AACrC,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,CAAC,SAAS,MAAM,EACjD,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC,CAoBZ"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LLM Judge 高阶辅助函数:封装"流式累积 → parseLlmJson → 判 null → 抛 configError"三件套。
|
|
3
|
-
* 由 memoryInspector / memoryAdvisor 复用,消除重复。
|
|
4
|
-
* 统一异常:解析失败抛 configError(MemoraError 体系);类型参数化,调用方指定返回类型 T。
|
|
5
|
-
*/
|
|
6
|
-
import { parseLlmJson } from '../../utils/json.js';
|
|
7
|
-
import { configError } from '../../utils/errors.js';
|
|
8
|
-
import { accumulateStream } from '../../agent/managers/streamAccumulator.js';
|
|
9
|
-
/**
|
|
10
|
-
* 调用 LLM 流式累积响应并解析为 JSON 对象 T。
|
|
11
|
-
* 流式累积 → parseLlmJson(容错剥离代码块/修复错误/正则兜底)→ 解析失败抛 configError。
|
|
12
|
-
*/
|
|
13
|
-
export async function judgeWithLlm(provider, messages, options, errorTitle) {
|
|
14
|
-
// 流式累积 LLM 响应(复用 accumulateStream,消除重复)
|
|
15
|
-
const llmResponse = await accumulateStream(provider, messages, {
|
|
16
|
-
maxTokens: options.maxTokens,
|
|
17
|
-
temperature: 0,
|
|
18
|
-
timeoutMs: options.timeoutMs,
|
|
19
|
-
signal: options.signal,
|
|
20
|
-
});
|
|
21
|
-
// 解析 JSON,失败抛 configError(统一 MemoraError 体系)
|
|
22
|
-
const parsed = parseLlmJson(llmResponse.trim());
|
|
23
|
-
if (!parsed) {
|
|
24
|
-
throw configError(errorTitle, 'LLM 返回内容不是有效的 JSON(parseLlmJson 解析失败)', [
|
|
25
|
-
'检查 backgroundProvider 是否注入并可用',
|
|
26
|
-
'检查 LLM 模型是否输出预期的 JSON 结构',
|
|
27
|
-
'若问题持续,可降低候选数量或调整 prompt',
|
|
28
|
-
]);
|
|
29
|
-
}
|
|
30
|
-
return parsed;
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=llmJudgeHelper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"llmJudgeHelper.js","sourceRoot":"","sources":["../../../src/agent/managers/llmJudgeHelper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAYzE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAqB,EACrB,QAAmB,EACnB,OAAwB,EACxB,UAAkB;IAElB,wCAAwC;IACxC,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE;QAC7D,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,6CAA6C;IAC7C,MAAM,MAAM,GAAG,YAAY,CAAI,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,WAAW,CAAC,UAAU,EAAE,uCAAuC,EAAE;YACrE,+BAA+B;YAC/B,0BAA0B;YAC1B,yBAAyB;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 记忆顾问 — sourceHealth()(源健康诊断)+ suggest()(关联推荐)+ detectConflicts()(L3 冲突检测)。
|
|
3
|
-
* 纯只读分析计算,仅依赖 IMemoryStorage 不修改状态;同步返回不调 LLM。
|
|
4
|
-
* L3 冲突检测:异步调 LLM 判断记忆间语义冲突,仅检测不修复(降级哪条由用户决策)。
|
|
5
|
-
*/
|
|
6
|
-
import type { Memory } from '../../memory/types.js';
|
|
7
|
-
import type { IMemoryStorage } from '../../memory/storageInterface.js';
|
|
8
|
-
import type { LlmProvider } from '../../llm/provider.js';
|
|
9
|
-
/** 单个 source 的事实观测指标(纯事实,不做健康等级判定) */
|
|
10
|
-
export interface SourceHealthEntry {
|
|
11
|
-
source: string;
|
|
12
|
-
/** 记忆数量 */
|
|
13
|
-
count: number;
|
|
14
|
-
/** 距上次访问的天数(取该 source 中最近访问的记忆,冷记忆观测) */
|
|
15
|
-
daysSinceLastAccess: number;
|
|
16
|
-
}
|
|
17
|
-
/** 记忆源诊断报告(纯事实观测,不设健康等级——记忆健康由 supersede/命中体现) */
|
|
18
|
-
export interface SourceHealthReport {
|
|
19
|
-
/** 各 source 事实观测 */
|
|
20
|
-
sources: SourceHealthEntry[];
|
|
21
|
-
/** 诊断时间(ISO 8601) */
|
|
22
|
-
diagnosedAt: string;
|
|
23
|
-
}
|
|
24
|
-
/** 关联推荐选项 */
|
|
25
|
-
export interface SuggestOptions {
|
|
26
|
-
/** 返回数量上限(默认 5) */
|
|
27
|
-
limit?: number;
|
|
28
|
-
/** 排除的 source 标签(默认空数组——设定记忆已归角色包,不再参与召回排除) */
|
|
29
|
-
excludeSources?: string[];
|
|
30
|
-
}
|
|
31
|
-
/** 关联推荐结果 */
|
|
32
|
-
export interface SuggestHit {
|
|
33
|
-
/** 记忆唯一标识(source:name 格式) */
|
|
34
|
-
id: string;
|
|
35
|
-
name: string;
|
|
36
|
-
/** 来源标签 */
|
|
37
|
-
source: string;
|
|
38
|
-
/** 推荐分数(0-1,score 退役后为纯时效 recency) */
|
|
39
|
-
relevance: number;
|
|
40
|
-
/** 内容预览(截断到 120 字符) */
|
|
41
|
-
contentPreview: string;
|
|
42
|
-
/** 推荐理由 */
|
|
43
|
-
reason: string;
|
|
44
|
-
}
|
|
45
|
-
/** 单对记忆的冲突判断结果 */
|
|
46
|
-
export interface ConflictVerdict {
|
|
47
|
-
memoryA: Memory;
|
|
48
|
-
memoryB: Memory;
|
|
49
|
-
/** 是否存在语义冲突(true → 需用户决策降级哪条) */
|
|
50
|
-
hasConflict: boolean;
|
|
51
|
-
/** 冲突描述(hasConflict=true 时提供冲突点) */
|
|
52
|
-
conflictDescription?: string;
|
|
53
|
-
/** LLM 建议保留的记忆('a' / 'b' / 'both',仅供参考) */
|
|
54
|
-
recommendation?: 'a' | 'b' | 'both';
|
|
55
|
-
/** LLM 判断理由 */
|
|
56
|
-
reason: string;
|
|
57
|
-
}
|
|
58
|
-
/** 冲突检测报告(detectConflicts 返回值) */
|
|
59
|
-
export interface ConflictReport {
|
|
60
|
-
/** 扫描的候选记忆总数 */
|
|
61
|
-
scannedCount: number;
|
|
62
|
-
/** 检测的候选对数 */
|
|
63
|
-
pairCount: number;
|
|
64
|
-
/** LLM 判定为存在冲突的对数 */
|
|
65
|
-
conflictCount: number;
|
|
66
|
-
/** 冲突详情列表(供宿主 UI 展示和用户决策) */
|
|
67
|
-
conflicts: ConflictVerdict[];
|
|
68
|
-
/** 跳过原因(LLM 不可用 / 无候选对) */
|
|
69
|
-
skippedReason?: string;
|
|
70
|
-
}
|
|
71
|
-
/** 记忆顾问:与 MemoryInspector 分工(Inspector 直接数据查询,Advisor 分析计算:健康诊断 + 推荐排序 + 冲突检测) */
|
|
72
|
-
export declare class MemoryAdvisor {
|
|
73
|
-
private readonly index;
|
|
74
|
-
/** 后台 LLM Provider(可选,用于 L3 冲突检测,未注入时跳过) */
|
|
75
|
-
private readonly backgroundProvider;
|
|
76
|
-
/** 治理源列表(默认 GOVERNANCE_SOURCES;空治理源时推荐/冲突检测空转,测试可显式注入) */
|
|
77
|
-
private readonly sources;
|
|
78
|
-
constructor(index: IMemoryStorage, backgroundProvider?: LlmProvider | null, sources?: readonly string[]);
|
|
79
|
-
/**
|
|
80
|
-
* 记忆源健康诊断:逐 source 计算记忆数量 / 最近访问天数(纯事实观测)。
|
|
81
|
-
* 不设健康等级:记忆健康由 supersede(写时取代)/ 命中体现,
|
|
82
|
-
* 无需榜单级 status 判定(daysSinceLastAccess 作冷记忆观测)。
|
|
83
|
-
* 纯只读同步不调 LLM,用 getAllSources() 发现所有 source 标签(替代全量 search)。
|
|
84
|
-
*/
|
|
85
|
-
sourceHealth(): SourceHealthReport;
|
|
86
|
-
/**
|
|
87
|
-
* 关联推荐:不调 LLM 纯计算,综合 accessedAt(时效)+ source 多样性,
|
|
88
|
-
* 返回"相关但尚未直接搜索到"的记忆。query 提供时结合搜索命中推荐,省略时基于最近使用。
|
|
89
|
-
* relevance 为纯时效(recency)
|
|
90
|
-
*/
|
|
91
|
-
suggest(query?: string, options?: SuggestOptions): SuggestHit[];
|
|
92
|
-
/**
|
|
93
|
-
* 语义冲突检测:加载候选(每 source top 10)→ 同 source 两两配对(前 10 对)→ LLM 判断冲突。
|
|
94
|
-
* 仅检测不修复(不自动降级,冲突需用户决策);LLM 失败不阻塞;provider 未注入静默跳过。
|
|
95
|
-
*/
|
|
96
|
-
detectConflicts(signal?: AbortSignal): Promise<ConflictReport>;
|
|
97
|
-
/** 筛选同 source 内候选冲突对:按 source 分组两两配对,限制每 source 配对数避免 O(n²) 爆炸,总上限 10 对 */
|
|
98
|
-
private findConflictCandidates;
|
|
99
|
-
/**
|
|
100
|
-
* 调用 LLM 判断两条记忆是否冲突:结构化 JSON 输出(hasConflict+conflictDescription+recommendation+reason)。
|
|
101
|
-
* 流式累积/解析/异常封装委托 llmJudgeHelper.judgeWithLlm;失败抛 MemoraError 由调用方捕获跳过。
|
|
102
|
-
*/
|
|
103
|
-
private judgeConflict;
|
|
104
|
-
}
|
|
105
|
-
//# sourceMappingURL=memoryAdvisor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memoryAdvisor.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/memoryAdvisor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAKnE,OAAO,KAAK,EAAE,WAAW,EAAW,MAAM,mBAAmB,CAAC;AA6B9D,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,kDAAkD;AAClD,MAAM,WAAW,kBAAkB;IACjC,oBAAoB;IACpB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,qBAAqB;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,aAAa;AACb,MAAM,WAAW,cAAc;IAC7B,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,aAAa;AACb,MAAM,WAAW,UAAU;IACzB,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;CAChB;AAID,kBAAkB;AAClB,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,oCAAoC;IACpC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2CAA2C;IAC3C,cAAc,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC;IACpC,eAAe;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,kCAAkC;AAClC,MAAM,WAAW,cAAc;IAC7B,gBAAgB;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,2BAA2B;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,kFAAkF;AAClF,qBAAa,aAAa;IAOtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IANxB,4CAA4C;IAC5C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;gBAGzB,KAAK,EAAE,cAAc,EACtC,kBAAkB,GAAE,WAAW,GAAG,IAAW,EAC7C,OAAO,GAAE,SAAS,MAAM,EAAuB;IAQjD;;;;;OAKG;IACH,YAAY,IAAI,kBAAkB;IAsClC;;;;OAIG;IACH,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,UAAU,EAAE;IA6EnE;;;OAGG;IACG,eAAe,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IAwEpE,2EAA2E;IAC3E,OAAO,CAAC,sBAAsB;IA+B9B;;;OAGG;YACW,aAAa;CAiC5B"}
|