vidspotai-shared 1.0.67 → 1.0.69-dev.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 (502) hide show
  1. package/lib/globals/aiModels/enums.d.ts +63 -6
  2. package/lib/globals/aiModels/enums.d.ts.map +1 -1
  3. package/lib/globals/aiModels/enums.js +78 -9
  4. package/lib/globals/aiModels/index.d.ts +2 -0
  5. package/lib/globals/aiModels/index.d.ts.map +1 -1
  6. package/lib/globals/aiModels/index.js +6 -0
  7. package/lib/globals/aiModels/providers/alibaba.d.ts +4 -0
  8. package/lib/globals/aiModels/providers/alibaba.d.ts.map +1 -0
  9. package/lib/globals/aiModels/providers/alibaba.js +194 -0
  10. package/lib/globals/aiModels/providers/bytedance.d.ts.map +1 -1
  11. package/lib/globals/aiModels/providers/bytedance.js +19 -0
  12. package/lib/globals/aiModels/providers/elevenlabs.d.ts +14 -0
  13. package/lib/globals/aiModels/providers/elevenlabs.d.ts.map +1 -0
  14. package/lib/globals/aiModels/providers/elevenlabs.js +29 -0
  15. package/lib/globals/aiModels/providers/google.d.ts.map +1 -1
  16. package/lib/globals/aiModels/providers/google.js +150 -2
  17. package/lib/globals/aiModels/providers/kling.d.ts.map +1 -1
  18. package/lib/globals/aiModels/providers/kling.js +280 -37
  19. package/lib/globals/aiModels/providers/minimax.d.ts.map +1 -1
  20. package/lib/globals/aiModels/providers/minimax.js +73 -2
  21. package/lib/globals/aiModels/providers/openai.d.ts.map +1 -1
  22. package/lib/globals/aiModels/providers/openai.js +90 -6
  23. package/lib/globals/aiModels/providers/pixverse.d.ts.map +1 -1
  24. package/lib/globals/aiModels/providers/pixverse.js +111 -29
  25. package/lib/globals/aiModels/providers/pixverseTemplates.d.ts +36 -0
  26. package/lib/globals/aiModels/providers/pixverseTemplates.d.ts.map +1 -0
  27. package/lib/globals/aiModels/providers/pixverseTemplates.js +42 -0
  28. package/lib/globals/aiModels/providers/runway.d.ts.map +1 -1
  29. package/lib/globals/aiModels/providers/runway.js +64 -2
  30. package/lib/globals/aiModels/tierHelpers.d.ts +33 -0
  31. package/lib/globals/aiModels/tierHelpers.d.ts.map +1 -0
  32. package/lib/globals/aiModels/tierHelpers.js +109 -0
  33. package/lib/globals/aiModels/types.d.ts +20 -1
  34. package/lib/globals/aiModels/types.d.ts.map +1 -1
  35. package/lib/globals/ttsModels/index.d.ts +2 -0
  36. package/lib/globals/ttsModels/index.d.ts.map +1 -1
  37. package/lib/globals/ttsModels/index.js +9 -1
  38. package/lib/globals/ttsModels/providers/minimax.d.ts +8 -0
  39. package/lib/globals/ttsModels/providers/minimax.d.ts.map +1 -0
  40. package/lib/globals/ttsModels/providers/minimax.js +18 -0
  41. package/lib/globals/ttsModels/providers/openai.d.ts +12 -0
  42. package/lib/globals/ttsModels/providers/openai.d.ts.map +1 -0
  43. package/lib/globals/ttsModels/providers/openai.js +22 -0
  44. package/lib/globals/ttsModels/types.d.ts +1 -1
  45. package/lib/globals/ttsModels/types.d.ts.map +1 -1
  46. package/lib/globals/ttsModels/voices.d.ts +39 -4
  47. package/lib/globals/ttsModels/voices.d.ts.map +1 -1
  48. package/lib/globals/ttsModels/voices.js +273 -26
  49. package/lib/globals/types.d.ts +59 -1
  50. package/lib/globals/types.d.ts.map +1 -1
  51. package/lib/globals/types.js +81 -2
  52. package/lib/index.d.ts +1 -0
  53. package/lib/index.d.ts.map +1 -1
  54. package/lib/index.js +1 -0
  55. package/lib/models/agent.model.d.ts +357 -0
  56. package/lib/models/agent.model.d.ts.map +1 -0
  57. package/lib/models/agent.model.js +21 -0
  58. package/lib/models/cachedAsset.model.d.ts +18 -0
  59. package/lib/models/cachedAsset.model.d.ts.map +1 -0
  60. package/lib/models/cachedAsset.model.js +2 -0
  61. package/lib/models/cachedRawAsset.model.d.ts +20 -0
  62. package/lib/models/cachedRawAsset.model.d.ts.map +1 -0
  63. package/lib/models/cachedRawAsset.model.js +2 -0
  64. package/lib/models/image.model.d.ts +47 -0
  65. package/lib/models/image.model.d.ts.map +1 -0
  66. package/lib/models/image.model.js +2 -0
  67. package/lib/models/index.d.ts +6 -0
  68. package/lib/models/index.d.ts.map +1 -1
  69. package/lib/models/index.js +6 -0
  70. package/lib/models/notification.model.d.ts +25 -0
  71. package/lib/models/notification.model.d.ts.map +1 -0
  72. package/lib/models/notification.model.js +2 -0
  73. package/lib/models/ref.model.d.ts +80 -0
  74. package/lib/models/ref.model.d.ts.map +1 -0
  75. package/lib/models/ref.model.js +13 -0
  76. package/lib/models/share.model.d.ts +29 -0
  77. package/lib/models/share.model.d.ts.map +1 -0
  78. package/lib/models/share.model.js +2 -0
  79. package/lib/models/user.model.d.ts +12 -1
  80. package/lib/models/user.model.d.ts.map +1 -1
  81. package/lib/models/video.model.d.ts +120 -0
  82. package/lib/models/video.model.d.ts.map +1 -1
  83. package/lib/models/video.model.js +10 -0
  84. package/lib/schemas/agentPersona.schema.d.ts +10 -0
  85. package/lib/schemas/agentPersona.schema.d.ts.map +1 -0
  86. package/lib/schemas/agentPersona.schema.js +11 -0
  87. package/lib/schemas/agentRunJob.schema.d.ts +105 -0
  88. package/lib/schemas/agentRunJob.schema.d.ts.map +1 -0
  89. package/lib/schemas/agentRunJob.schema.js +88 -0
  90. package/lib/schemas/brandKit.schema.d.ts +113 -0
  91. package/lib/schemas/brandKit.schema.d.ts.map +1 -0
  92. package/lib/schemas/brandKit.schema.js +46 -0
  93. package/lib/schemas/brief.schema.d.ts +263 -0
  94. package/lib/schemas/brief.schema.d.ts.map +1 -0
  95. package/lib/schemas/brief.schema.js +157 -0
  96. package/lib/schemas/index.d.ts +7 -0
  97. package/lib/schemas/index.d.ts.map +1 -0
  98. package/lib/schemas/index.js +22 -0
  99. package/lib/schemas/project.schema.d.ts +1025 -0
  100. package/lib/schemas/project.schema.d.ts.map +1 -0
  101. package/lib/schemas/project.schema.js +256 -0
  102. package/lib/schemas/videoPlan.schema.d.ts +590 -0
  103. package/lib/schemas/videoPlan.schema.d.ts.map +1 -0
  104. package/lib/schemas/videoPlan.schema.js +412 -0
  105. package/lib/services/agent/beatSnap.d.ts +10 -0
  106. package/lib/services/agent/beatSnap.d.ts.map +1 -0
  107. package/lib/services/agent/beatSnap.js +128 -0
  108. package/lib/services/agent/bibleBuilder.d.ts +43 -0
  109. package/lib/services/agent/bibleBuilder.d.ts.map +1 -0
  110. package/lib/services/agent/bibleBuilder.js +102 -0
  111. package/lib/services/agent/bibleImageVision.d.ts +45 -0
  112. package/lib/services/agent/bibleImageVision.d.ts.map +1 -0
  113. package/lib/services/agent/bibleImageVision.js +169 -0
  114. package/lib/services/agent/chatAgent.d.ts +79 -0
  115. package/lib/services/agent/chatAgent.d.ts.map +1 -0
  116. package/lib/services/agent/chatAgent.js +136 -0
  117. package/lib/services/agent/costPreflight.d.ts +61 -0
  118. package/lib/services/agent/costPreflight.d.ts.map +1 -0
  119. package/lib/services/agent/costPreflight.js +143 -0
  120. package/lib/services/agent/critic.d.ts +103 -0
  121. package/lib/services/agent/critic.d.ts.map +1 -0
  122. package/lib/services/agent/critic.js +139 -0
  123. package/lib/services/agent/editClassifier.d.ts +262 -0
  124. package/lib/services/agent/editClassifier.d.ts.map +1 -0
  125. package/lib/services/agent/editClassifier.js +186 -0
  126. package/lib/services/agent/eval/index.d.ts +5 -0
  127. package/lib/services/agent/eval/index.d.ts.map +1 -0
  128. package/lib/services/agent/eval/index.js +20 -0
  129. package/lib/services/agent/eval/judge.d.ts +14 -0
  130. package/lib/services/agent/eval/judge.d.ts.map +1 -0
  131. package/lib/services/agent/eval/judge.js +96 -0
  132. package/lib/services/agent/eval/recorder.d.ts +28 -0
  133. package/lib/services/agent/eval/recorder.d.ts.map +1 -0
  134. package/lib/services/agent/eval/recorder.js +100 -0
  135. package/lib/services/agent/eval/seedBriefs.d.ts +16 -0
  136. package/lib/services/agent/eval/seedBriefs.d.ts.map +1 -0
  137. package/lib/services/agent/eval/seedBriefs.js +1188 -0
  138. package/lib/services/agent/eval/types.d.ts +230 -0
  139. package/lib/services/agent/eval/types.d.ts.map +1 -0
  140. package/lib/services/agent/eval/types.js +73 -0
  141. package/lib/services/agent/executor.d.ts +141 -0
  142. package/lib/services/agent/executor.d.ts.map +1 -0
  143. package/lib/services/agent/executor.js +561 -0
  144. package/lib/services/agent/globalActions.d.ts +49 -0
  145. package/lib/services/agent/globalActions.d.ts.map +1 -0
  146. package/lib/services/agent/globalActions.js +328 -0
  147. package/lib/services/agent/index.d.ts +38 -0
  148. package/lib/services/agent/index.d.ts.map +1 -0
  149. package/lib/services/agent/index.js +53 -0
  150. package/lib/services/agent/llmCaller.d.ts +144 -0
  151. package/lib/services/agent/llmCaller.d.ts.map +1 -0
  152. package/lib/services/agent/llmCaller.js +16 -0
  153. package/lib/services/agent/llmCallerAnthropic.d.ts +90 -0
  154. package/lib/services/agent/llmCallerAnthropic.d.ts.map +1 -0
  155. package/lib/services/agent/llmCallerAnthropic.js +255 -0
  156. package/lib/services/agent/llmCallerGateway.d.ts +61 -0
  157. package/lib/services/agent/llmCallerGateway.d.ts.map +1 -0
  158. package/lib/services/agent/llmCallerGateway.js +360 -0
  159. package/lib/services/agent/llmCallerRegistry.d.ts +6 -0
  160. package/lib/services/agent/llmCallerRegistry.d.ts.map +1 -0
  161. package/lib/services/agent/llmCallerRegistry.js +39 -0
  162. package/lib/services/agent/modelQualityNotes.d.ts +100 -0
  163. package/lib/services/agent/modelQualityNotes.d.ts.map +1 -0
  164. package/lib/services/agent/modelQualityNotes.js +248 -0
  165. package/lib/services/agent/modelRouter.d.ts +41 -0
  166. package/lib/services/agent/modelRouter.d.ts.map +1 -0
  167. package/lib/services/agent/modelRouter.js +65 -0
  168. package/lib/services/agent/musicSelect.d.ts +23 -0
  169. package/lib/services/agent/musicSelect.d.ts.map +1 -0
  170. package/lib/services/agent/musicSelect.js +109 -0
  171. package/lib/services/agent/overlayRenderer.d.ts +67 -0
  172. package/lib/services/agent/overlayRenderer.d.ts.map +1 -0
  173. package/lib/services/agent/overlayRenderer.js +253 -0
  174. package/lib/services/agent/perSceneCritic.d.ts +90 -0
  175. package/lib/services/agent/perSceneCritic.d.ts.map +1 -0
  176. package/lib/services/agent/perSceneCritic.js +125 -0
  177. package/lib/services/agent/personas.d.ts +78 -0
  178. package/lib/services/agent/personas.d.ts.map +1 -0
  179. package/lib/services/agent/personas.js +177 -0
  180. package/lib/services/agent/planDiff.d.ts +76 -0
  181. package/lib/services/agent/planDiff.d.ts.map +1 -0
  182. package/lib/services/agent/planDiff.js +182 -0
  183. package/lib/services/agent/planMutations.d.ts +46 -0
  184. package/lib/services/agent/planMutations.d.ts.map +1 -0
  185. package/lib/services/agent/planMutations.js +120 -0
  186. package/lib/services/agent/planner/Planner.d.ts +107 -0
  187. package/lib/services/agent/planner/Planner.d.ts.map +1 -0
  188. package/lib/services/agent/planner/Planner.js +591 -0
  189. package/lib/services/agent/planner/overlaySanity.d.ts +7 -0
  190. package/lib/services/agent/planner/overlaySanity.d.ts.map +1 -0
  191. package/lib/services/agent/planner/overlaySanity.js +86 -0
  192. package/lib/services/agent/planner/promptSections.d.ts +25 -0
  193. package/lib/services/agent/planner/promptSections.d.ts.map +1 -0
  194. package/lib/services/agent/planner/promptSections.js +174 -0
  195. package/lib/services/agent/planner/repair.d.ts +16 -0
  196. package/lib/services/agent/planner/repair.d.ts.map +1 -0
  197. package/lib/services/agent/planner/repair.js +51 -0
  198. package/lib/services/agent/planner/structuralRules.d.ts +10 -0
  199. package/lib/services/agent/planner/structuralRules.d.ts.map +1 -0
  200. package/lib/services/agent/planner/structuralRules.js +111 -0
  201. package/lib/services/agent/planner/validators.d.ts +65 -0
  202. package/lib/services/agent/planner/validators.d.ts.map +1 -0
  203. package/lib/services/agent/planner/validators.js +284 -0
  204. package/lib/services/agent/planner.d.ts +3 -0
  205. package/lib/services/agent/planner.d.ts.map +1 -0
  206. package/lib/services/agent/planner.js +14 -0
  207. package/lib/services/agent/providerFallback/chains.d.ts +100 -0
  208. package/lib/services/agent/providerFallback/chains.d.ts.map +1 -0
  209. package/lib/services/agent/providerFallback/chains.js +198 -0
  210. package/lib/services/agent/providerFallback/classifier.d.ts +36 -0
  211. package/lib/services/agent/providerFallback/classifier.d.ts.map +1 -0
  212. package/lib/services/agent/providerFallback/classifier.js +103 -0
  213. package/lib/services/agent/providerFallback/index.d.ts +4 -0
  214. package/lib/services/agent/providerFallback/index.d.ts.map +1 -0
  215. package/lib/services/agent/providerFallback/index.js +19 -0
  216. package/lib/services/agent/providerFallback/withFallback.d.ts +60 -0
  217. package/lib/services/agent/providerFallback/withFallback.d.ts.map +1 -0
  218. package/lib/services/agent/providerFallback/withFallback.js +93 -0
  219. package/lib/services/agent/providerTaskCache.d.ts +50 -0
  220. package/lib/services/agent/providerTaskCache.d.ts.map +1 -0
  221. package/lib/services/agent/providerTaskCache.js +98 -0
  222. package/lib/services/agent/qualityGate.d.ts +82 -0
  223. package/lib/services/agent/qualityGate.d.ts.map +1 -0
  224. package/lib/services/agent/qualityGate.js +232 -0
  225. package/lib/services/agent/referenceImageRenderer.d.ts +37 -0
  226. package/lib/services/agent/referenceImageRenderer.d.ts.map +1 -0
  227. package/lib/services/agent/referenceImageRenderer.js +92 -0
  228. package/lib/services/agent/regenCore.d.ts +60 -0
  229. package/lib/services/agent/regenCore.d.ts.map +1 -0
  230. package/lib/services/agent/regenCore.js +487 -0
  231. package/lib/services/agent/runHelpers.d.ts +44 -0
  232. package/lib/services/agent/runHelpers.d.ts.map +1 -0
  233. package/lib/services/agent/runHelpers.js +196 -0
  234. package/lib/services/agent/sceneLayoutVision.d.ts +90 -0
  235. package/lib/services/agent/sceneLayoutVision.d.ts.map +1 -0
  236. package/lib/services/agent/sceneLayoutVision.js +212 -0
  237. package/lib/services/agent/stitchedVideoCritic.d.ts +136 -0
  238. package/lib/services/agent/stitchedVideoCritic.d.ts.map +1 -0
  239. package/lib/services/agent/stitchedVideoCritic.gemini.d.ts +26 -0
  240. package/lib/services/agent/stitchedVideoCritic.gemini.d.ts.map +1 -0
  241. package/lib/services/agent/stitchedVideoCritic.gemini.js +198 -0
  242. package/lib/services/agent/stitchedVideoCritic.js +162 -0
  243. package/lib/services/agent/taskPoller.d.ts +65 -0
  244. package/lib/services/agent/taskPoller.d.ts.map +1 -0
  245. package/lib/services/agent/taskPoller.js +176 -0
  246. package/lib/services/agent/textOverlayStyles.d.ts +60 -0
  247. package/lib/services/agent/textOverlayStyles.d.ts.map +1 -0
  248. package/lib/services/agent/textOverlayStyles.js +174 -0
  249. package/lib/services/agent/toolRegistry.d.ts +73 -0
  250. package/lib/services/agent/toolRegistry.d.ts.map +1 -0
  251. package/lib/services/agent/toolRegistry.js +95 -0
  252. package/lib/services/agent/tools/analyzeReference.tool.d.ts +36 -0
  253. package/lib/services/agent/tools/analyzeReference.tool.d.ts.map +1 -0
  254. package/lib/services/agent/tools/analyzeReference.tool.js +44 -0
  255. package/lib/services/agent/tools/animateImage.tool.d.ts +24 -0
  256. package/lib/services/agent/tools/animateImage.tool.d.ts.map +1 -0
  257. package/lib/services/agent/tools/animateImage.tool.js +115 -0
  258. package/lib/services/agent/tools/animateImageWithMotionBrush.tool.d.ts +32 -0
  259. package/lib/services/agent/tools/animateImageWithMotionBrush.tool.d.ts.map +1 -0
  260. package/lib/services/agent/tools/animateImageWithMotionBrush.tool.js +135 -0
  261. package/lib/services/agent/tools/composeScene.tool.d.ts +978 -0
  262. package/lib/services/agent/tools/composeScene.tool.d.ts.map +1 -0
  263. package/lib/services/agent/tools/composeScene.tool.js +90 -0
  264. package/lib/services/agent/tools/estimateCost.tool.d.ts +352 -0
  265. package/lib/services/agent/tools/estimateCost.tool.d.ts.map +1 -0
  266. package/lib/services/agent/tools/estimateCost.tool.js +62 -0
  267. package/lib/services/agent/tools/generateAvatarVideo.tool.d.ts +32 -0
  268. package/lib/services/agent/tools/generateAvatarVideo.tool.d.ts.map +1 -0
  269. package/lib/services/agent/tools/generateAvatarVideo.tool.js +143 -0
  270. package/lib/services/agent/tools/generateCaptions.tool.d.ts +42 -0
  271. package/lib/services/agent/tools/generateCaptions.tool.d.ts.map +1 -0
  272. package/lib/services/agent/tools/generateCaptions.tool.js +196 -0
  273. package/lib/services/agent/tools/generateImage.tool.d.ts +74 -0
  274. package/lib/services/agent/tools/generateImage.tool.d.ts.map +1 -0
  275. package/lib/services/agent/tools/generateImage.tool.js +206 -0
  276. package/lib/services/agent/tools/generateVideo.tool.d.ts +31 -0
  277. package/lib/services/agent/tools/generateVideo.tool.d.ts.map +1 -0
  278. package/lib/services/agent/tools/generateVideo.tool.js +153 -0
  279. package/lib/services/agent/tools/generateVoiceover.tool.d.ts +44 -0
  280. package/lib/services/agent/tools/generateVoiceover.tool.d.ts.map +1 -0
  281. package/lib/services/agent/tools/generateVoiceover.tool.js +206 -0
  282. package/lib/services/agent/tools/index.d.ts +20 -0
  283. package/lib/services/agent/tools/index.d.ts.map +1 -0
  284. package/lib/services/agent/tools/index.js +35 -0
  285. package/lib/services/agent/tools/planVideo.tool.d.ts +343 -0
  286. package/lib/services/agent/tools/planVideo.tool.d.ts.map +1 -0
  287. package/lib/services/agent/tools/planVideo.tool.js +46 -0
  288. package/lib/services/agent/tools/render.tool.d.ts +367 -0
  289. package/lib/services/agent/tools/render.tool.d.ts.map +1 -0
  290. package/lib/services/agent/tools/render.tool.js +48 -0
  291. package/lib/services/agent/tools/searchMusic.tool.d.ts +49 -0
  292. package/lib/services/agent/tools/searchMusic.tool.d.ts.map +1 -0
  293. package/lib/services/agent/tools/searchMusic.tool.js +74 -0
  294. package/lib/services/agent/tools/searchStock.tool.d.ts +41 -0
  295. package/lib/services/agent/tools/searchStock.tool.d.ts.map +1 -0
  296. package/lib/services/agent/tools/searchStock.tool.js +314 -0
  297. package/lib/services/agent/tools/searchUserLibrary.tool.d.ts +59 -0
  298. package/lib/services/agent/tools/searchUserLibrary.tool.d.ts.map +1 -0
  299. package/lib/services/agent/tools/searchUserLibrary.tool.js +58 -0
  300. package/lib/services/agent/ttsDuration.d.ts +29 -0
  301. package/lib/services/agent/ttsDuration.d.ts.map +1 -0
  302. package/lib/services/agent/ttsDuration.js +60 -0
  303. package/lib/services/aiGen/aiGenFactory.service.d.ts +21 -1
  304. package/lib/services/aiGen/aiGenFactory.service.d.ts.map +1 -1
  305. package/lib/services/aiGen/aiGenFactory.service.js +84 -21
  306. package/lib/services/aiGen/canonicalAdapters/cameraControl.types.d.ts +31 -0
  307. package/lib/services/aiGen/canonicalAdapters/cameraControl.types.d.ts.map +1 -0
  308. package/lib/services/aiGen/canonicalAdapters/cameraControl.types.js +2 -0
  309. package/lib/services/aiGen/canonicalAdapters/index.d.ts +3 -0
  310. package/lib/services/aiGen/canonicalAdapters/index.d.ts.map +1 -0
  311. package/lib/services/aiGen/canonicalAdapters/index.js +18 -0
  312. package/lib/services/aiGen/canonicalAdapters/multiShot.types.d.ts +23 -0
  313. package/lib/services/aiGen/canonicalAdapters/multiShot.types.d.ts.map +1 -0
  314. package/lib/services/aiGen/canonicalAdapters/multiShot.types.js +12 -0
  315. package/lib/services/aiGen/helpers.d.ts.map +1 -1
  316. package/lib/services/aiGen/helpers.js +10 -0
  317. package/lib/services/aiGen/providers/alibaba/alibaba.d.ts +14 -3
  318. package/lib/services/aiGen/providers/alibaba/alibaba.d.ts.map +1 -1
  319. package/lib/services/aiGen/providers/alibaba/alibaba.js +155 -22
  320. package/lib/services/aiGen/providers/baseAiGenProvider.service.d.ts +22 -4
  321. package/lib/services/aiGen/providers/baseAiGenProvider.service.d.ts.map +1 -1
  322. package/lib/services/aiGen/providers/baseAiGenProvider.service.js +32 -0
  323. package/lib/services/aiGen/providers/bytedance/bytedance.service.d.ts.map +1 -1
  324. package/lib/services/aiGen/providers/bytedance/bytedance.service.js +13 -13
  325. package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.d.ts +18 -0
  326. package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.d.ts.map +1 -0
  327. package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.js +102 -0
  328. package/lib/services/aiGen/providers/fal/falImage.service.d.ts +15 -0
  329. package/lib/services/aiGen/providers/fal/falImage.service.d.ts.map +1 -0
  330. package/lib/services/aiGen/providers/fal/falImage.service.js +141 -0
  331. package/lib/services/aiGen/providers/fal/index.d.ts +2 -0
  332. package/lib/services/aiGen/providers/fal/index.d.ts.map +1 -0
  333. package/lib/services/aiGen/providers/fal/index.js +17 -0
  334. package/lib/services/aiGen/providers/google/google.service.d.ts +11 -2
  335. package/lib/services/aiGen/providers/google/google.service.d.ts.map +1 -1
  336. package/lib/services/aiGen/providers/google/google.service.js +245 -28
  337. package/lib/services/aiGen/providers/index.d.ts +3 -0
  338. package/lib/services/aiGen/providers/index.d.ts.map +1 -1
  339. package/lib/services/aiGen/providers/index.js +3 -0
  340. package/lib/services/aiGen/providers/kling/cameraAdapter.d.ts +4 -0
  341. package/lib/services/aiGen/providers/kling/cameraAdapter.d.ts.map +1 -0
  342. package/lib/services/aiGen/providers/kling/cameraAdapter.js +53 -0
  343. package/lib/services/aiGen/providers/kling/index.d.ts +1 -0
  344. package/lib/services/aiGen/providers/kling/index.d.ts.map +1 -1
  345. package/lib/services/aiGen/providers/kling/index.js +1 -0
  346. package/lib/services/aiGen/providers/kling/kling.service.d.ts +12 -1
  347. package/lib/services/aiGen/providers/kling/kling.service.d.ts.map +1 -1
  348. package/lib/services/aiGen/providers/kling/kling.service.js +357 -26
  349. package/lib/services/aiGen/providers/kling/klingImage.service.d.ts +21 -0
  350. package/lib/services/aiGen/providers/kling/klingImage.service.d.ts.map +1 -0
  351. package/lib/services/aiGen/providers/kling/klingImage.service.js +208 -0
  352. package/lib/services/aiGen/providers/kling/types.d.ts +105 -0
  353. package/lib/services/aiGen/providers/kling/types.d.ts.map +1 -1
  354. package/lib/services/aiGen/providers/minimax/minimax.service.d.ts +15 -2
  355. package/lib/services/aiGen/providers/minimax/minimax.service.d.ts.map +1 -1
  356. package/lib/services/aiGen/providers/minimax/minimax.service.js +127 -1
  357. package/lib/services/aiGen/providers/minimax/types.d.ts +10 -1
  358. package/lib/services/aiGen/providers/minimax/types.d.ts.map +1 -1
  359. package/lib/services/aiGen/providers/openai/openai.service.d.ts +8 -2
  360. package/lib/services/aiGen/providers/openai/openai.service.d.ts.map +1 -1
  361. package/lib/services/aiGen/providers/openai/openai.service.js +184 -7
  362. package/lib/services/aiGen/providers/pexels/index.d.ts +2 -0
  363. package/lib/services/aiGen/providers/pexels/index.d.ts.map +1 -0
  364. package/lib/services/aiGen/providers/{azure → pexels}/index.js +1 -1
  365. package/lib/services/aiGen/providers/pexels/pexels.service.d.ts +11 -0
  366. package/lib/services/aiGen/providers/pexels/pexels.service.d.ts.map +1 -0
  367. package/lib/services/aiGen/providers/pexels/pexels.service.js +150 -0
  368. package/lib/services/aiGen/providers/pixabay/index.d.ts +2 -0
  369. package/lib/services/aiGen/providers/pixabay/index.d.ts.map +1 -0
  370. package/lib/services/aiGen/providers/pixabay/index.js +17 -0
  371. package/lib/services/aiGen/providers/pixabay/pixabay.service.d.ts +12 -0
  372. package/lib/services/aiGen/providers/pixabay/pixabay.service.d.ts.map +1 -0
  373. package/lib/services/aiGen/providers/pixabay/pixabay.service.js +156 -0
  374. package/lib/services/aiGen/providers/pixverse/pixverse.service.d.ts.map +1 -1
  375. package/lib/services/aiGen/providers/pixverse/pixverse.service.js +125 -2
  376. package/lib/services/aiGen/providers/runway/cameraAdapter.d.ts +3 -0
  377. package/lib/services/aiGen/providers/runway/cameraAdapter.d.ts.map +1 -0
  378. package/lib/services/aiGen/providers/runway/cameraAdapter.js +46 -0
  379. package/lib/services/aiGen/providers/runway/runway.service.d.ts +12 -2
  380. package/lib/services/aiGen/providers/runway/runway.service.d.ts.map +1 -1
  381. package/lib/services/aiGen/providers/runway/runway.service.js +224 -21
  382. package/lib/services/aiGen/providers/types.d.ts +263 -6
  383. package/lib/services/aiGen/providers/types.d.ts.map +1 -1
  384. package/lib/services/aiGen/providers/unsplash/index.d.ts +2 -0
  385. package/lib/services/aiGen/providers/unsplash/index.d.ts.map +1 -0
  386. package/lib/services/aiGen/providers/unsplash/index.js +17 -0
  387. package/lib/services/aiGen/providers/unsplash/unsplash.service.d.ts +16 -0
  388. package/lib/services/aiGen/providers/unsplash/unsplash.service.d.ts.map +1 -0
  389. package/lib/services/aiGen/providers/unsplash/unsplash.service.js +131 -0
  390. package/lib/services/analytics.service.js +2 -4
  391. package/lib/services/apiUsageCounter.service.d.ts +20 -0
  392. package/lib/services/apiUsageCounter.service.d.ts.map +1 -0
  393. package/lib/services/apiUsageCounter.service.js +84 -0
  394. package/lib/services/asr/assemblyai.service.d.ts +72 -0
  395. package/lib/services/asr/assemblyai.service.d.ts.map +1 -0
  396. package/lib/services/asr/assemblyai.service.js +89 -0
  397. package/lib/services/asr/index.d.ts +3 -0
  398. package/lib/services/asr/index.d.ts.map +1 -0
  399. package/lib/services/asr/index.js +18 -0
  400. package/lib/services/asr/whisper.service.d.ts +18 -0
  401. package/lib/services/asr/whisper.service.d.ts.map +1 -0
  402. package/lib/services/asr/whisper.service.js +151 -0
  403. package/lib/services/assetCache.service.d.ts +54 -0
  404. package/lib/services/assetCache.service.d.ts.map +1 -0
  405. package/lib/services/assetCache.service.js +109 -0
  406. package/lib/services/audioAnalysis/index.d.ts +2 -0
  407. package/lib/services/audioAnalysis/index.d.ts.map +1 -0
  408. package/lib/services/audioAnalysis/index.js +17 -0
  409. package/lib/services/audioAnalysis/onsetDetection.service.d.ts +50 -0
  410. package/lib/services/audioAnalysis/onsetDetection.service.d.ts.map +1 -0
  411. package/lib/services/audioAnalysis/onsetDetection.service.js +140 -0
  412. package/lib/services/bullmq.service.d.ts +6 -1
  413. package/lib/services/bullmq.service.d.ts.map +1 -1
  414. package/lib/services/bullmq.service.js +62 -14
  415. package/lib/services/credit.service.d.ts.map +1 -1
  416. package/lib/services/credit.service.js +45 -7
  417. package/lib/services/credits/pricing.d.ts +58 -0
  418. package/lib/services/credits/pricing.d.ts.map +1 -0
  419. package/lib/services/credits/pricing.js +111 -0
  420. package/lib/services/editor/designToProject.d.ts +75 -0
  421. package/lib/services/editor/designToProject.d.ts.map +1 -0
  422. package/lib/services/editor/designToProject.js +295 -0
  423. package/lib/services/editor/planToProject.d.ts +84 -0
  424. package/lib/services/editor/planToProject.d.ts.map +1 -0
  425. package/lib/services/editor/planToProject.js +395 -0
  426. package/lib/services/editor/projectToDesign.d.ts +4 -0
  427. package/lib/services/editor/projectToDesign.d.ts.map +1 -0
  428. package/lib/services/editor/projectToDesign.js +186 -0
  429. package/lib/services/firestore.service.d.ts +17 -0
  430. package/lib/services/firestore.service.d.ts.map +1 -1
  431. package/lib/services/firestore.service.js +30 -0
  432. package/lib/services/gcp/index.d.ts +1 -0
  433. package/lib/services/gcp/index.d.ts.map +1 -1
  434. package/lib/services/gcp/index.js +1 -0
  435. package/lib/services/gcp/uploadAudioBuffer.d.ts +13 -0
  436. package/lib/services/gcp/uploadAudioBuffer.d.ts.map +1 -0
  437. package/lib/services/gcp/uploadAudioBuffer.js +28 -0
  438. package/lib/services/index.d.ts +13 -0
  439. package/lib/services/index.d.ts.map +1 -1
  440. package/lib/services/index.js +13 -0
  441. package/lib/services/musicGen/index.d.ts +6 -0
  442. package/lib/services/musicGen/index.d.ts.map +1 -0
  443. package/lib/services/musicGen/index.js +26 -0
  444. package/lib/services/musicGen/musicSearchFactory.service.d.ts +14 -0
  445. package/lib/services/musicGen/musicSearchFactory.service.d.ts.map +1 -0
  446. package/lib/services/musicGen/musicSearchFactory.service.js +59 -0
  447. package/lib/services/musicGen/providers/curated.service.d.ts +24 -0
  448. package/lib/services/musicGen/providers/curated.service.d.ts.map +1 -0
  449. package/lib/services/musicGen/providers/curated.service.js +173 -0
  450. package/lib/services/musicGen/providers/jamendo.service.d.ts +8 -0
  451. package/lib/services/musicGen/providers/jamendo.service.d.ts.map +1 -0
  452. package/lib/services/musicGen/providers/jamendo.service.js +113 -0
  453. package/lib/services/musicGen/providers/mubert.service.d.ts +10 -0
  454. package/lib/services/musicGen/providers/mubert.service.d.ts.map +1 -0
  455. package/lib/services/musicGen/providers/mubert.service.js +128 -0
  456. package/lib/services/musicGen/types.d.ts +46 -0
  457. package/lib/services/musicGen/types.d.ts.map +1 -0
  458. package/lib/services/musicGen/types.js +10 -0
  459. package/lib/services/notification.service.d.ts +22 -0
  460. package/lib/services/notification.service.d.ts.map +1 -0
  461. package/lib/services/notification.service.js +76 -0
  462. package/lib/services/rateLimiter/distributedRateLimiter.service.d.ts +78 -0
  463. package/lib/services/rateLimiter/distributedRateLimiter.service.d.ts.map +1 -0
  464. package/lib/services/rateLimiter/distributedRateLimiter.service.js +269 -0
  465. package/lib/services/rateLimiter/index.d.ts +2 -0
  466. package/lib/services/rateLimiter/index.d.ts.map +1 -0
  467. package/lib/services/rateLimiter/index.js +17 -0
  468. package/lib/services/redis.service.d.ts +9 -0
  469. package/lib/services/redis.service.d.ts.map +1 -1
  470. package/lib/services/redis.service.js +20 -11
  471. package/lib/services/redisOptions.d.ts +22 -0
  472. package/lib/services/redisOptions.d.ts.map +1 -0
  473. package/lib/services/redisOptions.js +51 -0
  474. package/lib/services/tts/index.d.ts +2 -0
  475. package/lib/services/tts/index.d.ts.map +1 -1
  476. package/lib/services/tts/index.js +2 -0
  477. package/lib/services/tts/providers/elevenlabs.service.d.ts.map +1 -1
  478. package/lib/services/tts/providers/elevenlabs.service.js +91 -24
  479. package/lib/services/tts/providers/minimax.service.d.ts +14 -0
  480. package/lib/services/tts/providers/minimax.service.d.ts.map +1 -0
  481. package/lib/services/tts/providers/minimax.service.js +78 -0
  482. package/lib/services/tts/providers/openai.service.d.ts +14 -0
  483. package/lib/services/tts/providers/openai.service.d.ts.map +1 -0
  484. package/lib/services/tts/providers/openai.service.js +73 -0
  485. package/lib/services/tts/ttsFactory.service.d.ts.map +1 -1
  486. package/lib/services/tts/ttsFactory.service.js +6 -0
  487. package/lib/services/tts/types.d.ts +33 -0
  488. package/lib/services/tts/types.d.ts.map +1 -1
  489. package/lib/utils/errors.d.ts +8 -0
  490. package/lib/utils/errors.d.ts.map +1 -1
  491. package/lib/utils/errors.js +8 -0
  492. package/lib/utils/helpers.d.ts +13 -0
  493. package/lib/utils/helpers.d.ts.map +1 -1
  494. package/lib/utils/helpers.js +48 -11
  495. package/lib/utils/logger.d.ts.map +1 -1
  496. package/lib/utils/logger.js +37 -1
  497. package/package.json +5 -1
  498. package/lib/services/aiGen/providers/azure/azure.service.d.ts +0 -14
  499. package/lib/services/aiGen/providers/azure/azure.service.d.ts.map +0 -1
  500. package/lib/services/aiGen/providers/azure/azure.service.js +0 -108
  501. package/lib/services/aiGen/providers/azure/index.d.ts +0 -2
  502. package/lib/services/aiGen/providers/azure/index.d.ts.map +0 -1
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.estimateSceneCredits = estimateSceneCredits;
4
+ exports.estimatePlanOverheadCredits = estimatePlanOverheadCredits;
5
+ exports.estimateProjectCost = estimateProjectCost;
6
+ exports.estimatePlanCost = estimatePlanCost;
7
+ /**
8
+ * Cost preflight — sums credits over a Project JSON's clips by their
9
+ * provenance.creditsSpent. For clips not yet generated, falls back to a
10
+ * conservative tier estimate so the user sees an upper bound BEFORE
11
+ * committing spend.
12
+ *
13
+ * Used by:
14
+ * - the `estimate_cost` agent tool (offered to the planner so it can
15
+ * stay within tierBudget),
16
+ * - the /v1/agent/cost preview endpoint (storyboard preview before render).
17
+ */
18
+ const TIER_FALLBACK_PER_SECOND = {
19
+ T0: 0.5,
20
+ T1: 2,
21
+ T2: 6,
22
+ T3: 14,
23
+ };
24
+ /**
25
+ * TTS cost per voiceover character, in credits (1 credit = $0.10). ElevenLabs
26
+ * Multilingual v2 lists ~$0.30 per 1K chars at the Creator tier; 0.003
27
+ * credits/char tracks that within rounding. Folded into `estimateSceneCredits`
28
+ * so the plan-side charge and the worker's per-scene `creditsActual` stamp
29
+ * stay symmetric (the same fn is used on both sides — the LLM-emitted
30
+ * `scene.voiceoverLine` doesn't change between plan and execute, so
31
+ * reconciliation just works).
32
+ */
33
+ const TTS_PER_CHAR_CREDITS = 0.003;
34
+ /**
35
+ * Plan-overhead credit constants (1 credit = $0.10). Each value is a flat,
36
+ * rounded-up approximation of the corresponding API cost — we don't meter
37
+ * these per-call because the variance is tiny and the metering plumbing
38
+ * would dwarf the saving.
39
+ *
40
+ * Tuning notes:
41
+ * - PLANNER_BASE: Claude Sonnet 4.6 structured call ~$0.05–0.08.
42
+ * - PLANNER_THINKING: +4K extended-thinking budget on T3 ~$0.05–0.10.
43
+ * - WEB_SEARCH: bounded by `maxUses: 5` × $10/1K = $0.05 max.
44
+ * - BIBLE_BUILD: BibleBuilder LLM call + Gemini image-vision pass ~$0.04.
45
+ * - CRITIC: finalize-stage Critic call (Claude + thumbnail vision) ~$0.05–0.10.
46
+ */
47
+ const PLANNER_BASE_CREDITS = 1;
48
+ const PLANNER_THINKING_CREDITS = 1;
49
+ const WEB_SEARCH_CREDITS = 1;
50
+ const BIBLE_BUILD_CREDITS = 1;
51
+ const CRITIC_CREDITS = 1;
52
+ /**
53
+ * Per-scene credit estimate that matches `estimatePlanCost` exactly. Use
54
+ * this anywhere the worker needs to stamp `creditsActual` for a completed
55
+ * scene so the actual-side reconciliation stays symmetric with the
56
+ * plan-side charge. Without this helper, the worker would read
57
+ * `scene.estimatedCredits` directly — but the LLM frequently emits 0 (or
58
+ * omits the field) for T0 scenes, while `estimatePlanCost` substitutes
59
+ * the per-second tier curve for those, producing the classic
60
+ * "charged 19 cr / actual 0.42 cr → refund 18 cr" asymmetry on faceless
61
+ * personas where most scenes are T0.
62
+ *
63
+ * Also folds in TTS cost based on `voiceoverLine.length` — this was an
64
+ * un-billed leak before: ElevenLabs/OpenAI/MiniMax TTS are real $/char and
65
+ * the per-scene rollup never charged for them. Symmetric because the
66
+ * voiceover string is fixed at plan time.
67
+ */
68
+ function estimateSceneCredits(scene) {
69
+ const base = scene.estimatedCredits !== undefined && scene.estimatedCredits > 0
70
+ ? scene.estimatedCredits
71
+ : (scene.durationMs / 1000) * TIER_FALLBACK_PER_SECOND[scene.tier];
72
+ const tts = (scene.voiceoverLine?.length ?? 0) * TTS_PER_CHAR_CREDITS;
73
+ return base + tts;
74
+ }
75
+ /**
76
+ * Plan-level overhead credits — the LLM/vision calls that happen around the
77
+ * scene generations themselves: the planner call, bible build (only on
78
+ * fresh builds, not cache hits), Anthropic web_search grounding (only when
79
+ * the planner actually invoked it), and the finalize-stage critic. These
80
+ * are flat per-plan rather than per-scene; the worker treats them as fully
81
+ * spent (no refund delta), so we don't have to track per-call actuals.
82
+ *
83
+ * Pass `bibleBuilt: false` for cache hits to skip the bible charge. Pass
84
+ * `usedWebResearch: false` when the planner ran the gateway path (no
85
+ * Anthropic web_search). `usedThinking` mirrors T3 premium briefs.
86
+ */
87
+ function estimatePlanOverheadCredits(opts) {
88
+ return (PLANNER_BASE_CREDITS +
89
+ (opts.usedThinking ? PLANNER_THINKING_CREDITS : 0) +
90
+ (opts.usedWebResearch ? WEB_SEARCH_CREDITS : 0) +
91
+ (opts.bibleBuilt ? BIBLE_BUILD_CREDITS : 0) +
92
+ CRITIC_CREDITS);
93
+ }
94
+ const clipDurationMs = (c) => Math.max(0, c.display.to - c.display.from);
95
+ function estimateProjectCost(project) {
96
+ const byTier = { T0: 0, T1: 0, T2: 0, T3: 0 };
97
+ const perClip = [];
98
+ for (const clip of project.clips) {
99
+ const tier = clip.provenance?.tier;
100
+ let credits = clip.provenance?.creditsSpent;
101
+ let estimated = false;
102
+ if (credits === undefined) {
103
+ if (tier) {
104
+ credits =
105
+ (clipDurationMs(clip) / 1000) * TIER_FALLBACK_PER_SECOND[tier];
106
+ estimated = true;
107
+ }
108
+ else {
109
+ credits = 0;
110
+ }
111
+ }
112
+ if (tier)
113
+ byTier[tier] += credits;
114
+ perClip.push({ clipId: clip.id, tier, credits, estimated });
115
+ }
116
+ const totalCredits = perClip.reduce((s, x) => s + x.credits, 0);
117
+ return { totalCredits, byTier, perClip };
118
+ }
119
+ /**
120
+ * Plan-side estimate (pre-execution). The planner already writes
121
+ * `estimatedCredits` per scene + a `totalEstimatedCredits` rollup, so this
122
+ * mostly trusts those values and re-aggregates by tier for the UI chip.
123
+ * Falls back to the same per-second tier curve as `estimateProjectCost`
124
+ * when a scene omits its own estimate.
125
+ */
126
+ function estimatePlanCost(plan) {
127
+ const byTier = { T0: 0, T1: 0, T2: 0, T3: 0 };
128
+ const perClip = [];
129
+ for (const scene of plan.scenes) {
130
+ const tier = scene.tier;
131
+ const credits = estimateSceneCredits(scene);
132
+ const estimated = scene.estimatedCredits === undefined || scene.estimatedCredits === 0;
133
+ byTier[tier] += credits;
134
+ perClip.push({
135
+ clipId: `scene-${scene.sceneIndex}`,
136
+ tier,
137
+ credits,
138
+ estimated,
139
+ });
140
+ }
141
+ const totalCredits = perClip.reduce((s, x) => s + x.credits, 0);
142
+ return { totalCredits, byTier, perClip };
143
+ }
@@ -0,0 +1,103 @@
1
+ import { z } from "zod";
2
+ import { AgentPersona } from "../../schemas/agentPersona.schema";
3
+ import { Project } from "../../schemas/project.schema";
4
+ import { VideoBrief } from "../../schemas/brief.schema";
5
+ import { VideoPlan } from "../../schemas/videoPlan.schema";
6
+ import { LlmCaller } from "./llmCaller";
7
+ import { ModelRouter } from "./modelRouter";
8
+ /**
9
+ * Critic — runs after assets land and BEFORE render. Catches off-brief assets
10
+ * so the agent can self-heal (regenerate / replace with stock) without burning
11
+ * a full render cycle.
12
+ *
13
+ * Rubric (V1):
14
+ * - continuity : do consecutive scenes match in style / lighting?
15
+ * - voSync : does on-screen text align with the VO line?
16
+ * - brandSafety : are any blocked claims present?
17
+ * - consistency : same product / face across scenes (vision check)
18
+ * - costVsTier : did total spend stay within the tier budget?
19
+ *
20
+ * Each rubric item returns pass/warn/fail with a one-line rationale. The
21
+ * agent self-heals up to one pass on the worst-scoring item.
22
+ */
23
+ export declare const CriticSeveritySchema: z.ZodEnum<{
24
+ fail: "fail";
25
+ warn: "warn";
26
+ pass: "pass";
27
+ }>;
28
+ export type CriticSeverity = z.infer<typeof CriticSeveritySchema>;
29
+ export declare const CriticFindingSchema: z.ZodObject<{
30
+ rubric: z.ZodEnum<{
31
+ brandSafety: "brandSafety";
32
+ costVsTier: "costVsTier";
33
+ continuity: "continuity";
34
+ voSync: "voSync";
35
+ consistency: "consistency";
36
+ }>;
37
+ severity: z.ZodEnum<{
38
+ fail: "fail";
39
+ warn: "warn";
40
+ pass: "pass";
41
+ }>;
42
+ clipId: z.ZodOptional<z.ZodString>;
43
+ message: z.ZodString;
44
+ suggestedAction: z.ZodOptional<z.ZodObject<{
45
+ kind: z.ZodEnum<{
46
+ trim: "trim";
47
+ regenerate: "regenerate";
48
+ replace_with_stock: "replace_with_stock";
49
+ swap_voice: "swap_voice";
50
+ }>;
51
+ detail: z.ZodOptional<z.ZodString>;
52
+ }, z.core.$strip>>;
53
+ }, z.core.$strip>;
54
+ export type CriticFinding = z.infer<typeof CriticFindingSchema>;
55
+ export declare const CriticReportSchema: z.ZodObject<{
56
+ overall: z.ZodEnum<{
57
+ fail: "fail";
58
+ warn: "warn";
59
+ pass: "pass";
60
+ }>;
61
+ findings: z.ZodArray<z.ZodObject<{
62
+ rubric: z.ZodEnum<{
63
+ brandSafety: "brandSafety";
64
+ costVsTier: "costVsTier";
65
+ continuity: "continuity";
66
+ voSync: "voSync";
67
+ consistency: "consistency";
68
+ }>;
69
+ severity: z.ZodEnum<{
70
+ fail: "fail";
71
+ warn: "warn";
72
+ pass: "pass";
73
+ }>;
74
+ clipId: z.ZodOptional<z.ZodString>;
75
+ message: z.ZodString;
76
+ suggestedAction: z.ZodOptional<z.ZodObject<{
77
+ kind: z.ZodEnum<{
78
+ trim: "trim";
79
+ regenerate: "regenerate";
80
+ replace_with_stock: "replace_with_stock";
81
+ swap_voice: "swap_voice";
82
+ }>;
83
+ detail: z.ZodOptional<z.ZodString>;
84
+ }, z.core.$strip>>;
85
+ }, z.core.$strip>>;
86
+ }, z.core.$strip>;
87
+ export type CriticReport = z.infer<typeof CriticReportSchema>;
88
+ export interface CriticOptions {
89
+ llm: LlmCaller;
90
+ router?: ModelRouter;
91
+ }
92
+ export declare class Critic {
93
+ private readonly opts;
94
+ private readonly router;
95
+ constructor(opts: CriticOptions);
96
+ review(project: Project, brief: VideoBrief, opts?: {
97
+ persona?: AgentPersona;
98
+ plan?: VideoPlan;
99
+ }): Promise<CriticReport>;
100
+ private formatEmphasis;
101
+ private formatTierMix;
102
+ }
103
+ //# sourceMappingURL=critic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"critic.d.ts","sourceRoot":"","sources":["../../../src/services/agent/critic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,oBAAoB;;;;EAAmC,CAAC;AACrE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;iBAmB9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,SAAS,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,qBAAa,MAAM;IAGL,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAER,IAAI,EAAE,aAAa;IAI1C,MAAM,CACV,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,EACjB,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,YAAY,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAA;KAAO,GACtD,OAAO,CAAC,YAAY,CAAC;IAwExB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,aAAa;CAKtB"}
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Critic = exports.CriticReportSchema = exports.CriticFindingSchema = exports.CriticSeveritySchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const modelRouter_1 = require("./modelRouter");
6
+ const personas_1 = require("./personas");
7
+ /**
8
+ * Critic — runs after assets land and BEFORE render. Catches off-brief assets
9
+ * so the agent can self-heal (regenerate / replace with stock) without burning
10
+ * a full render cycle.
11
+ *
12
+ * Rubric (V1):
13
+ * - continuity : do consecutive scenes match in style / lighting?
14
+ * - voSync : does on-screen text align with the VO line?
15
+ * - brandSafety : are any blocked claims present?
16
+ * - consistency : same product / face across scenes (vision check)
17
+ * - costVsTier : did total spend stay within the tier budget?
18
+ *
19
+ * Each rubric item returns pass/warn/fail with a one-line rationale. The
20
+ * agent self-heals up to one pass on the worst-scoring item.
21
+ */
22
+ exports.CriticSeveritySchema = zod_1.z.enum(["pass", "warn", "fail"]);
23
+ exports.CriticFindingSchema = zod_1.z.object({
24
+ rubric: zod_1.z.enum([
25
+ "continuity",
26
+ "voSync",
27
+ "brandSafety",
28
+ "consistency",
29
+ "costVsTier",
30
+ ]),
31
+ severity: exports.CriticSeveritySchema,
32
+ /** Which clip / scene the finding refers to, if any. */
33
+ clipId: zod_1.z.string().optional(),
34
+ message: zod_1.z.string(),
35
+ /** Optional self-heal hint the executor can act on. */
36
+ suggestedAction: zod_1.z
37
+ .object({
38
+ kind: zod_1.z.enum(["regenerate", "replace_with_stock", "trim", "swap_voice"]),
39
+ detail: zod_1.z.string().optional(),
40
+ })
41
+ .optional(),
42
+ });
43
+ exports.CriticReportSchema = zod_1.z.object({
44
+ overall: exports.CriticSeveritySchema,
45
+ findings: zod_1.z.array(exports.CriticFindingSchema),
46
+ });
47
+ class Critic {
48
+ constructor(opts) {
49
+ this.opts = opts;
50
+ this.router = opts.router ?? new modelRouter_1.ModelRouter();
51
+ }
52
+ async review(project, brief, opts = {}) {
53
+ const model = this.router.pickFor("critic");
54
+ // Vision-mode QA: feed clip thumbnails into the critic for continuity check.
55
+ // Cap at 6 (was 12). Per-scene critic (perSceneCritic.ts) already grades
56
+ // every clip individually before stitch; the stitched critic here only
57
+ // needs enough visual context to judge cross-clip continuity. 6 clips
58
+ // cover that for typical 4–8 scene ad plans and roughly halves the
59
+ // base64 fetch + upload time + Gemini Flash vision tokens, which was
60
+ // the dominant cost driving the soft-fail timeout.
61
+ const thumbnails = project.clips
62
+ .map((c) => (c.type === "video" || c.type === "image" ? c.src : null))
63
+ .filter((u) => Boolean(u))
64
+ .slice(0, 6); // bound vision token spend
65
+ const personaEmphasis = opts.persona
66
+ ? this.formatEmphasis(opts.persona)
67
+ : "";
68
+ const tierMix = opts.plan
69
+ ? this.formatTierMix(opts.plan)
70
+ : "(plan not provided — judge continuity defensively across all scenes)";
71
+ const result = await this.opts.llm.structured({
72
+ model,
73
+ fallbackModel: this.router.fallbackFor("critic"),
74
+ schema: exports.CriticReportSchema,
75
+ schemaName: "CriticReport",
76
+ temperature: 0.2,
77
+ messages: [
78
+ {
79
+ role: "system",
80
+ content: [
81
+ "You are a quality critic for AI-generated short-form videos.",
82
+ "Score the project against the rubric.",
83
+ "",
84
+ "Continuity rule (tier-aware):",
85
+ "- T0/T1 scenes use stock or single AI stills + motion. Do NOT flag",
86
+ " continuity unless lighting / colour palette / subject identity",
87
+ " shifts so hard it breaks comprehension. Mood drift is acceptable.",
88
+ "- T2/T3 scenes are AI-generated motion the user paid a premium for.",
89
+ " Flag continuity for any visible character / product identity drift,",
90
+ " lighting jumps, or style mismatches with adjacent scenes.",
91
+ "",
92
+ "Brand-safety rules (strict):",
93
+ "- Any phrase in brief.claims.block → fail immediately.",
94
+ "- Any unsubstantiated quantitative claim (\"3x faster\", \"99% of users\",",
95
+ " \"clinically proven\", numeric efficacy without a cited source) → warn",
96
+ " with suggestedAction.kind=\"regenerate\" + a corrective rewrite.",
97
+ "- Medical / financial / legal claims default to fail unless brief",
98
+ " explicitly allows them.",
99
+ "",
100
+ "Per-scene tier reference (use to apply the continuity rule):",
101
+ tierMix,
102
+ personaEmphasis,
103
+ ]
104
+ .filter(Boolean)
105
+ .join("\n"),
106
+ },
107
+ {
108
+ role: "user",
109
+ content: [
110
+ `Brief:\n${JSON.stringify(brief, null, 2)}`,
111
+ `\nProject:\n${JSON.stringify(project, null, 2)}`,
112
+ ].join("\n"),
113
+ imageUrls: thumbnails,
114
+ },
115
+ ],
116
+ });
117
+ return result.data;
118
+ }
119
+ formatEmphasis(persona) {
120
+ const emphasis = personas_1.PERSONA_PACKS[persona].criticEmphasis;
121
+ const entries = Object.entries(emphasis);
122
+ if (!entries.length)
123
+ return "";
124
+ const lines = entries
125
+ .map(([axis, weight]) => ` - ${axis}: extra weight ${weight}`)
126
+ .join("\n");
127
+ return [
128
+ "",
129
+ `Persona "${persona}" — apply extra scrutiny to:`,
130
+ lines,
131
+ ].join("\n");
132
+ }
133
+ formatTierMix(plan) {
134
+ return plan.scenes
135
+ .map((s) => ` scene ${s.sceneIndex}: tier=${s.tier} (${s.strategy})`)
136
+ .join("\n");
137
+ }
138
+ }
139
+ exports.Critic = Critic;
@@ -0,0 +1,262 @@
1
+ /**
2
+ * AG-41 — edit-request classifier + types.
3
+ *
4
+ * Goal: when a user (or automated critic) asks for a change to an already-
5
+ * generated video, we should *not* default to "regenerate the whole plan from
6
+ * scratch". Most edits map to a much narrower (and cheaper) operation:
7
+ *
8
+ * modify-text → re-mux only ($0, ~30s)
9
+ * modify-music → re-mux only ($0, ~30s)
10
+ * reorder-scenes → re-mux only ($0, ~30s)
11
+ * modify-vo → re-TTS + re-mux ($0.01 / scene + ~30s)
12
+ * modify-scene-visual → re-gen N scenes + re-stitch ($$ per scene, longest)
13
+ * modify-scene-duration → usually re-gen + re-stitch
14
+ * regenerate-all → fall through to the full planner (last resort)
15
+ *
16
+ * The classifier takes the original plan + the user instruction (or a list of
17
+ * critic findings that triggered an auto-edit) and returns a structured
18
+ * EditRequest. The router (`editRouter.ts`) then dispatches to handlers.
19
+ *
20
+ * This module owns only the *types* and *classifier rules*. Handlers live
21
+ * elsewhere because they pull in ffmpeg / executor / TTS surfaces.
22
+ */
23
+ import { z } from "zod";
24
+ export declare const EditRequestTypeSchema: z.ZodEnum<{
25
+ "modify-text": "modify-text";
26
+ "modify-vo": "modify-vo";
27
+ "modify-music": "modify-music";
28
+ "modify-scene-visual": "modify-scene-visual";
29
+ "modify-scene-duration": "modify-scene-duration";
30
+ "reorder-scenes": "reorder-scenes";
31
+ "regenerate-all": "regenerate-all";
32
+ }>;
33
+ export type EditRequestType = z.infer<typeof EditRequestTypeSchema>;
34
+ export declare const EditScopeSchema: z.ZodObject<{
35
+ sceneIndices: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
36
+ appliesToAllScenes: z.ZodDefault<z.ZodBoolean>;
37
+ }, z.core.$strip>;
38
+ export type EditScope = z.infer<typeof EditScopeSchema>;
39
+ export declare const TextEditSchema: z.ZodObject<{
40
+ overlaysByScene: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
41
+ text: z.ZodString;
42
+ role: z.ZodEnum<{
43
+ body: "body";
44
+ watermark: "watermark";
45
+ cta: "cta";
46
+ headline: "headline";
47
+ subheadline: "subheadline";
48
+ disclaimer: "disclaimer";
49
+ label: "label";
50
+ }>;
51
+ position: z.ZodOptional<z.ZodEnum<{
52
+ center: "center";
53
+ top: "top";
54
+ "top-left": "top-left";
55
+ "top-right": "top-right";
56
+ "top-banner": "top-banner";
57
+ "left-rail": "left-rail";
58
+ "lower-third": "lower-third";
59
+ bottom: "bottom";
60
+ "bottom-left": "bottom-left";
61
+ "bottom-right": "bottom-right";
62
+ "caption-strip": "caption-strip";
63
+ }>>;
64
+ emphasis: z.ZodOptional<z.ZodEnum<{
65
+ primary: "primary";
66
+ secondary: "secondary";
67
+ }>>;
68
+ font: z.ZodOptional<z.ZodString>;
69
+ fontSize: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"auto">, z.ZodNumber]>>;
70
+ sizePct: z.ZodOptional<z.ZodNumber>;
71
+ weight: z.ZodOptional<z.ZodEnum<{
72
+ bold: "bold";
73
+ regular: "regular";
74
+ black: "black";
75
+ medium: "medium";
76
+ }>>;
77
+ color: z.ZodOptional<z.ZodString>;
78
+ bgColor: z.ZodOptional<z.ZodString>;
79
+ bgStyle: z.ZodOptional<z.ZodEnum<{
80
+ none: "none";
81
+ shadow: "shadow";
82
+ pill: "pill";
83
+ bar: "bar";
84
+ outline: "outline";
85
+ }>>;
86
+ animation: z.ZodOptional<z.ZodEnum<{
87
+ type: "type";
88
+ pop: "pop";
89
+ none: "none";
90
+ fade: "fade";
91
+ "slide-up": "slide-up";
92
+ "word-pop": "word-pop";
93
+ "highlight-current": "highlight-current";
94
+ }>>;
95
+ startMs: z.ZodOptional<z.ZodNumber>;
96
+ endMs: z.ZodOptional<z.ZodNumber>;
97
+ persistAcrossScenes: z.ZodOptional<z.ZodBoolean>;
98
+ }, z.core.$strip>>>;
99
+ }, z.core.$strip>;
100
+ export declare const VoEditSchema: z.ZodObject<{
101
+ linesByScene: z.ZodRecord<z.ZodString, z.ZodString>;
102
+ voiceStyleByScene: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
103
+ }, z.core.$strip>;
104
+ export declare const MusicEditSchema: z.ZodObject<{
105
+ url: z.ZodOptional<z.ZodString>;
106
+ query: z.ZodOptional<z.ZodString>;
107
+ moodTag: z.ZodOptional<z.ZodString>;
108
+ }, z.core.$strip>;
109
+ export declare const SceneVisualEditSchema: z.ZodObject<{
110
+ promptByScene: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
111
+ modelByScene: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
112
+ }, z.core.$strip>;
113
+ export declare const SceneDurationEditSchema: z.ZodObject<{
114
+ durationMsByScene: z.ZodRecord<z.ZodString, z.ZodNumber>;
115
+ }, z.core.$strip>;
116
+ export declare const ReorderEditSchema: z.ZodObject<{
117
+ newOrder: z.ZodArray<z.ZodNumber>;
118
+ }, z.core.$strip>;
119
+ export declare const EditRequestSchema: z.ZodObject<{
120
+ type: z.ZodEnum<{
121
+ "modify-text": "modify-text";
122
+ "modify-vo": "modify-vo";
123
+ "modify-music": "modify-music";
124
+ "modify-scene-visual": "modify-scene-visual";
125
+ "modify-scene-duration": "modify-scene-duration";
126
+ "reorder-scenes": "reorder-scenes";
127
+ "regenerate-all": "regenerate-all";
128
+ }>;
129
+ scope: z.ZodObject<{
130
+ sceneIndices: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
131
+ appliesToAllScenes: z.ZodDefault<z.ZodBoolean>;
132
+ }, z.core.$strip>;
133
+ reason: z.ZodString;
134
+ textEdit: z.ZodOptional<z.ZodObject<{
135
+ overlaysByScene: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
136
+ text: z.ZodString;
137
+ role: z.ZodEnum<{
138
+ body: "body";
139
+ watermark: "watermark";
140
+ cta: "cta";
141
+ headline: "headline";
142
+ subheadline: "subheadline";
143
+ disclaimer: "disclaimer";
144
+ label: "label";
145
+ }>;
146
+ position: z.ZodOptional<z.ZodEnum<{
147
+ center: "center";
148
+ top: "top";
149
+ "top-left": "top-left";
150
+ "top-right": "top-right";
151
+ "top-banner": "top-banner";
152
+ "left-rail": "left-rail";
153
+ "lower-third": "lower-third";
154
+ bottom: "bottom";
155
+ "bottom-left": "bottom-left";
156
+ "bottom-right": "bottom-right";
157
+ "caption-strip": "caption-strip";
158
+ }>>;
159
+ emphasis: z.ZodOptional<z.ZodEnum<{
160
+ primary: "primary";
161
+ secondary: "secondary";
162
+ }>>;
163
+ font: z.ZodOptional<z.ZodString>;
164
+ fontSize: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"auto">, z.ZodNumber]>>;
165
+ sizePct: z.ZodOptional<z.ZodNumber>;
166
+ weight: z.ZodOptional<z.ZodEnum<{
167
+ bold: "bold";
168
+ regular: "regular";
169
+ black: "black";
170
+ medium: "medium";
171
+ }>>;
172
+ color: z.ZodOptional<z.ZodString>;
173
+ bgColor: z.ZodOptional<z.ZodString>;
174
+ bgStyle: z.ZodOptional<z.ZodEnum<{
175
+ none: "none";
176
+ shadow: "shadow";
177
+ pill: "pill";
178
+ bar: "bar";
179
+ outline: "outline";
180
+ }>>;
181
+ animation: z.ZodOptional<z.ZodEnum<{
182
+ type: "type";
183
+ pop: "pop";
184
+ none: "none";
185
+ fade: "fade";
186
+ "slide-up": "slide-up";
187
+ "word-pop": "word-pop";
188
+ "highlight-current": "highlight-current";
189
+ }>>;
190
+ startMs: z.ZodOptional<z.ZodNumber>;
191
+ endMs: z.ZodOptional<z.ZodNumber>;
192
+ persistAcrossScenes: z.ZodOptional<z.ZodBoolean>;
193
+ }, z.core.$strip>>>;
194
+ }, z.core.$strip>>;
195
+ voEdit: z.ZodOptional<z.ZodObject<{
196
+ linesByScene: z.ZodRecord<z.ZodString, z.ZodString>;
197
+ voiceStyleByScene: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
198
+ }, z.core.$strip>>;
199
+ musicEdit: z.ZodOptional<z.ZodObject<{
200
+ url: z.ZodOptional<z.ZodString>;
201
+ query: z.ZodOptional<z.ZodString>;
202
+ moodTag: z.ZodOptional<z.ZodString>;
203
+ }, z.core.$strip>>;
204
+ sceneVisualEdit: z.ZodOptional<z.ZodObject<{
205
+ promptByScene: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
206
+ modelByScene: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
207
+ }, z.core.$strip>>;
208
+ sceneDurationEdit: z.ZodOptional<z.ZodObject<{
209
+ durationMsByScene: z.ZodRecord<z.ZodString, z.ZodNumber>;
210
+ }, z.core.$strip>>;
211
+ reorderEdit: z.ZodOptional<z.ZodObject<{
212
+ newOrder: z.ZodArray<z.ZodNumber>;
213
+ }, z.core.$strip>>;
214
+ estimatedCostCredits: z.ZodDefault<z.ZodNumber>;
215
+ reuses: z.ZodDefault<z.ZodArray<z.ZodEnum<{
216
+ overlays: "overlays";
217
+ stitch: "stitch";
218
+ "scene-visuals": "scene-visuals";
219
+ voiceovers: "voiceovers";
220
+ "music-track": "music-track";
221
+ }>>>;
222
+ }, z.core.$strip>;
223
+ export type EditRequest = z.infer<typeof EditRequestSchema>;
224
+ /**
225
+ * Heuristic classifier: feed in a list of per-scene critic findings (severity
226
+ * "fail" only) and we generate an EditRequest that targets the offending
227
+ * scenes. Used by `repairTrace.ts` to auto-suggest a `modify-scene-visual`
228
+ * when actionPlausibility fails — no LLM call needed, since the critic
229
+ * already structured the problem.
230
+ *
231
+ * The LLM-driven classifier (for free-text user instructions like "make the
232
+ * voiceover calmer on scene 3") lives in `classifyUserEditInstruction` below.
233
+ */
234
+ export declare function classifyCriticFindingsToEdit(args: {
235
+ perSceneFailures: Array<{
236
+ sceneIndex: number;
237
+ dimension: string;
238
+ message: string;
239
+ }>;
240
+ /** Indices that have textual issues (brand spelled wrong, etc.) — re-mux is enough. */
241
+ textFixSceneIndices?: number[];
242
+ /**
243
+ * When the user has explicitly named a target scope (e.g. "fix the cap issue
244
+ * in scene 4"), restrict any visual re-gen to those indices only. Critic
245
+ * findings outside this scope are downgraded — they may still surface as a
246
+ * report, but they don't trigger billable re-gens without user consent.
247
+ */
248
+ userIntentScope?: number[];
249
+ }): EditRequest | null;
250
+ /**
251
+ * LLM-classifier prompt builder. The caller wires this through any LLMCaller
252
+ * with structured-output support (Gateway / OpenAI / Gemini).
253
+ *
254
+ * NOTE: we don't ship a default LLM caller here so the module stays
255
+ * dependency-light — same pattern as planner / bibleBuilder. Tests can mock.
256
+ */
257
+ export declare function buildEditClassifierPrompt(args: {
258
+ userInstruction: string;
259
+ planSummary: string;
260
+ completedSceneIndices: number[];
261
+ }): string;
262
+ //# sourceMappingURL=editClassifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editClassifier.d.ts","sourceRoot":"","sources":["../../../src/services/agent/editClassifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,qBAAqB;;;;;;;;EAQhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,eAAe;;;iBAS1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGzB,CAAC;AAEH,eAAO,MAAM,YAAY;;;iBAKvB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;iBAK1B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;iBAKhC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;iBAGlC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;iBAG5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8B5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,gBAAgB,EAAE,KAAK,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,uFAAuF;IACvF,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,GAAG,WAAW,GAAG,IAAI,CAwCrB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC,GAAG,MAAM,CAuBT"}