fix: restore legacy prompt metadata init

This commit is contained in:
Youzini-afk
2026-03-25 23:26:22 +08:00
parent 54add7e2d9
commit 643637f2be
3 changed files with 33 additions and 8 deletions

View File

@@ -340,6 +340,7 @@ export function createDefaultTaskProfiles() {
}
export function createDefaultTaskProfile(taskType) {
const legacyPromptField = LEGACY_PROMPT_FIELD_MAP[taskType];
const defaults = DEFAULT_TASK_BLOCKS[taskType] || {};
return {
id: DEFAULT_PROFILE_ID,

View File

@@ -30,7 +30,22 @@ const extractProfile = getActiveTaskProfile(
assert.equal(extractProfile.taskType, "extract");
assert.equal(extractProfile.id, "default");
assert.ok(Array.isArray(extractProfile.blocks));
assert.equal(extractProfile.blocks[0].type, "legacyPrompt");
assert.equal(extractProfile.blocks.length, 3);
assert.deepEqual(
extractProfile.blocks.map((block) => block.name),
["角色定义", "输出格式", "行为规则"],
);
assert.ok(
extractProfile.blocks.every((block) => block.type === "custom"),
);
assert.equal(
extractProfile.metadata.legacyPromptField,
"extractPrompt",
);
assert.equal(
extractProfile.metadata.legacyPromptSnapshot,
"旧提取提示",
);
const defaults = createDefaultTaskProfiles();
assert.ok(defaults.extract.profiles.length > 0);

View File

@@ -51,12 +51,17 @@ const activeProfile = getActiveTaskProfile(
"extract",
);
assert.equal(activeProfile.name, "激进提取");
assert.equal(activeProfile.blocks.length, 3);
assert.equal(activeProfile.blocks[1].type, "builtin");
assert.equal(activeProfile.blocks[1].sourceKey, "userMessage");
assert.equal(activeProfile.blocks[1].injectionMode, "prepend");
assert.equal(activeProfile.blocks[2].type, "custom");
assert.equal(activeProfile.blocks[2].role, "user");
assert.equal(activeProfile.blocks.length, 5);
const builtinBlock = activeProfile.blocks.find(
(block) => block.type === "builtin" && block.sourceKey === "userMessage",
);
const customBlock = activeProfile.blocks.find(
(block) => block.type === "custom" && block.name === "补充说明",
);
assert.ok(builtinBlock);
assert.equal(builtinBlock.injectionMode, "prepend");
assert.ok(customBlock);
assert.equal(customBlock.role, "user");
assert.equal(activeProfile.regex.localRules.length, 1);
assert.equal(activeProfile.regex.localRules[0].script_name, "裁边");
@@ -72,7 +77,11 @@ assert.equal(exported.profile.name, "激进提取");
const imported = importTaskProfile(updatedProfiles, JSON.stringify(exported));
assert.equal(imported.taskType, "extract");
assert.notEqual(imported.profile.id, clonedProfile.id);
assert.equal(imported.profile.blocks[1].sourceKey, "userMessage");
assert.ok(
imported.profile.blocks.some(
(block) => block.type === "builtin" && block.sourceKey === "userMessage",
),
);
const restoredProfiles = restoreDefaultTaskProfile(imported.taskProfiles, "extract");
const restoredActive = getActiveTaskProfile(