feat: Phase 3 世界书引擎移植 + EJS 支持

- 新增 task-worldinfo.js: 从 EW 移植世界书激活/分桶引擎
- 新增 task-ejs.js: 从 EW 移植 EJS 模板渲染引擎
- 新增 vendor/ejs.js: EJS runtime vendor
- prompt-builder.js: 改为异步, 接入 worldInfoBefore/After/atDepth
- prompt-profiles.js: 新增内置块 charDescription/userPersona/worldInfoBefore/After
- 更新 extractor/retriever/compressor/consolidator 接入新 builder
- st-context.js: 扩展 ST 上下文字段兜底
- 新增 tests/task-worldinfo.mjs: 世界书引擎测试
This commit is contained in:
Youzini-afk
2026-03-26 13:57:07 +08:00
parent 2f9524d993
commit d31c0325d3
12 changed files with 3963 additions and 93 deletions

View File

@@ -294,7 +294,7 @@ export async function consolidateMemories({
const userPrompt = userPromptSections.join("\n\n");
let decision;
const consolidationPromptBuild = buildTaskPrompt(settings, "consolidation", {
const consolidationPromptBuild = await buildTaskPrompt(settings, "consolidation", {
taskName: "consolidation",
candidateNodes: userPrompt,
candidateText: userPrompt,
@@ -315,7 +315,10 @@ export async function consolidateMemories({
maxRetries: 1,
signal,
taskType: "consolidation",
additionalMessages: consolidationPromptBuild.customMessages || [],
additionalMessages: [
...(consolidationPromptBuild.customMessages || []),
...(consolidationPromptBuild.additionalMessages || []),
],
});
} catch (e) {
if (isAbortError(e)) throw e;