/** * 设置 → 个性化(TODO 13)的持久化与运行链路。 * * REA 依据(WorkBuddy 5.8.3,设置窗口 900×680): * - ev_af920edf33af5e811d58f05dad15210b29cd891f28e0fa74f6b18d63212241b1(浅色顶部 DOM/layout/computed style + 模块 CSS) * - ev_88af0774005c02e9c75284ade2be45de4943ee5aaf73fe5b13ac8a38b85be786(深色同页) * - ev_4f4f76054a930a186199ee28a5f0169f7de48a05a295b8e9eb630c796f07be4a(最终浅色顶部) * * 选项表、默认人设与个性化上下文拼装放在 @shared/personalization(纯函数,可离线回归); * 本模块只负责读写 config.json 的 personalization 字段。 */ import type { PersonalizationPatch, PersonalizationSettings } from '@shared/types' import { normalizePersonalization } from '@shared/personalization' import { getStoredPersonalization, setStoredPersonalization } from './config' export { buildPersonalizationPrompt, DEFAULT_PERSONA, DEFAULT_PERSONALIZATION, TONE_OPTIONS } from '@shared/personalization' export { normalizePersonalization } from '@shared/personalization' export async function getPersonalization(): Promise { return normalizePersonalization(await getStoredPersonalization()) } export async function updatePersonalization(patch: PersonalizationPatch): Promise { const current = await getPersonalization() const next = normalizePersonalization({ ...current, ...patch }) await setStoredPersonalization(next) return next }