@amg555/frameforge-mcp 2.3.3 → 2.3.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.
- package/CHANGELOG.md +23 -0
- package/README.md +2 -1
- package/package.json +1 -1
- package/plugins/video-pipeline/skills/video-pipeline/SKILL.md +1 -1
- package/plugins/video-pipeline/skills/video-pipeline/references/providers.md +11 -0
- package/scripts/deep-validate.js +2 -2
- package/src/cli/doctor.js +12 -5
- package/src/mcp-server/server.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,29 @@ All notable changes to FrameForge are documented here.
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
## [2.3.4] — 2026-11-09
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- **Full Code-Driven Video Production Harness** (`src/harness/`, `bin/harness.mjs`, `npx frameforge-harness`):
|
|
11
|
+
- H1 Browser resolution & GPU auto-selection (Direct3D11 / Metal / ANGLE)
|
|
12
|
+
- H2 Deterministic frame stepper & virtual clock injection
|
|
13
|
+
- H3 Resumable atomic frame worker pool (`.tmp` + `renameSync`, <1000B corruption checks)
|
|
14
|
+
- H4 Visual review generators: contact sheets, motion strips, 9:16 mobile crop previews
|
|
15
|
+
- H5 3-point history-leak & frame purity verification gate ($a === b \land a === c$) with `frames_sha256` digest
|
|
16
|
+
- H6 Pixel luminance and blind-spot frame math (blank, blown, corner-confined detection)
|
|
17
|
+
- H7 Determinism primitives in `engine.js` (`boilSeed`, `kf`, `onTwos`, `seg`, `pulse`, `shots`)
|
|
18
|
+
- H8 Broadcast-grade BT.709 color encoding & x264 VUI parameter tags
|
|
19
|
+
- H9 Unified CLI commands (`doctor`, `storyboard`, `verify`, `sheet`, `strip`, `crop`, `pixels`, `frames`, `encode`, `all`)
|
|
20
|
+
- **MCP `render_animation` parity**: added `verify`, `doctor`, `pixels` modes and structured `purityReport` return object.
|
|
21
|
+
- **VoxForge**: added `VOXFORGE_URL` detection to system doctor and documented in all provider tables.
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
- Fixed relative module imports in scaffolded projects (`./browser.mjs`, etc.).
|
|
25
|
+
- Enforced BT.709 color tags across all procedural scene fallbacks in `renderer.js`.
|
|
26
|
+
- Included `plugins/` skill templates and assets in npm package distribution.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
7
30
|
## [2.3.2] — 2026-11-06
|
|
8
31
|
|
|
9
32
|
### Added
|
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
[](https://www.npmjs.com/package/@amg555/frameforge-mcp)
|
|
10
10
|
[](LICENSE)
|
|
11
11
|
[](https://nodejs.org/)
|
|
12
|
-
[](CHANGELOG.md)
|
|
13
13
|
[](https://modelcontextprotocol.io/)
|
|
14
14
|
[](#testing)
|
|
15
15
|
|
|
@@ -219,6 +219,7 @@ Switch any provider with one `.env` change — no code changes.
|
|
|
219
219
|
| Provider | Free? | Key needed |
|
|
220
220
|
|----------|-------|------------|
|
|
221
221
|
| `edge-tts` | ✅ free, offline | none — **default** |
|
|
222
|
+
| `voxforge` | ✅ free, local/private | none — `VOXFORGE_URL` ([VoxForge](https://github.com/AMG555/VoxForge)) |
|
|
222
223
|
| `elevenlabs` | paid | `ELEVENLABS_API_KEY` |
|
|
223
224
|
| `azure` | paid | `AZURE_SPEECH_KEY` + `AZURE_SPEECH_REGION` |
|
|
224
225
|
| `openai` | paid | `OPENAI_API_KEY` |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amg555/frameforge-mcp",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.4",
|
|
4
4
|
"description": "FrameForge — AI video production engine for agentic IDEs. npx @amg555/frameforge-mcp. FFmpeg + TTS run on your machine. 17 MCP tools.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -41,7 +41,7 @@ IDE Agent (IBM Bob / Codex / opencode / Cursor / Windsurf / Claude Code)
|
|
|
41
41
|
│ LLM provider: PROVIDER_LLM=groq|openrouter|anthropic|gemini
|
|
42
42
|
│ |mistral|together|cerebras|openai
|
|
43
43
|
│ |ollama|webhook
|
|
44
|
-
│ TTS provider: PROVIDER_TTS=edge-tts|elevenlabs|azure|openai|webhook
|
|
44
|
+
│ TTS provider: PROVIDER_TTS=edge-tts|voxforge|elevenlabs|azure|openai|webhook
|
|
45
45
|
│ Visuals: Code-driven animations (default) + user media (video_path / image_path)
|
|
46
46
|
│
|
|
47
47
|
▼ Optional: queue_full_pipeline
|
|
@@ -52,6 +52,17 @@ PROVIDER_TTS=edge-tts
|
|
|
52
52
|
# Voice list: edge-tts --list-voices
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
+
### voxforge (free, private multi-engine neural TTS & voice cloning in Rust)
|
|
56
|
+
```bash
|
|
57
|
+
PROVIDER_TTS=voxforge
|
|
58
|
+
VOXFORGE_URL=http://localhost:5005 # or your self-hosted VoxForge workstation URL
|
|
59
|
+
# Optional:
|
|
60
|
+
VOXFORGE_KEY=... # optional auth token if enabled
|
|
61
|
+
VOXFORGE_VOICE=default # voice/clone reference
|
|
62
|
+
VOXFORGE_MODEL=voxforge-v1 # engine model (XTTS, Piper, Kokoro, Whisper)
|
|
63
|
+
```
|
|
64
|
+
Repo: [AMG555/VoxForge](https://github.com/AMG555/VoxForge) — local, private neural TTS & voice cloning workstation.
|
|
65
|
+
|
|
55
66
|
### elevenlabs (voice cloning)
|
|
56
67
|
```bash
|
|
57
68
|
PROVIDER_TTS=elevenlabs
|
package/scripts/deep-validate.js
CHANGED
|
@@ -20,7 +20,7 @@ check('batch handling', code.includes('Array.isArray(body)'));
|
|
|
20
20
|
check('ping handler', code.includes("method === 'ping'"));
|
|
21
21
|
check('notifications/init', code.includes("notifications/initialized"));
|
|
22
22
|
check('body size limit', code.includes('MAX_BODY_BYTES'));
|
|
23
|
-
check('SERVER_INFO version 2.3.
|
|
23
|
+
check('SERVER_INFO version 2.3.4', code.includes("version: '2.3.4'"));
|
|
24
24
|
check('18 tools defined (incl get_job_status)', code.includes('get_job_status'));
|
|
25
25
|
check('export_to_editor tool defined', code.includes('export_to_editor'));
|
|
26
26
|
check('voxforge TTS provider', code.includes('voxforge'));
|
|
@@ -293,7 +293,7 @@ check('cf-worker has checkRateLimit', cfWorker.includes('checkRateLimit'));
|
|
|
293
293
|
check('cf-worker hashes token (SHA-256)', cfWorker.includes('SHA-256'));
|
|
294
294
|
check('cf-worker uses RATE_LIMITS KV', cfWorker.includes('env.RATE_LIMITS'));
|
|
295
295
|
check('cf-worker returns 429 on limit', cfWorker.includes('429'));
|
|
296
|
-
check('cf-worker version 2.3.
|
|
296
|
+
check('cf-worker version 2.3.4', cfWorker.includes("'2.3.4'"));
|
|
297
297
|
check('wrangler.toml has kv_namespaces',fs.readFileSync('./cloudflare-mcp/wrangler.toml','utf8').includes('kv_namespaces'));
|
|
298
298
|
|
|
299
299
|
// ── plugins/skills present ────────────────────────────────────────────────
|
package/src/cli/doctor.js
CHANGED
|
@@ -73,19 +73,26 @@ if (ffprobe.status === 0) {
|
|
|
73
73
|
hasCriticalFailure = true;
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
// 4. Voice Engine (edge-tts or Cloud API)
|
|
76
|
+
// 4. Voice Engine (edge-tts, VoxForge, or Cloud API)
|
|
77
77
|
const edgeTts = spawnSync('edge-tts', ['--version'], { encoding: 'utf8', timeout: 5000, shell: process.platform === 'win32' });
|
|
78
|
-
const hasCloudTts = Boolean(
|
|
78
|
+
const hasCloudTts = Boolean(
|
|
79
|
+
process.env.ELEVENLABS_API_KEY ||
|
|
80
|
+
process.env.AZURE_SPEECH_KEY ||
|
|
81
|
+
process.env.OPENAI_API_KEY ||
|
|
82
|
+
process.env.CUSTOM_TTS_URL ||
|
|
83
|
+
process.env.WEBHOOK_TTS_URL ||
|
|
84
|
+
process.env.VOXFORGE_URL
|
|
85
|
+
);
|
|
79
86
|
|
|
80
87
|
if (edgeTts.status === 0) {
|
|
81
88
|
pass('Voice Engine', `edge-tts CLI available (${(edgeTts.stdout || '').trim()})`);
|
|
82
89
|
} else if (hasCloudTts) {
|
|
83
|
-
pass('Voice Engine', 'Cloud
|
|
90
|
+
pass('Voice Engine', 'TTS provider (VoxForge or Cloud API) configured via environment');
|
|
84
91
|
} else {
|
|
85
92
|
warn(
|
|
86
93
|
'Voice Engine',
|
|
87
|
-
'Neither edge-tts CLI nor
|
|
88
|
-
'Run "pip install edge-tts" for free offline voiceover, or set OPENAI_API_KEY / ELEVENLABS_API_KEY in .env'
|
|
94
|
+
'Neither edge-tts CLI nor configured TTS provider detected',
|
|
95
|
+
'Run "pip install edge-tts" for free offline voiceover, set VOXFORGE_URL (VoxForge), or set OPENAI_API_KEY / ELEVENLABS_API_KEY in .env'
|
|
89
96
|
);
|
|
90
97
|
}
|
|
91
98
|
|