@vibeframe/cli 0.105.1 → 0.106.0
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/agent/adapters/claude.d.ts +14 -0
- package/dist/agent/adapters/gemini.d.ts +14 -0
- package/dist/agent/adapters/index.d.ts +27 -0
- package/dist/agent/adapters/ollama.d.ts +19 -0
- package/dist/agent/adapters/openai.d.ts +14 -0
- package/dist/agent/adapters/openrouter.d.ts +15 -0
- package/dist/agent/adapters/openrouter.test.d.ts +4 -0
- package/dist/agent/adapters/xai.d.ts +14 -0
- package/dist/agent/index.d.ts +109 -0
- package/dist/agent/memory/index.d.ts +69 -0
- package/dist/agent/prompts/system.d.ts +5 -0
- package/dist/agent/tools/e2e.test.d.ts +25 -0
- package/dist/agent/tools/index.d.ts +59 -0
- package/dist/agent/tools/integration.test.d.ts +10 -0
- package/dist/agent/tools/scene.test.d.ts +1 -0
- package/dist/agent/types.d.ts +72 -0
- package/dist/commands/_shared/build-asset-metadata.d.ts +43 -0
- package/dist/commands/_shared/build-asset-reference.d.ts +18 -0
- package/dist/commands/_shared/build-backdrop-prompt.d.ts +8 -0
- package/dist/commands/_shared/build-backdrop-prompt.test.d.ts +1 -0
- package/dist/commands/_shared/build-cache.d.ts +37 -0
- package/dist/commands/_shared/build-plan.d.ts +107 -0
- package/dist/commands/_shared/build-plan.test.d.ts +1 -0
- package/dist/commands/_shared/compose-prompts.d.ts +97 -0
- package/dist/commands/_shared/compose-prompts.test.d.ts +1 -0
- package/dist/commands/_shared/compose-scenes-skills.d.ts +282 -0
- package/dist/commands/_shared/compose-scenes-skills.test.d.ts +1 -0
- package/dist/commands/_shared/composer-resolve.d.ts +47 -0
- package/dist/commands/_shared/composer-resolve.test.d.ts +1 -0
- package/dist/commands/_shared/cost-tier.d.ts +58 -0
- package/dist/commands/_shared/edit/_helpers.d.ts +12 -0
- package/dist/commands/_shared/edit/caption.d.ts +47 -0
- package/dist/commands/_shared/edit/fade.d.ts +38 -0
- package/dist/commands/_shared/edit/jump-cut.d.ts +80 -0
- package/dist/commands/_shared/edit/noise-reduce.d.ts +33 -0
- package/dist/commands/_shared/edit/silence-cut.d.ts +63 -0
- package/dist/commands/_shared/edit/text-overlay.d.ts +50 -0
- package/dist/commands/_shared/edit/translate-srt.d.ts +40 -0
- package/dist/commands/_shared/edit/video-review.d.ts +62 -0
- package/dist/commands/_shared/execute-fill-gaps.d.ts +97 -0
- package/dist/commands/_shared/hf-skill-bundle/bundle-content.d.ts +16 -0
- package/dist/commands/_shared/hf-skill-bundle/bundle.d.ts +57 -0
- package/dist/commands/_shared/hf-skill-bundle/bundle.test.d.ts +1 -0
- package/dist/commands/_shared/init-templates.d.ts +58 -0
- package/dist/commands/_shared/init-templates.test.d.ts +1 -0
- package/dist/commands/_shared/install-skill.d.ts +76 -0
- package/dist/commands/_shared/install-skill.test.d.ts +1 -0
- package/dist/commands/_shared/openai-image.d.ts +49 -0
- package/dist/commands/_shared/openai-image.test.d.ts +1 -0
- package/dist/commands/_shared/product-surface.d.ts +11 -0
- package/dist/commands/_shared/product-surface.test.d.ts +1 -0
- package/dist/commands/_shared/project-config.d.ts +60 -0
- package/dist/commands/_shared/render-inspect.d.ts +104 -0
- package/dist/commands/_shared/render-inspect.test.d.ts +1 -0
- package/dist/commands/_shared/review-report.d.ts +65 -0
- package/dist/commands/_shared/root-sync.d.ts +39 -0
- package/dist/commands/_shared/scene-audio-mux.d.ts +74 -0
- package/dist/commands/_shared/scene-audio-mux.test.d.ts +6 -0
- package/dist/commands/_shared/scene-audio-scan.d.ts +93 -0
- package/dist/commands/_shared/scene-audio-scan.test.d.ts +5 -0
- package/dist/commands/_shared/scene-build-mode.d.ts +4 -0
- package/dist/commands/_shared/scene-build-mode.test.d.ts +1 -0
- package/dist/commands/_shared/scene-build.d.ts +452 -0
- package/dist/commands/_shared/scene-build.test.d.ts +1 -0
- package/dist/commands/_shared/scene-html-emit.d.ts +163 -0
- package/dist/commands/_shared/scene-html-emit.test.d.ts +1 -0
- package/dist/commands/_shared/scene-inspect.d.ts +56 -0
- package/dist/commands/_shared/scene-inspect.test.d.ts +1 -0
- package/dist/commands/_shared/scene-lint.d.ts +109 -0
- package/dist/commands/_shared/scene-lint.test.d.ts +1 -0
- package/dist/commands/_shared/scene-project.d.ts +147 -0
- package/dist/commands/_shared/scene-project.test.d.ts +1 -0
- package/dist/commands/_shared/scene-render.d.ts +109 -0
- package/dist/commands/_shared/scene-render.test.d.ts +1 -0
- package/dist/commands/_shared/scene-repair.d.ts +22 -0
- package/dist/commands/_shared/scene-repair.test.d.ts +1 -0
- package/dist/commands/_shared/status-jobs.d.ts +197 -0
- package/dist/commands/_shared/status-jobs.test.d.ts +1 -0
- package/dist/commands/_shared/storyboard-draft.d.ts +13 -0
- package/dist/commands/_shared/storyboard-draft.test.d.ts +1 -0
- package/dist/commands/_shared/storyboard-edit.d.ts +26 -0
- package/dist/commands/_shared/storyboard-edit.test.d.ts +1 -0
- package/dist/commands/_shared/storyboard-parse.d.ts +159 -0
- package/dist/commands/_shared/storyboard-parse.test.d.ts +1 -0
- package/dist/commands/_shared/storyboard-revise.d.ts +32 -0
- package/dist/commands/_shared/storyboard-revise.test.d.ts +1 -0
- package/dist/commands/_shared/timeline-project.d.ts +32 -0
- package/dist/commands/_shared/tts-resolve.d.ts +75 -0
- package/dist/commands/_shared/tts-resolve.test.d.ts +5 -0
- package/dist/commands/_shared/video-providers.d.ts +44 -0
- package/dist/commands/_shared/video-utils.d.ts +71 -0
- package/dist/commands/_shared/visual-styles.d.ts +55 -0
- package/dist/commands/_shared/visual-styles.test.d.ts +1 -0
- package/dist/commands/_shared/walkthroughs/walkthroughs.d.ts +47 -0
- package/dist/commands/_shared/walkthroughs/walkthroughs.test.d.ts +1 -0
- package/dist/commands/agent.d.ts +24 -0
- package/dist/commands/ai-analyze.d.ts +105 -0
- package/dist/commands/ai-animated-caption.d.ts +63 -0
- package/dist/commands/ai-audio.d.ts +92 -0
- package/dist/commands/ai-edit-cli.d.ts +13 -0
- package/dist/commands/ai-edit.d.ts +29 -0
- package/dist/commands/ai-fill-gaps.d.ts +15 -0
- package/dist/commands/ai-helpers.d.ts +26 -0
- package/dist/commands/ai-highlights.d.ts +126 -0
- package/dist/commands/ai-image.d.ts +71 -0
- package/dist/commands/ai-motion.d.ts +53 -0
- package/dist/commands/ai-review.d.ts +58 -0
- package/dist/commands/ai-script-pipeline-cli.d.ts +10 -0
- package/dist/commands/ai-script-pipeline.d.ts +74 -0
- package/dist/commands/ai-suggest-edit.d.ts +32 -0
- package/dist/commands/ai-video.d.ts +95 -0
- package/dist/commands/ai.test.d.ts +1 -0
- package/dist/commands/audio.d.ts +17 -0
- package/dist/commands/batch.d.ts +2 -0
- package/dist/commands/batch.test.d.ts +1 -0
- package/dist/commands/build.d.ts +2 -0
- package/dist/commands/completion.d.ts +20 -0
- package/dist/commands/completion.test.d.ts +1 -0
- package/dist/commands/context.d.ts +7 -0
- package/dist/commands/context.test.d.ts +1 -0
- package/dist/commands/demo.d.ts +6 -0
- package/dist/commands/detect.d.ts +55 -0
- package/dist/commands/doctor.d.ts +5 -0
- package/dist/commands/doctor.test.d.ts +1 -0
- package/dist/commands/edit/motion-overlay.d.ts +30 -0
- package/dist/commands/edit-cmd.d.ts +112 -0
- package/dist/commands/envelope-snapshots.test.d.ts +32 -0
- package/dist/commands/export.d.ts +60 -0
- package/dist/commands/export.test.d.ts +1 -0
- package/dist/commands/generate/background.d.ts +22 -0
- package/dist/commands/generate/image.d.ts +8 -0
- package/dist/commands/generate/music-status.d.ts +20 -0
- package/dist/commands/generate/music.d.ts +27 -0
- package/dist/commands/generate/sound-effect.d.ts +19 -0
- package/dist/commands/generate/speech.d.ts +21 -0
- package/dist/commands/generate/storyboard.d.ts +27 -0
- package/dist/commands/generate/thumbnail.d.ts +8 -0
- package/dist/commands/generate/video-cancel.d.ts +8 -0
- package/dist/commands/generate/video-extend.d.ts +8 -0
- package/dist/commands/generate/video-status.d.ts +8 -0
- package/dist/commands/generate/video.d.ts +8 -0
- package/dist/commands/generate.d.ts +36 -0
- package/dist/commands/init.d.ts +24 -0
- package/dist/commands/init.test.d.ts +1 -0
- package/dist/commands/inspect.d.ts +20 -0
- package/dist/commands/media.d.ts +2 -0
- package/dist/commands/output.d.ts +80 -0
- package/dist/commands/output.test.d.ts +1 -0
- package/dist/commands/plan.d.ts +2 -0
- package/dist/commands/project.d.ts +2 -0
- package/dist/commands/project.test.d.ts +1 -0
- package/dist/commands/provider-config-cli.test.d.ts +1 -0
- package/dist/commands/q-flag-collision.test.d.ts +1 -0
- package/dist/commands/remix.d.ts +20 -0
- package/dist/commands/render.d.ts +2 -0
- package/dist/commands/run.d.ts +14 -0
- package/dist/commands/sanitize.d.ts +20 -0
- package/dist/commands/scene.d.ts +95 -0
- package/dist/commands/scene.test.d.ts +1 -0
- package/dist/commands/schema.d.ts +12 -0
- package/dist/commands/setup.d.ts +5 -0
- package/dist/commands/setup.test.d.ts +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/storyboard.d.ts +2 -0
- package/dist/commands/timeline.d.ts +2 -0
- package/dist/commands/timeline.test.d.ts +1 -0
- package/dist/commands/validate.d.ts +33 -0
- package/dist/commands/walkthrough.d.ts +21 -0
- package/dist/config/config.test.d.ts +1 -0
- package/dist/config/index.d.ts +110 -0
- package/dist/config/schema.d.ts +64 -0
- package/dist/config/scope.test.d.ts +1 -0
- package/dist/engine/index.d.ts +2 -0
- package/dist/engine/index.js +345 -0
- package/dist/engine/project.d.ts +93 -0
- package/dist/engine/project.test.d.ts +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +500 -330
- package/dist/pipeline/executor.d.ts +27 -0
- package/dist/pipeline/generate-actions.test.d.ts +1 -0
- package/dist/pipeline/index.d.ts +3 -0
- package/dist/pipeline/renderers/__tests__/html-template.test.d.ts +1 -0
- package/dist/pipeline/renderers/__tests__/integration.test.d.ts +1 -0
- package/dist/pipeline/renderers/chrome.d.ts +25 -0
- package/dist/pipeline/renderers/html-clips.d.ts +19 -0
- package/dist/pipeline/renderers/html-runtime.d.ts +6 -0
- package/dist/pipeline/renderers/html-template.d.ts +2 -0
- package/dist/pipeline/renderers/hyperframes.d.ts +7 -0
- package/dist/pipeline/renderers/project-builder.d.ts +7 -0
- package/dist/pipeline/renderers/types.d.ts +39 -0
- package/dist/pipeline/resolver.d.ts +19 -0
- package/dist/pipeline/scene-actions.test.d.ts +1 -0
- package/dist/pipeline/types.d.ts +81 -0
- package/dist/tools/adapters/agent.d.ts +9 -0
- package/dist/tools/adapters/agent.js +188 -0
- package/dist/tools/adapters/mcp.d.ts +34 -0
- package/dist/tools/adapters/mcp.js +173 -0
- package/dist/tools/define-tool.d.ts +82 -0
- package/dist/tools/define-tool.js +214 -0
- package/dist/tools/manifest/_project-io.d.ts +13 -0
- package/dist/tools/manifest/agent-only.d.ts +236 -0
- package/dist/tools/manifest/audio.d.ts +93 -0
- package/dist/tools/manifest/detect.d.ts +47 -0
- package/dist/tools/manifest/edit.d.ts +398 -0
- package/dist/tools/manifest/export.d.ts +27 -0
- package/dist/tools/manifest/generate.d.ts +310 -0
- package/dist/tools/manifest/index.d.ts +22 -0
- package/dist/tools/manifest/index.js +60812 -0
- package/dist/tools/manifest/inspect.d.ts +139 -0
- package/dist/tools/manifest/project.d.ts +33 -0
- package/dist/tools/manifest/remix.d.ts +154 -0
- package/dist/tools/manifest/scene.d.ts +221 -0
- package/dist/tools/manifest/status.d.ts +36 -0
- package/dist/tools/manifest/storyboard.d.ts +136 -0
- package/dist/tools/manifest/timeline.d.ts +173 -0
- package/dist/tools/manifest/walkthrough.d.ts +22 -0
- package/dist/tools/manifest.test.d.ts +13 -0
- package/dist/tools/zod-to-json-schema.d.ts +47 -0
- package/dist/utils/agent-host-detect.d.ts +61 -0
- package/dist/utils/agent-host-detect.test.d.ts +1 -0
- package/dist/utils/api-key.d.ts +58 -0
- package/dist/utils/api-key.test.d.ts +1 -0
- package/dist/utils/audio.d.ts +22 -0
- package/dist/utils/clipboard.d.ts +27 -0
- package/dist/utils/clipboard.test.d.ts +1 -0
- package/dist/utils/exec-safe.d.ts +21 -0
- package/dist/utils/first-run.d.ts +16 -0
- package/dist/utils/input-validation.d.ts +26 -0
- package/dist/utils/key-format.d.ts +15 -0
- package/dist/utils/key-live-test.d.ts +29 -0
- package/dist/utils/key-live-test.test.d.ts +1 -0
- package/dist/utils/open-url.d.ts +26 -0
- package/dist/utils/open-url.test.d.ts +1 -0
- package/dist/utils/project-resolver.d.ts +30 -0
- package/dist/utils/project-resolver.test.d.ts +8 -0
- package/dist/utils/provider-resolver.d.ts +32 -0
- package/dist/utils/provider-resolver.test.d.ts +13 -0
- package/dist/utils/remotion.d.ts +201 -0
- package/dist/utils/subtitle.d.ts +64 -0
- package/dist/utils/subtitle.test.d.ts +1 -0
- package/dist/utils/tty.d.ts +86 -0
- package/dist/utils/tty.test.d.ts +1 -0
- package/dist/utils/upload-host.d.ts +15 -0
- package/dist/utils/upload-host.test.d.ts +1 -0
- package/package.json +15 -115
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module define-tool
|
|
3
|
+
* @description Single source of truth DSL for VibeFrame tool definitions.
|
|
4
|
+
*
|
|
5
|
+
* Each tool is declared once via `defineTool({...})` with a Zod schema, an
|
|
6
|
+
* `execute` function, and metadata. The MCP server (`packages/mcp-server`)
|
|
7
|
+
* and the in-process Agent (`packages/cli/src/agent/tools`) both consume the
|
|
8
|
+
* manifest via thin adapters — no tool definition is ever duplicated across
|
|
9
|
+
* surfaces.
|
|
10
|
+
*
|
|
11
|
+
* The CLI Commander tree (`packages/cli/src/commands/*.ts`) is intentionally
|
|
12
|
+
* left hand-written. Its short flags, `--no-foo` negations, variadic args,
|
|
13
|
+
* and custom validators don't fit cleanly into a metadata sidecar. The
|
|
14
|
+
* Commander chains call the same `executeXxx` engine functions that the
|
|
15
|
+
* manifest entries call, so the CLI stays in sync via the existing
|
|
16
|
+
* `cli-sync.test.ts` invariant.
|
|
17
|
+
*
|
|
18
|
+
* See `/Users/kiyeonjeon/.claude/plans/logical-wibbling-sonnet.md` for the
|
|
19
|
+
* full v0.65 migration plan.
|
|
20
|
+
*/
|
|
21
|
+
import { z, type ZodTypeAny } from "zod";
|
|
22
|
+
import { type ProductSurface } from "../commands/_shared/product-surface.js";
|
|
23
|
+
export type CostTier = "free" | "low" | "medium" | "high" | "very-high";
|
|
24
|
+
export type Surface = "mcp" | "agent";
|
|
25
|
+
export interface ExecuteContext {
|
|
26
|
+
/** Resolves relative paths in tool args (`process.cwd()` for MCP/CLI; `AgentContext.workingDirectory` for Agent). */
|
|
27
|
+
workingDirectory: string;
|
|
28
|
+
/** The surface invoking the tool. Lets executes branch on JSON vs human output if needed. */
|
|
29
|
+
surface: "cli" | Surface;
|
|
30
|
+
/**
|
|
31
|
+
* Agent-only mutable state. Populated when invoked via the in-process agent
|
|
32
|
+
* REPL; `undefined` for MCP/CLI. Tools that read or set the "current
|
|
33
|
+
* project" pointer (e.g. project_open/project_save) declare
|
|
34
|
+
* `surfaces: ["agent"]` and access this via `ctx.agent?`.
|
|
35
|
+
*/
|
|
36
|
+
agent?: {
|
|
37
|
+
projectPath: string | null;
|
|
38
|
+
setProjectPath(path: string): void;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export interface ToolExecuteResult {
|
|
42
|
+
success: boolean;
|
|
43
|
+
/** JSON-stringifiable payload. MCP returns `JSON.stringify(data)`; Agent uses humanLines first, falls back to data. */
|
|
44
|
+
data?: Record<string, unknown>;
|
|
45
|
+
/** Human-readable lines for Agent REPL output. Optional — adapter falls back to JSON if absent. */
|
|
46
|
+
humanLines?: readonly string[];
|
|
47
|
+
error?: string;
|
|
48
|
+
}
|
|
49
|
+
export interface ToolDefinition<S extends ZodTypeAny = ZodTypeAny> {
|
|
50
|
+
/** snake_case canonical name (used by MCP `tools/list` and Agent registry). */
|
|
51
|
+
name: string;
|
|
52
|
+
/** Group this tool belongs to ("scene" | "audio" | "edit" | …). Drives skill regen + sync-counts. */
|
|
53
|
+
category: string;
|
|
54
|
+
/** Cost tier from `.claude/rules/architecture.md` cost table. */
|
|
55
|
+
cost: CostTier;
|
|
56
|
+
/** Product-facing command classification. Transport surfaces use `surfaces`. */
|
|
57
|
+
productSurface?: ProductSurface;
|
|
58
|
+
/** Preferred replacement when `productSurface` is legacy. */
|
|
59
|
+
replacement?: string;
|
|
60
|
+
/** Short explanation for product-surface routing. */
|
|
61
|
+
note?: string;
|
|
62
|
+
/** Identical for MCP description and Agent description. One paragraph. */
|
|
63
|
+
description: string;
|
|
64
|
+
/** Single source of truth for argument shape. Must be a `z.object({...})`. */
|
|
65
|
+
schema: S;
|
|
66
|
+
/** Surfaces the tool lives on. Defaults to `["mcp", "agent"]` when omitted. */
|
|
67
|
+
surfaces?: readonly Surface[];
|
|
68
|
+
/** Engine fn. Receives Zod-validated args. */
|
|
69
|
+
execute: (args: z.infer<S>, ctx: ExecuteContext) => Promise<ToolExecuteResult>;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Type erasure helper for collecting tools into the manifest array.
|
|
73
|
+
*
|
|
74
|
+
* `ToolDefinition` is generic over the Zod schema type, so a heterogeneous
|
|
75
|
+
* array of tools each with different schemas can't directly satisfy
|
|
76
|
+
* `ToolDefinition<ZodTypeAny>[]` (Zod's generic is invariant). At the
|
|
77
|
+
* manifest aggregation boundary we cast individual tools to this erased
|
|
78
|
+
* shape — the adapters use `tool.schema.safeParse()` which doesn't need the
|
|
79
|
+
* narrow type.
|
|
80
|
+
*/
|
|
81
|
+
export type AnyTool = ToolDefinition<ZodTypeAny>;
|
|
82
|
+
export declare function defineTool<S extends ZodTypeAny>(t: ToolDefinition<S>): ToolDefinition<S>;
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { createRequire as __vfCreateRequire } from 'node:module';
|
|
2
|
+
const require = __vfCreateRequire(import.meta.url);
|
|
3
|
+
|
|
4
|
+
// src/commands/_shared/product-surface.ts
|
|
5
|
+
var EXPLICIT_COMMAND_METADATA = {
|
|
6
|
+
setup: { surface: "public", note: "Initial configuration helper." },
|
|
7
|
+
init: { surface: "public", note: "Storyboard-to-video cold-start entrypoint." },
|
|
8
|
+
plan: { surface: "public", note: "Storyboard-to-video planning contract." },
|
|
9
|
+
build: { surface: "public", note: "Primary storyboard-to-video build engine." },
|
|
10
|
+
render: { surface: "public", note: "Project render entrypoint." },
|
|
11
|
+
doctor: { surface: "public", note: "System and provider health check." },
|
|
12
|
+
guide: { surface: "public", note: "Workflow chooser and first-run guidance." },
|
|
13
|
+
demo: { surface: "advanced", note: "Smoke-test/demo helper, not a core workflow." },
|
|
14
|
+
run: { surface: "agent", note: "Automation surface for YAML pipelines." },
|
|
15
|
+
context: { surface: "agent", note: "Host-agent integration contract." },
|
|
16
|
+
schema: { surface: "agent", note: "Machine-readable command discovery." },
|
|
17
|
+
completion: { surface: "advanced", note: "Shell ergonomics helper." },
|
|
18
|
+
agent: {
|
|
19
|
+
surface: "advanced",
|
|
20
|
+
note: "Optional fallback REPL; external coding agents are the primary workflow."
|
|
21
|
+
},
|
|
22
|
+
"generate.image": { surface: "public" },
|
|
23
|
+
"generate.video": { surface: "public" },
|
|
24
|
+
"generate.narration": { surface: "public", note: "Product-facing TTS command." },
|
|
25
|
+
"generate.speech": {
|
|
26
|
+
surface: "legacy",
|
|
27
|
+
replacement: "vibe generate narration",
|
|
28
|
+
note: "Compatibility alias for product-facing narration generation."
|
|
29
|
+
},
|
|
30
|
+
"generate.sound-effect": { surface: "public" },
|
|
31
|
+
"generate.music": { surface: "public" },
|
|
32
|
+
"generate.thumbnail": { surface: "public" },
|
|
33
|
+
"generate.music-status": {
|
|
34
|
+
surface: "legacy",
|
|
35
|
+
replacement: "vibe status job <job-id> --json",
|
|
36
|
+
note: "Provider-task polling primitive retained for compatibility."
|
|
37
|
+
},
|
|
38
|
+
"generate.video-status": {
|
|
39
|
+
surface: "legacy",
|
|
40
|
+
replacement: "vibe status job <job-id> --json",
|
|
41
|
+
note: "Provider-task polling primitive retained for compatibility."
|
|
42
|
+
},
|
|
43
|
+
"generate.storyboard": {
|
|
44
|
+
surface: "legacy",
|
|
45
|
+
replacement: "vibe init --from <brief> or vibe storyboard revise",
|
|
46
|
+
note: "Project-ready storyboard drafting belongs in init/revise."
|
|
47
|
+
},
|
|
48
|
+
"generate.background": {
|
|
49
|
+
surface: "legacy",
|
|
50
|
+
replacement: "vibe generate image or vibe build --stage assets",
|
|
51
|
+
note: "Backdrops are generated through image generation or the project build."
|
|
52
|
+
},
|
|
53
|
+
"generate.motion": {
|
|
54
|
+
surface: "advanced",
|
|
55
|
+
replacement: "vibe edit motion-overlay or vibe build --stage compose",
|
|
56
|
+
note: "Standalone motion generation is a power primitive."
|
|
57
|
+
},
|
|
58
|
+
"generate.video-cancel": { surface: "advanced", note: "Provider lifecycle control." },
|
|
59
|
+
"generate.video-extend": { surface: "advanced", note: "Provider lifecycle control." },
|
|
60
|
+
"edit.caption": { surface: "public" },
|
|
61
|
+
"edit.silence-cut": { surface: "public" },
|
|
62
|
+
"edit.jump-cut": { surface: "public" },
|
|
63
|
+
"edit.reframe": { surface: "public" },
|
|
64
|
+
"edit.upscale": { surface: "public" },
|
|
65
|
+
"edit.noise-reduce": { surface: "public" },
|
|
66
|
+
"edit.fade": { surface: "advanced" },
|
|
67
|
+
"edit.translate-srt": { surface: "advanced" },
|
|
68
|
+
"edit.fill-gaps": { surface: "advanced" },
|
|
69
|
+
"edit.motion-overlay": { surface: "advanced" },
|
|
70
|
+
"edit.grade": { surface: "advanced" },
|
|
71
|
+
"edit.text-overlay": { surface: "advanced" },
|
|
72
|
+
"edit.speed-ramp": { surface: "advanced" },
|
|
73
|
+
"edit.image": { surface: "advanced" },
|
|
74
|
+
"edit.interpolate": { surface: "advanced" },
|
|
75
|
+
"edit.animated-caption": {
|
|
76
|
+
surface: "legacy",
|
|
77
|
+
replacement: "vibe remix animated-caption",
|
|
78
|
+
note: "Use the remix command for animated caption workflows."
|
|
79
|
+
},
|
|
80
|
+
"inspect.project": { surface: "public" },
|
|
81
|
+
"inspect.render": { surface: "public" },
|
|
82
|
+
"inspect.media": { surface: "public" },
|
|
83
|
+
"inspect.video": {
|
|
84
|
+
surface: "legacy",
|
|
85
|
+
replacement: "vibe inspect media",
|
|
86
|
+
note: "Compatibility alias for media understanding."
|
|
87
|
+
},
|
|
88
|
+
"inspect.review": {
|
|
89
|
+
surface: "legacy",
|
|
90
|
+
replacement: "vibe inspect render --ai",
|
|
91
|
+
note: "Project render review now lives under inspect render."
|
|
92
|
+
},
|
|
93
|
+
"inspect.suggest": {
|
|
94
|
+
surface: "advanced",
|
|
95
|
+
note: "Suggestion primitive; reports should drive host-agent edits."
|
|
96
|
+
},
|
|
97
|
+
"audio.transcribe": { surface: "public" },
|
|
98
|
+
"audio.dub": { surface: "public" },
|
|
99
|
+
"audio.duck": { surface: "public" },
|
|
100
|
+
"audio.isolate": { surface: "advanced" },
|
|
101
|
+
"audio.clone-voice": {
|
|
102
|
+
surface: "advanced",
|
|
103
|
+
note: "Requires explicit user consent for voice cloning."
|
|
104
|
+
},
|
|
105
|
+
"audio.list-voices": { surface: "advanced", note: "Provider discovery helper." },
|
|
106
|
+
"remix.highlights": { surface: "public" },
|
|
107
|
+
"remix.auto-shorts": { surface: "public" },
|
|
108
|
+
"remix.animated-caption": { surface: "public" },
|
|
109
|
+
"remix.regenerate-scene": {
|
|
110
|
+
surface: "legacy",
|
|
111
|
+
replacement: "vibe build <project> --beat <id> --force --json",
|
|
112
|
+
note: "Scene regeneration belongs in the project build flow."
|
|
113
|
+
},
|
|
114
|
+
"storyboard.validate": { surface: "public" },
|
|
115
|
+
"storyboard.revise": { surface: "public" },
|
|
116
|
+
"storyboard.list": { surface: "agent" },
|
|
117
|
+
"storyboard.get": { surface: "agent" },
|
|
118
|
+
"storyboard.set": { surface: "agent" },
|
|
119
|
+
"storyboard.move": { surface: "agent" },
|
|
120
|
+
"status.job": { surface: "public" },
|
|
121
|
+
"status.project": { surface: "public" },
|
|
122
|
+
"scene.list-styles": { surface: "public" },
|
|
123
|
+
"scene.lint": { surface: "agent" },
|
|
124
|
+
"scene.repair": { surface: "agent" },
|
|
125
|
+
"scene.add": { surface: "advanced" },
|
|
126
|
+
"scene.install-skill": {
|
|
127
|
+
surface: "internal",
|
|
128
|
+
note: "Build/init installs the host-agent composition skill when needed."
|
|
129
|
+
},
|
|
130
|
+
"scene.compose-prompts": {
|
|
131
|
+
surface: "internal",
|
|
132
|
+
note: "Agent-mode build primitive; prefer vibe build --mode agent."
|
|
133
|
+
},
|
|
134
|
+
"project.create": {
|
|
135
|
+
surface: "legacy",
|
|
136
|
+
replacement: "vibe timeline create",
|
|
137
|
+
note: "Legacy timeline project alias."
|
|
138
|
+
},
|
|
139
|
+
"project.info": {
|
|
140
|
+
surface: "legacy",
|
|
141
|
+
replacement: "vibe timeline info",
|
|
142
|
+
note: "Legacy timeline project alias."
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
function productSurfaceForCommandPath(path) {
|
|
146
|
+
const explicit = EXPLICIT_COMMAND_METADATA[path];
|
|
147
|
+
if (explicit) return explicit;
|
|
148
|
+
if (path.startsWith("timeline.")) {
|
|
149
|
+
return { surface: "advanced", note: "Power tool for low-level timeline JSON edits." };
|
|
150
|
+
}
|
|
151
|
+
if (path.startsWith("batch.")) {
|
|
152
|
+
return { surface: "advanced", note: "Power tool for bulk timeline/media operations." };
|
|
153
|
+
}
|
|
154
|
+
if (path.startsWith("media.")) {
|
|
155
|
+
return { surface: "advanced", note: "Script utility for media metadata." };
|
|
156
|
+
}
|
|
157
|
+
if (path.startsWith("detect.")) return { surface: "public" };
|
|
158
|
+
if (path.startsWith("export.")) {
|
|
159
|
+
return { surface: "advanced", note: "Lower-level export helper." };
|
|
160
|
+
}
|
|
161
|
+
if (path.startsWith("fs.")) {
|
|
162
|
+
return { surface: "internal", note: "In-process agent filesystem helper." };
|
|
163
|
+
}
|
|
164
|
+
return { surface: "advanced" };
|
|
165
|
+
}
|
|
166
|
+
function commandPathFromToolName(name) {
|
|
167
|
+
if (["init", "plan", "build", "render", "guide"].includes(name)) return name;
|
|
168
|
+
if (name.startsWith("fs_")) return name.replace("_", ".");
|
|
169
|
+
const firstUnderscore = name.indexOf("_");
|
|
170
|
+
if (firstUnderscore === -1) return name;
|
|
171
|
+
const group = name.slice(0, firstUnderscore);
|
|
172
|
+
const leaf = name.slice(firstUnderscore + 1).replace(/_/g, "-");
|
|
173
|
+
return `${group}.${leaf}`;
|
|
174
|
+
}
|
|
175
|
+
function productSurfaceForToolName(name) {
|
|
176
|
+
return productSurfaceForCommandPath(commandPathFromToolName(name));
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// src/tools/define-tool.ts
|
|
180
|
+
var NAME_PATTERN = /^[a-z][a-z0-9]*(_[a-z0-9]+)*$/;
|
|
181
|
+
function validateToolDefinition(t) {
|
|
182
|
+
if (!NAME_PATTERN.test(t.name)) {
|
|
183
|
+
throw new Error(
|
|
184
|
+
`Tool name "${t.name}" must be snake_case (matches /^[a-z][a-z0-9]*(_[a-z0-9]+)*$/)`
|
|
185
|
+
);
|
|
186
|
+
}
|
|
187
|
+
if (!t.category || !/^[a-z-]+$/.test(t.category)) {
|
|
188
|
+
throw new Error(
|
|
189
|
+
`Tool "${t.name}" has invalid category "${t.category}" (must be lowercase, dash-separated)`
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
const schemaTypeName = t.schema._def?.typeName;
|
|
193
|
+
if (schemaTypeName !== "ZodObject") {
|
|
194
|
+
throw new Error(`Tool "${t.name}" schema must be a z.object({...}); got ${schemaTypeName}`);
|
|
195
|
+
}
|
|
196
|
+
if (t.surfaces && t.surfaces.length === 0) {
|
|
197
|
+
throw new Error(
|
|
198
|
+
`Tool "${t.name}" has empty surfaces array; use [] only via explicit type override`
|
|
199
|
+
);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
function defineTool(t) {
|
|
203
|
+
validateToolDefinition(t);
|
|
204
|
+
const surface = productSurfaceForToolName(t.name);
|
|
205
|
+
return {
|
|
206
|
+
...t,
|
|
207
|
+
productSurface: t.productSurface ?? surface.surface,
|
|
208
|
+
replacement: t.replacement ?? surface.replacement,
|
|
209
|
+
note: t.note ?? surface.note
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
export {
|
|
213
|
+
defineTool
|
|
214
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module manifest/_project-io
|
|
3
|
+
* @description Shared load/save helpers for timeline JSON files. Used by
|
|
4
|
+
* timeline + project manifest entries to read/write the on-disk timeline
|
|
5
|
+
* state. Mirrors the helpers previously embedded in
|
|
6
|
+
* `packages/mcp-server/src/tools/project.ts`.
|
|
7
|
+
*/
|
|
8
|
+
import { Project } from "../../engine/index.js";
|
|
9
|
+
export declare function loadProject(projectPath: string, cwd: string): Promise<{
|
|
10
|
+
project: Project;
|
|
11
|
+
absPath: string;
|
|
12
|
+
}>;
|
|
13
|
+
export declare function saveProject(absPath: string, project: Project): Promise<void>;
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module manifest/agent-only
|
|
3
|
+
* @description Tools that only make sense inside the in-process agent REPL —
|
|
4
|
+
* filesystem access (`fs_*`), project-level batch operations (`batch_*`),
|
|
5
|
+
* and FFmpeg-driven media wrappers (`media_*`).
|
|
6
|
+
*
|
|
7
|
+
* These all use `surfaces: ["agent"]` so the MCP adapter filters them out.
|
|
8
|
+
* MCP clients have their own host-side filesystem affordances and would
|
|
9
|
+
* never call into our handler shell anyway.
|
|
10
|
+
*
|
|
11
|
+
* Dependencies are deliberately limited to Node `fs` + `@vibeframe/core`
|
|
12
|
+
* (Project class) + `execSafe`/`ffprobeDuration`. No AI provider SDKs —
|
|
13
|
+
* adding any would balloon the mcp-server esbuild bundle even though the
|
|
14
|
+
* entries never reach MCP at runtime.
|
|
15
|
+
*/
|
|
16
|
+
import { z } from "zod";
|
|
17
|
+
import { type AnyTool } from "../define-tool.js";
|
|
18
|
+
export declare const fsListTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
19
|
+
path: z.ZodOptional<z.ZodString>;
|
|
20
|
+
pattern: z.ZodOptional<z.ZodString>;
|
|
21
|
+
}, "strip", z.ZodTypeAny, {
|
|
22
|
+
path?: string | undefined;
|
|
23
|
+
pattern?: string | undefined;
|
|
24
|
+
}, {
|
|
25
|
+
path?: string | undefined;
|
|
26
|
+
pattern?: string | undefined;
|
|
27
|
+
}>>;
|
|
28
|
+
export declare const fsReadTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
29
|
+
path: z.ZodString;
|
|
30
|
+
}, "strip", z.ZodTypeAny, {
|
|
31
|
+
path: string;
|
|
32
|
+
}, {
|
|
33
|
+
path: string;
|
|
34
|
+
}>>;
|
|
35
|
+
export declare const fsWriteTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
36
|
+
path: z.ZodString;
|
|
37
|
+
content: z.ZodString;
|
|
38
|
+
}, "strip", z.ZodTypeAny, {
|
|
39
|
+
path: string;
|
|
40
|
+
content: string;
|
|
41
|
+
}, {
|
|
42
|
+
path: string;
|
|
43
|
+
content: string;
|
|
44
|
+
}>>;
|
|
45
|
+
export declare const fsExistsTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
46
|
+
path: z.ZodString;
|
|
47
|
+
}, "strip", z.ZodTypeAny, {
|
|
48
|
+
path: string;
|
|
49
|
+
}, {
|
|
50
|
+
path: string;
|
|
51
|
+
}>>;
|
|
52
|
+
export declare const batchImportTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
53
|
+
project: z.ZodString;
|
|
54
|
+
directory: z.ZodString;
|
|
55
|
+
recursive: z.ZodOptional<z.ZodBoolean>;
|
|
56
|
+
filter: z.ZodOptional<z.ZodString>;
|
|
57
|
+
imageDuration: z.ZodOptional<z.ZodNumber>;
|
|
58
|
+
}, "strip", z.ZodTypeAny, {
|
|
59
|
+
project: string;
|
|
60
|
+
directory: string;
|
|
61
|
+
filter?: string | undefined;
|
|
62
|
+
recursive?: boolean | undefined;
|
|
63
|
+
imageDuration?: number | undefined;
|
|
64
|
+
}, {
|
|
65
|
+
project: string;
|
|
66
|
+
directory: string;
|
|
67
|
+
filter?: string | undefined;
|
|
68
|
+
recursive?: boolean | undefined;
|
|
69
|
+
imageDuration?: number | undefined;
|
|
70
|
+
}>>;
|
|
71
|
+
export declare const batchConcatTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
72
|
+
project: z.ZodString;
|
|
73
|
+
sourceIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
74
|
+
useAll: z.ZodOptional<z.ZodBoolean>;
|
|
75
|
+
trackId: z.ZodOptional<z.ZodString>;
|
|
76
|
+
startTime: z.ZodOptional<z.ZodNumber>;
|
|
77
|
+
gap: z.ZodOptional<z.ZodNumber>;
|
|
78
|
+
}, "strip", z.ZodTypeAny, {
|
|
79
|
+
project: string;
|
|
80
|
+
trackId?: string | undefined;
|
|
81
|
+
startTime?: number | undefined;
|
|
82
|
+
gap?: number | undefined;
|
|
83
|
+
sourceIds?: string[] | undefined;
|
|
84
|
+
useAll?: boolean | undefined;
|
|
85
|
+
}, {
|
|
86
|
+
project: string;
|
|
87
|
+
trackId?: string | undefined;
|
|
88
|
+
startTime?: number | undefined;
|
|
89
|
+
gap?: number | undefined;
|
|
90
|
+
sourceIds?: string[] | undefined;
|
|
91
|
+
useAll?: boolean | undefined;
|
|
92
|
+
}>>;
|
|
93
|
+
export declare const batchApplyEffectTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
94
|
+
project: z.ZodString;
|
|
95
|
+
clipIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
96
|
+
useAll: z.ZodOptional<z.ZodBoolean>;
|
|
97
|
+
effectType: z.ZodEnum<["fadeIn", "fadeOut", "blur", "brightness", "contrast", "saturation", "speed", "volume"]>;
|
|
98
|
+
duration: z.ZodOptional<z.ZodNumber>;
|
|
99
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
100
|
+
}, "strip", z.ZodTypeAny, {
|
|
101
|
+
project: string;
|
|
102
|
+
effectType: "fadeIn" | "fadeOut" | "blur" | "brightness" | "contrast" | "saturation" | "speed" | "volume";
|
|
103
|
+
duration?: number | undefined;
|
|
104
|
+
params?: Record<string, unknown> | undefined;
|
|
105
|
+
clipIds?: string[] | undefined;
|
|
106
|
+
useAll?: boolean | undefined;
|
|
107
|
+
}, {
|
|
108
|
+
project: string;
|
|
109
|
+
effectType: "fadeIn" | "fadeOut" | "blur" | "brightness" | "contrast" | "saturation" | "speed" | "volume";
|
|
110
|
+
duration?: number | undefined;
|
|
111
|
+
params?: Record<string, unknown> | undefined;
|
|
112
|
+
clipIds?: string[] | undefined;
|
|
113
|
+
useAll?: boolean | undefined;
|
|
114
|
+
}>>;
|
|
115
|
+
export declare const timelineClearTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
116
|
+
project: z.ZodString;
|
|
117
|
+
what: z.ZodOptional<z.ZodEnum<["clips", "tracks", "sources", "all"]>>;
|
|
118
|
+
keepTracks: z.ZodOptional<z.ZodBoolean>;
|
|
119
|
+
}, "strip", z.ZodTypeAny, {
|
|
120
|
+
project: string;
|
|
121
|
+
what?: "tracks" | "clips" | "sources" | "all" | undefined;
|
|
122
|
+
keepTracks?: boolean | undefined;
|
|
123
|
+
}, {
|
|
124
|
+
project: string;
|
|
125
|
+
what?: "tracks" | "clips" | "sources" | "all" | undefined;
|
|
126
|
+
keepTracks?: boolean | undefined;
|
|
127
|
+
}>>;
|
|
128
|
+
export declare const projectSetTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
129
|
+
projectPath: z.ZodString;
|
|
130
|
+
name: z.ZodOptional<z.ZodString>;
|
|
131
|
+
aspectRatio: z.ZodOptional<z.ZodEnum<["16:9", "9:16", "1:1", "4:5"]>>;
|
|
132
|
+
fps: z.ZodOptional<z.ZodNumber>;
|
|
133
|
+
}, "strip", z.ZodTypeAny, {
|
|
134
|
+
projectPath: string;
|
|
135
|
+
name?: string | undefined;
|
|
136
|
+
aspectRatio?: "16:9" | "9:16" | "1:1" | "4:5" | undefined;
|
|
137
|
+
fps?: number | undefined;
|
|
138
|
+
}, {
|
|
139
|
+
projectPath: string;
|
|
140
|
+
name?: string | undefined;
|
|
141
|
+
aspectRatio?: "16:9" | "9:16" | "1:1" | "4:5" | undefined;
|
|
142
|
+
fps?: number | undefined;
|
|
143
|
+
}>>;
|
|
144
|
+
export declare const projectOpenTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
145
|
+
projectPath: z.ZodString;
|
|
146
|
+
}, "strip", z.ZodTypeAny, {
|
|
147
|
+
projectPath: string;
|
|
148
|
+
}, {
|
|
149
|
+
projectPath: string;
|
|
150
|
+
}>>;
|
|
151
|
+
export declare const projectSaveTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
152
|
+
projectPath: z.ZodOptional<z.ZodString>;
|
|
153
|
+
}, "strip", z.ZodTypeAny, {
|
|
154
|
+
projectPath?: string | undefined;
|
|
155
|
+
}, {
|
|
156
|
+
projectPath?: string | undefined;
|
|
157
|
+
}>>;
|
|
158
|
+
export declare const exportAudioTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
159
|
+
project: z.ZodString;
|
|
160
|
+
output: z.ZodOptional<z.ZodString>;
|
|
161
|
+
format: z.ZodOptional<z.ZodEnum<["mp3", "wav", "aac"]>>;
|
|
162
|
+
}, "strip", z.ZodTypeAny, {
|
|
163
|
+
project: string;
|
|
164
|
+
output?: string | undefined;
|
|
165
|
+
format?: "mp3" | "wav" | "aac" | undefined;
|
|
166
|
+
}, {
|
|
167
|
+
project: string;
|
|
168
|
+
output?: string | undefined;
|
|
169
|
+
format?: "mp3" | "wav" | "aac" | undefined;
|
|
170
|
+
}>>;
|
|
171
|
+
export declare const exportSubtitlesTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
172
|
+
project: z.ZodString;
|
|
173
|
+
output: z.ZodOptional<z.ZodString>;
|
|
174
|
+
format: z.ZodOptional<z.ZodEnum<["srt", "vtt"]>>;
|
|
175
|
+
}, "strip", z.ZodTypeAny, {
|
|
176
|
+
project: string;
|
|
177
|
+
output?: string | undefined;
|
|
178
|
+
format?: "srt" | "vtt" | undefined;
|
|
179
|
+
}, {
|
|
180
|
+
project: string;
|
|
181
|
+
output?: string | undefined;
|
|
182
|
+
format?: "srt" | "vtt" | undefined;
|
|
183
|
+
}>>;
|
|
184
|
+
export declare const mediaInfoTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
185
|
+
path: z.ZodString;
|
|
186
|
+
}, "strip", z.ZodTypeAny, {
|
|
187
|
+
path: string;
|
|
188
|
+
}, {
|
|
189
|
+
path: string;
|
|
190
|
+
}>>;
|
|
191
|
+
export declare const mediaCompressTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
192
|
+
input: z.ZodString;
|
|
193
|
+
output: z.ZodOptional<z.ZodString>;
|
|
194
|
+
quality: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
195
|
+
maxSize: z.ZodOptional<z.ZodString>;
|
|
196
|
+
}, "strip", z.ZodTypeAny, {
|
|
197
|
+
input: string;
|
|
198
|
+
output?: string | undefined;
|
|
199
|
+
quality?: "high" | "low" | "medium" | undefined;
|
|
200
|
+
maxSize?: string | undefined;
|
|
201
|
+
}, {
|
|
202
|
+
input: string;
|
|
203
|
+
output?: string | undefined;
|
|
204
|
+
quality?: "high" | "low" | "medium" | undefined;
|
|
205
|
+
maxSize?: string | undefined;
|
|
206
|
+
}>>;
|
|
207
|
+
export declare const mediaConvertTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
208
|
+
input: z.ZodString;
|
|
209
|
+
output: z.ZodString;
|
|
210
|
+
codec: z.ZodOptional<z.ZodString>;
|
|
211
|
+
audioCodec: z.ZodOptional<z.ZodString>;
|
|
212
|
+
}, "strip", z.ZodTypeAny, {
|
|
213
|
+
output: string;
|
|
214
|
+
input: string;
|
|
215
|
+
audioCodec?: string | undefined;
|
|
216
|
+
codec?: string | undefined;
|
|
217
|
+
}, {
|
|
218
|
+
output: string;
|
|
219
|
+
input: string;
|
|
220
|
+
audioCodec?: string | undefined;
|
|
221
|
+
codec?: string | undefined;
|
|
222
|
+
}>>;
|
|
223
|
+
export declare const mediaConcatTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
224
|
+
inputs: z.ZodArray<z.ZodString, "many">;
|
|
225
|
+
output: z.ZodString;
|
|
226
|
+
reencode: z.ZodOptional<z.ZodBoolean>;
|
|
227
|
+
}, "strip", z.ZodTypeAny, {
|
|
228
|
+
output: string;
|
|
229
|
+
inputs: string[];
|
|
230
|
+
reencode?: boolean | undefined;
|
|
231
|
+
}, {
|
|
232
|
+
output: string;
|
|
233
|
+
inputs: string[];
|
|
234
|
+
reencode?: boolean | undefined;
|
|
235
|
+
}>>;
|
|
236
|
+
export declare const agentOnlyTools: readonly AnyTool[];
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module manifest/audio
|
|
3
|
+
* @description Audio post-processing tools.
|
|
4
|
+
* audio_transcribe (Whisper), audio_isolate (ElevenLabs vocals isolation),
|
|
5
|
+
* audio_clone_voice (ElevenLabs IVC), audio_dub (Whisper+Claude+ElevenLabs),
|
|
6
|
+
* audio_duck (FFmpeg sidechain).
|
|
7
|
+
*/
|
|
8
|
+
import { z } from "zod";
|
|
9
|
+
import { type AnyTool } from "../define-tool.js";
|
|
10
|
+
export declare const audioTranscribeTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
11
|
+
audioPath: z.ZodString;
|
|
12
|
+
language: z.ZodOptional<z.ZodString>;
|
|
13
|
+
output: z.ZodOptional<z.ZodString>;
|
|
14
|
+
format: z.ZodOptional<z.ZodString>;
|
|
15
|
+
}, "strip", z.ZodTypeAny, {
|
|
16
|
+
audioPath: string;
|
|
17
|
+
output?: string | undefined;
|
|
18
|
+
format?: string | undefined;
|
|
19
|
+
language?: string | undefined;
|
|
20
|
+
}, {
|
|
21
|
+
audioPath: string;
|
|
22
|
+
output?: string | undefined;
|
|
23
|
+
format?: string | undefined;
|
|
24
|
+
language?: string | undefined;
|
|
25
|
+
}>>;
|
|
26
|
+
export declare const audioIsolateTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
27
|
+
audioPath: z.ZodString;
|
|
28
|
+
output: z.ZodOptional<z.ZodString>;
|
|
29
|
+
}, "strip", z.ZodTypeAny, {
|
|
30
|
+
audioPath: string;
|
|
31
|
+
output?: string | undefined;
|
|
32
|
+
}, {
|
|
33
|
+
audioPath: string;
|
|
34
|
+
output?: string | undefined;
|
|
35
|
+
}>>;
|
|
36
|
+
export declare const audioVoiceCloneTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
37
|
+
samplePaths: z.ZodArray<z.ZodString, "many">;
|
|
38
|
+
name: z.ZodString;
|
|
39
|
+
description: z.ZodOptional<z.ZodString>;
|
|
40
|
+
removeNoise: z.ZodOptional<z.ZodBoolean>;
|
|
41
|
+
}, "strip", z.ZodTypeAny, {
|
|
42
|
+
name: string;
|
|
43
|
+
samplePaths: string[];
|
|
44
|
+
description?: string | undefined;
|
|
45
|
+
removeNoise?: boolean | undefined;
|
|
46
|
+
}, {
|
|
47
|
+
name: string;
|
|
48
|
+
samplePaths: string[];
|
|
49
|
+
description?: string | undefined;
|
|
50
|
+
removeNoise?: boolean | undefined;
|
|
51
|
+
}>>;
|
|
52
|
+
export declare const audioDubTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
53
|
+
mediaPath: z.ZodString;
|
|
54
|
+
language: z.ZodString;
|
|
55
|
+
source: z.ZodOptional<z.ZodString>;
|
|
56
|
+
voice: z.ZodOptional<z.ZodString>;
|
|
57
|
+
analyzeOnly: z.ZodOptional<z.ZodBoolean>;
|
|
58
|
+
output: z.ZodOptional<z.ZodString>;
|
|
59
|
+
}, "strip", z.ZodTypeAny, {
|
|
60
|
+
language: string;
|
|
61
|
+
mediaPath: string;
|
|
62
|
+
output?: string | undefined;
|
|
63
|
+
source?: string | undefined;
|
|
64
|
+
voice?: string | undefined;
|
|
65
|
+
analyzeOnly?: boolean | undefined;
|
|
66
|
+
}, {
|
|
67
|
+
language: string;
|
|
68
|
+
mediaPath: string;
|
|
69
|
+
output?: string | undefined;
|
|
70
|
+
source?: string | undefined;
|
|
71
|
+
voice?: string | undefined;
|
|
72
|
+
analyzeOnly?: boolean | undefined;
|
|
73
|
+
}>>;
|
|
74
|
+
export declare const audioDuckTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
75
|
+
musicPath: z.ZodString;
|
|
76
|
+
voicePath: z.ZodString;
|
|
77
|
+
output: z.ZodOptional<z.ZodString>;
|
|
78
|
+
threshold: z.ZodOptional<z.ZodString>;
|
|
79
|
+
ratio: z.ZodOptional<z.ZodString>;
|
|
80
|
+
}, "strip", z.ZodTypeAny, {
|
|
81
|
+
musicPath: string;
|
|
82
|
+
voicePath: string;
|
|
83
|
+
output?: string | undefined;
|
|
84
|
+
ratio?: string | undefined;
|
|
85
|
+
threshold?: string | undefined;
|
|
86
|
+
}, {
|
|
87
|
+
musicPath: string;
|
|
88
|
+
voicePath: string;
|
|
89
|
+
output?: string | undefined;
|
|
90
|
+
ratio?: string | undefined;
|
|
91
|
+
threshold?: string | undefined;
|
|
92
|
+
}>>;
|
|
93
|
+
export declare const audioTools: readonly AnyTool[];
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module manifest/detect
|
|
3
|
+
* @description FFmpeg-based detection (scenes, silence, beats). Free, no
|
|
4
|
+
* API keys.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
import { type AnyTool } from "../define-tool.js";
|
|
8
|
+
export declare const detectScenesTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
9
|
+
videoPath: z.ZodString;
|
|
10
|
+
threshold: z.ZodOptional<z.ZodNumber>;
|
|
11
|
+
outputPath: z.ZodOptional<z.ZodString>;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
videoPath: string;
|
|
14
|
+
outputPath?: string | undefined;
|
|
15
|
+
threshold?: number | undefined;
|
|
16
|
+
}, {
|
|
17
|
+
videoPath: string;
|
|
18
|
+
outputPath?: string | undefined;
|
|
19
|
+
threshold?: number | undefined;
|
|
20
|
+
}>>;
|
|
21
|
+
export declare const detectSilenceTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
22
|
+
mediaPath: z.ZodString;
|
|
23
|
+
noise: z.ZodOptional<z.ZodString>;
|
|
24
|
+
duration: z.ZodOptional<z.ZodString>;
|
|
25
|
+
outputPath: z.ZodOptional<z.ZodString>;
|
|
26
|
+
}, "strip", z.ZodTypeAny, {
|
|
27
|
+
mediaPath: string;
|
|
28
|
+
duration?: string | undefined;
|
|
29
|
+
outputPath?: string | undefined;
|
|
30
|
+
noise?: string | undefined;
|
|
31
|
+
}, {
|
|
32
|
+
mediaPath: string;
|
|
33
|
+
duration?: string | undefined;
|
|
34
|
+
outputPath?: string | undefined;
|
|
35
|
+
noise?: string | undefined;
|
|
36
|
+
}>>;
|
|
37
|
+
export declare const detectBeatsTool: import("../define-tool.js").ToolDefinition<z.ZodObject<{
|
|
38
|
+
audioPath: z.ZodString;
|
|
39
|
+
outputPath: z.ZodOptional<z.ZodString>;
|
|
40
|
+
}, "strip", z.ZodTypeAny, {
|
|
41
|
+
audioPath: string;
|
|
42
|
+
outputPath?: string | undefined;
|
|
43
|
+
}, {
|
|
44
|
+
audioPath: string;
|
|
45
|
+
outputPath?: string | undefined;
|
|
46
|
+
}>>;
|
|
47
|
+
export declare const detectTools: readonly AnyTool[];
|