2026-05-29 16:53:19 +08:00

67 lines
2.1 KiB
TypeScript

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<string, unknown>
) {
const keys = getSystemSettingSnapshotScopeKeys(scope);
return Object.fromEntries(keys.map((key) => [key, valueByKey.get(key) ?? null]));
}
export function summarizeSystemSettingSnapshotData(
data: Record<string, unknown>
) {
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"),
};
}