@vibeframe/cli 0.27.0

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 (420) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/.turbo/turbo-lint.log +21 -0
  3. package/.turbo/turbo-test.log +689 -0
  4. package/dist/agent/adapters/claude.d.ts +15 -0
  5. package/dist/agent/adapters/claude.d.ts.map +1 -0
  6. package/dist/agent/adapters/claude.js +119 -0
  7. package/dist/agent/adapters/claude.js.map +1 -0
  8. package/dist/agent/adapters/gemini.d.ts +15 -0
  9. package/dist/agent/adapters/gemini.d.ts.map +1 -0
  10. package/dist/agent/adapters/gemini.js +132 -0
  11. package/dist/agent/adapters/gemini.js.map +1 -0
  12. package/dist/agent/adapters/index.d.ts +27 -0
  13. package/dist/agent/adapters/index.d.ts.map +1 -0
  14. package/dist/agent/adapters/index.js +38 -0
  15. package/dist/agent/adapters/index.js.map +1 -0
  16. package/dist/agent/adapters/ollama.d.ts +20 -0
  17. package/dist/agent/adapters/ollama.d.ts.map +1 -0
  18. package/dist/agent/adapters/ollama.js +186 -0
  19. package/dist/agent/adapters/ollama.js.map +1 -0
  20. package/dist/agent/adapters/openai.d.ts +15 -0
  21. package/dist/agent/adapters/openai.d.ts.map +1 -0
  22. package/dist/agent/adapters/openai.js +92 -0
  23. package/dist/agent/adapters/openai.js.map +1 -0
  24. package/dist/agent/adapters/xai.d.ts +15 -0
  25. package/dist/agent/adapters/xai.d.ts.map +1 -0
  26. package/dist/agent/adapters/xai.js +95 -0
  27. package/dist/agent/adapters/xai.js.map +1 -0
  28. package/dist/agent/index.d.ts +69 -0
  29. package/dist/agent/index.d.ts.map +1 -0
  30. package/dist/agent/index.js +180 -0
  31. package/dist/agent/index.js.map +1 -0
  32. package/dist/agent/memory/index.d.ts +70 -0
  33. package/dist/agent/memory/index.d.ts.map +1 -0
  34. package/dist/agent/memory/index.js +132 -0
  35. package/dist/agent/memory/index.js.map +1 -0
  36. package/dist/agent/prompts/system.d.ts +6 -0
  37. package/dist/agent/prompts/system.d.ts.map +1 -0
  38. package/dist/agent/prompts/system.js +103 -0
  39. package/dist/agent/prompts/system.js.map +1 -0
  40. package/dist/agent/tools/ai-editing.d.ts +15 -0
  41. package/dist/agent/tools/ai-editing.d.ts.map +1 -0
  42. package/dist/agent/tools/ai-editing.js +763 -0
  43. package/dist/agent/tools/ai-editing.js.map +1 -0
  44. package/dist/agent/tools/ai-generation.d.ts +13 -0
  45. package/dist/agent/tools/ai-generation.d.ts.map +1 -0
  46. package/dist/agent/tools/ai-generation.js +973 -0
  47. package/dist/agent/tools/ai-generation.js.map +1 -0
  48. package/dist/agent/tools/ai-pipeline.d.ts +14 -0
  49. package/dist/agent/tools/ai-pipeline.d.ts.map +1 -0
  50. package/dist/agent/tools/ai-pipeline.js +961 -0
  51. package/dist/agent/tools/ai-pipeline.js.map +1 -0
  52. package/dist/agent/tools/ai.d.ts +13 -0
  53. package/dist/agent/tools/ai.d.ts.map +1 -0
  54. package/dist/agent/tools/ai.js +19 -0
  55. package/dist/agent/tools/ai.js.map +1 -0
  56. package/dist/agent/tools/batch.d.ts +6 -0
  57. package/dist/agent/tools/batch.d.ts.map +1 -0
  58. package/dist/agent/tools/batch.js +383 -0
  59. package/dist/agent/tools/batch.js.map +1 -0
  60. package/dist/agent/tools/e2e.test.d.ts +26 -0
  61. package/dist/agent/tools/e2e.test.d.ts.map +1 -0
  62. package/dist/agent/tools/e2e.test.js +397 -0
  63. package/dist/agent/tools/e2e.test.js.map +1 -0
  64. package/dist/agent/tools/export.d.ts +6 -0
  65. package/dist/agent/tools/export.d.ts.map +1 -0
  66. package/dist/agent/tools/export.js +171 -0
  67. package/dist/agent/tools/export.js.map +1 -0
  68. package/dist/agent/tools/filesystem.d.ts +6 -0
  69. package/dist/agent/tools/filesystem.d.ts.map +1 -0
  70. package/dist/agent/tools/filesystem.js +212 -0
  71. package/dist/agent/tools/filesystem.js.map +1 -0
  72. package/dist/agent/tools/index.d.ts +65 -0
  73. package/dist/agent/tools/index.d.ts.map +1 -0
  74. package/dist/agent/tools/index.js +120 -0
  75. package/dist/agent/tools/index.js.map +1 -0
  76. package/dist/agent/tools/integration.test.d.ts +11 -0
  77. package/dist/agent/tools/integration.test.d.ts.map +1 -0
  78. package/dist/agent/tools/integration.test.js +659 -0
  79. package/dist/agent/tools/integration.test.js.map +1 -0
  80. package/dist/agent/tools/media.d.ts +6 -0
  81. package/dist/agent/tools/media.d.ts.map +1 -0
  82. package/dist/agent/tools/media.js +616 -0
  83. package/dist/agent/tools/media.js.map +1 -0
  84. package/dist/agent/tools/project.d.ts +6 -0
  85. package/dist/agent/tools/project.d.ts.map +1 -0
  86. package/dist/agent/tools/project.js +284 -0
  87. package/dist/agent/tools/project.js.map +1 -0
  88. package/dist/agent/tools/timeline.d.ts +6 -0
  89. package/dist/agent/tools/timeline.d.ts.map +1 -0
  90. package/dist/agent/tools/timeline.js +873 -0
  91. package/dist/agent/tools/timeline.js.map +1 -0
  92. package/dist/agent/types.d.ts +59 -0
  93. package/dist/agent/types.d.ts.map +1 -0
  94. package/dist/agent/types.js +5 -0
  95. package/dist/agent/types.js.map +1 -0
  96. package/dist/commands/agent.d.ts +21 -0
  97. package/dist/commands/agent.d.ts.map +1 -0
  98. package/dist/commands/agent.js +290 -0
  99. package/dist/commands/agent.js.map +1 -0
  100. package/dist/commands/ai-analyze.d.ts +106 -0
  101. package/dist/commands/ai-analyze.d.ts.map +1 -0
  102. package/dist/commands/ai-analyze.js +327 -0
  103. package/dist/commands/ai-analyze.js.map +1 -0
  104. package/dist/commands/ai-animated-caption.d.ts +64 -0
  105. package/dist/commands/ai-animated-caption.d.ts.map +1 -0
  106. package/dist/commands/ai-animated-caption.js +272 -0
  107. package/dist/commands/ai-animated-caption.js.map +1 -0
  108. package/dist/commands/ai-audio.d.ts +20 -0
  109. package/dist/commands/ai-audio.d.ts.map +1 -0
  110. package/dist/commands/ai-audio.js +808 -0
  111. package/dist/commands/ai-audio.js.map +1 -0
  112. package/dist/commands/ai-broll.d.ts +15 -0
  113. package/dist/commands/ai-broll.d.ts.map +1 -0
  114. package/dist/commands/ai-broll.js +406 -0
  115. package/dist/commands/ai-broll.js.map +1 -0
  116. package/dist/commands/ai-edit-cli.d.ts +14 -0
  117. package/dist/commands/ai-edit-cli.d.ts.map +1 -0
  118. package/dist/commands/ai-edit-cli.js +579 -0
  119. package/dist/commands/ai-edit-cli.js.map +1 -0
  120. package/dist/commands/ai-edit.d.ts +398 -0
  121. package/dist/commands/ai-edit.d.ts.map +1 -0
  122. package/dist/commands/ai-edit.js +1019 -0
  123. package/dist/commands/ai-edit.js.map +1 -0
  124. package/dist/commands/ai-fill-gaps.d.ts +14 -0
  125. package/dist/commands/ai-fill-gaps.d.ts.map +1 -0
  126. package/dist/commands/ai-fill-gaps.js +451 -0
  127. package/dist/commands/ai-fill-gaps.js.map +1 -0
  128. package/dist/commands/ai-helpers.d.ts +20 -0
  129. package/dist/commands/ai-helpers.d.ts.map +1 -0
  130. package/dist/commands/ai-helpers.js +59 -0
  131. package/dist/commands/ai-helpers.js.map +1 -0
  132. package/dist/commands/ai-highlights.d.ts +127 -0
  133. package/dist/commands/ai-highlights.d.ts.map +1 -0
  134. package/dist/commands/ai-highlights.js +1026 -0
  135. package/dist/commands/ai-highlights.js.map +1 -0
  136. package/dist/commands/ai-image.d.ts +34 -0
  137. package/dist/commands/ai-image.d.ts.map +1 -0
  138. package/dist/commands/ai-image.js +653 -0
  139. package/dist/commands/ai-image.js.map +1 -0
  140. package/dist/commands/ai-motion.d.ts +50 -0
  141. package/dist/commands/ai-motion.d.ts.map +1 -0
  142. package/dist/commands/ai-motion.js +271 -0
  143. package/dist/commands/ai-motion.js.map +1 -0
  144. package/dist/commands/ai-narrate.d.ts +66 -0
  145. package/dist/commands/ai-narrate.d.ts.map +1 -0
  146. package/dist/commands/ai-narrate.js +329 -0
  147. package/dist/commands/ai-narrate.js.map +1 -0
  148. package/dist/commands/ai-review.d.ts +57 -0
  149. package/dist/commands/ai-review.d.ts.map +1 -0
  150. package/dist/commands/ai-review.js +251 -0
  151. package/dist/commands/ai-review.js.map +1 -0
  152. package/dist/commands/ai-script-pipeline-cli.d.ts +9 -0
  153. package/dist/commands/ai-script-pipeline-cli.d.ts.map +1 -0
  154. package/dist/commands/ai-script-pipeline-cli.js +1494 -0
  155. package/dist/commands/ai-script-pipeline-cli.js.map +1 -0
  156. package/dist/commands/ai-script-pipeline.d.ts +259 -0
  157. package/dist/commands/ai-script-pipeline.d.ts.map +1 -0
  158. package/dist/commands/ai-script-pipeline.js +1027 -0
  159. package/dist/commands/ai-script-pipeline.js.map +1 -0
  160. package/dist/commands/ai-suggest-edit.d.ts +14 -0
  161. package/dist/commands/ai-suggest-edit.d.ts.map +1 -0
  162. package/dist/commands/ai-suggest-edit.js +220 -0
  163. package/dist/commands/ai-suggest-edit.js.map +1 -0
  164. package/dist/commands/ai-video-fx.d.ts +14 -0
  165. package/dist/commands/ai-video-fx.d.ts.map +1 -0
  166. package/dist/commands/ai-video-fx.js +395 -0
  167. package/dist/commands/ai-video-fx.js.map +1 -0
  168. package/dist/commands/ai-video.d.ts +15 -0
  169. package/dist/commands/ai-video.d.ts.map +1 -0
  170. package/dist/commands/ai-video.js +785 -0
  171. package/dist/commands/ai-video.js.map +1 -0
  172. package/dist/commands/ai-viral.d.ts +15 -0
  173. package/dist/commands/ai-viral.d.ts.map +1 -0
  174. package/dist/commands/ai-viral.js +519 -0
  175. package/dist/commands/ai-viral.js.map +1 -0
  176. package/dist/commands/ai-visual-fx.d.ts +14 -0
  177. package/dist/commands/ai-visual-fx.d.ts.map +1 -0
  178. package/dist/commands/ai-visual-fx.js +505 -0
  179. package/dist/commands/ai-visual-fx.js.map +1 -0
  180. package/dist/commands/ai.d.ts +38 -0
  181. package/dist/commands/ai.d.ts.map +1 -0
  182. package/dist/commands/ai.js +225 -0
  183. package/dist/commands/ai.js.map +1 -0
  184. package/dist/commands/ai.test.d.ts +2 -0
  185. package/dist/commands/ai.test.d.ts.map +1 -0
  186. package/dist/commands/ai.test.js +554 -0
  187. package/dist/commands/ai.test.js.map +1 -0
  188. package/dist/commands/analyze.d.ts +16 -0
  189. package/dist/commands/analyze.d.ts.map +1 -0
  190. package/dist/commands/analyze.js +247 -0
  191. package/dist/commands/analyze.js.map +1 -0
  192. package/dist/commands/audio.d.ts +18 -0
  193. package/dist/commands/audio.d.ts.map +1 -0
  194. package/dist/commands/audio.js +539 -0
  195. package/dist/commands/audio.js.map +1 -0
  196. package/dist/commands/batch.d.ts +3 -0
  197. package/dist/commands/batch.d.ts.map +1 -0
  198. package/dist/commands/batch.js +366 -0
  199. package/dist/commands/batch.js.map +1 -0
  200. package/dist/commands/batch.test.d.ts +2 -0
  201. package/dist/commands/batch.test.d.ts.map +1 -0
  202. package/dist/commands/batch.test.js +203 -0
  203. package/dist/commands/batch.test.js.map +1 -0
  204. package/dist/commands/detect.d.ts +3 -0
  205. package/dist/commands/detect.d.ts.map +1 -0
  206. package/dist/commands/detect.js +273 -0
  207. package/dist/commands/detect.js.map +1 -0
  208. package/dist/commands/doctor.d.ts +6 -0
  209. package/dist/commands/doctor.d.ts.map +1 -0
  210. package/dist/commands/doctor.js +191 -0
  211. package/dist/commands/doctor.js.map +1 -0
  212. package/dist/commands/edit-cmd.d.ts +26 -0
  213. package/dist/commands/edit-cmd.d.ts.map +1 -0
  214. package/dist/commands/edit-cmd.js +870 -0
  215. package/dist/commands/edit-cmd.js.map +1 -0
  216. package/dist/commands/export.d.ts +39 -0
  217. package/dist/commands/export.d.ts.map +1 -0
  218. package/dist/commands/export.js +730 -0
  219. package/dist/commands/export.js.map +1 -0
  220. package/dist/commands/generate.d.ts +25 -0
  221. package/dist/commands/generate.d.ts.map +1 -0
  222. package/dist/commands/generate.js +1885 -0
  223. package/dist/commands/generate.js.map +1 -0
  224. package/dist/commands/media.d.ts +3 -0
  225. package/dist/commands/media.d.ts.map +1 -0
  226. package/dist/commands/media.js +165 -0
  227. package/dist/commands/media.js.map +1 -0
  228. package/dist/commands/output.d.ts +45 -0
  229. package/dist/commands/output.d.ts.map +1 -0
  230. package/dist/commands/output.js +122 -0
  231. package/dist/commands/output.js.map +1 -0
  232. package/dist/commands/pipeline.d.ts +19 -0
  233. package/dist/commands/pipeline.d.ts.map +1 -0
  234. package/dist/commands/pipeline.js +345 -0
  235. package/dist/commands/pipeline.js.map +1 -0
  236. package/dist/commands/project.d.ts +3 -0
  237. package/dist/commands/project.d.ts.map +1 -0
  238. package/dist/commands/project.js +139 -0
  239. package/dist/commands/project.js.map +1 -0
  240. package/dist/commands/project.test.d.ts +2 -0
  241. package/dist/commands/project.test.d.ts.map +1 -0
  242. package/dist/commands/project.test.js +105 -0
  243. package/dist/commands/project.test.js.map +1 -0
  244. package/dist/commands/sanitize.d.ts +21 -0
  245. package/dist/commands/sanitize.d.ts.map +1 -0
  246. package/dist/commands/sanitize.js +56 -0
  247. package/dist/commands/sanitize.js.map +1 -0
  248. package/dist/commands/schema.d.ts +11 -0
  249. package/dist/commands/schema.d.ts.map +1 -0
  250. package/dist/commands/schema.js +101 -0
  251. package/dist/commands/schema.js.map +1 -0
  252. package/dist/commands/setup.d.ts +6 -0
  253. package/dist/commands/setup.d.ts.map +1 -0
  254. package/dist/commands/setup.js +440 -0
  255. package/dist/commands/setup.js.map +1 -0
  256. package/dist/commands/timeline.d.ts +3 -0
  257. package/dist/commands/timeline.d.ts.map +1 -0
  258. package/dist/commands/timeline.js +469 -0
  259. package/dist/commands/timeline.js.map +1 -0
  260. package/dist/commands/timeline.test.d.ts +2 -0
  261. package/dist/commands/timeline.test.d.ts.map +1 -0
  262. package/dist/commands/timeline.test.js +320 -0
  263. package/dist/commands/timeline.test.js.map +1 -0
  264. package/dist/commands/validate.d.ts +32 -0
  265. package/dist/commands/validate.d.ts.map +1 -0
  266. package/dist/commands/validate.js +63 -0
  267. package/dist/commands/validate.js.map +1 -0
  268. package/dist/config/config.test.d.ts +2 -0
  269. package/dist/config/config.test.d.ts.map +1 -0
  270. package/dist/config/config.test.js +164 -0
  271. package/dist/config/config.test.js.map +1 -0
  272. package/dist/config/index.d.ts +35 -0
  273. package/dist/config/index.d.ts.map +1 -0
  274. package/dist/config/index.js +101 -0
  275. package/dist/config/index.js.map +1 -0
  276. package/dist/config/schema.d.ts +43 -0
  277. package/dist/config/schema.d.ts.map +1 -0
  278. package/dist/config/schema.js +42 -0
  279. package/dist/config/schema.js.map +1 -0
  280. package/dist/engine/index.d.ts +3 -0
  281. package/dist/engine/index.d.ts.map +1 -0
  282. package/dist/engine/index.js +2 -0
  283. package/dist/engine/index.js.map +1 -0
  284. package/dist/engine/project.d.ts +84 -0
  285. package/dist/engine/project.d.ts.map +1 -0
  286. package/dist/engine/project.js +355 -0
  287. package/dist/engine/project.js.map +1 -0
  288. package/dist/engine/project.test.d.ts +2 -0
  289. package/dist/engine/project.test.d.ts.map +1 -0
  290. package/dist/engine/project.test.js +599 -0
  291. package/dist/engine/project.test.js.map +1 -0
  292. package/dist/index.d.ts +7 -0
  293. package/dist/index.d.ts.map +1 -0
  294. package/dist/index.js +131 -0
  295. package/dist/index.js.map +1 -0
  296. package/dist/utils/api-key.d.ts +36 -0
  297. package/dist/utils/api-key.d.ts.map +1 -0
  298. package/dist/utils/api-key.js +211 -0
  299. package/dist/utils/api-key.js.map +1 -0
  300. package/dist/utils/api-key.test.d.ts +2 -0
  301. package/dist/utils/api-key.test.d.ts.map +1 -0
  302. package/dist/utils/api-key.test.js +35 -0
  303. package/dist/utils/api-key.test.js.map +1 -0
  304. package/dist/utils/audio.d.ts +23 -0
  305. package/dist/utils/audio.d.ts.map +1 -0
  306. package/dist/utils/audio.js +79 -0
  307. package/dist/utils/audio.js.map +1 -0
  308. package/dist/utils/exec-safe.d.ts +22 -0
  309. package/dist/utils/exec-safe.d.ts.map +1 -0
  310. package/dist/utils/exec-safe.js +62 -0
  311. package/dist/utils/exec-safe.js.map +1 -0
  312. package/dist/utils/first-run.d.ts +13 -0
  313. package/dist/utils/first-run.d.ts.map +1 -0
  314. package/dist/utils/first-run.js +48 -0
  315. package/dist/utils/first-run.js.map +1 -0
  316. package/dist/utils/provider-resolver.d.ts +15 -0
  317. package/dist/utils/provider-resolver.d.ts.map +1 -0
  318. package/dist/utils/provider-resolver.js +42 -0
  319. package/dist/utils/provider-resolver.js.map +1 -0
  320. package/dist/utils/remotion.d.ts +210 -0
  321. package/dist/utils/remotion.d.ts.map +1 -0
  322. package/dist/utils/remotion.js +731 -0
  323. package/dist/utils/remotion.js.map +1 -0
  324. package/dist/utils/subtitle.d.ts +65 -0
  325. package/dist/utils/subtitle.d.ts.map +1 -0
  326. package/dist/utils/subtitle.js +135 -0
  327. package/dist/utils/subtitle.js.map +1 -0
  328. package/dist/utils/subtitle.test.d.ts +2 -0
  329. package/dist/utils/subtitle.test.d.ts.map +1 -0
  330. package/dist/utils/subtitle.test.js +175 -0
  331. package/dist/utils/subtitle.test.js.map +1 -0
  332. package/dist/utils/tty.d.ts +45 -0
  333. package/dist/utils/tty.d.ts.map +1 -0
  334. package/dist/utils/tty.js +172 -0
  335. package/dist/utils/tty.js.map +1 -0
  336. package/package.json +102 -0
  337. package/src/agent/adapters/claude.ts +143 -0
  338. package/src/agent/adapters/gemini.ts +159 -0
  339. package/src/agent/adapters/index.ts +61 -0
  340. package/src/agent/adapters/ollama.ts +231 -0
  341. package/src/agent/adapters/openai.ts +116 -0
  342. package/src/agent/adapters/xai.ts +119 -0
  343. package/src/agent/index.ts +251 -0
  344. package/src/agent/memory/index.ts +151 -0
  345. package/src/agent/prompts/system.ts +106 -0
  346. package/src/agent/tools/ai-editing.ts +845 -0
  347. package/src/agent/tools/ai-generation.ts +1073 -0
  348. package/src/agent/tools/ai-pipeline.ts +1055 -0
  349. package/src/agent/tools/ai.ts +21 -0
  350. package/src/agent/tools/batch.ts +429 -0
  351. package/src/agent/tools/e2e.test.ts +545 -0
  352. package/src/agent/tools/export.ts +184 -0
  353. package/src/agent/tools/filesystem.ts +237 -0
  354. package/src/agent/tools/index.ts +150 -0
  355. package/src/agent/tools/integration.test.ts +775 -0
  356. package/src/agent/tools/media.ts +697 -0
  357. package/src/agent/tools/project.ts +313 -0
  358. package/src/agent/tools/timeline.ts +951 -0
  359. package/src/agent/types.ts +68 -0
  360. package/src/commands/agent.ts +340 -0
  361. package/src/commands/ai-analyze.ts +429 -0
  362. package/src/commands/ai-animated-caption.ts +390 -0
  363. package/src/commands/ai-audio.ts +941 -0
  364. package/src/commands/ai-broll.ts +490 -0
  365. package/src/commands/ai-edit-cli.ts +658 -0
  366. package/src/commands/ai-edit.ts +1542 -0
  367. package/src/commands/ai-fill-gaps.ts +566 -0
  368. package/src/commands/ai-helpers.ts +65 -0
  369. package/src/commands/ai-highlights.ts +1303 -0
  370. package/src/commands/ai-image.ts +761 -0
  371. package/src/commands/ai-motion.ts +347 -0
  372. package/src/commands/ai-narrate.ts +451 -0
  373. package/src/commands/ai-review.ts +309 -0
  374. package/src/commands/ai-script-pipeline-cli.ts +1710 -0
  375. package/src/commands/ai-script-pipeline.ts +1365 -0
  376. package/src/commands/ai-suggest-edit.ts +264 -0
  377. package/src/commands/ai-video-fx.ts +445 -0
  378. package/src/commands/ai-video.ts +915 -0
  379. package/src/commands/ai-viral.ts +595 -0
  380. package/src/commands/ai-visual-fx.ts +601 -0
  381. package/src/commands/ai.test.ts +627 -0
  382. package/src/commands/ai.ts +307 -0
  383. package/src/commands/analyze.ts +282 -0
  384. package/src/commands/audio.ts +644 -0
  385. package/src/commands/batch.test.ts +279 -0
  386. package/src/commands/batch.ts +440 -0
  387. package/src/commands/detect.ts +329 -0
  388. package/src/commands/doctor.ts +237 -0
  389. package/src/commands/edit-cmd.ts +1014 -0
  390. package/src/commands/export.ts +918 -0
  391. package/src/commands/generate.ts +2146 -0
  392. package/src/commands/media.ts +177 -0
  393. package/src/commands/output.ts +142 -0
  394. package/src/commands/pipeline.ts +398 -0
  395. package/src/commands/project.test.ts +127 -0
  396. package/src/commands/project.ts +149 -0
  397. package/src/commands/sanitize.ts +60 -0
  398. package/src/commands/schema.ts +130 -0
  399. package/src/commands/setup.ts +509 -0
  400. package/src/commands/timeline.test.ts +499 -0
  401. package/src/commands/timeline.ts +529 -0
  402. package/src/commands/validate.ts +77 -0
  403. package/src/config/config.test.ts +197 -0
  404. package/src/config/index.ts +125 -0
  405. package/src/config/schema.ts +82 -0
  406. package/src/engine/index.ts +2 -0
  407. package/src/engine/project.test.ts +702 -0
  408. package/src/engine/project.ts +439 -0
  409. package/src/index.ts +146 -0
  410. package/src/utils/api-key.test.ts +41 -0
  411. package/src/utils/api-key.ts +247 -0
  412. package/src/utils/audio.ts +83 -0
  413. package/src/utils/exec-safe.ts +75 -0
  414. package/src/utils/first-run.ts +52 -0
  415. package/src/utils/provider-resolver.ts +56 -0
  416. package/src/utils/remotion.ts +951 -0
  417. package/src/utils/subtitle.test.ts +227 -0
  418. package/src/utils/subtitle.ts +169 -0
  419. package/src/utils/tty.ts +196 -0
  420. package/tsconfig.json +20 -0
@@ -0,0 +1,689 @@
1
+
2
+ > @vibeframe/cli@0.26.1 test /Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli
3
+ > vitest
4
+
5
+
6
+ DEV v1.6.1 /Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli
7
+
8
+ ✓ src/engine/project.test.ts (51 tests) 6ms
9
+ ✓ src/agent/tools/integration.test.ts (36 tests) 12ms
10
+ ↓ src/agent/tools/e2e.test.ts (11 tests | 11 skipped)
11
+ ✓ src/utils/subtitle.test.ts (25 tests) 2ms
12
+ ✓ src/config/config.test.ts (12 tests) 24ms
13
+ stdout | src/utils/api-key.test.ts > api-key utilities > loadEnv > does not throw when .env file is missing
14
+ [dotenv@17.2.3] injecting env (0) from .env -- tip: ⚙️ specify custom .env file path with { path: '/custom/path/.env' }
15
+ [dotenv@17.2.3] injecting env (10) from ../../.env -- tip: 🔐 prevent building .env in docker: https://dotenvx.com/prebuild
16
+
17
+ ✓ src/utils/api-key.test.ts (4 tests) 3ms
18
+ stdout | src/utils/api-key.test.ts > api-key utilities > getApiKey > returns env value if option not provided
19
+ [dotenv@17.2.3] injecting env (0) from .env -- tip: ⚙️ override existing env vars with { override: true }
20
+ [dotenv@17.2.3] injecting env (10) from ../../.env -- tip: 🔐 prevent committing .env to code: https://dotenvx.com/precommit
21
+
22
+ stdout | src/utils/api-key.test.ts > api-key utilities > getApiKey > returns null when no key available and not TTY
23
+ [dotenv@17.2.3] injecting env (0) from .env -- tip: ⚙️ override existing env vars with { override: true }
24
+ [dotenv@17.2.3] injecting env (10) from ../../.env -- tip: ⚙️ load multiple .env files with { path: ['.env.local', '.env'] }
25
+
26
+ - Creating project...
27
+ ✔ Project created: /tmp/vibe-test-XexxvF/test.vibe.json
28
+ - Creating project...
29
+ ✔ Project created: /tmp/vibe-batch-test-BrSV9z/test.vibe.json
30
+ Transcription failed
31
+ ApiKeyError: OpenAI API key required.
32
+ Set OPENAI_API_KEY in .env, or run: vibe setup
33
+ at requireApiKey (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/utils/api-key.ts:185:11)
34
+ at async Command.<anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/commands/audio.ts:71:22)
35
+ at async Command.parseAsync (/Users/kiyeonjeon/dev/vericontext/vibeframe/node_modules/.pnpm/commander@12.1.0/node_modules/commander/lib/command.js:1092:5)
36
+ at async <anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/index.ts:115:7) {
37
+ envVar: 'OPENAI_API_KEY',
38
+ providerName: 'OpenAI'
39
+ }
40
+ - Creating project...
41
+ ✔ Project created: /tmp/vibe-test-dGQRkF/test.vibe.json
42
+ - Creating project...
43
+ ✔ Project created: /tmp/vibe-test-iLetRd/test.vibe.json
44
+ - Creating project...
45
+ ✔ Project created: /tmp/vibe-test-cxz3n1/test.vibe.json
46
+ - Creating project...
47
+ ✔ Project created: /tmp/vibe-test-bBd2lP/test.vibe.json
48
+ - Creating project...
49
+ ✔ Project created: /tmp/vibe-test-9v6ai9/test.vibe.json
50
+ - Loading project...
51
+ - Creating project...
52
+ ✔ Project created: /tmp/vibe-test-J1Blo2/test.vibe.json
53
+ - Updating project...
54
+ ✔ Project updated
55
+ - Creating project...
56
+ ✔ Project created: /tmp/vibe-test-8obzwP/test.vibe.json
57
+ - Updating project...
58
+ ✔ Project updated
59
+ - Creating project...
60
+ ✔ Project created: /tmp/vibe-test-CSlcn0/test.vibe.json
61
+ - Updating project...
62
+ ✔ Project updated
63
+ ✓ src/commands/project.test.ts (8 tests) 5815ms
64
+ - Scanning directory...
65
+ ✔ Imported 5 media files
66
+ - Creating project...
67
+ ✔ Project created: /tmp/vibe-batch-test-s8wadl/test.vibe.json
68
+ - Scanning directory...
69
+ ✔ Imported 3 media files
70
+ - Creating project...
71
+ ✔ Project created: /tmp/vibe-batch-test-RH7sbK/test.vibe.json
72
+ - Scanning directory...
73
+ ✔ Imported 6 media files
74
+ - Creating project...
75
+ ✔ Project created: /tmp/vibe-batch-test-7i3MiC/test.vibe.json
76
+ - Scanning directory...
77
+ ✔ Imported 3 media files
78
+ - Creating clips...
79
+ ✔ Created 3 clips
80
+ - Creating project...
81
+ ✔ Project created: /tmp/vibe-batch-test-C30B96/test.vibe.json
82
+ - Scanning directory...
83
+ ✔ Imported 3 media files
84
+ - Creating clips...
85
+ ✔ Created 3 clips
86
+ - Creating project...
87
+ ✔ Project created: /tmp/vibe-batch-test-7e1BYN/test.vibe.json
88
+ - Scanning directory...
89
+ ✔ Imported 3 media files
90
+ - Creating clips...
91
+ ✔ Created 3 clips
92
+ - Creating project...
93
+ ✔ Project created: /tmp/vibe-batch-test-QrP5RF/test.vibe.json
94
+ - Scanning directory...
95
+ ✔ Imported 3 media files
96
+ - Creating clips...
97
+ ✔ Created 3 clips
98
+ - Applying effects...
99
+ ✔ Applied fadeIn to 3 clips
100
+ - Creating project...
101
+ ✔ Project created: /tmp/vibe-batch-test-1ZhFsN/test.vibe.json
102
+ - Scanning directory...
103
+ ✔ Imported 3 media files
104
+ - Creating clips...
105
+ ✔ Created 3 clips
106
+ - Applying effects...
107
+ ✔ Applied fadeOut to 3 clips
108
+ - Creating project...
109
+ ✔ Project created: /tmp/vibe-batch-test-ed6PJP/test.vibe.json
110
+ - Scanning directory...
111
+ ✔ Imported 3 media files
112
+ - Creating clips...
113
+ ✔ Created 3 clips
114
+ - Applying effects...
115
+ ✔ Applied blur to 2 clips
116
+ - Creating project...
117
+ ✔ Project created: /tmp/vibe-batch-test-k93YrE/test.vibe.json
118
+ - Scanning directory...
119
+ ✔ Imported 3 media files
120
+ - Creating clips...
121
+ ✔ Created 3 clips
122
+ - Removing clips...
123
+ ✔ Removed 3 clips
124
+ - Creating project...
125
+ ✔ Project created: /tmp/vibe-batch-test-KEKRnx/test.vibe.json
126
+ - Scanning directory...
127
+ ✔ Imported 3 media files
128
+ - Creating clips...
129
+ ✔ Created 3 clips
130
+ - Removing clips...
131
+ ✔ Removed 1 clips
132
+ - Creating project...
133
+ ✔ Project created: /tmp/vibe-batch-test-H7zbL7/test.vibe.json
134
+ - Scanning directory...
135
+ ✔ Imported 3 media files
136
+ - Creating clips...
137
+ ✔ Created 3 clips
138
+ - Loading project...
139
+ ✓ src/commands/batch.test.ts (12 tests) 17817ms
140
+ ✓ src/commands/ai.test.ts (51 tests) 18524ms
141
+ AI suggestion failed
142
+ ApiKeyError: Google API key required.
143
+ Set GOOGLE_API_KEY in .env, or run: vibe setup
144
+ at requireApiKey (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/utils/api-key.ts:185:11)
145
+ at async Command.<anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/commands/analyze.ts:229:22)
146
+ at async Command.parseAsync (/Users/kiyeonjeon/dev/vericontext/vibeframe/node_modules/.pnpm/commander@12.1.0/node_modules/commander/lib/command.js:1092:5)
147
+ at async <anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/index.ts:115:7) {
148
+ envVar: 'GOOGLE_API_KEY',
149
+ providerName: 'Google'
150
+ }
151
+ File not found: /tmp/nonexistent.mp4
152
+ File not found: /tmp/nonexistent_video_12345.mp4
153
+ Warning: 'pipeline b-roll' is deprecated. Use individual commands instead:
154
+ vibe analyze video <video> 'identify scenes needing b-roll' → vibe generate video '<prompt>'
155
+
156
+ B-roll files required. Use -b or --broll-dir
157
+ Warning: 'pipeline b-roll' is deprecated. Use individual commands instead:
158
+ vibe analyze video <video> 'identify scenes needing b-roll' → vibe generate video '<prompt>'
159
+
160
+ OpenAI API key required for Whisper transcription. Set OPENAI_API_KEY in .env or run: vibe setup
161
+ Set OPENAI_API_KEY environment variable
162
+ Warning: 'pipeline viral' is deprecated. Use individual commands instead:
163
+ vibe edit reframe <video> -a 9:16 → vibe edit caption <video> -s bold
164
+
165
+ Project file not found: /tmp/test.vibe.json
166
+ Warning: 'pipeline viral' is deprecated. Use individual commands instead:
167
+ vibe edit reframe <video> -a 9:16 → vibe edit caption <video> -s bold
168
+
169
+ OpenAI API key required for Whisper transcription. Set OPENAI_API_KEY in .env or run: vibe setup
170
+ Set OPENAI_API_KEY environment variable
171
+ Warning: 'pipeline viral' is deprecated. Use individual commands instead:
172
+ vibe edit reframe <video> -a 9:16 → vibe edit caption <video> -s bold
173
+
174
+ Project file not found: /tmp/nonexistent_project_12345.vibe.json
175
+ Video extension failed
176
+ ApiKeyError: Kling API key required.
177
+ Set KLING_API_KEY in .env, or run: vibe setup
178
+ at requireApiKey (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/utils/api-key.ts:185:11)
179
+ at async Command.<anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/commands/generate.ts:1942:24)
180
+ at async Command.parseAsync (/Users/kiyeonjeon/dev/vericontext/vibeframe/node_modules/.pnpm/commander@12.1.0/node_modules/commander/lib/command.js:1092:5)
181
+ at async <anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/index.ts:115:7) {
182
+ envVar: 'KLING_API_KEY',
183
+ providerName: 'Kling'
184
+ }
185
+ Scale must be 2 or 4
186
+ Factor must be 2, 4, or 8
187
+ Voice name is required. Use --name <name>
188
+ Voice cloning failed
189
+ ApiKeyError: ElevenLabs API key required.
190
+ Set ELEVENLABS_API_KEY in .env, or run: vibe setup
191
+ at requireApiKey (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/utils/api-key.ts:185:11)
192
+ at async Command.<anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/commands/audio.ts:241:22)
193
+ at async Command.parseAsync (/Users/kiyeonjeon/dev/vericontext/vibeframe/node_modules/.pnpm/commander@12.1.0/node_modules/commander/lib/command.js:1092:5)
194
+ at async <anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/index.ts:115:7) {
195
+ envVar: 'ELEVENLABS_API_KEY',
196
+ providerName: 'ElevenLabs'
197
+ }
198
+ Music generation failed
199
+ ApiKeyError: ElevenLabs API key required.
200
+ Set ELEVENLABS_API_KEY in .env, or run: vibe setup
201
+ at requireApiKey (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/utils/api-key.ts:185:11)
202
+ at async Command.<anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/commands/generate.ts:1119:24)
203
+ at async Command.parseAsync (/Users/kiyeonjeon/dev/vericontext/vibeframe/node_modules/.pnpm/commander@12.1.0/node_modules/commander/lib/command.js:1092:5)
204
+ at async <anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/index.ts:115:7) {
205
+ envVar: 'ELEVENLABS_API_KEY',
206
+ providerName: 'ElevenLabs'
207
+ }
208
+ Failed to get music status
209
+ ApiKeyError: Replicate API key required.
210
+ Set REPLICATE_API_TOKEN in .env, or run: vibe setup
211
+ at requireApiKey (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/utils/api-key.ts:185:11)
212
+ at async Command.<anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/commands/generate.ts:1247:22)
213
+ at async Command.parseAsync (/Users/kiyeonjeon/dev/vericontext/vibeframe/node_modules/.pnpm/commander@12.1.0/node_modules/commander/lib/command.js:1092:5)
214
+ at async <anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/index.ts:115:7) {
215
+ envVar: 'REPLICATE_API_TOKEN',
216
+ providerName: 'Replicate'
217
+ }
218
+ Target language is required. Use -l or --language
219
+ File not found: /tmp/video.mp4
220
+ File not found: /tmp/nonexistent_video_12345.mp4
221
+ Video not found: /tmp/nonexistent_video_12345.mp4
222
+ Video not found: /tmp/nonexistent.mp4
223
+ File not found: /tmp/nonexistent_audio_12345.mp4
224
+ Video not found: /tmp/nonexistent_video_12345.mp4
225
+ Video not found: /tmp/nonexistent_video_12345.mp4
226
+ Target language required. Use -t or --target
227
+ SRT file not found: /tmp/nonexistent_12345.srt
228
+ ✓ src/commands/timeline.test.ts (26 tests) 36491ms
229
+ - Adding source...
230
+ ✔ Source added: 1774727289443-2xvqptbm2
231
+ - Creating project...
232
+ ✔ Project created: /tmp/vibe-test-Po5EHx/test.vibe.json
233
+ - Adding source...
234
+ ✔ Source added: 1774727290434-ewgyut5sh
235
+ - Creating project...
236
+ ✔ Project created: /tmp/vibe-test-Iteccb/test.vibe.json
237
+ - Adding source...
238
+ ✔ Source added: 1774727291399-pk79a5ilk
239
+ - Creating project...
240
+ ✔ Project created: /tmp/vibe-test-GkO2lD/test.vibe.json
241
+ - Adding source...
242
+ ✔ Source added: 1774727292377-mw54cnwm4
243
+ - Adding clip...
244
+ ✔ Clip added: 1774727292860-8q8uxu57x
245
+ - Creating project...
246
+ ✔ Project created: /tmp/vibe-test-BKgvyp/test.vibe.json
247
+ - Adding source...
248
+ ✔ Source added: 1774727293829-dbbm43qt7
249
+ - Adding clip...
250
+ ✔ Clip added: 1774727294313-fwuf0wdmn
251
+ - Creating project...
252
+ ✔ Project created: /tmp/vibe-test-7wL6eq/test.vibe.json
253
+ - Adding source...
254
+ ✔ Source added: 1774727295215-h7oyh2eyx
255
+ - Adding clip...
256
+ ✔ Clip added: 1774727295647-mscwgg35s
257
+ - Creating project...
258
+ ✔ Project created: /tmp/vibe-test-MdGJSS/test.vibe.json
259
+ - Adding source...
260
+ ✔ Source added: 1774727296524-sr64nukbe
261
+ - Adding clip...
262
+ ✔ Clip added: 1774727296957-fmzcp29k2
263
+ - Creating project...
264
+ ✔ Project created: /tmp/vibe-test-OZZZZl/test.vibe.json
265
+ - Adding track...
266
+ ✔ Track added: 1774727297836-9byjbolgp
267
+ - Creating project...
268
+ ✔ Project created: /tmp/vibe-test-9i6o2X/test.vibe.json
269
+ - Adding track...
270
+ ✔ Track added: 1774727298711-40j0auds0
271
+ - Creating project...
272
+ ✔ Project created: /tmp/vibe-test-2vYb5q/test.vibe.json
273
+ - Adding track...
274
+ ✔ Track added: 1774727299606-8drtk4xiy
275
+ - Creating project...
276
+ ✔ Project created: /tmp/vibe-test-GkGRXS/test.vibe.json
277
+ - Adding source...
278
+ ✔ Source added: 1774727300509-ug5u5qvtz
279
+ - Adding clip...
280
+ ✔ Clip added: 1774727300948-2093c8h5m
281
+ - Adding effect...
282
+ ✔ Effect added: 1774727301395-18e20zb4y
283
+ - Creating project...
284
+ ✔ Project created: /tmp/vibe-test-uogGtn/test.vibe.json
285
+ - Adding source...
286
+ ✔ Source added: 1774727302281-szrey0xnf
287
+ - Adding clip...
288
+ ✔ Clip added: 1774727302717-awpcfx20a
289
+ - Adding effect...
290
+ ✔ Effect added: 1774727303163-296i0humx
291
+ - Creating project...
292
+ ✔ Project created: /tmp/vibe-test-jAJW6h/test.vibe.json
293
+ - Adding source...
294
+ ✔ Source added: 1774727304045-sd8gweofy
295
+ - Adding clip...
296
+ ✔ Clip added: 1774727304493-mlmsyheyl
297
+ - Adding effect...
298
+ ✔ Effect added: 1774727304951-u2d7yksbw
299
+ - Adding effect...
300
+ ✔ Effect added: 1774727305386-8yxaulv52
301
+ - Creating project...
302
+ ✔ Project created: /tmp/vibe-test-CmcwU1/test.vibe.json
303
+ - Adding source...
304
+ ✔ Source added: 1774727306280-q57l89hwd
305
+ - Adding clip...
306
+ ✔ Clip added: 1774727306685-0e1nydi2o
307
+ - Trimming clip...
308
+ ✔ Clip trimmed
309
+ - Creating project...
310
+ ✔ Project created: /tmp/vibe-test-5LNJv1/test.vibe.json
311
+ - Adding source...
312
+ ✔ Source added: 1774727307810-idnfhcuyr
313
+ - Adding clip...
314
+ ✔ Clip added: 1774727308169-zhjhb0uxa
315
+ - Trimming clip...
316
+ ✔ Clip trimmed
317
+ - Creating project...
318
+ ✔ Project created: /tmp/vibe-test-alw6jw/test.vibe.json
319
+ - Adding source...
320
+ ✔ Source added: 1774727309259-yquatzaz9
321
+ - Adding clip...
322
+ ✔ Clip added: 1774727309620-mrtoea366
323
+ - Creating project...
324
+ ✔ Project created: /tmp/vibe-test-Dn5o8W/test.vibe.json
325
+ - Adding source...
326
+ ✔ Source added: 1774727310704-gyy6f2y85
327
+ - Adding clip...
328
+ ✔ Clip added: 1774727311062-qik0bgqxn
329
+ - Creating project...
330
+ ✔ Project created: /tmp/vibe-test-0HZCdR/test.vibe.json
331
+ - Adding source...
332
+ ✔ Source added: 1774727312145-5ugf1qpy2
333
+ - Adding clip...
334
+ ✔ Clip added: 1774727312508-p65h2yldg
335
+ - Creating project...
336
+ ✔ Project created: /tmp/vibe-test-2laZil/test.vibe.json
337
+ - Adding source...
338
+ ✔ Source added: 1774727313595-16932vns4
339
+ - Adding clip...
340
+ ✔ Clip added: 1774727313954-lbdwden4d
341
+ - Splitting clip...
342
+ ✔ Clip split successfully
343
+ - Creating project...
344
+ ✔ Project created: /tmp/vibe-test-oSApNo/test.vibe.json
345
+ - Adding source...
346
+ ✔ Source added: 1774727315049-a10k0sf25
347
+ - Adding clip...
348
+ ✔ Clip added: 1774727315409-1v1g08p6c
349
+ - Creating project...
350
+ ✔ Project created: /tmp/vibe-test-BibiaB/test.vibe.json
351
+ - Adding source...
352
+ ✔ Source added: 1774727316493-isr4vaol4
353
+ - Adding clip...
354
+ ✔ Clip added: 1774727316852-2a0xkjo59
355
+ - Duplicating clip...
356
+ ✔ Clip duplicated: 1774727317209-x1urv93l7
357
+ - Creating project...
358
+ ✔ Project created: /tmp/vibe-test-m07le1/test.vibe.json
359
+ - Adding source...
360
+ ✔ Source added: 1774727317934-cnnkqdoxp
361
+ - Adding clip...
362
+ ✔ Clip added: 1774727318294-t3kqrjb24
363
+ - Duplicating clip...
364
+ ✔ Clip duplicated: 1774727318654-4yjfytsgr
365
+ - Creating project...
366
+ ✔ Project created: /tmp/vibe-test-nhEUph/test.vibe.json
367
+ - Adding source...
368
+ ✔ Source added: 1774727319382-si4eiryo2
369
+ - Adding clip...
370
+ ✔ Clip added: 1774727319739-m88n3tn0q
371
+ - Deleting clip...
372
+ ✔ Clip deleted
373
+ - Creating project...
374
+ ✔ Project created: /tmp/vibe-test-0N9B4e/test.vibe.json
375
+ - Adding source...
376
+ ✔ Source added: 1774727320829-io4xabsp6
377
+ - Adding clip...
378
+ ✔ Clip added: 1774727321187-vyio4da4j
379
+ - Creating project...
380
+ ✔ Project created: /tmp/vibe-test-UvgI8Y/test.vibe.json
381
+ - Adding source...
382
+ ✔ Source added: 1774727322273-60o9e5bqm
383
+ - Adding clip...
384
+ ✔ Clip added: 1774727322642-w483ogwl7
385
+ - Moving clip...
386
+ ✔ Clip moved
387
+ - Creating project...
388
+ ✔ Project created: /tmp/vibe-test-vCsF04/test.vibe.json
389
+ - Adding source...
390
+ ✔ Source added: 1774727323737-h9fvafa6r
391
+ - Adding clip...
392
+ ✔ Clip added: 1774727324093-g6chs0rzo
393
+ - Adding track...
394
+ ✔ Track added: 1774727324453-y39s4m6yq
395
+ - Moving clip...
396
+ ✔ Clip moved
397
+
398
+ Test Files 9 passed | 1 skipped (10)
399
+ Tests 225 passed | 11 skipped (236)
400
+ Start at 04:48:08
401
+ Duration 36.72s (transform 664ms, setup 0ms, collect 1.21s, tests 78.69s, environment 1ms, prepare 457ms)
402
+
403
+
404
+ P press h to show help, press q to quit
405
+ c
406
+ RERUN src/commands/ai-animated-caption.ts
407
+
408
+ ✓ src/agent/tools/integration.test.ts (36 tests) 11ms
409
+ ↓ src/agent/tools/e2e.test.ts (11 tests | 11 skipped)
410
+
411
+ Test Files 1 passed | 1 skipped (2)
412
+ Tests 36 passed | 11 skipped (47)
413
+ Start at 04:55:51
414
+ Duration 115ms
415
+
416
+
417
+ PASS Waiting for file changes...
418
+ press h to show help, press q to quit
419
+ c
420
+ RERUN src/utils/remotion.ts
421
+
422
+ ✓ src/agent/tools/integration.test.ts (36 tests) 11ms
423
+ ↓ src/agent/tools/e2e.test.ts (11 tests | 11 skipped)
424
+ Transcription failed
425
+ ApiKeyError: OpenAI API key required.
426
+ Set OPENAI_API_KEY in .env, or run: vibe setup
427
+ at requireApiKey (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/utils/api-key.ts:185:11)
428
+ at async Command.<anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/commands/audio.ts:71:22)
429
+ at async Command.parseAsync (/Users/kiyeonjeon/dev/vericontext/vibeframe/node_modules/.pnpm/commander@12.1.0/node_modules/commander/lib/command.js:1092:5)
430
+ at async <anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/index.ts:115:7) {
431
+ envVar: 'OPENAI_API_KEY',
432
+ providerName: 'OpenAI'
433
+ }
434
+ AI suggestion failed
435
+ ApiKeyError: Google API key required.
436
+ Set GOOGLE_API_KEY in .env, or run: vibe setup
437
+ at requireApiKey (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/utils/api-key.ts:185:11)
438
+ at async Command.<anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/commands/analyze.ts:229:22)
439
+ at async Command.parseAsync (/Users/kiyeonjeon/dev/vericontext/vibeframe/node_modules/.pnpm/commander@12.1.0/node_modules/commander/lib/command.js:1092:5)
440
+ at async <anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/index.ts:115:7) {
441
+ envVar: 'GOOGLE_API_KEY',
442
+ providerName: 'Google'
443
+ }
444
+ File not found: /tmp/nonexistent.mp4
445
+ File not found: /tmp/nonexistent_video_12345.mp4
446
+ Warning: 'pipeline b-roll' is deprecated. Use individual commands instead:
447
+ vibe analyze video <video> 'identify scenes needing b-roll' → vibe generate video '<prompt>'
448
+
449
+ B-roll files required. Use -b or --broll-dir
450
+ Warning: 'pipeline b-roll' is deprecated. Use individual commands instead:
451
+ vibe analyze video <video> 'identify scenes needing b-roll' → vibe generate video '<prompt>'
452
+
453
+ OpenAI API key required for Whisper transcription. Set OPENAI_API_KEY in .env or run: vibe setup
454
+ Set OPENAI_API_KEY environment variable
455
+ Warning: 'pipeline viral' is deprecated. Use individual commands instead:
456
+ vibe edit reframe <video> -a 9:16 → vibe edit caption <video> -s bold
457
+
458
+ Project file not found: /tmp/test.vibe.json
459
+ Warning: 'pipeline viral' is deprecated. Use individual commands instead:
460
+ vibe edit reframe <video> -a 9:16 → vibe edit caption <video> -s bold
461
+
462
+ OpenAI API key required for Whisper transcription. Set OPENAI_API_KEY in .env or run: vibe setup
463
+ Set OPENAI_API_KEY environment variable
464
+ Warning: 'pipeline viral' is deprecated. Use individual commands instead:
465
+ vibe edit reframe <video> -a 9:16 → vibe edit caption <video> -s bold
466
+
467
+ Project file not found: /tmp/nonexistent_project_12345.vibe.json
468
+ Video extension failed
469
+ ApiKeyError: Kling API key required.
470
+ Set KLING_API_KEY in .env, or run: vibe setup
471
+ at requireApiKey (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/utils/api-key.ts:185:11)
472
+ at async Command.<anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/commands/generate.ts:1942:24)
473
+ at async Command.parseAsync (/Users/kiyeonjeon/dev/vericontext/vibeframe/node_modules/.pnpm/commander@12.1.0/node_modules/commander/lib/command.js:1092:5)
474
+ at async <anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/index.ts:115:7) {
475
+ envVar: 'KLING_API_KEY',
476
+ providerName: 'Kling'
477
+ }
478
+ Scale must be 2 or 4
479
+ Factor must be 2, 4, or 8
480
+ Voice name is required. Use --name <name>
481
+ Voice cloning failed
482
+ ApiKeyError: ElevenLabs API key required.
483
+ Set ELEVENLABS_API_KEY in .env, or run: vibe setup
484
+ at requireApiKey (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/utils/api-key.ts:185:11)
485
+ at async Command.<anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/commands/audio.ts:241:22)
486
+ at async Command.parseAsync (/Users/kiyeonjeon/dev/vericontext/vibeframe/node_modules/.pnpm/commander@12.1.0/node_modules/commander/lib/command.js:1092:5)
487
+ at async <anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/index.ts:115:7) {
488
+ envVar: 'ELEVENLABS_API_KEY',
489
+ providerName: 'ElevenLabs'
490
+ }
491
+ Music generation failed
492
+ ApiKeyError: ElevenLabs API key required.
493
+ Set ELEVENLABS_API_KEY in .env, or run: vibe setup
494
+ at requireApiKey (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/utils/api-key.ts:185:11)
495
+ at async Command.<anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/commands/generate.ts:1119:24)
496
+ at async Command.parseAsync (/Users/kiyeonjeon/dev/vericontext/vibeframe/node_modules/.pnpm/commander@12.1.0/node_modules/commander/lib/command.js:1092:5)
497
+ at async <anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/index.ts:115:7) {
498
+ envVar: 'ELEVENLABS_API_KEY',
499
+ providerName: 'ElevenLabs'
500
+ }
501
+ Failed to get music status
502
+ ApiKeyError: Replicate API key required.
503
+ Set REPLICATE_API_TOKEN in .env, or run: vibe setup
504
+ at requireApiKey (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/utils/api-key.ts:185:11)
505
+ at async Command.<anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/commands/generate.ts:1247:22)
506
+ at async Command.parseAsync (/Users/kiyeonjeon/dev/vericontext/vibeframe/node_modules/.pnpm/commander@12.1.0/node_modules/commander/lib/command.js:1092:5)
507
+ at async <anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/index.ts:115:7) {
508
+ envVar: 'REPLICATE_API_TOKEN',
509
+ providerName: 'Replicate'
510
+ }
511
+ Target language is required. Use -l or --language
512
+ File not found: /tmp/video.mp4
513
+ File not found: /tmp/nonexistent_video_12345.mp4
514
+ Video not found: /tmp/nonexistent_video_12345.mp4
515
+ Video not found: /tmp/nonexistent.mp4
516
+ File not found: /tmp/nonexistent_audio_12345.mp4
517
+ Video not found: /tmp/nonexistent_video_12345.mp4
518
+ Video not found: /tmp/nonexistent_video_12345.mp4
519
+ Target language required. Use -t or --target
520
+ SRT file not found: /tmp/nonexistent_12345.srt
521
+ ✓ src/commands/ai.test.ts (51 tests) 16285ms
522
+
523
+ Test Files 2 passed | 1 skipped (3)
524
+ Tests 87 passed | 11 skipped (98)
525
+ Start at 04:55:53
526
+ Duration 16.48s
527
+
528
+
529
+ PASS Waiting for file changes...
530
+ press h to show help, press q to quit
531
+ c
532
+ RERUN src/utils/api-key.ts
533
+
534
+ ✓ src/utils/api-key.test.ts (4 tests) 4ms
535
+ stdout | src/utils/api-key.test.ts > api-key utilities > loadEnv > does not throw when .env file is missing
536
+ [dotenv@17.2.3] injecting env (0) from .env -- tip: ⚙️ suppress all logs with { quiet: true }
537
+ [dotenv@17.2.3] injecting env (10) from ../../.env -- tip: 🔐 prevent committing .env to code: https://dotenvx.com/precommit
538
+
539
+ stdout | src/utils/api-key.test.ts > api-key utilities > getApiKey > returns env value if option not provided
540
+ [dotenv@17.2.3] injecting env (0) from .env -- tip: 👥 sync secrets across teammates & machines: https://dotenvx.com/ops
541
+ [dotenv@17.2.3] injecting env (10) from ../../.env -- tip: ⚙️ override existing env vars with { override: true }
542
+
543
+ stdout | src/utils/api-key.test.ts > api-key utilities > getApiKey > returns null when no key available and not TTY
544
+ [dotenv@17.2.3] injecting env (0) from .env -- tip: ⚙️ write to custom object with { processEnv: myObject }
545
+ [dotenv@17.2.3] injecting env (10) from ../../.env -- tip: 🔄 add secrets lifecycle management: https://dotenvx.com/ops
546
+
547
+ ✓ src/agent/tools/integration.test.ts (36 tests) 17ms
548
+ ↓ src/agent/tools/e2e.test.ts (11 tests | 11 skipped)
549
+ Transcription failed
550
+ ApiKeyError: OpenAI API key required.
551
+ Set OPENAI_API_KEY in .env, or run: vibe setup
552
+ at requireApiKey (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/utils/api-key.ts:205:11)
553
+ at async Command.<anonym at async Command.<anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/commands/audio.ts:71:22)
554
+ at async Command.parseAsync (/Users/kiyeonjeon/dev/vericontext/vibeframe/node_modules/.pnpm/commander@12.1.0/node_modules/commander/lib/command.js:1092:5)
555
+ at async <anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/index.ts:115:7) {
556
+ envVar: 'OPENAI_API_KEY',
557
+ providerName: 'OpenAI'
558
+ }
559
+ ✓ src/commands/ai.test.ts (51 tests) 16589ms
560
+ AI suggestion failed
561
+ ApiKeyError: Google API key required.
562
+ Set GOOGLE_API_KEY in .env, or run: vibe setup
563
+ at requireApiKey (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/utils/api-key.ts:205:11)
564
+ at async Command.<anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/commands/analyze.ts:229:22)
565
+ at async Command.parseAsync (/Users/kiyeonjeon/dev/vericontext/vibeframe/node_modules/.pnpm/commander@12.1.0/node_modules/commander/lib/command.js:1092:5)
566
+ at async <anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/index.ts:115:7) {
567
+ envVar: 'GOOGLE_API_KEY',
568
+ providerName: 'Google'
569
+ }
570
+ File not found: /tmp/nonexistent.mp4
571
+ File not found: /tmp/nonexistent_video_12345.mp4
572
+ Warning: 'pipeline b-roll' is deprecated. Use individual commands instead:
573
+ vibe analyze video <video> 'identify scenes needing b-roll' → vibe generate video '<prompt>'
574
+
575
+ B-roll files required. Use -b or --broll-dir
576
+ Warning: 'pipeline b-roll' is deprecated. Use individual commands instead:
577
+ vibe analyze video <video> 'identify scenes needing b-roll' → vibe generate video '<prompt>'
578
+
579
+ OpenAI API key required for Whisper transcription. Set OPENAI_API_KEY in .env or run: vibe setup
580
+ Set OPENAI_API_KEY environment variable
581
+ Warning: 'pipeline viral' is deprecated. Use individual commands instead:
582
+ vibe edit reframe <video> -a 9:16 → vibe edit caption <video> -s bold
583
+
584
+ Project file not found: /tmp/test.vibe.json
585
+ Warning: 'pipeline viral' is deprecated. Use individual commands instead:
586
+ vibe edit reframe <video> -a 9:16 → vibe edit caption <video> -s bold
587
+
588
+ OpenAI API key required for Whisper transcription. Set OPENAI_API_KEY in .env or run: vibe setup
589
+ Set OPENAI_API_KEY environment variable
590
+ Warning: 'pipeline viral' is deprecated. Use individual commands instead:
591
+ vibe edit reframe <video> -a 9:16 → vibe edit caption <video> -s bold
592
+
593
+ Project file not found: /tmp/nonexistent_project_12345.vibe.json
594
+ Video extension failed
595
+ ApiKeyError: Kling API key required.
596
+ Set KLING_API_KEY in .env, or run: vibe setup
597
+ at requireApiKey (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/utils/api-key.ts:205:11)
598
+ at async Command.<anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/commands/generate.ts:1942:24)
599
+ at async Command.parseAsync (/Users/kiyeonjeon/dev/vericontext/vibeframe/node_modules/.pnpm/commander@12.1.0/node_modules/commander/lib/command.js:1092:5)
600
+ at async <anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/index.ts:115:7) {
601
+ envVar: 'KLING_API_KEY',
602
+ providerName: 'Kling'
603
+ }
604
+ Scale must be 2 or 4
605
+ Factor must be 2, 4, or 8
606
+ Voice name is required. Use --name <name>
607
+ Voice cloning failed
608
+ ApiKeyError: ElevenLabs API key required.
609
+ Set ELEVENLABS_API_KEY in .env, or run: vibe setup
610
+ at requireApiKey (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/utils/api-key.ts:205:11)
611
+ at async Command.<anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/commands/audio.ts:241:22)
612
+ at async Command.parseAsync (/Users/kiyeonjeon/dev/vericontext/vibeframe/node_modules/.pnpm/commander@12.1.0/node_modules/commander/lib/command.js:1092:5)
613
+ at async <anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/index.ts:115:7) {
614
+ envVar: 'ELEVENLABS_API_KEY',
615
+ providerName: 'ElevenLabs'
616
+ }
617
+ Music generation failed
618
+ ApiKeyError: ElevenLabs API key required.
619
+ Set ELEVENLABS_API_KEY in .env, or run: vibe setup
620
+ at requireApiKey (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/utils/api-key.ts:205:11)
621
+ at async Command.<anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/commands/generate.ts:1119:24)
622
+ at async Command.parseAsync (/Users/kiyeonjeon/dev/vericontext/vibeframe/node_modules/.pnpm/commander@12.1.0/node_modules/commander/lib/command.js:1092:5)
623
+ at async <anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/index.ts:115:7) {
624
+ envVar: 'ELEVENLABS_API_KEY',
625
+ providerName: 'ElevenLabs'
626
+ }
627
+ Failed to get music status
628
+ ApiKeyError: Replicate API key required.
629
+ Set REPLICATE_API_TOKEN in .env, or run: vibe setup
630
+ at requireApiKey (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/utils/api-key.ts:205:11)
631
+ at async Command.<anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/commands/generate.ts:1247:22)
632
+ at async Command.parseAsync (/Users/kiyeonjeon/dev/vericontext/vibeframe/node_modules/.pnpm/commander@12.1.0/node_modules/commander/lib/command.js:1092:5)
633
+ at async <anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/index.ts:115:7) {
634
+ envVar: 'REPLICATE_API_TOKEN',
635
+ providerName: 'Replicate'
636
+ }
637
+ Target language is required. Use -l or --language
638
+ File not found: /tmp/video.mp4
639
+ File not found: /tmp/nonexistent_video_12345.mp4
640
+ Video not found: /tmp/nonexistent_video_12345.mp4
641
+ Video not found: /tmp/nonexistent.mp4
642
+ File not found: /tmp/nonexistent_audio_12345.mp4
643
+ Video not found: /tmp/nonexistent_video_12345.mp4
644
+ Video not found: /tmp/nonexistent_video_12345.mp4
645
+ Target language required. Use -t or --target
646
+ SRT file not found: /tmp/nonexistent_12345.srt
647
+
648
+ Test Files 3 passed | 1 skipped (4)
649
+ Tests 91 passed | 11 skipped (102)
650
+ Start at 05:13:36
651
+ Duration 16.88s
652
+
653
+
654
+ PASS Waiting for file changes...
655
+ press h to show help, press q to quit
656
+ c
657
+ RERUN src/utils/api-key.ts
658
+
659
+ stdout | src/utils/api-key.test.ts > api-key utilities > loadEnv > does not throw when .env file is missing
660
+ [dotenv@17.2.3] injecting env (0) from .env -- tip: 🔐 encrypt with Dotenvx: https://dotenvx.com
661
+ [dotenv@17.2.3] injecting env (10) from ../../.env -- tip: ⚙️ enable debug logging with { debug: true }
662
+
663
+ stdout | src/utils/api-key.test.ts > api-key utilities > getApiKey > returns env value if option not provided
664
+ [dotenv@17.2.3] injecting env (0) from .env -- tip: ⚙️ override existing env vars with { override: true }
665
+ [dotenv@17.2.3] injecting env (10) from ../../.env -- tip: ✅ audit secrets and track compliance: https://dotenvx.com/ops
666
+
667
+ ✓ src/utils/api-key.test.ts (4 tests) 3ms
668
+ stdout | src/utils/api-key.test.ts > api-key utilities > getApiKey > returns null when no key available and not TTY
669
+ [dotenv@17.2.3] injecting env (0) from .env -- tip: 🔐 prevent committing .env to code: https://dotenvx.com/precommit
670
+ [dotenv@17.2.3] injecting env (10) from ../../.env -- tip: 🔐 prevent committing .env to code: https://dotenvx.com/precommit
671
+
672
+ ✓ src/agent/tools/integration.test.ts (36 tests) 12ms
673
+ ↓ src/agent/tools/e2e.test.ts (11 tests | 11 skipped)
674
+ Transcription failed
675
+ ApiKeyError: OpenAI API key required.
676
+ Set OPENAI_API_KEY in .env, or run: vibe setup
677
+ at requireApiKey (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/utils/api-key.ts:213:11)
678
+ at async Command.<anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/commands/audio.ts:71:22)
679
+ at async Command.parseAsync (/Users/kiyeonjeon/dev/vericontext/vibeframe/node_modules/.pnpm/commander@12.1.0/node_modules/commander/lib/command.js:1092:5)
680
+ at async <anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/index.ts:115:7) {
681
+ envVar: 'OPENAI_API_KEY',
682
+ providerName: 'OpenAI'
683
+ }
684
+ ✓ src/commands/ai.test.ts (51 tests) 16211ms
685
+ AI suggestion failed
686
+ ApiKeyError: Google API key required.
687
+ Set GOOGLE_API_KEY in .env, or run: vibe setup
688
+ at requireApiKey (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/utils/api-key.ts:213:11)
689
+ at async Command.<anonymous> (/Users/kiyeonjeon/dev/vericontext/vibeframe/packages/cli/src/commands/analyze.ts:229:22)