@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,332 +0,0 @@
1
- /**
2
- * @module ai-narrate
3
- *
4
- * Auto-narration pipeline and provider listing.
5
- *
6
- * CLI commands: narrate, providers
7
- *
8
- * Execute function:
9
- * autoNarrate - Analyze video -> generate script -> TTS voiceover
10
- *
11
- * Extracted from ai.ts as part of modularisation.
12
- * ai.ts calls registerNarrateCommands(aiCommand).
13
- *
14
- * @dependencies Gemini (video analysis), Claude/OpenAI (script generation),
15
- * ElevenLabs (TTS), FFmpeg (duration probe)
16
- */
17
- import { readFile, writeFile, mkdir } from "node:fs/promises";
18
- import { resolve, dirname, basename } from "node:path";
19
- import { existsSync } from "node:fs";
20
- import chalk from "chalk";
21
- import ora from "ora";
22
- import { providerRegistry, whisperProvider, geminiProvider, openaiProvider, claudeProvider, elevenLabsProvider, openaiImageProvider, runwayProvider, klingProvider, replicateProvider, GeminiProvider, OpenAIProvider, ClaudeProvider, ElevenLabsProvider, } from "@vibeframe/ai-providers";
23
- import { Project } from "../engine/index.js";
24
- import { getApiKey } from "../utils/api-key.js";
25
- import { ffprobeDuration } from "../utils/exec-safe.js";
26
- import { getAudioDuration } from "../utils/audio.js";
27
- import { formatTime } from "./ai-helpers.js";
28
- import { exitWithError, notFoundError, usageError, apiError, generalError, outputResult } from "./output.js";
29
- import { validateOutputPath } from "./validate.js";
30
- /**
31
- * Generate narration for a video that doesn't have one.
32
- *
33
- * Pipeline:
34
- * 1. Analyze video with Gemini Video Understanding
35
- * 2. Generate narration script with Claude (fallback to OpenAI on 529)
36
- * 3. Convert to speech with ElevenLabs TTS
37
- *
38
- * Saves both the audio file and script text to the output directory.
39
- *
40
- * @param options - Auto-narrate configuration
41
- * @returns Result with audio path, script text, and timed segments
42
- */
43
- export async function autoNarrate(options) {
44
- const { videoPath, duration, outputDir, voice = "rachel", style = "informative", language = "en", scriptProvider = "claude", } = options;
45
- // Validate API keys
46
- const geminiApiKey = await getApiKey("GOOGLE_API_KEY", "Google");
47
- if (!geminiApiKey) {
48
- return { success: false, error: "GOOGLE_API_KEY required for video analysis. Run 'vibe setup' or set GOOGLE_API_KEY in .env" };
49
- }
50
- let claudeApiKey = null;
51
- let openaiScriptApiKey = null;
52
- if (scriptProvider === "openai") {
53
- openaiScriptApiKey = await getApiKey("OPENAI_API_KEY", "OpenAI");
54
- if (!openaiScriptApiKey) {
55
- return { success: false, error: "OPENAI_API_KEY required for script generation. Run 'vibe setup' or set OPENAI_API_KEY in .env" };
56
- }
57
- }
58
- else {
59
- claudeApiKey = await getApiKey("ANTHROPIC_API_KEY", "Anthropic");
60
- if (!claudeApiKey) {
61
- return { success: false, error: "ANTHROPIC_API_KEY required for script generation. Run 'vibe setup' or set ANTHROPIC_API_KEY in .env" };
62
- }
63
- }
64
- const elevenlabsApiKey = await getApiKey("ELEVENLABS_API_KEY", "ElevenLabs");
65
- if (!elevenlabsApiKey) {
66
- return { success: false, error: "ELEVENLABS_API_KEY required for TTS. Run 'vibe setup' or set ELEVENLABS_API_KEY in .env" };
67
- }
68
- try {
69
- // Step 1: Analyze video with Gemini
70
- const gemini = new GeminiProvider();
71
- await gemini.initialize({ apiKey: geminiApiKey });
72
- const videoBuffer = await readFile(videoPath);
73
- const analysisPrompt = `Analyze this video in detail for narration purposes. Describe:
74
- 1. What is happening visually (actions, movements, subjects)
75
- 2. The setting and environment
76
- 3. Any text or graphics visible
77
- 4. The mood and tone of the content
78
- 5. Key moments and their approximate timestamps
79
-
80
- Provide a detailed description that could be used to write a voiceover narration.
81
- Focus on what viewers need to know to understand and appreciate the video.`;
82
- const analysisResult = await gemini.analyzeVideo(videoBuffer, analysisPrompt, {
83
- fps: 0.5, // Lower FPS for cost optimization
84
- lowResolution: duration > 60, // Use low res for longer videos
85
- });
86
- if (!analysisResult.success || !analysisResult.response) {
87
- return { success: false, error: `Video analysis failed: ${analysisResult.error}` };
88
- }
89
- // Step 2: Generate narration script with Claude or OpenAI
90
- let scriptResult;
91
- if (scriptProvider === "openai") {
92
- const gpt = new OpenAIProvider();
93
- await gpt.initialize({ apiKey: openaiScriptApiKey });
94
- scriptResult = await gpt.generateNarrationScript(analysisResult.response, duration, style, language);
95
- }
96
- else {
97
- const claude = new ClaudeProvider();
98
- await claude.initialize({ apiKey: claudeApiKey });
99
- scriptResult = await claude.generateNarrationScript(analysisResult.response, duration, style, language);
100
- // Auto-fallback to OpenAI on Claude overload (529)
101
- if (!scriptResult.success && scriptResult.error?.includes("529")) {
102
- const fallbackKey = await getApiKey("OPENAI_API_KEY", "OpenAI");
103
- if (fallbackKey) {
104
- console.error("⚠️ Claude overloaded, falling back to OpenAI...");
105
- const gpt = new OpenAIProvider();
106
- await gpt.initialize({ apiKey: fallbackKey });
107
- scriptResult = await gpt.generateNarrationScript(analysisResult.response, duration, style, language);
108
- }
109
- }
110
- }
111
- if (!scriptResult.success || !scriptResult.script) {
112
- return { success: false, error: `Script generation failed: ${scriptResult.error}` };
113
- }
114
- // Step 3: Convert to speech with ElevenLabs
115
- const elevenlabs = new ElevenLabsProvider();
116
- await elevenlabs.initialize({ apiKey: elevenlabsApiKey });
117
- const ttsResult = await elevenlabs.textToSpeech(scriptResult.script, {
118
- voiceId: voice,
119
- });
120
- if (!ttsResult.success || !ttsResult.audioBuffer) {
121
- return { success: false, error: `TTS generation failed: ${ttsResult.error}` };
122
- }
123
- // Ensure output directory exists
124
- if (!existsSync(outputDir)) {
125
- await mkdir(outputDir, { recursive: true });
126
- }
127
- // Save audio file
128
- const audioPath = resolve(outputDir, "auto-narration.mp3");
129
- await writeFile(audioPath, ttsResult.audioBuffer);
130
- // Save script for reference
131
- const scriptPath = resolve(outputDir, "narration-script.txt");
132
- await writeFile(scriptPath, scriptResult.script, "utf-8");
133
- return {
134
- success: true,
135
- audioPath,
136
- script: scriptResult.script,
137
- segments: scriptResult.segments,
138
- };
139
- }
140
- catch (error) {
141
- return {
142
- success: false,
143
- error: error instanceof Error ? error.message : "Unknown error in autoNarrate",
144
- };
145
- }
146
- }
147
- // ==========================================
148
- // CLI Command Registration
149
- // ==========================================
150
- export function registerNarrateCommands(ai) {
151
- ai
152
- .command("providers")
153
- .description("List available AI providers")
154
- .action(async () => {
155
- // Register default providers
156
- providerRegistry.register(whisperProvider);
157
- providerRegistry.register(geminiProvider);
158
- providerRegistry.register(openaiProvider);
159
- providerRegistry.register(claudeProvider);
160
- providerRegistry.register(elevenLabsProvider);
161
- providerRegistry.register(openaiImageProvider);
162
- providerRegistry.register(runwayProvider);
163
- providerRegistry.register(klingProvider);
164
- providerRegistry.register(replicateProvider);
165
- console.log();
166
- console.log(chalk.bold.cyan("Available AI Providers"));
167
- console.log(chalk.dim("─".repeat(60)));
168
- const providers = providerRegistry.getAll();
169
- for (const provider of providers) {
170
- const status = provider.isAvailable ? chalk.green("●") : chalk.red("○");
171
- console.log();
172
- console.log(`${status} ${chalk.bold(provider.name)} ${chalk.dim(`(${provider.id})`)}`);
173
- console.log(` ${provider.description}`);
174
- console.log(` ${chalk.dim("Capabilities:")} ${provider.capabilities.join(", ")}`);
175
- }
176
- console.log();
177
- });
178
- // Auto-Narrate command
179
- ai
180
- .command("narrate")
181
- .description("Generate AI narration for a video file or project")
182
- .argument("<input>", "Video file or project file (.vibe.json)")
183
- .option("-o, --output <dir>", "Output directory for generated files", ".")
184
- .option("-v, --voice <name>", "ElevenLabs voice name (rachel, adam, josh, etc.)", "rachel")
185
- .option("-s, --style <style>", "Narration style: informative, energetic, calm, dramatic", "informative")
186
- .option("-l, --language <lang>", "Language code (e.g., en, ko)", "en")
187
- .option("-p, --provider <name>", "LLM for script generation: claude (default), openai", "claude")
188
- .option("--add-to-project", "Add narration to project (only for .vibe.json input)")
189
- .option("--dry-run", "Preview parameters without executing")
190
- .action(async (inputPath, options) => {
191
- try {
192
- if (options.output) {
193
- validateOutputPath(options.output);
194
- }
195
- if (options.dryRun) {
196
- outputResult({ dryRun: true, command: "ai narrate", params: { input: inputPath, output: options.output, voice: options.voice, style: options.style, language: options.language, provider: options.provider, addToProject: options.addToProject } });
197
- return;
198
- }
199
- const absPath = resolve(process.cwd(), inputPath);
200
- if (!existsSync(absPath)) {
201
- exitWithError(notFoundError(absPath));
202
- }
203
- console.log();
204
- console.log(chalk.bold.cyan("🎙️ Auto-Narrate Pipeline"));
205
- console.log(chalk.dim("─".repeat(60)));
206
- console.log();
207
- const isProject = inputPath.endsWith(".vibe.json");
208
- let videoPath;
209
- let project = null;
210
- let outputDir = resolve(process.cwd(), options.output);
211
- if (isProject) {
212
- // Load project to find video source
213
- const content = await readFile(absPath, "utf-8");
214
- const data = JSON.parse(content);
215
- project = Project.fromJSON(data);
216
- const sources = project.getSources();
217
- const videoSource = sources.find((s) => s.type === "video");
218
- if (!videoSource) {
219
- exitWithError(generalError("No video source found in project"));
220
- }
221
- videoPath = resolve(dirname(absPath), videoSource.url);
222
- if (!existsSync(videoPath)) {
223
- exitWithError(notFoundError(videoPath));
224
- }
225
- // Use project directory as output if not specified
226
- if (options.output === ".") {
227
- outputDir = dirname(absPath);
228
- }
229
- console.log(`📁 Project: ${chalk.bold(project.getMeta().name)}`);
230
- }
231
- else {
232
- videoPath = absPath;
233
- console.log(`🎬 Video: ${chalk.bold(basename(videoPath))}`);
234
- }
235
- // Get video duration
236
- const durationSpinner = ora("📊 Analyzing video...").start();
237
- let duration;
238
- try {
239
- duration = await ffprobeDuration(videoPath);
240
- durationSpinner.succeed(chalk.green(`Duration: ${formatTime(duration)}`));
241
- }
242
- catch {
243
- durationSpinner.fail("Failed to get video duration");
244
- exitWithError(generalError("Failed to get video duration", "Ensure FFmpeg is installed and the video file is valid."));
245
- }
246
- // Validate style option
247
- const validStyles = ["informative", "energetic", "calm", "dramatic"];
248
- if (!validStyles.includes(options.style)) {
249
- exitWithError(usageError(`Invalid style: ${options.style}`, `Valid styles: ${validStyles.join(", ")}`));
250
- }
251
- // Generate narration
252
- const generateSpinner = ora("🤖 Generating narration...").start();
253
- generateSpinner.text = "📹 Analyzing video with Gemini...";
254
- const result = await autoNarrate({
255
- videoPath,
256
- duration,
257
- outputDir,
258
- voice: options.voice,
259
- style: options.style,
260
- language: options.language,
261
- scriptProvider: options.provider,
262
- });
263
- if (!result.success) {
264
- generateSpinner.fail(result.error || "Narration generation failed");
265
- exitWithError(apiError(result.error || "Narration generation failed", true));
266
- }
267
- generateSpinner.succeed(chalk.green("Narration generated successfully"));
268
- // Display result
269
- console.log();
270
- console.log(chalk.bold.cyan("Generated Files"));
271
- console.log(chalk.dim("─".repeat(60)));
272
- console.log(` 🎵 Audio: ${chalk.green(result.audioPath)}`);
273
- console.log(` 📝 Script: ${chalk.green(resolve(outputDir, "narration-script.txt"))}`);
274
- if (result.segments && result.segments.length > 0) {
275
- console.log();
276
- console.log(chalk.bold.cyan("Narration Segments"));
277
- console.log(chalk.dim("─".repeat(60)));
278
- for (const seg of result.segments.slice(0, 5)) {
279
- console.log(` [${formatTime(seg.startTime)} - ${formatTime(seg.endTime)}] ${chalk.dim(seg.text.substring(0, 50))}${seg.text.length > 50 ? "..." : ""}`);
280
- }
281
- if (result.segments.length > 5) {
282
- console.log(chalk.dim(` ... and ${result.segments.length - 5} more segments`));
283
- }
284
- }
285
- // Add to project if requested
286
- if (options.addToProject && project && isProject) {
287
- const addSpinner = ora("Adding narration to project...").start();
288
- // Get audio duration
289
- let audioDuration;
290
- try {
291
- audioDuration = await getAudioDuration(result.audioPath);
292
- }
293
- catch {
294
- audioDuration = duration; // Fallback to video duration
295
- }
296
- // Add audio source
297
- const audioSource = project.addSource({
298
- name: "Auto-generated narration",
299
- url: basename(result.audioPath),
300
- type: "audio",
301
- duration: audioDuration,
302
- });
303
- // Add audio clip to audio track
304
- const audioTrack = project.getTracks().find((t) => t.type === "audio");
305
- if (audioTrack) {
306
- project.addClip({
307
- sourceId: audioSource.id,
308
- trackId: audioTrack.id,
309
- startTime: 0,
310
- duration: Math.min(audioDuration, duration),
311
- sourceStartOffset: 0,
312
- sourceEndOffset: Math.min(audioDuration, duration),
313
- });
314
- }
315
- // Save updated project
316
- await writeFile(absPath, JSON.stringify(project.toJSON(), null, 2), "utf-8");
317
- addSpinner.succeed(chalk.green("Narration added to project"));
318
- }
319
- console.log();
320
- console.log(chalk.bold.green("✅ Auto-narrate complete!"));
321
- if (!options.addToProject && isProject) {
322
- console.log();
323
- console.log(chalk.dim("Tip: Use --add-to-project to automatically add the narration to your project"));
324
- }
325
- console.log();
326
- }
327
- catch (error) {
328
- exitWithError(generalError(error instanceof Error ? error.message : "Auto-narrate failed"));
329
- }
330
- });
331
- } // end registerNarrateCommands
332
- //# sourceMappingURL=ai-narrate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-narrate.js","sourceRoot":"","sources":["../../src/commands/ai-narrate.ts"],"names":[],"mappings":"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"}
@@ -1,57 +0,0 @@
1
- /**
2
- * @module ai-review
3
- *
4
- * AI-powered video quality review and auto-fix using Gemini.
5
- *
6
- * CLI command: review
7
- *
8
- * Execute function:
9
- * executeReview - Analyze video quality across 5 categories and optionally auto-fix
10
- *
11
- * @dependencies Gemini (Google), FFmpeg (auto-fix filters)
12
- */
13
- import { Command } from "commander";
14
- import type { VideoReviewFeedback } from "./ai-edit.js";
15
- /** Options for {@link executeReview}. */
16
- export interface ReviewOptions {
17
- /** Path to the video file to review */
18
- videoPath: string;
19
- /** Optional storyboard JSON for context-aware review */
20
- storyboardPath?: string;
21
- /** Automatically apply fixable corrections via FFmpeg */
22
- autoApply?: boolean;
23
- /** Run a verification pass after applying fixes */
24
- verify?: boolean;
25
- /** Gemini model shorthand (default: "flash") */
26
- model?: "flash" | "flash-2.5" | "pro";
27
- /** Output path for the fixed video (auto-apply mode) */
28
- outputPath?: string;
29
- }
30
- /** Result from {@link executeReview}. */
31
- export interface ReviewResult {
32
- /** Whether the review completed successfully */
33
- success: boolean;
34
- /** Structured review feedback with per-category scores */
35
- feedback?: VideoReviewFeedback;
36
- /** Descriptions of fixes that were auto-applied */
37
- appliedFixes?: string[];
38
- /** Post-fix verification quality score 1-10 */
39
- verificationScore?: number;
40
- /** Path to the reviewed/fixed output video */
41
- outputPath?: string;
42
- /** Error message on failure */
43
- error?: string;
44
- }
45
- /**
46
- * Review video quality using Gemini AI and optionally auto-fix issues.
47
- *
48
- * Analyzes 5 quality categories (pacing, color, text readability, audio-visual
49
- * sync, composition) and returns scored feedback. When auto-apply is enabled,
50
- * applies fixable corrections via FFmpeg filters.
51
- *
52
- * @param options - Review configuration
53
- * @returns Result with structured feedback and optional fix details
54
- */
55
- export declare function executeReview(options: ReviewOptions): Promise<ReviewResult>;
56
- export declare function registerReviewCommand(aiCommand: Command): void;
57
- //# sourceMappingURL=ai-review.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-review.d.ts","sourceRoot":"","sources":["../../src/commands/ai-review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAIxD,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC5B,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mDAAmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,KAAK,CAAC;IACtC,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,yCAAyC;AACzC,MAAM,WAAW,YAAY;IAC3B,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,+CAA+C;IAC/C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAyBD;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAiIjF;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CA2G9D"}