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
@@ -1,18 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.textServicesMap = exports.videoServicesMap = void 0;
3
+ exports.textServicesMap = exports.sfxServicesMap = exports.musicServicesMap = exports.imageServicesMap = exports.videoServicesMap = void 0;
4
4
  exports.getAiGenProviderService = getAiGenProviderService;
5
+ const aiModels_1 = require("../../globals/aiModels");
5
6
  const google_service_1 = require("./providers/google/google.service");
6
7
  const kling_service_1 = require("./providers/kling/kling.service");
8
+ const klingImage_service_1 = require("./providers/kling/klingImage.service");
7
9
  const minimax_service_1 = require("./providers/minimax/minimax.service");
8
10
  const openai_service_1 = require("./providers/openai/openai.service");
9
11
  const runway_service_1 = require("./providers/runway/runway.service");
10
- // import { AlibabaService } from "./providers/alibaba/alibaba";
11
- // import { AzureService } from "./providers/azure";
12
+ const alibaba_1 = require("./providers/alibaba/alibaba");
12
13
  const pixverse_service_1 = require("./providers/pixverse/pixverse.service");
13
14
  const bytedance_service_1 = require("./providers/bytedance/bytedance.service");
15
+ const elevenlabs_service_1 = require("./providers/elevenlabs/elevenlabs.service");
14
16
  exports.videoServicesMap = {
15
17
  // --- Pixverse ---
18
+ "pixverse-v6": pixverse_service_1.PixVerseService,
16
19
  "pixverse-v5.6": pixverse_service_1.PixVerseService,
17
20
  "pixverse-v5.5": pixverse_service_1.PixVerseService,
18
21
  "pixverse-v5": pixverse_service_1.PixVerseService,
@@ -39,31 +42,85 @@ exports.videoServicesMap = {
39
42
  "kling-v2-master": kling_service_1.KlingService,
40
43
  "kling-v2.1": kling_service_1.KlingService,
41
44
  "kling-v2.1-master": kling_service_1.KlingService,
45
+ "kling-v3.0": kling_service_1.KlingService,
42
46
  "kling-avatar": kling_service_1.KlingService,
43
- // "kling-v1.6": KlingService,
44
- // "kling-v1": KlingService,
47
+ "kling-video-o1": kling_service_1.KlingService,
48
+ "kling-v3-omni-video": kling_service_1.KlingService,
49
+ "kling-motion-control": kling_service_1.KlingService,
50
+ "kling-lip-sync": kling_service_1.KlingService,
45
51
  // --- MiniMax ---
46
52
  "minimax-hailuo-2.3-fast": minimax_service_1.MinimaxService,
47
53
  "minimax-hailuo-2.3": minimax_service_1.MinimaxService,
48
54
  "minimax-hailuo-02": minimax_service_1.MinimaxService,
49
- // "T2V-01-Director": MinimaxService,
50
- // "T2V-01": MinimaxService,
51
- // --- Azure ---
52
- // "azure-sora": AzureService,
55
+ "minimax-s2v-01": minimax_service_1.MinimaxService,
53
56
  // --- OpenAI ---
54
57
  "openai-sora-2": openai_service_1.OpenaiService,
55
58
  "openai-sora-2-pro": openai_service_1.OpenaiService,
56
59
  // --- Alibaba ---
57
- // "alibaba-wan-2.5": AlibabaService,
58
- // "alibaba-wan-2.2": AlibabaService,
60
+ "alibaba-wan-2.7-i2v": alibaba_1.AlibabaService,
61
+ "alibaba-wan-2.6-t2v": alibaba_1.AlibabaService,
62
+ "alibaba-wan-2.5-t2v": alibaba_1.AlibabaService,
63
+ "alibaba-wan-2.2-t2v": alibaba_1.AlibabaService,
64
+ "alibaba-wan-2.2-s2v": alibaba_1.AlibabaService,
65
+ };
66
+ /**
67
+ * Image-gen factory. Each provider service implements `generateImage()` (sync;
68
+ * returns a URL or base64 in a single API roundtrip — no BullMQ worker needed).
69
+ *
70
+ * Kling now has a first-party image API (api-singapore.klingai.com, same JWT auth as video):
71
+ * /v1/images/omni-image → kling-image-o1, kling-v3-omni → KlingImageService
72
+ * /v1/images/generations → kling-v2-1-image → KlingImageService
73
+ * The legacy kling-kolors key still routes to AlibabaService (DashScope-hosted Kolors v2).
74
+ */
75
+ exports.imageServicesMap = {
76
+ // --- Google (Imagen + Nano Banana) ---
77
+ [aiModels_1.EImageGenModels.GOOGLE_IMAGEN_4_ULTRA]: google_service_1.GoogleService,
78
+ [aiModels_1.EImageGenModels.GOOGLE_IMAGEN_4]: google_service_1.GoogleService,
79
+ [aiModels_1.EImageGenModels.GOOGLE_IMAGEN_4_FAST]: google_service_1.GoogleService,
80
+ [aiModels_1.EImageGenModels.GOOGLE_NANO_BANANA_PRO]: google_service_1.GoogleService,
81
+ [aiModels_1.EImageGenModels.GOOGLE_NANO_BANANA]: google_service_1.GoogleService,
82
+ // --- OpenAI gpt-image ---
83
+ [aiModels_1.EImageGenModels.OPENAI_GPT_IMAGE_2]: openai_service_1.OpenaiService,
84
+ [aiModels_1.EImageGenModels.OPENAI_GPT_IMAGE_1_5]: openai_service_1.OpenaiService,
85
+ [aiModels_1.EImageGenModels.OPENAI_GPT_IMAGE_1]: openai_service_1.OpenaiService,
86
+ [aiModels_1.EImageGenModels.OPENAI_GPT_IMAGE_1_MINI]: openai_service_1.OpenaiService,
87
+ // --- ByteDance Seedream 5 (Lite only — pro/edit unreleased) ---
88
+ [aiModels_1.EImageGenModels.BYTEDANCE_SEEDREAM_5_LITE]: bytedance_service_1.ByteDanceService,
89
+ // --- Kling first-party image API (KlingImageService) ---
90
+ [aiModels_1.EImageGenModels.KLING_IMAGE_O1]: klingImage_service_1.KlingImageService,
91
+ [aiModels_1.EImageGenModels.KLING_V3_OMNI_IMAGE]: klingImage_service_1.KlingImageService,
92
+ [aiModels_1.EImageGenModels.KLING_V2_1_IMAGE]: klingImage_service_1.KlingImageService,
93
+ // --- Kling Kolors (DashScope-hosted, legacy) ---
94
+ [aiModels_1.EImageGenModels.KLING_KOLORS]: alibaba_1.AlibabaService,
95
+ // --- Alibaba Qwen-Image ---
96
+ [aiModels_1.EImageGenModels.ALIBABA_QWEN_IMAGE_2_PRO]: alibaba_1.AlibabaService,
97
+ [aiModels_1.EImageGenModels.ALIBABA_QWEN_IMAGE_2]: alibaba_1.AlibabaService,
98
+ [aiModels_1.EImageGenModels.ALIBABA_QWEN_IMAGE_EDIT_MAX]: alibaba_1.AlibabaService,
99
+ [aiModels_1.EImageGenModels.ALIBABA_QWEN_IMAGE_EDIT_PLUS]: alibaba_1.AlibabaService,
100
+ [aiModels_1.EImageGenModels.ALIBABA_QWEN_IMAGE_EDIT]: alibaba_1.AlibabaService,
101
+ // --- MiniMax image-01 ---
102
+ [aiModels_1.EImageGenModels.MINIMAX_IMAGE_01]: minimax_service_1.MinimaxService,
103
+ // --- RunwayML Gen-4 Image ---
104
+ [aiModels_1.EImageGenModels.RUNWAYML_GEN4_IMAGE]: runway_service_1.RunwayService,
105
+ [aiModels_1.EImageGenModels.RUNWAYML_GEN4_IMAGE_TURBO]: runway_service_1.RunwayService,
106
+ };
107
+ /**
108
+ * Music-gen factory. Each provider service implements `generateMusic()` (sync —
109
+ * single API roundtrip, no BullMQ worker).
110
+ */
111
+ exports.musicServicesMap = {
112
+ [aiModels_1.EMusicGenModels.MINIMAX_MUSIC_1_5]: minimax_service_1.MinimaxService,
113
+ [aiModels_1.EMusicGenModels.GOOGLE_LYRIA_2]: google_service_1.GoogleService,
114
+ [aiModels_1.EMusicGenModels.GOOGLE_LYRIA_3]: google_service_1.GoogleService,
115
+ [aiModels_1.EMusicGenModels.GOOGLE_LYRIA_3_PRO]: google_service_1.GoogleService,
116
+ };
117
+ /**
118
+ * Sound-effects factory. Each provider service implements `generateSoundEffects()`
119
+ * (sync — single API roundtrip, no BullMQ worker).
120
+ */
121
+ exports.sfxServicesMap = {
122
+ [aiModels_1.ESfxGenModels.ELEVENLABS_SOUND_EFFECTS]: elevenlabs_service_1.ElevenLabsAiGenService,
59
123
  };
60
- // export const imageServicesMap: Record<imageGenModel, BaseAiGenProviderService> = {
61
- // "openai-dalle-3": DalleService,
62
- // "stability-stable-diffusion": StabilityService,
63
- // "midjourney-v6": MidjourneyService,
64
- // "flux-1.1": StabilityService,
65
- // "ideogram-1.0": MidjourneyService,
66
- // };
67
124
  exports.textServicesMap = {
68
125
  "openai-gpt-4o-mini": openai_service_1.OpenaiService,
69
126
  "openai-gpt-5-mini": openai_service_1.OpenaiService,
@@ -76,9 +133,15 @@ function getAiGenProviderService(modelKey) {
76
133
  if (modelKey in exports.videoServicesMap) {
77
134
  return new exports.videoServicesMap[modelKey]();
78
135
  }
79
- // if (modelKey in imageServicesMap) {
80
- // return imageServicesMap[modelKey as imageGenModel];
81
- // }
136
+ if (modelKey in exports.imageServicesMap) {
137
+ return new exports.imageServicesMap[modelKey]();
138
+ }
139
+ if (modelKey in exports.musicServicesMap) {
140
+ return new exports.musicServicesMap[modelKey]();
141
+ }
142
+ if (modelKey in exports.sfxServicesMap) {
143
+ return new exports.sfxServicesMap[modelKey]();
144
+ }
82
145
  if (modelKey in exports.textServicesMap) {
83
146
  return new exports.textServicesMap[modelKey]();
84
147
  }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Canonical camera-control schema. Translated per-provider by adapters that
3
+ * live alongside each provider's service. The set is the union of camera
4
+ * primitives across Kling (typed presets + vector), Runway (named presets +
5
+ * motion intensity), MiniMax Director (in-prompt commands), Seedance (in-prompt),
6
+ * and Pixverse V6 (lens-control prompt vocabulary).
7
+ *
8
+ * Providers that don't expose camera control (Veo, OpenAI, Wan T2V) ignore the
9
+ * field with a logged warning rather than throwing.
10
+ */
11
+ export type CameraPreset = "static" | "pan_left" | "pan_right" | "tilt_up" | "tilt_down" | "zoom_in" | "zoom_out" | "dolly_in" | "dolly_out" | "orbit_left" | "orbit_right" | "roll_left" | "roll_right" | "tracking" | "handheld" | "push_in" | "pull_out";
12
+ /**
13
+ * Six-axis vector control (mirrors Kling's `camera_control.config` shape).
14
+ * Each axis is in [-10, 10]. Adapters that don't support fine-grained vector
15
+ * control fall back to the closest preset.
16
+ */
17
+ export interface CameraVector {
18
+ horizontal?: number;
19
+ vertical?: number;
20
+ pan?: number;
21
+ tilt?: number;
22
+ roll?: number;
23
+ zoom?: number;
24
+ }
25
+ export interface CameraControl {
26
+ preset?: CameraPreset;
27
+ vector?: CameraVector;
28
+ /** 0..1 — strength of the camera move; provider-mapped. */
29
+ intensity?: number;
30
+ }
31
+ //# sourceMappingURL=cameraControl.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cameraControl.types.d.ts","sourceRoot":"","sources":["../../../../src/services/aiGen/canonicalAdapters/cameraControl.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,UAAU,GACV,WAAW,GACX,SAAS,GACT,WAAW,GACX,SAAS,GACT,UAAU,GACV,UAAU,GACV,WAAW,GACX,YAAY,GACZ,aAAa,GACb,WAAW,GACX,YAAY,GACZ,UAAU,GACV,UAAU,GACV,SAAS,GACT,UAAU,CAAC;AAEf;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,3 @@
1
+ export * from "./cameraControl.types";
2
+ export * from "./multiShot.types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/aiGen/canonicalAdapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./cameraControl.types"), exports);
18
+ __exportStar(require("./multiShot.types"), exports);
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Canonical multi-shot schema. Per-provider adapters translate this into:
3
+ * Kling v3.0 → `multi_prompt[]` (per-shot prompts) + companion `shot_type`
4
+ * (v3.0 only — v2.x has no public multi-shot API)
5
+ * Seedance → concatenated prompt with "--- CUT ---" separators
6
+ * Pixverse → `generate_multi_clip_switch=true` + concatenated prompt (≤2 shots)
7
+ * others → throw UnsupportedCapabilityError (gated by IModelSchema.fields.multiShot)
8
+ */
9
+ export interface Shot {
10
+ prompt: string;
11
+ /** Seconds. Sum of all shot durations should match the request `duration`. */
12
+ duration?: number;
13
+ /** Optional first-frame image for this shot (Kling supports per-shot start frames). */
14
+ startFrame?: string;
15
+ }
16
+ /** 1..6 shots. Providers enforce their own caps in the adapter. */
17
+ export type MultiShot = Shot[];
18
+ export declare class UnsupportedCapabilityError extends Error {
19
+ readonly capability: string;
20
+ readonly modelKey: string;
21
+ constructor(capability: string, modelKey: string);
22
+ }
23
+ //# sourceMappingURL=multiShot.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiShot.types.d.ts","sourceRoot":"","sources":["../../../../src/services/aiGen/canonicalAdapters/multiShot.types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,mEAAmE;AACnE,MAAM,MAAM,SAAS,GAAG,IAAI,EAAE,CAAC;AAE/B,qBAAa,0BAA2B,SAAQ,KAAK;aAEjC,UAAU,EAAE,MAAM;aAClB,QAAQ,EAAE,MAAM;gBADhB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM;CAKnC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnsupportedCapabilityError = void 0;
4
+ class UnsupportedCapabilityError extends Error {
5
+ constructor(capability, modelKey) {
6
+ super(`Capability "${capability}" is not supported by model "${modelKey}".`);
7
+ this.capability = capability;
8
+ this.modelKey = modelKey;
9
+ this.name = "UnsupportedCapabilityError";
10
+ }
11
+ }
12
+ exports.UnsupportedCapabilityError = UnsupportedCapabilityError;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/services/aiGen/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,wBAAgB,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAsHrE"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/services/aiGen/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,wBAAgB,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAqIrE"}
@@ -22,6 +22,16 @@ function validateParams(params) {
22
22
  rules.allowedValues.includes(value))) === false) {
23
23
  errors.push(`Invalid value for ${field}: "${value}". Allowed: ${rules.allowedValues.join(", ")}`);
24
24
  }
25
+ // Array-length cap (declared via `max` on the field schema). Applies to
26
+ // URL-list fields like referenceImageUrls/inputImageUrls/referenceVideoUrls
27
+ // — the cap is the provider's hard limit, so we reject before paying the
28
+ // upstream cost.
29
+ if (value != null &&
30
+ Array.isArray(value) &&
31
+ typeof rules.max === "number" &&
32
+ value.length > rules.max) {
33
+ errors.push(`Too many items for ${field}: got ${value.length}, max ${rules.max}`);
34
+ }
25
35
  }
26
36
  // 2. Type-specific required fields
27
37
  if (params.type === "image-to-video" &&
@@ -1,12 +1,23 @@
1
1
  import { BaseAiGenProviderService } from "../baseAiGenProvider.service";
2
- import { CreditUsageParams, VideoGenerationParams, VideoGenerationResult, VideoStatusParams, VideoStatusResult } from "../types";
2
+ import { CreditUsageParams, ImageGenerationParams, ImageGenerationResult, VideoGenerationParams, VideoGenerationResult, VideoStatusParams, VideoStatusResult } from "../types";
3
3
  export declare class AlibabaService extends BaseAiGenProviderService {
4
4
  private readonly baseUrl;
5
5
  private readonly timeout;
6
6
  constructor();
7
7
  private request;
8
8
  generateVideo(params: VideoGenerationParams): Promise<VideoGenerationResult>;
9
- checkVideoStatus({ task, outputFilename, outputFilePath, }: VideoStatusParams): Promise<VideoStatusResult>;
10
- getCreditUsed({ modelKey, resolution, aspectRatio, duration, multiClip, }: CreditUsageParams): number;
9
+ checkVideoStatus({ task, outputFilename, outputFilePath, modelKey, }: VideoStatusParams): Promise<VideoStatusResult>;
10
+ /**
11
+ * DashScope image generation. Both Kolors and Qwen-Image are async on
12
+ * DashScope — submit returns a task_id, then poll /tasks/{id}. Image jobs
13
+ * typically finish in 5–15s, well inside our HTTP timeout, so we poll
14
+ * inline rather than going through BullMQ.
15
+ *
16
+ * Endpoint selection:
17
+ * - Qwen-Image edit (modelId qwen-image-edit*): /image2image/image-synthesis
18
+ * - Everything else (Qwen T2I, Kolors): /text2image/image-synthesis
19
+ */
20
+ generateImage(params: ImageGenerationParams): Promise<ImageGenerationResult>;
21
+ getCreditUsed({ modelKey, resolution, aspectRatio, duration, multiClip, numImages, }: CreditUsageParams): number;
11
22
  }
12
23
  //# sourceMappingURL=alibaba.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"alibaba.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/alibaba/alibaba.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAQlB,qBAAa,cAAe,SAAQ,wBAAwB;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CACsE;IAC9F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;;YASnB,OAAO;IAqBf,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAqC3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAuEjD,aAAa,CAAC,EACZ,QAAQ,EACR,UAAU,EACV,WAAW,EACX,QAAQ,EACR,SAAiB,GAClB,EAAE,iBAAiB,GAAG,MAAM;CAU9B"}
1
+ {"version":3,"file":"alibaba.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/alibaba/alibaba.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAiBlB,qBAAa,cAAe,SAAQ,wBAAwB;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;;YASnB,OAAO;IAqBf,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IA0D3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,EACzB,QAAQ,GACT,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0EjD;;;;;;;;;OASG;IACG,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IA2FjC,aAAa,CAAC,EACZ,QAAQ,EACR,UAAU,EACV,WAAW,EACX,QAAQ,EACR,SAAiB,EACjB,SAAa,GACd,EAAE,iBAAiB,GAAG,MAAM;CAmB9B"}
@@ -13,10 +13,18 @@ const helpers_1 = require("./helpers");
13
13
  const helpers_2 = require("../../helpers");
14
14
  const utils_1 = require("../../../../utils");
15
15
  const logger_1 = require("../../../../utils/logger");
16
+ // DashScope hosts Wan endpoints under three task-typed paths. We pick at submit
17
+ // time based on which inputs are present (audio → s2v, image → i2v, else t2v).
18
+ const ALIBABA_BASE = "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc";
19
+ const ENDPOINT_T2V = `${ALIBABA_BASE}/video-generation/video-synthesis`;
20
+ const ENDPOINT_I2V = `${ALIBABA_BASE}/image2video/video-synthesis`;
21
+ const ENDPOINT_S2V = `${ALIBABA_BASE}/sound2video/video-synthesis`;
22
+ // All three share the same /tasks/{task_id} status endpoint.
23
+ const ENDPOINT_TASK_STATUS = "https://dashscope-intl.aliyuncs.com/api/v1/tasks";
16
24
  class AlibabaService extends baseAiGenProvider_service_1.BaseAiGenProviderService {
17
25
  constructor() {
18
26
  super();
19
- this.baseUrl = "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis";
27
+ this.baseUrl = ENDPOINT_T2V; // legacy default; used by getCreditUsed only
20
28
  this.timeout = 60000; // 60 seconds
21
29
  if (!process.env.ALIBABA_API_KEY) {
22
30
  throw new Error("Missing ALIBABA_API_KEY in environment variables");
@@ -43,31 +51,56 @@ class AlibabaService extends baseAiGenProvider_service_1.BaseAiGenProviderServic
43
51
  const modelId = modelConfig?.modelId;
44
52
  if (!modelId)
45
53
  throw new Error(`Unknown modelKey: ${params.modelKey}`);
46
- const size = (0, helpers_1.getAlibabaDimensions)(params.resolution, params.aspectRatio);
47
- if (!size) {
48
- throw new Error(`Invalid resolution/aspect ratio combination: ${params.resolution} ${params.aspectRatio}`);
49
- }
50
- const body = {
51
- model: modelId,
52
- input: {
53
- prompt: params.prompt,
54
- },
55
- parameters: {
56
- size,
57
- prompt_extend: true,
58
- duration: params.duration || 5,
59
- },
54
+ // Endpoint selection: audio wins (S2V), then image (I2V), else T2V.
55
+ const isS2V = !!params.inputAudioUrl;
56
+ const isI2V = !isS2V && !!params.inputImageUrl;
57
+ const endpoint = isS2V ? ENDPOINT_S2V : isI2V ? ENDPOINT_I2V : ENDPOINT_T2V;
58
+ const input = {};
59
+ if (params.prompt)
60
+ input.prompt = params.prompt;
61
+ if (params.negativePrompt)
62
+ input.negative_prompt = params.negativePrompt;
63
+ if (isI2V) {
64
+ input.img_url = params.inputImageUrl;
65
+ // Wan 2.7 i2v supports first-last-frame interpolation
66
+ if (params.lastFrameImageUrl)
67
+ input.last_frame_url = params.lastFrameImageUrl;
68
+ }
69
+ if (isS2V) {
70
+ input.audio_url = params.inputAudioUrl;
71
+ if (params.inputImageUrl)
72
+ input.image_url = params.inputImageUrl;
73
+ }
74
+ const parameters = {
75
+ duration: params.duration || 5,
76
+ prompt_extend: params.promptOptimizer ?? true,
60
77
  };
61
- const result = await this.request(body);
62
- if (!result || !result.request_id)
78
+ // T2V requires explicit size; I2V/S2V derive from inputs.
79
+ if (!isI2V && !isS2V) {
80
+ const size = (0, helpers_1.getAlibabaDimensions)(params.resolution, params.aspectRatio);
81
+ if (!size) {
82
+ throw new Error(`Invalid resolution/aspect ratio combination: ${params.resolution} ${params.aspectRatio}`);
83
+ }
84
+ parameters.size = size;
85
+ }
86
+ if (params.seed !== undefined)
87
+ parameters.seed = params.seed;
88
+ if (params.watermark !== undefined)
89
+ parameters.watermark = params.watermark;
90
+ const body = { model: modelId, input, parameters };
91
+ const result = await this.request(body, "POST", endpoint);
92
+ // DashScope returns { output: { task_id, ... } } on async submit.
93
+ const taskId = result?.output?.task_id || result?.request_id;
94
+ if (!result || !taskId) {
63
95
  throw new Error("No response from Alibaba API");
96
+ }
64
97
  return {
65
- task: result.request_id,
98
+ task: taskId,
66
99
  status: types_1.EVideoSceneStatus.TRIGGERED,
67
100
  };
68
101
  }
69
- async checkVideoStatus({ task, outputFilename, outputFilePath = "videos", }) {
70
- const statusUrl = `${this.baseUrl}/${task}`;
102
+ async checkVideoStatus({ task, outputFilename, outputFilePath = "videos", modelKey, }) {
103
+ const statusUrl = `${ENDPOINT_TASK_STATUS}/${task}`;
71
104
  const result = await this.request(null, "GET", statusUrl);
72
105
  if (!result) {
73
106
  return {
@@ -106,7 +139,13 @@ class AlibabaService extends baseAiGenProvider_service_1.BaseAiGenProviderServic
106
139
  };
107
140
  }
108
141
  catch (downloadErr) {
109
- console.error("Error downloading or saving Alibaba video:", downloadErr);
142
+ logger_1.logger.error("Error downloading or saving Alibaba video", {
143
+ taskId: task,
144
+ outputFilename,
145
+ modelKey,
146
+ videoUrl,
147
+ err: downloadErr?.stack ?? downloadErr?.message ?? String(downloadErr),
148
+ });
110
149
  return {
111
150
  status: types_1.EVideoSceneStatus.FAILED,
112
151
  errorMessage: "Error downloading or saving video file",
@@ -121,8 +160,102 @@ class AlibabaService extends baseAiGenProvider_service_1.BaseAiGenProviderServic
121
160
  }
122
161
  return { status: types_1.EVideoSceneStatus.PENDING };
123
162
  }
124
- getCreditUsed({ modelKey, resolution, aspectRatio, duration, multiClip = false, }) {
163
+ /**
164
+ * DashScope image generation. Both Kolors and Qwen-Image are async on
165
+ * DashScope — submit returns a task_id, then poll /tasks/{id}. Image jobs
166
+ * typically finish in 5–15s, well inside our HTTP timeout, so we poll
167
+ * inline rather than going through BullMQ.
168
+ *
169
+ * Endpoint selection:
170
+ * - Qwen-Image edit (modelId qwen-image-edit*): /image2image/image-synthesis
171
+ * - Everything else (Qwen T2I, Kolors): /text2image/image-synthesis
172
+ */
173
+ async generateImage(params) {
174
+ const modelConfig = aiModels_1.aiModelConfigs[params.modelKey];
175
+ const modelId = modelConfig?.modelId;
176
+ if (!modelId)
177
+ throw new Error(`Unknown image modelKey: ${params.modelKey}`);
178
+ const isEdit = modelId.startsWith("qwen-image-edit");
179
+ const submitUrl = isEdit
180
+ ? `${ALIBABA_BASE}/image2image/image-synthesis`
181
+ : `${ALIBABA_BASE}/text2image/image-synthesis`;
182
+ const input = { prompt: params.prompt };
183
+ if (params.negativePrompt)
184
+ input.negative_prompt = params.negativePrompt;
185
+ if (isEdit) {
186
+ const refs = [
187
+ ...(params.inputImageUrl ? [params.inputImageUrl] : []),
188
+ ...(params.inputImageUrls ?? []),
189
+ ];
190
+ if (!refs.length) {
191
+ throw new Error("Qwen-Image edit requires at least one input image");
192
+ }
193
+ // Qwen edit accepts 1–3 refs as base_image_url.
194
+ input.base_image_url = refs.length === 1 ? refs[0] : refs.slice(0, 3);
195
+ }
196
+ const parameters = {
197
+ n: params.numImages ?? 1,
198
+ ...(params.aspectRatio ? { size: params.aspectRatio } : {}),
199
+ ...(params.imageSize ? { size: params.imageSize } : {}),
200
+ ...(params.seed !== undefined ? { seed: params.seed } : {}),
201
+ ...(params.watermark !== undefined ? { watermark: params.watermark } : {}),
202
+ ...(params.promptOptimizer !== undefined
203
+ ? { prompt_extend: params.promptOptimizer }
204
+ : { prompt_extend: true }),
205
+ };
206
+ const submit = await this.request({ model: modelId, input, parameters }, "POST", submitUrl);
207
+ const taskId = submit?.output?.task_id;
208
+ if (!taskId) {
209
+ throw new Error("DashScope image submit returned no task_id");
210
+ }
211
+ // Poll up to 90s, every 2s. Image jobs are quick.
212
+ const maxAttempts = 45;
213
+ const intervalMs = 2000;
214
+ let lastResult = null;
215
+ for (let i = 0; i < maxAttempts; i++) {
216
+ await new Promise((r) => setTimeout(r, intervalMs));
217
+ const poll = await this.request(null, "GET", `${ENDPOINT_TASK_STATUS}/${taskId}`);
218
+ const status = poll?.output?.task_status ?? poll?.status;
219
+ if (status === "SUCCEEDED" || status === "succeeded") {
220
+ lastResult = poll;
221
+ break;
222
+ }
223
+ if (status === "FAILED" || status === "failed") {
224
+ throw new Error(`DashScope image task failed: ${poll?.output?.message ?? "unknown"}`);
225
+ }
226
+ }
227
+ if (!lastResult) {
228
+ throw new Error("DashScope image task timed out after 90s");
229
+ }
230
+ const results = lastResult.output?.results ?? [];
231
+ const remoteUrls = results.map((r) => r.url).filter((u) => !!u);
232
+ if (!remoteUrls.length) {
233
+ throw new Error("DashScope image task returned no URLs");
234
+ }
235
+ const bucket = (0, firebase_1.getBucket)();
236
+ const ts = Date.now();
237
+ const urls = [];
238
+ for (let i = 0; i < remoteUrls.length; i++) {
239
+ const remoteUrl = remoteUrls[i];
240
+ const bytes = Buffer.from(await (await axios_1.default.get(remoteUrl, { responseType: "arraybuffer", timeout: this.timeout })).data);
241
+ const path = `images/dashscope/${ts}-${Math.random().toString(36).slice(2, 8)}-${i}.png`;
242
+ const file = bucket.file(path);
243
+ await file.save(bytes, { contentType: "image/png" });
244
+ const [signed] = await file.getSignedUrl({ action: "read", expires: "03-09-2491" });
245
+ urls.push(signed);
246
+ }
247
+ return {
248
+ imageUrl: urls[0],
249
+ imageUrls: urls.length > 1 ? urls : undefined,
250
+ providerRequestId: taskId,
251
+ };
252
+ }
253
+ getCreditUsed({ modelKey, resolution, aspectRatio, duration, multiClip = false, numImages = 1, }) {
125
254
  const modelConfig = aiModels_1.aiModelConfigs[modelKey];
255
+ // Image-gen — flat per-image cost (Kolors / Qwen-Image).
256
+ if (modelConfig?.cost?.fixed !== undefined) {
257
+ return (0, utils_1.getCreditsFromCost)(modelConfig.cost.fixed * Math.max(1, numImages), !multiClip);
258
+ }
126
259
  const dimensions = (0, helpers_1.getAlibabaDimensions)(resolution, aspectRatio);
127
260
  const cost = modelConfig.cost?.table?.[dimensions]?.[duration];
128
261
  if (!cost) {
@@ -1,8 +1,26 @@
1
- import { CreditUsageParams, TextGenerationParams, TextGenerationResult, VideoGenerationParams, VideoGenerationResult, VideoStatusParams, VideoStatusResult } from "./types";
1
+ import { CreditUsageParams, ImageGenerationParams, ImageGenerationResult, MusicGenerationParams, MusicGenerationResult, SfxGenerationParams, SfxGenerationResult, StockSearchParams, StockSearchResult, TextGenerationParams, TextGenerationResult, VideoGenerationParams, VideoGenerationResult, VideoStatusParams, VideoStatusResult } from "./types";
2
+ /**
3
+ * Base class for every AI-generation provider (video, image, text).
4
+ *
5
+ * All capability methods have default throw-implementations so providers only
6
+ * override what they support — a video-only provider doesn't need to stub
7
+ * generateImage, an image-only provider doesn't need to stub generateVideo.
8
+ *
9
+ * Callers should either know what capability they need (factory routes by
10
+ * model type) or guard with try/catch.
11
+ */
2
12
  export declare abstract class BaseAiGenProviderService {
3
- abstract generateVideo(params: VideoGenerationParams): Promise<VideoGenerationResult>;
4
- abstract checkVideoStatus(params: VideoStatusParams): Promise<VideoStatusResult>;
5
- generateText?(params: TextGenerationParams): Promise<TextGenerationResult>;
13
+ generateVideo(params: VideoGenerationParams): Promise<VideoGenerationResult>;
14
+ checkVideoStatus(params: VideoStatusParams): Promise<VideoStatusResult>;
15
+ generateText(params: TextGenerationParams): Promise<TextGenerationResult>;
16
+ /** Synchronous image generation (text-to-image, image-to-image). */
17
+ generateImage(params: ImageGenerationParams): Promise<ImageGenerationResult>;
18
+ /** Synchronous music generation (text-to-music, optionally with lyrics + style reference). */
19
+ generateMusic(params: MusicGenerationParams): Promise<MusicGenerationResult>;
20
+ /** Synchronous sound-effects generation (text-to-sfx). */
21
+ generateSoundEffects(params: SfxGenerationParams): Promise<SfxGenerationResult>;
22
+ /** Stock asset search (T0 tier providers like Pexels/Pixabay). */
23
+ searchStock(params: StockSearchParams): Promise<StockSearchResult>;
6
24
  getCreditUsed(params: CreditUsageParams): number;
7
25
  }
8
26
  //# sourceMappingURL=baseAiGenProvider.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseAiGenProvider.service.d.ts","sourceRoot":"","sources":["../../../../src/services/aiGen/providers/baseAiGenProvider.service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,8BAAsB,wBAAwB;IAC5C,QAAQ,CAAC,aAAa,CACpB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAEjC,QAAQ,CAAC,gBAAgB,CACvB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,iBAAiB,CAAC;IAEvB,YAAY,CAAC,CACjB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,oBAAoB,CAAC;IAIhC,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;CAKjD"}
1
+ {"version":3,"file":"baseAiGenProvider.service.d.ts","sourceRoot":"","sources":["../../../../src/services/aiGen/providers/baseAiGenProvider.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;GASG;AACH,8BAAsB,wBAAwB;IACtC,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAI3B,gBAAgB,CACpB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,iBAAiB,CAAC;IAIvB,YAAY,CAChB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,oBAAoB,CAAC;IAIhC,oEAAoE;IAC9D,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAIjC,8FAA8F;IACxF,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAIjC,0DAA0D;IACpD,oBAAoB,CACxB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,mBAAmB,CAAC;IAI/B,kEAAkE;IAC5D,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIxE,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;CAGjD"}
@@ -1,10 +1,42 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseAiGenProviderService = void 0;
4
+ /**
5
+ * Base class for every AI-generation provider (video, image, text).
6
+ *
7
+ * All capability methods have default throw-implementations so providers only
8
+ * override what they support — a video-only provider doesn't need to stub
9
+ * generateImage, an image-only provider doesn't need to stub generateVideo.
10
+ *
11
+ * Callers should either know what capability they need (factory routes by
12
+ * model type) or guard with try/catch.
13
+ */
4
14
  class BaseAiGenProviderService {
15
+ async generateVideo(params) {
16
+ throw new Error("generateVideo not implemented for this provider");
17
+ }
18
+ async checkVideoStatus(params) {
19
+ throw new Error("checkVideoStatus not implemented for this provider");
20
+ }
5
21
  async generateText(params) {
6
22
  throw new Error("generateText not implemented for this provider");
7
23
  }
24
+ /** Synchronous image generation (text-to-image, image-to-image). */
25
+ async generateImage(params) {
26
+ throw new Error("generateImage not implemented for this provider");
27
+ }
28
+ /** Synchronous music generation (text-to-music, optionally with lyrics + style reference). */
29
+ async generateMusic(params) {
30
+ throw new Error("generateMusic not implemented for this provider");
31
+ }
32
+ /** Synchronous sound-effects generation (text-to-sfx). */
33
+ async generateSoundEffects(params) {
34
+ throw new Error("generateSoundEffects not implemented for this provider");
35
+ }
36
+ /** Stock asset search (T0 tier providers like Pexels/Pixabay). */
37
+ async searchStock(params) {
38
+ throw new Error("searchStock not implemented for this provider");
39
+ }
8
40
  getCreditUsed(params) {
9
41
  throw new Error("getCreditUsed not implemented for this provider");
10
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bytedance.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/bytedance/bytedance.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAUlB,qBAAa,gBAAiB,SAAQ,wBAAwB;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CACsD;IAI9E,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,WAAW;IAIb,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAkK3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4HjD,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;CAgDjD"}
1
+ {"version":3,"file":"bytedance.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/bytedance/bytedance.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAUlB,qBAAa,gBAAiB,SAAQ,wBAAwB;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CACsD;IAI9E,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,WAAW;IAIb,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAuJ3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA2HjD,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;CA0DjD"}