import { AGENT_PRESET_LIBRARY_CONFIG_KEY, } from "@/lib/agents/preset-library-config"; import { AGENT_PSD_TEMPLATE_SECONDARY_CATEGORY_CONFIG_KEY, } from "@/lib/agents/psd-template-secondary-category-config"; import { AGENT_PSD_TEXT_COLOR_CONFIG_KEY, } from "@/lib/agents/psd-text-color-config"; import { AGENT_WORKFLOW_BRAND_MODEL_CONFIG_KEY, } from "@/lib/agents/workflow-brand-model-config"; import { AGENT_WORKFLOW_GOODS_INFO_API_CONFIG_KEY, } from "@/lib/agents/workflow-goods-info-config"; import { AGENT_WORKFLOW_MATERIAL_API_CONFIG_KEY, } from "@/lib/agents/workflow-material-config"; import { AGENT_WORKFLOW_SHOWCASE_CONFIG_KEY, } from "@/lib/agents/workflow-showcase-config"; import { AGENT_WORKFLOW_UI_CONFIG_KEY, } from "@/lib/agents/workflow-ui-config"; export const AGENT_WORKFLOW_SNAPSHOT_SCOPE = "agent-workflow"; export const SYSTEM_SETTING_SNAPSHOT_SCOPES = { [AGENT_WORKFLOW_SNAPSHOT_SCOPE]: [ AGENT_PRESET_LIBRARY_CONFIG_KEY, AGENT_WORKFLOW_UI_CONFIG_KEY, AGENT_WORKFLOW_MATERIAL_API_CONFIG_KEY, AGENT_WORKFLOW_GOODS_INFO_API_CONFIG_KEY, AGENT_WORKFLOW_BRAND_MODEL_CONFIG_KEY, AGENT_WORKFLOW_SHOWCASE_CONFIG_KEY, AGENT_PSD_TEXT_COLOR_CONFIG_KEY, AGENT_PSD_TEMPLATE_SECONDARY_CATEGORY_CONFIG_KEY, ], } as const; export type SystemSettingSnapshotScope = keyof typeof SYSTEM_SETTING_SNAPSHOT_SCOPES; export function getSystemSettingSnapshotScopeKeys( scope: SystemSettingSnapshotScope ) { return SYSTEM_SETTING_SNAPSHOT_SCOPES[scope]; } export function createSystemSettingSnapshotData( scope: SystemSettingSnapshotScope, valueByKey: ReadonlyMap ) { const keys = getSystemSettingSnapshotScopeKeys(scope); return Object.fromEntries(keys.map((key) => [key, valueByKey.get(key) ?? null])); } export function summarizeSystemSettingSnapshotData( data: Record ) { const entries = Object.entries(data); return { keyCount: entries.length, nonNullKeyCount: entries.filter(([, value]) => value !== null && value !== undefined).length, byteLength: Buffer.byteLength(JSON.stringify(data), "utf8"), }; }