@mevdragon/vidfarm-devcli 0.19.0 → 0.20.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/.agents/skills/editor-capabilities/SKILL.md +3 -3
- package/.agents/skills/music/SKILL.md +416 -0
- package/.agents/skills/music/references/api_reference.md +519 -0
- package/.agents/skills/music/references/installation.md +65 -0
- package/.agents/skills/text-to-speech/SKILL.md +226 -0
- package/.agents/skills/text-to-speech/references/installation.md +90 -0
- package/.agents/skills/text-to-speech/references/streaming.md +307 -0
- package/.agents/skills/text-to-speech/references/voice-settings.md +115 -0
- package/.agents/skills/vidfarm-media/SKILL.md +25 -11
- package/.agents/skills/vidfarm-media/references/tts.md +41 -3
- package/SKILL.director.md +31 -13
- package/SKILL.platform.md +2 -2
- package/demo/dist/app.css +1 -1
- package/demo/dist/app.js +76 -74
- package/dist/src/account-pages-legacy.js +1 -1
- package/dist/src/app.js +308 -111
- package/dist/src/cli.js +162 -5
- package/dist/src/config.js +13 -0
- package/dist/src/devcli/clips.js +7 -2
- package/dist/src/devcli/composition-edit.js +5 -2
- package/dist/src/domain.js +3 -0
- package/dist/src/editor-chat.js +8 -1
- package/dist/src/primitive-context.js +45 -2
- package/dist/src/primitive-registry.js +140 -18
- package/dist/src/reskin/chat-page.js +1 -1
- package/dist/src/reskin/inpaint-clipper-page.js +446 -205
- package/dist/src/reskin/inpaint-page.js +1 -1
- package/dist/src/reskin/inpaint-video-page.js +1 -1
- package/dist/src/reskin/library-page.js +7 -1
- package/dist/src/reskin/portfolio-page.js +687 -0
- package/dist/src/reskin/settings-page.js +4 -4
- package/dist/src/reskin/theme.js +1 -0
- package/dist/src/services/billing.js +5 -0
- package/dist/src/services/clip-curation/ffmpeg.js +48 -0
- package/dist/src/services/clip-curation/hunt.js +2 -0
- package/dist/src/services/clip-curation/index.js +1 -1
- package/dist/src/services/clip-curation/scan.js +29 -16
- package/dist/src/services/elevenlabs.js +222 -0
- package/dist/src/services/hyperframes.js +252 -83
- package/dist/src/services/providers.js +216 -2
- package/dist/src/services/serverless-jobs.js +3 -1
- package/dist/src/services/swipe-customize.js +5 -2
- package/dist/src/template-editor-pages.js +1 -1
- package/package.json +1 -1
|
@@ -1437,7 +1437,7 @@ ${INPAINT_TABS_CSS}
|
|
|
1437
1437
|
}
|
|
1438
1438
|
|
|
1439
1439
|
function isPendingJobStatus(status) {
|
|
1440
|
-
return ["queued", "running", "waiting_for_provider", "waiting_for_child", "waiting_for_human"].includes(String(status || ""));
|
|
1440
|
+
return ["queued", "running", "waiting_for_provider", "waiting_for_render", "waiting_for_child", "waiting_for_human"].includes(String(status || ""));
|
|
1441
1441
|
}
|
|
1442
1442
|
|
|
1443
1443
|
function pendingHistoryItemKey(jobId) {
|
|
@@ -917,7 +917,7 @@ const INPAINT_VIDEO_SCRIPT = `
|
|
|
917
917
|
var candidate = (out.video && out.video.file_url) || out.primary_file_url || (result.video && result.video.file_url) || result.primary_file_url || (Array.isArray(out.files) ? out.files[0] : "") || (Array.isArray(result.files) ? result.files[0] : "");
|
|
918
918
|
return candidate || "";
|
|
919
919
|
}
|
|
920
|
-
function isPendingStatus(status){ return ["queued","running","waiting_for_provider","waiting_for_child","waiting_for_human"].indexOf(String(status || "")) >= 0; }
|
|
920
|
+
function isPendingStatus(status){ return ["queued","running","waiting_for_provider","waiting_for_render","waiting_for_child","waiting_for_human"].indexOf(String(status || "")) >= 0; }
|
|
921
921
|
function pendingKey(jobId){ return "job:" + String(jobId || ""); }
|
|
922
922
|
function makePending(input){
|
|
923
923
|
var jobId = String((input && (input.jobId || input.job_id)) || ""); if(!jobId) return null;
|
|
@@ -350,6 +350,10 @@ const CLIPS_DIALOG = `
|
|
|
350
350
|
<option value="openrouter">OpenRouter</option>
|
|
351
351
|
</select>
|
|
352
352
|
</div>
|
|
353
|
+
<label class="rk-clips-toggle" for="rkScanAudioOnly">
|
|
354
|
+
<input type="checkbox" id="rkScanAudioOnly" name="audio_only" />
|
|
355
|
+
<span><b>Clip audio only</b> — save each mined moment as an audio-only <code>.m4a</code> (no video), e.g. lifting sounds from a copyright-free audio video.</span>
|
|
356
|
+
</label>
|
|
353
357
|
</div>
|
|
354
358
|
<p class="rk-hint rk-clips-dialog-note" id="rkScanNote">We'll pull the whole video into your raws library.</p>
|
|
355
359
|
<div class="rk-clips-dialog-actions">
|
|
@@ -1182,6 +1186,7 @@ const CLIPS_SCRIPT = `
|
|
|
1182
1186
|
var scanNote=root.getElementById('rkScanNote');
|
|
1183
1187
|
var scanSubmit=root.getElementById('rkClipsScanSubmit');
|
|
1184
1188
|
var scanClip=root.getElementById('rkScanClip');
|
|
1189
|
+
var scanAudioOnly=root.getElementById('rkScanAudioOnly');
|
|
1185
1190
|
var scanAdvanced=root.getElementById('rkClipsAdvanced');
|
|
1186
1191
|
var IMPORT_NOTE="We'll open the Clipper so you can preview the video and save an exact subrange (or the whole thing) to your raws.";
|
|
1187
1192
|
var CLIP_NOTE='AI tagging runs on your own key (BYOK) — vidfarm only bills the clip-scan compute.';
|
|
@@ -1239,6 +1244,7 @@ const CLIPS_SCRIPT = `
|
|
|
1239
1244
|
var clip=!!(scanClip&&scanClip.checked);
|
|
1240
1245
|
var prompt=clip?(scanPrompt&&scanPrompt.value||'').trim():'';
|
|
1241
1246
|
var provider=clip?(scanProvider&&scanProvider.value||'').trim():'';
|
|
1247
|
+
var audioOnly=clip&&!!(scanAudioOnly&&scanAudioOnly.checked);
|
|
1242
1248
|
if(!url){ setNote('Enter a video URL.','error'); return; }
|
|
1243
1249
|
// Whole-video (non-AI) path now opens the Clipper so the user can pick an
|
|
1244
1250
|
// exact subrange (or save the whole thing) with a live video preview.
|
|
@@ -1253,7 +1259,7 @@ const CLIPS_SCRIPT = `
|
|
|
1253
1259
|
if(scanSubmit){ scanSubmit.disabled=true; scanSubmit.classList.add('is-loading'); }
|
|
1254
1260
|
|
|
1255
1261
|
var payload={source_url:url};
|
|
1256
|
-
if(clip){ payload.prompt=prompt; if(provider)payload.provider=provider; } else { payload.import_only=true; }
|
|
1262
|
+
if(clip){ payload.prompt=prompt; if(provider)payload.provider=provider; if(audioOnly)payload.audio_only=true; } else { payload.import_only=true; }
|
|
1257
1263
|
if(tracer)payload.tracer=tracer;
|
|
1258
1264
|
|
|
1259
1265
|
// Fire the request now; hold it and only wire the result AFTER the modal
|