Initial WallMuse project

This commit is contained in:
fenglee
2026-05-09 09:12:41 +00:00
commit 3ea7d29827
91 changed files with 13136 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
import { JsonWallMuseDb } from "../packages/db/src/json-store.js";
import type { GenerationWorkerJobData } from "../packages/db/src/json-store.js";
import { GenerationProcessor } from "../apps/worker-generation/src/processor.js";
const db = JsonWallMuseDb.fromEnv();
const processor = new GenerationProcessor(db);
const jobData: GenerationWorkerJobData = { groupId: crypto.randomUUID(), taskId: crypto.randomUUID(), userId: "user_mock", mode: "text_to_image", prompt: "futuristic city at sunrise, clean wallpaper composition", negativePrompt: "text, logo, watermark", resolution: "2k", providerId: "00000000-0000-4000-8000-000000000001", providerSlug: "mock", modelId: "00000000-0000-4000-8000-000000000101", modelSlug: "mock-wallpaper-v1", seed: 42 };
await db.seedQueuedGeneration(jobData);
console.log(`queued group=${jobData.groupId} task=${jobData.taskId}`);
await processor.process({ data: jobData, updateProgress: async (progress: number) => console.log(`progress=${progress}`) } as never);
const state = await db.read();
const group = state.generationGroups.find((item) => item.id === jobData.groupId);
const assets = group?.assets ?? [];
const logs = state.providerCallLogs.filter((item) => item.groupId === jobData.groupId);
console.log(`final status=${group?.status}`);
console.log(`assets=${assets.map((asset) => `${asset.kind}:${asset.status}`).join(",")}`);
console.log(`provider_call_logs=${logs.length}`);
if (group?.status !== "succeeded") throw new Error(`Expected succeeded, received ${group?.status ?? "missing"}`);
if (!["master", "landscape", "portrait"].every((kind) => assets.some((asset) => asset.kind === kind && asset.status === "active"))) throw new Error("Expected active master, landscape and portrait assets");
if (logs.length < 3 || !logs.every((log) => log.status === "succeeded")) throw new Error("Expected succeeded provider_call_logs for each generated asset");