1
This commit is contained in:
@@ -1,13 +1,39 @@
|
||||
import { buildCustomWorldProfileFromAgentDraft } from '../customWorldAgentDraftResult';
|
||||
import type { CustomWorldAgentSessionSnapshot } from '../../../packages/shared/src/contracts/customWorldAgent';
|
||||
import { normalizeCustomWorldProfileRecord } from '../../data/customWorldLibrary';
|
||||
import type { CustomWorldProfile } from '../../types';
|
||||
|
||||
/**
|
||||
* Phase 5 起结果页只消费服务端回传的 result preview。
|
||||
* 前端不再承担 session draft -> runtime profile 的本地兼容编译职责。
|
||||
*/
|
||||
export function buildCustomWorldProfileFromResultPreview(
|
||||
resultPreview: CustomWorldAgentSessionSnapshot['resultPreview'] | null | undefined,
|
||||
): CustomWorldProfile | null {
|
||||
return normalizeCustomWorldProfileRecord(resultPreview?.preview ?? null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 统一“从 session 取结果页 profile”的主入口。
|
||||
* Phase 5 后主链没有 preview 就视为服务端未准备完成,而不是继续做前端本地编译。
|
||||
*/
|
||||
export function buildCustomWorldProfileFromAgentSession(
|
||||
session: CustomWorldAgentSessionSnapshot | null | undefined,
|
||||
): CustomWorldProfile | null {
|
||||
return buildCustomWorldProfileFromResultPreview(session?.resultPreview);
|
||||
}
|
||||
|
||||
/**
|
||||
* 这是工作包 A 提供的新命名兼容层。
|
||||
* 当前仍复用旧的前端草稿编译逻辑,后续 Phase 3 会继续把结果预览编译后移到服务端。
|
||||
* Phase 3 后该适配层只负责:
|
||||
* 1. 把服务端 resultPreview 转成前端 view model
|
||||
* 2. 保持前端 session 读模型入口稳定
|
||||
*/
|
||||
export const rpgCreationPreviewAdapter = {
|
||||
buildPreviewFromAgentDraft: buildCustomWorldProfileFromAgentDraft,
|
||||
buildPreviewFromSession: buildCustomWorldProfileFromAgentSession,
|
||||
buildPreviewFromResultPreview: buildCustomWorldProfileFromResultPreview,
|
||||
};
|
||||
|
||||
export {
|
||||
buildCustomWorldProfileFromAgentDraft as buildRpgCreationPreviewFromAgentDraft,
|
||||
buildCustomWorldProfileFromAgentSession as buildRpgCreationPreviewFromSession,
|
||||
buildCustomWorldProfileFromResultPreview as buildRpgCreationPreviewFromResultPreview,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user