import { submitSeedanceDirectNative, pollSeedanceDirectNative, cancelSeedanceDirectNative } from './native-seedance.js'; import { submitVeoUseApiNative, pollVeoUseApiNative } from './native-veo.js'; import { submitRunwayUseApiNative, pollRunwayUseApiNative, cancelRunwayUseApiNative } from './native-runway.js'; import { submitDreaminaUseApiNative, pollDreaminaUseApiNative, cancelDreaminaUseApiNative } from './native-dreamina.js'; import { submitMagnificRestNative, pollMagnificRestNative, cancelMagnificRestNative } from './native-magnific.js'; import type { ProviderRouteId } from './provider-platform/types.js'; import type { VideoExecutionCancelResult, VideoExecutionPayload, VideoExecutionPollResult } from './types.js'; export async function runBuiltinProviderAdapter( route: ProviderRouteId, input: Record, options: { env?: NodeJS.ProcessEnv; } = {}, ): Promise { if (route === 'seedance-direct') { if (input.action === 'poll') { return pollSeedanceDirectNative({ outputDir: String(input.outputDir ?? ''), externalJobId: String(input.externalJobId ?? ''), workspaceRoot: String(input.workspaceRoot ?? ''), }, { env: options.env, }) as Promise; } if (input.action === 'cancel') { return cancelSeedanceDirectNative({ outputDir: String(input.outputDir ?? ''), externalJobId: String(input.externalJobId ?? ''), workspaceRoot: String(input.workspaceRoot ?? ''), }, { env: options.env, }) as Promise; } return submitSeedanceDirectNative(input as unknown as VideoExecutionPayload, { env: options.env, }); } if (route === 'veo-useapi') { if (input.action === 'poll') { return pollVeoUseApiNative({ outputDir: String(input.outputDir ?? ''), externalJobId: String(input.externalJobId ?? ''), }) as Promise; } if (input.action === 'cancel') { return { status: 'unsupported', externalJobId: String(input.externalJobId ?? '') || null, issues: ['veo-useapi native transport does not support cancel.'], rawResult: null, } satisfies VideoExecutionCancelResult; } return submitVeoUseApiNative(input as unknown as VideoExecutionPayload, { env: options.env, }); } if (route === 'runway-useapi') { if (input.action === 'poll') { return pollRunwayUseApiNative({ outputDir: String(input.outputDir ?? ''), externalJobId: String(input.externalJobId ?? ''), workspaceRoot: String(input.workspaceRoot ?? ''), }, { env: options.env, }) as Promise; } if (input.action === 'cancel') { return cancelRunwayUseApiNative({ outputDir: String(input.outputDir ?? ''), externalJobId: String(input.externalJobId ?? ''), workspaceRoot: String(input.workspaceRoot ?? ''), }) as Promise; } return submitRunwayUseApiNative(input as unknown as VideoExecutionPayload, { env: options.env, }); } if (route === 'dreamina-useapi') { if (input.action === 'poll') { return pollDreaminaUseApiNative({ outputDir: String(input.outputDir ?? ''), externalJobId: String(input.externalJobId ?? ''), workspaceRoot: String(input.workspaceRoot ?? ''), }, { env: options.env, }) as Promise; } if (input.action === 'cancel') { return cancelDreaminaUseApiNative({ outputDir: String(input.outputDir ?? ''), externalJobId: String(input.externalJobId ?? ''), workspaceRoot: String(input.workspaceRoot ?? ''), }) as Promise; } return submitDreaminaUseApiNative(input as unknown as VideoExecutionPayload, { env: options.env, }); } if (route === 'magnific-rest') { if (input.action === 'poll') { return pollMagnificRestNative({ outputDir: String(input.outputDir ?? ''), externalJobId: String(input.externalJobId ?? ''), workspaceRoot: String(input.workspaceRoot ?? ''), }, { env: options.env, }) as Promise; } if (input.action === 'cancel') { return cancelMagnificRestNative({ outputDir: String(input.outputDir ?? ''), externalJobId: String(input.externalJobId ?? ''), workspaceRoot: String(input.workspaceRoot ?? ''), }) as Promise; } return submitMagnificRestNative(input as unknown as VideoExecutionPayload, { env: options.env, }); } throw new Error(`No native transport is implemented for ${route}.`); }