Rework story engine flow and reorganize project docs
Some checks failed
CI / verify (push) Has been cancelled

This commit is contained in:
2026-04-06 23:19:00 +08:00
parent d678929064
commit ddcb5d5c8c
241 changed files with 19805 additions and 2478 deletions

View File

@@ -0,0 +1,57 @@
import type { InventoryItem, ThreadContract } from '../../types';
export function buildNarrativeDocument(params: {
contract: ThreadContract;
titleSeed?: string;
}) {
const title = params.titleSeed || `${params.contract.threadId}调查简札`;
const currentStep = params.contract.steps[params.contract.visibleStage] ?? params.contract.steps[0];
const relatedThreadIds = [params.contract.threadId];
return {
id: `document:${params.contract.id}`,
category: '文书',
name: title,
quantity: 1,
rarity: 'rare',
tags: ['document', 'relic'],
description: `${title} 里记着当前线程的阶段性摘要与下一步线索。`,
runtimeMetadata: {
origin: 'ai_compiled',
generationChannel: 'quest_reward',
seedKey: `document:${params.contract.id}`,
sourceReason: `${params.contract.threadId} 当前进入了新的阶段。`,
storyFingerprint: {
visibleClue: currentStep?.revealText ?? `${title} 里写着当前线程的进展。`,
witnessMark: `${title} 记录着 ${params.contract.threadId} 这一线被谁、在何处继续推了下去。`,
unresolvedQuestion:
currentStep?.title
?? `${params.contract.threadId} 接下来还要如何继续推进?`,
currentAppearanceReason: `${params.contract.threadId} 当前进入了新的阶段。`,
relatedThreadIds,
relatedScarIds: [],
reactionHooks: [params.contract.threadId],
},
},
} satisfies InventoryItem;
}
export function compileDocumentKnowledgeFacts(params: {
document: InventoryItem;
contract: ThreadContract;
}) {
return [
{
id: `document-fact:${params.document.id}`,
title: `${params.document.name}的记录`,
content: params.contract.steps[params.contract.visibleStage]?.revealText ?? params.contract.threadId,
ownerActorIds: [],
relatedThreadIds: [params.contract.threadId],
relatedScarIds: [],
sourceType: 'document',
visibility: 'discoverable',
sayability: 'direct',
aliases: [params.document.name],
},
];
}