@amg555/frameforge-mcp 2.7.7 → 2.7.8
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/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +2 -2
- package/package.json +1 -1
- package/plugins/video-pipeline/.claude-plugin/plugin.json +1 -1
- package/plugins/video-pipeline/skills/.upstream-skills.json +1 -1
- package/plugins/video-pipeline/skills/video-pipeline/references/mcp-tools.md +1 -1
- package/scripts/deep-validate.js +2 -2
- package/src/mcp-server/server.js +5 -5
- package/src/skills/sync-upstream.js +3 -3
- package/plugins/aiinsight-shorts/styles/deep-dive/style-sheet.png +0 -0
- package/plugins/aiinsight-shorts/styles/inside-out/style-sheet.png +0 -0
- package/plugins/aiinsight-shorts/styles/night-file/style-sheet.png +0 -0
- package/plugins/aiinsight-shorts/styles/paper-atlas/style-sheet.png +0 -0
- package/plugins/aiinsight-shorts/styles/stick-story/style-sheet.png +0 -0
- package/plugins/aiinsight-shorts/styles/tall-tale/style-sheet.png +0 -0
- package/plugins/faceless-shorts/styles/deep-dive/style-sheet.png +0 -0
- package/plugins/faceless-shorts/styles/inside-out/style-sheet.png +0 -0
- package/plugins/faceless-shorts/styles/night-file/style-sheet.png +0 -0
- package/plugins/faceless-shorts/styles/paper-atlas/style-sheet.png +0 -0
- package/plugins/faceless-shorts/styles/stick-story/style-sheet.png +0 -0
- package/plugins/faceless-shorts/styles/tall-tale/style-sheet.png +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "frameforge",
|
|
3
3
|
"displayName": "FrameForge — AI Video Production",
|
|
4
4
|
"description": "Full AI video production engine. Produce short-form reels (1080×1920), YouTube videos (1920×1080), or code-driven animated explainers — directly from your IDE. Playwright + FFmpeg renders every frame. 34 MCP tools. Whisper, yt-dlp, broadcast audio, 24 film styles, ClaudeAnimationBase, onetake 39-move library, HyperFrames motion craft. 62 Motion Graphics Styles.",
|
|
5
|
-
"version": "2.7.
|
|
5
|
+
"version": "2.7.8",
|
|
6
6
|
"homepage": "https://github.com/AMG555/FrameForge",
|
|
7
7
|
"plugins": [
|
|
8
8
|
{
|
package/CHANGELOG.md
CHANGED
|
@@ -4,11 +4,11 @@ All notable changes to FrameForge are documented here.
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
## [2.7.
|
|
7
|
+
## [2.7.8] — 2026-11-12
|
|
8
8
|
|
|
9
9
|
### Changed
|
|
10
10
|
- Slimmed npm tarball distribution: excluded `.agent/` cache and vendor artifacts via `.npmignore` (size reduced from 48MB to 28MB).
|
|
11
|
-
- Upgraded version manifests across core MCP server and sync engine to v2.7.
|
|
11
|
+
- Upgraded version manifests across core MCP server and sync engine to v2.7.8.
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amg555/frameforge-mcp",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.8",
|
|
4
4
|
"description": "FrameForge — Universal AI video creation & autonomous editing engine for any AI agent, CLI, or IDE. npx @amg555/frameforge-mcp. FFmpeg + TTS on your machine. 34 MCP tools. Whisper transcription, yt-dlp ingestion, broadcast-grade audio, 62 procedural motion styles, 6 viral faceless shorts engines, autonomous video editor with retake/silence cutting, J/L-cuts, timeline export to DaVinci/Premiere.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "video-pipeline",
|
|
3
3
|
"displayName": "FrameForge Video Pipeline",
|
|
4
|
-
"version": "2.7.
|
|
4
|
+
"version": "2.7.8",
|
|
5
5
|
"description": "End-to-end AI video production. IDE writes scenes → FrameForge renders. Or: scaffold a Playwright+ffmpeg code-driven animation. Or: auto-research and script the video.",
|
|
6
6
|
"skills": [
|
|
7
7
|
{
|
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.7.
|
|
23
|
+
check('SERVER_INFO version 2.7.8', code.includes("version: '2.7.8'"));
|
|
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('edit_video tool defined', code.includes('edit_video'));
|
|
@@ -368,7 +368,7 @@ check('cf-worker has checkRateLimit', cfWorker.includes('checkRateLimit'));
|
|
|
368
368
|
check('cf-worker hashes token (SHA-256)', cfWorker.includes('SHA-256'));
|
|
369
369
|
check('cf-worker uses RATE_LIMITS KV', cfWorker.includes('env.RATE_LIMITS'));
|
|
370
370
|
check('cf-worker returns 429 on limit', cfWorker.includes('429'));
|
|
371
|
-
check('cf-worker version 2.7.
|
|
371
|
+
check('cf-worker version 2.7.8', cfWorker.includes("'2.7.8'"));
|
|
372
372
|
check('wrangler.toml has kv_namespaces',fs.readFileSync('./cloudflare-mcp/wrangler.toml','utf8').includes('kv_namespaces'));
|
|
373
373
|
|
|
374
374
|
// ── plugins/skills present ────────────────────────────────────────────────
|
package/src/mcp-server/server.js
CHANGED
|
@@ -2124,7 +2124,7 @@ Professional audio rules applied:
|
|
|
2124
2124
|
planMd += `- L-cuts: current audio extends 0.3s into next clip's video\n\n`;
|
|
2125
2125
|
planMd += `## 🚀 Execution & Approval\n\n`;
|
|
2126
2126
|
planMd += `Review this plan, then execute with \`edit_video\` using the payload in \`edit.json\`.\n`;
|
|
2127
|
-
planMd += `\nGenerated by FrameForge v2.7.
|
|
2127
|
+
planMd += `\nGenerated by FrameForge v2.7.8 — plan_video_edit with J/L-cut support (lemo-opuscar DIRECTOR.md)\n`;
|
|
2128
2128
|
|
|
2129
2129
|
// 8. Build TREATMENT.md (lemo-opuscar DIRECTOR.md — 8-section format)
|
|
2130
2130
|
let treatmentMd = '';
|
|
@@ -2165,7 +2165,7 @@ Professional audio rules applied:
|
|
|
2165
2165
|
treatmentMd += `## 8. Director Notes\n\n`;
|
|
2166
2166
|
treatmentMd += `_Add creative direction, mood references, or client notes here._\n\n`;
|
|
2167
2167
|
treatmentMd += `---\n\n`;
|
|
2168
|
-
treatmentMd += `*Generated by FrameForge v2.7.
|
|
2168
|
+
treatmentMd += `*Generated by FrameForge v2.7.8 — lemo-opuscar DIRECTOR.md format*\n`;
|
|
2169
2169
|
}
|
|
2170
2170
|
|
|
2171
2171
|
// 9. Write outputs
|
|
@@ -2246,7 +2246,7 @@ Professional audio rules applied:
|
|
|
2246
2246
|
handler: async () => {
|
|
2247
2247
|
const syncFs = require('fs');
|
|
2248
2248
|
const { MANIFEST_PATH, REPOSITORIES } = require('../skills/sync-upstream');
|
|
2249
|
-
let manifest = { lastSync: null, repos: {}, version: '2.7.
|
|
2249
|
+
let manifest = { lastSync: null, repos: {}, version: '2.7.8', pendingUpdates: [] };
|
|
2250
2250
|
if (syncFs.existsSync(MANIFEST_PATH)) {
|
|
2251
2251
|
try { manifest = JSON.parse(syncFs.readFileSync(MANIFEST_PATH, 'utf8')); } catch (_) {}
|
|
2252
2252
|
}
|
|
@@ -2293,7 +2293,7 @@ Professional audio rules applied:
|
|
|
2293
2293
|
return {
|
|
2294
2294
|
success: true,
|
|
2295
2295
|
lastSync: manifest.lastSync,
|
|
2296
|
-
manifestVersion: manifest.version || '2.7.
|
|
2296
|
+
manifestVersion: manifest.version || '2.7.8',
|
|
2297
2297
|
totalRepos: repos.length,
|
|
2298
2298
|
syncedCount,
|
|
2299
2299
|
pendingUpdates,
|
|
@@ -3536,7 +3536,7 @@ Get a style id from list_motion_styles first. Source: FrameForge Motion Library
|
|
|
3536
3536
|
|
|
3537
3537
|
const SERVER_INFO = {
|
|
3538
3538
|
name: 'video-pipeline',
|
|
3539
|
-
version: '2.7.
|
|
3539
|
+
version: '2.7.8',
|
|
3540
3540
|
};
|
|
3541
3541
|
|
|
3542
3542
|
const CAPABILITIES = {
|
|
@@ -117,7 +117,7 @@ function fetchJson(url) {
|
|
|
117
117
|
return new Promise((resolve, reject) => {
|
|
118
118
|
const opts = {
|
|
119
119
|
headers: {
|
|
120
|
-
'User-Agent': 'FrameForge-Skill-Sync/2.7.
|
|
120
|
+
'User-Agent': 'FrameForge-Skill-Sync/2.7.8',
|
|
121
121
|
'Accept': 'application/vnd.github.v3+json',
|
|
122
122
|
},
|
|
123
123
|
};
|
|
@@ -188,7 +188,7 @@ async function syncSkills(opts = {}) {
|
|
|
188
188
|
const updatedResults = results.filter(r => r.updated);
|
|
189
189
|
|
|
190
190
|
manifest.lastSync = new Date().toISOString();
|
|
191
|
-
manifest.version = '2.7.
|
|
191
|
+
manifest.version = '2.7.8';
|
|
192
192
|
manifest.updatedCount = updatedCount;
|
|
193
193
|
if (updatedResults.length > 0) {
|
|
194
194
|
manifest.pendingUpdates = updatedResults.map(r => {
|
|
@@ -278,7 +278,7 @@ function getUpstreamSummary() {
|
|
|
278
278
|
return {
|
|
279
279
|
repoCount,
|
|
280
280
|
lastSync: manifest.lastSync,
|
|
281
|
-
version: manifest.version || '2.7.
|
|
281
|
+
version: manifest.version || '2.7.8',
|
|
282
282
|
pendingUpdates: pending,
|
|
283
283
|
hasUpdates: pending.length > 0,
|
|
284
284
|
repos: manifest.repos || {},
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|