@vibeframe/cli 0.115.5 → 0.115.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/_shared/edit/jump-cut.d.ts +2 -2
- package/dist/commands/_shared/image-jobs.d.ts +21 -0
- package/dist/commands/_shared/openai-image.d.ts +3 -36
- package/dist/commands/_shared/status-jobs.d.ts +5 -0
- package/dist/commands/_shared/transcription.d.ts +16 -0
- package/dist/commands/_shared/translate-texts.d.ts +30 -0
- package/dist/commands/_shared/translate-texts.test.d.ts +1 -0
- package/dist/commands/_shared/tts-resolve.d.ts +7 -1
- package/dist/commands/_shared/video-jobs.d.ts +34 -0
- package/dist/commands/ai-audio.d.ts +24 -0
- package/dist/commands/ai-image.d.ts +25 -7
- package/dist/commands/ai-video.d.ts +37 -11
- package/dist/commands/ai-video.network.test.d.ts +1 -0
- package/dist/commands/generate/image.d.ts +4 -3
- package/dist/commands/generate/music.d.ts +5 -0
- package/dist/commands/generate/sound-effect.d.ts +7 -1
- package/dist/commands/generate/speech.d.ts +12 -3
- package/dist/commands/generate/video-cancel.d.ts +2 -3
- package/dist/commands/generate/video-extend.d.ts +3 -3
- package/dist/commands/generate/video.d.ts +4 -3
- package/dist/commands/output.d.ts +7 -0
- package/dist/index.js +26907 -28497
- package/dist/testing/fake-provider-network.d.ts +7 -38
- package/dist/tools/manifest/audio.d.ts +4 -1
- package/dist/tools/manifest/edit.d.ts +18 -15
- package/dist/tools/manifest/generate.d.ts +43 -31
- package/dist/tools/manifest/index.js +27129 -28518
- package/dist/tools/manifest/inspect.d.ts +4 -4
- package/dist/tools/manifest/remix.d.ts +4 -4
- package/dist/tools/manifest/scene.d.ts +8 -8
- package/dist/tools/manifest/timeline.d.ts +2 -2
- package/dist/utils/audio-file.d.ts +7 -0
- package/dist/utils/upload-host.d.ts +11 -0
- package/package.json +3 -3
- package/dist/commands/_shared/video-providers.d.ts +0 -44
- package/dist/commands/_shared/video-utils.d.ts +0 -73
|
@@ -35,18 +35,18 @@ export declare const inspectRenderTool: import("../define-tool.js").ToolDefiniti
|
|
|
35
35
|
}, "strip", z.ZodTypeAny, {
|
|
36
36
|
dryRun?: boolean | undefined;
|
|
37
37
|
outputPath?: string | undefined;
|
|
38
|
+
model?: "flash" | "pro" | "latest" | "flash-3" | "flash-2.5" | "pro-3.1" | undefined;
|
|
38
39
|
beat?: string | undefined;
|
|
39
40
|
projectDir?: string | undefined;
|
|
40
|
-
model?: "pro" | "latest" | "flash" | "flash-3" | "flash-2.5" | "pro-3.1" | undefined;
|
|
41
41
|
videoPath?: string | undefined;
|
|
42
42
|
report?: boolean | undefined;
|
|
43
43
|
ai?: boolean | undefined;
|
|
44
44
|
}, {
|
|
45
45
|
dryRun?: boolean | undefined;
|
|
46
46
|
outputPath?: string | undefined;
|
|
47
|
+
model?: "flash" | "pro" | "latest" | "flash-3" | "flash-2.5" | "pro-3.1" | undefined;
|
|
47
48
|
beat?: string | undefined;
|
|
48
49
|
projectDir?: string | undefined;
|
|
49
|
-
model?: "pro" | "latest" | "flash" | "flash-3" | "flash-2.5" | "pro-3.1" | undefined;
|
|
50
50
|
videoPath?: string | undefined;
|
|
51
51
|
report?: boolean | undefined;
|
|
52
52
|
ai?: boolean | undefined;
|
|
@@ -64,16 +64,16 @@ export declare const analyzeMediaTool: import("../define-tool.js").ToolDefinitio
|
|
|
64
64
|
prompt: string;
|
|
65
65
|
fps?: number | undefined;
|
|
66
66
|
end?: number | undefined;
|
|
67
|
+
model?: "flash" | "pro" | "latest" | "flash-3" | "flash-2.5" | "pro-3.1" | undefined;
|
|
67
68
|
start?: number | undefined;
|
|
68
|
-
model?: "pro" | "latest" | "flash" | "flash-3" | "flash-2.5" | "pro-3.1" | undefined;
|
|
69
69
|
lowRes?: boolean | undefined;
|
|
70
70
|
}, {
|
|
71
71
|
source: string;
|
|
72
72
|
prompt: string;
|
|
73
73
|
fps?: number | undefined;
|
|
74
74
|
end?: number | undefined;
|
|
75
|
+
model?: "flash" | "pro" | "latest" | "flash-3" | "flash-2.5" | "pro-3.1" | undefined;
|
|
75
76
|
start?: number | undefined;
|
|
76
|
-
model?: "pro" | "latest" | "flash" | "flash-3" | "flash-2.5" | "pro-3.1" | undefined;
|
|
77
77
|
lowRes?: boolean | undefined;
|
|
78
78
|
}>>;
|
|
79
79
|
export declare const analyzeSuggestTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
@@ -29,8 +29,8 @@ export declare const pipelineHighlightsTool: import("../define-tool.js").ToolDef
|
|
|
29
29
|
duration?: number | undefined;
|
|
30
30
|
output?: string | undefined;
|
|
31
31
|
count?: number | undefined;
|
|
32
|
-
language?: string | undefined;
|
|
33
32
|
useGemini?: boolean | undefined;
|
|
33
|
+
language?: string | undefined;
|
|
34
34
|
threshold?: number | undefined;
|
|
35
35
|
criteria?: "all" | "emotional" | "informative" | "funny" | undefined;
|
|
36
36
|
lowRes?: boolean | undefined;
|
|
@@ -40,8 +40,8 @@ export declare const pipelineHighlightsTool: import("../define-tool.js").ToolDef
|
|
|
40
40
|
duration?: number | undefined;
|
|
41
41
|
output?: string | undefined;
|
|
42
42
|
count?: number | undefined;
|
|
43
|
-
language?: string | undefined;
|
|
44
43
|
useGemini?: boolean | undefined;
|
|
44
|
+
language?: string | undefined;
|
|
45
45
|
threshold?: number | undefined;
|
|
46
46
|
criteria?: "all" | "emotional" | "informative" | "funny" | undefined;
|
|
47
47
|
lowRes?: boolean | undefined;
|
|
@@ -63,9 +63,9 @@ export declare const pipelineAutoShortsTool: import("../define-tool.js").ToolDef
|
|
|
63
63
|
duration?: number | undefined;
|
|
64
64
|
count?: number | undefined;
|
|
65
65
|
aspect?: "9:16" | "1:1" | undefined;
|
|
66
|
-
language?: string | undefined;
|
|
67
66
|
analyzeOnly?: boolean | undefined;
|
|
68
67
|
useGemini?: boolean | undefined;
|
|
68
|
+
language?: string | undefined;
|
|
69
69
|
outputDir?: string | undefined;
|
|
70
70
|
lowRes?: boolean | undefined;
|
|
71
71
|
addCaptions?: boolean | undefined;
|
|
@@ -75,9 +75,9 @@ export declare const pipelineAutoShortsTool: import("../define-tool.js").ToolDef
|
|
|
75
75
|
duration?: number | undefined;
|
|
76
76
|
count?: number | undefined;
|
|
77
77
|
aspect?: "9:16" | "1:1" | undefined;
|
|
78
|
-
language?: string | undefined;
|
|
79
78
|
analyzeOnly?: boolean | undefined;
|
|
80
79
|
useGemini?: boolean | undefined;
|
|
80
|
+
language?: string | undefined;
|
|
81
81
|
outputDir?: string | undefined;
|
|
82
82
|
lowRes?: boolean | undefined;
|
|
83
83
|
addCaptions?: boolean | undefined;
|
|
@@ -38,7 +38,7 @@ export declare const sceneAddTool: import("../define-tool.js").ToolDefinition<z.
|
|
|
38
38
|
projectDir: z.ZodOptional<z.ZodString>;
|
|
39
39
|
insertInto: z.ZodOptional<z.ZodString>;
|
|
40
40
|
syncStoryboard: z.ZodOptional<z.ZodBoolean>;
|
|
41
|
-
imageProvider: z.ZodOptional<z.ZodEnum<["gemini", "openai"]>>;
|
|
41
|
+
imageProvider: z.ZodOptional<z.ZodEnum<["gemini", "openai", "grok"]>>;
|
|
42
42
|
voice: z.ZodOptional<z.ZodString>;
|
|
43
43
|
skipAudio: z.ZodOptional<z.ZodBoolean>;
|
|
44
44
|
skipImage: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -53,7 +53,7 @@ export declare const sceneAddTool: import("../define-tool.js").ToolDefinition<z.
|
|
|
53
53
|
headline?: string | undefined;
|
|
54
54
|
projectDir?: string | undefined;
|
|
55
55
|
force?: boolean | undefined;
|
|
56
|
-
imageProvider?: "openai" | "gemini" | undefined;
|
|
56
|
+
imageProvider?: "openai" | "gemini" | "grok" | undefined;
|
|
57
57
|
visuals?: string | undefined;
|
|
58
58
|
insertInto?: string | undefined;
|
|
59
59
|
syncStoryboard?: boolean | undefined;
|
|
@@ -69,7 +69,7 @@ export declare const sceneAddTool: import("../define-tool.js").ToolDefinition<z.
|
|
|
69
69
|
headline?: string | undefined;
|
|
70
70
|
projectDir?: string | undefined;
|
|
71
71
|
force?: boolean | undefined;
|
|
72
|
-
imageProvider?: "openai" | "gemini" | undefined;
|
|
72
|
+
imageProvider?: "openai" | "gemini" | "grok" | undefined;
|
|
73
73
|
visuals?: string | undefined;
|
|
74
74
|
insertInto?: string | undefined;
|
|
75
75
|
syncStoryboard?: boolean | undefined;
|
|
@@ -149,7 +149,7 @@ export declare const sceneBuildTool: import("../define-tool.js").ToolDefinition<
|
|
|
149
149
|
skipRender: z.ZodOptional<z.ZodBoolean>;
|
|
150
150
|
ttsProvider: z.ZodOptional<z.ZodEnum<["auto", "elevenlabs", "openai", "kokoro"]>>;
|
|
151
151
|
voice: z.ZodOptional<z.ZodString>;
|
|
152
|
-
imageProvider: z.ZodOptional<z.ZodEnum<["openai"]>>;
|
|
152
|
+
imageProvider: z.ZodOptional<z.ZodEnum<["openai", "gemini", "grok"]>>;
|
|
153
153
|
videoProvider: z.ZodOptional<z.ZodEnum<["seedance", "grok", "kling", "runway", "omni", "veo"]>>;
|
|
154
154
|
musicProvider: z.ZodOptional<z.ZodEnum<["elevenlabs", "replicate"]>>;
|
|
155
155
|
imageQuality: z.ZodOptional<z.ZodEnum<["standard", "hd"]>>;
|
|
@@ -168,7 +168,7 @@ export declare const sceneBuildTool: import("../define-tool.js").ToolDefinition<
|
|
|
168
168
|
skipNarration?: boolean | undefined;
|
|
169
169
|
skipBackdrop?: boolean | undefined;
|
|
170
170
|
skipRender?: boolean | undefined;
|
|
171
|
-
imageProvider?: "openai" | undefined;
|
|
171
|
+
imageProvider?: "openai" | "gemini" | "grok" | undefined;
|
|
172
172
|
imageModel?: string | undefined;
|
|
173
173
|
ttsProvider?: "openai" | "elevenlabs" | "auto" | "kokoro" | undefined;
|
|
174
174
|
skipVideo?: boolean | undefined;
|
|
@@ -189,7 +189,7 @@ export declare const sceneBuildTool: import("../define-tool.js").ToolDefinition<
|
|
|
189
189
|
skipNarration?: boolean | undefined;
|
|
190
190
|
skipBackdrop?: boolean | undefined;
|
|
191
191
|
skipRender?: boolean | undefined;
|
|
192
|
-
imageProvider?: "openai" | undefined;
|
|
192
|
+
imageProvider?: "openai" | "gemini" | "grok" | undefined;
|
|
193
193
|
imageModel?: string | undefined;
|
|
194
194
|
ttsProvider?: "openai" | "elevenlabs" | "auto" | "kokoro" | undefined;
|
|
195
195
|
skipVideo?: boolean | undefined;
|
|
@@ -208,13 +208,13 @@ export declare const sceneInstallSkillTool: import("../define-tool.js").ToolDefi
|
|
|
208
208
|
}, "strip", z.ZodTypeAny, {
|
|
209
209
|
projectDir: string;
|
|
210
210
|
dryRun?: boolean | undefined;
|
|
211
|
-
global?: boolean | undefined;
|
|
212
211
|
force?: boolean | undefined;
|
|
212
|
+
global?: boolean | undefined;
|
|
213
213
|
}, {
|
|
214
214
|
projectDir: string;
|
|
215
215
|
dryRun?: boolean | undefined;
|
|
216
|
-
global?: boolean | undefined;
|
|
217
216
|
force?: boolean | undefined;
|
|
217
|
+
global?: boolean | undefined;
|
|
218
218
|
}>>;
|
|
219
219
|
export declare const sceneComposePromptsTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
220
220
|
projectDir: z.ZodString;
|
|
@@ -31,13 +31,13 @@ export declare const timelineAddSourceTool: import("../define-tool.js").ToolDefi
|
|
|
31
31
|
name: z.ZodOptional<z.ZodString>;
|
|
32
32
|
duration: z.ZodOptional<z.ZodNumber>;
|
|
33
33
|
}, "strip", z.ZodTypeAny, {
|
|
34
|
-
projectPath: string;
|
|
35
34
|
mediaPath: string;
|
|
35
|
+
projectPath: string;
|
|
36
36
|
name?: string | undefined;
|
|
37
37
|
duration?: number | undefined;
|
|
38
38
|
}, {
|
|
39
|
-
projectPath: string;
|
|
40
39
|
mediaPath: string;
|
|
40
|
+
projectPath: string;
|
|
41
41
|
name?: string | undefined;
|
|
42
42
|
duration?: number | undefined;
|
|
43
43
|
}>>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Write audio to the path a caller asked for, converting when the path's
|
|
3
|
+
* extension does not match the bytes' container (Kokoro speaks WAV; a user
|
|
4
|
+
* may ask for `narration.mp3`).
|
|
5
|
+
*/
|
|
6
|
+
/** Save `bytes` (in `container`, e.g. "mp3") to `path`, transcoding with ffmpeg if the extension differs. */
|
|
7
|
+
export declare function writeAudioFile(path: string, bytes: Uint8Array, container: string): Promise<void>;
|
|
@@ -13,3 +13,14 @@ export interface UploadHost {
|
|
|
13
13
|
uploadImage(imageBuffer: Buffer, opts?: UploadImageOptions): Promise<UploadImageResult>;
|
|
14
14
|
}
|
|
15
15
|
export declare function resolveUploadHost(): Promise<UploadHost>;
|
|
16
|
+
/**
|
|
17
|
+
* Upload an image to ImgBB and return its URL (for providers that only take
|
|
18
|
+
* image URLs, such as Kling).
|
|
19
|
+
*/
|
|
20
|
+
export declare function uploadToImgbb(imageBuffer: Buffer, apiKey: string,
|
|
21
|
+
/** Seconds until ImgBB deletes the image (60 to 15,552,000). Omit for a permanent upload. */
|
|
22
|
+
expirationSeconds?: number): Promise<{
|
|
23
|
+
success: boolean;
|
|
24
|
+
url?: string;
|
|
25
|
+
error?: string;
|
|
26
|
+
}>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibeframe/cli",
|
|
3
|
-
"version": "0.115.
|
|
3
|
+
"version": "0.115.7",
|
|
4
4
|
"description": "Frontier AI video generation for coding agents - Seedance, Runway, Veo, and Kling on your own keys, behind a hard cost cap",
|
|
5
5
|
"private": false,
|
|
6
6
|
"license": "MIT",
|
|
@@ -91,8 +91,8 @@
|
|
|
91
91
|
"tsx": "^4.21.0",
|
|
92
92
|
"typescript": "^5.3.3",
|
|
93
93
|
"vitest": "^1.2.2",
|
|
94
|
-
"@vibeframe/ai-providers": "0.115.
|
|
95
|
-
"@vibeframe/core": "0.115.
|
|
94
|
+
"@vibeframe/ai-providers": "0.115.7",
|
|
95
|
+
"@vibeframe/core": "0.115.7"
|
|
96
96
|
},
|
|
97
97
|
"engines": {
|
|
98
98
|
"node": ">=20"
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module _shared/video-providers
|
|
3
|
-
* @description Per-provider `generateVideoWithRetry*` helpers used by the
|
|
4
|
-
* script-to-video pipeline. Each wraps a single AI provider's video
|
|
5
|
-
* generation API in a retry loop with onProgress callbacks. Split out of
|
|
6
|
-
* `ai-script-pipeline.ts` in v0.69 (Plan G Phase 4).
|
|
7
|
-
*/
|
|
8
|
-
import type { GeminiProvider, GrokProvider, KlingProvider, RunwayProvider } from "@vibeframe/ai-providers";
|
|
9
|
-
import { type StoryboardSegment } from "./video-utils.js";
|
|
10
|
-
/** Generate video with retry logic for Grok provider. */
|
|
11
|
-
export declare function generateVideoWithRetryGrok(grok: GrokProvider, segment: StoryboardSegment, options: {
|
|
12
|
-
duration: number;
|
|
13
|
-
aspectRatio: "16:9" | "9:16" | "1:1";
|
|
14
|
-
referenceImage?: string;
|
|
15
|
-
}, maxRetries: number, onProgress?: (message: string) => void): Promise<{
|
|
16
|
-
requestId: string;
|
|
17
|
-
} | null>;
|
|
18
|
-
/**
|
|
19
|
-
* Generate video with retry logic for Kling provider.
|
|
20
|
-
* Supports image-to-video with URL (v2.5/v2.6 models).
|
|
21
|
-
*/
|
|
22
|
-
export declare function generateVideoWithRetryKling(kling: KlingProvider, segment: StoryboardSegment, options: {
|
|
23
|
-
duration: 5 | 10;
|
|
24
|
-
aspectRatio: "16:9" | "9:16" | "1:1";
|
|
25
|
-
referenceImage?: string;
|
|
26
|
-
}, maxRetries: number, onProgress?: (message: string) => void): Promise<{
|
|
27
|
-
taskId: string;
|
|
28
|
-
type: "text2video" | "image2video";
|
|
29
|
-
} | null>;
|
|
30
|
-
/** Generate video with retry logic for Runway provider. */
|
|
31
|
-
export declare function generateVideoWithRetryRunway(runway: RunwayProvider, segment: StoryboardSegment, referenceImage: string, options: {
|
|
32
|
-
duration: 5 | 10;
|
|
33
|
-
aspectRatio: "16:9" | "9:16";
|
|
34
|
-
}, maxRetries: number, onProgress?: (message: string) => void): Promise<{
|
|
35
|
-
taskId: string;
|
|
36
|
-
} | null>;
|
|
37
|
-
/** Generate video with retry logic for Veo (Gemini) provider. */
|
|
38
|
-
export declare function generateVideoWithRetryVeo(gemini: GeminiProvider, segment: StoryboardSegment, options: {
|
|
39
|
-
duration: 4 | 6 | 8;
|
|
40
|
-
aspectRatio: "16:9" | "9:16" | "1:1";
|
|
41
|
-
referenceImage?: string;
|
|
42
|
-
}, maxRetries: number, onProgress?: (message: string) => void): Promise<{
|
|
43
|
-
operationName: string;
|
|
44
|
-
} | null>;
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module _shared/video-utils
|
|
3
|
-
* @description Shared helpers for the script-to-video pipeline:
|
|
4
|
-
* StoryboardSegment type, retry constants, ImgBB upload, FFmpeg/Kling
|
|
5
|
-
* video extension, error logging, and the generic wait-for-completion
|
|
6
|
-
* loop. Split out of `ai-script-pipeline.ts` in v0.69 (Plan G Phase 4).
|
|
7
|
-
*/
|
|
8
|
-
import type { KlingProvider, RunwayProvider } from "@vibeframe/ai-providers";
|
|
9
|
-
/** A single scene segment from the Claude-generated storyboard. */
|
|
10
|
-
export interface StoryboardSegment {
|
|
11
|
-
/** 1-based scene index (assigned during generation) */
|
|
12
|
-
index?: number;
|
|
13
|
-
/** Narrative description of the scene */
|
|
14
|
-
description: string;
|
|
15
|
-
/** Visual prompt for image/video generation */
|
|
16
|
-
visuals: string;
|
|
17
|
-
/** Art style directive (e.g. "cinematic", "anime") */
|
|
18
|
-
visualStyle?: string;
|
|
19
|
-
/** Character appearance description for consistency */
|
|
20
|
-
characterDescription?: string;
|
|
21
|
-
/** Reference to previous scene for continuity */
|
|
22
|
-
previousSceneLink?: string;
|
|
23
|
-
/** Voiceover narration text */
|
|
24
|
-
narration?: string;
|
|
25
|
-
/** Audio direction (e.g. "upbeat music") */
|
|
26
|
-
audio?: string;
|
|
27
|
-
/** Text lines to overlay on the video */
|
|
28
|
-
textOverlays?: string[];
|
|
29
|
-
/** Scene duration in seconds (updated to match narration) */
|
|
30
|
-
duration: number;
|
|
31
|
-
/** Cumulative start time in seconds */
|
|
32
|
-
startTime: number;
|
|
33
|
-
}
|
|
34
|
-
/** Default retry count for video generation API calls. */
|
|
35
|
-
export declare const DEFAULT_VIDEO_RETRIES = 2;
|
|
36
|
-
/** Delay between retries in milliseconds. */
|
|
37
|
-
export declare const RETRY_DELAY_MS = 5000;
|
|
38
|
-
/** Sleep helper. */
|
|
39
|
-
export declare function sleep(ms: number): Promise<void>;
|
|
40
|
-
/**
|
|
41
|
-
* Upload image to ImgBB and return the URL.
|
|
42
|
-
* Used for Kling v2.5/v2.6 image-to-video which requires URL (not base64).
|
|
43
|
-
*/
|
|
44
|
-
export declare function uploadToImgbb(imageBuffer: Buffer, apiKey: string,
|
|
45
|
-
/** Seconds until ImgBB deletes the image (60 to 15,552,000). Omit for a permanent upload. */
|
|
46
|
-
expirationSeconds?: number): Promise<{
|
|
47
|
-
success: boolean;
|
|
48
|
-
url?: string;
|
|
49
|
-
error?: string;
|
|
50
|
-
}>;
|
|
51
|
-
/**
|
|
52
|
-
* Extend a video to target duration using Kling extend API when possible,
|
|
53
|
-
* with fallback to FFmpeg-based extendVideoNaturally.
|
|
54
|
-
*
|
|
55
|
-
* When the extension ratio > 1.4 and a Kling provider + videoId are available,
|
|
56
|
-
* uses the Kling video-extend API for natural continuation instead of freeze frames.
|
|
57
|
-
*/
|
|
58
|
-
export declare function extendVideoToTarget(videoPath: string, targetDuration: number, outputDir: string, sceneLabel: string, options?: {
|
|
59
|
-
kling?: KlingProvider;
|
|
60
|
-
videoId?: string;
|
|
61
|
-
onProgress?: (message: string) => void;
|
|
62
|
-
}): Promise<void>;
|
|
63
|
-
/**
|
|
64
|
-
* Log a provider failure to stderr. Centralizes the "what went wrong" output
|
|
65
|
-
* so call sites stop silently dropping provider errors into failedScenes.
|
|
66
|
-
*/
|
|
67
|
-
export declare function logSceneFailure(provider: string, sceneLabel: string, err: unknown): void;
|
|
68
|
-
/**
|
|
69
|
-
* Wait for video completion with retry logic.
|
|
70
|
-
*/
|
|
71
|
-
export declare function waitForVideoWithRetry(provider: KlingProvider | RunwayProvider, taskId: string, providerType: "kling" | "runway", maxRetries: number, onProgress?: (message: string) => void, timeout?: number): Promise<{
|
|
72
|
-
videoUrl: string;
|
|
73
|
-
} | null>;
|