vidspotai-shared 1.0.68 → 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 -30
  5. package/lib/globals/aiModels/index.d.ts.map +1 -1
  6. package/lib/globals/aiModels/index.js +7 -35
  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 +76 -11
  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 -8
  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 -19
  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 +128 -5
  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,3 +1,4 @@
1
+ import { Redis as RedisClient } from "ioredis";
1
2
  export declare class RedisService {
2
3
  private static instance;
3
4
  private client?;
@@ -10,6 +11,14 @@ export declare class RedisService {
10
11
  connect(): Promise<void>;
11
12
  /** Guard helper */
12
13
  private ensureClient;
14
+ /**
15
+ * Returns the raw ioredis client when initialized, otherwise undefined.
16
+ * Used by services that need low-level commands (EVAL/Lua, ZADD, etc.)
17
+ * without going through the JSON-wrapping convenience methods. Callers
18
+ * MUST fail open when this returns undefined — Redis is optional in
19
+ * local dev when REDIS_URL is unset.
20
+ */
21
+ getClient(): RedisClient | undefined;
13
22
  set<T>(key: string, value: T, ttlSeconds?: number): Promise<void>;
14
23
  get<T>(key: string): Promise<T | null>;
15
24
  delete(key: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"redis.service.d.ts","sourceRoot":"","sources":["../../src/services/redis.service.ts"],"names":[],"mappings":"AAEA,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO;WAKO,WAAW,IAAI,YAAY;IAOzC,mDAAmD;IACnD,OAAO,CAAC,UAAU;IA2BlB,uBAAuB;IACV,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAarC,mBAAmB;IACnB,OAAO,CAAC,YAAY;IASP,GAAG,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,EACR,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAWH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAMtC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAKnD,mBAAmB,CAAC,CAAC,EAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,SAAI,GACV,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAKP,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAK1C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvC;AAGD,eAAO,MAAM,KAAK,cAA6B,CAAC;AAEhD,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAE/C"}
1
+ {"version":3,"file":"redis.service.d.ts","sourceRoot":"","sources":["../../src/services/redis.service.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,SAAS,CAAC;AAItD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO;WAKO,WAAW,IAAI,YAAY;IAOzC,mDAAmD;IACnD,OAAO,CAAC,UAAU;IAwBlB,uBAAuB;IACV,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAarC,mBAAmB;IACnB,OAAO,CAAC,YAAY;IAOpB;;;;;;OAMG;IACI,SAAS,IAAI,WAAW,GAAG,SAAS;IAM9B,GAAG,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,EACR,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAWH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAMtC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAKnD,mBAAmB,CAAC,CAAC,EAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,SAAI,GACV,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAKP,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAK1C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvC;AAGD,eAAO,MAAM,KAAK,cAA6B,CAAC;AAEhD,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAE/C"}
@@ -6,10 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.redis = exports.RedisService = void 0;
7
7
  exports.initRedis = initRedis;
8
8
  const ioredis_1 = __importDefault(require("ioredis"));
9
+ const logger_1 = require("../utils/logger");
10
+ const redisOptions_1 = require("./redisOptions");
9
11
  class RedisService {
10
12
  constructor() {
11
13
  this.connected = false;
12
- console.log("🔰 RedisService created (lazy init)");
14
+ logger_1.logger.info("RedisService created (lazy init)");
13
15
  }
14
16
  // Singleton
15
17
  static getInstance() {
@@ -24,20 +26,17 @@ class RedisService {
24
26
  return;
25
27
  const redisUrl = process.env.REDIS_URL;
26
28
  if (!redisUrl) {
27
- console.warn("⚠️ REDIS_URL not set — Redis will not be initialized");
29
+ logger_1.logger.warn("REDIS_URL not set — Redis will not be initialized");
28
30
  return;
29
31
  }
30
- console.log("🔰 Initializing Redis Client with REDIS_URL");
31
- this.client = new ioredis_1.default(redisUrl, {
32
- maxRetriesPerRequest: null,
33
- enableReadyCheck: true,
34
- });
35
- this.client.on("connect", () => {
32
+ logger_1.logger.info("Initializing Redis Client with REDIS_URL");
33
+ this.client = new ioredis_1.default(redisUrl, redisOptions_1.sharedRedisOptions);
34
+ (0, redisOptions_1.attachRedisListeners)(this.client, "RedisService");
35
+ this.client.on("ready", () => {
36
36
  this.connected = true;
37
- console.log("✅ Connected to Redis Cloud");
38
37
  });
39
- this.client.on("error", (err) => {
40
- console.error("❌ Redis Client Error:", err);
38
+ this.client.on("end", () => {
39
+ this.connected = false;
41
40
  });
42
41
  }
43
42
  /** Explicit connect */
@@ -58,6 +57,16 @@ class RedisService {
58
57
  }
59
58
  return this.client;
60
59
  }
60
+ /**
61
+ * Returns the raw ioredis client when initialized, otherwise undefined.
62
+ * Used by services that need low-level commands (EVAL/Lua, ZADD, etc.)
63
+ * without going through the JSON-wrapping convenience methods. Callers
64
+ * MUST fail open when this returns undefined — Redis is optional in
65
+ * local dev when REDIS_URL is unset.
66
+ */
67
+ getClient() {
68
+ return this.client;
69
+ }
61
70
  // ------------------ Commands ------------------
62
71
  async set(key, value, ttlSeconds) {
63
72
  const client = this.ensureClient();
@@ -0,0 +1,22 @@
1
+ import type { RedisOptions } from "ioredis";
2
+ /**
3
+ * Hardened shared ioredis options for both RedisService (cache) and
4
+ * BullMQ (queue connections). Both ioredis clients reconnect by default;
5
+ * this just makes it less chatty during prolonged outages, bounds the
6
+ * backoff, and handles READONLY errors during Redis Cloud failovers.
7
+ *
8
+ * - `maxRetriesPerRequest: null` — REQUIRED for BullMQ stability.
9
+ * - `retryStrategy` — exponential 200ms → 10s cap; infinite retries.
10
+ * - `reconnectOnError` — reconnect on READONLY (failover to a replica
11
+ * that has since become primary).
12
+ */
13
+ export declare const sharedRedisOptions: RedisOptions;
14
+ /**
15
+ * Attach observability + error-dedupe listeners to an ioredis client.
16
+ * Reduces log spam during prolonged outages (e.g. DNS NXDOMAIN, network
17
+ * partition) where ioredis would otherwise emit an `error` every retry.
18
+ */
19
+ export declare function attachRedisListeners(client: {
20
+ on: (ev: string, fn: (...a: any[]) => void) => void;
21
+ }, label: string): void;
22
+ //# sourceMappingURL=redisOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redisOptions.d.ts","sourceRoot":"","sources":["../../src/services/redisOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,EAAE,YAMhC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE;IAAE,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;CAAE,EAC/D,KAAK,EAAE,MAAM,GACZ,IAAI,CAwBN"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sharedRedisOptions = void 0;
4
+ exports.attachRedisListeners = attachRedisListeners;
5
+ const logger_1 = require("../utils/logger");
6
+ /**
7
+ * Hardened shared ioredis options for both RedisService (cache) and
8
+ * BullMQ (queue connections). Both ioredis clients reconnect by default;
9
+ * this just makes it less chatty during prolonged outages, bounds the
10
+ * backoff, and handles READONLY errors during Redis Cloud failovers.
11
+ *
12
+ * - `maxRetriesPerRequest: null` — REQUIRED for BullMQ stability.
13
+ * - `retryStrategy` — exponential 200ms → 10s cap; infinite retries.
14
+ * - `reconnectOnError` — reconnect on READONLY (failover to a replica
15
+ * that has since become primary).
16
+ */
17
+ exports.sharedRedisOptions = {
18
+ maxRetriesPerRequest: null,
19
+ enableReadyCheck: true,
20
+ enableOfflineQueue: true,
21
+ retryStrategy: (times) => Math.min(200 * Math.pow(1.5, times), 10000),
22
+ reconnectOnError: (err) => err.message.includes("READONLY"),
23
+ };
24
+ /**
25
+ * Attach observability + error-dedupe listeners to an ioredis client.
26
+ * Reduces log spam during prolonged outages (e.g. DNS NXDOMAIN, network
27
+ * partition) where ioredis would otherwise emit an `error` every retry.
28
+ */
29
+ function attachRedisListeners(client, label) {
30
+ let lastErrCode;
31
+ let lastErrAt = 0;
32
+ const ERR_LOG_WINDOW_MS = 60000;
33
+ client.on("connect", () => logger_1.logger.info(`redis connecting`, { label }));
34
+ client.on("ready", () => logger_1.logger.info(`redis ready`, { label }));
35
+ client.on("reconnecting", (delay) => logger_1.logger.info(`redis reconnecting`, { label, delayMs: delay }));
36
+ client.on("end", () => logger_1.logger.info(`redis connection ended`, { label }));
37
+ client.on("close", () => logger_1.logger.info(`redis connection closed`, { label }));
38
+ client.on("error", (err) => {
39
+ const code = err.code ?? err.message;
40
+ const now = Date.now();
41
+ if (code === lastErrCode && now - lastErrAt < ERR_LOG_WINDOW_MS)
42
+ return;
43
+ lastErrCode = code;
44
+ lastErrAt = now;
45
+ logger_1.logger.error("redis: connection error", {
46
+ label,
47
+ code,
48
+ err: err?.stack ?? err?.message ?? String(err),
49
+ });
50
+ });
51
+ }
@@ -1,4 +1,6 @@
1
1
  export * from "./types";
2
2
  export * from "./providers/elevenlabs.service";
3
+ export * from "./providers/minimax.service";
4
+ export * from "./providers/openai.service";
3
5
  export * from "./ttsFactory.service";
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/tts/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/tts/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC"}
@@ -16,4 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./types"), exports);
18
18
  __exportStar(require("./providers/elevenlabs.service"), exports);
19
+ __exportStar(require("./providers/minimax.service"), exports);
20
+ __exportStar(require("./providers/openai.service"), exports);
19
21
  __exportStar(require("./ttsFactory.service"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"elevenlabs.service.d.ts","sourceRoot":"","sources":["../../../../src/services/tts/providers/elevenlabs.service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAiBzF,qBAAa,iBAAkB,SAAQ,sBAAsB;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAE1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;IAW1B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IA6DrD;;;;;OAKG;YACW,gBAAgB;IAuC9B,SAAS,IAAI,eAAe,EAAE;IAI9B,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAGpD"}
1
+ {"version":3,"file":"elevenlabs.service.d.ts","sourceRoot":"","sources":["../../../../src/services/tts/providers/elevenlabs.service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAiBzF,qBAAa,iBAAkB,SAAQ,sBAAsB;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAE1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;IAW1B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAuFrD;;;;;OAKG;YACW,gBAAgB;IAsD9B,SAAS,IAAI,eAAe,EAAE;IAI9B,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAGpD"}
@@ -39,22 +39,53 @@ class ElevenLabsService extends types_1.BaseTtsProviderService {
39
39
  ? this.mapLanguageCode(params.languageCode)
40
40
  : undefined;
41
41
  const modelId = params.modelIdOverride ?? elevenlabs_1.elevenlabsConfig.modelId;
42
- const buildBody = (lang) => ({
43
- text: params.text,
44
- model_id: modelId,
45
- language_code: lang,
46
- voice_settings: {
47
- stability: 0.5,
48
- similarity_boost: 0.75,
49
- },
50
- });
51
- try {
52
- const audioBuffer = await this.postTtsWithRetry(voiceId, buildBody(languageCode));
53
- return {
54
- audioBuffer,
55
- mimeType: "audio/mpeg",
56
- extension: "mp3",
42
+ // Compose voice_settings only with defined keys so we don't overwrite
43
+ // server-side defaults for fields the caller didn't touch.
44
+ const voiceSettings = {
45
+ stability: params.stability ?? 0.5,
46
+ similarity_boost: params.similarityBoost ?? 0.75,
47
+ };
48
+ if (params.style !== undefined)
49
+ voiceSettings.style = params.style;
50
+ if (params.useSpeakerBoost !== undefined)
51
+ voiceSettings.use_speaker_boost = params.useSpeakerBoost;
52
+ if (params.speed !== undefined)
53
+ voiceSettings.speed = params.speed;
54
+ const buildBody = (lang) => {
55
+ const body = {
56
+ text: params.text,
57
+ model_id: modelId,
58
+ language_code: lang,
59
+ voice_settings: voiceSettings,
57
60
  };
61
+ if (params.seed !== undefined)
62
+ body.seed = params.seed;
63
+ if (params.previousText)
64
+ body.previous_text = params.previousText;
65
+ if (params.nextText)
66
+ body.next_text = params.nextText;
67
+ if (params.previousRequestIds?.length)
68
+ body.previous_request_ids = params.previousRequestIds.slice(0, 3);
69
+ if (params.nextRequestIds?.length)
70
+ body.next_request_ids = params.nextRequestIds.slice(0, 3);
71
+ if (params.applyTextNormalization)
72
+ body.apply_text_normalization = params.applyTextNormalization;
73
+ if (params.applyLanguageTextNormalization !== undefined) {
74
+ body.apply_language_text_normalization = params.applyLanguageTextNormalization;
75
+ }
76
+ if (params.pronunciationDictionaryLocators?.length) {
77
+ body.pronunciation_dictionary_locators = params.pronunciationDictionaryLocators.slice(0, 3);
78
+ }
79
+ return body;
80
+ };
81
+ const outputFormat = params.outputFormat;
82
+ const { mimeType, extension } = mimeFromOutputFormat(outputFormat);
83
+ try {
84
+ const audioBuffer = await this.postTtsWithRetry(voiceId, buildBody(languageCode), {
85
+ outputFormat,
86
+ optimizeStreamingLatency: params.optimizeStreamingLatency,
87
+ });
88
+ return { audioBuffer, mimeType, extension };
58
89
  }
59
90
  catch (err) {
60
91
  // responseType:"arraybuffer" causes error bodies to arrive as Buffer/ArrayBuffer,
@@ -75,14 +106,15 @@ class ElevenLabsService extends types_1.BaseTtsProviderService {
75
106
  if (err.response.status === 400 &&
76
107
  languageCode &&
77
108
  (detail.includes("language_code") || detail.includes("does not support"))) {
78
- const audioBuffer = await this.postTtsWithRetry(voiceId, buildBody(undefined));
79
- return {
80
- audioBuffer,
81
- mimeType: "audio/mpeg",
82
- extension: "mp3",
83
- };
109
+ const audioBuffer = await this.postTtsWithRetry(voiceId, buildBody(undefined), {
110
+ outputFormat,
111
+ optimizeStreamingLatency: params.optimizeStreamingLatency,
112
+ });
113
+ return { audioBuffer, mimeType, extension };
84
114
  }
85
- throw new Error(`ElevenLabs TTS ${err.response.status}: ${detail} [voiceId=${voiceId}, languageCode=${languageCode ?? "none"}, modelId=${modelId}, textLen=${params.text?.length ?? 0}]`);
115
+ const wrapped = new Error(`ElevenLabs TTS ${err.response.status}: ${detail} [voiceId=${voiceId}, languageCode=${languageCode ?? "none"}, modelId=${modelId}, textLen=${params.text?.length ?? 0}]`);
116
+ wrapped.cause = err;
117
+ throw wrapped;
86
118
  }
87
119
  throw err;
88
120
  }
@@ -93,7 +125,14 @@ class ElevenLabsService extends types_1.BaseTtsProviderService {
93
125
  * HTTP 429 (rate limit, longer backoff), HTTP 5xx (server errors).
94
126
  * Does NOT retry: 400/401/403/404 (caller handles 400 language_code separately).
95
127
  */
96
- async postTtsWithRetry(voiceId, body) {
128
+ async postTtsWithRetry(voiceId, body, opts) {
129
+ const query = {};
130
+ if (opts?.outputFormat)
131
+ query.output_format = opts.outputFormat;
132
+ if (opts?.optimizeStreamingLatency !== undefined) {
133
+ query.optimize_streaming_latency = opts.optimizeStreamingLatency;
134
+ }
135
+ const { mimeType } = mimeFromOutputFormat(opts?.outputFormat);
97
136
  let lastErr;
98
137
  for (let attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) {
99
138
  try {
@@ -101,8 +140,9 @@ class ElevenLabsService extends types_1.BaseTtsProviderService {
101
140
  headers: {
102
141
  "xi-api-key": this.apiKey,
103
142
  "Content-Type": "application/json",
104
- Accept: "audio/mpeg",
143
+ Accept: mimeType,
105
144
  },
145
+ params: Object.keys(query).length ? query : undefined,
106
146
  responseType: "arraybuffer",
107
147
  timeout: PER_ATTEMPT_TIMEOUT_MS,
108
148
  });
@@ -136,6 +176,33 @@ class ElevenLabsService extends types_1.BaseTtsProviderService {
136
176
  }
137
177
  }
138
178
  exports.ElevenLabsService = ElevenLabsService;
179
+ /**
180
+ * Maps an ElevenLabs `output_format` query value (codec_sampleRate_bitrate)
181
+ * to the appropriate HTTP Accept header + file extension. Defaults to mp3
182
+ * when format is omitted so existing callers (no output_format set) keep
183
+ * the previous mp3_44100_128 behaviour.
184
+ */
185
+ function mimeFromOutputFormat(fmt) {
186
+ if (!fmt)
187
+ return { mimeType: "audio/mpeg", extension: "mp3" };
188
+ const codec = fmt.split("_", 1)[0];
189
+ switch (codec) {
190
+ case "mp3":
191
+ return { mimeType: "audio/mpeg", extension: "mp3" };
192
+ case "pcm":
193
+ return { mimeType: "audio/pcm", extension: "pcm" };
194
+ case "wav":
195
+ return { mimeType: "audio/wav", extension: "wav" };
196
+ case "opus":
197
+ return { mimeType: "audio/opus", extension: "opus" };
198
+ case "alaw":
199
+ return { mimeType: "audio/alaw", extension: "alaw" };
200
+ case "ulaw":
201
+ return { mimeType: "audio/basic", extension: "ulaw" };
202
+ default:
203
+ return { mimeType: "audio/mpeg", extension: "mp3" };
204
+ }
205
+ }
139
206
  function isTransientHttpError(err) {
140
207
  if (!err)
141
208
  return false;
@@ -0,0 +1,14 @@
1
+ import { BaseTtsProviderService, ITtsVoiceOption, TtsParams, TtsResult } from "../types";
2
+ /**
3
+ * MiniMax Speech-02-HD (T2A v2). Sync — POST /v1/t2a_v2 returns hex-encoded audio
4
+ * inline (decoded into Buffer; same response shape as music-1.5).
5
+ */
6
+ export declare class MinimaxTtsService extends BaseTtsProviderService {
7
+ private readonly baseUrl;
8
+ private readonly apiKey;
9
+ constructor();
10
+ generate(params: TtsParams): Promise<TtsResult>;
11
+ getVoices(): ITtsVoiceOption[];
12
+ mapLanguageCode(locale: string): string | undefined;
13
+ }
14
+ //# sourceMappingURL=minimax.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimax.service.d.ts","sourceRoot":"","sources":["../../../../src/services/tts/providers/minimax.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEzF;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,sBAAsB;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IAEpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;IAU1B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAuDrD,SAAS,IAAI,eAAe,EAAE;IAI9B,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAGpD"}
@@ -0,0 +1,78 @@
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.MinimaxTtsService = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const minimax_1 = require("../../../globals/ttsModels/providers/minimax");
9
+ const voices_1 = require("../../../globals/ttsModels/voices");
10
+ const types_1 = require("../types");
11
+ /**
12
+ * MiniMax Speech-02-HD (T2A v2). Sync — POST /v1/t2a_v2 returns hex-encoded audio
13
+ * inline (decoded into Buffer; same response shape as music-1.5).
14
+ */
15
+ class MinimaxTtsService extends types_1.BaseTtsProviderService {
16
+ constructor() {
17
+ super();
18
+ this.baseUrl = "https://api.minimax.io";
19
+ if (!process.env.MINIMAX_ACCESS_KEY) {
20
+ throw new Error("Missing MINIMAX_ACCESS_KEY in environment variables");
21
+ }
22
+ this.apiKey = process.env.MINIMAX_ACCESS_KEY;
23
+ }
24
+ async generate(params) {
25
+ const voiceId = params.voiceId ?? minimax_1.minimaxTtsConfig.defaultVoiceId;
26
+ const body = {
27
+ model: minimax_1.minimaxTtsConfig.modelId,
28
+ text: params.text,
29
+ voice_setting: {
30
+ voice_id: voiceId,
31
+ speed: 1.0,
32
+ vol: 1.0,
33
+ pitch: 0,
34
+ },
35
+ audio_setting: {
36
+ sample_rate: 32000,
37
+ bitrate: 128000,
38
+ format: "mp3",
39
+ channel: 1,
40
+ },
41
+ };
42
+ const langPair = params.languageCode ? this.mapLanguageCode(params.languageCode) : undefined;
43
+ if (langPair) {
44
+ body.language_boost = langPair;
45
+ }
46
+ const resp = await axios_1.default.post(`${this.baseUrl}/v1/t2a_v2`, body, {
47
+ headers: {
48
+ Authorization: `Bearer ${this.apiKey}`,
49
+ "Content-Type": "application/json",
50
+ },
51
+ timeout: 120000,
52
+ validateStatus: () => true,
53
+ });
54
+ if (resp.status < 200 || resp.status >= 300) {
55
+ throw new Error(`MiniMax TTS ${resp.status}: ${JSON.stringify(resp.data)}`);
56
+ }
57
+ const baseResp = resp.data?.base_resp;
58
+ if (baseResp && baseResp.status_code !== 0) {
59
+ throw new Error(`MiniMax TTS error ${baseResp.status_code}: ${baseResp.status_msg}`);
60
+ }
61
+ const audioHex = resp.data?.data?.audio;
62
+ if (!audioHex) {
63
+ throw new Error("MiniMax TTS returned no audio data");
64
+ }
65
+ return {
66
+ audioBuffer: Buffer.from(audioHex, "hex"),
67
+ mimeType: "audio/mpeg",
68
+ extension: "mp3",
69
+ };
70
+ }
71
+ getVoices() {
72
+ return voices_1.MINIMAX_VOICES;
73
+ }
74
+ mapLanguageCode(locale) {
75
+ return voices_1.LANG_TO_MINIMAX_CODE[locale.toLowerCase()];
76
+ }
77
+ }
78
+ exports.MinimaxTtsService = MinimaxTtsService;
@@ -0,0 +1,14 @@
1
+ import { BaseTtsProviderService, ITtsVoiceOption, TtsParams, TtsResult } from "../types";
2
+ /**
3
+ * OpenAI gpt-4o-mini-tts. Sync — POST /v1/audio/speech returns mp3 binary.
4
+ * Note: OpenAI auto-detects language from input text; no language_code field.
5
+ */
6
+ export declare class OpenaiTtsService extends BaseTtsProviderService {
7
+ private readonly baseUrl;
8
+ private readonly apiKey;
9
+ constructor();
10
+ generate(params: TtsParams): Promise<TtsResult>;
11
+ getVoices(): ITtsVoiceOption[];
12
+ mapLanguageCode(_locale: string): string | undefined;
13
+ }
14
+ //# sourceMappingURL=openai.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.service.d.ts","sourceRoot":"","sources":["../../../../src/services/tts/providers/openai.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEzF;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,sBAAsB;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IAEvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;IAU1B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IA8CrD,SAAS,IAAI,eAAe,EAAE;IAI9B,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAGrD"}
@@ -0,0 +1,73 @@
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.OpenaiTtsService = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const openai_1 = require("../../../globals/ttsModels/providers/openai");
9
+ const voices_1 = require("../../../globals/ttsModels/voices");
10
+ const types_1 = require("../types");
11
+ /**
12
+ * OpenAI gpt-4o-mini-tts. Sync — POST /v1/audio/speech returns mp3 binary.
13
+ * Note: OpenAI auto-detects language from input text; no language_code field.
14
+ */
15
+ class OpenaiTtsService extends types_1.BaseTtsProviderService {
16
+ constructor() {
17
+ super();
18
+ this.baseUrl = "https://api.openai.com/v1";
19
+ if (!process.env.OPENAI_API_KEY) {
20
+ throw new Error("Missing OPENAI_API_KEY in environment variables");
21
+ }
22
+ this.apiKey = process.env.OPENAI_API_KEY;
23
+ }
24
+ async generate(params) {
25
+ const voiceId = params.voiceId ?? openai_1.openaiTtsConfig.defaultVoiceId;
26
+ const body = {
27
+ model: openai_1.openaiTtsConfig.modelId,
28
+ input: params.text,
29
+ voice: voiceId,
30
+ response_format: "mp3",
31
+ };
32
+ try {
33
+ const resp = await axios_1.default.post(`${this.baseUrl}/audio/speech`, body, {
34
+ headers: {
35
+ Authorization: `Bearer ${this.apiKey}`,
36
+ "Content-Type": "application/json",
37
+ Accept: "audio/mpeg",
38
+ },
39
+ responseType: "arraybuffer",
40
+ timeout: 120000,
41
+ });
42
+ return {
43
+ audioBuffer: Buffer.from(resp.data),
44
+ mimeType: "audio/mpeg",
45
+ extension: "mp3",
46
+ };
47
+ }
48
+ catch (err) {
49
+ if (err.response?.data) {
50
+ let detail = "";
51
+ try {
52
+ const bodyStr = Buffer.from(err.response.data).toString("utf8");
53
+ const parsed = JSON.parse(bodyStr);
54
+ detail = parsed?.error?.message ?? bodyStr;
55
+ }
56
+ catch {
57
+ detail = Buffer.from(err.response.data).toString("utf8");
58
+ }
59
+ const wrapped = new Error(`OpenAI TTS ${err.response.status}: ${detail} [voiceId=${voiceId}, textLen=${params.text?.length ?? 0}]`);
60
+ wrapped.cause = err;
61
+ throw wrapped;
62
+ }
63
+ throw err;
64
+ }
65
+ }
66
+ getVoices() {
67
+ return voices_1.OPENAI_VOICES;
68
+ }
69
+ mapLanguageCode(_locale) {
70
+ return undefined;
71
+ }
72
+ }
73
+ exports.OpenaiTtsService = OpenaiTtsService;
@@ -1 +1 @@
1
- {"version":3,"file":"ttsFactory.service.d.ts","sourceRoot":"","sources":["../../../src/services/tts/ttsFactory.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,WAAW,GAAG,sBAAsB,CAOnF"}
1
+ {"version":3,"file":"ttsFactory.service.d.ts","sourceRoot":"","sources":["../../../src/services/tts/ttsFactory.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAI5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,WAAW,GAAG,sBAAsB,CAWnF"}
@@ -2,10 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTtsProviderService = getTtsProviderService;
4
4
  const elevenlabs_service_1 = require("./providers/elevenlabs.service");
5
+ const minimax_service_1 = require("./providers/minimax.service");
6
+ const openai_service_1 = require("./providers/openai.service");
5
7
  function getTtsProviderService(provider) {
6
8
  switch (provider) {
7
9
  case "elevenlabs":
8
10
  return new elevenlabs_service_1.ElevenLabsService();
11
+ case "minimax":
12
+ return new minimax_service_1.MinimaxTtsService();
13
+ case "openai":
14
+ return new openai_service_1.OpenaiTtsService();
9
15
  default:
10
16
  throw new Error(`Unknown TTS provider: ${provider}`);
11
17
  }
@@ -8,6 +8,39 @@ export interface TtsParams {
8
8
  * Providers that don't support overrides ignore this field.
9
9
  */
10
10
  modelIdOverride?: string;
11
+ /** Provider-specific output container/codec (e.g. ElevenLabs "mp3_44100_192"). */
12
+ outputFormat?: string;
13
+ /** ElevenLabs voice_settings.stability (0–1). Lower = more emotional range; higher = more consistent. */
14
+ stability?: number;
15
+ /** ElevenLabs voice_settings.similarity_boost (0–1). How closely to mimic the original voice. */
16
+ similarityBoost?: number;
17
+ /** ElevenLabs voice_settings.style — exaggeration (0–1). 0 = neutral; higher = amplified delivery. */
18
+ style?: number;
19
+ /** ElevenLabs voice_settings.use_speaker_boost. */
20
+ useSpeakerBoost?: boolean;
21
+ /** ElevenLabs voice_settings.speed (0.7–1.2). 1.0 = natural pace. */
22
+ speed?: number;
23
+ /** Deterministic seed when provider supports it. */
24
+ seed?: number;
25
+ /** Preceding scene's text — prosody continuity hint (ElevenLabs). */
26
+ previousText?: string;
27
+ /** Following scene's text — prosody continuity hint (ElevenLabs). */
28
+ nextText?: string;
29
+ /** Up to 3 request IDs of preceding generations — strongest cross-scene continuity (ElevenLabs). */
30
+ previousRequestIds?: string[];
31
+ /** Up to 3 request IDs of following generations (ElevenLabs). */
32
+ nextRequestIds?: string[];
33
+ /** "auto" | "on" | "off" — controls spelling out numbers, symbols, etc. */
34
+ applyTextNormalization?: "auto" | "on" | "off";
35
+ /** Apply language-specific text normalisation (currently Japanese only). */
36
+ applyLanguageTextNormalization?: boolean;
37
+ /** 0–4. Higher = lower latency at small quality cost. 4 also disables text normaliser. */
38
+ optimizeStreamingLatency?: 0 | 1 | 2 | 3 | 4;
39
+ /** Custom pronunciation overrides — up to 3 locators per request. */
40
+ pronunciationDictionaryLocators?: Array<{
41
+ pronunciation_dictionary_id: string;
42
+ version_id?: string;
43
+ }>;
11
44
  }
12
45
  export interface TtsResult {
13
46
  audioBuffer: Buffer;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/tts/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,8BAAsB,sBAAsB;IAC1C,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAExD;;;OAGG;IACH,QAAQ,CAAC,SAAS,IAAI,eAAe,EAAE;IAEvC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAC7D"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/tts/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kFAAkF;IAClF,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,yGAAyG;IACzG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iGAAiG;IACjG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sGAAsG;IACtG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oGAAoG;IACpG,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAG1B,2EAA2E;IAC3E,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;IAC/C,4EAA4E;IAC5E,8BAA8B,CAAC,EAAE,OAAO,CAAC;IAGzC,0FAA0F;IAC1F,wBAAwB,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE7C,qEAAqE;IACrE,+BAA+B,CAAC,EAAE,KAAK,CAAC;QACtC,2BAA2B,EAAE,MAAM,CAAC;QACpC,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,8BAAsB,sBAAsB;IAC1C,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAExD;;;OAGG;IACH,QAAQ,CAAC,SAAS,IAAI,eAAe,EAAE;IAEvC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAC7D"}
@@ -30,6 +30,14 @@ export declare const USER_FACING_ERROR_CODES: {
30
30
  readonly PROMPT_INVALID: "PROMPT_INVALID";
31
31
  readonly INPUT_IMAGE_REJECTED: "INPUT_IMAGE_REJECTED";
32
32
  readonly CONTENT_POLICY_VIOLATION: "CONTENT_POLICY_VIOLATION";
33
+ /** Provider returned auth / config error (401, missing key) — deploy bug, fail fast. */
34
+ readonly PROVIDER_AUTH_ERROR: "PROVIDER_AUTH_ERROR";
35
+ /** Account-level quota is exhausted (vs. transient rate limit on a short window). */
36
+ readonly ACCOUNT_QUOTA_EXCEEDED: "ACCOUNT_QUOTA_EXCEEDED";
37
+ /** Provider is up but cannot fulfil the request (e.g. unsupported aspect ratio / duration). */
38
+ readonly CAPABILITY_MISMATCH: "CAPABILITY_MISMATCH";
39
+ /** Provider classified the request as unavailable (general service degradation, 5xx persistent). */
40
+ readonly PROVIDER_UNAVAILABLE: "PROVIDER_UNAVAILABLE";
33
41
  };
34
42
  export type UserFacingErrorCode = keyof typeof USER_FACING_ERROR_CODES;
35
43
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,iBAAiB,QAAQ;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAM1C,qEAAqE;IACrE,MAAM,IAAI;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CAG7C;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;CAU1B,CAAC;AACX,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,uBAAuB,CAAC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,iBAAiB,QAAQ;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAM1C,qEAAqE;IACrE,MAAM,IAAI;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CAG7C;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;IAUlC,wFAAwF;;IAExF,qFAAqF;;IAErF,+FAA+F;;IAE/F,oGAAoG;;CAE5F,CAAC;AACX,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,uBAAuB,CAAC"}