@aicopycoders/exodus 2026.9.2000-beta.6 → 2026.9.2000-beta.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/dist/commands/video.d.ts
CHANGED
package/dist/commands/video.js
CHANGED
|
@@ -6,7 +6,7 @@ import { displayRunStatus, formatApiError } from "../lib/format.js";
|
|
|
6
6
|
import { missingRouteLine } from "../lib/route-support.js";
|
|
7
7
|
import { hasBinary } from "../lib/preflight.js";
|
|
8
8
|
import { ASSET_UPLOAD_POLICY, pauseAheadLine, } from "./workflow.js";
|
|
9
|
-
import { HELPER_LEDGER_BASE } from "../lib/helperLedgerBase.js";
|
|
9
|
+
import { HELPER_LEDGER_BASE, SET_OPTION_LEDGER_BASE } from "../lib/helperLedgerBase.js";
|
|
10
10
|
export const helpText = `
|
|
11
11
|
exodus video — make a video ad from a saved workflow, pull every piece, upload your cut
|
|
12
12
|
|
|
@@ -184,6 +184,14 @@ export function renderQcTakeHistory(takes) {
|
|
|
184
184
|
});
|
|
185
185
|
return lines;
|
|
186
186
|
}
|
|
187
|
+
function printDisplacedHistory(lines, lastRedo) {
|
|
188
|
+
const history = lastRedo.displacedHistory;
|
|
189
|
+
if (!history)
|
|
190
|
+
return;
|
|
191
|
+
lines.push(` ${history.title}`);
|
|
192
|
+
for (const line of history.lines)
|
|
193
|
+
lines.push(` ${line}`);
|
|
194
|
+
}
|
|
187
195
|
export function asVideoRun(data) {
|
|
188
196
|
const run = (data ?? {});
|
|
189
197
|
return { ...run, nodes: Array.isArray(run.nodes) ? run.nodes : [] };
|
|
@@ -507,7 +515,9 @@ function keyframeDownload(sceneIndex, imageUrl) {
|
|
|
507
515
|
function reservedCastFrames(items) {
|
|
508
516
|
const byIndex = new Map();
|
|
509
517
|
for (const item of items) {
|
|
510
|
-
if (item.itemKind === "frame" &&
|
|
518
|
+
if (item.itemKind === "frame" &&
|
|
519
|
+
item.sceneIndex >= CAST_LEDGER_BASE &&
|
|
520
|
+
item.sceneIndex < SET_OPTION_LEDGER_BASE) {
|
|
511
521
|
byIndex.set(item.sceneIndex, item);
|
|
512
522
|
}
|
|
513
523
|
}
|
|
@@ -1143,15 +1153,19 @@ export async function statusFlow(runId, json, deps) {
|
|
|
1143
1153
|
for (const sceneIndex of [...byScene.keys()].sort((a, b) => a - b)) {
|
|
1144
1154
|
const row = byScene.get(sceneIndex);
|
|
1145
1155
|
lines.push(`${String(sceneIndex).padEnd(5)} ${itemWord(row.clip).padEnd(8)} ${itemWord(row.voiceover).padEnd(8)} ${itemWord(row.frame)}`);
|
|
1146
|
-
if (row.clip?.lastRedo)
|
|
1156
|
+
if (row.clip?.lastRedo) {
|
|
1147
1157
|
lines.push(` clip: ${row.clip.lastRedo.label}`);
|
|
1158
|
+
printDisplacedHistory(lines, row.clip.lastRedo);
|
|
1159
|
+
}
|
|
1148
1160
|
if (row.clip?.lastRedo || row.clip?.flagged) {
|
|
1149
1161
|
for (const line of renderQcTakeHistory(clipQcOf(row.clip))) {
|
|
1150
1162
|
lines.push(` ${line}`);
|
|
1151
1163
|
}
|
|
1152
1164
|
}
|
|
1153
|
-
if (row.voiceover?.lastRedo)
|
|
1165
|
+
if (row.voiceover?.lastRedo) {
|
|
1154
1166
|
lines.push(` voice: ${row.voiceover.lastRedo.label}`);
|
|
1167
|
+
printDisplacedHistory(lines, row.voiceover.lastRedo);
|
|
1168
|
+
}
|
|
1155
1169
|
if (row.frame?.lastRedo)
|
|
1156
1170
|
lines.push(` picture: ${row.frame.lastRedo.label}`);
|
|
1157
1171
|
for (const finding of row.clip?.findings ?? []) {
|