makaron-cli 0.7.5 → 0.7.6
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/README.md +3 -3
- package/SKILL.md +2 -2
- package/bin/makaron.mjs +13 -4
- package/package.json +1 -1
- package/skills/makaron/SKILL.md +2 -2
package/README.md
CHANGED
|
@@ -110,8 +110,8 @@ npx makaron-cli chat --project <id> --video party.mp4 --image kid.jpg -b "make t
|
|
|
110
110
|
npx makaron-cli chat --project <id> --video clip1.mp4 --video clip2.mp4 -b "splice these into one seamless video"
|
|
111
111
|
```
|
|
112
112
|
|
|
113
|
-
Video files are uploaded via signed URL. CLI local video uploads follow the same compatibility contract as the normal frontend flow: `.mp4`, `.mov`, or `.webm`, max 200MB, max 15s, and <=1080p / 2,086,876 frame pixels. The frontend can transcode oversized videos; the CLI rejects them so later Seedance editing does not fail.
|
|
114
|
-
The agent understands video content natively — it can analyze scenes, edit, extend, and compose videos. Seedance video-reference editing is supported for
|
|
113
|
+
Video files are uploaded via signed URL. CLI local video uploads follow the same compatibility contract as the normal frontend flow: `.mp4`, `.mov`, or `.webm`, max 200MB, target max 15s with 0.5s metadata tolerance, and <=1080p / 2,086,876 frame pixels. The frontend can transcode oversized videos; the CLI rejects them so later Seedance editing does not fail.
|
|
114
|
+
The agent understands video content natively — it can analyze scenes, edit, extend, and compose videos. Seedance video-reference editing is supported for ~15s videos that meet the same upload limits; Kling remains the base/direct edit path.
|
|
115
115
|
Use `chat --project <id|auto> --video ...` for any project/timeline video work. Direct `video create` is standalone and does not write timeline entries.
|
|
116
116
|
|
|
117
117
|
### Check status (single query)
|
|
@@ -198,7 +198,7 @@ npx makaron-cli chat --project <id|auto> --video input.mp4 -b "make it funny"
|
|
|
198
198
|
|
|
199
199
|
Options for `video create`: `--script "..."`, `--script-file <path>`, `--image <url>` (repeatable, up to 7), `--video <file|url>`, `--duration 3|5|7|10|15`, `--aspect 9:16|16:9|1:1`, `--model kling|seedance`
|
|
200
200
|
|
|
201
|
-
Video edit model behavior: `--model kling --video` uses Kling base/direct edit internally; `--model seedance --video` uses the Seedance video-reference path and requires <=15s, <=1080p input.
|
|
201
|
+
Video edit model behavior: `--model kling --video` uses Kling base/direct edit internally; `--model seedance --video` uses the Seedance video-reference path and requires target <=15s, <=1080p input. Tiny metadata padding up to 15.5s is accepted and output duration is clamped to 15s.
|
|
202
202
|
|
|
203
203
|
### `music` — Music generation
|
|
204
204
|
|
package/SKILL.md
CHANGED
|
@@ -102,7 +102,7 @@ npx makaron-cli chat --project <id> --video clip1.mp4 --video clip2.mp4 -b "comb
|
|
|
102
102
|
npx makaron-cli chat --project auto --video https://example.com/dance.mp4 -b "extend this to 15 seconds"
|
|
103
103
|
```
|
|
104
104
|
|
|
105
|
-
Supported formats: MP4, MOV, WebM. CLI local video uploads follow the same compatibility contract as the normal frontend flow: max 200MB, max 15s, and <=1080p / 2,086,876 frame pixels. The frontend can transcode oversized videos; the CLI rejects them so later Seedance editing does not fail. Videos are uploaded to the project timeline. The Agent can analyze scenes, edit content, compose multiple clips, extend duration, and add effects — all via natural language. Seedance video-reference editing is supported for
|
|
105
|
+
Supported formats: MP4, MOV, WebM. CLI local video uploads follow the same compatibility contract as the normal frontend flow: max 200MB, target max 15s with 0.5s metadata tolerance, and <=1080p / 2,086,876 frame pixels. The frontend can transcode oversized videos; the CLI rejects them so later Seedance editing does not fail. Videos are uploaded to the project timeline. The Agent can analyze scenes, edit content, compose multiple clips, extend duration, and add effects — all via natural language. Seedance video-reference editing is supported for ~15s videos that meet these upload limits; Kling remains the base/direct edit path.
|
|
106
106
|
|
|
107
107
|
Use `chat --project <id|auto> --video ...` for any project/timeline video work. Direct video commands are standalone raw-tool calls.
|
|
108
108
|
|
|
@@ -190,7 +190,7 @@ npx makaron-cli chat --project <id|auto> --video input.mp4 -b "make it funny"
|
|
|
190
190
|
|
|
191
191
|
Options for `video create`: `--script "..."`, `--script-file <path>`, `--image <url>` (repeatable, up to 7), `--video <file|url>`, `--duration 3|5|7|10|15`, `--aspect 9:16|16:9|1:1`, `--model kling|seedance`
|
|
192
192
|
|
|
193
|
-
Video edit model behavior: `--model kling --video` uses Kling base/direct edit internally; `--model seedance --video` uses the Seedance video-reference path and requires <=15s, <=1080p input.
|
|
193
|
+
Video edit model behavior: `--model kling --video` uses Kling base/direct edit internally; `--model seedance --video` uses the Seedance video-reference path and requires target <=15s, <=1080p input. Tiny metadata padding up to 15.5s is accepted and output duration is clamped to 15s.
|
|
194
194
|
|
|
195
195
|
### `music` — Music generation
|
|
196
196
|
|
package/bin/makaron.mjs
CHANGED
|
@@ -29,8 +29,14 @@ const SUPABASE_ANON_KEY = 'sb_publishable_FJFN2YYaWaQjABUKLqxQcA_fhxPLFDY';
|
|
|
29
29
|
|
|
30
30
|
const MAX_VIDEO_FILE_SIZE = 200 * 1024 * 1024;
|
|
31
31
|
const MAX_VIDEO_DURATION = 15;
|
|
32
|
+
const MAX_VIDEO_DURATION_TOLERANCE = 0.5;
|
|
32
33
|
const MAX_VIDEO_FRAME_PIXELS = 2_086_876;
|
|
33
34
|
|
|
35
|
+
function formatSeconds(seconds) {
|
|
36
|
+
if (!Number.isFinite(seconds)) return String(seconds);
|
|
37
|
+
return Number.isInteger(seconds) ? String(seconds) : seconds.toFixed(1).replace(/\.0$/, '');
|
|
38
|
+
}
|
|
39
|
+
|
|
34
40
|
// ─── Auth ────────────────────────────────────────────────────────────────────
|
|
35
41
|
|
|
36
42
|
function loadAuth() {
|
|
@@ -735,8 +741,8 @@ function validateVideoFile(videoPath) {
|
|
|
735
741
|
if (!meta) {
|
|
736
742
|
return { ok: false, error: 'Cannot read video duration/resolution. Install ffmpeg/ffprobe or use the normal frontend upload flow.' };
|
|
737
743
|
}
|
|
738
|
-
if (meta.duration > MAX_VIDEO_DURATION) {
|
|
739
|
-
return { ok: false, error: `Video too long: ${
|
|
744
|
+
if (meta.duration > MAX_VIDEO_DURATION + MAX_VIDEO_DURATION_TOLERANCE) {
|
|
745
|
+
return { ok: false, error: `Video too long: ${formatSeconds(meta.duration)}s (max ${MAX_VIDEO_DURATION}s, with ${MAX_VIDEO_DURATION_TOLERANCE}s metadata tolerance)` };
|
|
740
746
|
}
|
|
741
747
|
if (meta.width * meta.height > MAX_VIDEO_FRAME_PIXELS) {
|
|
742
748
|
return { ok: false, error: `Video resolution too high: ${meta.width}x${meta.height} (${meta.width * meta.height} px). Max is <=1080p (${MAX_VIDEO_FRAME_PIXELS} px). Re-upload through the frontend to transcode, or export a smaller video.` };
|
|
@@ -1190,14 +1196,17 @@ if (command === 'login') {
|
|
|
1190
1196
|
const vArgs = videoUrl
|
|
1191
1197
|
? { videoUrl, editPrompt: script, images, videoModel: videoModel || 'kling', referType: (videoModel || 'kling') === 'seedance' ? 'feature' : 'base' }
|
|
1192
1198
|
: { script, images };
|
|
1193
|
-
const effectiveDuration = duration || (inputVideoMeta?.duration ? Math.round(inputVideoMeta.duration) : undefined);
|
|
1199
|
+
const effectiveDuration = duration || (inputVideoMeta?.duration ? Math.min(MAX_VIDEO_DURATION, Math.round(inputVideoMeta.duration)) : undefined);
|
|
1194
1200
|
if (effectiveDuration) vArgs.duration = effectiveDuration;
|
|
1195
1201
|
if (aspectRatio) vArgs.aspectRatio = aspectRatio;
|
|
1196
1202
|
if (videoModel && !videoUrl) vArgs.videoModel = videoModel;
|
|
1197
1203
|
if (keepOriginalSound && videoUrl) vArgs.keepOriginalSound = true;
|
|
1198
1204
|
const result = await callMcpTool(baseUrl, headers, videoUrl ? 'makaron_edit_video' : 'makaron_create_video', vArgs);
|
|
1199
1205
|
const text = result?.content?.find(c => c.type === 'text')?.text;
|
|
1200
|
-
if (text)
|
|
1206
|
+
if (text) {
|
|
1207
|
+
console.log(text);
|
|
1208
|
+
if (!text.includes('Task ID:')) process.exit(1);
|
|
1209
|
+
}
|
|
1201
1210
|
|
|
1202
1211
|
} else if (sub === 'status') {
|
|
1203
1212
|
let taskId = null, snapshotId = null, wait = false;
|
package/package.json
CHANGED
package/skills/makaron/SKILL.md
CHANGED
|
@@ -102,7 +102,7 @@ npx makaron-cli chat --project <id> --video clip1.mp4 --video clip2.mp4 -b "comb
|
|
|
102
102
|
npx makaron-cli chat --project auto --video https://example.com/dance.mp4 -b "extend this to 15 seconds"
|
|
103
103
|
```
|
|
104
104
|
|
|
105
|
-
Supported formats: MP4, MOV, WebM. CLI local video uploads follow the same compatibility contract as the normal frontend flow: max 200MB, max 15s, and <=1080p / 2,086,876 frame pixels. The frontend can transcode oversized videos; the CLI rejects them so later Seedance editing does not fail. Videos are uploaded to the project timeline. The Agent can analyze scenes, edit content, compose multiple clips, extend duration, and add effects — all via natural language. Seedance video-reference editing is supported for
|
|
105
|
+
Supported formats: MP4, MOV, WebM. CLI local video uploads follow the same compatibility contract as the normal frontend flow: max 200MB, target max 15s with 0.5s metadata tolerance, and <=1080p / 2,086,876 frame pixels. The frontend can transcode oversized videos; the CLI rejects them so later Seedance editing does not fail. Videos are uploaded to the project timeline. The Agent can analyze scenes, edit content, compose multiple clips, extend duration, and add effects — all via natural language. Seedance video-reference editing is supported for ~15s videos that meet these upload limits; Kling remains the base/direct edit path.
|
|
106
106
|
|
|
107
107
|
Use `chat --project <id|auto> --video ...` for any project/timeline video work. Direct video commands are standalone raw-tool calls.
|
|
108
108
|
|
|
@@ -190,7 +190,7 @@ npx makaron-cli chat --project <id|auto> --video input.mp4 -b "make it funny"
|
|
|
190
190
|
|
|
191
191
|
Options for `video create`: `--script "..."`, `--script-file <path>`, `--image <url>` (repeatable, up to 7), `--video <file|url>`, `--duration 3|5|7|10|15`, `--aspect 9:16|16:9|1:1`, `--model kling|seedance`
|
|
192
192
|
|
|
193
|
-
Video edit model behavior: `--model kling --video` uses Kling base/direct edit internally; `--model seedance --video` uses the Seedance video-reference path and requires <=15s, <=1080p input.
|
|
193
|
+
Video edit model behavior: `--model kling --video` uses Kling base/direct edit internally; `--model seedance --video` uses the Seedance video-reference path and requires target <=15s, <=1080p input. Tiny metadata padding up to 15.5s is accepted and output duration is clamped to 15s.
|
|
194
194
|
|
|
195
195
|
### `music` — Music generation
|
|
196
196
|
|