fluncle 0.79.0 → 0.81.0
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/bin/fluncle.mjs +27 -8
- package/package.json +1 -1
package/bin/fluncle.mjs
CHANGED
|
@@ -558,7 +558,7 @@ function parseVersion(version) {
|
|
|
558
558
|
var currentVersion;
|
|
559
559
|
var init_version = __esm(() => {
|
|
560
560
|
init_output();
|
|
561
|
-
currentVersion = "0.
|
|
561
|
+
currentVersion = "0.81.0".trim() ? "0.81.0".trim() : "0.1.0";
|
|
562
562
|
});
|
|
563
563
|
|
|
564
564
|
// src/update-notifier.ts
|
|
@@ -982,6 +982,7 @@ function mapTrack(track) {
|
|
|
982
982
|
videoGrain: track.videoGrain,
|
|
983
983
|
videoModel: track.videoModel,
|
|
984
984
|
videoModelReasoning: track.videoModelReasoning,
|
|
985
|
+
videoRegister: track.videoRegister,
|
|
985
986
|
videoUrl: track.videoUrl,
|
|
986
987
|
videoVehicle: track.videoVehicle
|
|
987
988
|
};
|
|
@@ -1952,6 +1953,7 @@ function mapTrack2(track) {
|
|
|
1952
1953
|
videoGrain: track.videoGrain,
|
|
1953
1954
|
videoModel: track.videoModel,
|
|
1954
1955
|
videoModelReasoning: track.videoModelReasoning,
|
|
1956
|
+
videoRegister: track.videoRegister,
|
|
1955
1957
|
videoUrl: track.videoUrl,
|
|
1956
1958
|
videoVehicle: track.videoVehicle
|
|
1957
1959
|
};
|
|
@@ -2464,7 +2466,7 @@ function parseVersion2(version) {
|
|
|
2464
2466
|
var currentVersion2, latestReleaseUrl = "https://api.github.com/repos/mauricekleine/fluncle/releases/latest";
|
|
2465
2467
|
var init_version2 = __esm(() => {
|
|
2466
2468
|
init_output();
|
|
2467
|
-
currentVersion2 = "0.
|
|
2469
|
+
currentVersion2 = "0.81.0".trim() ? "0.81.0".trim() : "0.1.0";
|
|
2468
2470
|
});
|
|
2469
2471
|
|
|
2470
2472
|
// ../../packages/registry/src/index.ts
|
|
@@ -3229,7 +3231,8 @@ async function trackVideoCommand(idOrLogId, files, onProgress) {
|
|
|
3229
3231
|
videoModelReasoning,
|
|
3230
3232
|
...squared ? { squared: true } : {},
|
|
3231
3233
|
...manifest.vehicle ? { videoVehicle: manifest.vehicle } : {},
|
|
3232
|
-
...manifest.grain ? { videoGrain: manifest.grain } : {}
|
|
3234
|
+
...manifest.grain ? { videoGrain: manifest.grain } : {},
|
|
3235
|
+
...manifest.register ? { videoRegister: manifest.register } : {}
|
|
3233
3236
|
});
|
|
3234
3237
|
return { logId: finalize.logId, ok: true, trackId: finalize.trackId, urls };
|
|
3235
3238
|
}
|
|
@@ -3237,7 +3240,7 @@ async function readManifestFields(renderPath) {
|
|
|
3237
3240
|
try {
|
|
3238
3241
|
const manifest = await Bun.file(renderPath).json();
|
|
3239
3242
|
const result = {};
|
|
3240
|
-
for (const key of ["vehicle", "grain", "model", "reasoning"]) {
|
|
3243
|
+
for (const key of ["vehicle", "grain", "model", "reasoning", "register"]) {
|
|
3241
3244
|
const value = manifest[key];
|
|
3242
3245
|
if (typeof value === "string" && value.trim()) {
|
|
3243
3246
|
result[key] = value.trim().slice(0, 120);
|
|
@@ -3335,12 +3338,17 @@ var init_track = __esm(() => {
|
|
|
3335
3338
|
VIDEO_FIELDS = [
|
|
3336
3339
|
{ field: "footage", option: "footage" },
|
|
3337
3340
|
{ field: "footage-social", option: "footageSocial" },
|
|
3341
|
+
{ field: "footage-notext", option: "footageNotext" },
|
|
3342
|
+
{ field: "footage-landscape", option: "footageLandscape" },
|
|
3343
|
+
{ field: "footage-landscape-social", option: "footageLandscapeSocial" },
|
|
3338
3344
|
{ field: "poster", option: "poster" },
|
|
3339
3345
|
{ field: "cover", option: "cover" },
|
|
3340
3346
|
{ field: "note", option: "note" },
|
|
3341
3347
|
{ field: "composition", option: "composition" },
|
|
3342
3348
|
{ field: "props", option: "props" },
|
|
3343
|
-
{ field: "render", option: "render" }
|
|
3349
|
+
{ field: "render", option: "render" },
|
|
3350
|
+
{ field: "intent", option: "intent" },
|
|
3351
|
+
{ field: "metrics", option: "metrics" }
|
|
3344
3352
|
];
|
|
3345
3353
|
});
|
|
3346
3354
|
|
|
@@ -3476,6 +3484,7 @@ async function vehiclesCommand(limit) {
|
|
|
3476
3484
|
artists: track.artists,
|
|
3477
3485
|
grain: track.videoGrain,
|
|
3478
3486
|
logId: track.logId,
|
|
3487
|
+
register: track.videoRegister,
|
|
3479
3488
|
title: track.title,
|
|
3480
3489
|
vehicle: track.videoVehicle
|
|
3481
3490
|
}));
|
|
@@ -5334,7 +5343,7 @@ function vehicleRows(rows) {
|
|
|
5334
5343
|
return Math.max(width, coordinate2(row).length);
|
|
5335
5344
|
}, 0);
|
|
5336
5345
|
return rows.map((row) => {
|
|
5337
|
-
return `${coordinate2(row).padEnd(coordWidth)} ${foundDate(row.addedAt)} ${row.vehicle ?? COORD_FALLBACK2}`;
|
|
5346
|
+
return `${coordinate2(row).padEnd(coordWidth)} ${foundDate(row.addedAt)} ${row.vehicle ?? COORD_FALLBACK2} · ${row.register ?? COORD_FALLBACK2}`;
|
|
5338
5347
|
});
|
|
5339
5348
|
}
|
|
5340
5349
|
function trackDetailLines(track) {
|
|
@@ -7621,7 +7630,7 @@ function addAdminCommands(program2) {
|
|
|
7621
7630
|
const { trackUpdateCommand: trackUpdateCommand2 } = await Promise.resolve().then(() => (init_track(), exports_track));
|
|
7622
7631
|
await runTrackUpdate(trackId, options, trackUpdateCommand2);
|
|
7623
7632
|
});
|
|
7624
|
-
adminTrack.command("video").description("Upload a track's video bundle to R2 and link it").argument("[idOrLogId]").option("--composition <file>", "Composition source file").option("--cover <file>", "Cover image").option("--dir <dir>", "Bundle directory").option("--footage <file>", "Video footage (square crop source)").option("--footage-social <file>", "Portrait social cut (baked text)").option("--json", "Print JSON", false).option("--model <model>", "Authoring AI model (<provider>/<model>)").option("--note <file>", "Note file").option("--poster <file>", "Poster image").option("--props <file>", "Render props JSON").option("--reasoning <level>", "Authoring model reasoning effort (e.g. high)").option("--render <file>", "Render metadata JSON").allowExcessArguments().action(async (idOrLogId, options) => {
|
|
7633
|
+
adminTrack.command("video").description("Upload a track's video bundle to R2 and link it").argument("[idOrLogId]").option("--composition <file>", "Composition source file").option("--cover <file>", "Cover image").option("--dir <dir>", "Bundle directory").option("--footage <file>", "Video footage (square crop source)").option("--footage-landscape <file>", "Clean landscape cut (optional escape hatch)").option("--footage-landscape-social <file>", "Landscape cut with baked text (optional)").option("--footage-notext <file>", "Portrait cut without the type layer (optional)").option("--footage-social <file>", "Portrait social cut (baked text)").option("--intent <file>", "Render-intent JSON (optional)").option("--json", "Print JSON", false).option("--metrics <file>", "Gate metrics JSON (optional)").option("--model <model>", "Authoring AI model (<provider>/<model>)").option("--note <file>", "Note file").option("--poster <file>", "Poster image").option("--props <file>", "Render props JSON").option("--reasoning <level>", "Authoring model reasoning effort (e.g. high)").option("--render <file>", "Render metadata JSON").allowExcessArguments().action(async (idOrLogId, options) => {
|
|
7625
7634
|
const { trackVideoCommand: trackVideoCommand2 } = await Promise.resolve().then(() => (init_track(), exports_track));
|
|
7626
7635
|
await runTrackVideo(idOrLogId, options, trackVideoCommand2);
|
|
7627
7636
|
});
|
|
@@ -8058,7 +8067,7 @@ async function runBackfillDiscogs(options, backfillDiscogsCommand2) {
|
|
|
8058
8067
|
}
|
|
8059
8068
|
async function runTrackVideo(idOrLogId, options, trackVideoCommand2) {
|
|
8060
8069
|
if (!idOrLogId) {
|
|
8061
|
-
throw new Error("Missing id. Usage: fluncle admin tracks video <track_id|log_id> (--dir <dir> | --footage <file> [--footage-social <file>] [--poster <file>] [--cover <file>] [--note <file>] [--composition <file>] [--props <file>] [--render <file>])");
|
|
8070
|
+
throw new Error("Missing id. Usage: fluncle admin tracks video <track_id|log_id> (--dir <dir> | --footage <file> [--footage-social <file>] [--footage-notext <file>] [--footage-landscape <file>] [--footage-landscape-social <file>] [--poster <file>] [--cover <file>] [--note <file>] [--composition <file>] [--props <file>] [--render <file>] [--intent <file>] [--metrics <file>])");
|
|
8062
8071
|
}
|
|
8063
8072
|
const dir = options.dir ? path2.resolve(process.cwd(), options.dir) : undefined;
|
|
8064
8073
|
const fromDir = (name) => {
|
|
@@ -8078,7 +8087,12 @@ async function runTrackVideo(idOrLogId, options, trackVideoCommand2) {
|
|
|
8078
8087
|
composition: resolveFile(options.composition, "composition.tsx"),
|
|
8079
8088
|
cover: resolveFile(options.cover, "cover.jpg"),
|
|
8080
8089
|
footage: resolveFile(options.footage, "footage.mp4"),
|
|
8090
|
+
footageLandscape: resolveFile(options.footageLandscape, "footage.landscape.mp4"),
|
|
8091
|
+
footageLandscapeSocial: resolveFile(options.footageLandscapeSocial, "footage.landscape.social.mp4"),
|
|
8092
|
+
footageNotext: resolveFile(options.footageNotext, "footage.notext.mp4"),
|
|
8081
8093
|
footageSocial: resolveFile(options.footageSocial, "footage.social.mp4"),
|
|
8094
|
+
intent: resolveFile(options.intent, "intent.json"),
|
|
8095
|
+
metrics: resolveFile(options.metrics, "metrics.json"),
|
|
8082
8096
|
model: options.model,
|
|
8083
8097
|
note: resolveFile(options.note, "note.txt"),
|
|
8084
8098
|
poster: resolveFile(options.poster, "poster.jpg"),
|
|
@@ -8888,10 +8902,15 @@ var stringOptions = new Set([
|
|
|
8888
8902
|
"--features",
|
|
8889
8903
|
"--file",
|
|
8890
8904
|
"--footage",
|
|
8905
|
+
"--footage-landscape",
|
|
8906
|
+
"--footage-landscape-social",
|
|
8907
|
+
"--footage-notext",
|
|
8891
8908
|
"--footage-social",
|
|
8892
8909
|
"--from",
|
|
8910
|
+
"--intent",
|
|
8893
8911
|
"--key",
|
|
8894
8912
|
"--limit",
|
|
8913
|
+
"--metrics",
|
|
8895
8914
|
"--mime",
|
|
8896
8915
|
"--note",
|
|
8897
8916
|
"--platform",
|
package/package.json
CHANGED