@vibeframe/cli 0.54.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 (481) 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-html-emit.d.ts +0 -120
  112. package/dist/commands/_shared/scene-html-emit.d.ts.map +0 -1
  113. package/dist/commands/_shared/scene-html-emit.js +0 -422
  114. package/dist/commands/_shared/scene-html-emit.js.map +0 -1
  115. package/dist/commands/_shared/scene-html-emit.test.d.ts +0 -2
  116. package/dist/commands/_shared/scene-html-emit.test.d.ts.map +0 -1
  117. package/dist/commands/_shared/scene-html-emit.test.js +0 -396
  118. package/dist/commands/_shared/scene-html-emit.test.js.map +0 -1
  119. package/dist/commands/_shared/scene-lint.d.ts +0 -110
  120. package/dist/commands/_shared/scene-lint.d.ts.map +0 -1
  121. package/dist/commands/_shared/scene-lint.js +0 -207
  122. package/dist/commands/_shared/scene-lint.js.map +0 -1
  123. package/dist/commands/_shared/scene-lint.test.d.ts +0 -2
  124. package/dist/commands/_shared/scene-lint.test.d.ts.map +0 -1
  125. package/dist/commands/_shared/scene-lint.test.js +0 -208
  126. package/dist/commands/_shared/scene-lint.test.js.map +0 -1
  127. package/dist/commands/_shared/scene-project.d.ts +0 -101
  128. package/dist/commands/_shared/scene-project.d.ts.map +0 -1
  129. package/dist/commands/_shared/scene-project.js +0 -281
  130. package/dist/commands/_shared/scene-project.js.map +0 -1
  131. package/dist/commands/_shared/scene-project.test.d.ts +0 -2
  132. package/dist/commands/_shared/scene-project.test.d.ts.map +0 -1
  133. package/dist/commands/_shared/scene-project.test.js +0 -203
  134. package/dist/commands/_shared/scene-project.test.js.map +0 -1
  135. package/dist/commands/_shared/scene-render.d.ts +0 -79
  136. package/dist/commands/_shared/scene-render.d.ts.map +0 -1
  137. package/dist/commands/_shared/scene-render.js +0 -138
  138. package/dist/commands/_shared/scene-render.js.map +0 -1
  139. package/dist/commands/_shared/scene-render.test.d.ts +0 -2
  140. package/dist/commands/_shared/scene-render.test.d.ts.map +0 -1
  141. package/dist/commands/_shared/scene-render.test.js +0 -145
  142. package/dist/commands/_shared/scene-render.test.js.map +0 -1
  143. package/dist/commands/_shared/segments-to-scenes.d.ts +0 -85
  144. package/dist/commands/_shared/segments-to-scenes.d.ts.map +0 -1
  145. package/dist/commands/_shared/segments-to-scenes.js +0 -202
  146. package/dist/commands/_shared/segments-to-scenes.js.map +0 -1
  147. package/dist/commands/_shared/segments-to-scenes.test.d.ts +0 -2
  148. package/dist/commands/_shared/segments-to-scenes.test.d.ts.map +0 -1
  149. package/dist/commands/_shared/segments-to-scenes.test.js +0 -219
  150. package/dist/commands/_shared/segments-to-scenes.test.js.map +0 -1
  151. package/dist/commands/_shared/tts-resolve.d.ts +0 -75
  152. package/dist/commands/_shared/tts-resolve.d.ts.map +0 -1
  153. package/dist/commands/_shared/tts-resolve.js +0 -89
  154. package/dist/commands/_shared/tts-resolve.js.map +0 -1
  155. package/dist/commands/_shared/tts-resolve.test.d.ts +0 -6
  156. package/dist/commands/_shared/tts-resolve.test.d.ts.map +0 -1
  157. package/dist/commands/_shared/tts-resolve.test.js +0 -147
  158. package/dist/commands/_shared/tts-resolve.test.js.map +0 -1
  159. package/dist/commands/agent.d.ts +0 -21
  160. package/dist/commands/agent.d.ts.map +0 -1
  161. package/dist/commands/agent.js +0 -285
  162. package/dist/commands/agent.js.map +0 -1
  163. package/dist/commands/ai-analyze.d.ts +0 -106
  164. package/dist/commands/ai-analyze.d.ts.map +0 -1
  165. package/dist/commands/ai-analyze.js +0 -320
  166. package/dist/commands/ai-analyze.js.map +0 -1
  167. package/dist/commands/ai-animated-caption.d.ts +0 -64
  168. package/dist/commands/ai-animated-caption.d.ts.map +0 -1
  169. package/dist/commands/ai-animated-caption.js +0 -272
  170. package/dist/commands/ai-animated-caption.js.map +0 -1
  171. package/dist/commands/ai-audio.d.ts +0 -98
  172. package/dist/commands/ai-audio.d.ts.map +0 -1
  173. package/dist/commands/ai-audio.js +0 -1059
  174. package/dist/commands/ai-audio.js.map +0 -1
  175. package/dist/commands/ai-broll.d.ts +0 -15
  176. package/dist/commands/ai-broll.d.ts.map +0 -1
  177. package/dist/commands/ai-broll.js +0 -421
  178. package/dist/commands/ai-broll.js.map +0 -1
  179. package/dist/commands/ai-edit-cli.d.ts +0 -14
  180. package/dist/commands/ai-edit-cli.d.ts.map +0 -1
  181. package/dist/commands/ai-edit-cli.js +0 -585
  182. package/dist/commands/ai-edit-cli.js.map +0 -1
  183. package/dist/commands/ai-edit.d.ts +0 -398
  184. package/dist/commands/ai-edit.d.ts.map +0 -1
  185. package/dist/commands/ai-edit.js +0 -1060
  186. package/dist/commands/ai-edit.js.map +0 -1
  187. package/dist/commands/ai-fill-gaps.d.ts +0 -14
  188. package/dist/commands/ai-fill-gaps.d.ts.map +0 -1
  189. package/dist/commands/ai-fill-gaps.js +0 -447
  190. package/dist/commands/ai-fill-gaps.js.map +0 -1
  191. package/dist/commands/ai-helpers.d.ts +0 -20
  192. package/dist/commands/ai-helpers.d.ts.map +0 -1
  193. package/dist/commands/ai-helpers.js +0 -59
  194. package/dist/commands/ai-helpers.js.map +0 -1
  195. package/dist/commands/ai-highlights.d.ts +0 -127
  196. package/dist/commands/ai-highlights.d.ts.map +0 -1
  197. package/dist/commands/ai-highlights.js +0 -1053
  198. package/dist/commands/ai-highlights.js.map +0 -1
  199. package/dist/commands/ai-image.d.ts +0 -76
  200. package/dist/commands/ai-image.d.ts.map +0 -1
  201. package/dist/commands/ai-image.js +0 -858
  202. package/dist/commands/ai-image.js.map +0 -1
  203. package/dist/commands/ai-motion.d.ts +0 -50
  204. package/dist/commands/ai-motion.d.ts.map +0 -1
  205. package/dist/commands/ai-motion.js +0 -297
  206. package/dist/commands/ai-motion.js.map +0 -1
  207. package/dist/commands/ai-narrate.d.ts +0 -66
  208. package/dist/commands/ai-narrate.d.ts.map +0 -1
  209. package/dist/commands/ai-narrate.js +0 -332
  210. package/dist/commands/ai-narrate.js.map +0 -1
  211. package/dist/commands/ai-review.d.ts +0 -57
  212. package/dist/commands/ai-review.d.ts.map +0 -1
  213. package/dist/commands/ai-review.js +0 -270
  214. package/dist/commands/ai-review.js.map +0 -1
  215. package/dist/commands/ai-script-pipeline-cli.d.ts +0 -9
  216. package/dist/commands/ai-script-pipeline-cli.d.ts.map +0 -1
  217. package/dist/commands/ai-script-pipeline-cli.js +0 -502
  218. package/dist/commands/ai-script-pipeline-cli.js.map +0 -1
  219. package/dist/commands/ai-script-pipeline.d.ts +0 -305
  220. package/dist/commands/ai-script-pipeline.d.ts.map +0 -1
  221. package/dist/commands/ai-script-pipeline.js +0 -1546
  222. package/dist/commands/ai-script-pipeline.js.map +0 -1
  223. package/dist/commands/ai-suggest-edit.d.ts +0 -14
  224. package/dist/commands/ai-suggest-edit.d.ts.map +0 -1
  225. package/dist/commands/ai-suggest-edit.js +0 -215
  226. package/dist/commands/ai-suggest-edit.js.map +0 -1
  227. package/dist/commands/ai-video-fx.d.ts +0 -14
  228. package/dist/commands/ai-video-fx.d.ts.map +0 -1
  229. package/dist/commands/ai-video-fx.js +0 -396
  230. package/dist/commands/ai-video-fx.js.map +0 -1
  231. package/dist/commands/ai-video.d.ts +0 -91
  232. package/dist/commands/ai-video.d.ts.map +0 -1
  233. package/dist/commands/ai-video.js +0 -1055
  234. package/dist/commands/ai-video.js.map +0 -1
  235. package/dist/commands/ai-viral.d.ts +0 -15
  236. package/dist/commands/ai-viral.d.ts.map +0 -1
  237. package/dist/commands/ai-viral.js +0 -507
  238. package/dist/commands/ai-viral.js.map +0 -1
  239. package/dist/commands/ai-visual-fx.d.ts +0 -14
  240. package/dist/commands/ai-visual-fx.d.ts.map +0 -1
  241. package/dist/commands/ai-visual-fx.js +0 -521
  242. package/dist/commands/ai-visual-fx.js.map +0 -1
  243. package/dist/commands/ai.d.ts +0 -38
  244. package/dist/commands/ai.d.ts.map +0 -1
  245. package/dist/commands/ai.js +0 -225
  246. package/dist/commands/ai.js.map +0 -1
  247. package/dist/commands/ai.test.d.ts +0 -2
  248. package/dist/commands/ai.test.d.ts.map +0 -1
  249. package/dist/commands/ai.test.js +0 -557
  250. package/dist/commands/ai.test.js.map +0 -1
  251. package/dist/commands/analyze.d.ts +0 -16
  252. package/dist/commands/analyze.d.ts.map +0 -1
  253. package/dist/commands/analyze.js +0 -247
  254. package/dist/commands/analyze.js.map +0 -1
  255. package/dist/commands/audio.d.ts +0 -18
  256. package/dist/commands/audio.d.ts.map +0 -1
  257. package/dist/commands/audio.js +0 -539
  258. package/dist/commands/audio.js.map +0 -1
  259. package/dist/commands/batch.d.ts +0 -3
  260. package/dist/commands/batch.d.ts.map +0 -1
  261. package/dist/commands/batch.js +0 -419
  262. package/dist/commands/batch.js.map +0 -1
  263. package/dist/commands/batch.test.d.ts +0 -2
  264. package/dist/commands/batch.test.d.ts.map +0 -1
  265. package/dist/commands/batch.test.js +0 -203
  266. package/dist/commands/batch.test.js.map +0 -1
  267. package/dist/commands/context.d.ts +0 -7
  268. package/dist/commands/context.d.ts.map +0 -1
  269. package/dist/commands/context.js +0 -66
  270. package/dist/commands/context.js.map +0 -1
  271. package/dist/commands/demo.d.ts +0 -7
  272. package/dist/commands/demo.d.ts.map +0 -1
  273. package/dist/commands/demo.js +0 -192
  274. package/dist/commands/demo.js.map +0 -1
  275. package/dist/commands/detect.d.ts +0 -56
  276. package/dist/commands/detect.d.ts.map +0 -1
  277. package/dist/commands/detect.js +0 -464
  278. package/dist/commands/detect.js.map +0 -1
  279. package/dist/commands/doctor.d.ts +0 -6
  280. package/dist/commands/doctor.d.ts.map +0 -1
  281. package/dist/commands/doctor.js +0 -322
  282. package/dist/commands/doctor.js.map +0 -1
  283. package/dist/commands/edit-cmd.d.ts +0 -112
  284. package/dist/commands/edit-cmd.d.ts.map +0 -1
  285. package/dist/commands/edit-cmd.js +0 -1041
  286. package/dist/commands/edit-cmd.js.map +0 -1
  287. package/dist/commands/export.d.ts +0 -61
  288. package/dist/commands/export.d.ts.map +0 -1
  289. package/dist/commands/export.js +0 -980
  290. package/dist/commands/export.js.map +0 -1
  291. package/dist/commands/export.test.d.ts +0 -2
  292. package/dist/commands/export.test.d.ts.map +0 -1
  293. package/dist/commands/export.test.js +0 -107
  294. package/dist/commands/export.test.js.map +0 -1
  295. package/dist/commands/generate.d.ts +0 -84
  296. package/dist/commands/generate.d.ts.map +0 -1
  297. package/dist/commands/generate.js +0 -2030
  298. package/dist/commands/generate.js.map +0 -1
  299. package/dist/commands/media.d.ts +0 -3
  300. package/dist/commands/media.d.ts.map +0 -1
  301. package/dist/commands/media.js +0 -163
  302. package/dist/commands/media.js.map +0 -1
  303. package/dist/commands/output.d.ts +0 -51
  304. package/dist/commands/output.d.ts.map +0 -1
  305. package/dist/commands/output.js +0 -219
  306. package/dist/commands/output.js.map +0 -1
  307. package/dist/commands/output.test.d.ts +0 -2
  308. package/dist/commands/output.test.d.ts.map +0 -1
  309. package/dist/commands/output.test.js +0 -151
  310. package/dist/commands/output.test.js.map +0 -1
  311. package/dist/commands/pipeline.d.ts +0 -19
  312. package/dist/commands/pipeline.d.ts.map +0 -1
  313. package/dist/commands/pipeline.js +0 -345
  314. package/dist/commands/pipeline.js.map +0 -1
  315. package/dist/commands/project.d.ts +0 -3
  316. package/dist/commands/project.d.ts.map +0 -1
  317. package/dist/commands/project.js +0 -181
  318. package/dist/commands/project.js.map +0 -1
  319. package/dist/commands/project.test.d.ts +0 -2
  320. package/dist/commands/project.test.d.ts.map +0 -1
  321. package/dist/commands/project.test.js +0 -105
  322. package/dist/commands/project.test.js.map +0 -1
  323. package/dist/commands/run.d.ts +0 -15
  324. package/dist/commands/run.d.ts.map +0 -1
  325. package/dist/commands/run.js +0 -204
  326. package/dist/commands/run.js.map +0 -1
  327. package/dist/commands/sanitize.d.ts +0 -21
  328. package/dist/commands/sanitize.d.ts.map +0 -1
  329. package/dist/commands/sanitize.js +0 -56
  330. package/dist/commands/sanitize.js.map +0 -1
  331. package/dist/commands/scene.d.ts +0 -86
  332. package/dist/commands/scene.d.ts.map +0 -1
  333. package/dist/commands/scene.js +0 -719
  334. package/dist/commands/scene.js.map +0 -1
  335. package/dist/commands/scene.test.d.ts +0 -2
  336. package/dist/commands/scene.test.d.ts.map +0 -1
  337. package/dist/commands/scene.test.js +0 -219
  338. package/dist/commands/scene.test.js.map +0 -1
  339. package/dist/commands/schema.d.ts +0 -13
  340. package/dist/commands/schema.d.ts.map +0 -1
  341. package/dist/commands/schema.js +0 -218
  342. package/dist/commands/schema.js.map +0 -1
  343. package/dist/commands/setup.d.ts +0 -6
  344. package/dist/commands/setup.d.ts.map +0 -1
  345. package/dist/commands/setup.js +0 -461
  346. package/dist/commands/setup.js.map +0 -1
  347. package/dist/commands/timeline.d.ts +0 -3
  348. package/dist/commands/timeline.d.ts.map +0 -1
  349. package/dist/commands/timeline.js +0 -609
  350. package/dist/commands/timeline.js.map +0 -1
  351. package/dist/commands/timeline.test.d.ts +0 -2
  352. package/dist/commands/timeline.test.d.ts.map +0 -1
  353. package/dist/commands/timeline.test.js +0 -334
  354. package/dist/commands/timeline.test.js.map +0 -1
  355. package/dist/commands/validate.d.ts +0 -34
  356. package/dist/commands/validate.d.ts.map +0 -1
  357. package/dist/commands/validate.js +0 -70
  358. package/dist/commands/validate.js.map +0 -1
  359. package/dist/config/config.test.d.ts +0 -2
  360. package/dist/config/config.test.d.ts.map +0 -1
  361. package/dist/config/config.test.js +0 -164
  362. package/dist/config/config.test.js.map +0 -1
  363. package/dist/config/index.d.ts +0 -35
  364. package/dist/config/index.d.ts.map +0 -1
  365. package/dist/config/index.js +0 -101
  366. package/dist/config/index.js.map +0 -1
  367. package/dist/config/schema.d.ts +0 -52
  368. package/dist/config/schema.d.ts.map +0 -1
  369. package/dist/config/schema.js +0 -44
  370. package/dist/config/schema.js.map +0 -1
  371. package/dist/engine/index.d.ts +0 -3
  372. package/dist/engine/index.d.ts.map +0 -1
  373. package/dist/engine/index.js +0 -2
  374. package/dist/engine/index.js.map +0 -1
  375. package/dist/engine/project.d.ts +0 -84
  376. package/dist/engine/project.d.ts.map +0 -1
  377. package/dist/engine/project.js +0 -355
  378. package/dist/engine/project.js.map +0 -1
  379. package/dist/engine/project.test.d.ts +0 -2
  380. package/dist/engine/project.test.d.ts.map +0 -1
  381. package/dist/engine/project.test.js +0 -599
  382. package/dist/engine/project.test.js.map +0 -1
  383. package/dist/index.d.ts +0 -7
  384. package/dist/index.d.ts.map +0 -1
  385. package/dist/index.js.map +0 -1
  386. package/dist/pipeline/executor.d.ts +0 -19
  387. package/dist/pipeline/executor.d.ts.map +0 -1
  388. package/dist/pipeline/executor.js +0 -397
  389. package/dist/pipeline/executor.js.map +0 -1
  390. package/dist/pipeline/index.d.ts +0 -4
  391. package/dist/pipeline/index.d.ts.map +0 -1
  392. package/dist/pipeline/index.js +0 -2
  393. package/dist/pipeline/index.js.map +0 -1
  394. package/dist/pipeline/renderers/__tests__/html-template.test.d.ts +0 -2
  395. package/dist/pipeline/renderers/__tests__/html-template.test.d.ts.map +0 -1
  396. package/dist/pipeline/renderers/__tests__/html-template.test.js +0 -170
  397. package/dist/pipeline/renderers/__tests__/html-template.test.js.map +0 -1
  398. package/dist/pipeline/renderers/__tests__/integration.test.d.ts +0 -2
  399. package/dist/pipeline/renderers/__tests__/integration.test.d.ts.map +0 -1
  400. package/dist/pipeline/renderers/__tests__/integration.test.js +0 -175
  401. package/dist/pipeline/renderers/__tests__/integration.test.js.map +0 -1
  402. package/dist/pipeline/renderers/chrome.d.ts +0 -26
  403. package/dist/pipeline/renderers/chrome.d.ts.map +0 -1
  404. package/dist/pipeline/renderers/chrome.js +0 -48
  405. package/dist/pipeline/renderers/chrome.js.map +0 -1
  406. package/dist/pipeline/renderers/html-clips.d.ts +0 -20
  407. package/dist/pipeline/renderers/html-clips.d.ts.map +0 -1
  408. package/dist/pipeline/renderers/html-clips.js +0 -50
  409. package/dist/pipeline/renderers/html-clips.js.map +0 -1
  410. package/dist/pipeline/renderers/html-runtime.d.ts +0 -7
  411. package/dist/pipeline/renderers/html-runtime.d.ts.map +0 -1
  412. package/dist/pipeline/renderers/html-runtime.js +0 -80
  413. package/dist/pipeline/renderers/html-runtime.js.map +0 -1
  414. package/dist/pipeline/renderers/html-template.d.ts +0 -3
  415. package/dist/pipeline/renderers/html-template.d.ts.map +0 -1
  416. package/dist/pipeline/renderers/html-template.js +0 -36
  417. package/dist/pipeline/renderers/html-template.js.map +0 -1
  418. package/dist/pipeline/renderers/hyperframes.d.ts +0 -8
  419. package/dist/pipeline/renderers/hyperframes.d.ts.map +0 -1
  420. package/dist/pipeline/renderers/hyperframes.js +0 -63
  421. package/dist/pipeline/renderers/hyperframes.js.map +0 -1
  422. package/dist/pipeline/renderers/project-builder.d.ts +0 -8
  423. package/dist/pipeline/renderers/project-builder.d.ts.map +0 -1
  424. package/dist/pipeline/renderers/project-builder.js +0 -65
  425. package/dist/pipeline/renderers/project-builder.js.map +0 -1
  426. package/dist/pipeline/renderers/types.d.ts +0 -41
  427. package/dist/pipeline/renderers/types.d.ts.map +0 -1
  428. package/dist/pipeline/renderers/types.js +0 -11
  429. package/dist/pipeline/renderers/types.js.map +0 -1
  430. package/dist/pipeline/resolver.d.ts +0 -20
  431. package/dist/pipeline/resolver.d.ts.map +0 -1
  432. package/dist/pipeline/resolver.js +0 -74
  433. package/dist/pipeline/resolver.js.map +0 -1
  434. package/dist/pipeline/types.d.ts +0 -82
  435. package/dist/pipeline/types.d.ts.map +0 -1
  436. package/dist/pipeline/types.js +0 -8
  437. package/dist/pipeline/types.js.map +0 -1
  438. package/dist/utils/api-key.d.ts +0 -33
  439. package/dist/utils/api-key.d.ts.map +0 -1
  440. package/dist/utils/api-key.js +0 -228
  441. package/dist/utils/api-key.js.map +0 -1
  442. package/dist/utils/api-key.test.d.ts +0 -2
  443. package/dist/utils/api-key.test.d.ts.map +0 -1
  444. package/dist/utils/api-key.test.js +0 -35
  445. package/dist/utils/api-key.test.js.map +0 -1
  446. package/dist/utils/audio.d.ts +0 -23
  447. package/dist/utils/audio.d.ts.map +0 -1
  448. package/dist/utils/audio.js +0 -79
  449. package/dist/utils/audio.js.map +0 -1
  450. package/dist/utils/exec-safe.d.ts +0 -22
  451. package/dist/utils/exec-safe.d.ts.map +0 -1
  452. package/dist/utils/exec-safe.js +0 -62
  453. package/dist/utils/exec-safe.js.map +0 -1
  454. package/dist/utils/first-run.d.ts +0 -17
  455. package/dist/utils/first-run.d.ts.map +0 -1
  456. package/dist/utils/first-run.js +0 -73
  457. package/dist/utils/first-run.js.map +0 -1
  458. package/dist/utils/input-validation.d.ts +0 -27
  459. package/dist/utils/input-validation.d.ts.map +0 -1
  460. package/dist/utils/input-validation.js +0 -67
  461. package/dist/utils/input-validation.js.map +0 -1
  462. package/dist/utils/provider-resolver.d.ts +0 -19
  463. package/dist/utils/provider-resolver.d.ts.map +0 -1
  464. package/dist/utils/provider-resolver.js +0 -75
  465. package/dist/utils/provider-resolver.js.map +0 -1
  466. package/dist/utils/remotion.d.ts +0 -231
  467. package/dist/utils/remotion.d.ts.map +0 -1
  468. package/dist/utils/remotion.js +0 -879
  469. package/dist/utils/remotion.js.map +0 -1
  470. package/dist/utils/subtitle.d.ts +0 -65
  471. package/dist/utils/subtitle.d.ts.map +0 -1
  472. package/dist/utils/subtitle.js +0 -135
  473. package/dist/utils/subtitle.js.map +0 -1
  474. package/dist/utils/subtitle.test.d.ts +0 -2
  475. package/dist/utils/subtitle.test.d.ts.map +0 -1
  476. package/dist/utils/subtitle.test.js +0 -175
  477. package/dist/utils/subtitle.test.js.map +0 -1
  478. package/dist/utils/tty.d.ts +0 -45
  479. package/dist/utils/tty.d.ts.map +0 -1
  480. package/dist/utils/tty.js +0 -231
  481. 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