vidgen 0.0.1

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.
Files changed (61) hide show
  1. package/README.md +781 -0
  2. package/bin/dev.cmd +3 -0
  3. package/bin/dev.js +5 -0
  4. package/bin/run.cmd +3 -0
  5. package/bin/run.js +5 -0
  6. package/dist/commands/db/init.d.ts +6 -0
  7. package/dist/commands/db/init.js +18 -0
  8. package/dist/commands/generate/stt.d.ts +13 -0
  9. package/dist/commands/generate/stt.js +73 -0
  10. package/dist/commands/generate/tts.d.ts +11 -0
  11. package/dist/commands/generate/tts.js +30 -0
  12. package/dist/commands/index/chunk.d.ts +11 -0
  13. package/dist/commands/index/chunk.js +55 -0
  14. package/dist/commands/index/describe.d.ts +11 -0
  15. package/dist/commands/index/describe.js +29 -0
  16. package/dist/commands/index/embed.d.ts +11 -0
  17. package/dist/commands/index/embed.js +29 -0
  18. package/dist/commands/index/save.d.ts +10 -0
  19. package/dist/commands/index/save.js +24 -0
  20. package/dist/commands/project/create.d.ts +11 -0
  21. package/dist/commands/project/create.js +63 -0
  22. package/dist/commands/project/delete.d.ts +9 -0
  23. package/dist/commands/project/delete.js +31 -0
  24. package/dist/commands/project/get.d.ts +9 -0
  25. package/dist/commands/project/get.js +39 -0
  26. package/dist/commands/project/list.d.ts +6 -0
  27. package/dist/commands/project/list.js +26 -0
  28. package/dist/commands/project/validate.d.ts +10 -0
  29. package/dist/commands/project/validate.js +29 -0
  30. package/dist/commands/search/asset.d.ts +12 -0
  31. package/dist/commands/search/asset.js +35 -0
  32. package/dist/commands/segment/add.d.ts +11 -0
  33. package/dist/commands/segment/add.js +49 -0
  34. package/dist/commands/segment/delete.d.ts +9 -0
  35. package/dist/commands/segment/delete.js +29 -0
  36. package/dist/commands/segment/list.d.ts +9 -0
  37. package/dist/commands/segment/list.js +33 -0
  38. package/dist/commands/segment/update.d.ts +13 -0
  39. package/dist/commands/segment/update.js +50 -0
  40. package/dist/commands/video/caption.d.ts +12 -0
  41. package/dist/commands/video/caption.js +43 -0
  42. package/dist/commands/video/trim.d.ts +13 -0
  43. package/dist/commands/video/trim.js +52 -0
  44. package/dist/index.d.ts +1 -0
  45. package/dist/index.js +1 -0
  46. package/dist/lib/db.d.ts +7 -0
  47. package/dist/lib/db.js +39 -0
  48. package/dist/lib/stt/deepgram-to-combo.d.ts +2 -0
  49. package/dist/lib/stt/deepgram-to-combo.js +49 -0
  50. package/dist/lib/stt/deepgram.d.ts +18 -0
  51. package/dist/lib/stt/deepgram.js +71 -0
  52. package/dist/lib/stt/detect-language.d.ts +2 -0
  53. package/dist/lib/stt/detect-language.js +31 -0
  54. package/dist/lib/stt/index.d.ts +50 -0
  55. package/dist/lib/stt/index.js +50 -0
  56. package/dist/lib/stt/types.d.ts +65 -0
  57. package/dist/lib/stt/types.js +1 -0
  58. package/dist/lib/types.d.ts +131 -0
  59. package/dist/lib/types.js +1 -0
  60. package/oclif.manifest.json +874 -0
  61. package/package.json +79 -0
@@ -0,0 +1,874 @@
1
+ {
2
+ "commands": {
3
+ "db:init": {
4
+ "aliases": [],
5
+ "args": {},
6
+ "description": "Initialize the Turso database schema (projects and segments tables).",
7
+ "examples": [
8
+ "<%= config.bin %> <%= command.id %>"
9
+ ],
10
+ "flags": {},
11
+ "hasDynamicHelp": false,
12
+ "hiddenAliases": [],
13
+ "id": "db:init",
14
+ "pluginAlias": "vidgen",
15
+ "pluginName": "vidgen",
16
+ "pluginType": "core",
17
+ "strict": true,
18
+ "enableJsonFlag": false,
19
+ "isESM": true,
20
+ "relativePath": [
21
+ "dist",
22
+ "commands",
23
+ "db",
24
+ "init.js"
25
+ ]
26
+ },
27
+ "generate:stt": {
28
+ "aliases": [],
29
+ "args": {},
30
+ "description": "Generate a Speech-to-Text (STT) transcript from an audio file using Deepgram. Populates the SpeechToText object in a Segment.",
31
+ "examples": [
32
+ "<%= config.bin %> <%= command.id %> --audio https://storage.example.com/seg_001.mp3 --output ./captions/seg_001.json"
33
+ ],
34
+ "flags": {
35
+ "audio": {
36
+ "char": "a",
37
+ "description": "URL or local path to the audio file to transcribe",
38
+ "name": "audio",
39
+ "required": true,
40
+ "hasDynamicHelp": false,
41
+ "multiple": false,
42
+ "type": "option"
43
+ },
44
+ "language": {
45
+ "char": "l",
46
+ "description": "Target language for transcription (e.g. \"en\"). Omit for auto-detection.",
47
+ "name": "language",
48
+ "hasDynamicHelp": false,
49
+ "multiple": false,
50
+ "type": "option"
51
+ },
52
+ "model": {
53
+ "char": "m",
54
+ "description": "Deepgram model to use",
55
+ "name": "model",
56
+ "default": "nova-3",
57
+ "hasDynamicHelp": false,
58
+ "multiple": false,
59
+ "type": "option"
60
+ },
61
+ "output": {
62
+ "char": "o",
63
+ "description": "Path to write the transcript JSON output",
64
+ "name": "output",
65
+ "required": true,
66
+ "hasDynamicHelp": false,
67
+ "multiple": false,
68
+ "type": "option"
69
+ },
70
+ "segmentId": {
71
+ "char": "s",
72
+ "description": "Segment ID to update with the STT result",
73
+ "name": "segmentId",
74
+ "hasDynamicHelp": false,
75
+ "multiple": false,
76
+ "type": "option"
77
+ }
78
+ },
79
+ "hasDynamicHelp": false,
80
+ "hiddenAliases": [],
81
+ "id": "generate:stt",
82
+ "pluginAlias": "vidgen",
83
+ "pluginName": "vidgen",
84
+ "pluginType": "core",
85
+ "strict": true,
86
+ "enableJsonFlag": false,
87
+ "isESM": true,
88
+ "relativePath": [
89
+ "dist",
90
+ "commands",
91
+ "generate",
92
+ "stt.js"
93
+ ]
94
+ },
95
+ "generate:tts": {
96
+ "aliases": [],
97
+ "args": {},
98
+ "description": "Generate a Text-to-Speech (TTS) audio file from a script. Populates the TextToSpeech object in a Segment.",
99
+ "examples": [
100
+ "<%= config.bin %> <%= command.id %> --text \"Blockchain is revolutionizing...\" --voiceId en-US-1 --output ./audio/seg_001.mp3"
101
+ ],
102
+ "flags": {
103
+ "output": {
104
+ "char": "o",
105
+ "description": "Path or URL to write the generated audio file",
106
+ "name": "output",
107
+ "required": true,
108
+ "hasDynamicHelp": false,
109
+ "multiple": false,
110
+ "type": "option"
111
+ },
112
+ "text": {
113
+ "char": "t",
114
+ "description": "The script text to convert to speech",
115
+ "name": "text",
116
+ "required": true,
117
+ "hasDynamicHelp": false,
118
+ "multiple": false,
119
+ "type": "option"
120
+ },
121
+ "voiceId": {
122
+ "char": "v",
123
+ "description": "Voice ID to use for the TTS provider (e.g. ElevenLabs, OpenAI)",
124
+ "name": "voiceId",
125
+ "required": true,
126
+ "hasDynamicHelp": false,
127
+ "multiple": false,
128
+ "type": "option"
129
+ }
130
+ },
131
+ "hasDynamicHelp": false,
132
+ "hiddenAliases": [],
133
+ "id": "generate:tts",
134
+ "pluginAlias": "vidgen",
135
+ "pluginName": "vidgen",
136
+ "pluginType": "core",
137
+ "strict": true,
138
+ "enableJsonFlag": false,
139
+ "isESM": true,
140
+ "relativePath": [
141
+ "dist",
142
+ "commands",
143
+ "generate",
144
+ "tts.js"
145
+ ]
146
+ },
147
+ "index:chunk": {
148
+ "aliases": [],
149
+ "args": {},
150
+ "description": "Slice a video into fixed-duration chunks and extract keyframes for downstream analysis.",
151
+ "examples": [
152
+ "<%= config.bin %> <%= command.id %> --url ./video.mp4 --duration 5 --output ./chunks"
153
+ ],
154
+ "flags": {
155
+ "duration": {
156
+ "char": "d",
157
+ "description": "Duration in seconds for each chunk",
158
+ "name": "duration",
159
+ "default": 5,
160
+ "hasDynamicHelp": false,
161
+ "multiple": false,
162
+ "type": "option"
163
+ },
164
+ "output": {
165
+ "char": "o",
166
+ "description": "Output directory for chunk files and keyframes",
167
+ "name": "output",
168
+ "required": true,
169
+ "hasDynamicHelp": false,
170
+ "multiple": false,
171
+ "type": "option"
172
+ },
173
+ "url": {
174
+ "char": "u",
175
+ "description": "URL or local path to the video file",
176
+ "name": "url",
177
+ "required": true,
178
+ "hasDynamicHelp": false,
179
+ "multiple": false,
180
+ "type": "option"
181
+ }
182
+ },
183
+ "hasDynamicHelp": false,
184
+ "hiddenAliases": [],
185
+ "id": "index:chunk",
186
+ "pluginAlias": "vidgen",
187
+ "pluginName": "vidgen",
188
+ "pluginType": "core",
189
+ "strict": true,
190
+ "enableJsonFlag": false,
191
+ "isESM": true,
192
+ "relativePath": [
193
+ "dist",
194
+ "commands",
195
+ "index",
196
+ "chunk.js"
197
+ ]
198
+ },
199
+ "index:describe": {
200
+ "aliases": [],
201
+ "args": {},
202
+ "description": "Use a Vision AI model to generate a text description of an image or video keyframe.",
203
+ "examples": [
204
+ "<%= config.bin %> <%= command.id %> --image ./chunks/frame_001.jpg --output ./descriptions/frame_001.json"
205
+ ],
206
+ "flags": {
207
+ "image": {
208
+ "char": "i",
209
+ "description": "Path or URL to the image/keyframe to describe",
210
+ "name": "image",
211
+ "required": true,
212
+ "hasDynamicHelp": false,
213
+ "multiple": false,
214
+ "type": "option"
215
+ },
216
+ "model": {
217
+ "char": "m",
218
+ "description": "Vision model to use for description",
219
+ "name": "model",
220
+ "default": "gemini-flash",
221
+ "hasDynamicHelp": false,
222
+ "multiple": false,
223
+ "type": "option"
224
+ },
225
+ "output": {
226
+ "char": "o",
227
+ "description": "Path to write the description JSON output",
228
+ "name": "output",
229
+ "required": true,
230
+ "hasDynamicHelp": false,
231
+ "multiple": false,
232
+ "type": "option"
233
+ }
234
+ },
235
+ "hasDynamicHelp": false,
236
+ "hiddenAliases": [],
237
+ "id": "index:describe",
238
+ "pluginAlias": "vidgen",
239
+ "pluginName": "vidgen",
240
+ "pluginType": "core",
241
+ "strict": true,
242
+ "enableJsonFlag": false,
243
+ "isESM": true,
244
+ "relativePath": [
245
+ "dist",
246
+ "commands",
247
+ "index",
248
+ "describe.js"
249
+ ]
250
+ },
251
+ "index:embed": {
252
+ "aliases": [],
253
+ "args": {},
254
+ "description": "Convert a text description into a vector embedding for semantic search.",
255
+ "examples": [
256
+ "<%= config.bin %> <%= command.id %> --text \"A bitcoin coin spinning on a blue background\" --output ./embeddings/frame_001.json"
257
+ ],
258
+ "flags": {
259
+ "model": {
260
+ "char": "m",
261
+ "description": "Embedding model to use",
262
+ "name": "model",
263
+ "default": "text-embedding-3-small",
264
+ "hasDynamicHelp": false,
265
+ "multiple": false,
266
+ "type": "option"
267
+ },
268
+ "output": {
269
+ "char": "o",
270
+ "description": "Path to write the embedding JSON output",
271
+ "name": "output",
272
+ "required": true,
273
+ "hasDynamicHelp": false,
274
+ "multiple": false,
275
+ "type": "option"
276
+ },
277
+ "text": {
278
+ "char": "t",
279
+ "description": "The text description to embed",
280
+ "name": "text",
281
+ "required": true,
282
+ "hasDynamicHelp": false,
283
+ "multiple": false,
284
+ "type": "option"
285
+ }
286
+ },
287
+ "hasDynamicHelp": false,
288
+ "hiddenAliases": [],
289
+ "id": "index:embed",
290
+ "pluginAlias": "vidgen",
291
+ "pluginName": "vidgen",
292
+ "pluginType": "core",
293
+ "strict": true,
294
+ "enableJsonFlag": false,
295
+ "isESM": true,
296
+ "relativePath": [
297
+ "dist",
298
+ "commands",
299
+ "index",
300
+ "embed.js"
301
+ ]
302
+ },
303
+ "index:save": {
304
+ "aliases": [],
305
+ "args": {},
306
+ "description": "Save a video chunk's metadata (timecodes, description, embedding) to the RAG database.",
307
+ "examples": [
308
+ "<%= config.bin %> <%= command.id %> --metadata ./chunk_001_meta.json --db postgresql://user:pass@localhost/db"
309
+ ],
310
+ "flags": {
311
+ "db": {
312
+ "char": "d",
313
+ "description": "Database connection string",
314
+ "name": "db",
315
+ "required": true,
316
+ "hasDynamicHelp": false,
317
+ "multiple": false,
318
+ "type": "option"
319
+ },
320
+ "metadata": {
321
+ "char": "m",
322
+ "description": "Path to the metadata JSON file containing chunk info, description, and embedding",
323
+ "name": "metadata",
324
+ "required": true,
325
+ "hasDynamicHelp": false,
326
+ "multiple": false,
327
+ "type": "option"
328
+ }
329
+ },
330
+ "hasDynamicHelp": false,
331
+ "hiddenAliases": [],
332
+ "id": "index:save",
333
+ "pluginAlias": "vidgen",
334
+ "pluginName": "vidgen",
335
+ "pluginType": "core",
336
+ "strict": true,
337
+ "enableJsonFlag": false,
338
+ "isESM": true,
339
+ "relativePath": [
340
+ "dist",
341
+ "commands",
342
+ "index",
343
+ "save.js"
344
+ ]
345
+ },
346
+ "search:asset": {
347
+ "aliases": [],
348
+ "args": {},
349
+ "description": "Semantically search the video RAG database for the best matching clip for a given query. Returns matching VisualBroll / Clip metadata.",
350
+ "examples": [
351
+ "<%= config.bin %> <%= command.id %> --query \"bitcoin coin spinning on blue background\" --db postgresql://user:pass@localhost/db --limit 3"
352
+ ],
353
+ "flags": {
354
+ "db": {
355
+ "char": "d",
356
+ "description": "Database connection string",
357
+ "name": "db",
358
+ "required": true,
359
+ "hasDynamicHelp": false,
360
+ "multiple": false,
361
+ "type": "option"
362
+ },
363
+ "limit": {
364
+ "char": "l",
365
+ "description": "Maximum number of results to return",
366
+ "name": "limit",
367
+ "default": 1,
368
+ "hasDynamicHelp": false,
369
+ "multiple": false,
370
+ "type": "option"
371
+ },
372
+ "query": {
373
+ "char": "q",
374
+ "description": "The natural language search query (e.g. comes from a Segment's searchQuery field)",
375
+ "name": "query",
376
+ "required": true,
377
+ "hasDynamicHelp": false,
378
+ "multiple": false,
379
+ "type": "option"
380
+ },
381
+ "type": {
382
+ "char": "t",
383
+ "description": "Filter results by asset type",
384
+ "name": "type",
385
+ "hasDynamicHelp": false,
386
+ "multiple": false,
387
+ "options": [
388
+ "video",
389
+ "image"
390
+ ],
391
+ "type": "option"
392
+ }
393
+ },
394
+ "hasDynamicHelp": false,
395
+ "hiddenAliases": [],
396
+ "id": "search:asset",
397
+ "pluginAlias": "vidgen",
398
+ "pluginName": "vidgen",
399
+ "pluginType": "core",
400
+ "strict": true,
401
+ "enableJsonFlag": false,
402
+ "isESM": true,
403
+ "relativePath": [
404
+ "dist",
405
+ "commands",
406
+ "search",
407
+ "asset.js"
408
+ ]
409
+ },
410
+ "project:create": {
411
+ "aliases": [],
412
+ "args": {},
413
+ "description": "Create a new video project in the Turso database.",
414
+ "examples": [
415
+ "<%= config.bin %> <%= command.id %> --title \"Crypto Explainers\" --aspectRatio 9:16"
416
+ ],
417
+ "flags": {
418
+ "aspectRatio": {
419
+ "char": "a",
420
+ "description": "Project aspect ratio",
421
+ "name": "aspectRatio",
422
+ "required": true,
423
+ "default": "9:16",
424
+ "hasDynamicHelp": false,
425
+ "multiple": false,
426
+ "options": [
427
+ "1:1",
428
+ "16:9",
429
+ "9:16",
430
+ "11"
431
+ ],
432
+ "type": "option"
433
+ },
434
+ "description": {
435
+ "char": "d",
436
+ "description": "Optional project description",
437
+ "name": "description",
438
+ "hasDynamicHelp": false,
439
+ "multiple": false,
440
+ "type": "option"
441
+ },
442
+ "title": {
443
+ "char": "t",
444
+ "description": "Project title",
445
+ "name": "title",
446
+ "required": true,
447
+ "hasDynamicHelp": false,
448
+ "multiple": false,
449
+ "type": "option"
450
+ }
451
+ },
452
+ "hasDynamicHelp": false,
453
+ "hiddenAliases": [],
454
+ "id": "project:create",
455
+ "pluginAlias": "vidgen",
456
+ "pluginName": "vidgen",
457
+ "pluginType": "core",
458
+ "strict": true,
459
+ "enableJsonFlag": false,
460
+ "isESM": true,
461
+ "relativePath": [
462
+ "dist",
463
+ "commands",
464
+ "project",
465
+ "create.js"
466
+ ]
467
+ },
468
+ "project:delete": {
469
+ "aliases": [],
470
+ "args": {
471
+ "id": {
472
+ "description": "Project ID to delete",
473
+ "name": "id",
474
+ "required": true
475
+ }
476
+ },
477
+ "description": "Delete a project and all its associated segments from the Turso database.",
478
+ "examples": [
479
+ "<%= config.bin %> <%= command.id %> <project-id>"
480
+ ],
481
+ "flags": {},
482
+ "hasDynamicHelp": false,
483
+ "hiddenAliases": [],
484
+ "id": "project:delete",
485
+ "pluginAlias": "vidgen",
486
+ "pluginName": "vidgen",
487
+ "pluginType": "core",
488
+ "strict": true,
489
+ "enableJsonFlag": false,
490
+ "isESM": true,
491
+ "relativePath": [
492
+ "dist",
493
+ "commands",
494
+ "project",
495
+ "delete.js"
496
+ ]
497
+ },
498
+ "project:get": {
499
+ "aliases": [],
500
+ "args": {
501
+ "id": {
502
+ "description": "Project ID to retrieve",
503
+ "name": "id",
504
+ "required": true
505
+ }
506
+ },
507
+ "description": "Retrieve a full project schema including its segments from the Turso database.",
508
+ "examples": [
509
+ "<%= config.bin %> <%= command.id %> <project-id>"
510
+ ],
511
+ "flags": {},
512
+ "hasDynamicHelp": false,
513
+ "hiddenAliases": [],
514
+ "id": "project:get",
515
+ "pluginAlias": "vidgen",
516
+ "pluginName": "vidgen",
517
+ "pluginType": "core",
518
+ "strict": true,
519
+ "enableJsonFlag": false,
520
+ "isESM": true,
521
+ "relativePath": [
522
+ "dist",
523
+ "commands",
524
+ "project",
525
+ "get.js"
526
+ ]
527
+ },
528
+ "project:list": {
529
+ "aliases": [],
530
+ "args": {},
531
+ "description": "List all video projects stored in the Turso database.",
532
+ "examples": [
533
+ "<%= config.bin %> <%= command.id %>"
534
+ ],
535
+ "flags": {},
536
+ "hasDynamicHelp": false,
537
+ "hiddenAliases": [],
538
+ "id": "project:list",
539
+ "pluginAlias": "vidgen",
540
+ "pluginName": "vidgen",
541
+ "pluginType": "core",
542
+ "strict": true,
543
+ "enableJsonFlag": false,
544
+ "isESM": true,
545
+ "relativePath": [
546
+ "dist",
547
+ "commands",
548
+ "project",
549
+ "list.js"
550
+ ]
551
+ },
552
+ "project:validate": {
553
+ "aliases": [],
554
+ "args": {},
555
+ "description": "Validate a Schema JSON file against the TypeScript Schema interface structure before saving to a database.",
556
+ "examples": [
557
+ "<%= config.bin %> <%= command.id %> --schema ./schema.json",
558
+ "<%= config.bin %> <%= command.id %> --schema ./schema.json --strict"
559
+ ],
560
+ "flags": {
561
+ "schema": {
562
+ "char": "s",
563
+ "description": "Path to the Schema JSON file to validate",
564
+ "name": "schema",
565
+ "required": true,
566
+ "hasDynamicHelp": false,
567
+ "multiple": false,
568
+ "type": "option"
569
+ },
570
+ "strict": {
571
+ "description": "Fail on missing optional fields in addition to required field validation",
572
+ "name": "strict",
573
+ "allowNo": false,
574
+ "type": "boolean"
575
+ }
576
+ },
577
+ "hasDynamicHelp": false,
578
+ "hiddenAliases": [],
579
+ "id": "project:validate",
580
+ "pluginAlias": "vidgen",
581
+ "pluginName": "vidgen",
582
+ "pluginType": "core",
583
+ "strict": true,
584
+ "enableJsonFlag": false,
585
+ "isESM": true,
586
+ "relativePath": [
587
+ "dist",
588
+ "commands",
589
+ "project",
590
+ "validate.js"
591
+ ]
592
+ },
593
+ "video:caption": {
594
+ "aliases": [],
595
+ "args": {},
596
+ "description": "Generate SRT captions from a JSON transcript and optionally embed them into a video.",
597
+ "flags": {
598
+ "burnIn": {
599
+ "char": "b",
600
+ "name": "burnIn",
601
+ "allowNo": false,
602
+ "type": "boolean"
603
+ },
604
+ "output": {
605
+ "char": "o",
606
+ "name": "output",
607
+ "required": true,
608
+ "hasDynamicHelp": false,
609
+ "multiple": false,
610
+ "type": "option"
611
+ },
612
+ "transcript": {
613
+ "char": "t",
614
+ "name": "transcript",
615
+ "required": true,
616
+ "hasDynamicHelp": false,
617
+ "multiple": false,
618
+ "type": "option"
619
+ },
620
+ "video": {
621
+ "char": "v",
622
+ "name": "video",
623
+ "hasDynamicHelp": false,
624
+ "multiple": false,
625
+ "type": "option"
626
+ }
627
+ },
628
+ "hasDynamicHelp": false,
629
+ "hiddenAliases": [],
630
+ "id": "video:caption",
631
+ "pluginAlias": "vidgen",
632
+ "pluginName": "vidgen",
633
+ "pluginType": "core",
634
+ "strict": true,
635
+ "enableJsonFlag": false,
636
+ "isESM": true,
637
+ "relativePath": [
638
+ "dist",
639
+ "commands",
640
+ "video",
641
+ "caption.js"
642
+ ]
643
+ },
644
+ "video:trim": {
645
+ "aliases": [],
646
+ "args": {},
647
+ "description": "Precisely trim a video file using start and end timestamps.",
648
+ "examples": [
649
+ "<%= config.bin %> <%= command.id %> --input input.mp4 --start 00:00:10 --end 00:00:20 --output trimmed.mp4"
650
+ ],
651
+ "flags": {
652
+ "duration": {
653
+ "char": "d",
654
+ "description": "Duration to trim",
655
+ "name": "duration",
656
+ "hasDynamicHelp": false,
657
+ "multiple": false,
658
+ "type": "option"
659
+ },
660
+ "end": {
661
+ "char": "e",
662
+ "description": "End timestamp",
663
+ "name": "end",
664
+ "hasDynamicHelp": false,
665
+ "multiple": false,
666
+ "type": "option"
667
+ },
668
+ "input": {
669
+ "char": "i",
670
+ "description": "Input video file path",
671
+ "name": "input",
672
+ "required": true,
673
+ "hasDynamicHelp": false,
674
+ "multiple": false,
675
+ "type": "option"
676
+ },
677
+ "output": {
678
+ "char": "o",
679
+ "description": "Output video file path",
680
+ "name": "output",
681
+ "required": true,
682
+ "hasDynamicHelp": false,
683
+ "multiple": false,
684
+ "type": "option"
685
+ },
686
+ "start": {
687
+ "char": "s",
688
+ "description": "Start timestamp",
689
+ "name": "start",
690
+ "required": true,
691
+ "hasDynamicHelp": false,
692
+ "multiple": false,
693
+ "type": "option"
694
+ }
695
+ },
696
+ "hasDynamicHelp": false,
697
+ "hiddenAliases": [],
698
+ "id": "video:trim",
699
+ "pluginAlias": "vidgen",
700
+ "pluginName": "vidgen",
701
+ "pluginType": "core",
702
+ "strict": true,
703
+ "enableJsonFlag": false,
704
+ "isESM": true,
705
+ "relativePath": [
706
+ "dist",
707
+ "commands",
708
+ "video",
709
+ "trim.js"
710
+ ]
711
+ },
712
+ "segment:add": {
713
+ "aliases": [],
714
+ "args": {},
715
+ "description": "Add a new segment to a project. Data should be a JSON string matching the Segment interface.",
716
+ "examples": [
717
+ "<%= config.bin %> <%= command.id %> --projectId <project-id> --data '{\"title\":\"Scene 1\",\"text\":\"Hello\"}' --order 0"
718
+ ],
719
+ "flags": {
720
+ "data": {
721
+ "char": "d",
722
+ "description": "JSON string of the segment data",
723
+ "name": "data",
724
+ "required": true,
725
+ "hasDynamicHelp": false,
726
+ "multiple": false,
727
+ "type": "option"
728
+ },
729
+ "order": {
730
+ "char": "n",
731
+ "description": "Order index for the segment",
732
+ "name": "order",
733
+ "default": 0,
734
+ "hasDynamicHelp": false,
735
+ "multiple": false,
736
+ "type": "option"
737
+ },
738
+ "projectId": {
739
+ "char": "p",
740
+ "description": "Project ID to attach the segment to",
741
+ "name": "projectId",
742
+ "required": true,
743
+ "hasDynamicHelp": false,
744
+ "multiple": false,
745
+ "type": "option"
746
+ }
747
+ },
748
+ "hasDynamicHelp": false,
749
+ "hiddenAliases": [],
750
+ "id": "segment:add",
751
+ "pluginAlias": "vidgen",
752
+ "pluginName": "vidgen",
753
+ "pluginType": "core",
754
+ "strict": true,
755
+ "enableJsonFlag": false,
756
+ "isESM": true,
757
+ "relativePath": [
758
+ "dist",
759
+ "commands",
760
+ "segment",
761
+ "add.js"
762
+ ]
763
+ },
764
+ "segment:delete": {
765
+ "aliases": [],
766
+ "args": {
767
+ "id": {
768
+ "description": "Segment ID to delete",
769
+ "name": "id",
770
+ "required": true
771
+ }
772
+ },
773
+ "description": "Delete a specific segment from the Turso database.",
774
+ "examples": [
775
+ "<%= config.bin %> <%= command.id %> <segment-id>"
776
+ ],
777
+ "flags": {},
778
+ "hasDynamicHelp": false,
779
+ "hiddenAliases": [],
780
+ "id": "segment:delete",
781
+ "pluginAlias": "vidgen",
782
+ "pluginName": "vidgen",
783
+ "pluginType": "core",
784
+ "strict": true,
785
+ "enableJsonFlag": false,
786
+ "isESM": true,
787
+ "relativePath": [
788
+ "dist",
789
+ "commands",
790
+ "segment",
791
+ "delete.js"
792
+ ]
793
+ },
794
+ "segment:list": {
795
+ "aliases": [],
796
+ "args": {
797
+ "projectId": {
798
+ "description": "Project ID to list segments for",
799
+ "name": "projectId",
800
+ "required": true
801
+ }
802
+ },
803
+ "description": "List all segments associated with a specific project.",
804
+ "examples": [
805
+ "<%= config.bin %> <%= command.id %> <project-id>"
806
+ ],
807
+ "flags": {},
808
+ "hasDynamicHelp": false,
809
+ "hiddenAliases": [],
810
+ "id": "segment:list",
811
+ "pluginAlias": "vidgen",
812
+ "pluginName": "vidgen",
813
+ "pluginType": "core",
814
+ "strict": true,
815
+ "enableJsonFlag": false,
816
+ "isESM": true,
817
+ "relativePath": [
818
+ "dist",
819
+ "commands",
820
+ "segment",
821
+ "list.js"
822
+ ]
823
+ },
824
+ "segment:update": {
825
+ "aliases": [],
826
+ "args": {
827
+ "id": {
828
+ "description": "Segment ID to update",
829
+ "name": "id",
830
+ "required": true
831
+ }
832
+ },
833
+ "description": "Update an existing segment's data.",
834
+ "examples": [
835
+ "<%= config.bin %> <%= command.id %> <segment-id> --data '{\"title\":\"New Title\"}'"
836
+ ],
837
+ "flags": {
838
+ "data": {
839
+ "char": "d",
840
+ "description": "JSON string of the segment data to merge/update",
841
+ "name": "data",
842
+ "required": true,
843
+ "hasDynamicHelp": false,
844
+ "multiple": false,
845
+ "type": "option"
846
+ },
847
+ "order": {
848
+ "char": "n",
849
+ "description": "New order index for the segment",
850
+ "name": "order",
851
+ "hasDynamicHelp": false,
852
+ "multiple": false,
853
+ "type": "option"
854
+ }
855
+ },
856
+ "hasDynamicHelp": false,
857
+ "hiddenAliases": [],
858
+ "id": "segment:update",
859
+ "pluginAlias": "vidgen",
860
+ "pluginName": "vidgen",
861
+ "pluginType": "core",
862
+ "strict": true,
863
+ "enableJsonFlag": false,
864
+ "isESM": true,
865
+ "relativePath": [
866
+ "dist",
867
+ "commands",
868
+ "segment",
869
+ "update.js"
870
+ ]
871
+ }
872
+ },
873
+ "version": "0.0.1"
874
+ }