storyforge 0.11.2 → 0.11.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.
|
@@ -5640,6 +5640,8 @@ var renderGeminiRemotion = async (shot, ctx) => {
|
|
|
5640
5640
|
propsPath,
|
|
5641
5641
|
"--output",
|
|
5642
5642
|
ctx.sceneOutPath,
|
|
5643
|
+
"--frames",
|
|
5644
|
+
`0-${durationFrames - 1}`,
|
|
5643
5645
|
"--concurrency",
|
|
5644
5646
|
"4"
|
|
5645
5647
|
],
|
|
@@ -5980,6 +5982,8 @@ var renderRemotion = async (shot, ctx) => {
|
|
|
5980
5982
|
propsPath,
|
|
5981
5983
|
"--output",
|
|
5982
5984
|
ctx.sceneOutPath,
|
|
5985
|
+
"--frames",
|
|
5986
|
+
`0-${durationFrames - 1}`,
|
|
5983
5987
|
"--concurrency",
|
|
5984
5988
|
"4"
|
|
5985
5989
|
],
|
|
@@ -6237,6 +6241,11 @@ var renderWebArticleRemotion = async (shot, ctx) => {
|
|
|
6237
6241
|
`web-article+remotion requires shot.sourceUrl for shot ${shot.id}`
|
|
6238
6242
|
);
|
|
6239
6243
|
}
|
|
6244
|
+
if (/\.pdf(\?|$|#)/i.test(shot.sourceUrl)) {
|
|
6245
|
+
throw new Error(
|
|
6246
|
+
`web-article+remotion: sourceUrl is a PDF (${shot.sourceUrl}). PDFs aren't extractable by readability; planner should not pick PDFs for this engine.`
|
|
6247
|
+
);
|
|
6248
|
+
}
|
|
6240
6249
|
const captureMode = shot.captureMode ?? "preview-card";
|
|
6241
6250
|
if (captureMode === "screenshot-cropped" || captureMode === "screenshot-full") {
|
|
6242
6251
|
if (!process.env.MICROLINK_API_KEY) {
|
|
@@ -6304,6 +6313,8 @@ var renderWebArticleRemotion = async (shot, ctx) => {
|
|
|
6304
6313
|
propsPath,
|
|
6305
6314
|
"--output",
|
|
6306
6315
|
ctx.sceneOutPath,
|
|
6316
|
+
"--frames",
|
|
6317
|
+
`0-${durationFrames - 1}`,
|
|
6307
6318
|
"--concurrency",
|
|
6308
6319
|
"4"
|
|
6309
6320
|
],
|
|
@@ -6779,6 +6790,17 @@ var renderDocumentaryV2Lambda = async (shot, ctx) => {
|
|
|
6779
6790
|
`lambda: shot.prompt must be CompositionV2Data JSON or a path (shot ${shot.id})`
|
|
6780
6791
|
);
|
|
6781
6792
|
}
|
|
6793
|
+
let cfg;
|
|
6794
|
+
try {
|
|
6795
|
+
cfg = readLambdaCfg();
|
|
6796
|
+
} catch (err) {
|
|
6797
|
+
ctx.progress.emit({
|
|
6798
|
+
phase: "preparing",
|
|
6799
|
+
shotId: shot.id,
|
|
6800
|
+
warnings: [`lambda: ${err.message.split(".")[0]} \u2014 falling back to local documentary-v2 adapter`]
|
|
6801
|
+
});
|
|
6802
|
+
return renderDocumentaryV2(shot, ctx);
|
|
6803
|
+
}
|
|
6782
6804
|
ctx.progress.emit({ phase: "preparing", shotId: shot.id });
|
|
6783
6805
|
let data;
|
|
6784
6806
|
if (shot.prompt.trimStart().startsWith("{")) {
|
|
@@ -6789,7 +6811,6 @@ var renderDocumentaryV2Lambda = async (shot, ctx) => {
|
|
|
6789
6811
|
}
|
|
6790
6812
|
data = JSON.parse(fs12.readFileSync(shot.prompt, "utf8"));
|
|
6791
6813
|
}
|
|
6792
|
-
const cfg = readLambdaCfg();
|
|
6793
6814
|
let renderMediaOnLambda;
|
|
6794
6815
|
let getRenderProgress;
|
|
6795
6816
|
try {
|
|
@@ -6981,10 +7002,16 @@ var renderManimRunPod = async (shot, ctx) => {
|
|
|
6981
7002
|
throw new Error(`runpod-manim: shot.manimCode required for shot ${shot.id}`);
|
|
6982
7003
|
}
|
|
6983
7004
|
const endpointId = process.env.RUNPOD_MANIM_ENDPOINT_ID;
|
|
6984
|
-
|
|
6985
|
-
|
|
6986
|
-
|
|
6987
|
-
|
|
7005
|
+
const apiKey2 = process.env.RUNPOD_API_KEY;
|
|
7006
|
+
if (!endpointId || !apiKey2) {
|
|
7007
|
+
const missing = !apiKey2 ? "RUNPOD_API_KEY" : "RUNPOD_MANIM_ENDPOINT_ID";
|
|
7008
|
+
ctx.progress.emit({
|
|
7009
|
+
phase: "preparing",
|
|
7010
|
+
shotId: shot.id,
|
|
7011
|
+
warnings: [`runpod-manim: ${missing} not set \u2014 falling back to local manim adapter for ${ctx.resolvedEngine}`]
|
|
7012
|
+
});
|
|
7013
|
+
const localAdapter = ctx.resolvedEngine === "manim+remotion" ? renderManimRemotion : ctx.resolvedEngine === "gemini+manim+remotion" ? renderGeminiManimRemotion : renderManim;
|
|
7014
|
+
return localAdapter(shot, ctx);
|
|
6988
7015
|
}
|
|
6989
7016
|
ctx.progress.emit({ phase: "preparing", shotId: shot.id });
|
|
6990
7017
|
const status = await runJob(
|
|
@@ -7040,10 +7067,15 @@ var renderHyperframesRunPod = async (shot, ctx) => {
|
|
|
7040
7067
|
throw new Error(`runpod-hyperframes: shot.hyperframesHtml required for shot ${shot.id}`);
|
|
7041
7068
|
}
|
|
7042
7069
|
const endpointId = process.env.RUNPOD_HYPERFRAMES_ENDPOINT_ID;
|
|
7043
|
-
|
|
7044
|
-
|
|
7045
|
-
|
|
7046
|
-
|
|
7070
|
+
const apiKey2 = process.env.RUNPOD_API_KEY;
|
|
7071
|
+
if (!endpointId || !apiKey2) {
|
|
7072
|
+
const missing = !apiKey2 ? "RUNPOD_API_KEY" : "RUNPOD_HYPERFRAMES_ENDPOINT_ID";
|
|
7073
|
+
ctx.progress.emit({
|
|
7074
|
+
phase: "preparing",
|
|
7075
|
+
shotId: shot.id,
|
|
7076
|
+
warnings: [`runpod-hyperframes: ${missing} not set \u2014 falling back to local hyperframes adapter`]
|
|
7077
|
+
});
|
|
7078
|
+
return renderHyperframes(shot, ctx);
|
|
7047
7079
|
}
|
|
7048
7080
|
ctx.progress.emit({ phase: "preparing", shotId: shot.id });
|
|
7049
7081
|
const dims = ctx.aspect === "9:16" ? { width: 1080, height: 1920 } : { width: 1920, height: 1080 };
|
package/dist/index.js
CHANGED
|
@@ -1615,7 +1615,7 @@ Return ONLY the complete updated TSX. No markdown fences, no explanation.`;
|
|
|
1615
1615
|
return "0.0.0";
|
|
1616
1616
|
})();
|
|
1617
1617
|
void (async () => {
|
|
1618
|
-
const { BridgePoller } = await import("./bridge-poller-
|
|
1618
|
+
const { BridgePoller } = await import("./bridge-poller-6AWMIF3V.js");
|
|
1619
1619
|
const poller = new BridgePoller({ baseUrl: bridgeUrl, token: bridgeToken, clientVersion: `storyforge ${pkgVersion}` });
|
|
1620
1620
|
poller.start();
|
|
1621
1621
|
})();
|
|
@@ -2438,7 +2438,7 @@ function resolveBridgeToken2(explicit) {
|
|
|
2438
2438
|
// package.json
|
|
2439
2439
|
var package_default = {
|
|
2440
2440
|
name: "storyforge",
|
|
2441
|
-
version: "0.11.
|
|
2441
|
+
version: "0.11.4",
|
|
2442
2442
|
description: "StoryForge \u2014 local bridge for the Forge video production web app. Parallel clip-render orchestrator (Remotion 4 + Manim + HyperFrames + ffmpeg) + final video stitcher + dependency doctor.",
|
|
2443
2443
|
type: "module",
|
|
2444
2444
|
bin: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "storyforge",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.4",
|
|
4
4
|
"description": "StoryForge — local bridge for the Forge video production web app. Parallel clip-render orchestrator (Remotion 4 + Manim + HyperFrames + ffmpeg) + final video stitcher + dependency doctor.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|