@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,659 +0,0 @@
1
- /**
2
- * Integration Tests: CLI ↔ Agent Tool Synchronization
3
- *
4
- * These tests verify that:
5
- * 1. All Agent tools are properly registered
6
- * 2. Agent tools correctly wrap CLI functions
7
- * 3. Parameter schemas match between CLI and Agent
8
- * 4. Tool handlers produce expected output formats
9
- */
10
- import { describe, it, expect, beforeEach, vi } from "vitest";
11
- import { ToolRegistry } from "./index.js";
12
- import { registerProjectTools } from "./project.js";
13
- import { registerTimelineTools } from "./timeline.js";
14
- import { registerFilesystemTools } from "./filesystem.js";
15
- import { registerMediaTools } from "./media.js";
16
- import { registerAITools } from "./ai.js";
17
- import { registerExportTools } from "./export.js";
18
- import { registerBatchTools } from "./batch.js";
19
- // Mock the imported CLI functions to avoid actual API calls
20
- vi.mock("../../commands/ai-script-pipeline.js", () => ({
21
- executeScriptToVideo: vi.fn().mockResolvedValue({
22
- success: true,
23
- outputDir: "/test/output",
24
- scenes: 3,
25
- storyboardPath: "/test/output/storyboard.json",
26
- projectPath: "/test/output/project.vibe.json",
27
- narrations: ["/test/output/narration-1.mp3"],
28
- images: ["/test/output/scene-1.png"],
29
- videos: ["/test/output/scene-1.mp4"],
30
- totalDuration: 30,
31
- failedScenes: [],
32
- }),
33
- executeRegenerateScene: vi.fn().mockResolvedValue({ success: true }),
34
- }));
35
- vi.mock("../../commands/ai-highlights.js", () => ({
36
- executeHighlights: vi.fn().mockResolvedValue({
37
- success: true,
38
- highlights: [
39
- {
40
- index: 1,
41
- startTime: 10,
42
- endTime: 25,
43
- duration: 15,
44
- category: "emotional",
45
- confidence: 0.95,
46
- reason: "Test highlight",
47
- transcript: "Test transcript",
48
- },
49
- ],
50
- totalDuration: 120,
51
- totalHighlightDuration: 15,
52
- }),
53
- executeAutoShorts: vi.fn().mockResolvedValue({
54
- success: true,
55
- shorts: [
56
- {
57
- index: 1,
58
- startTime: 30,
59
- endTime: 60,
60
- duration: 30,
61
- confidence: 0.9,
62
- reason: "Viral moment",
63
- outputPath: "/test/short-1.mp4",
64
- },
65
- ],
66
- }),
67
- }));
68
- vi.mock("../../commands/ai-animated-caption.js", () => ({
69
- executeAnimatedCaption: vi.fn().mockResolvedValue({
70
- success: true,
71
- outputPath: "/test/captioned.mp4",
72
- wordCount: 42,
73
- groupCount: 10,
74
- style: "highlight",
75
- tier: "remotion",
76
- }),
77
- }));
78
- vi.mock("../../commands/ai-analyze.js", () => ({
79
- executeGeminiVideo: vi.fn().mockResolvedValue({
80
- success: true,
81
- response: "This is a test video summary.",
82
- model: "gemini-3-flash-preview",
83
- totalTokens: 1000,
84
- }),
85
- executeAnalyze: vi.fn().mockResolvedValue({
86
- success: true,
87
- response: "Test analysis",
88
- }),
89
- }));
90
- vi.mock("../../commands/ai-edit.js", () => ({
91
- executeSilenceCut: vi.fn().mockResolvedValue({
92
- success: true,
93
- outputPath: "/test/video-cut.mp4",
94
- totalDuration: 120,
95
- silentPeriods: [
96
- { start: 10, end: 15, duration: 5 },
97
- { start: 60, end: 63, duration: 3 },
98
- ],
99
- silentDuration: 8,
100
- }),
101
- executeJumpCut: vi.fn().mockResolvedValue({
102
- success: true,
103
- outputPath: "/test/video-jumpcut.mp4",
104
- totalDuration: 120,
105
- fillerCount: 5,
106
- fillerDuration: 3.2,
107
- fillers: [
108
- { word: "um", start: 5.1, end: 5.6 },
109
- { word: "like", start: 12.3, end: 12.8 },
110
- ],
111
- }),
112
- executeCaption: vi.fn().mockResolvedValue({
113
- success: true,
114
- outputPath: "/test/video-captioned.mp4",
115
- srtPath: "/test/video-captioned.srt",
116
- segmentCount: 12,
117
- }),
118
- executeNoiseReduce: vi.fn().mockResolvedValue({
119
- success: true,
120
- outputPath: "/test/audio-denoised.mp4",
121
- inputDuration: 60,
122
- }),
123
- executeFade: vi.fn().mockResolvedValue({
124
- success: true,
125
- outputPath: "/test/video-faded.mp4",
126
- totalDuration: 120,
127
- fadeInApplied: true,
128
- fadeOutApplied: true,
129
- }),
130
- executeTranslateSrt: vi.fn().mockResolvedValue({
131
- success: true,
132
- outputPath: "/test/subtitles-ko.srt",
133
- segmentCount: 20,
134
- sourceLanguage: "en",
135
- targetLanguage: "ko",
136
- }),
137
- executeTextOverlay: vi.fn().mockResolvedValue({
138
- success: true,
139
- outputPath: "/test/video-overlay.mp4",
140
- }),
141
- DEFAULT_FILLER_WORDS: ["um", "uh", "like", "you know"],
142
- detectFillerRanges: vi.fn(),
143
- }));
144
- vi.mock("../../commands/ai-review.js", () => ({
145
- executeReview: vi.fn().mockResolvedValue({
146
- success: true,
147
- issues: [],
148
- }),
149
- }));
150
- vi.mock("../../commands/ai-image.js", () => ({
151
- executeThumbnailBestFrame: vi.fn().mockResolvedValue({
152
- success: true,
153
- outputPath: "/test/video-thumbnail.png",
154
- timestamp: 15.5,
155
- reason: "Best composed frame",
156
- }),
157
- executeGeminiEdit: vi.fn().mockResolvedValue({
158
- success: true,
159
- outputPath: "/test/edited.png",
160
- }),
161
- }));
162
- describe("CLI ↔ Agent Tool Synchronization", () => {
163
- let registry;
164
- beforeEach(() => {
165
- registry = new ToolRegistry();
166
- registerProjectTools(registry);
167
- registerTimelineTools(registry);
168
- registerFilesystemTools(registry);
169
- registerMediaTools(registry);
170
- registerAITools(registry);
171
- registerExportTools(registry);
172
- registerBatchTools(registry);
173
- });
174
- describe("Tool Registration", () => {
175
- it("should register all 57 tools", () => {
176
- const tools = registry.getAll();
177
- expect(tools.length).toBe(58);
178
- });
179
- it("should register all project tools (5)", () => {
180
- const projectTools = [
181
- "project_create",
182
- "project_info",
183
- "project_set",
184
- "project_open",
185
- "project_save",
186
- ];
187
- for (const name of projectTools) {
188
- expect(registry.get(name)).toBeDefined();
189
- }
190
- });
191
- it("should register all timeline tools (11)", () => {
192
- const timelineTools = [
193
- "timeline_add_source",
194
- "timeline_add_clip",
195
- "timeline_add_track",
196
- "timeline_add_effect",
197
- "timeline_trim",
198
- "timeline_split",
199
- "timeline_move",
200
- "timeline_clear",
201
- "timeline_delete",
202
- "timeline_duplicate",
203
- "timeline_list",
204
- ];
205
- for (const name of timelineTools) {
206
- expect(registry.get(name)).toBeDefined();
207
- }
208
- });
209
- it("should register all filesystem tools (4)", () => {
210
- const fsTools = ["fs_list", "fs_read", "fs_write", "fs_exists"];
211
- for (const name of fsTools) {
212
- expect(registry.get(name)).toBeDefined();
213
- }
214
- });
215
- it("should register all media tools (8)", () => {
216
- const mediaTools = [
217
- "media_info",
218
- "detect_scenes",
219
- "detect_silence",
220
- "detect_beats",
221
- "audio_transcribe",
222
- "media_compress",
223
- "media_convert",
224
- "media_concat",
225
- ];
226
- for (const name of mediaTools) {
227
- expect(registry.get(name)).toBeDefined();
228
- }
229
- });
230
- it("should register all batch tools (3)", () => {
231
- const batchTools = [
232
- "batch_import",
233
- "batch_concat",
234
- "batch_apply_effect",
235
- ];
236
- for (const name of batchTools) {
237
- expect(registry.get(name)).toBeDefined();
238
- }
239
- });
240
- it("should register all AI tools (23)", () => {
241
- const aiTools = [
242
- // Generation tools (8)
243
- "generate_image",
244
- "generate_video",
245
- "generate_speech",
246
- "generate_sound_effect",
247
- "generate_music",
248
- "generate_storyboard",
249
- "generate_motion",
250
- "generate_thumbnail",
251
- // Edit tools (8)
252
- "edit_text_overlay",
253
- "edit_silence_cut",
254
- "edit_jump_cut",
255
- "edit_caption",
256
- "edit_noise_reduce",
257
- "edit_fade",
258
- "edit_translate_srt",
259
- "edit_image",
260
- // Analyze tools (3)
261
- "analyze_review",
262
- "analyze_video",
263
- "analyze_media",
264
- // Pipeline tools (4)
265
- "pipeline_script_to_video",
266
- "pipeline_highlights",
267
- "pipeline_auto_shorts",
268
- "pipeline_regenerate_scene",
269
- ];
270
- for (const name of aiTools) {
271
- expect(registry.get(name)).toBeDefined();
272
- }
273
- });
274
- it("should register all export tools (3)", () => {
275
- const exportTools = ["export_video", "export_audio", "export_subtitles"];
276
- for (const name of exportTools) {
277
- expect(registry.get(name)).toBeDefined();
278
- }
279
- });
280
- });
281
- describe("Tool Definition Schema Validation", () => {
282
- it("all tools should have valid definitions", () => {
283
- const tools = registry.getAll();
284
- for (const tool of tools) {
285
- expect(tool.name).toBeTruthy();
286
- expect(tool.description).toBeTruthy();
287
- expect(tool.parameters).toBeDefined();
288
- expect(tool.parameters.type).toBe("object");
289
- expect(tool.parameters.properties).toBeDefined();
290
- }
291
- });
292
- it("all tools should have required parameters listed", () => {
293
- const tools = registry.getAll();
294
- for (const tool of tools) {
295
- if (tool.parameters.required && tool.parameters.required.length > 0) {
296
- for (const requiredParam of tool.parameters.required) {
297
- expect(tool.parameters.properties[requiredParam]).toBeDefined();
298
- }
299
- }
300
- }
301
- });
302
- it("all parameter properties should have type and description", () => {
303
- const tools = registry.getAll();
304
- for (const tool of tools) {
305
- for (const paramDef of Object.values(tool.parameters.properties)) {
306
- const param = paramDef;
307
- expect(param.type).toBeTruthy();
308
- expect(param.description).toBeTruthy();
309
- }
310
- }
311
- });
312
- });
313
- describe("AI Pipeline Tools - Parameter Mapping", () => {
314
- describe("pipeline_script_to_video", () => {
315
- it("should have all CLI options as parameters", () => {
316
- const tool = registry.get("pipeline_script_to_video");
317
- expect(tool).toBeDefined();
318
- const params = tool.parameters.properties;
319
- // Required
320
- expect(params.script).toBeDefined();
321
- // Optional (matching CLI options)
322
- expect(params.outputDir).toBeDefined();
323
- expect(params.duration).toBeDefined();
324
- expect(params.voice).toBeDefined();
325
- expect(params.generator).toBeDefined();
326
- expect(params.imageProvider).toBeDefined();
327
- expect(params.aspectRatio).toBeDefined();
328
- expect(params.imagesOnly).toBeDefined();
329
- expect(params.noVoiceover).toBeDefined();
330
- expect(params.retries).toBeDefined();
331
- });
332
- it("should have correct enum values for generator", () => {
333
- const tool = registry.get("pipeline_script_to_video");
334
- const generator = tool.parameters.properties.generator;
335
- expect(generator.enum).toContain("runway");
336
- expect(generator.enum).toContain("kling");
337
- });
338
- it("should have correct enum values for imageProvider", () => {
339
- const tool = registry.get("pipeline_script_to_video");
340
- const imageProvider = tool.parameters.properties.imageProvider;
341
- expect(imageProvider.enum).toContain("openai");
342
- expect(imageProvider.enum).toContain("gemini");
343
- });
344
- it("should have correct enum values for aspectRatio", () => {
345
- const tool = registry.get("pipeline_script_to_video");
346
- const aspectRatio = tool.parameters.properties.aspectRatio;
347
- expect(aspectRatio.enum).toContain("16:9");
348
- expect(aspectRatio.enum).toContain("9:16");
349
- expect(aspectRatio.enum).toContain("1:1");
350
- });
351
- });
352
- describe("pipeline_highlights", () => {
353
- it("should have all CLI options as parameters", () => {
354
- const tool = registry.get("pipeline_highlights");
355
- expect(tool).toBeDefined();
356
- const params = tool.parameters.properties;
357
- // Required
358
- expect(params.media).toBeDefined();
359
- // Optional (matching CLI options)
360
- expect(params.output).toBeDefined();
361
- expect(params.project).toBeDefined();
362
- expect(params.duration).toBeDefined();
363
- expect(params.count).toBeDefined();
364
- expect(params.threshold).toBeDefined();
365
- expect(params.criteria).toBeDefined();
366
- expect(params.language).toBeDefined();
367
- expect(params.useGemini).toBeDefined();
368
- expect(params.lowRes).toBeDefined();
369
- });
370
- it("should have correct enum values for criteria", () => {
371
- const tool = registry.get("pipeline_highlights");
372
- const criteria = tool.parameters.properties.criteria;
373
- expect(criteria.enum).toContain("emotional");
374
- expect(criteria.enum).toContain("informative");
375
- expect(criteria.enum).toContain("funny");
376
- expect(criteria.enum).toContain("all");
377
- });
378
- });
379
- describe("pipeline_auto_shorts", () => {
380
- it("should have all CLI options as parameters", () => {
381
- const tool = registry.get("pipeline_auto_shorts");
382
- expect(tool).toBeDefined();
383
- const params = tool.parameters.properties;
384
- // Required
385
- expect(params.video).toBeDefined();
386
- // Optional (matching CLI options)
387
- expect(params.outputDir).toBeDefined();
388
- expect(params.duration).toBeDefined();
389
- expect(params.count).toBeDefined();
390
- expect(params.aspect).toBeDefined();
391
- expect(params.addCaptions).toBeDefined();
392
- expect(params.captionStyle).toBeDefined();
393
- expect(params.analyzeOnly).toBeDefined();
394
- expect(params.language).toBeDefined();
395
- expect(params.useGemini).toBeDefined();
396
- expect(params.lowRes).toBeDefined();
397
- });
398
- it("should have correct enum values for aspect", () => {
399
- const tool = registry.get("pipeline_auto_shorts");
400
- const aspect = tool.parameters.properties.aspect;
401
- expect(aspect.enum).toContain("9:16");
402
- expect(aspect.enum).toContain("1:1");
403
- });
404
- it("should have correct enum values for captionStyle", () => {
405
- const tool = registry.get("pipeline_auto_shorts");
406
- const captionStyle = tool.parameters.properties.captionStyle;
407
- expect(captionStyle.enum).toContain("minimal");
408
- expect(captionStyle.enum).toContain("bold");
409
- expect(captionStyle.enum).toContain("animated");
410
- });
411
- });
412
- describe("analyze_video", () => {
413
- it("should have all CLI options as parameters", () => {
414
- const tool = registry.get("analyze_video");
415
- expect(tool).toBeDefined();
416
- const params = tool.parameters.properties;
417
- // Required
418
- expect(params.source).toBeDefined();
419
- expect(params.prompt).toBeDefined();
420
- // Optional (matching CLI options)
421
- expect(params.model).toBeDefined();
422
- expect(params.fps).toBeDefined();
423
- expect(params.start).toBeDefined();
424
- expect(params.end).toBeDefined();
425
- expect(params.lowRes).toBeDefined();
426
- });
427
- it("should have correct enum values for model", () => {
428
- const tool = registry.get("analyze_video");
429
- const model = tool.parameters.properties.model;
430
- expect(model.enum).toContain("flash");
431
- expect(model.enum).toContain("flash-2.5");
432
- expect(model.enum).toContain("pro");
433
- });
434
- });
435
- });
436
- describe("Tool Handler Execution (Mocked)", () => {
437
- const mockContext = {
438
- workingDirectory: "/test/workdir",
439
- projectPath: "/test/project.vibe.json",
440
- };
441
- describe("pipeline_script_to_video handler", () => {
442
- it("should call executeScriptToVideo with correct parameters", async () => {
443
- const { executeScriptToVideo } = await import("../../commands/ai-script-pipeline.js");
444
- const handler = registry.getHandler("pipeline_script_to_video");
445
- expect(handler).toBeDefined();
446
- const result = await handler({
447
- script: "Test script. Scene two. Conclusion.",
448
- outputDir: "output",
449
- generator: "runway",
450
- imageProvider: "gemini",
451
- aspectRatio: "16:9",
452
- }, mockContext);
453
- expect(executeScriptToVideo).toHaveBeenCalledWith(expect.objectContaining({
454
- script: "Test script. Scene two. Conclusion.",
455
- generator: "runway",
456
- imageProvider: "gemini",
457
- aspectRatio: "16:9",
458
- }));
459
- expect(result.success).toBe(true);
460
- expect(result.output).toContain("Script-to-Video complete");
461
- });
462
- it("should handle failure gracefully", async () => {
463
- const { executeScriptToVideo } = await import("../../commands/ai-script-pipeline.js");
464
- vi.mocked(executeScriptToVideo).mockResolvedValueOnce({
465
- success: false,
466
- outputDir: "/test/output",
467
- scenes: 0,
468
- error: "API key missing",
469
- });
470
- const handler = registry.getHandler("pipeline_script_to_video");
471
- const result = await handler({ script: "Test" }, mockContext);
472
- expect(result.success).toBe(false);
473
- expect(result.error).toContain("API key missing");
474
- });
475
- });
476
- describe("pipeline_highlights handler", () => {
477
- it("should call executeHighlights with correct parameters", async () => {
478
- const { executeHighlights } = await import("../../commands/ai-highlights.js");
479
- const handler = registry.getHandler("pipeline_highlights");
480
- expect(handler).toBeDefined();
481
- const result = await handler({
482
- media: "video.mp4",
483
- duration: 60,
484
- criteria: "emotional",
485
- useGemini: true,
486
- }, mockContext);
487
- expect(executeHighlights).toHaveBeenCalledWith(expect.objectContaining({
488
- media: "/test/workdir/video.mp4",
489
- duration: 60,
490
- criteria: "emotional",
491
- useGemini: true,
492
- }));
493
- expect(result.success).toBe(true);
494
- expect(result.output).toContain("Found 1 highlights");
495
- });
496
- });
497
- describe("pipeline_auto_shorts handler", () => {
498
- it("should call executeAutoShorts with correct parameters", async () => {
499
- const { executeAutoShorts } = await import("../../commands/ai-highlights.js");
500
- const handler = registry.getHandler("pipeline_auto_shorts");
501
- expect(handler).toBeDefined();
502
- const result = await handler({
503
- video: "long-video.mp4",
504
- count: 3,
505
- duration: 45,
506
- aspect: "9:16",
507
- }, mockContext);
508
- expect(executeAutoShorts).toHaveBeenCalledWith(expect.objectContaining({
509
- video: "/test/workdir/long-video.mp4",
510
- count: 3,
511
- duration: 45,
512
- aspect: "9:16",
513
- }));
514
- expect(result.success).toBe(true);
515
- expect(result.output).toContain("Generated 1 short");
516
- });
517
- it("should handle analyzeOnly mode", async () => {
518
- const handler = registry.getHandler("pipeline_auto_shorts");
519
- const result = await handler({
520
- video: "video.mp4",
521
- analyzeOnly: true,
522
- }, mockContext);
523
- expect(result.success).toBe(true);
524
- });
525
- });
526
- describe("analyze_video handler", () => {
527
- it("should call executeGeminiVideo with correct parameters", async () => {
528
- const { executeGeminiVideo } = await import("../../commands/ai-analyze.js");
529
- const handler = registry.getHandler("analyze_video");
530
- expect(handler).toBeDefined();
531
- const result = await handler({
532
- source: "video.mp4",
533
- prompt: "Summarize this video",
534
- model: "flash",
535
- }, mockContext);
536
- expect(executeGeminiVideo).toHaveBeenCalledWith(expect.objectContaining({
537
- source: "/test/workdir/video.mp4",
538
- prompt: "Summarize this video",
539
- model: "flash",
540
- }));
541
- expect(result.success).toBe(true);
542
- expect(result.output).toContain("test video summary");
543
- });
544
- it("should handle YouTube URLs without modification", async () => {
545
- const { executeGeminiVideo } = await import("../../commands/ai-analyze.js");
546
- const handler = registry.getHandler("analyze_video");
547
- await handler({
548
- source: "https://youtube.com/watch?v=test",
549
- prompt: "Summarize",
550
- }, mockContext);
551
- expect(executeGeminiVideo).toHaveBeenCalledWith(expect.objectContaining({
552
- source: "https://youtube.com/watch?v=test",
553
- }));
554
- });
555
- });
556
- });
557
- describe("Tool Categories Match CLAUDE.md Documentation", () => {
558
- it("should have correct tool counts per category", () => {
559
- const allTools = registry.getAll();
560
- const projectTools = allTools.filter((t) => t.name.startsWith("project_"));
561
- const timelineTools = allTools.filter((t) => t.name.startsWith("timeline_"));
562
- const fsTools = allTools.filter((t) => t.name.startsWith("fs_"));
563
- const mediaTools = allTools.filter((t) => t.name.startsWith("media_") ||
564
- t.name.startsWith("detect_") ||
565
- t.name.startsWith("audio_"));
566
- const generateTools = allTools.filter((t) => t.name.startsWith("generate_"));
567
- const editTools = allTools.filter((t) => t.name.startsWith("edit_"));
568
- const analyzeTools = allTools.filter((t) => t.name.startsWith("analyze_"));
569
- const pipelineTools = allTools.filter((t) => t.name.startsWith("pipeline_"));
570
- const exportTools = allTools.filter((t) => t.name.startsWith("export_"));
571
- const batchTools = allTools.filter((t) => t.name.startsWith("batch_"));
572
- expect(projectTools.length).toBe(5);
573
- expect(timelineTools.length).toBe(11); // Added timeline_clear
574
- expect(fsTools.length).toBe(4);
575
- expect(mediaTools.length).toBe(8); // Added media_compress, media_convert, media_concat
576
- expect(generateTools.length).toBe(8); // image, video, speech, sound_effect, music, storyboard, motion, thumbnail
577
- expect(editTools.length).toBe(8); // text_overlay, silence_cut, jump_cut, caption, noise_reduce, fade, translate_srt, image
578
- expect(analyzeTools.length).toBe(3); // video, media, review
579
- expect(pipelineTools.length).toBe(5); // script_to_video, highlights, auto_shorts, regenerate_scene, animated_caption
580
- expect(exportTools.length).toBe(3);
581
- expect(batchTools.length).toBe(3);
582
- // Total: 5+11+4+8+8+8+3+4+3+3 = 57
583
- const totalTools = projectTools.length +
584
- timelineTools.length +
585
- fsTools.length +
586
- mediaTools.length +
587
- generateTools.length +
588
- editTools.length +
589
- analyzeTools.length +
590
- pipelineTools.length +
591
- exportTools.length +
592
- batchTools.length;
593
- expect(totalTools).toBe(58);
594
- });
595
- });
596
- });
597
- describe("Exported CLI Functions", () => {
598
- describe("Function signatures match Agent tool parameters", () => {
599
- it("executeScriptToVideo accepts ScriptToVideoOptions", async () => {
600
- // Type check - this will fail at compile time if signatures don't match
601
- const { executeScriptToVideo } = await import("../../commands/ai-script-pipeline.js");
602
- expect(typeof executeScriptToVideo).toBe("function");
603
- });
604
- it("executeHighlights accepts HighlightsOptions", async () => {
605
- const { executeHighlights } = await import("../../commands/ai-highlights.js");
606
- expect(typeof executeHighlights).toBe("function");
607
- });
608
- it("executeAutoShorts accepts AutoShortsOptions", async () => {
609
- const { executeAutoShorts } = await import("../../commands/ai-highlights.js");
610
- expect(typeof executeAutoShorts).toBe("function");
611
- });
612
- it("executeGeminiVideo accepts GeminiVideoOptions", async () => {
613
- const { executeGeminiVideo } = await import("../../commands/ai-analyze.js");
614
- expect(typeof executeGeminiVideo).toBe("function");
615
- });
616
- });
617
- });
618
- describe("Tool Name Consistency", () => {
619
- let registry;
620
- beforeEach(() => {
621
- registry = new ToolRegistry();
622
- registerProjectTools(registry);
623
- registerTimelineTools(registry);
624
- registerFilesystemTools(registry);
625
- registerMediaTools(registry);
626
- registerAITools(registry);
627
- registerExportTools(registry);
628
- registerBatchTools(registry);
629
- });
630
- it("all tool names should follow naming convention", () => {
631
- const tools = registry.getAll();
632
- const validPrefixes = [
633
- "project_",
634
- "timeline_",
635
- "fs_",
636
- "media_",
637
- "detect_",
638
- "audio_",
639
- "generate_",
640
- "edit_",
641
- "analyze_",
642
- "pipeline_",
643
- "export_",
644
- "batch_",
645
- ];
646
- for (const tool of tools) {
647
- const hasValidPrefix = validPrefixes.some((prefix) => tool.name.startsWith(prefix));
648
- expect(hasValidPrefix).toBe(true);
649
- }
650
- });
651
- it("all tool names should be lowercase with underscores", () => {
652
- const tools = registry.getAll();
653
- const validNamePattern = /^[a-z_]+$/;
654
- for (const tool of tools) {
655
- expect(tool.name).toMatch(validNamePattern);
656
- }
657
- });
658
- });
659
- //# sourceMappingURL=integration.test.js.map