diff --git a/src/store/execution/generateVideoExecutor.ts b/src/store/execution/generateVideoExecutor.ts index 140eb2a3..077857e1 100644 --- a/src/store/execution/generateVideoExecutor.ts +++ b/src/store/execution/generateVideoExecutor.ts @@ -7,6 +7,7 @@ import type { GenerateVideoNodeData } from "@/types"; import { buildGenerateHeaders } from "@/store/utils/buildApiHeaders"; +import { pollGenerateTask } from "./pollTaskCompletion"; import type { NodeExecutionContext } from "./types"; export interface GenerateVideoOptions { @@ -123,7 +124,28 @@ export async function executeGenerateVideo( throw new Error(errorMessage); } - const result = await response.json(); + let result = await response.json(); + + // Handle polling response (long-running Kie tasks) + if (result.polling) { + result = await pollGenerateTask({ + taskId: result.taskId, + provider: result.pollProvider, + modelId: result.pollModelId, + modelName: result.pollModelName, + mediaType: result.pollMediaType, + headers, + signal, + }); + + if (!result.success) { + updateNodeData(node.id, { + status: "error", + error: result.error || "Generation failed", + }); + throw new Error(result.error || "Generation failed"); + } + } // Handle video response (video or videoUrl field) const videoData = result.video || result.videoUrl;