@vibeframe/cli 0.55.0 → 0.55.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 (497) hide show
  1. package/dist/index.js +63452 -233
  2. package/package.json +11 -6
  3. package/dist/agent/adapters/claude.d.ts +0 -15
  4. package/dist/agent/adapters/claude.d.ts.map +0 -1
  5. package/dist/agent/adapters/claude.js +0 -119
  6. package/dist/agent/adapters/claude.js.map +0 -1
  7. package/dist/agent/adapters/gemini.d.ts +0 -15
  8. package/dist/agent/adapters/gemini.d.ts.map +0 -1
  9. package/dist/agent/adapters/gemini.js +0 -132
  10. package/dist/agent/adapters/gemini.js.map +0 -1
  11. package/dist/agent/adapters/index.d.ts +0 -28
  12. package/dist/agent/adapters/index.d.ts.map +0 -1
  13. package/dist/agent/adapters/index.js +0 -43
  14. package/dist/agent/adapters/index.js.map +0 -1
  15. package/dist/agent/adapters/ollama.d.ts +0 -20
  16. package/dist/agent/adapters/ollama.d.ts.map +0 -1
  17. package/dist/agent/adapters/ollama.js +0 -186
  18. package/dist/agent/adapters/ollama.js.map +0 -1
  19. package/dist/agent/adapters/openai.d.ts +0 -15
  20. package/dist/agent/adapters/openai.d.ts.map +0 -1
  21. package/dist/agent/adapters/openai.js +0 -92
  22. package/dist/agent/adapters/openai.js.map +0 -1
  23. package/dist/agent/adapters/openrouter.d.ts +0 -16
  24. package/dist/agent/adapters/openrouter.d.ts.map +0 -1
  25. package/dist/agent/adapters/openrouter.js +0 -100
  26. package/dist/agent/adapters/openrouter.js.map +0 -1
  27. package/dist/agent/adapters/openrouter.test.d.ts +0 -5
  28. package/dist/agent/adapters/openrouter.test.d.ts.map +0 -1
  29. package/dist/agent/adapters/openrouter.test.js +0 -73
  30. package/dist/agent/adapters/openrouter.test.js.map +0 -1
  31. package/dist/agent/adapters/xai.d.ts +0 -15
  32. package/dist/agent/adapters/xai.d.ts.map +0 -1
  33. package/dist/agent/adapters/xai.js +0 -95
  34. package/dist/agent/adapters/xai.js.map +0 -1
  35. package/dist/agent/index.d.ts +0 -69
  36. package/dist/agent/index.d.ts.map +0 -1
  37. package/dist/agent/index.js +0 -180
  38. package/dist/agent/index.js.map +0 -1
  39. package/dist/agent/memory/index.d.ts +0 -70
  40. package/dist/agent/memory/index.d.ts.map +0 -1
  41. package/dist/agent/memory/index.js +0 -132
  42. package/dist/agent/memory/index.js.map +0 -1
  43. package/dist/agent/prompts/system.d.ts +0 -6
  44. package/dist/agent/prompts/system.d.ts.map +0 -1
  45. package/dist/agent/prompts/system.js +0 -103
  46. package/dist/agent/prompts/system.js.map +0 -1
  47. package/dist/agent/tools/ai-editing.d.ts +0 -15
  48. package/dist/agent/tools/ai-editing.d.ts.map +0 -1
  49. package/dist/agent/tools/ai-editing.js +0 -763
  50. package/dist/agent/tools/ai-editing.js.map +0 -1
  51. package/dist/agent/tools/ai-generation.d.ts +0 -13
  52. package/dist/agent/tools/ai-generation.d.ts.map +0 -1
  53. package/dist/agent/tools/ai-generation.js +0 -973
  54. package/dist/agent/tools/ai-generation.js.map +0 -1
  55. package/dist/agent/tools/ai-pipeline.d.ts +0 -14
  56. package/dist/agent/tools/ai-pipeline.d.ts.map +0 -1
  57. package/dist/agent/tools/ai-pipeline.js +0 -961
  58. package/dist/agent/tools/ai-pipeline.js.map +0 -1
  59. package/dist/agent/tools/ai.d.ts +0 -13
  60. package/dist/agent/tools/ai.d.ts.map +0 -1
  61. package/dist/agent/tools/ai.js +0 -19
  62. package/dist/agent/tools/ai.js.map +0 -1
  63. package/dist/agent/tools/batch.d.ts +0 -6
  64. package/dist/agent/tools/batch.d.ts.map +0 -1
  65. package/dist/agent/tools/batch.js +0 -383
  66. package/dist/agent/tools/batch.js.map +0 -1
  67. package/dist/agent/tools/e2e.test.d.ts +0 -26
  68. package/dist/agent/tools/e2e.test.d.ts.map +0 -1
  69. package/dist/agent/tools/e2e.test.js +0 -397
  70. package/dist/agent/tools/e2e.test.js.map +0 -1
  71. package/dist/agent/tools/export.d.ts +0 -6
  72. package/dist/agent/tools/export.d.ts.map +0 -1
  73. package/dist/agent/tools/export.js +0 -171
  74. package/dist/agent/tools/export.js.map +0 -1
  75. package/dist/agent/tools/filesystem.d.ts +0 -6
  76. package/dist/agent/tools/filesystem.d.ts.map +0 -1
  77. package/dist/agent/tools/filesystem.js +0 -212
  78. package/dist/agent/tools/filesystem.js.map +0 -1
  79. package/dist/agent/tools/index.d.ts +0 -66
  80. package/dist/agent/tools/index.d.ts.map +0 -1
  81. package/dist/agent/tools/index.js +0 -123
  82. package/dist/agent/tools/index.js.map +0 -1
  83. package/dist/agent/tools/integration.test.d.ts +0 -11
  84. package/dist/agent/tools/integration.test.d.ts.map +0 -1
  85. package/dist/agent/tools/integration.test.js +0 -659
  86. package/dist/agent/tools/integration.test.js.map +0 -1
  87. package/dist/agent/tools/media.d.ts +0 -6
  88. package/dist/agent/tools/media.d.ts.map +0 -1
  89. package/dist/agent/tools/media.js +0 -616
  90. package/dist/agent/tools/media.js.map +0 -1
  91. package/dist/agent/tools/project.d.ts +0 -6
  92. package/dist/agent/tools/project.d.ts.map +0 -1
  93. package/dist/agent/tools/project.js +0 -284
  94. package/dist/agent/tools/project.js.map +0 -1
  95. package/dist/agent/tools/scene.d.ts +0 -17
  96. package/dist/agent/tools/scene.d.ts.map +0 -1
  97. package/dist/agent/tools/scene.js +0 -263
  98. package/dist/agent/tools/scene.js.map +0 -1
  99. package/dist/agent/tools/scene.test.d.ts +0 -2
  100. package/dist/agent/tools/scene.test.d.ts.map +0 -1
  101. package/dist/agent/tools/scene.test.js +0 -139
  102. package/dist/agent/tools/scene.test.js.map +0 -1
  103. package/dist/agent/tools/timeline.d.ts +0 -6
  104. package/dist/agent/tools/timeline.d.ts.map +0 -1
  105. package/dist/agent/tools/timeline.js +0 -875
  106. package/dist/agent/tools/timeline.js.map +0 -1
  107. package/dist/agent/types.d.ts +0 -59
  108. package/dist/agent/types.d.ts.map +0 -1
  109. package/dist/agent/types.js +0 -5
  110. package/dist/agent/types.js.map +0 -1
  111. package/dist/commands/_shared/scene-audio-mux.d.ts +0 -75
  112. package/dist/commands/_shared/scene-audio-mux.d.ts.map +0 -1
  113. package/dist/commands/_shared/scene-audio-mux.js +0 -159
  114. package/dist/commands/_shared/scene-audio-mux.js.map +0 -1
  115. package/dist/commands/_shared/scene-audio-mux.test.d.ts +0 -7
  116. package/dist/commands/_shared/scene-audio-mux.test.d.ts.map +0 -1
  117. package/dist/commands/_shared/scene-audio-mux.test.js +0 -94
  118. package/dist/commands/_shared/scene-audio-mux.test.js.map +0 -1
  119. package/dist/commands/_shared/scene-audio-scan.d.ts +0 -94
  120. package/dist/commands/_shared/scene-audio-scan.d.ts.map +0 -1
  121. package/dist/commands/_shared/scene-audio-scan.js +0 -144
  122. package/dist/commands/_shared/scene-audio-scan.js.map +0 -1
  123. package/dist/commands/_shared/scene-audio-scan.test.d.ts +0 -6
  124. package/dist/commands/_shared/scene-audio-scan.test.d.ts.map +0 -1
  125. package/dist/commands/_shared/scene-audio-scan.test.js +0 -190
  126. package/dist/commands/_shared/scene-audio-scan.test.js.map +0 -1
  127. package/dist/commands/_shared/scene-html-emit.d.ts +0 -120
  128. package/dist/commands/_shared/scene-html-emit.d.ts.map +0 -1
  129. package/dist/commands/_shared/scene-html-emit.js +0 -422
  130. package/dist/commands/_shared/scene-html-emit.js.map +0 -1
  131. package/dist/commands/_shared/scene-html-emit.test.d.ts +0 -2
  132. package/dist/commands/_shared/scene-html-emit.test.d.ts.map +0 -1
  133. package/dist/commands/_shared/scene-html-emit.test.js +0 -396
  134. package/dist/commands/_shared/scene-html-emit.test.js.map +0 -1
  135. package/dist/commands/_shared/scene-lint.d.ts +0 -110
  136. package/dist/commands/_shared/scene-lint.d.ts.map +0 -1
  137. package/dist/commands/_shared/scene-lint.js +0 -207
  138. package/dist/commands/_shared/scene-lint.js.map +0 -1
  139. package/dist/commands/_shared/scene-lint.test.d.ts +0 -2
  140. package/dist/commands/_shared/scene-lint.test.d.ts.map +0 -1
  141. package/dist/commands/_shared/scene-lint.test.js +0 -208
  142. package/dist/commands/_shared/scene-lint.test.js.map +0 -1
  143. package/dist/commands/_shared/scene-project.d.ts +0 -101
  144. package/dist/commands/_shared/scene-project.d.ts.map +0 -1
  145. package/dist/commands/_shared/scene-project.js +0 -281
  146. package/dist/commands/_shared/scene-project.js.map +0 -1
  147. package/dist/commands/_shared/scene-project.test.d.ts +0 -2
  148. package/dist/commands/_shared/scene-project.test.d.ts.map +0 -1
  149. package/dist/commands/_shared/scene-project.test.js +0 -203
  150. package/dist/commands/_shared/scene-project.test.js.map +0 -1
  151. package/dist/commands/_shared/scene-render.d.ts +0 -85
  152. package/dist/commands/_shared/scene-render.d.ts.map +0 -1
  153. package/dist/commands/_shared/scene-render.js +0 -178
  154. package/dist/commands/_shared/scene-render.js.map +0 -1
  155. package/dist/commands/_shared/scene-render.test.d.ts +0 -2
  156. package/dist/commands/_shared/scene-render.test.d.ts.map +0 -1
  157. package/dist/commands/_shared/scene-render.test.js +0 -145
  158. package/dist/commands/_shared/scene-render.test.js.map +0 -1
  159. package/dist/commands/_shared/segments-to-scenes.d.ts +0 -85
  160. package/dist/commands/_shared/segments-to-scenes.d.ts.map +0 -1
  161. package/dist/commands/_shared/segments-to-scenes.js +0 -202
  162. package/dist/commands/_shared/segments-to-scenes.js.map +0 -1
  163. package/dist/commands/_shared/segments-to-scenes.test.d.ts +0 -2
  164. package/dist/commands/_shared/segments-to-scenes.test.d.ts.map +0 -1
  165. package/dist/commands/_shared/segments-to-scenes.test.js +0 -219
  166. package/dist/commands/_shared/segments-to-scenes.test.js.map +0 -1
  167. package/dist/commands/_shared/tts-resolve.d.ts +0 -75
  168. package/dist/commands/_shared/tts-resolve.d.ts.map +0 -1
  169. package/dist/commands/_shared/tts-resolve.js +0 -89
  170. package/dist/commands/_shared/tts-resolve.js.map +0 -1
  171. package/dist/commands/_shared/tts-resolve.test.d.ts +0 -6
  172. package/dist/commands/_shared/tts-resolve.test.d.ts.map +0 -1
  173. package/dist/commands/_shared/tts-resolve.test.js +0 -147
  174. package/dist/commands/_shared/tts-resolve.test.js.map +0 -1
  175. package/dist/commands/agent.d.ts +0 -21
  176. package/dist/commands/agent.d.ts.map +0 -1
  177. package/dist/commands/agent.js +0 -285
  178. package/dist/commands/agent.js.map +0 -1
  179. package/dist/commands/ai-analyze.d.ts +0 -106
  180. package/dist/commands/ai-analyze.d.ts.map +0 -1
  181. package/dist/commands/ai-analyze.js +0 -320
  182. package/dist/commands/ai-analyze.js.map +0 -1
  183. package/dist/commands/ai-animated-caption.d.ts +0 -64
  184. package/dist/commands/ai-animated-caption.d.ts.map +0 -1
  185. package/dist/commands/ai-animated-caption.js +0 -272
  186. package/dist/commands/ai-animated-caption.js.map +0 -1
  187. package/dist/commands/ai-audio.d.ts +0 -98
  188. package/dist/commands/ai-audio.d.ts.map +0 -1
  189. package/dist/commands/ai-audio.js +0 -1059
  190. package/dist/commands/ai-audio.js.map +0 -1
  191. package/dist/commands/ai-broll.d.ts +0 -15
  192. package/dist/commands/ai-broll.d.ts.map +0 -1
  193. package/dist/commands/ai-broll.js +0 -421
  194. package/dist/commands/ai-broll.js.map +0 -1
  195. package/dist/commands/ai-edit-cli.d.ts +0 -14
  196. package/dist/commands/ai-edit-cli.d.ts.map +0 -1
  197. package/dist/commands/ai-edit-cli.js +0 -585
  198. package/dist/commands/ai-edit-cli.js.map +0 -1
  199. package/dist/commands/ai-edit.d.ts +0 -398
  200. package/dist/commands/ai-edit.d.ts.map +0 -1
  201. package/dist/commands/ai-edit.js +0 -1060
  202. package/dist/commands/ai-edit.js.map +0 -1
  203. package/dist/commands/ai-fill-gaps.d.ts +0 -14
  204. package/dist/commands/ai-fill-gaps.d.ts.map +0 -1
  205. package/dist/commands/ai-fill-gaps.js +0 -447
  206. package/dist/commands/ai-fill-gaps.js.map +0 -1
  207. package/dist/commands/ai-helpers.d.ts +0 -20
  208. package/dist/commands/ai-helpers.d.ts.map +0 -1
  209. package/dist/commands/ai-helpers.js +0 -59
  210. package/dist/commands/ai-helpers.js.map +0 -1
  211. package/dist/commands/ai-highlights.d.ts +0 -127
  212. package/dist/commands/ai-highlights.d.ts.map +0 -1
  213. package/dist/commands/ai-highlights.js +0 -1053
  214. package/dist/commands/ai-highlights.js.map +0 -1
  215. package/dist/commands/ai-image.d.ts +0 -76
  216. package/dist/commands/ai-image.d.ts.map +0 -1
  217. package/dist/commands/ai-image.js +0 -858
  218. package/dist/commands/ai-image.js.map +0 -1
  219. package/dist/commands/ai-motion.d.ts +0 -50
  220. package/dist/commands/ai-motion.d.ts.map +0 -1
  221. package/dist/commands/ai-motion.js +0 -297
  222. package/dist/commands/ai-motion.js.map +0 -1
  223. package/dist/commands/ai-narrate.d.ts +0 -66
  224. package/dist/commands/ai-narrate.d.ts.map +0 -1
  225. package/dist/commands/ai-narrate.js +0 -332
  226. package/dist/commands/ai-narrate.js.map +0 -1
  227. package/dist/commands/ai-review.d.ts +0 -57
  228. package/dist/commands/ai-review.d.ts.map +0 -1
  229. package/dist/commands/ai-review.js +0 -270
  230. package/dist/commands/ai-review.js.map +0 -1
  231. package/dist/commands/ai-script-pipeline-cli.d.ts +0 -9
  232. package/dist/commands/ai-script-pipeline-cli.d.ts.map +0 -1
  233. package/dist/commands/ai-script-pipeline-cli.js +0 -502
  234. package/dist/commands/ai-script-pipeline-cli.js.map +0 -1
  235. package/dist/commands/ai-script-pipeline.d.ts +0 -305
  236. package/dist/commands/ai-script-pipeline.d.ts.map +0 -1
  237. package/dist/commands/ai-script-pipeline.js +0 -1546
  238. package/dist/commands/ai-script-pipeline.js.map +0 -1
  239. package/dist/commands/ai-suggest-edit.d.ts +0 -14
  240. package/dist/commands/ai-suggest-edit.d.ts.map +0 -1
  241. package/dist/commands/ai-suggest-edit.js +0 -215
  242. package/dist/commands/ai-suggest-edit.js.map +0 -1
  243. package/dist/commands/ai-video-fx.d.ts +0 -14
  244. package/dist/commands/ai-video-fx.d.ts.map +0 -1
  245. package/dist/commands/ai-video-fx.js +0 -396
  246. package/dist/commands/ai-video-fx.js.map +0 -1
  247. package/dist/commands/ai-video.d.ts +0 -91
  248. package/dist/commands/ai-video.d.ts.map +0 -1
  249. package/dist/commands/ai-video.js +0 -1055
  250. package/dist/commands/ai-video.js.map +0 -1
  251. package/dist/commands/ai-viral.d.ts +0 -15
  252. package/dist/commands/ai-viral.d.ts.map +0 -1
  253. package/dist/commands/ai-viral.js +0 -507
  254. package/dist/commands/ai-viral.js.map +0 -1
  255. package/dist/commands/ai-visual-fx.d.ts +0 -14
  256. package/dist/commands/ai-visual-fx.d.ts.map +0 -1
  257. package/dist/commands/ai-visual-fx.js +0 -521
  258. package/dist/commands/ai-visual-fx.js.map +0 -1
  259. package/dist/commands/ai.d.ts +0 -38
  260. package/dist/commands/ai.d.ts.map +0 -1
  261. package/dist/commands/ai.js +0 -225
  262. package/dist/commands/ai.js.map +0 -1
  263. package/dist/commands/ai.test.d.ts +0 -2
  264. package/dist/commands/ai.test.d.ts.map +0 -1
  265. package/dist/commands/ai.test.js +0 -557
  266. package/dist/commands/ai.test.js.map +0 -1
  267. package/dist/commands/analyze.d.ts +0 -16
  268. package/dist/commands/analyze.d.ts.map +0 -1
  269. package/dist/commands/analyze.js +0 -247
  270. package/dist/commands/analyze.js.map +0 -1
  271. package/dist/commands/audio.d.ts +0 -18
  272. package/dist/commands/audio.d.ts.map +0 -1
  273. package/dist/commands/audio.js +0 -539
  274. package/dist/commands/audio.js.map +0 -1
  275. package/dist/commands/batch.d.ts +0 -3
  276. package/dist/commands/batch.d.ts.map +0 -1
  277. package/dist/commands/batch.js +0 -419
  278. package/dist/commands/batch.js.map +0 -1
  279. package/dist/commands/batch.test.d.ts +0 -2
  280. package/dist/commands/batch.test.d.ts.map +0 -1
  281. package/dist/commands/batch.test.js +0 -203
  282. package/dist/commands/batch.test.js.map +0 -1
  283. package/dist/commands/context.d.ts +0 -7
  284. package/dist/commands/context.d.ts.map +0 -1
  285. package/dist/commands/context.js +0 -66
  286. package/dist/commands/context.js.map +0 -1
  287. package/dist/commands/demo.d.ts +0 -7
  288. package/dist/commands/demo.d.ts.map +0 -1
  289. package/dist/commands/demo.js +0 -192
  290. package/dist/commands/demo.js.map +0 -1
  291. package/dist/commands/detect.d.ts +0 -56
  292. package/dist/commands/detect.d.ts.map +0 -1
  293. package/dist/commands/detect.js +0 -464
  294. package/dist/commands/detect.js.map +0 -1
  295. package/dist/commands/doctor.d.ts +0 -6
  296. package/dist/commands/doctor.d.ts.map +0 -1
  297. package/dist/commands/doctor.js +0 -322
  298. package/dist/commands/doctor.js.map +0 -1
  299. package/dist/commands/edit-cmd.d.ts +0 -112
  300. package/dist/commands/edit-cmd.d.ts.map +0 -1
  301. package/dist/commands/edit-cmd.js +0 -1041
  302. package/dist/commands/edit-cmd.js.map +0 -1
  303. package/dist/commands/export.d.ts +0 -61
  304. package/dist/commands/export.d.ts.map +0 -1
  305. package/dist/commands/export.js +0 -980
  306. package/dist/commands/export.js.map +0 -1
  307. package/dist/commands/export.test.d.ts +0 -2
  308. package/dist/commands/export.test.d.ts.map +0 -1
  309. package/dist/commands/export.test.js +0 -107
  310. package/dist/commands/export.test.js.map +0 -1
  311. package/dist/commands/generate.d.ts +0 -84
  312. package/dist/commands/generate.d.ts.map +0 -1
  313. package/dist/commands/generate.js +0 -2030
  314. package/dist/commands/generate.js.map +0 -1
  315. package/dist/commands/media.d.ts +0 -3
  316. package/dist/commands/media.d.ts.map +0 -1
  317. package/dist/commands/media.js +0 -163
  318. package/dist/commands/media.js.map +0 -1
  319. package/dist/commands/output.d.ts +0 -51
  320. package/dist/commands/output.d.ts.map +0 -1
  321. package/dist/commands/output.js +0 -219
  322. package/dist/commands/output.js.map +0 -1
  323. package/dist/commands/output.test.d.ts +0 -2
  324. package/dist/commands/output.test.d.ts.map +0 -1
  325. package/dist/commands/output.test.js +0 -151
  326. package/dist/commands/output.test.js.map +0 -1
  327. package/dist/commands/pipeline.d.ts +0 -19
  328. package/dist/commands/pipeline.d.ts.map +0 -1
  329. package/dist/commands/pipeline.js +0 -345
  330. package/dist/commands/pipeline.js.map +0 -1
  331. package/dist/commands/project.d.ts +0 -3
  332. package/dist/commands/project.d.ts.map +0 -1
  333. package/dist/commands/project.js +0 -181
  334. package/dist/commands/project.js.map +0 -1
  335. package/dist/commands/project.test.d.ts +0 -2
  336. package/dist/commands/project.test.d.ts.map +0 -1
  337. package/dist/commands/project.test.js +0 -105
  338. package/dist/commands/project.test.js.map +0 -1
  339. package/dist/commands/run.d.ts +0 -15
  340. package/dist/commands/run.d.ts.map +0 -1
  341. package/dist/commands/run.js +0 -204
  342. package/dist/commands/run.js.map +0 -1
  343. package/dist/commands/sanitize.d.ts +0 -21
  344. package/dist/commands/sanitize.d.ts.map +0 -1
  345. package/dist/commands/sanitize.js +0 -56
  346. package/dist/commands/sanitize.js.map +0 -1
  347. package/dist/commands/scene.d.ts +0 -86
  348. package/dist/commands/scene.d.ts.map +0 -1
  349. package/dist/commands/scene.js +0 -728
  350. package/dist/commands/scene.js.map +0 -1
  351. package/dist/commands/scene.test.d.ts +0 -2
  352. package/dist/commands/scene.test.d.ts.map +0 -1
  353. package/dist/commands/scene.test.js +0 -219
  354. package/dist/commands/scene.test.js.map +0 -1
  355. package/dist/commands/schema.d.ts +0 -13
  356. package/dist/commands/schema.d.ts.map +0 -1
  357. package/dist/commands/schema.js +0 -218
  358. package/dist/commands/schema.js.map +0 -1
  359. package/dist/commands/setup.d.ts +0 -6
  360. package/dist/commands/setup.d.ts.map +0 -1
  361. package/dist/commands/setup.js +0 -461
  362. package/dist/commands/setup.js.map +0 -1
  363. package/dist/commands/timeline.d.ts +0 -3
  364. package/dist/commands/timeline.d.ts.map +0 -1
  365. package/dist/commands/timeline.js +0 -609
  366. package/dist/commands/timeline.js.map +0 -1
  367. package/dist/commands/timeline.test.d.ts +0 -2
  368. package/dist/commands/timeline.test.d.ts.map +0 -1
  369. package/dist/commands/timeline.test.js +0 -334
  370. package/dist/commands/timeline.test.js.map +0 -1
  371. package/dist/commands/validate.d.ts +0 -34
  372. package/dist/commands/validate.d.ts.map +0 -1
  373. package/dist/commands/validate.js +0 -70
  374. package/dist/commands/validate.js.map +0 -1
  375. package/dist/config/config.test.d.ts +0 -2
  376. package/dist/config/config.test.d.ts.map +0 -1
  377. package/dist/config/config.test.js +0 -164
  378. package/dist/config/config.test.js.map +0 -1
  379. package/dist/config/index.d.ts +0 -35
  380. package/dist/config/index.d.ts.map +0 -1
  381. package/dist/config/index.js +0 -101
  382. package/dist/config/index.js.map +0 -1
  383. package/dist/config/schema.d.ts +0 -52
  384. package/dist/config/schema.d.ts.map +0 -1
  385. package/dist/config/schema.js +0 -44
  386. package/dist/config/schema.js.map +0 -1
  387. package/dist/engine/index.d.ts +0 -3
  388. package/dist/engine/index.d.ts.map +0 -1
  389. package/dist/engine/index.js +0 -2
  390. package/dist/engine/index.js.map +0 -1
  391. package/dist/engine/project.d.ts +0 -84
  392. package/dist/engine/project.d.ts.map +0 -1
  393. package/dist/engine/project.js +0 -355
  394. package/dist/engine/project.js.map +0 -1
  395. package/dist/engine/project.test.d.ts +0 -2
  396. package/dist/engine/project.test.d.ts.map +0 -1
  397. package/dist/engine/project.test.js +0 -599
  398. package/dist/engine/project.test.js.map +0 -1
  399. package/dist/index.d.ts +0 -7
  400. package/dist/index.d.ts.map +0 -1
  401. package/dist/index.js.map +0 -1
  402. package/dist/pipeline/executor.d.ts +0 -19
  403. package/dist/pipeline/executor.d.ts.map +0 -1
  404. package/dist/pipeline/executor.js +0 -397
  405. package/dist/pipeline/executor.js.map +0 -1
  406. package/dist/pipeline/index.d.ts +0 -4
  407. package/dist/pipeline/index.d.ts.map +0 -1
  408. package/dist/pipeline/index.js +0 -2
  409. package/dist/pipeline/index.js.map +0 -1
  410. package/dist/pipeline/renderers/__tests__/html-template.test.d.ts +0 -2
  411. package/dist/pipeline/renderers/__tests__/html-template.test.d.ts.map +0 -1
  412. package/dist/pipeline/renderers/__tests__/html-template.test.js +0 -170
  413. package/dist/pipeline/renderers/__tests__/html-template.test.js.map +0 -1
  414. package/dist/pipeline/renderers/__tests__/integration.test.d.ts +0 -2
  415. package/dist/pipeline/renderers/__tests__/integration.test.d.ts.map +0 -1
  416. package/dist/pipeline/renderers/__tests__/integration.test.js +0 -175
  417. package/dist/pipeline/renderers/__tests__/integration.test.js.map +0 -1
  418. package/dist/pipeline/renderers/chrome.d.ts +0 -26
  419. package/dist/pipeline/renderers/chrome.d.ts.map +0 -1
  420. package/dist/pipeline/renderers/chrome.js +0 -48
  421. package/dist/pipeline/renderers/chrome.js.map +0 -1
  422. package/dist/pipeline/renderers/html-clips.d.ts +0 -20
  423. package/dist/pipeline/renderers/html-clips.d.ts.map +0 -1
  424. package/dist/pipeline/renderers/html-clips.js +0 -50
  425. package/dist/pipeline/renderers/html-clips.js.map +0 -1
  426. package/dist/pipeline/renderers/html-runtime.d.ts +0 -7
  427. package/dist/pipeline/renderers/html-runtime.d.ts.map +0 -1
  428. package/dist/pipeline/renderers/html-runtime.js +0 -80
  429. package/dist/pipeline/renderers/html-runtime.js.map +0 -1
  430. package/dist/pipeline/renderers/html-template.d.ts +0 -3
  431. package/dist/pipeline/renderers/html-template.d.ts.map +0 -1
  432. package/dist/pipeline/renderers/html-template.js +0 -36
  433. package/dist/pipeline/renderers/html-template.js.map +0 -1
  434. package/dist/pipeline/renderers/hyperframes.d.ts +0 -8
  435. package/dist/pipeline/renderers/hyperframes.d.ts.map +0 -1
  436. package/dist/pipeline/renderers/hyperframes.js +0 -63
  437. package/dist/pipeline/renderers/hyperframes.js.map +0 -1
  438. package/dist/pipeline/renderers/project-builder.d.ts +0 -8
  439. package/dist/pipeline/renderers/project-builder.d.ts.map +0 -1
  440. package/dist/pipeline/renderers/project-builder.js +0 -65
  441. package/dist/pipeline/renderers/project-builder.js.map +0 -1
  442. package/dist/pipeline/renderers/types.d.ts +0 -41
  443. package/dist/pipeline/renderers/types.d.ts.map +0 -1
  444. package/dist/pipeline/renderers/types.js +0 -11
  445. package/dist/pipeline/renderers/types.js.map +0 -1
  446. package/dist/pipeline/resolver.d.ts +0 -20
  447. package/dist/pipeline/resolver.d.ts.map +0 -1
  448. package/dist/pipeline/resolver.js +0 -74
  449. package/dist/pipeline/resolver.js.map +0 -1
  450. package/dist/pipeline/types.d.ts +0 -82
  451. package/dist/pipeline/types.d.ts.map +0 -1
  452. package/dist/pipeline/types.js +0 -8
  453. package/dist/pipeline/types.js.map +0 -1
  454. package/dist/utils/api-key.d.ts +0 -33
  455. package/dist/utils/api-key.d.ts.map +0 -1
  456. package/dist/utils/api-key.js +0 -228
  457. package/dist/utils/api-key.js.map +0 -1
  458. package/dist/utils/api-key.test.d.ts +0 -2
  459. package/dist/utils/api-key.test.d.ts.map +0 -1
  460. package/dist/utils/api-key.test.js +0 -35
  461. package/dist/utils/api-key.test.js.map +0 -1
  462. package/dist/utils/audio.d.ts +0 -23
  463. package/dist/utils/audio.d.ts.map +0 -1
  464. package/dist/utils/audio.js +0 -79
  465. package/dist/utils/audio.js.map +0 -1
  466. package/dist/utils/exec-safe.d.ts +0 -22
  467. package/dist/utils/exec-safe.d.ts.map +0 -1
  468. package/dist/utils/exec-safe.js +0 -62
  469. package/dist/utils/exec-safe.js.map +0 -1
  470. package/dist/utils/first-run.d.ts +0 -17
  471. package/dist/utils/first-run.d.ts.map +0 -1
  472. package/dist/utils/first-run.js +0 -73
  473. package/dist/utils/first-run.js.map +0 -1
  474. package/dist/utils/input-validation.d.ts +0 -27
  475. package/dist/utils/input-validation.d.ts.map +0 -1
  476. package/dist/utils/input-validation.js +0 -67
  477. package/dist/utils/input-validation.js.map +0 -1
  478. package/dist/utils/provider-resolver.d.ts +0 -19
  479. package/dist/utils/provider-resolver.d.ts.map +0 -1
  480. package/dist/utils/provider-resolver.js +0 -75
  481. package/dist/utils/provider-resolver.js.map +0 -1
  482. package/dist/utils/remotion.d.ts +0 -231
  483. package/dist/utils/remotion.d.ts.map +0 -1
  484. package/dist/utils/remotion.js +0 -879
  485. package/dist/utils/remotion.js.map +0 -1
  486. package/dist/utils/subtitle.d.ts +0 -65
  487. package/dist/utils/subtitle.d.ts.map +0 -1
  488. package/dist/utils/subtitle.js +0 -135
  489. package/dist/utils/subtitle.js.map +0 -1
  490. package/dist/utils/subtitle.test.d.ts +0 -2
  491. package/dist/utils/subtitle.test.d.ts.map +0 -1
  492. package/dist/utils/subtitle.test.js +0 -175
  493. package/dist/utils/subtitle.test.js.map +0 -1
  494. package/dist/utils/tty.d.ts +0 -45
  495. package/dist/utils/tty.d.ts.map +0 -1
  496. package/dist/utils/tty.js +0 -231
  497. package/dist/utils/tty.js.map +0 -1
@@ -1,502 +0,0 @@
1
- /**
2
- * @module ai-script-pipeline-cli
3
- * @description CLI command registration for the script-to-video pipeline and
4
- * scene regeneration commands. Execute functions and helpers live in
5
- * ai-script-pipeline.ts; this file wires them up as Commander.js subcommands.
6
- */
7
- import { readFile, writeFile, stat } from "node:fs/promises";
8
- import { resolve } from "node:path";
9
- import { existsSync } from "node:fs";
10
- import chalk from "chalk";
11
- import ora from "ora";
12
- import { parse as yamlParse } from "yaml";
13
- import { getApiKey, loadEnv } from "../utils/api-key.js";
14
- import { DEFAULT_VIDEO_RETRIES, executeScriptToVideo, executeRegenerateScene, } from "./ai-script-pipeline.js";
15
- import { exitWithError, outputResult, authError, notFoundError, usageError, apiError, generalError } from "./output.js";
16
- import { validateOutputPath } from "./validate.js";
17
- export function registerScriptPipelineCommands(aiCommand) {
18
- // Script-to-Video command
19
- aiCommand
20
- .command("script-to-video")
21
- .alias("s2v")
22
- .description("Generate complete video from text script using AI pipeline")
23
- .argument("<script>", "Script text or file path (use -f for file)")
24
- .option("-f, --file", "Treat script argument as file path")
25
- .option("-o, --output <path>", "Output project file path", "script-video.vibe.json")
26
- .option("-d, --duration <seconds>", "Target total duration in seconds")
27
- .option("-v, --voice <id>", "ElevenLabs voice ID for narration")
28
- .option("-g, --generator <engine>", "Video generator: grok | kling | runway | veo", "grok")
29
- .option("-i, --image-provider <provider>", "Image provider: gemini | openai | grok", "gemini")
30
- .option("-a, --aspect-ratio <ratio>", "Aspect ratio: 16:9 | 9:16 | 1:1", "16:9")
31
- .option("--images-only", "Generate images only, skip video generation")
32
- .option("--no-voiceover", "Skip voiceover generation")
33
- .option("--output-dir <dir>", "Directory for generated assets", "script-video-output")
34
- .option("--retries <count>", "Number of retries for video generation failures", String(DEFAULT_VIDEO_RETRIES))
35
- .option("--sequential", "Generate videos one at a time (slower but more reliable)")
36
- .option("--concurrency <count>", "Max concurrent video tasks in parallel mode (default: 3)", "3")
37
- .option("-c, --creativity <level>", "Creativity level: low (default, consistent) or high (varied, unexpected)", "low")
38
- .option("-s, --storyboard-provider <provider>", "Storyboard provider: claude (default), openai, or gemini", "claude")
39
- .option("--no-text-overlay", "Skip text overlay step")
40
- .option("--text-style <style>", "Text overlay style: lower-third, center-bold, subtitle, minimal", "lower-third")
41
- .option("--review", "Run AI review after assembly (requires GOOGLE_API_KEY)")
42
- .option("--review-auto-apply", "Auto-apply fixable issues from AI review")
43
- .option("--format <mode>", "Output format: mp4 (default, full pipeline) or scenes (editable HTML scene project)", "mp4")
44
- .option("--scene-style <preset>", "Style preset for --format scenes: simple | announcement | explainer | kinetic-type | product-shot", "explainer")
45
- .option("--dry-run", "Preview parameters without executing")
46
- .action(async (script, options) => {
47
- try {
48
- if (options.output) {
49
- validateOutputPath(options.output);
50
- }
51
- if (options.dryRun) {
52
- outputResult({
53
- dryRun: true,
54
- command: "pipeline script-to-video",
55
- params: {
56
- script: script.slice(0, 200),
57
- file: options.file ?? false,
58
- output: options.output,
59
- duration: options.duration,
60
- generator: options.generator,
61
- imageProvider: options.imageProvider,
62
- aspectRatio: options.aspectRatio,
63
- imagesOnly: options.imagesOnly ?? false,
64
- voiceover: options.voiceover,
65
- outputDir: options.outputDir,
66
- creativity: options.creativity,
67
- storyboardProvider: options.storyboardProvider,
68
- textOverlay: options.textOverlay,
69
- textStyle: options.textStyle,
70
- review: options.review ?? false,
71
- },
72
- });
73
- return;
74
- }
75
- // Load environment variables from .env file
76
- loadEnv();
77
- // Pre-check API keys so we surface friendly exit codes (AUTH instead
78
- // of API_ERROR) before executeScriptToVideo's internal re-check fires.
79
- const storyboardProvider = (options.storyboardProvider || "claude");
80
- const storyboardKeyMap = {
81
- claude: { envVar: "ANTHROPIC_API_KEY", name: "Anthropic" },
82
- openai: { envVar: "OPENAI_API_KEY", name: "OpenAI" },
83
- gemini: { envVar: "GOOGLE_API_KEY", name: "Google" },
84
- };
85
- {
86
- const info = storyboardKeyMap[storyboardProvider];
87
- if (!info) {
88
- exitWithError(usageError(`Unknown storyboard provider: ${storyboardProvider}`, "Use claude, openai, or gemini"));
89
- }
90
- if (!(await getApiKey(info.envVar, info.name))) {
91
- exitWithError(authError(info.envVar, info.name));
92
- }
93
- }
94
- const imageProvider = (options.imageProvider || "openai");
95
- const imageKeyMap = {
96
- openai: { envVar: "OPENAI_API_KEY", name: "OpenAI" },
97
- dalle: { envVar: "OPENAI_API_KEY", name: "OpenAI" },
98
- gemini: { envVar: "GOOGLE_API_KEY", name: "Google" },
99
- grok: { envVar: "XAI_API_KEY", name: "xAI" },
100
- };
101
- {
102
- const info = imageKeyMap[imageProvider];
103
- if (!info) {
104
- exitWithError(usageError(`Unknown image provider: ${imageProvider}`, "Use openai, gemini, or grok"));
105
- }
106
- if (!(await getApiKey(info.envVar, info.name))) {
107
- exitWithError(authError(info.envVar, info.name));
108
- }
109
- }
110
- if (options.voiceover !== false) {
111
- if (!(await getApiKey("ELEVENLABS_API_KEY", "ElevenLabs"))) {
112
- exitWithError(authError("ELEVENLABS_API_KEY", "ElevenLabs"));
113
- }
114
- }
115
- if (!options.imagesOnly) {
116
- const generatorKeyMap = {
117
- grok: { envVar: "XAI_API_KEY", name: "xAI" },
118
- kling: { envVar: "KLING_API_KEY", name: "Kling" },
119
- runway: { envVar: "RUNWAY_API_SECRET", name: "Runway" },
120
- veo: { envVar: "GOOGLE_API_KEY", name: "Google" },
121
- };
122
- const generator = options.generator || "grok";
123
- const genInfo = generatorKeyMap[generator];
124
- if (!genInfo) {
125
- exitWithError(usageError(`Invalid generator: ${generator}`, `Available: ${Object.keys(generatorKeyMap).join(", ")}`));
126
- }
127
- if (!(await getApiKey(genInfo.envVar, genInfo.name))) {
128
- exitWithError(authError(genInfo.envVar, genInfo.name));
129
- }
130
- }
131
- // Read script content
132
- let scriptContent = script;
133
- if (options.file) {
134
- const filePath = resolve(process.cwd(), script);
135
- scriptContent = await readFile(filePath, "utf-8");
136
- }
137
- // Resolve -o / --output-dir semantics (identical to the old inline path):
138
- // -o foo/ → outputDir = foo, project = foo/project.vibe.json
139
- // -o foo.vibe.json → outputDir = default, project = foo.vibe.json
140
- // -o foo → outputDir = foo, project = foo/project.vibe.json
141
- let effectiveOutputDir = options.outputDir;
142
- const outputLooksLikeDirectory = options.output.endsWith("/") ||
143
- (!options.output.endsWith(".json") && !options.output.endsWith(".vibe.json"));
144
- if (outputLooksLikeDirectory && options.outputDir === "script-video-output") {
145
- effectiveOutputDir = options.output;
146
- }
147
- let projectFilePath = resolve(process.cwd(), options.output);
148
- if (outputLooksLikeDirectory) {
149
- projectFilePath = resolve(projectFilePath, "project.vibe.json");
150
- }
151
- else if (existsSync(projectFilePath) && (await stat(projectFilePath)).isDirectory()) {
152
- projectFilePath = resolve(projectFilePath, "project.vibe.json");
153
- }
154
- const creativity = (options.creativity ?? "low").toLowerCase();
155
- if (creativity !== "low" && creativity !== "high") {
156
- exitWithError(usageError("Invalid creativity level.", "Use 'low' or 'high'."));
157
- }
158
- console.log();
159
- console.log(chalk.bold.cyan("🎬 Script-to-Video Pipeline"));
160
- console.log(chalk.dim("─".repeat(60)));
161
- if (creativity === "high") {
162
- console.log(chalk.yellow("🎨 High creativity mode: Generating varied, unexpected scenes"));
163
- }
164
- console.log();
165
- const pipelineSpinner = ora(`🎬 Running script-to-video with ${options.generator}...`).start();
166
- const format = (options.format ?? "mp4");
167
- if (format !== "mp4" && format !== "scenes") {
168
- exitWithError(usageError(`Invalid --format: ${options.format}`, "Valid: mp4, scenes"));
169
- }
170
- const validScenePresets = ["simple", "announcement", "explainer", "kinetic-type", "product-shot"];
171
- const scenePreset = options.sceneStyle;
172
- if (format === "scenes" && !validScenePresets.includes(scenePreset)) {
173
- exitWithError(usageError(`Invalid --scene-style: ${scenePreset}`, `Valid: ${validScenePresets.join(", ")}`));
174
- }
175
- const result = await executeScriptToVideo({
176
- script: scriptContent,
177
- outputDir: effectiveOutputDir,
178
- projectFilePath,
179
- duration: options.duration ? parseFloat(options.duration) : undefined,
180
- voice: options.voice,
181
- generator: options.generator,
182
- imageProvider: options.imageProvider,
183
- aspectRatio: options.aspectRatio,
184
- imagesOnly: options.imagesOnly,
185
- noVoiceover: options.voiceover === false,
186
- retries: parseInt(options.retries) || DEFAULT_VIDEO_RETRIES,
187
- creativity: creativity,
188
- storyboardProvider: options.storyboardProvider,
189
- noTextOverlay: options.textOverlay === false,
190
- textStyle: options.textStyle,
191
- review: options.review,
192
- reviewAutoApply: options.reviewAutoApply,
193
- format,
194
- scenePreset,
195
- onProgress: (msg) => { pipelineSpinner.text = msg; },
196
- });
197
- if (!result.success) {
198
- pipelineSpinner.fail(chalk.red(result.error || "Script-to-Video failed"));
199
- exitWithError(apiError(result.error || "Script-to-Video failed", true));
200
- }
201
- // ---- Scene-project output path -------------------------------------
202
- if (result.format === "scenes") {
203
- pipelineSpinner.succeed(chalk.green(`Generated ${result.scenes} scene HTML file(s) → ${effectiveOutputDir}/`));
204
- const lint = result.sceneLint;
205
- const lintLine = lint
206
- ? ` 🧪 Lint: ${lint.errorCount} error(s), ${lint.warningCount} warning(s), ${lint.infoCount} info`
207
- : " 🧪 Lint: skipped";
208
- console.log();
209
- console.log(chalk.bold.green("Script-to-Scenes complete!"));
210
- console.log(chalk.dim("─".repeat(60)));
211
- console.log();
212
- console.log(` 📁 Project: ${chalk.cyan(effectiveOutputDir)}/`);
213
- console.log(` 🎬 Scenes: ${result.scenes}`);
214
- console.log(` ⏱️ Duration: ${result.totalDuration ?? 0}s`);
215
- console.log(lintLine);
216
- console.log();
217
- console.log(chalk.dim("Next steps:"));
218
- console.log(chalk.dim(` vibe scene lint --project ${effectiveOutputDir}`));
219
- console.log(chalk.dim(` vibe scene render --project ${effectiveOutputDir}`));
220
- console.log();
221
- outputResult({
222
- success: true,
223
- command: "pipeline script-to-video",
224
- result: {
225
- format: "scenes",
226
- outputDir: result.outputDir,
227
- scenes: result.scenes,
228
- totalDuration: result.totalDuration,
229
- scenePaths: result.scenePaths ?? [],
230
- lint: lint
231
- ? { ok: lint.ok, errorCount: lint.errorCount, warningCount: lint.warningCount, infoCount: lint.infoCount }
232
- : undefined,
233
- },
234
- });
235
- return;
236
- }
237
- pipelineSpinner.succeed(chalk.green(`Generated ${result.scenes} scene(s) → ${result.projectPath}`));
238
- // Final summary (presentational; keeps parity with the pre-thin-wrap CLI).
239
- const narrationCount = (result.narrationEntries ?? []).filter((e) => e.path).length;
240
- const failedNarrationNums = result.failedNarrations ?? [];
241
- const failedSceneNums = [...new Set(result.failedScenes ?? [])].sort((a, b) => a - b);
242
- const imageCount = result.images?.length ?? 0;
243
- const videoCount = result.videos?.length ?? 0;
244
- console.log();
245
- console.log(chalk.bold.green("Script-to-Video complete!"));
246
- console.log(chalk.dim("─".repeat(60)));
247
- console.log();
248
- console.log(` 📄 Project: ${chalk.cyan(result.projectPath)}`);
249
- console.log(` 🎬 Scenes: ${result.scenes}`);
250
- console.log(` ⏱️ Duration: ${result.totalDuration ?? 0}s`);
251
- console.log(` 📁 Assets: ${effectiveOutputDir}/`);
252
- if (narrationCount > 0 || failedNarrationNums.length > 0) {
253
- console.log(` 🎙️ Narrations: ${narrationCount}/${result.scenes} narration-*.mp3`);
254
- if (failedNarrationNums.length > 0) {
255
- console.log(chalk.yellow(` ⚠ Failed: scene ${failedNarrationNums.join(", ")}`));
256
- }
257
- }
258
- console.log(` 🖼️ Images: ${imageCount} scene-*.png`);
259
- if (!options.imagesOnly) {
260
- console.log(` 🎥 Videos: ${videoCount}/${result.scenes} scene-*.mp4`);
261
- if (failedSceneNums.length > 0) {
262
- console.log(chalk.yellow(` ⚠ Failed: scene ${failedSceneNums.join(", ")} (fallback to image)`));
263
- }
264
- }
265
- console.log();
266
- console.log(chalk.dim("Next steps:"));
267
- console.log(chalk.dim(` vibe project info ${options.output}`));
268
- console.log(chalk.dim(` vibe export ${options.output} -o final.mp4`));
269
- if (!options.imagesOnly && failedSceneNums.length > 0) {
270
- console.log();
271
- console.log(chalk.dim("💡 To regenerate failed scenes:"));
272
- for (const sceneNum of failedSceneNums) {
273
- console.log(chalk.dim(` vibe ai regenerate-scene ${effectiveOutputDir}/ --scene ${sceneNum} --video-only`));
274
- }
275
- }
276
- console.log();
277
- // JSON shape is byte-identical to the pre-thin-wrap delegation block;
278
- // agent callers depend on these exact fields and counts.
279
- outputResult({
280
- success: true,
281
- command: "pipeline script-to-video",
282
- result: {
283
- projectPath: result.projectPath,
284
- outputDir: result.outputDir,
285
- scenes: result.scenes,
286
- totalDuration: result.totalDuration,
287
- images: result.images?.length ?? 0,
288
- videos: result.videos?.length ?? 0,
289
- failedScenes: result.failedScenes ?? [],
290
- },
291
- });
292
- }
293
- catch (error) {
294
- exitWithError(generalError(error instanceof Error ? error.message : "Script-to-Video failed"));
295
- }
296
- });
297
- // Regenerate Scene command
298
- aiCommand
299
- .command("regenerate-scene")
300
- .description("Regenerate a specific scene in a script-to-video project")
301
- .argument("<project-dir>", "Path to the script-to-video output directory")
302
- .requiredOption("--scene <numbers>", "Scene number(s) to regenerate (1-based), e.g., 3 or 3,4,5")
303
- .option("--video-only", "Only regenerate video")
304
- .option("--narration-only", "Only regenerate narration")
305
- .option("--image-only", "Only regenerate image")
306
- .option("-g, --generator <engine>", "Video generator: grok | kling | runway | veo", "grok")
307
- .option("-i, --image-provider <provider>", "Image provider: gemini | openai | grok", "gemini")
308
- .option("-v, --voice <id>", "ElevenLabs voice ID for narration")
309
- .option("-a, --aspect-ratio <ratio>", "Aspect ratio: 16:9 | 9:16 | 1:1", "16:9")
310
- .option("--retries <count>", "Number of retries for video generation failures", String(DEFAULT_VIDEO_RETRIES))
311
- .option("--reference-scene <num>", "Use another scene's image as reference for character consistency")
312
- .option("--dry-run", "Preview parameters without executing")
313
- .action(async (projectDir, options) => {
314
- try {
315
- const outputDir = resolve(process.cwd(), projectDir);
316
- const projectPath = resolve(outputDir, "project.vibe.json");
317
- if (!existsSync(outputDir)) {
318
- exitWithError(notFoundError(outputDir));
319
- }
320
- // Storyboard: prefer YAML (current executeScriptToVideo output), fall back
321
- // to JSON (pre-0.48.6 inline kling/runway output). Track source format so
322
- // the CLI's project-file update can re-read it after the library has
323
- // rewritten segment durations.
324
- const yamlPath = resolve(outputDir, "storyboard.yaml");
325
- const jsonPath = resolve(outputDir, "storyboard.json");
326
- const storyboardPath = existsSync(yamlPath) ? yamlPath : existsSync(jsonPath) ? jsonPath : null;
327
- const storyboardIsYaml = storyboardPath === yamlPath;
328
- if (!storyboardPath) {
329
- exitWithError(notFoundError(`${outputDir}/storyboard.{yaml,json}`));
330
- }
331
- const sceneNums = options.scene
332
- .split(",")
333
- .map((s) => parseInt(s.trim()))
334
- .filter((n) => !isNaN(n) && n >= 1);
335
- if (sceneNums.length === 0) {
336
- exitWithError(usageError("Scene number must be a positive integer (1-based)", "e.g., --scene 3 or --scene 3,4,5"));
337
- }
338
- if (options.dryRun) {
339
- outputResult({
340
- dryRun: true,
341
- command: "pipeline regenerate-scene",
342
- params: {
343
- projectDir,
344
- scene: sceneNums,
345
- videoOnly: options.videoOnly ?? false,
346
- narrationOnly: options.narrationOnly ?? false,
347
- imageOnly: options.imageOnly ?? false,
348
- generator: options.generator,
349
- imageProvider: options.imageProvider,
350
- aspectRatio: options.aspectRatio,
351
- retries: options.retries,
352
- referenceScene: options.referenceScene,
353
- },
354
- });
355
- return;
356
- }
357
- // Validate scene numbers against the on-disk storyboard so we fail before
358
- // any API calls. executeRegenerateScene validates too, but a usage exit
359
- // code is friendlier than API_ERROR here.
360
- const content = await readFile(storyboardPath, "utf-8");
361
- const segments = storyboardIsYaml
362
- ? yamlParse(content).scenes
363
- : JSON.parse(content);
364
- for (const sceneNum of sceneNums) {
365
- if (sceneNum > segments.length) {
366
- exitWithError(usageError(`Scene ${sceneNum} does not exist. Storyboard has ${segments.length} scenes.`));
367
- }
368
- }
369
- const regenerateVideo = options.videoOnly || (!options.narrationOnly && !options.imageOnly);
370
- const regenerateNarration = options.narrationOnly || (!options.videoOnly && !options.imageOnly);
371
- const regenerateImage = options.imageOnly || (!options.videoOnly && !options.narrationOnly);
372
- // API-key pre-check for friendly AUTH exit codes (library re-checks).
373
- if (regenerateImage) {
374
- const provider = (options.imageProvider || "openai");
375
- const keyMap = {
376
- openai: { envVar: "OPENAI_API_KEY", name: "OpenAI" },
377
- dalle: { envVar: "OPENAI_API_KEY", name: "OpenAI" },
378
- gemini: { envVar: "GOOGLE_API_KEY", name: "Google" },
379
- grok: { envVar: "XAI_API_KEY", name: "xAI" },
380
- };
381
- const info = keyMap[provider];
382
- if (!info)
383
- exitWithError(usageError(`Unknown image provider: ${provider}`));
384
- if (!(await getApiKey(info.envVar, info.name)))
385
- exitWithError(authError(info.envVar, info.name));
386
- }
387
- if (regenerateVideo) {
388
- const generatorKeyMap = {
389
- grok: { envVar: "XAI_API_KEY", name: "xAI" },
390
- kling: { envVar: "KLING_API_KEY", name: "Kling" },
391
- runway: { envVar: "RUNWAY_API_SECRET", name: "Runway" },
392
- veo: { envVar: "GOOGLE_API_KEY", name: "Google" },
393
- };
394
- const generator = options.generator || "grok";
395
- const info = generatorKeyMap[generator];
396
- if (!info)
397
- exitWithError(usageError(`Invalid generator: ${generator}`, `Available: ${Object.keys(generatorKeyMap).join(", ")}`));
398
- if (!(await getApiKey(info.envVar, info.name)))
399
- exitWithError(authError(info.envVar, info.name));
400
- }
401
- if (regenerateNarration) {
402
- if (!(await getApiKey("ELEVENLABS_API_KEY", "ElevenLabs"))) {
403
- exitWithError(authError("ELEVENLABS_API_KEY", "ElevenLabs"));
404
- }
405
- }
406
- console.log();
407
- console.log(chalk.bold.cyan(`🔄 Regenerating Scene${sceneNums.length > 1 ? "s" : ""} ${sceneNums.join(", ")}`));
408
- console.log(chalk.dim("─".repeat(60)));
409
- console.log();
410
- console.log(` 📁 Project: ${outputDir}`);
411
- console.log(` 🎬 Scenes: ${sceneNums.join(", ")} of ${segments.length}`);
412
- console.log();
413
- const spinner = ora("Regenerating...").start();
414
- const result = await executeRegenerateScene({
415
- projectDir,
416
- scenes: sceneNums,
417
- videoOnly: options.videoOnly,
418
- narrationOnly: options.narrationOnly,
419
- imageOnly: options.imageOnly,
420
- generator: options.generator,
421
- // `dalle` is a CLI alias for OpenAI image generation; the library only
422
- // knows `openai`.
423
- imageProvider: (options.imageProvider === "dalle" ? "openai" : options.imageProvider),
424
- voice: options.voice,
425
- aspectRatio: options.aspectRatio,
426
- retries: parseInt(options.retries) || DEFAULT_VIDEO_RETRIES,
427
- referenceScene: options.referenceScene ? parseInt(options.referenceScene) : undefined,
428
- onProgress: (msg) => { spinner.text = msg; },
429
- });
430
- if (!result.success) {
431
- spinner.fail(chalk.red(result.error || "Scene regeneration failed"));
432
- exitWithError(apiError(result.error || "Scene regeneration failed", true));
433
- }
434
- spinner.succeed(chalk.green(`Regenerated ${result.regeneratedScenes.length} scene(s)`));
435
- // Sync project.vibe.json clip durations with the updated storyboard.
436
- // The library rewrites segment.duration when narration changes; we
437
- // re-read it here so every clip's startTime/duration line up.
438
- if (existsSync(projectPath) && result.regeneratedScenes.length > 0) {
439
- const updateSpinner = ora("📦 Updating project file...").start();
440
- try {
441
- const updatedContent = await readFile(storyboardPath, "utf-8");
442
- const updatedSegments = storyboardIsYaml
443
- ? yamlParse(updatedContent).scenes
444
- : JSON.parse(updatedContent);
445
- const projectContent = await readFile(projectPath, "utf-8");
446
- const projectData = JSON.parse(projectContent);
447
- for (const sceneNum of result.regeneratedScenes) {
448
- const segment = updatedSegments[sceneNum - 1];
449
- if (!segment)
450
- continue;
451
- const videoPath = resolve(outputDir, `scene-${sceneNum}.mp4`);
452
- const imagePath = resolve(outputDir, `scene-${sceneNum}.png`);
453
- const videoSource = projectData.state.sources.find((s) => s.name === `Scene ${sceneNum}`);
454
- if (videoSource) {
455
- const hasVideo = existsSync(videoPath);
456
- videoSource.url = hasVideo ? videoPath : imagePath;
457
- videoSource.type = hasVideo ? "video" : "image";
458
- videoSource.duration = segment.duration;
459
- }
460
- if (regenerateNarration) {
461
- const narrationSource = projectData.state.sources.find((s) => s.name === `Narration ${sceneNum}`);
462
- if (narrationSource) {
463
- narrationSource.duration = segment.duration;
464
- }
465
- }
466
- }
467
- for (const clip of projectData.state.clips) {
468
- const source = projectData.state.sources.find((s) => s.id === clip.sourceId);
469
- if (!source)
470
- continue;
471
- const sceneMatch = source.name.match(/^Scene (\d+)$/);
472
- const narrationMatch = source.name.match(/^Narration (\d+)$/);
473
- const segIdx = sceneMatch ? parseInt(sceneMatch[1]) - 1 : narrationMatch ? parseInt(narrationMatch[1]) - 1 : -1;
474
- if (segIdx >= 0 && segIdx < updatedSegments.length) {
475
- const seg = updatedSegments[segIdx];
476
- clip.startTime = seg.startTime;
477
- clip.duration = seg.duration;
478
- clip.sourceEndOffset = seg.duration;
479
- source.duration = seg.duration;
480
- }
481
- }
482
- await writeFile(projectPath, JSON.stringify(projectData, null, 2), "utf-8");
483
- updateSpinner.succeed(chalk.green("Updated project file (all clips synced)"));
484
- }
485
- catch (err) {
486
- updateSpinner.warn(chalk.yellow(`Could not update project file: ${err}`));
487
- }
488
- }
489
- console.log();
490
- console.log(chalk.bold.green(`✅ ${result.regeneratedScenes.length} scene${result.regeneratedScenes.length !== 1 ? "s" : ""} regenerated successfully!`));
491
- console.log(chalk.dim("─".repeat(60)));
492
- console.log();
493
- console.log(chalk.dim("Next steps:"));
494
- console.log(chalk.dim(` vibe export ${outputDir}/ -o final.mp4`));
495
- console.log();
496
- }
497
- catch (error) {
498
- exitWithError(generalError(error instanceof Error ? error.message : "Scene regeneration failed"));
499
- }
500
- });
501
- }
502
- //# sourceMappingURL=ai-script-pipeline-cli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-script-pipeline-cli.js","sourceRoot":"","sources":["../../src/commands/ai-script-pipeline-cli.ts"],"names":[],"mappings":"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"}