Browse Source

feat: add client-side polling support to generateVideoExecutor

After the initial /api/generate response, check for polling flag and
enter pollGenerateTask loop instead of waiting on a single long request.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
handoff-20260429-1057
shrimbly 3 months ago
parent
commit
a111291de3
  1. 24
      src/store/execution/generateVideoExecutor.ts

24
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;

Loading…
Cancel
Save