67 lines
2.1 KiB
TypeScript
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"),
|
|
};
|
|
}
|