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,16 +1,47 @@
1
1
  "use strict";
2
2
  // openai.service.ts
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
6
36
  Object.defineProperty(exports, "__esModule", { value: true });
7
37
  exports.OpenaiService = void 0;
8
- const openai_1 = __importDefault(require("openai"));
38
+ const openai_1 = __importStar(require("openai"));
9
39
  const aiModels_1 = require("../../../../globals/aiModels");
10
40
  const types_1 = require("../../../../globals/types");
11
41
  const firebase_1 = require("../../../../libs/firebase");
12
42
  const utils_1 = require("../../../../utils");
13
43
  const logger_1 = require("../../../../utils/logger");
44
+ const errors_1 = require("../../../../utils/errors");
14
45
  const helpers_1 = require("../../helpers");
15
46
  const baseAiGenProvider_service_1 = require("../baseAiGenProvider.service");
16
47
  class OpenaiService extends baseAiGenProvider_service_1.BaseAiGenProviderService {
@@ -22,12 +53,27 @@ class OpenaiService extends baseAiGenProvider_service_1.BaseAiGenProviderService
22
53
  async generateVideo(params) {
23
54
  (0, helpers_1.validateParams)(params);
24
55
  const modelId = aiModels_1.aiModelConfigs[params.modelKey]?.modelId || "sora-2";
25
- const job = await this.client.videos.create({
56
+ const request = {
26
57
  prompt: params.prompt || "",
27
58
  model: modelId,
28
59
  seconds: params.duration?.toString() || "4",
29
60
  size: params.dimensions || "720x1280",
30
- });
61
+ };
62
+ // First-frame image-to-video. The Sora API requires the reference image
63
+ // dimensions to match `size`; the caller is responsible for that.
64
+ // Note: openai SDK v6.3.0 does NOT yet expose extensions / characters /
65
+ // edits endpoints — those exist in the REST API but are not surfaced here.
66
+ if (params.inputImageUrl) {
67
+ const resp = await fetch(params.inputImageUrl);
68
+ // fetch() does not throw on 4xx/5xx — surface the HTTP error so we
69
+ // don't ship an HTML error page to Sora as if it were image bytes.
70
+ if (!resp.ok) {
71
+ throw new errors_1.UserFacingError(`Input image could not be downloaded (HTTP ${resp.status}). The image URL may have expired or been deleted.`);
72
+ }
73
+ const filename = (params.inputImageUrl.split("?")[0] ?? "reference").split("/").pop() || "reference.png";
74
+ request.input_reference = await (0, openai_1.toFile)(resp, filename);
75
+ }
76
+ const job = await this.client.videos.create(request);
31
77
  if (job.status === "failed") {
32
78
  throw new Error(`OpenAI video generation failed: ${JSON.stringify(job.error)}`);
33
79
  }
@@ -103,8 +149,139 @@ class OpenaiService extends baseAiGenProvider_service_1.BaseAiGenProviderService
103
149
  text,
104
150
  };
105
151
  }
106
- getCreditUsed({ modelKey, resolution = "720x1280", duration = 5, multiClip = false, }) {
152
+ /**
153
+ * Synchronous image generation. Routes to /v1/images/generations for T2I or
154
+ * /v1/images/edits when input images are present (edits accepts up to 16
155
+ * reference images and an optional pixel mask).
156
+ */
157
+ async generateImage(params) {
158
+ const modelConfig = aiModels_1.aiModelConfigs[params.modelKey];
159
+ const modelId = modelConfig?.modelId;
160
+ if (!modelId)
161
+ throw new Error(`Unknown image modelKey: ${params.modelKey}`);
162
+ const refs = [
163
+ ...(params.inputImageUrl ? [params.inputImageUrl] : []),
164
+ ...(params.inputImageUrls ?? []),
165
+ ].slice(0, 16);
166
+ const isEdit = refs.length > 0;
167
+ // gpt-image-1 only accepts `size` (no aspectRatio knob). When the agent
168
+ // sends aspectRatio but no explicit dimensions, default to the matching
169
+ // canonical size; otherwise it silently produces a 1024×1024 square even
170
+ // for 9:16 / 16:9 projects.
171
+ const size = params.dimensions ??
172
+ (params.aspectRatio
173
+ ? params.aspectRatio === "9:16" || params.aspectRatio === "3:4" || params.aspectRatio === "4:5"
174
+ ? "1024x1536"
175
+ : params.aspectRatio === "16:9" || params.aspectRatio === "4:3"
176
+ ? "1536x1024"
177
+ : "1024x1024"
178
+ : undefined);
179
+ // Cast at assignment site — we never pass `stream: true`, so the
180
+ // non-streaming overload always applies; TS can't narrow the union
181
+ // automatically from the absence of a field.
182
+ let resp;
183
+ if (isEdit) {
184
+ const images = await Promise.all(refs.map(async (url) => {
185
+ const r = await fetch(url);
186
+ if (!r.ok) {
187
+ logger_1.logger.error("openai: ref fetch failed", {
188
+ url,
189
+ status: r.status,
190
+ statusText: r.statusText,
191
+ });
192
+ throw new Error(`openai ref fetch ${r.status}`);
193
+ }
194
+ const name = (url.split("?")[0] ?? "ref").split("/").pop() || "ref.png";
195
+ return (0, openai_1.toFile)(r, name);
196
+ }));
197
+ const mask = params.maskImageUrl
198
+ ? await (async () => {
199
+ const r = await fetch(params.maskImageUrl);
200
+ if (!r.ok) {
201
+ logger_1.logger.error("openai: mask fetch failed", {
202
+ url: params.maskImageUrl,
203
+ status: r.status,
204
+ statusText: r.statusText,
205
+ });
206
+ throw new Error(`openai mask fetch ${r.status}`);
207
+ }
208
+ return (0, openai_1.toFile)(r, "mask.png");
209
+ })()
210
+ : undefined;
211
+ resp = (await this.client.images.edit({
212
+ model: modelId,
213
+ prompt: params.prompt,
214
+ image: images.length === 1 ? images[0] : images,
215
+ ...(mask ? { mask } : {}),
216
+ ...(params.numImages ? { n: params.numImages } : {}),
217
+ ...(size ? { size: size } : {}),
218
+ ...(params.quality ? { quality: params.quality } : {}),
219
+ ...(params.background ? { background: params.background } : {}),
220
+ ...(params.outputFormat ? { output_format: params.outputFormat } : {}),
221
+ }));
222
+ if (!resp?.data?.length) {
223
+ logger_1.logger.error("openai: images endpoint returned no data", {
224
+ endpoint: "edit",
225
+ responseKeys: resp ? Object.keys(resp) : null,
226
+ });
227
+ throw new Error("openai images: empty data[]");
228
+ }
229
+ }
230
+ else {
231
+ resp = (await this.client.images.generate({
232
+ model: modelId,
233
+ prompt: params.prompt,
234
+ ...(params.numImages ? { n: params.numImages } : {}),
235
+ ...(size ? { size: size } : {}),
236
+ ...(params.quality ? { quality: params.quality } : {}),
237
+ ...(params.background ? { background: params.background } : {}),
238
+ ...(params.outputFormat ? { output_format: params.outputFormat } : {}),
239
+ }));
240
+ if (!resp?.data?.length) {
241
+ logger_1.logger.error("openai: images endpoint returned no data", {
242
+ endpoint: "generate",
243
+ responseKeys: resp ? Object.keys(resp) : null,
244
+ });
245
+ throw new Error("openai images: empty data[]");
246
+ }
247
+ }
248
+ const data = resp.data ?? [];
249
+ const bucket = (0, firebase_1.getBucket)();
250
+ const ts = Date.now();
251
+ const ext = params.outputFormat ?? "png";
252
+ const urls = [];
253
+ for (let i = 0; i < data.length; i++) {
254
+ const item = data[i];
255
+ const b64 = item?.b64_json;
256
+ const remoteUrl = item?.url;
257
+ let bytes;
258
+ if (b64)
259
+ bytes = Buffer.from(b64, "base64");
260
+ else if (remoteUrl)
261
+ bytes = Buffer.from(await (await fetch(remoteUrl)).arrayBuffer());
262
+ else
263
+ continue;
264
+ const path = `images/openai/${ts}-${Math.random().toString(36).slice(2, 8)}-${i}.${ext}`;
265
+ const file = bucket.file(path);
266
+ await file.save(bytes, { contentType: `image/${ext}` });
267
+ const [signed] = await file.getSignedUrl({ action: "read", expires: "03-09-2491" });
268
+ urls.push(signed);
269
+ }
270
+ if (!urls.length)
271
+ throw new Error("OpenAI image API returned no decodable images");
272
+ return {
273
+ imageUrl: urls[0],
274
+ imageUrls: urls.length > 1 ? urls : undefined,
275
+ };
276
+ }
277
+ getCreditUsed({ modelKey, resolution = "720x1280", duration = 5, multiClip = false, numImages = 1, quality, }) {
107
278
  const modelConfig = aiModels_1.aiModelConfigs[modelKey];
279
+ // Image-gen — fixed per-image cost; quality scales gpt-image price (low=0.5×,
280
+ // medium=1×, high=4×, auto≈medium).
281
+ if (modelConfig?.cost?.fixed !== undefined) {
282
+ const qualityMultiplier = quality === "high" ? 4 : quality === "low" ? 0.5 : 1;
283
+ return (0, utils_1.getCreditsFromCost)(modelConfig.cost.fixed * Math.max(1, numImages) * qualityMultiplier, !multiClip);
284
+ }
108
285
  const cost = modelConfig?.cost?.table?.[resolution]?.[duration];
109
286
  if (cost === undefined || cost === null) {
110
287
  logger_1.logger.warn(`OpenAI getCreditUsed: no cost entry for modelKey="${modelKey}" resolution="${resolution}" duration=${duration} — returning fallback`, { modelKey, resolution, duration });
@@ -0,0 +1,2 @@
1
+ export * from "./pexels.service";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/pexels/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./azure.service"), exports);
17
+ __exportStar(require("./pexels.service"), exports);
@@ -0,0 +1,11 @@
1
+ import { BaseAiGenProviderService } from "../baseAiGenProvider.service";
2
+ import { CreditUsageParams, StockSearchParams, StockSearchResult } from "../types";
3
+ export declare class PexelsProviderService extends BaseAiGenProviderService {
4
+ private readonly apiKey;
5
+ searchStock(params: StockSearchParams): Promise<StockSearchResult>;
6
+ /** Free assets — registers as 0 credits regardless of model. */
7
+ getCreditUsed(_params: CreditUsageParams): number;
8
+ private aspectToOrientation;
9
+ private pickBestVideoFile;
10
+ }
11
+ //# sourceMappingURL=pexels.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pexels.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/pexels/pexels.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AA+DlB,qBAAa,qBAAsB,SAAQ,wBAAwB;IACjE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkD;IAEnE,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAmGxE,gEAAgE;IAChE,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAIjD,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,iBAAiB;CAY1B"}
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PexelsProviderService = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const apiUsageCounter_service_1 = require("../../../apiUsageCounter.service");
9
+ const baseAiGenProvider_service_1 = require("../baseAiGenProvider.service");
10
+ // Pexels free tier: 200 req/h + 20,000 req/month. Cap at 18,000/mo to leave
11
+ // headroom for end-of-month traffic spikes; override per-deploy via env.
12
+ const PEXELS_MONTHLY_CAP = Number(process.env.PEXELS_MONTHLY_CAP ?? 18000);
13
+ // 10s per-call cap so the agent executor doesn't hang on a slow Pexels response
14
+ // — the cascade can fall through to Pixabay / Unsplash instead.
15
+ const PEXELS_TIMEOUT_MS = 10000;
16
+ /**
17
+ * Pexels stock provider — T0 tier (free).
18
+ *
19
+ * Pexels' free API supports video + image search. We deliberately ignore the
20
+ * music API for now (it's photo-only on the free tier; music comes from a
21
+ * different stock provider in a later commit).
22
+ *
23
+ * Attribution: Pexels' license requires "Photos provided by Pexels" attribution
24
+ * when used in publication. Producer surfaces (storyboard, finished video page)
25
+ * must surface this — handled in the UI layer, not here.
26
+ */
27
+ const PEXELS_VIDEO_URL = "https://api.pexels.com/videos/search";
28
+ const PEXELS_IMAGE_URL = "https://api.pexels.com/v1/search";
29
+ class PexelsProviderService extends baseAiGenProvider_service_1.BaseAiGenProviderService {
30
+ constructor() {
31
+ super(...arguments);
32
+ this.apiKey = process.env.PEXELS_API_KEY;
33
+ }
34
+ async searchStock(params) {
35
+ if (!this.apiKey) {
36
+ throw new Error("PEXELS_API_KEY not set — pexels provider cannot search");
37
+ }
38
+ if (params.kind === "music") {
39
+ throw new Error("Pexels does not provide stock music");
40
+ }
41
+ const allowed = await apiUsageCounter_service_1.ApiUsageCounterService.tryConsume({
42
+ provider: "pexels",
43
+ monthlyCap: PEXELS_MONTHLY_CAP,
44
+ });
45
+ if (!allowed) {
46
+ throw new Error(`PEXELS_RATE_LIMITED: monthly cap of ${PEXELS_MONTHLY_CAP} exceeded — back off`);
47
+ }
48
+ const headers = { Authorization: this.apiKey };
49
+ const perPage = Math.min(params.perPage ?? 15, 80);
50
+ try {
51
+ if (params.kind === "video") {
52
+ const { data } = await axios_1.default.get(PEXELS_VIDEO_URL, {
53
+ headers,
54
+ timeout: PEXELS_TIMEOUT_MS,
55
+ params: {
56
+ query: params.query,
57
+ per_page: perPage,
58
+ page: params.page,
59
+ orientation: this.aspectToOrientation(params.aspectRatio),
60
+ size: params.size,
61
+ locale: params.locale,
62
+ // Server-side filters — avoid wasting page budget client-side.
63
+ min_duration: params.minDurationSec,
64
+ max_duration: params.maxDurationSec,
65
+ min_width: params.minWidth,
66
+ min_height: params.minHeight,
67
+ },
68
+ });
69
+ return {
70
+ assets: data.videos.map((v) => ({
71
+ id: String(v.id),
72
+ url: this.pickBestVideoFile(v.video_files),
73
+ thumbnailUrl: v.image,
74
+ width: v.width,
75
+ height: v.height,
76
+ durationSec: v.duration,
77
+ source: "pexels",
78
+ attribution: { name: v.user.name, url: v.user.url },
79
+ })),
80
+ totalAvailable: data.total_results,
81
+ };
82
+ }
83
+ // image
84
+ const { data } = await axios_1.default.get(PEXELS_IMAGE_URL, {
85
+ headers,
86
+ timeout: PEXELS_TIMEOUT_MS,
87
+ params: {
88
+ query: params.query,
89
+ per_page: perPage,
90
+ page: params.page,
91
+ orientation: this.aspectToOrientation(params.aspectRatio),
92
+ size: params.size,
93
+ color: params.color,
94
+ locale: params.locale,
95
+ },
96
+ });
97
+ return {
98
+ assets: data.photos.map((p) => ({
99
+ id: String(p.id),
100
+ url: p.src.original,
101
+ thumbnailUrl: p.src.medium,
102
+ width: p.width,
103
+ height: p.height,
104
+ source: "pexels",
105
+ attribution: { name: p.photographer, url: p.photographer_url },
106
+ })),
107
+ totalAvailable: data.total_results,
108
+ };
109
+ }
110
+ catch (err) {
111
+ // Surface 429 distinctly so upstream can degrade / pick another provider
112
+ // rather than retrying into the rate-limit wall (200 req/h free tier).
113
+ if (err?.response?.status === 429) {
114
+ throw new Error("PEXELS_RATE_LIMITED: 429 from Pexels API — back off");
115
+ }
116
+ if (err?.code === "ECONNABORTED" || /timeout/i.test(err?.message ?? "")) {
117
+ throw new Error(`PEXELS_TIMEOUT: request timed out after ${PEXELS_TIMEOUT_MS}ms`);
118
+ }
119
+ throw err;
120
+ }
121
+ }
122
+ /** Free assets — registers as 0 credits regardless of model. */
123
+ getCreditUsed(_params) {
124
+ return 0;
125
+ }
126
+ aspectToOrientation(aspect) {
127
+ if (!aspect)
128
+ return undefined;
129
+ if (aspect === "9:16" || aspect === "4:5")
130
+ return "portrait";
131
+ if (aspect === "1:1")
132
+ return "square";
133
+ return "landscape";
134
+ }
135
+ pickBestVideoFile(files) {
136
+ // Prefer .mp4 1080p, fall back to highest-resolution mp4.
137
+ const mp4 = files.filter((f) => f.file_type === "video/mp4");
138
+ if (mp4.length === 0) {
139
+ const first = files[0];
140
+ if (!first)
141
+ throw new Error("Pexels video has no files");
142
+ return first.link;
143
+ }
144
+ const hd = mp4.find((f) => f.height >= 1000 && f.height <= 1200);
145
+ if (hd)
146
+ return hd.link;
147
+ return mp4.sort((a, b) => b.height - a.height)[0].link;
148
+ }
149
+ }
150
+ exports.PexelsProviderService = PexelsProviderService;
@@ -0,0 +1,2 @@
1
+ export * from "./pixabay.service";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/pixabay/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,17 @@
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("./pixabay.service"), exports);
@@ -0,0 +1,12 @@
1
+ import { BaseAiGenProviderService } from "../baseAiGenProvider.service";
2
+ import { CreditUsageParams, StockSearchParams, StockSearchResult } from "../types";
3
+ export declare class PixabayProviderService extends BaseAiGenProviderService {
4
+ private readonly apiKey;
5
+ searchStock(params: StockSearchParams): Promise<StockSearchResult>;
6
+ /** Free assets — registers as 0 credits regardless of model. */
7
+ getCreditUsed(_params: CreditUsageParams): number;
8
+ private aspectToOrientation;
9
+ /** Prefer large → medium → small → tiny so we get the best quality available. */
10
+ private pickBestVideoFile;
11
+ }
12
+ //# sourceMappingURL=pixabay.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pixabay.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/pixabay/pixabay.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAyElB,qBAAa,sBAAuB,SAAQ,wBAAwB;IAClE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmD;IAEpE,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwHxE,gEAAgE;IAChE,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAIjD,OAAO,CAAC,mBAAmB;IAS3B,iFAAiF;IACjF,OAAO,CAAC,iBAAiB;CAO1B"}
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PixabayProviderService = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const apiUsageCounter_service_1 = require("../../../apiUsageCounter.service");
9
+ const baseAiGenProvider_service_1 = require("../baseAiGenProvider.service");
10
+ /**
11
+ * Pixabay stock provider — T0 tier (free).
12
+ *
13
+ * Pixabay's free API supports both photo and video search. We use it as the
14
+ * second link in the stock-search cascade (Pexels → Pixabay → Unsplash for
15
+ * images, Pexels → Pixabay for videos). Auth is a query-string `key=...`
16
+ * parameter — no header.
17
+ *
18
+ * Free tier limits: 100 req/min by default, "soft cap" of ~5k req/hr. We
19
+ * impose a conservative monthly counter for runaway protection (cache layer
20
+ * absorbs most repeat queries anyway).
21
+ *
22
+ * Attribution: Pixabay Content License is permissive but encourages credit
23
+ * ("Image by ... from Pixabay"). The producer / finished-video UI surfaces
24
+ * the photographer name via the same `attribution.{name,url}` envelope we
25
+ * use for Pexels + Unsplash.
26
+ */
27
+ const PIXABAY_IMAGE_URL = "https://pixabay.com/api/";
28
+ const PIXABAY_VIDEO_URL = "https://pixabay.com/api/videos/";
29
+ const PIXABAY_MONTHLY_CAP = Number(process.env.PIXABAY_MONTHLY_CAP ?? 50000);
30
+ const PIXABAY_TIMEOUT_MS = 10000;
31
+ class PixabayProviderService extends baseAiGenProvider_service_1.BaseAiGenProviderService {
32
+ constructor() {
33
+ super(...arguments);
34
+ this.apiKey = process.env.PIXABAY_API_KEY;
35
+ }
36
+ async searchStock(params) {
37
+ if (!this.apiKey) {
38
+ throw new Error("PIXABAY_API_KEY not set — pixabay provider cannot search");
39
+ }
40
+ if (params.kind === "music") {
41
+ throw new Error("Pixabay music search not implemented");
42
+ }
43
+ const allowed = await apiUsageCounter_service_1.ApiUsageCounterService.tryConsume({
44
+ provider: "pixabay",
45
+ monthlyCap: PIXABAY_MONTHLY_CAP,
46
+ });
47
+ if (!allowed) {
48
+ throw new Error(`PIXABAY_RATE_LIMITED: monthly cap of ${PIXABAY_MONTHLY_CAP} exceeded — back off`);
49
+ }
50
+ // Pixabay caps per_page at 200 and requires min 3.
51
+ const perPage = Math.max(3, Math.min(params.perPage ?? 15, 200));
52
+ const orientation = this.aspectToOrientation(params.aspectRatio);
53
+ try {
54
+ if (params.kind === "video") {
55
+ const { data } = await axios_1.default.get(PIXABAY_VIDEO_URL, {
56
+ timeout: PIXABAY_TIMEOUT_MS,
57
+ params: {
58
+ key: this.apiKey,
59
+ q: params.query,
60
+ per_page: perPage,
61
+ page: params.page ?? 1,
62
+ // Pixabay video search has no orientation filter, but supports
63
+ // `video_type=film` to filter out animations if needed. Leave
64
+ // default.
65
+ safesearch: true,
66
+ },
67
+ });
68
+ const assets = data.hits.map((v) => {
69
+ const file = this.pickBestVideoFile(v.videos);
70
+ // Filter post-fetch by duration since Pixabay has no server filter.
71
+ return {
72
+ id: `pixabay-${v.id}`,
73
+ url: file.url,
74
+ thumbnailUrl: v.picture_id
75
+ ? `https://i.vimeocdn.com/video/${v.picture_id}_295x166.jpg`
76
+ : undefined,
77
+ width: file.width,
78
+ height: file.height,
79
+ durationSec: v.duration,
80
+ source: "pixabay",
81
+ attribution: {
82
+ name: v.user,
83
+ url: `https://pixabay.com/users/${v.user_id}/`,
84
+ },
85
+ };
86
+ });
87
+ const filtered = assets.filter((a) => {
88
+ if (params.minDurationSec && a.durationSec < params.minDurationSec)
89
+ return false;
90
+ if (params.maxDurationSec && a.durationSec > params.maxDurationSec)
91
+ return false;
92
+ return true;
93
+ });
94
+ return { assets: filtered, totalAvailable: data.totalHits };
95
+ }
96
+ // image
97
+ const { data } = await axios_1.default.get(PIXABAY_IMAGE_URL, {
98
+ timeout: PIXABAY_TIMEOUT_MS,
99
+ params: {
100
+ key: this.apiKey,
101
+ q: params.query,
102
+ per_page: perPage,
103
+ page: params.page ?? 1,
104
+ orientation, // "all" | "horizontal" | "vertical"
105
+ image_type: "photo",
106
+ safesearch: true,
107
+ },
108
+ });
109
+ return {
110
+ assets: data.hits.map((p) => ({
111
+ id: `pixabay-${p.id}`,
112
+ url: p.largeImageURL,
113
+ thumbnailUrl: p.webformatURL ?? p.previewURL,
114
+ width: p.imageWidth,
115
+ height: p.imageHeight,
116
+ source: "pixabay",
117
+ attribution: {
118
+ name: p.user,
119
+ url: `https://pixabay.com/users/${p.user_id}/`,
120
+ },
121
+ })),
122
+ totalAvailable: data.totalHits,
123
+ };
124
+ }
125
+ catch (err) {
126
+ if (err?.response?.status === 429) {
127
+ throw new Error("PIXABAY_RATE_LIMITED: 429 from Pixabay API — back off");
128
+ }
129
+ if (err?.code === "ECONNABORTED" || /timeout/i.test(err?.message ?? "")) {
130
+ throw new Error(`PIXABAY_TIMEOUT: request timed out after ${PIXABAY_TIMEOUT_MS}ms`);
131
+ }
132
+ throw err;
133
+ }
134
+ }
135
+ /** Free assets — registers as 0 credits regardless of model. */
136
+ getCreditUsed(_params) {
137
+ return 0;
138
+ }
139
+ aspectToOrientation(aspect) {
140
+ if (!aspect)
141
+ return "all";
142
+ if (aspect === "9:16" || aspect === "4:5")
143
+ return "vertical";
144
+ if (aspect === "1:1")
145
+ return "all";
146
+ return "horizontal";
147
+ }
148
+ /** Prefer large → medium → small → tiny so we get the best quality available. */
149
+ pickBestVideoFile(videos) {
150
+ const file = videos.large ?? videos.medium ?? videos.small ?? videos.tiny;
151
+ if (!file)
152
+ throw new Error("Pixabay video has no playable files");
153
+ return file;
154
+ }
155
+ }
156
+ exports.PixabayProviderService = PixabayProviderService;
@@ -1 +1 @@
1
- {"version":3,"file":"pixverse.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/pixverse/pixverse.service.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;AASlB,qBAAa,eAAgB,SAAQ,wBAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkD;IAKpE,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAqE3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAmGjD,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;CA+CjD"}
1
+ {"version":3,"file":"pixverse.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/pixverse/pixverse.service.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;AASlB,qBAAa,eAAgB,SAAQ,wBAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkD;IAKpE,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAsL3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAmGjD,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;CAkDjD"}