import type { ImageEditRequest, ImageProvider, ProviderPollResult, ProviderSubmitResult, } from "./provider.js"; /** * Adapter testowy — deterministyczny, zero kosztu, TYLKO dev/test. * Nie udaje wyniku AI: zwraca pierwszą referencję jako "wynik", * z jawnym oznaczeniem w provenance (origin pozostaje test_adapter). * Używany do testów procesu (job → poll → asset → approval), * nie do oceny jakości generacji. */ export function createTestProvider(): ImageProvider & { _requests: Map } { const requests = new Map(); return { name: "test", _requests: requests, capabilities: { imageEdit: true, imageToVideo: false, maxReferenceImages: 4 }, unitCostUsd: 0, async submitImageEdit(req: ImageEditRequest): Promise { const requestId = `test_req_${requests.size + 1}`; requests.set(requestId, { req, ticks: 0 }); return { requestId }; }, async poll(requestId: string): Promise { const r = requests.get(requestId); if (!r) return { status: "failed", error: "unknown request" }; r.ticks += 1; if (r.ticks < 1) return { status: "pending" }; return { status: "done", outputUrls: r.req.images.slice(0, 1) }; }, }; }