storyforge 0.11.2 → 0.11.3
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.
|
@@ -5527,14 +5527,14 @@ var renderGeminiManimRemotion = async (shot, ctx) => {
|
|
|
5527
5527
|
2
|
|
5528
5528
|
)
|
|
5529
5529
|
);
|
|
5530
|
-
const
|
|
5530
|
+
const remotion2 = requireRemotionRoot();
|
|
5531
5531
|
const compId = ctx.aspect === "9:16" ? "ForgeVideoVertical" : "ForgeVideo";
|
|
5532
5532
|
const r = await runCmd(
|
|
5533
5533
|
"npx",
|
|
5534
5534
|
[
|
|
5535
5535
|
"remotion",
|
|
5536
5536
|
"render",
|
|
5537
|
-
|
|
5537
|
+
remotion2.entry,
|
|
5538
5538
|
compId,
|
|
5539
5539
|
"--props",
|
|
5540
5540
|
propsPath,
|
|
@@ -5543,7 +5543,7 @@ var renderGeminiManimRemotion = async (shot, ctx) => {
|
|
|
5543
5543
|
"--concurrency",
|
|
5544
5544
|
"4"
|
|
5545
5545
|
],
|
|
5546
|
-
{ timeoutMs: 3e5, signal: ctx.signal, cwd:
|
|
5546
|
+
{ timeoutMs: 3e5, signal: ctx.signal, cwd: remotion2.cwd }
|
|
5547
5547
|
);
|
|
5548
5548
|
if (r.code !== 0) {
|
|
5549
5549
|
const tail = r.stderr.split("\n").slice(-5).join(" ").slice(0, 300);
|
|
@@ -5595,13 +5595,13 @@ var renderGeminiRemotion = async (shot, ctx) => {
|
|
|
5595
5595
|
);
|
|
5596
5596
|
const durationFrames = Math.max(1, Math.round(shot.durationSec * ctx.fps));
|
|
5597
5597
|
const dims = ASPECT_DIMS[ctx.aspect];
|
|
5598
|
-
const
|
|
5598
|
+
const remotion2 = requireRemotionRoot();
|
|
5599
5599
|
const publicRel = path4.posix.join(
|
|
5600
5600
|
"clip-render-cache",
|
|
5601
5601
|
ctx.chunkId,
|
|
5602
5602
|
`${shot.id}${path4.extname(localImage) || ".png"}`
|
|
5603
5603
|
);
|
|
5604
|
-
const publicAbs = path4.join(
|
|
5604
|
+
const publicAbs = path4.join(remotion2.cwd, "public", publicRel);
|
|
5605
5605
|
fs4.mkdirSync(path4.dirname(publicAbs), { recursive: true });
|
|
5606
5606
|
fs4.copyFileSync(localImage, publicAbs);
|
|
5607
5607
|
const propsPath = path4.join(ctx.tmpDir, "remotion", `${shot.id}_gr_props.json`);
|
|
@@ -5634,16 +5634,18 @@ var renderGeminiRemotion = async (shot, ctx) => {
|
|
|
5634
5634
|
[
|
|
5635
5635
|
"remotion",
|
|
5636
5636
|
"render",
|
|
5637
|
-
|
|
5637
|
+
remotion2.entry,
|
|
5638
5638
|
compId,
|
|
5639
5639
|
"--props",
|
|
5640
5640
|
propsPath,
|
|
5641
5641
|
"--output",
|
|
5642
5642
|
ctx.sceneOutPath,
|
|
5643
|
+
"--frames",
|
|
5644
|
+
`0-${durationFrames - 1}`,
|
|
5643
5645
|
"--concurrency",
|
|
5644
5646
|
"4"
|
|
5645
5647
|
],
|
|
5646
|
-
{ timeoutMs: 3e5, signal: ctx.signal, cwd:
|
|
5648
|
+
{ timeoutMs: 3e5, signal: ctx.signal, cwd: remotion2.cwd }
|
|
5647
5649
|
);
|
|
5648
5650
|
if (r.code !== 0) {
|
|
5649
5651
|
const tail = r.stderr.split("\n").slice(-5).join(" ").slice(0, 300);
|
|
@@ -5861,14 +5863,14 @@ var renderManimRemotion = async (shot, ctx) => {
|
|
|
5861
5863
|
2
|
|
5862
5864
|
)
|
|
5863
5865
|
);
|
|
5864
|
-
const
|
|
5866
|
+
const remotion2 = requireRemotionRoot();
|
|
5865
5867
|
const compId = ctx.aspect === "9:16" ? "ForgeVideoVertical" : "ForgeVideo";
|
|
5866
5868
|
const r = await runCmd(
|
|
5867
5869
|
"npx",
|
|
5868
5870
|
[
|
|
5869
5871
|
"remotion",
|
|
5870
5872
|
"render",
|
|
5871
|
-
|
|
5873
|
+
remotion2.entry,
|
|
5872
5874
|
compId,
|
|
5873
5875
|
"--props",
|
|
5874
5876
|
propsPath,
|
|
@@ -5877,7 +5879,7 @@ var renderManimRemotion = async (shot, ctx) => {
|
|
|
5877
5879
|
"--concurrency",
|
|
5878
5880
|
"4"
|
|
5879
5881
|
],
|
|
5880
|
-
{ timeoutMs: 3e5, signal: ctx.signal, cwd:
|
|
5882
|
+
{ timeoutMs: 3e5, signal: ctx.signal, cwd: remotion2.cwd }
|
|
5881
5883
|
);
|
|
5882
5884
|
if (r.code !== 0) {
|
|
5883
5885
|
const tail = r.stderr.split("\n").slice(-5).join(" ").slice(0, 300);
|
|
@@ -5944,10 +5946,10 @@ var renderRemotion = async (shot, ctx) => {
|
|
|
5944
5946
|
compId = id;
|
|
5945
5947
|
remotionCwd = requireRemotionRoot().cwd;
|
|
5946
5948
|
} else {
|
|
5947
|
-
const
|
|
5948
|
-
entryArg =
|
|
5949
|
+
const remotion2 = requireRemotionRoot();
|
|
5950
|
+
entryArg = remotion2.entry;
|
|
5949
5951
|
compId = ctx.aspect === "9:16" ? "ForgeVideoVertical" : "ForgeVideo";
|
|
5950
|
-
remotionCwd =
|
|
5952
|
+
remotionCwd = remotion2.cwd;
|
|
5951
5953
|
}
|
|
5952
5954
|
const propsPath = path7.join(ctx.tmpDir, "remotion", `${shot.id}_props.json`);
|
|
5953
5955
|
fs6.mkdirSync(path7.dirname(propsPath), { recursive: true });
|
|
@@ -5974,16 +5976,18 @@ var renderRemotion = async (shot, ctx) => {
|
|
|
5974
5976
|
[
|
|
5975
5977
|
"remotion",
|
|
5976
5978
|
"render",
|
|
5977
|
-
|
|
5979
|
+
remotion.entry,
|
|
5978
5980
|
compId,
|
|
5979
5981
|
"--props",
|
|
5980
5982
|
propsPath,
|
|
5981
5983
|
"--output",
|
|
5982
5984
|
ctx.sceneOutPath,
|
|
5985
|
+
"--frames",
|
|
5986
|
+
`0-${durationFrames - 1}`,
|
|
5983
5987
|
"--concurrency",
|
|
5984
5988
|
"4"
|
|
5985
5989
|
],
|
|
5986
|
-
{ timeoutMs: 3e5, signal: ctx.signal, cwd:
|
|
5990
|
+
{ timeoutMs: 3e5, signal: ctx.signal, cwd: remotion.cwd }
|
|
5987
5991
|
);
|
|
5988
5992
|
if (r.code !== 0) {
|
|
5989
5993
|
const tail = r.stderr.split("\n").slice(-5).join(" ").slice(0, 300);
|
|
@@ -6061,14 +6065,14 @@ var renderStockRemotion = async (shot, ctx) => {
|
|
|
6061
6065
|
2
|
|
6062
6066
|
)
|
|
6063
6067
|
);
|
|
6064
|
-
const
|
|
6068
|
+
const remotion2 = requireRemotionRoot();
|
|
6065
6069
|
const compId = ctx.aspect === "9:16" ? "ForgeVideoVertical" : "ForgeVideo";
|
|
6066
6070
|
const r = await runCmd(
|
|
6067
6071
|
"npx",
|
|
6068
6072
|
[
|
|
6069
6073
|
"remotion",
|
|
6070
6074
|
"render",
|
|
6071
|
-
|
|
6075
|
+
remotion2.entry,
|
|
6072
6076
|
compId,
|
|
6073
6077
|
"--props",
|
|
6074
6078
|
propsPath,
|
|
@@ -6077,7 +6081,7 @@ var renderStockRemotion = async (shot, ctx) => {
|
|
|
6077
6081
|
"--concurrency",
|
|
6078
6082
|
"4"
|
|
6079
6083
|
],
|
|
6080
|
-
{ timeoutMs: 3e5, signal: ctx.signal, cwd:
|
|
6084
|
+
{ timeoutMs: 3e5, signal: ctx.signal, cwd: remotion2.cwd }
|
|
6081
6085
|
);
|
|
6082
6086
|
if (r.code !== 0) {
|
|
6083
6087
|
const tail = r.stderr.split("\n").slice(-5).join(" ").slice(0, 300);
|
|
@@ -6111,9 +6115,9 @@ var renderDocumentaryV2 = async (shot, ctx) => {
|
|
|
6111
6115
|
data = JSON.parse(fs8.readFileSync(shot.prompt, "utf8"));
|
|
6112
6116
|
}
|
|
6113
6117
|
const durationFrames = data.totalDurationFrames > 0 ? data.totalDurationFrames : Math.max(1, Math.round(shot.durationSec * ctx.fps));
|
|
6114
|
-
const
|
|
6118
|
+
const remotion2 = requireRemotionRoot();
|
|
6115
6119
|
const cacheRel = path9.posix.join("clip-render-cache", ctx.chunkId);
|
|
6116
|
-
const cacheAbs = path9.join(
|
|
6120
|
+
const cacheAbs = path9.join(remotion2.cwd, "public", cacheRel);
|
|
6117
6121
|
fs8.mkdirSync(cacheAbs, { recursive: true });
|
|
6118
6122
|
for (const scene of data.scenes) {
|
|
6119
6123
|
for (const layer of scene.layers) {
|
|
@@ -6142,7 +6146,7 @@ var renderDocumentaryV2 = async (shot, ctx) => {
|
|
|
6142
6146
|
[
|
|
6143
6147
|
"remotion",
|
|
6144
6148
|
"render",
|
|
6145
|
-
|
|
6149
|
+
remotion2.entry,
|
|
6146
6150
|
"DocumentaryV2",
|
|
6147
6151
|
"--props",
|
|
6148
6152
|
propsPath,
|
|
@@ -6151,7 +6155,7 @@ var renderDocumentaryV2 = async (shot, ctx) => {
|
|
|
6151
6155
|
"--concurrency",
|
|
6152
6156
|
"4"
|
|
6153
6157
|
],
|
|
6154
|
-
{ timeoutMs: 6e5, signal: ctx.signal, cwd:
|
|
6158
|
+
{ timeoutMs: 6e5, signal: ctx.signal, cwd: remotion2.cwd }
|
|
6155
6159
|
);
|
|
6156
6160
|
if (r.code !== 0) {
|
|
6157
6161
|
const tail = r.stderr.split("\n").slice(-8).join(" ").slice(0, 400);
|
|
@@ -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) {
|
|
@@ -6291,23 +6300,25 @@ var renderWebArticleRemotion = async (shot, ctx) => {
|
|
|
6291
6300
|
framesRendered: 0,
|
|
6292
6301
|
totalFrames: durationFrames
|
|
6293
6302
|
});
|
|
6294
|
-
const
|
|
6303
|
+
const remotion2 = requireRemotionRoot();
|
|
6295
6304
|
const compId = ctx.aspect === "9:16" ? "ArticleCardVertical" : "ArticleCard";
|
|
6296
6305
|
const r = await runCmd(
|
|
6297
6306
|
"npx",
|
|
6298
6307
|
[
|
|
6299
6308
|
"remotion",
|
|
6300
6309
|
"render",
|
|
6301
|
-
|
|
6310
|
+
remotion2.entry,
|
|
6302
6311
|
compId,
|
|
6303
6312
|
"--props",
|
|
6304
6313
|
propsPath,
|
|
6305
6314
|
"--output",
|
|
6306
6315
|
ctx.sceneOutPath,
|
|
6316
|
+
"--frames",
|
|
6317
|
+
`0-${durationFrames - 1}`,
|
|
6307
6318
|
"--concurrency",
|
|
6308
6319
|
"4"
|
|
6309
6320
|
],
|
|
6310
|
-
{ timeoutMs: 3e5, signal: ctx.signal, cwd:
|
|
6321
|
+
{ timeoutMs: 3e5, signal: ctx.signal, cwd: remotion2.cwd }
|
|
6311
6322
|
);
|
|
6312
6323
|
if (r.code !== 0) {
|
|
6313
6324
|
const tail = r.stderr.split("\n").slice(-5).join(" ").slice(0, 300);
|
|
@@ -6383,9 +6394,9 @@ var renderXPostRemotion = async (shot, ctx) => {
|
|
|
6383
6394
|
if (ctx.signal?.aborted) throw new Error("aborted");
|
|
6384
6395
|
const durationFrames = Math.max(1, Math.round(shot.durationSec * ctx.fps));
|
|
6385
6396
|
const dims = ASPECT_DIMS4[ctx.aspect];
|
|
6386
|
-
const
|
|
6397
|
+
const remotion2 = requireRemotionRoot();
|
|
6387
6398
|
const entry = path11.join(
|
|
6388
|
-
|
|
6399
|
+
remotion2.cwd,
|
|
6389
6400
|
"src",
|
|
6390
6401
|
"compositions",
|
|
6391
6402
|
"XPostCard.tsx"
|
|
@@ -6435,7 +6446,7 @@ var renderXPostRemotion = async (shot, ctx) => {
|
|
|
6435
6446
|
"--concurrency",
|
|
6436
6447
|
"4"
|
|
6437
6448
|
],
|
|
6438
|
-
{ timeoutMs: 3e5, signal: ctx.signal, cwd:
|
|
6449
|
+
{ timeoutMs: 3e5, signal: ctx.signal, cwd: remotion2.cwd }
|
|
6439
6450
|
);
|
|
6440
6451
|
if (r.code !== 0) {
|
|
6441
6452
|
const tail = r.stderr.split("\n").slice(-5).join(" ").slice(0, 400);
|
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-UZLIRB2O.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.3",
|
|
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.3",
|
|
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": {
|