@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,92 @@
1
+ /**
2
+ * OpenAI LLM Adapter with Function Calling
3
+ */
4
+ import OpenAI from "openai";
5
+ export class OpenAIAdapter {
6
+ provider = "openai";
7
+ client = null;
8
+ model = "gpt-5-mini";
9
+ async initialize(apiKey) {
10
+ this.client = new OpenAI({ apiKey });
11
+ }
12
+ isInitialized() {
13
+ return this.client !== null;
14
+ }
15
+ setModel(model) {
16
+ this.model = model;
17
+ }
18
+ async chat(messages, tools) {
19
+ if (!this.client) {
20
+ throw new Error("OpenAI adapter not initialized");
21
+ }
22
+ // Convert messages to OpenAI format
23
+ const openaiMessages = messages.map((msg) => {
24
+ if (msg.role === "tool") {
25
+ return {
26
+ role: "tool",
27
+ tool_call_id: msg.toolCallId,
28
+ content: msg.content,
29
+ };
30
+ }
31
+ if (msg.role === "assistant" && msg.toolCalls) {
32
+ return {
33
+ role: "assistant",
34
+ content: msg.content || null,
35
+ tool_calls: msg.toolCalls.map((tc) => ({
36
+ id: tc.id,
37
+ type: "function",
38
+ function: {
39
+ name: tc.name,
40
+ arguments: JSON.stringify(tc.arguments),
41
+ },
42
+ })),
43
+ };
44
+ }
45
+ return {
46
+ role: msg.role,
47
+ content: msg.content,
48
+ };
49
+ });
50
+ // Convert tools to OpenAI format
51
+ const openaiTools = tools.map((tool) => ({
52
+ type: "function",
53
+ function: {
54
+ name: tool.name,
55
+ description: tool.description,
56
+ parameters: tool.parameters,
57
+ },
58
+ }));
59
+ // Make API call
60
+ const response = await this.client.chat.completions.create({
61
+ model: this.model,
62
+ messages: openaiMessages,
63
+ tools: openaiTools.length > 0 ? openaiTools : undefined,
64
+ tool_choice: openaiTools.length > 0 ? "auto" : undefined,
65
+ });
66
+ const choice = response.choices[0];
67
+ const message = choice.message;
68
+ // Parse tool calls
69
+ let toolCalls;
70
+ if (message.tool_calls && message.tool_calls.length > 0) {
71
+ toolCalls = message.tool_calls.map((tc) => ({
72
+ id: tc.id,
73
+ name: tc.function.name,
74
+ arguments: JSON.parse(tc.function.arguments),
75
+ }));
76
+ }
77
+ // Map finish reason
78
+ let finishReason = "stop";
79
+ if (choice.finish_reason === "tool_calls") {
80
+ finishReason = "tool_calls";
81
+ }
82
+ else if (choice.finish_reason === "length") {
83
+ finishReason = "length";
84
+ }
85
+ return {
86
+ content: message.content || "",
87
+ toolCalls,
88
+ finishReason,
89
+ };
90
+ }
91
+ }
92
+ //# sourceMappingURL=openai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/agent/adapters/openai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * xAI Grok LLM Adapter (OpenAI-compatible)
3
+ */
4
+ import type { LLMAdapter } from "./index.js";
5
+ import type { ToolDefinition, LLMResponse, AgentMessage, LLMProvider } from "../types.js";
6
+ export declare class XAIAdapter implements LLMAdapter {
7
+ readonly provider: LLMProvider;
8
+ private client;
9
+ private model;
10
+ initialize(apiKey: string): Promise<void>;
11
+ isInitialized(): boolean;
12
+ setModel(model: string): void;
13
+ chat(messages: AgentMessage[], tools: ToolDefinition[]): Promise<LLMResponse>;
14
+ }
15
+ //# sourceMappingURL=xai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xai.d.ts","sourceRoot":"","sources":["../../../src/agent/adapters/xai.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,YAAY,EAEZ,WAAW,EACZ,MAAM,aAAa,CAAC;AAErB,qBAAa,UAAW,YAAW,UAAU;IAC3C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAS;IACvC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAAqC;IAE5C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C,aAAa,IAAI,OAAO;IAIxB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIvB,IAAI,CACR,QAAQ,EAAE,YAAY,EAAE,EACxB,KAAK,EAAE,cAAc,EAAE,GACtB,OAAO,CAAC,WAAW,CAAC;CAiFxB"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * xAI Grok LLM Adapter (OpenAI-compatible)
3
+ */
4
+ import OpenAI from "openai";
5
+ export class XAIAdapter {
6
+ provider = "xai";
7
+ client = null;
8
+ model = "grok-4-1-fast-reasoning";
9
+ async initialize(apiKey) {
10
+ this.client = new OpenAI({
11
+ apiKey,
12
+ baseURL: "https://api.x.ai/v1",
13
+ });
14
+ }
15
+ isInitialized() {
16
+ return this.client !== null;
17
+ }
18
+ setModel(model) {
19
+ this.model = model;
20
+ }
21
+ async chat(messages, tools) {
22
+ if (!this.client) {
23
+ throw new Error("xAI adapter not initialized");
24
+ }
25
+ // Convert messages to OpenAI format
26
+ const openaiMessages = messages.map((msg) => {
27
+ if (msg.role === "tool") {
28
+ return {
29
+ role: "tool",
30
+ tool_call_id: msg.toolCallId,
31
+ content: msg.content,
32
+ };
33
+ }
34
+ if (msg.role === "assistant" && msg.toolCalls) {
35
+ return {
36
+ role: "assistant",
37
+ content: msg.content || null,
38
+ tool_calls: msg.toolCalls.map((tc) => ({
39
+ id: tc.id,
40
+ type: "function",
41
+ function: {
42
+ name: tc.name,
43
+ arguments: JSON.stringify(tc.arguments),
44
+ },
45
+ })),
46
+ };
47
+ }
48
+ return {
49
+ role: msg.role,
50
+ content: msg.content,
51
+ };
52
+ });
53
+ // Convert tools to OpenAI format
54
+ const openaiTools = tools.map((tool) => ({
55
+ type: "function",
56
+ function: {
57
+ name: tool.name,
58
+ description: tool.description,
59
+ parameters: tool.parameters,
60
+ },
61
+ }));
62
+ // Make API call
63
+ const response = await this.client.chat.completions.create({
64
+ model: this.model,
65
+ messages: openaiMessages,
66
+ tools: openaiTools.length > 0 ? openaiTools : undefined,
67
+ tool_choice: openaiTools.length > 0 ? "auto" : undefined,
68
+ });
69
+ const choice = response.choices[0];
70
+ const message = choice.message;
71
+ // Parse tool calls
72
+ let toolCalls;
73
+ if (message.tool_calls && message.tool_calls.length > 0) {
74
+ toolCalls = message.tool_calls.map((tc) => ({
75
+ id: tc.id,
76
+ name: tc.function.name,
77
+ arguments: JSON.parse(tc.function.arguments),
78
+ }));
79
+ }
80
+ // Map finish reason
81
+ let finishReason = "stop";
82
+ if (choice.finish_reason === "tool_calls") {
83
+ finishReason = "tool_calls";
84
+ }
85
+ else if (choice.finish_reason === "length") {
86
+ finishReason = "length";
87
+ }
88
+ return {
89
+ content: message.content || "",
90
+ toolCalls,
91
+ finishReason,
92
+ };
93
+ }
94
+ }
95
+ //# sourceMappingURL=xai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xai.js","sourceRoot":"","sources":["../../../src/agent/adapters/xai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * AgentExecutor - Main Agentic Loop
3
+ * Orchestrates LLM reasoning and tool execution
4
+ */
5
+ import type { AgentMessage, AgentContext, LLMProvider } from "./types.js";
6
+ export interface AgentExecutorOptions {
7
+ provider: LLMProvider;
8
+ apiKey: string;
9
+ model?: string;
10
+ maxTurns?: number;
11
+ verbose?: boolean;
12
+ projectPath?: string;
13
+ /**
14
+ * Callback to confirm before executing each tool.
15
+ * Return true to execute, false to skip.
16
+ */
17
+ confirmCallback?: (toolName: string, args: Record<string, unknown>) => Promise<boolean>;
18
+ }
19
+ export interface ExecutionResult {
20
+ response: string;
21
+ toolsUsed: string[];
22
+ turns: number;
23
+ }
24
+ export declare class AgentExecutor {
25
+ private adapter;
26
+ private registry;
27
+ private memory;
28
+ private context;
29
+ private config;
30
+ private initialized;
31
+ constructor(options: AgentExecutorOptions);
32
+ /**
33
+ * Initialize the agent
34
+ */
35
+ initialize(): Promise<void>;
36
+ /**
37
+ * Execute a user request
38
+ */
39
+ execute(userInput: string): Promise<ExecutionResult>;
40
+ /**
41
+ * Execute a single tool
42
+ */
43
+ private executeTool;
44
+ /**
45
+ * Update context (e.g., when project changes)
46
+ */
47
+ updateContext(updates: Partial<AgentContext>): void;
48
+ /**
49
+ * Reset conversation memory
50
+ */
51
+ reset(): void;
52
+ /**
53
+ * Get current context
54
+ */
55
+ getContext(): AgentContext;
56
+ /**
57
+ * Get conversation history
58
+ */
59
+ getHistory(): AgentMessage[];
60
+ /**
61
+ * Get available tools
62
+ */
63
+ getTools(): string[];
64
+ }
65
+ export type { AgentConfig, AgentContext, AgentMessage, ToolCall, ToolResult } from "./types.js";
66
+ export type { LLMAdapter } from "./adapters/index.js";
67
+ export { ToolRegistry } from "./tools/index.js";
68
+ export { ConversationMemory } from "./memory/index.js";
69
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EAGZ,WAAW,EACZ,MAAM,YAAY,CAAC;AAOpB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACzF;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAoBD,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,EAAE,oBAAoB;IAczC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBjC;;OAEG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA0E1D;;OAEG;YACW,WAAW;IAyBzB;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAInD;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,UAAU,IAAI,YAAY;IAI1B;;OAEG;IACH,UAAU,IAAI,YAAY,EAAE;IAI5B;;OAEG;IACH,QAAQ,IAAI,MAAM,EAAE;CAGrB;AAGD,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAChG,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,180 @@
1
+ /**
2
+ * AgentExecutor - Main Agentic Loop
3
+ * Orchestrates LLM reasoning and tool execution
4
+ */
5
+ import { createAdapter } from "./adapters/index.js";
6
+ import { ToolRegistry, registerAllTools } from "./tools/index.js";
7
+ import { getSystemPrompt } from "./prompts/system.js";
8
+ import { ConversationMemory } from "./memory/index.js";
9
+ /**
10
+ * AgentExecutor class
11
+ * Handles the agentic loop: reason → tool call → result → reason → ...
12
+ */
13
+ /** Mask sensitive values in tool arguments for verbose logging */
14
+ function maskSensitiveArgs(args) {
15
+ const sensitiveKeys = ["apiKey", "api_key", "token", "secret", "password", "key"];
16
+ const masked = {};
17
+ for (const [k, v] of Object.entries(args)) {
18
+ if (sensitiveKeys.some((sk) => k.toLowerCase().includes(sk.toLowerCase())) && typeof v === "string") {
19
+ masked[k] = v.slice(0, 4) + "****";
20
+ }
21
+ else {
22
+ masked[k] = v;
23
+ }
24
+ }
25
+ return masked;
26
+ }
27
+ export class AgentExecutor {
28
+ adapter = null;
29
+ registry;
30
+ memory;
31
+ context;
32
+ config;
33
+ initialized = false;
34
+ constructor(options) {
35
+ this.config = {
36
+ maxTurns: 10,
37
+ verbose: false,
38
+ ...options,
39
+ };
40
+ this.registry = new ToolRegistry();
41
+ this.memory = new ConversationMemory();
42
+ this.context = {
43
+ projectPath: options.projectPath || null,
44
+ workingDirectory: process.cwd(),
45
+ };
46
+ }
47
+ /**
48
+ * Initialize the agent
49
+ */
50
+ async initialize() {
51
+ if (this.initialized)
52
+ return;
53
+ // Create and initialize LLM adapter
54
+ this.adapter = await createAdapter(this.config.provider);
55
+ await this.adapter.initialize(this.config.apiKey);
56
+ // Register all tools
57
+ await registerAllTools(this.registry);
58
+ // Add system message
59
+ const systemPrompt = getSystemPrompt(this.context);
60
+ this.memory.addSystem(systemPrompt);
61
+ this.initialized = true;
62
+ if (this.config.verbose) {
63
+ console.log(`[Agent] Initialized with ${this.registry.size} tools`);
64
+ console.log(`[Agent] Provider: ${this.config.provider}`);
65
+ }
66
+ }
67
+ /**
68
+ * Execute a user request
69
+ */
70
+ async execute(userInput) {
71
+ if (!this.initialized || !this.adapter) {
72
+ throw new Error("Agent not initialized. Call initialize() first.");
73
+ }
74
+ // Add user message
75
+ this.memory.addUser(userInput);
76
+ const toolsUsed = [];
77
+ let turns = 0;
78
+ // Agentic loop
79
+ while (turns < this.config.maxTurns) {
80
+ turns++;
81
+ if (this.config.verbose) {
82
+ console.log(`[Agent] Turn ${turns}`);
83
+ }
84
+ // Get LLM response
85
+ const response = await this.adapter.chat(this.memory.getMessages(), this.registry.getDefinitions());
86
+ // Handle tool calls
87
+ if (response.finishReason === "tool_calls" && response.toolCalls) {
88
+ // Add assistant message with tool calls
89
+ this.memory.addAssistant(response.content, response.toolCalls);
90
+ // Execute each tool
91
+ for (const toolCall of response.toolCalls) {
92
+ if (this.config.verbose) {
93
+ console.log(`[Agent] Calling tool: ${toolCall.name}`);
94
+ const maskedArgs = maskSensitiveArgs(toolCall.arguments);
95
+ console.log(`[Agent] Args: ${JSON.stringify(maskedArgs)}`);
96
+ }
97
+ const result = await this.executeTool(toolCall);
98
+ toolsUsed.push(toolCall.name);
99
+ // Add tool result
100
+ this.memory.addToolResult(toolCall.id, result);
101
+ if (this.config.verbose) {
102
+ console.log(`[Agent] Result: ${result.success ? "success" : "error"}`);
103
+ if (result.output) {
104
+ console.log(`[Agent] Output: ${result.output.substring(0, 200)}...`);
105
+ }
106
+ }
107
+ }
108
+ // Continue loop to get next response
109
+ continue;
110
+ }
111
+ // No more tool calls - we're done
112
+ this.memory.addAssistant(response.content);
113
+ return {
114
+ response: response.content,
115
+ toolsUsed: [...new Set(toolsUsed)], // Deduplicate
116
+ turns,
117
+ };
118
+ }
119
+ // Max turns reached
120
+ return {
121
+ response: "Maximum turns reached. Please try breaking down your request.",
122
+ toolsUsed: [...new Set(toolsUsed)],
123
+ turns,
124
+ };
125
+ }
126
+ /**
127
+ * Execute a single tool
128
+ */
129
+ async executeTool(toolCall) {
130
+ // Check confirmCallback if set
131
+ if (this.config.confirmCallback) {
132
+ const confirmed = await this.config.confirmCallback(toolCall.name, toolCall.arguments);
133
+ if (!confirmed) {
134
+ return {
135
+ toolCallId: toolCall.id,
136
+ success: false,
137
+ output: "Tool execution skipped by user",
138
+ };
139
+ }
140
+ }
141
+ const result = await this.registry.execute(toolCall.name, toolCall.arguments, this.context);
142
+ result.toolCallId = toolCall.id;
143
+ return result;
144
+ }
145
+ /**
146
+ * Update context (e.g., when project changes)
147
+ */
148
+ updateContext(updates) {
149
+ this.context = { ...this.context, ...updates };
150
+ }
151
+ /**
152
+ * Reset conversation memory
153
+ */
154
+ reset() {
155
+ this.memory.clear();
156
+ const systemPrompt = getSystemPrompt(this.context);
157
+ this.memory.addSystem(systemPrompt);
158
+ }
159
+ /**
160
+ * Get current context
161
+ */
162
+ getContext() {
163
+ return { ...this.context };
164
+ }
165
+ /**
166
+ * Get conversation history
167
+ */
168
+ getHistory() {
169
+ return this.memory.getMessages();
170
+ }
171
+ /**
172
+ * Get available tools
173
+ */
174
+ getTools() {
175
+ return this.registry.list();
176
+ }
177
+ }
178
+ export { ToolRegistry } from "./tools/index.js";
179
+ export { ConversationMemory } from "./memory/index.js";
180
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Conversation Memory Management
3
+ */
4
+ import type { AgentMessage, ToolCall, ToolResult } from "../types.js";
5
+ /**
6
+ * ConversationMemory class
7
+ * Manages conversation history for the agent
8
+ */
9
+ export declare class ConversationMemory {
10
+ private messages;
11
+ private maxMessages;
12
+ constructor(maxMessages?: number);
13
+ /**
14
+ * Add a system message
15
+ */
16
+ addSystem(content: string): void;
17
+ /**
18
+ * Add a user message
19
+ */
20
+ addUser(content: string): void;
21
+ /**
22
+ * Add an assistant message
23
+ */
24
+ addAssistant(content: string, toolCalls?: ToolCall[]): void;
25
+ /**
26
+ * Add a tool result message
27
+ */
28
+ addToolResult(toolCallId: string, result: ToolResult): void;
29
+ /**
30
+ * Get all messages
31
+ */
32
+ getMessages(): AgentMessage[];
33
+ /**
34
+ * Get messages for a specific role
35
+ */
36
+ getByRole(role: AgentMessage["role"]): AgentMessage[];
37
+ /**
38
+ * Get the last N messages
39
+ */
40
+ getLast(n: number): AgentMessage[];
41
+ /**
42
+ * Clear all messages except system
43
+ */
44
+ clear(): void;
45
+ /**
46
+ * Clear all messages including system
47
+ */
48
+ clearAll(): void;
49
+ /**
50
+ * Get message count
51
+ */
52
+ get length(): number;
53
+ /**
54
+ * Trim messages to max limit (keep system + most recent)
55
+ */
56
+ private trim;
57
+ /**
58
+ * Summarize conversation for context compression
59
+ */
60
+ summarize(): string;
61
+ /**
62
+ * Export conversation as JSON
63
+ */
64
+ toJSON(): AgentMessage[];
65
+ /**
66
+ * Import conversation from JSON
67
+ */
68
+ fromJSON(messages: AgentMessage[]): void;
69
+ }
70
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/memory/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtE;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,GAAE,MAAY;IAIrC;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAUhC;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK9B;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI;IAS3D;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAa3D;;OAEG;IACH,WAAW,IAAI,YAAY,EAAE;IAI7B;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,YAAY,EAAE;IAIrD;;OAEG;IACH,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE;IAIlC;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,OAAO,CAAC,IAAI;IAWZ;;OAEG;IACH,SAAS,IAAI,MAAM;IAUnB;;OAEG;IACH,MAAM,IAAI,YAAY,EAAE;IAIxB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI;CAGzC"}