import { config as loadEnv } from "dotenv"; import { eq } from "drizzle-orm"; import Module from "node:module"; loadEnv({ path: ".env.local" }); const moduleLoader = Module as typeof Module & { _load: (request: string, parent: NodeModule | null, isMain: boolean) => unknown; }; const originalLoad = moduleLoader._load; moduleLoader._load = function patchedServerOnlyLoad( this: typeof moduleLoader, request, parent, isMain ) { if (request === "server-only") { return {}; } return originalLoad.call(this, request, parent, isMain); }; const dryRun = process.argv.includes("--dry-run"); const force = process.argv.includes("--force"); async function main() { const dbModule = await import("../lib/db"); const schemaModule = await import("../lib/db/schema"); const workflowConfig = await import("../lib/agents/workflow-ui-config"); const previewImages = await import("../lib/agents/workflow-preview-images"); const { db } = dbModule; const { systemSettings } = schemaModule; const [setting] = await db .select({ value: systemSettings.value }) .from(systemSettings) .where(eq(systemSettings.key, workflowConfig.AGENT_WORKFLOW_UI_CONFIG_KEY)) .limit(1); if (!setting?.value) { console.log("No agent workflow UI config found."); return; } const normalized = workflowConfig.normalizeAgentWorkflowUiConfig(setting.value); const { config: optimized, summary } = await previewImages.optimizeAgentWorkflowUiConfigPreviewImages(normalized, { force, concurrency: 3, dryRun, }); console.log( JSON.stringify( { dryRun, force, summary, }, null, 2 ) ); if (dryRun) { return; } if (summary.optimized > 0) { await db .update(systemSettings) .set({ value: optimized, updatedAt: new Date(), }) .where(eq(systemSettings.key, workflowConfig.AGENT_WORKFLOW_UI_CONFIG_KEY)); console.log(`Updated ${summary.optimized} agent workflow preview images.`); } else { console.log("No preview image update needed."); } } main().catch((error) => { console.error(error); process.exit(1); });