blitzreels 0.1.2 → 0.1.4

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.
@@ -0,0 +1,856 @@
1
+ import { CAPTION_WORD_SELECTOR_FLAGS, CAPTION_WORD_STYLE_FLAGS, commandSpec, TEXT_STYLE_FLAGS, } from "./command-metadata.js";
2
+ export const COMMAND_SPECS = [
3
+ commandSpec({
4
+ command: ["version"],
5
+ usage: "blitzreels version [--json]",
6
+ }),
7
+ commandSpec({
8
+ command: ["doctor"],
9
+ usage: "blitzreels doctor [--json]",
10
+ }),
11
+ commandSpec({
12
+ command: ["agent-context"],
13
+ usage: "blitzreels agent-context [--command 'projects list'] [--json]",
14
+ flags: ["command"],
15
+ description: "Print a machine-readable map of BlitzReels CLI commands.",
16
+ examples: [
17
+ "blitzreels agent-context --json",
18
+ "blitzreels agent-context --command 'media attach' --json",
19
+ ],
20
+ requiresAuth: false,
21
+ }),
22
+ commandSpec({
23
+ command: ["prime"],
24
+ usage: "blitzreels prime [--command 'media attach'] [--json]",
25
+ flags: ["command"],
26
+ description: "Print instructions that prime AI agents to use the BlitzReels CLI correctly.",
27
+ examples: [
28
+ "blitzreels prime",
29
+ "blitzreels prime --command 'media attach'",
30
+ "blitzreels prime --json",
31
+ ],
32
+ requiresAuth: false,
33
+ }),
34
+ commandSpec({
35
+ command: ["llms"],
36
+ usage: "blitzreels llms [--command 'media attach'] [--json]",
37
+ flags: ["command"],
38
+ description: "Alias for prime.",
39
+ examples: [
40
+ "blitzreels llms",
41
+ "blitzreels llms --command 'clips create' --json",
42
+ ],
43
+ requiresAuth: false,
44
+ }),
45
+ commandSpec({
46
+ command: ["schema"],
47
+ usage: "blitzreels schema [--command 'projects list'] [--json]",
48
+ flags: ["command"],
49
+ description: "Alias for agent-context.",
50
+ examples: [
51
+ "blitzreels schema --json",
52
+ "blitzreels schema --command 'captions words style' --json",
53
+ ],
54
+ requiresAuth: false,
55
+ }),
56
+ commandSpec({
57
+ command: ["auth", "login"],
58
+ usage: "blitzreels auth login [--no-browser] [--timeout-ms 120000]",
59
+ flags: ["no-browser", "timeout-ms"],
60
+ }),
61
+ commandSpec({
62
+ command: ["auth", "set-key"],
63
+ usage: "blitzreels auth set-key --api-key KEY [--base-url URL]",
64
+ }),
65
+ commandSpec({
66
+ command: ["auth", "whoami"],
67
+ usage: "blitzreels auth whoami [--json]",
68
+ }),
69
+ commandSpec({
70
+ command: ["workspace", "settings", "get"],
71
+ usage: "blitzreels workspace settings get [--json]",
72
+ }),
73
+ commandSpec({
74
+ command: ["workspace", "settings", "update"],
75
+ usage: "blitzreels workspace settings update [--name NAME] [--description TEXT|null] [--protected-words foo,bar] [--icon-storage-key KEY|null] [--aspect-ratio 9:16] [--orientation portrait] [--resolution 1080p] [--frame-rate 30] [--auto-manage-broll true] [--caption-theme-id ID|null]",
76
+ flags: [
77
+ "name",
78
+ "description",
79
+ "protected-words",
80
+ "icon-storage-key",
81
+ "aspect-ratio",
82
+ "orientation",
83
+ "resolution",
84
+ "frame-rate",
85
+ "auto-manage-broll",
86
+ "caption-theme-id",
87
+ ],
88
+ }),
89
+ commandSpec({
90
+ command: ["projects", "list"],
91
+ usage: "blitzreels projects list [--search QUERY] [--status active|archived|all] [--limit 50] [--offset 0] [--cursor CURSOR] [--json]",
92
+ flags: ["search", "status", "limit", "offset", "cursor"],
93
+ }),
94
+ commandSpec({
95
+ command: ["projects", "create"],
96
+ usage: "blitzreels projects create --name NAME [--description TEXT] [--aspect-ratio 9:16] [--project-type video|carousel] [--carousel-settings-json JSON]",
97
+ flags: [
98
+ "name",
99
+ "description",
100
+ "aspect-ratio",
101
+ "project-type",
102
+ "carousel-settings-json",
103
+ ],
104
+ }),
105
+ commandSpec({
106
+ command: ["projects", "get"],
107
+ usage: "blitzreels projects get --project-id ID [--json]",
108
+ flags: ["project-id"],
109
+ }),
110
+ commandSpec({
111
+ command: ["projects", "rename"],
112
+ usage: "blitzreels projects rename --project-id ID --name NAME",
113
+ flags: ["project-id", "name"],
114
+ }),
115
+ commandSpec({
116
+ command: ["projects", "update"],
117
+ usage: "blitzreels projects update --project-id ID [--name NAME] [--description TEXT|null]",
118
+ flags: ["project-id", "name", "description"],
119
+ }),
120
+ commandSpec({
121
+ command: ["projects", "delete"],
122
+ usage: "blitzreels projects delete --project-id ID --confirm-delete",
123
+ flags: ["project-id", "confirm-delete"],
124
+ }),
125
+ commandSpec({
126
+ command: ["media", "list"],
127
+ usage: "blitzreels media list [--folder-id ID] [--asset-type video|audio|image|document] [--search QUERY] [--limit 100] [--offset 0] [--json]",
128
+ flags: ["folder-id", "asset-type", "search", "limit", "offset"],
129
+ }),
130
+ commandSpec({
131
+ command: ["media", "get"],
132
+ usage: "blitzreels media get --asset-id ID [--json]",
133
+ flags: ["asset-id"],
134
+ }),
135
+ commandSpec({
136
+ command: ["media", "delete"],
137
+ usage: "blitzreels media delete --asset-id ID --confirm-delete",
138
+ flags: ["asset-id", "confirm-delete"],
139
+ }),
140
+ commandSpec({
141
+ command: ["media", "upload"],
142
+ usage: "blitzreels media upload --file ./video.mp4 [--name NAME] [--content-type video/mp4] [--auto-process true] [--auto-transcribe true] [--auto-describe true] [--auto-suggest-shorts true]",
143
+ flags: [
144
+ "file",
145
+ "name",
146
+ "content-type",
147
+ "auto-process",
148
+ "auto-transcribe",
149
+ "auto-describe",
150
+ "auto-suggest-shorts",
151
+ ],
152
+ }),
153
+ commandSpec({
154
+ command: ["media", "import-youtube"],
155
+ usage: "blitzreels media import-youtube --url URL [--folder-id ID|root] [--quality 1080p] [--fps 30] [--audio-language fr|null]",
156
+ flags: ["url", "folder-id", "quality", "fps", "audio-language"],
157
+ }),
158
+ commandSpec({
159
+ command: ["media", "rename"],
160
+ usage: "blitzreels media rename --asset-id ID --name NAME",
161
+ flags: ["asset-id", "name"],
162
+ }),
163
+ commandSpec({
164
+ command: ["media", "update"],
165
+ usage: "blitzreels media update --asset-id ID [--name NAME] [--description TEXT|null] [--folder-id ID|root] [--allow-broll true]",
166
+ flags: ["asset-id", "name", "description", "folder-id", "allow-broll"],
167
+ }),
168
+ commandSpec({
169
+ command: ["media", "move"],
170
+ usage: "blitzreels media move --asset-id ID|--asset-ids ID1,ID2 --target-folder-id ID|root",
171
+ flags: ["asset-id", "asset-ids", "target-folder-id"],
172
+ }),
173
+ commandSpec({
174
+ command: ["media", "attach"],
175
+ usage: "blitzreels media attach --project-id ID --asset-id ID [--at 0] [--duration 4] [--layer-index 2] [--allow-duplicate true] [--position-preset center|fullscreen|top-right] [--position-x 0] [--position-y 0] [--width-px 320] [--height-px 180] [--scale 1.2] [--opacity 0.9] [--animation-preset popIn]",
176
+ flags: [
177
+ "project-id",
178
+ "asset-id",
179
+ "at",
180
+ "duration",
181
+ "layer-index",
182
+ "allow-duplicate",
183
+ "position-preset",
184
+ "position-x",
185
+ "position-y",
186
+ "width-px",
187
+ "height-px",
188
+ "scale",
189
+ "opacity",
190
+ "animation-preset",
191
+ ],
192
+ description: "Attach a workspace media asset to a project timeline. Layer rule: lower layer_index renders above higher; use 2 for visible B-roll over main video.",
193
+ examples: [
194
+ "blitzreels media attach --project-id PROJECT_ID --asset-id ASSET_ID --at 6 --duration 4 --layer-index 2 --position-preset fullscreen",
195
+ "blitzreels media attach --project-id PROJECT_ID --asset-id ASSET_ID --at 6 --duration 4 --layer-index 2 --position-preset top-right --width-px 320",
196
+ ],
197
+ }),
198
+ commandSpec({
199
+ command: ["broll", "add"],
200
+ usage: "blitzreels broll add --project-id ID --asset-id ID [--at 0] [--duration 4] [--layer-index 2] [--allow-duplicate true] [--position-preset center|fullscreen|top-right] [--position-x 0] [--position-y 0] [--width-px 320] [--height-px 180] [--scale 1.2] [--opacity 0.9] [--animation-preset popIn]",
201
+ flags: [
202
+ "project-id",
203
+ "asset-id",
204
+ "at",
205
+ "duration",
206
+ "layer-index",
207
+ "allow-duplicate",
208
+ "position-preset",
209
+ "position-x",
210
+ "position-y",
211
+ "width-px",
212
+ "height-px",
213
+ "scale",
214
+ "opacity",
215
+ "animation-preset",
216
+ ],
217
+ description: "Alias for media attach, optimized for B-roll insertion.",
218
+ }),
219
+ commandSpec({
220
+ command: ["media", "overlay", "update"],
221
+ usage: "blitzreels media overlay update --project-id ID --timeline-item-id ID [--position-preset center|fullscreen|top-right] [--position-x 0] [--position-y 0] [--width-px 320] [--height-px 180] [--scale 1.2] [--animation-preset popIn] [--remove-animations true] [--blurred-background true]",
222
+ flags: [
223
+ "project-id",
224
+ "timeline-item-id",
225
+ "position-preset",
226
+ "position-x",
227
+ "position-y",
228
+ "width-px",
229
+ "height-px",
230
+ "scale",
231
+ "animation-preset",
232
+ "remove-animations",
233
+ "blurred-background",
234
+ ],
235
+ description: "Update an existing image/video overlay transform, animation, or blurred-background fill.",
236
+ }),
237
+ commandSpec({
238
+ command: ["media", "wait"],
239
+ usage: "blitzreels media wait --asset-id ID [--for processing|transcription|description|shorts|all] [--project-id ID] [--interval-ms 3000] [--timeout-ms 600000] [--json]",
240
+ flags: ["asset-id", "for", "project-id", "interval-ms", "timeout-ms"],
241
+ description: "Poll a media asset until background processing or description metadata is ready.",
242
+ }),
243
+ commandSpec({
244
+ command: ["media", "shorts", "list"],
245
+ usage: "blitzreels media shorts list --asset-id ID [--json]",
246
+ flags: ["asset-id"],
247
+ description: "List saved and draft short suggestions for a media asset.",
248
+ }),
249
+ commandSpec({
250
+ command: ["media", "shorts", "generate"],
251
+ usage: "blitzreels media shorts generate --asset-id ID [--content-profile auto|podcast|tutorial|generic] [--auto-trim-silence true]",
252
+ flags: ["asset-id", "content-profile", "auto-trim-silence"],
253
+ description: "Start short suggestion generation for a media asset.",
254
+ dryRunSupported: false,
255
+ }),
256
+ commandSpec({
257
+ command: ["media", "shorts", "apply"],
258
+ usage: "blitzreels media shorts apply --asset-id ID --suggestion-id ID --project-id ID [--caption-style-id ID|null] [--mark-saved true] [--allow-unverified-export true] [--automatic-layout-json JSON]",
259
+ flags: [
260
+ "asset-id",
261
+ "suggestion-id",
262
+ "project-id",
263
+ "caption-style-id",
264
+ "mark-saved",
265
+ "allow-unverified-export",
266
+ "automatic-layout-json",
267
+ ],
268
+ description: "Apply a short suggestion to a project timeline.",
269
+ dryRunSupported: false,
270
+ }),
271
+ commandSpec({
272
+ command: ["clips", "create"],
273
+ usage: "blitzreels clips create --source-type asset|youtube [--asset-id ID|--youtube-url URL] [--name NAME] [--selection-mode auto_best|suggestion|time_range] [--suggestion-id ID] [--start-seconds 52] [--end-seconds 64] [--min-duration 8] --max-duration 12 [--layout-mode auto|prefer_split|prefer_focus] [--content-type-hint auto|podcast|tutorial|generic] [--captions true] [--caption-style-id ID|null] [--qa-mode required|permissive] [--auto-export false]",
274
+ flags: [
275
+ "source-type",
276
+ "asset-id",
277
+ "youtube-url",
278
+ "name",
279
+ "selection-mode",
280
+ "suggestion-id",
281
+ "start-seconds",
282
+ "end-seconds",
283
+ "min-duration",
284
+ "max-duration",
285
+ "layout-mode",
286
+ "content-type-hint",
287
+ "captions",
288
+ "caption-style-id",
289
+ "qa-mode",
290
+ "auto-export",
291
+ ],
292
+ description: "Create a managed clip job from a workspace asset or YouTube URL.",
293
+ examples: [
294
+ 'blitzreels clips create --source-type youtube --youtube-url https://youtube.com/watch?v=... --name "MKBHD hero loop" --min-duration 8 --max-duration 12 --qa-mode permissive',
295
+ "blitzreels clips create --source-type asset --asset-id ID --selection-mode time_range --start-seconds 52 --end-seconds 64 --max-duration 12",
296
+ ],
297
+ }),
298
+ commandSpec({
299
+ command: ["clips", "get"],
300
+ usage: "blitzreels clips get --clip-id ID [--json]",
301
+ flags: ["clip-id"],
302
+ description: "Fetch current clip status and next action.",
303
+ }),
304
+ commandSpec({
305
+ command: ["clips", "wait"],
306
+ usage: "blitzreels clips wait --clip-id ID [--interval-ms 3000] [--timeout-ms 600000] [--json]",
307
+ flags: ["clip-id", "interval-ms", "timeout-ms"],
308
+ description: "Poll a clip until it needs action, exports, or fails.",
309
+ }),
310
+ commandSpec({
311
+ command: ["clips", "reselect"],
312
+ usage: "blitzreels clips reselect --clip-id ID --selection-mode auto_best|suggestion|time_range [--suggestion-id ID] [--start-seconds 52] [--end-seconds 64] [--min-duration 8] [--max-duration 12]",
313
+ flags: [
314
+ "clip-id",
315
+ "selection-mode",
316
+ "suggestion-id",
317
+ "start-seconds",
318
+ "end-seconds",
319
+ "min-duration",
320
+ "max-duration",
321
+ ],
322
+ description: "Choose a different suggestion or time range for a clip.",
323
+ mutates: true,
324
+ }),
325
+ commandSpec({
326
+ command: ["clips", "repair"],
327
+ usage: "blitzreels clips repair --clip-id ID [--repair-mode auto|prefer_split|prefer_focus|prefer_tutorial|move_captions_off_faces]",
328
+ flags: ["clip-id", "repair-mode"],
329
+ description: "Run a repair pass on an assembled clip.",
330
+ mutates: true,
331
+ }),
332
+ commandSpec({
333
+ command: ["clips", "export"],
334
+ usage: "blitzreels clips export --clip-id ID [--resolution 1080p] [--format mp4] [--allow-blocking-qa-bypass false]",
335
+ flags: ["clip-id", "resolution", "format", "allow-blocking-qa-bypass"],
336
+ description: "Export a managed clip, optionally accepting QA warnings.",
337
+ mutates: true,
338
+ }),
339
+ commandSpec({
340
+ command: ["media", "folders", "list"],
341
+ usage: "blitzreels media folders list [--parent-folder-id ID] [--json]",
342
+ flags: ["parent-folder-id"],
343
+ }),
344
+ commandSpec({
345
+ command: ["media", "folders", "create"],
346
+ usage: "blitzreels media folders create --name NAME [--parent-folder-id ID] [--description TEXT|null] [--icon-type video]",
347
+ flags: ["name", "parent-folder-id", "description", "icon-type"],
348
+ }),
349
+ commandSpec({
350
+ command: ["media", "folders", "rename"],
351
+ usage: "blitzreels media folders rename --folder-id ID --name NAME",
352
+ flags: ["folder-id", "name"],
353
+ }),
354
+ commandSpec({
355
+ command: ["media", "folders", "update"],
356
+ usage: "blitzreels media folders update --folder-id ID [--name NAME] [--parent-folder-id ID|root] [--description TEXT|null] [--icon-type video]",
357
+ flags: [
358
+ "folder-id",
359
+ "name",
360
+ "parent-folder-id",
361
+ "description",
362
+ "icon-type",
363
+ ],
364
+ }),
365
+ commandSpec({
366
+ command: ["media", "folders", "delete"],
367
+ usage: "blitzreels media folders delete --folder-id ID --confirm-delete [--cascade true]",
368
+ flags: ["folder-id", "confirm-delete", "cascade"],
369
+ }),
370
+ commandSpec({
371
+ command: ["project", "inspect"],
372
+ usage: "blitzreels project inspect --project-id ID [--mode full] [--json]",
373
+ flags: ["project-id", "mode"],
374
+ }),
375
+ commandSpec({
376
+ command: ["project", "timeline"],
377
+ usage: "blitzreels project timeline --project-id ID [--json]",
378
+ flags: ["project-id"],
379
+ description: "Print timeline state. Layer model: lower layer_index renders above higher; captions 0, text/effects 1, B-roll 2, main video 3.",
380
+ }),
381
+ commandSpec({
382
+ command: ["project", "snapshot"],
383
+ usage: "blitzreels project snapshot --project-id ID --at 00:03 [--target-width 608] [--image-format jpeg|png|webp] [--json]",
384
+ flags: ["project-id", "at", "target-width", "image-format"],
385
+ }),
386
+ commandSpec({
387
+ command: ["project", "snapshots"],
388
+ usage: "blitzreels project snapshots --project-id ID --at 00:01,00:03 [--target-width 608] [--image-format jpeg|png|webp] [--json]",
389
+ flags: ["project-id", "at", "target-width", "image-format"],
390
+ }),
391
+ commandSpec({
392
+ command: ["timeline", "transform"],
393
+ usage: "blitzreels timeline transform --project-id ID --timeline-item-id ID [--position-x 0] [--position-y 0] [--width-px 320|null] [--height-px 180|null] [--keep-aspect-ratio true]",
394
+ flags: [
395
+ "project-id",
396
+ "timeline-item-id",
397
+ "position-x",
398
+ "position-y",
399
+ "width-px",
400
+ "height-px",
401
+ "keep-aspect-ratio",
402
+ ],
403
+ }),
404
+ commandSpec({
405
+ command: ["timeline", "move"],
406
+ usage: "blitzreels timeline move --project-id ID --timeline-item-id ID --at 00:03 [--layer-index 2]",
407
+ flags: ["project-id", "timeline-item-id", "at", "layer-index"],
408
+ }),
409
+ commandSpec({
410
+ command: ["timeline", "delete"],
411
+ usage: "blitzreels timeline delete --project-id ID --timeline-item-id ID|--timeline-item-ids ID1,ID2 [--auto-pack true]",
412
+ flags: ["project-id", "timeline-item-id", "timeline-item-ids", "auto-pack"],
413
+ }),
414
+ commandSpec({
415
+ command: ["effects", "zoom", "add"],
416
+ usage: "blitzreels effects zoom add --project-id ID [--at 0] [--duration 1.5] [--scale-start 1] [--scale-end 1.2] [--easing easeInOut] [--style transition|hard] [--phase in|out|both|none] [--anchor-x 0.5] [--anchor-y 0.5] [--translate-start-x 0] [--translate-start-y 0] [--translate-end-x 0] [--translate-end-y 0] [--layer-index 2]",
417
+ flags: [
418
+ "project-id",
419
+ "timeline-item-id",
420
+ "content-item-id",
421
+ "effect-id",
422
+ "name",
423
+ "at",
424
+ "duration",
425
+ "easing",
426
+ "layer-index",
427
+ "order-index",
428
+ "scale-start",
429
+ "scale-end",
430
+ "style",
431
+ "phase",
432
+ "in-duration",
433
+ "out-duration",
434
+ "out-scale",
435
+ "anchor-x",
436
+ "anchor-y",
437
+ "translate-start-x",
438
+ "translate-start-y",
439
+ "translate-end-x",
440
+ "translate-end-y",
441
+ "settings-json",
442
+ ],
443
+ }),
444
+ commandSpec({
445
+ command: ["effects", "zoom", "update"],
446
+ usage: "blitzreels effects zoom update --project-id ID --timeline-item-id ID [--scale-end 1.1] [--easing easeInOut] [--duration 1.8] [--style transition|hard] [--phase in|out|both|none] [--settings-json JSON]",
447
+ flags: [
448
+ "project-id",
449
+ "timeline-item-id",
450
+ "easing",
451
+ "duration",
452
+ "scale-start",
453
+ "scale-end",
454
+ "style",
455
+ "phase",
456
+ "in-duration",
457
+ "out-duration",
458
+ "out-scale",
459
+ "anchor-x",
460
+ "anchor-y",
461
+ "translate-start-x",
462
+ "translate-start-y",
463
+ "translate-end-x",
464
+ "translate-end-y",
465
+ "settings-json",
466
+ ],
467
+ }),
468
+ commandSpec({
469
+ command: ["effects", "mask", "add"],
470
+ usage: "blitzreels effects mask add --project-id ID [--at 0] [--duration 1] [--settings-json JSON] [--easing easeInOut] [--layer-index 2]",
471
+ flags: [
472
+ "project-id",
473
+ "timeline-item-id",
474
+ "content-item-id",
475
+ "effect-id",
476
+ "name",
477
+ "at",
478
+ "duration",
479
+ "easing",
480
+ "layer-index",
481
+ "order-index",
482
+ "settings-json",
483
+ ],
484
+ }),
485
+ commandSpec({
486
+ command: ["effects", "mask", "update"],
487
+ usage: "blitzreels effects mask update --project-id ID --timeline-item-id ID [--duration 1] [--settings-json JSON] [--easing easeInOut]",
488
+ flags: [
489
+ "project-id",
490
+ "timeline-item-id",
491
+ "duration",
492
+ "easing",
493
+ "settings-json",
494
+ ],
495
+ }),
496
+ commandSpec({
497
+ command: ["effects", "colorgrade", "add"],
498
+ usage: "blitzreels effects colorgrade add --project-id ID [--at 0] [--duration 1] [--settings-json JSON] [--easing easeInOut] [--layer-index 2]",
499
+ flags: [
500
+ "project-id",
501
+ "timeline-item-id",
502
+ "content-item-id",
503
+ "effect-id",
504
+ "name",
505
+ "at",
506
+ "duration",
507
+ "easing",
508
+ "layer-index",
509
+ "order-index",
510
+ "settings-json",
511
+ ],
512
+ }),
513
+ commandSpec({
514
+ command: ["effects", "colorgrade", "update"],
515
+ usage: "blitzreels effects colorgrade update --project-id ID --timeline-item-id ID [--duration 1] [--settings-json JSON] [--easing easeInOut]",
516
+ flags: [
517
+ "project-id",
518
+ "timeline-item-id",
519
+ "duration",
520
+ "easing",
521
+ "settings-json",
522
+ ],
523
+ }),
524
+ commandSpec({
525
+ command: ["text", "add"],
526
+ usage: "blitzreels text add --project-id ID --text \"Hook\" [--name NAME] [--at 0] [--duration 4] [--layer-index 2] [--spec-json JSON] [--font-family Inter] [--font-size 64] [--font-weight 700] [--color '#fff'] [--background-color '#000'] [--padding-x 32] [--padding-y 16] [--border-radius 24] [--top '18%'] [--left '50%'] [--text-align center] [--text-shadow '0 6px 18px #000'] [--no-background]",
527
+ flags: [
528
+ "project-id",
529
+ "text",
530
+ "name",
531
+ "at",
532
+ "duration",
533
+ "layer-index",
534
+ ...TEXT_STYLE_FLAGS,
535
+ ],
536
+ }),
537
+ commandSpec({
538
+ command: ["text", "list"],
539
+ usage: "blitzreels text list --project-id ID [--json]",
540
+ flags: ["project-id"],
541
+ }),
542
+ commandSpec({
543
+ command: ["text", "update"],
544
+ usage: "blitzreels text update --project-id ID --content-item-id ID [--text \"New hook\"] [--name NAME] [--duration 4] [--spec-json JSON] [--font-family Pacifico] [--font-size 82] [--font-weight 700] [--color '#17FFA6'] [--background-color '#051914'] [--padding-x 32] [--padding-y 16] [--border-radius 24] [--top '18%'] [--left '50%'] [--text-align center] [--text-shadow '0 6px 18px #000'] [--no-background]",
545
+ flags: [
546
+ "project-id",
547
+ "content-item-id",
548
+ "text",
549
+ "name",
550
+ "duration",
551
+ ...TEXT_STYLE_FLAGS,
552
+ ],
553
+ }),
554
+ commandSpec({
555
+ command: ["text", "remove"],
556
+ usage: "blitzreels text remove --project-id ID --content-item-id ID",
557
+ flags: ["project-id", "content-item-id"],
558
+ }),
559
+ commandSpec({
560
+ command: ["audio", "add"],
561
+ usage: "blitzreels audio add --project-id ID --asset-id ID [--at 0] [--duration 30] [--volume 0.6] [--fade-in 0.5] [--fade-out 0.5] [--loop true]",
562
+ flags: [
563
+ "project-id",
564
+ "asset-id",
565
+ "at",
566
+ "duration",
567
+ "volume",
568
+ "fade-in",
569
+ "fade-out",
570
+ "loop",
571
+ ],
572
+ }),
573
+ commandSpec({
574
+ command: ["audio", "update"],
575
+ usage: "blitzreels audio update --project-id ID --timeline-item-id ID [--duration 30] [--volume 0.6] [--fade-in 0.5] [--fade-out 0.5]",
576
+ flags: [
577
+ "project-id",
578
+ "timeline-item-id",
579
+ "duration",
580
+ "volume",
581
+ "fade-in",
582
+ "fade-out",
583
+ ],
584
+ }),
585
+ commandSpec({
586
+ command: ["audio", "search"],
587
+ usage: "blitzreels audio search --query QUERY [--provider all|openverse|freesound|wikimedia] [--license cc0|public_domain|attribution|all] [--audio-type music|sound_effect|ambient|other] [--min-duration 1] [--max-duration 30] [--limit 20] [--page 1] [--json]",
588
+ flags: [
589
+ "query",
590
+ "provider",
591
+ "license",
592
+ "audio-type",
593
+ "min-duration",
594
+ "max-duration",
595
+ "limit",
596
+ "page",
597
+ ],
598
+ }),
599
+ commandSpec({
600
+ command: ["audio", "import"],
601
+ usage: "blitzreels audio import --provider openverse|freesound|wikimedia --external-id ID [--folder-id ID|root] [--project-id ID] [--at 0] [--duration 30] [--volume 0.6] [--fade-in 0.5] [--fade-out 0.5] [--loop true] [--audio-type music|sound_effect|ambient|other]",
602
+ flags: [
603
+ "provider",
604
+ "external-id",
605
+ "folder-id",
606
+ "project-id",
607
+ "at",
608
+ "duration",
609
+ "volume",
610
+ "fade-in",
611
+ "fade-out",
612
+ "loop",
613
+ "audio-type",
614
+ ],
615
+ }),
616
+ commandSpec({
617
+ command: ["stock", "search"],
618
+ usage: "blitzreels stock search --query QUERY --asset-type image|video|audio [--provider pexels|freesound] [--orientation landscape|portrait|square] [--limit 20] [--page 1] [--json]",
619
+ flags: ["query", "asset-type", "provider", "orientation", "limit", "page"],
620
+ }),
621
+ commandSpec({
622
+ command: ["stock", "import"],
623
+ usage: "blitzreels stock import --provider pexels|freesound --provider-asset-id ID --asset-type image|video|audio [--variant-id ID] [--folder-id ID|root] [--audio-type sound_effect|ambient|background_music|other]",
624
+ flags: [
625
+ "provider",
626
+ "provider-asset-id",
627
+ "asset-type",
628
+ "variant-id",
629
+ "folder-id",
630
+ "audio-type",
631
+ ],
632
+ }),
633
+ commandSpec({
634
+ command: ["library", "search"],
635
+ usage: "blitzreels library search [--query QUERY] [--asset-type image|video|audio] [--audio-type music|sound_effect|ambient|background_music|other] [--limit 20] [--offset 0] [--json]",
636
+ flags: ["query", "asset-type", "audio-type", "limit", "offset"],
637
+ description: "Search the BlitzReels global B-roll library.",
638
+ }),
639
+ commandSpec({
640
+ command: ["library", "import"],
641
+ usage: "blitzreels library import --library-asset-id ID [--folder-id ID|root]",
642
+ flags: ["library-asset-id", "folder-id"],
643
+ description: "Import a global B-roll library asset into workspace media.",
644
+ }),
645
+ commandSpec({
646
+ command: ["silence", "plan"],
647
+ usage: "blitzreels silence plan --project-id ID --timeline-item-id ID [--padding-ms 120] [--silence-threshold-db -35] [--min-silence-duration 0.25] [--remove-blips-max-duration 0.12] [--use-caption-validation true] [--json]",
648
+ flags: [
649
+ "project-id",
650
+ "timeline-item-id",
651
+ "padding-ms",
652
+ "silence-threshold-db",
653
+ "min-silence-duration",
654
+ "remove-blips-max-duration",
655
+ "use-caption-validation",
656
+ ],
657
+ }),
658
+ commandSpec({
659
+ command: ["silence", "apply"],
660
+ usage: "blitzreels silence apply --project-id ID [--timeline-item-id ID|--all-media-items true] --confirm-preview [--padding-ms 120] [--silence-threshold-db -35] [--min-silence-duration 0.25] [--remove-blips-max-duration 0.12] [--use-caption-validation true] [--delete-silent-clips true] [--manual-segment-overrides-json JSON]",
661
+ flags: [
662
+ "project-id",
663
+ "timeline-item-id",
664
+ "all-media-items",
665
+ "confirm-preview",
666
+ "padding-ms",
667
+ "silence-threshold-db",
668
+ "min-silence-duration",
669
+ "remove-blips-max-duration",
670
+ "use-caption-validation",
671
+ "delete-silent-clips",
672
+ "manual-segment-overrides-json",
673
+ ],
674
+ }),
675
+ commandSpec({
676
+ command: ["mistakes", "plan"],
677
+ usage: "blitzreels mistakes plan --project-id ID --timeline-item-id ID [--summary true] [--json]",
678
+ flags: ["project-id", "timeline-item-id", "summary"],
679
+ }),
680
+ commandSpec({
681
+ command: ["mistakes", "apply"],
682
+ usage: "blitzreels mistakes apply --project-id ID --timeline-item-id ID --confirm-preview [--plan-json JSON] [--manual-verdicts-json JSON] [--delete-mistakes true]",
683
+ flags: [
684
+ "project-id",
685
+ "timeline-item-id",
686
+ "confirm-preview",
687
+ "plan-json",
688
+ "manual-verdicts-json",
689
+ "delete-mistakes",
690
+ ],
691
+ }),
692
+ commandSpec({
693
+ command: ["captions", "words", "list"],
694
+ usage: "blitzreels captions words list --project-id ID [--timeline-item-id ID] [--match-text TEXT] [--limit 100] [--offset 0]",
695
+ flags: ["project-id", "timeline-item-id", "match-text", "limit", "offset"],
696
+ }),
697
+ commandSpec({
698
+ command: ["captions", "list-words"],
699
+ usage: "blitzreels captions list-words --project-id ID [--timeline-item-id ID] [--match-text TEXT] [--limit 100] [--offset 0]",
700
+ flags: ["project-id", "timeline-item-id", "match-text", "limit", "offset"],
701
+ description: "Shallow alias for captions words list.",
702
+ }),
703
+ commandSpec({
704
+ command: ["captions", "words", "text"],
705
+ usage: 'blitzreels captions words text --project-id ID --word-id ID --text "Fix"|--new-text "Fix"',
706
+ flags: ["project-id", "word-id", "text", "new-text"],
707
+ }),
708
+ commandSpec({
709
+ command: ["captions", "words", "batch-text"],
710
+ usage: 'blitzreels captions words batch-text --project-id ID --updates-json \'[{"word_id":"...","new_text":"..."}]\'',
711
+ flags: ["project-id", "updates-json"],
712
+ }),
713
+ commandSpec({
714
+ command: ["captions", "words", "style"],
715
+ usage: "blitzreels captions words style --project-id ID [--word-id ID|--word-ids IDs|--timeline-item-id ID|--match-text TEXT|--match-pattern numbers|caps|exclamations|--all|--from 12 --to 18] [--style-json JSON|null] [--font-family Pacifico] [--font-weight 700] [--font-style italic] [--color '#17FFA6'] [--active-color '#fff'] [--background-color '#051914'] [--active-animation pop] [--text-transform uppercase] [--text-shadow '0 6px 18px #000'] [--glow-color '#17FFA6'] [--glow-blur-px 18] [--scale 1.45] [--offset-x 0] [--offset-y -8] [--rotation-deg -2] [--letter-spacing 1] [--opacity 1] [--clear-existing true]",
716
+ flags: [
717
+ "project-id",
718
+ ...CAPTION_WORD_SELECTOR_FLAGS,
719
+ ...CAPTION_WORD_STYLE_FLAGS,
720
+ ],
721
+ }),
722
+ commandSpec({
723
+ command: ["captions", "style-words"],
724
+ usage: "blitzreels captions style-words --project-id ID [--word-id ID|--word-ids IDs|--timeline-item-id ID|--match-text TEXT|--match-pattern numbers|caps|exclamations|--all|--from 12 --to 18] [--style-json JSON|null] [--font-family Pacifico] [--font-weight 700] [--font-style italic] [--color '#17FFA6'] [--active-color '#fff'] [--background-color '#051914'] [--active-animation pop] [--text-transform uppercase] [--text-shadow '0 6px 18px #000'] [--glow-color '#17FFA6'] [--glow-blur-px 18] [--scale 1.45] [--offset-x 0] [--offset-y -8] [--rotation-deg -2] [--letter-spacing 1] [--opacity 1] [--clear-existing true]",
725
+ flags: [
726
+ "project-id",
727
+ ...CAPTION_WORD_SELECTOR_FLAGS,
728
+ ...CAPTION_WORD_STYLE_FLAGS,
729
+ ],
730
+ description: "Shallow alias for captions words style.",
731
+ }),
732
+ commandSpec({
733
+ command: ["captions", "words", "emphasis"],
734
+ usage: "blitzreels captions words emphasis --project-id ID [--word-id ID|--word-ids IDs|--timeline-item-id ID|--match-text TEXT|--match-pattern numbers|caps|exclamations|--all|--from 12 --to 18] [--emphasis true]",
735
+ flags: ["project-id", ...CAPTION_WORD_SELECTOR_FLAGS, "emphasis"],
736
+ }),
737
+ commandSpec({
738
+ command: ["captions", "emphasize"],
739
+ usage: "blitzreels captions emphasize --project-id ID [--word-id ID|--word-ids IDs|--timeline-item-id ID|--match-text TEXT|--match-pattern numbers|caps|exclamations|--all|--from 12 --to 18] [--emphasis true]",
740
+ flags: ["project-id", ...CAPTION_WORD_SELECTOR_FLAGS, "emphasis"],
741
+ description: "Shallow alias for captions words emphasis.",
742
+ }),
743
+ commandSpec({
744
+ command: ["captions", "words", "delete"],
745
+ usage: "blitzreels captions words delete --project-id ID --word-id ID|--word-ids ID1,ID2",
746
+ flags: ["project-id", "word-id", "word-ids"],
747
+ }),
748
+ commandSpec({
749
+ command: ["captions", "delete"],
750
+ usage: "blitzreels captions delete --project-id ID [--all] [--timeline-item-id ID] [--caption-id ID] [--from 12] [--to 18]",
751
+ flags: [
752
+ "project-id",
753
+ { name: "all", type: "boolean", required: false },
754
+ { name: "timeline-item-id", required: false },
755
+ { name: "caption-id", required: false },
756
+ { name: "from", type: "time", required: false },
757
+ { name: "to", type: "time", required: false },
758
+ ],
759
+ mutates: true,
760
+ destructive: true,
761
+ dryRunSupported: true,
762
+ }),
763
+ commandSpec({
764
+ command: ["captions", "hide"],
765
+ usage: "blitzreels captions hide --project-id ID [--all] [--timeline-item-id ID] [--caption-id ID] [--from 12] [--to 18]",
766
+ flags: [
767
+ "project-id",
768
+ { name: "all", type: "boolean", required: false },
769
+ { name: "timeline-item-id", required: false },
770
+ { name: "caption-id", required: false },
771
+ { name: "from", type: "time", required: false },
772
+ { name: "to", type: "time", required: false },
773
+ ],
774
+ mutates: true,
775
+ dryRunSupported: true,
776
+ }),
777
+ commandSpec({
778
+ command: ["captions", "show"],
779
+ usage: "blitzreels captions show --project-id ID [--all] [--timeline-item-id ID] [--caption-id ID] [--from 12] [--to 18]",
780
+ flags: [
781
+ "project-id",
782
+ { name: "all", type: "boolean", required: false },
783
+ { name: "timeline-item-id", required: false },
784
+ { name: "caption-id", required: false },
785
+ { name: "from", type: "time", required: false },
786
+ { name: "to", type: "time", required: false },
787
+ ],
788
+ mutates: true,
789
+ dryRunSupported: true,
790
+ }),
791
+ commandSpec({
792
+ command: ["captions", "words", "merge"],
793
+ usage: 'blitzreels captions words merge --project-id ID --word-ids ID1,ID2 [--text "Merged"]',
794
+ flags: ["project-id", "word-ids", "text"],
795
+ }),
796
+ commandSpec({
797
+ command: ["captions", "words", "split"],
798
+ usage: 'blitzreels captions words split --project-id ID --word-id ID --words "foo,bar"',
799
+ flags: ["project-id", "word-id", "words"],
800
+ }),
801
+ commandSpec({
802
+ command: ["captions", "themes", "list"],
803
+ usage: "blitzreels captions themes list [--json]",
804
+ }),
805
+ commandSpec({
806
+ command: ["captions", "theme", "set"],
807
+ usage: "blitzreels captions theme set --project-id ID --theme-id ID",
808
+ flags: ["project-id", "theme-id"],
809
+ }),
810
+ commandSpec({
811
+ command: ["captions", "theme", "update"],
812
+ usage: "blitzreels captions theme update --theme-id ID [--name NAME] [--description TEXT] [--settings-json JSON] [--text-shadow CSS] [--shadow-mode text-shadow|drop-shadow|null] [--text-stroke-enabled true] [--text-stroke-color '#000'] [--text-stroke-width-px 6] [--text-stroke-blur-px 0]",
813
+ flags: [
814
+ "theme-id",
815
+ "name",
816
+ "description",
817
+ "settings-json",
818
+ "text-shadow",
819
+ "shadow-mode",
820
+ "text-stroke-enabled",
821
+ "text-stroke-color",
822
+ "text-stroke-width-px",
823
+ "text-stroke-blur-px",
824
+ ],
825
+ }),
826
+ commandSpec({
827
+ command: ["captions", "theme", "set-default"],
828
+ usage: "blitzreels captions theme set-default --theme-id ID",
829
+ flags: ["theme-id"],
830
+ }),
831
+ commandSpec({
832
+ command: ["exports", "start"],
833
+ usage: "blitzreels exports start --project-id ID [--resolution 1080p] [--format mp4]",
834
+ flags: ["project-id", "resolution", "format"],
835
+ }),
836
+ commandSpec({
837
+ command: ["exports", "wait"],
838
+ usage: "blitzreels exports wait --export-id ID [--interval-ms 3000] [--timeout-ms 1200000] [--json]",
839
+ flags: ["export-id", "interval-ms", "timeout-ms"],
840
+ }),
841
+ commandSpec({
842
+ command: ["exports", "download"],
843
+ usage: "blitzreels exports download --export-id ID --output ./short.mp4",
844
+ flags: ["export-id", "output"],
845
+ }),
846
+ commandSpec({
847
+ command: ["api", "docs"],
848
+ usage: "blitzreels api docs",
849
+ }),
850
+ commandSpec({
851
+ command: ["api", "spec"],
852
+ usage: "blitzreels api spec [--json]",
853
+ description: "Fetch and print the BlitzReels OpenAPI JSON spec.",
854
+ }),
855
+ ];
856
+ //# sourceMappingURL=command-registry.js.map