@vibeframe/cli 0.115.2 → 0.115.4

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.
Files changed (33) hide show
  1. package/dist/agent/adapters/gemini.d.ts +2 -0
  2. package/dist/agent/adapters/provider-content.test.d.ts +6 -0
  3. package/dist/agent/memory/index.d.ts +1 -1
  4. package/dist/agent/types.d.ts +8 -0
  5. package/dist/commands/_shared/build-video-providers.d.ts +12 -0
  6. package/dist/commands/_shared/build-video-providers.test.d.ts +1 -0
  7. package/dist/commands/_shared/edit/translate-srt.test.d.ts +1 -0
  8. package/dist/commands/_shared/execute-fill-gaps.d.ts +0 -2
  9. package/dist/commands/_shared/image-cost.d.ts +15 -0
  10. package/dist/commands/_shared/image-cost.test.d.ts +1 -0
  11. package/dist/commands/_shared/openai-image.d.ts +9 -8
  12. package/dist/commands/_shared/project-config.d.ts +2 -1
  13. package/dist/commands/_shared/scene-build.d.ts +3 -2
  14. package/dist/commands/_shared/scene-build.network.test.d.ts +1 -0
  15. package/dist/commands/_shared/video-utils.d.ts +3 -1
  16. package/dist/commands/agent.d.ts +6 -0
  17. package/dist/commands/ai-video.d.ts +2 -0
  18. package/dist/commands/generate/image.d.ts +1 -1
  19. package/dist/commands/generate/video.d.ts +1 -10
  20. package/dist/config/schema.d.ts +1 -1
  21. package/dist/index.js +1198 -817
  22. package/dist/testing/fake-provider-network.d.ts +45 -0
  23. package/dist/tools/define-tool.js +3 -2
  24. package/dist/tools/manifest/edit.d.ts +5 -5
  25. package/dist/tools/manifest/generate.d.ts +12 -6
  26. package/dist/tools/manifest/index.js +1132 -757
  27. package/dist/tools/manifest/scene.d.ts +3 -3
  28. package/dist/tools/manifest/storyboard.d.ts +3 -3
  29. package/dist/utils/image-file.d.ts +19 -0
  30. package/dist/utils/image-file.test.d.ts +1 -0
  31. package/dist/utils/remotion-precheck.test.d.ts +1 -0
  32. package/dist/utils/remotion.d.ts +7 -1
  33. package/package.json +4 -3
@@ -3,6 +3,8 @@
3
3
  */
4
4
  import type { LLMAdapter } from "./index.js";
5
5
  import type { ToolDefinition, LLMResponse, AgentMessage, LLMProvider } from "../types.js";
6
+ /** Drop schema keys Gemini rejects, recursing into properties and items. */
7
+ export declare function toGeminiSchema(schema: unknown): unknown;
6
8
  export declare class GeminiAdapter implements LLMAdapter {
7
9
  readonly provider: LLMProvider;
8
10
  private client;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Claude and Gemini adapters replay the provider's own assistant content
3
+ * (thinking blocks, thought signatures) and group tool results per turn.
4
+ * Mock-based, no API calls.
5
+ */
6
+ export {};
@@ -21,7 +21,7 @@ export declare class ConversationMemory {
21
21
  /**
22
22
  * Add an assistant message
23
23
  */
24
- addAssistant(content: string, toolCalls?: ToolCall[]): void;
24
+ addAssistant(content: string, toolCalls?: ToolCall[], providerContent?: unknown): void;
25
25
  /**
26
26
  * Add a tool result message
27
27
  */
@@ -48,6 +48,12 @@ export interface AgentMessage {
48
48
  content: string;
49
49
  toolCalls?: ToolCall[];
50
50
  toolCallId?: string;
51
+ /**
52
+ * The provider's own assistant content (Claude content blocks, Gemini
53
+ * parts), replayed verbatim on the next turn. Newer models require their
54
+ * thinking blocks and thought signatures back unmodified during tool use.
55
+ */
56
+ providerContent?: unknown;
51
57
  }
52
58
  export interface AgentConfig {
53
59
  provider: LLMProvider;
@@ -60,6 +66,8 @@ export interface LLMResponse {
60
66
  content: string;
61
67
  toolCalls?: ToolCall[];
62
68
  finishReason: "stop" | "tool_calls" | "length" | "error";
69
+ /** See {@link AgentMessage.providerContent}. */
70
+ providerContent?: unknown;
63
71
  }
64
72
  export interface AgentContext {
65
73
  projectPath: string | null;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Video providers a project build (`vibe plan`, `vibe build`, storyboard
3
+ * `provider:` cues, project config) can target. One list, so adding a
4
+ * provider is a one-line change instead of a hunt through every command.
5
+ */
6
+ export declare const BUILD_VIDEO_PROVIDERS: readonly ["seedance", "grok", "kling", "runway", "omni", "veo"];
7
+ export type BuildVideoProvider = (typeof BUILD_VIDEO_PROVIDERS)[number];
8
+ export declare function isBuildVideoProvider(value: string): value is BuildVideoProvider;
9
+ /** Normalize user input; `fal` is the deprecated alias for seedance. Unknown values fall back to seedance. */
10
+ export declare function resolveBuildVideoProvider(value: unknown): BuildVideoProvider;
11
+ /** Config/API-key id that unlocks a video provider. */
12
+ export declare function videoProviderConfigKey(provider: string): string;
@@ -0,0 +1 @@
1
+ export {};
@@ -26,8 +26,6 @@ export interface ExecuteFillGapsOptions {
26
26
  ratio?: "16:9" | "9:16" | "1:1";
27
27
  /** Override Kling API key. */
28
28
  apiKey?: string;
29
- /** Override ImgBB API key (used to host frames for Kling input). */
30
- imgbbApiKey?: string;
31
29
  /** Optional progress callback for streaming status updates. */
32
30
  onProgress?: (message: string) => void;
33
31
  }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Per-image cost estimates for `vibe generate image`, from model catalog prices.
3
+ *
4
+ * Without these, real runs reported `costUsd: 0`, which reads as "free" to
5
+ * agents that gate spend on the JSON envelope. Values are upper bounds from
6
+ * provider list prices (checked 2026-10-04, see
7
+ * `.agents/references/providers/`), not metered billing:
8
+ * - OpenAI: high quality at 1024x1024 (we default to medium).
9
+ * - Gemini: 1K output, Nano Banana Pro at 1K-2K.
10
+ * - Grok: grok-imagine-image-2.0 at its 2K medium price.
11
+ */
12
+ export declare function estimateImageCostUsd(provider: string, model: string | undefined, count: number): {
13
+ costUsd: number;
14
+ warnings: string[];
15
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -14,7 +14,7 @@
14
14
  *
15
15
  * See issue #58.
16
16
  */
17
- import type { ImageResult } from "@vibeframe/ai-providers";
17
+ import type { GPTImageModel, ImageResult } from "@vibeframe/ai-providers";
18
18
  /** Subset of CLI options consumed by the helper. */
19
19
  export interface OpenAIImageHelperOptions {
20
20
  model?: string;
@@ -27,18 +27,19 @@ export interface OpenAIImageHelperOptions {
27
27
  export interface OpenAIImageHelperResult {
28
28
  result: ImageResult;
29
29
  /** Resolved model id passed to the API. */
30
- openaiModel: "gpt-image-2" | "gpt-image-1.5";
30
+ openaiModel: GPTImageModel;
31
31
  /** Human-friendly label for spinner / success output. */
32
- modelLabel: "GPT Image 2" | "GPT Image 1.5";
32
+ modelLabel: string;
33
33
  }
34
34
  /**
35
- * Resolve the user-supplied model alias to the API id + display label.
36
- * Exported so unit tests can assert label↔model parity (regression cover
37
- * for v0.52.0 bug).
35
+ * Resolve the user-supplied model alias to the API id + display label, from
36
+ * the model catalog. Unknown or empty aliases resolve to the default model.
37
+ * Exported so unit tests can assert label↔model parity (regression cover for
38
+ * v0.52.0 bug).
38
39
  */
39
40
  export declare function resolveOpenAIImageModel(modelAlias?: string): {
40
- openaiModel: "gpt-image-2" | "gpt-image-1.5";
41
- modelLabel: "GPT Image 2" | "GPT Image 1.5";
41
+ openaiModel: GPTImageModel;
42
+ modelLabel: string;
42
43
  };
43
44
  /**
44
45
  * Run an OpenAI image generation. Caller owns: api-key acquisition,
@@ -1,9 +1,10 @@
1
1
  import type { SceneAspect, SceneKind } from "./scene-project.js";
2
+ import type { BuildVideoProvider } from "./build-video-providers.js";
2
3
  export declare const VIBE_CONFIG_FILENAME = "vibe.config.json";
3
4
  export declare const LEGACY_VIBE_PROJECT_FILENAME = "vibe.project.yaml";
4
5
  export type CompositionEngine = "hyperframes";
5
6
  export type ProjectImageProvider = "openai" | "gemini" | "grok" | null;
6
- export type ProjectVideoProvider = "seedance" | "grok" | "kling" | "runway" | "veo" | null;
7
+ export type ProjectVideoProvider = BuildVideoProvider | null;
7
8
  export type ProjectNarrationProvider = "elevenlabs" | "openai" | "kokoro" | null;
8
9
  export type ProjectComposerProvider = "claude" | "openai" | "gemini" | null;
9
10
  export type ProjectQuality = "draft" | "standard" | "high";
@@ -29,6 +29,7 @@ import { type JobRecord } from "./status-jobs.js";
29
29
  import { type SceneRepairResult } from "./scene-repair.js";
30
30
  import { type TtsProviderName } from "./tts-resolve.js";
31
31
  import { type SceneBuildMode } from "./scene-build-mode.js";
32
+ import { type BuildVideoProvider } from "./build-video-providers.js";
32
33
  export { resolveSceneBuildMode, type SceneBuildMode } from "./scene-build-mode.js";
33
34
  export type BuildImageProvider = "openai" | "gemini" | "grok";
34
35
  export type SceneBuildProgressEvent = {
@@ -220,7 +221,7 @@ export interface BeatBuildOutcome {
220
221
  musicSourcePath?: string;
221
222
  musicDurationSec?: number;
222
223
  }
223
- export type BuildVideoProvider = "seedance" | "grok" | "kling" | "runway" | "veo";
224
+ export type { BuildVideoProvider } from "./build-video-providers.js";
224
225
  export type BuildMusicProvider = "elevenlabs" | "replicate";
225
226
  /**
226
227
  * Build mode dispatch (Phase H3 / Plan H).
@@ -280,7 +281,7 @@ export interface SceneBuildOptions {
280
281
  skipTranscript?: boolean;
281
282
  /**
282
283
  * Provider-specific image model for backdrops/keyframes/character sheets
283
- * (e.g. gemini `flash` | `pro`, openai `gpt-image-2`). Provider default when
284
+ * (e.g. gemini `flash` | `pro`, openai `gpt-image-2.5-sunburst`). Provider default when
284
285
  * omitted; grok has a single model and ignores it.
285
286
  */
286
287
  imageModel?: string;
@@ -41,7 +41,9 @@ export declare function sleep(ms: number): Promise<void>;
41
41
  * Upload image to ImgBB and return the URL.
42
42
  * Used for Kling v2.5/v2.6 image-to-video which requires URL (not base64).
43
43
  */
44
- export declare function uploadToImgbb(imageBuffer: Buffer, apiKey: string): Promise<{
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<{
45
47
  success: boolean;
46
48
  url?: string;
47
49
  error?: string;
@@ -16,6 +16,12 @@ export interface StartAgentOptions {
16
16
  /** Cumulative USD ceiling — agent rejects further tool calls past this. */
17
17
  budgetUsd?: number | string;
18
18
  }
19
+ /**
20
+ * `vibe agent` is deprecated: the host's agent loop (Claude Code, Codex,
21
+ * Cursor, or an MCP app host) is the outer loop, and a second built-in loop
22
+ * competes with it. Printed to stderr so `--input` stdout stays clean.
23
+ */
24
+ export declare const AGENT_DEPRECATION_NOTICE: string;
19
25
  /**
20
26
  * Start the AI agent
21
27
  * @param options - Agent options
@@ -28,6 +28,8 @@ export interface VideoGenerateOptions {
28
28
  veoModel?: string;
29
29
  runwayModel?: string;
30
30
  seedanceModel?: string;
31
+ grokModel?: string;
32
+ klingModel?: string;
31
33
  generateAudio?: boolean;
32
34
  output?: string;
33
35
  wait?: boolean;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @module generate/image
3
3
  * @description `vibe generate image` (alias `img`) — multi-provider image
4
- * generation. OpenAI gpt-image-2, Gemini Nano Banana, Grok, Runway. Split
4
+ * generation. OpenAI gpt-image-2.5, Gemini Nano Banana, Grok, Runway. Split
5
5
  * out of `generate.ts` in v0.69 (Plan G Phase 2).
6
6
  */
7
7
  import type { Command } from "commander";
@@ -2,20 +2,11 @@
2
2
  * @module generate/video
3
3
  * @description `vibe generate video` (alias `vid`) — multi-provider video
4
4
  * generation. fal.ai (Seedance 2.0), Grok, Veo (Gemini), Kling, Runway,
5
- * plus experimental Gemini Omni (`-p omni`).
5
+ * plus Gemini Omni 1.1 Flash (`-p omni`).
6
6
  * Split out of `generate.ts` in v0.69 (Plan G Phase 2).
7
7
  */
8
8
  import type { Command } from "commander";
9
9
  export declare function registerVideoCommand(parent: Command): void;
10
- /**
11
- * Cost figure for a REAL (non-dry-run) generation envelope.
12
- *
13
- * Seedance has a token-accurate estimator; every other provider reports the
14
- * command's tier upper bound with a warning naming it an estimate. Without
15
- * this the success envelope defaulted to costUsd 0, which an agent budget
16
- * loop reads as "free" - the hybrid-brew dogfood run billed Runway twice
17
- * while reporting $0.
18
- */
19
10
  export declare function realRunCost(provider: string, options: {
20
11
  duration?: string;
21
12
  resolution?: string;
@@ -33,7 +33,7 @@ export interface VibeConfig {
33
33
  /** Default provider for image generation */
34
34
  imageProvider?: "gemini" | "openai" | "grok";
35
35
  /** Default provider for video generation. `fal` is a deprecated v0.x alias for `seedance` and will be removed at 1.0. */
36
- videoProvider?: "seedance" | "fal" | "grok" | "kling" | "runway" | "veo";
36
+ videoProvider?: "seedance" | "fal" | "grok" | "kling" | "runway" | "omni" | "veo";
37
37
  /** Default provider for storyboard analysis */
38
38
  storyboardProvider?: "claude" | "openai" | "gemini";
39
39
  /** Default voice for TTS */