@vibeframe/cli 0.115.4 → 0.115.6
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/CONTEXT.md +1 -1
- package/dist/commands/_shared/init-templates.d.ts +1 -1
- package/dist/commands/_shared/status-jobs.d.ts +5 -0
- package/dist/commands/_shared/video-jobs.d.ts +34 -0
- package/dist/commands/ai-video.d.ts +37 -11
- package/dist/commands/ai-video.network.test.d.ts +1 -0
- 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 +13 -3
- package/dist/commands/generate.d.ts +1 -1
- package/dist/commands/output.d.ts +16 -1
- package/dist/index.js +9997 -10415
- package/dist/testing/fake-provider-network.d.ts +7 -38
- package/dist/tools/manifest/edit.d.ts +4 -4
- package/dist/tools/manifest/generate.d.ts +28 -25
- package/dist/tools/manifest/index.js +25676 -26111
- package/dist/tools/manifest/inspect.d.ts +4 -4
- package/dist/tools/manifest/storyboard.d.ts +2 -2
- package/dist/utils/model-lifecycle.d.ts +25 -0
- package/dist/utils/model-lifecycle.test.d.ts +1 -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
|
@@ -37,7 +37,7 @@ export declare const inspectRenderTool: import("../define-tool.js").ToolDefiniti
|
|
|
37
37
|
outputPath?: string | undefined;
|
|
38
38
|
beat?: string | undefined;
|
|
39
39
|
projectDir?: string | undefined;
|
|
40
|
-
model?: "
|
|
40
|
+
model?: "latest" | "flash" | "pro" | "flash-3" | "flash-2.5" | "pro-3.1" | undefined;
|
|
41
41
|
videoPath?: string | undefined;
|
|
42
42
|
report?: boolean | undefined;
|
|
43
43
|
ai?: boolean | undefined;
|
|
@@ -46,7 +46,7 @@ export declare const inspectRenderTool: import("../define-tool.js").ToolDefiniti
|
|
|
46
46
|
outputPath?: string | undefined;
|
|
47
47
|
beat?: string | undefined;
|
|
48
48
|
projectDir?: string | undefined;
|
|
49
|
-
model?: "
|
|
49
|
+
model?: "latest" | "flash" | "pro" | "flash-3" | "flash-2.5" | "pro-3.1" | undefined;
|
|
50
50
|
videoPath?: string | undefined;
|
|
51
51
|
report?: boolean | undefined;
|
|
52
52
|
ai?: boolean | undefined;
|
|
@@ -65,7 +65,7 @@ export declare const analyzeMediaTool: import("../define-tool.js").ToolDefinitio
|
|
|
65
65
|
fps?: number | undefined;
|
|
66
66
|
end?: number | undefined;
|
|
67
67
|
start?: number | undefined;
|
|
68
|
-
model?: "
|
|
68
|
+
model?: "latest" | "flash" | "pro" | "flash-3" | "flash-2.5" | "pro-3.1" | undefined;
|
|
69
69
|
lowRes?: boolean | undefined;
|
|
70
70
|
}, {
|
|
71
71
|
source: string;
|
|
@@ -73,7 +73,7 @@ export declare const analyzeMediaTool: import("../define-tool.js").ToolDefinitio
|
|
|
73
73
|
fps?: number | undefined;
|
|
74
74
|
end?: number | undefined;
|
|
75
75
|
start?: number | undefined;
|
|
76
|
-
model?: "
|
|
76
|
+
model?: "latest" | "flash" | "pro" | "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<{
|
|
@@ -32,15 +32,15 @@ export declare const storyboardSetTool: import("../define-tool.js").ToolDefiniti
|
|
|
32
32
|
jsonValue: z.ZodOptional<z.ZodBoolean>;
|
|
33
33
|
unset: z.ZodOptional<z.ZodBoolean>;
|
|
34
34
|
}, "strip", z.ZodTypeAny, {
|
|
35
|
-
beat: string;
|
|
36
35
|
key: string;
|
|
36
|
+
beat: string;
|
|
37
37
|
value?: string | undefined;
|
|
38
38
|
projectDir?: string | undefined;
|
|
39
39
|
unset?: boolean | undefined;
|
|
40
40
|
jsonValue?: boolean | undefined;
|
|
41
41
|
}, {
|
|
42
|
-
beat: string;
|
|
43
42
|
key: string;
|
|
43
|
+
beat: string;
|
|
44
44
|
value?: string | undefined;
|
|
45
45
|
projectDir?: string | undefined;
|
|
46
46
|
unset?: boolean | undefined;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model shutdown checks for commands that call a dated model.
|
|
3
|
+
*
|
|
4
|
+
* The catalog records each model's announced shutdown date. Commands check
|
|
5
|
+
* it before any dry run or paid request: a retiring model adds a warning to
|
|
6
|
+
* the dry run, the result, and stderr; a retired model is a usage error that
|
|
7
|
+
* names the replacement. Providers enforce the same rule on their own, so
|
|
8
|
+
* executors that skip this check still never call a retired model.
|
|
9
|
+
*/
|
|
10
|
+
import { type ModelSpec } from "@vibeframe/ai-providers";
|
|
11
|
+
/** Model flags `generate video` reads, keyed by provider. */
|
|
12
|
+
export interface VideoModelFlags {
|
|
13
|
+
seedanceModel?: string;
|
|
14
|
+
grokModel?: string;
|
|
15
|
+
klingModel?: string;
|
|
16
|
+
veoModel?: string;
|
|
17
|
+
runwayModel?: string;
|
|
18
|
+
}
|
|
19
|
+
/** The catalog model a video provider will call, given the command's model flags. */
|
|
20
|
+
export declare function videoModelSpec(provider: string, flags: VideoModelFlags): ModelSpec | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Exit with a usage error for a retired model; return the shutdown warning
|
|
23
|
+
* for a retiring one, for the caller's envelope and `printWarnings()`.
|
|
24
|
+
*/
|
|
25
|
+
export declare function checkModelLifecycle(spec: ModelSpec | undefined, now?: Date): string[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -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.6",
|
|
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.6",
|
|
95
|
+
"@vibeframe/core": "0.115.6"
|
|
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>;
|