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.
- package/lib/globals/aiModels/enums.d.ts +63 -6
- package/lib/globals/aiModels/enums.d.ts.map +1 -1
- package/lib/globals/aiModels/enums.js +78 -9
- package/lib/globals/aiModels/index.d.ts +2 -30
- package/lib/globals/aiModels/index.d.ts.map +1 -1
- package/lib/globals/aiModels/index.js +7 -35
- package/lib/globals/aiModels/providers/alibaba.d.ts +4 -0
- package/lib/globals/aiModels/providers/alibaba.d.ts.map +1 -0
- package/lib/globals/aiModels/providers/alibaba.js +194 -0
- package/lib/globals/aiModels/providers/bytedance.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/bytedance.js +19 -0
- package/lib/globals/aiModels/providers/elevenlabs.d.ts +14 -0
- package/lib/globals/aiModels/providers/elevenlabs.d.ts.map +1 -0
- package/lib/globals/aiModels/providers/elevenlabs.js +29 -0
- package/lib/globals/aiModels/providers/google.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/google.js +150 -2
- package/lib/globals/aiModels/providers/kling.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/kling.js +280 -37
- package/lib/globals/aiModels/providers/minimax.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/minimax.js +76 -11
- package/lib/globals/aiModels/providers/openai.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/openai.js +90 -6
- package/lib/globals/aiModels/providers/pixverse.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/pixverse.js +111 -29
- package/lib/globals/aiModels/providers/pixverseTemplates.d.ts +36 -0
- package/lib/globals/aiModels/providers/pixverseTemplates.d.ts.map +1 -0
- package/lib/globals/aiModels/providers/pixverseTemplates.js +42 -0
- package/lib/globals/aiModels/providers/runway.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/runway.js +64 -2
- package/lib/globals/aiModels/tierHelpers.d.ts +33 -0
- package/lib/globals/aiModels/tierHelpers.d.ts.map +1 -0
- package/lib/globals/aiModels/tierHelpers.js +109 -0
- package/lib/globals/aiModels/types.d.ts +20 -1
- package/lib/globals/aiModels/types.d.ts.map +1 -1
- package/lib/globals/ttsModels/index.d.ts +2 -0
- package/lib/globals/ttsModels/index.d.ts.map +1 -1
- package/lib/globals/ttsModels/index.js +9 -1
- package/lib/globals/ttsModels/providers/minimax.d.ts +8 -0
- package/lib/globals/ttsModels/providers/minimax.d.ts.map +1 -0
- package/lib/globals/ttsModels/providers/minimax.js +18 -0
- package/lib/globals/ttsModels/providers/openai.d.ts +12 -0
- package/lib/globals/ttsModels/providers/openai.d.ts.map +1 -0
- package/lib/globals/ttsModels/providers/openai.js +22 -0
- package/lib/globals/ttsModels/types.d.ts +1 -1
- package/lib/globals/ttsModels/types.d.ts.map +1 -1
- package/lib/globals/ttsModels/voices.d.ts +39 -4
- package/lib/globals/ttsModels/voices.d.ts.map +1 -1
- package/lib/globals/ttsModels/voices.js +273 -26
- package/lib/globals/types.d.ts +59 -1
- package/lib/globals/types.d.ts.map +1 -1
- package/lib/globals/types.js +81 -2
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/models/agent.model.d.ts +357 -0
- package/lib/models/agent.model.d.ts.map +1 -0
- package/lib/models/agent.model.js +21 -0
- package/lib/models/cachedAsset.model.d.ts +18 -0
- package/lib/models/cachedAsset.model.d.ts.map +1 -0
- package/lib/models/cachedAsset.model.js +2 -0
- package/lib/models/cachedRawAsset.model.d.ts +20 -0
- package/lib/models/cachedRawAsset.model.d.ts.map +1 -0
- package/lib/models/cachedRawAsset.model.js +2 -0
- package/lib/models/image.model.d.ts +47 -0
- package/lib/models/image.model.d.ts.map +1 -0
- package/lib/models/image.model.js +2 -0
- package/lib/models/index.d.ts +6 -0
- package/lib/models/index.d.ts.map +1 -1
- package/lib/models/index.js +6 -0
- package/lib/models/notification.model.d.ts +25 -0
- package/lib/models/notification.model.d.ts.map +1 -0
- package/lib/models/notification.model.js +2 -0
- package/lib/models/ref.model.d.ts +80 -0
- package/lib/models/ref.model.d.ts.map +1 -0
- package/lib/models/ref.model.js +13 -0
- package/lib/models/share.model.d.ts +29 -0
- package/lib/models/share.model.d.ts.map +1 -0
- package/lib/models/share.model.js +2 -0
- package/lib/models/user.model.d.ts +12 -1
- package/lib/models/user.model.d.ts.map +1 -1
- package/lib/models/video.model.d.ts +120 -8
- package/lib/models/video.model.d.ts.map +1 -1
- package/lib/models/video.model.js +10 -0
- package/lib/schemas/agentPersona.schema.d.ts +10 -0
- package/lib/schemas/agentPersona.schema.d.ts.map +1 -0
- package/lib/schemas/agentPersona.schema.js +11 -0
- package/lib/schemas/agentRunJob.schema.d.ts +105 -0
- package/lib/schemas/agentRunJob.schema.d.ts.map +1 -0
- package/lib/schemas/agentRunJob.schema.js +88 -0
- package/lib/schemas/brandKit.schema.d.ts +113 -0
- package/lib/schemas/brandKit.schema.d.ts.map +1 -0
- package/lib/schemas/brandKit.schema.js +46 -0
- package/lib/schemas/brief.schema.d.ts +263 -0
- package/lib/schemas/brief.schema.d.ts.map +1 -0
- package/lib/schemas/brief.schema.js +157 -0
- package/lib/schemas/index.d.ts +7 -0
- package/lib/schemas/index.d.ts.map +1 -0
- package/lib/schemas/index.js +22 -0
- package/lib/schemas/project.schema.d.ts +1025 -0
- package/lib/schemas/project.schema.d.ts.map +1 -0
- package/lib/schemas/project.schema.js +256 -0
- package/lib/schemas/videoPlan.schema.d.ts +590 -0
- package/lib/schemas/videoPlan.schema.d.ts.map +1 -0
- package/lib/schemas/videoPlan.schema.js +412 -0
- package/lib/services/agent/beatSnap.d.ts +10 -0
- package/lib/services/agent/beatSnap.d.ts.map +1 -0
- package/lib/services/agent/beatSnap.js +128 -0
- package/lib/services/agent/bibleBuilder.d.ts +43 -0
- package/lib/services/agent/bibleBuilder.d.ts.map +1 -0
- package/lib/services/agent/bibleBuilder.js +102 -0
- package/lib/services/agent/bibleImageVision.d.ts +45 -0
- package/lib/services/agent/bibleImageVision.d.ts.map +1 -0
- package/lib/services/agent/bibleImageVision.js +169 -0
- package/lib/services/agent/chatAgent.d.ts +79 -0
- package/lib/services/agent/chatAgent.d.ts.map +1 -0
- package/lib/services/agent/chatAgent.js +136 -0
- package/lib/services/agent/costPreflight.d.ts +61 -0
- package/lib/services/agent/costPreflight.d.ts.map +1 -0
- package/lib/services/agent/costPreflight.js +143 -0
- package/lib/services/agent/critic.d.ts +103 -0
- package/lib/services/agent/critic.d.ts.map +1 -0
- package/lib/services/agent/critic.js +139 -0
- package/lib/services/agent/editClassifier.d.ts +262 -0
- package/lib/services/agent/editClassifier.d.ts.map +1 -0
- package/lib/services/agent/editClassifier.js +186 -0
- package/lib/services/agent/eval/index.d.ts +5 -0
- package/lib/services/agent/eval/index.d.ts.map +1 -0
- package/lib/services/agent/eval/index.js +20 -0
- package/lib/services/agent/eval/judge.d.ts +14 -0
- package/lib/services/agent/eval/judge.d.ts.map +1 -0
- package/lib/services/agent/eval/judge.js +96 -0
- package/lib/services/agent/eval/recorder.d.ts +28 -0
- package/lib/services/agent/eval/recorder.d.ts.map +1 -0
- package/lib/services/agent/eval/recorder.js +100 -0
- package/lib/services/agent/eval/seedBriefs.d.ts +16 -0
- package/lib/services/agent/eval/seedBriefs.d.ts.map +1 -0
- package/lib/services/agent/eval/seedBriefs.js +1188 -0
- package/lib/services/agent/eval/types.d.ts +230 -0
- package/lib/services/agent/eval/types.d.ts.map +1 -0
- package/lib/services/agent/eval/types.js +73 -0
- package/lib/services/agent/executor.d.ts +141 -0
- package/lib/services/agent/executor.d.ts.map +1 -0
- package/lib/services/agent/executor.js +561 -0
- package/lib/services/agent/globalActions.d.ts +49 -0
- package/lib/services/agent/globalActions.d.ts.map +1 -0
- package/lib/services/agent/globalActions.js +328 -0
- package/lib/services/agent/index.d.ts +38 -0
- package/lib/services/agent/index.d.ts.map +1 -0
- package/lib/services/agent/index.js +53 -0
- package/lib/services/agent/llmCaller.d.ts +144 -0
- package/lib/services/agent/llmCaller.d.ts.map +1 -0
- package/lib/services/agent/llmCaller.js +16 -0
- package/lib/services/agent/llmCallerAnthropic.d.ts +90 -0
- package/lib/services/agent/llmCallerAnthropic.d.ts.map +1 -0
- package/lib/services/agent/llmCallerAnthropic.js +255 -0
- package/lib/services/agent/llmCallerGateway.d.ts +61 -0
- package/lib/services/agent/llmCallerGateway.d.ts.map +1 -0
- package/lib/services/agent/llmCallerGateway.js +360 -0
- package/lib/services/agent/llmCallerRegistry.d.ts +6 -0
- package/lib/services/agent/llmCallerRegistry.d.ts.map +1 -0
- package/lib/services/agent/llmCallerRegistry.js +39 -0
- package/lib/services/agent/modelQualityNotes.d.ts +100 -0
- package/lib/services/agent/modelQualityNotes.d.ts.map +1 -0
- package/lib/services/agent/modelQualityNotes.js +248 -0
- package/lib/services/agent/modelRouter.d.ts +41 -0
- package/lib/services/agent/modelRouter.d.ts.map +1 -0
- package/lib/services/agent/modelRouter.js +65 -0
- package/lib/services/agent/musicSelect.d.ts +23 -0
- package/lib/services/agent/musicSelect.d.ts.map +1 -0
- package/lib/services/agent/musicSelect.js +109 -0
- package/lib/services/agent/overlayRenderer.d.ts +67 -0
- package/lib/services/agent/overlayRenderer.d.ts.map +1 -0
- package/lib/services/agent/overlayRenderer.js +253 -0
- package/lib/services/agent/perSceneCritic.d.ts +90 -0
- package/lib/services/agent/perSceneCritic.d.ts.map +1 -0
- package/lib/services/agent/perSceneCritic.js +125 -0
- package/lib/services/agent/personas.d.ts +78 -0
- package/lib/services/agent/personas.d.ts.map +1 -0
- package/lib/services/agent/personas.js +177 -0
- package/lib/services/agent/planDiff.d.ts +76 -0
- package/lib/services/agent/planDiff.d.ts.map +1 -0
- package/lib/services/agent/planDiff.js +182 -0
- package/lib/services/agent/planMutations.d.ts +46 -0
- package/lib/services/agent/planMutations.d.ts.map +1 -0
- package/lib/services/agent/planMutations.js +120 -0
- package/lib/services/agent/planner/Planner.d.ts +107 -0
- package/lib/services/agent/planner/Planner.d.ts.map +1 -0
- package/lib/services/agent/planner/Planner.js +591 -0
- package/lib/services/agent/planner/overlaySanity.d.ts +7 -0
- package/lib/services/agent/planner/overlaySanity.d.ts.map +1 -0
- package/lib/services/agent/planner/overlaySanity.js +86 -0
- package/lib/services/agent/planner/promptSections.d.ts +25 -0
- package/lib/services/agent/planner/promptSections.d.ts.map +1 -0
- package/lib/services/agent/planner/promptSections.js +174 -0
- package/lib/services/agent/planner/repair.d.ts +16 -0
- package/lib/services/agent/planner/repair.d.ts.map +1 -0
- package/lib/services/agent/planner/repair.js +51 -0
- package/lib/services/agent/planner/structuralRules.d.ts +10 -0
- package/lib/services/agent/planner/structuralRules.d.ts.map +1 -0
- package/lib/services/agent/planner/structuralRules.js +111 -0
- package/lib/services/agent/planner/validators.d.ts +65 -0
- package/lib/services/agent/planner/validators.d.ts.map +1 -0
- package/lib/services/agent/planner/validators.js +284 -0
- package/lib/services/agent/planner.d.ts +3 -0
- package/lib/services/agent/planner.d.ts.map +1 -0
- package/lib/services/agent/planner.js +14 -0
- package/lib/services/agent/providerFallback/chains.d.ts +100 -0
- package/lib/services/agent/providerFallback/chains.d.ts.map +1 -0
- package/lib/services/agent/providerFallback/chains.js +198 -0
- package/lib/services/agent/providerFallback/classifier.d.ts +36 -0
- package/lib/services/agent/providerFallback/classifier.d.ts.map +1 -0
- package/lib/services/agent/providerFallback/classifier.js +103 -0
- package/lib/services/agent/providerFallback/index.d.ts +4 -0
- package/lib/services/agent/providerFallback/index.d.ts.map +1 -0
- package/lib/services/agent/providerFallback/index.js +19 -0
- package/lib/services/agent/providerFallback/withFallback.d.ts +60 -0
- package/lib/services/agent/providerFallback/withFallback.d.ts.map +1 -0
- package/lib/services/agent/providerFallback/withFallback.js +93 -0
- package/lib/services/agent/providerTaskCache.d.ts +50 -0
- package/lib/services/agent/providerTaskCache.d.ts.map +1 -0
- package/lib/services/agent/providerTaskCache.js +98 -0
- package/lib/services/agent/qualityGate.d.ts +82 -0
- package/lib/services/agent/qualityGate.d.ts.map +1 -0
- package/lib/services/agent/qualityGate.js +232 -0
- package/lib/services/agent/referenceImageRenderer.d.ts +37 -0
- package/lib/services/agent/referenceImageRenderer.d.ts.map +1 -0
- package/lib/services/agent/referenceImageRenderer.js +92 -0
- package/lib/services/agent/regenCore.d.ts +60 -0
- package/lib/services/agent/regenCore.d.ts.map +1 -0
- package/lib/services/agent/regenCore.js +487 -0
- package/lib/services/agent/runHelpers.d.ts +44 -0
- package/lib/services/agent/runHelpers.d.ts.map +1 -0
- package/lib/services/agent/runHelpers.js +196 -0
- package/lib/services/agent/sceneLayoutVision.d.ts +90 -0
- package/lib/services/agent/sceneLayoutVision.d.ts.map +1 -0
- package/lib/services/agent/sceneLayoutVision.js +212 -0
- package/lib/services/agent/stitchedVideoCritic.d.ts +136 -0
- package/lib/services/agent/stitchedVideoCritic.d.ts.map +1 -0
- package/lib/services/agent/stitchedVideoCritic.gemini.d.ts +26 -0
- package/lib/services/agent/stitchedVideoCritic.gemini.d.ts.map +1 -0
- package/lib/services/agent/stitchedVideoCritic.gemini.js +198 -0
- package/lib/services/agent/stitchedVideoCritic.js +162 -0
- package/lib/services/agent/taskPoller.d.ts +65 -0
- package/lib/services/agent/taskPoller.d.ts.map +1 -0
- package/lib/services/agent/taskPoller.js +176 -0
- package/lib/services/agent/textOverlayStyles.d.ts +60 -0
- package/lib/services/agent/textOverlayStyles.d.ts.map +1 -0
- package/lib/services/agent/textOverlayStyles.js +174 -0
- package/lib/services/agent/toolRegistry.d.ts +73 -0
- package/lib/services/agent/toolRegistry.d.ts.map +1 -0
- package/lib/services/agent/toolRegistry.js +95 -0
- package/lib/services/agent/tools/analyzeReference.tool.d.ts +36 -0
- package/lib/services/agent/tools/analyzeReference.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/analyzeReference.tool.js +44 -0
- package/lib/services/agent/tools/animateImage.tool.d.ts +24 -0
- package/lib/services/agent/tools/animateImage.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/animateImage.tool.js +115 -0
- package/lib/services/agent/tools/animateImageWithMotionBrush.tool.d.ts +32 -0
- package/lib/services/agent/tools/animateImageWithMotionBrush.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/animateImageWithMotionBrush.tool.js +135 -0
- package/lib/services/agent/tools/composeScene.tool.d.ts +978 -0
- package/lib/services/agent/tools/composeScene.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/composeScene.tool.js +90 -0
- package/lib/services/agent/tools/estimateCost.tool.d.ts +352 -0
- package/lib/services/agent/tools/estimateCost.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/estimateCost.tool.js +62 -0
- package/lib/services/agent/tools/generateAvatarVideo.tool.d.ts +32 -0
- package/lib/services/agent/tools/generateAvatarVideo.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/generateAvatarVideo.tool.js +143 -0
- package/lib/services/agent/tools/generateCaptions.tool.d.ts +42 -0
- package/lib/services/agent/tools/generateCaptions.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/generateCaptions.tool.js +196 -0
- package/lib/services/agent/tools/generateImage.tool.d.ts +74 -0
- package/lib/services/agent/tools/generateImage.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/generateImage.tool.js +206 -0
- package/lib/services/agent/tools/generateVideo.tool.d.ts +31 -0
- package/lib/services/agent/tools/generateVideo.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/generateVideo.tool.js +153 -0
- package/lib/services/agent/tools/generateVoiceover.tool.d.ts +44 -0
- package/lib/services/agent/tools/generateVoiceover.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/generateVoiceover.tool.js +206 -0
- package/lib/services/agent/tools/index.d.ts +20 -0
- package/lib/services/agent/tools/index.d.ts.map +1 -0
- package/lib/services/agent/tools/index.js +35 -0
- package/lib/services/agent/tools/planVideo.tool.d.ts +343 -0
- package/lib/services/agent/tools/planVideo.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/planVideo.tool.js +46 -0
- package/lib/services/agent/tools/render.tool.d.ts +367 -0
- package/lib/services/agent/tools/render.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/render.tool.js +48 -0
- package/lib/services/agent/tools/searchMusic.tool.d.ts +49 -0
- package/lib/services/agent/tools/searchMusic.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/searchMusic.tool.js +74 -0
- package/lib/services/agent/tools/searchStock.tool.d.ts +41 -0
- package/lib/services/agent/tools/searchStock.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/searchStock.tool.js +314 -0
- package/lib/services/agent/tools/searchUserLibrary.tool.d.ts +59 -0
- package/lib/services/agent/tools/searchUserLibrary.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/searchUserLibrary.tool.js +58 -0
- package/lib/services/agent/ttsDuration.d.ts +29 -0
- package/lib/services/agent/ttsDuration.d.ts.map +1 -0
- package/lib/services/agent/ttsDuration.js +60 -0
- package/lib/services/aiGen/aiGenFactory.service.d.ts +21 -1
- package/lib/services/aiGen/aiGenFactory.service.d.ts.map +1 -1
- package/lib/services/aiGen/aiGenFactory.service.js +84 -21
- package/lib/services/aiGen/canonicalAdapters/cameraControl.types.d.ts +31 -0
- package/lib/services/aiGen/canonicalAdapters/cameraControl.types.d.ts.map +1 -0
- package/lib/services/aiGen/canonicalAdapters/cameraControl.types.js +2 -0
- package/lib/services/aiGen/canonicalAdapters/index.d.ts +3 -0
- package/lib/services/aiGen/canonicalAdapters/index.d.ts.map +1 -0
- package/lib/services/aiGen/canonicalAdapters/index.js +18 -0
- package/lib/services/aiGen/canonicalAdapters/multiShot.types.d.ts +23 -0
- package/lib/services/aiGen/canonicalAdapters/multiShot.types.d.ts.map +1 -0
- package/lib/services/aiGen/canonicalAdapters/multiShot.types.js +12 -0
- package/lib/services/aiGen/helpers.d.ts.map +1 -1
- package/lib/services/aiGen/helpers.js +10 -0
- package/lib/services/aiGen/providers/alibaba/alibaba.d.ts +14 -3
- package/lib/services/aiGen/providers/alibaba/alibaba.d.ts.map +1 -1
- package/lib/services/aiGen/providers/alibaba/alibaba.js +155 -22
- package/lib/services/aiGen/providers/baseAiGenProvider.service.d.ts +22 -4
- package/lib/services/aiGen/providers/baseAiGenProvider.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/baseAiGenProvider.service.js +32 -0
- package/lib/services/aiGen/providers/bytedance/bytedance.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/bytedance/bytedance.service.js +13 -19
- package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.d.ts +18 -0
- package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.d.ts.map +1 -0
- package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.js +102 -0
- package/lib/services/aiGen/providers/fal/falImage.service.d.ts +15 -0
- package/lib/services/aiGen/providers/fal/falImage.service.d.ts.map +1 -0
- package/lib/services/aiGen/providers/fal/falImage.service.js +141 -0
- package/lib/services/aiGen/providers/fal/index.d.ts +2 -0
- package/lib/services/aiGen/providers/fal/index.d.ts.map +1 -0
- package/lib/services/aiGen/providers/fal/index.js +17 -0
- package/lib/services/aiGen/providers/google/google.service.d.ts +11 -2
- package/lib/services/aiGen/providers/google/google.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/google/google.service.js +245 -28
- package/lib/services/aiGen/providers/index.d.ts +3 -0
- package/lib/services/aiGen/providers/index.d.ts.map +1 -1
- package/lib/services/aiGen/providers/index.js +3 -0
- package/lib/services/aiGen/providers/kling/cameraAdapter.d.ts +4 -0
- package/lib/services/aiGen/providers/kling/cameraAdapter.d.ts.map +1 -0
- package/lib/services/aiGen/providers/kling/cameraAdapter.js +53 -0
- package/lib/services/aiGen/providers/kling/index.d.ts +1 -0
- package/lib/services/aiGen/providers/kling/index.d.ts.map +1 -1
- package/lib/services/aiGen/providers/kling/index.js +1 -0
- package/lib/services/aiGen/providers/kling/kling.service.d.ts +12 -1
- package/lib/services/aiGen/providers/kling/kling.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/kling/kling.service.js +357 -26
- package/lib/services/aiGen/providers/kling/klingImage.service.d.ts +21 -0
- package/lib/services/aiGen/providers/kling/klingImage.service.d.ts.map +1 -0
- package/lib/services/aiGen/providers/kling/klingImage.service.js +208 -0
- package/lib/services/aiGen/providers/kling/types.d.ts +105 -0
- package/lib/services/aiGen/providers/kling/types.d.ts.map +1 -1
- package/lib/services/aiGen/providers/minimax/minimax.service.d.ts +15 -2
- package/lib/services/aiGen/providers/minimax/minimax.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/minimax/minimax.service.js +128 -5
- package/lib/services/aiGen/providers/minimax/types.d.ts +10 -1
- package/lib/services/aiGen/providers/minimax/types.d.ts.map +1 -1
- package/lib/services/aiGen/providers/openai/openai.service.d.ts +8 -2
- package/lib/services/aiGen/providers/openai/openai.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/openai/openai.service.js +184 -7
- package/lib/services/aiGen/providers/pexels/index.d.ts +2 -0
- package/lib/services/aiGen/providers/pexels/index.d.ts.map +1 -0
- package/lib/services/aiGen/providers/{azure → pexels}/index.js +1 -1
- package/lib/services/aiGen/providers/pexels/pexels.service.d.ts +11 -0
- package/lib/services/aiGen/providers/pexels/pexels.service.d.ts.map +1 -0
- package/lib/services/aiGen/providers/pexels/pexels.service.js +150 -0
- package/lib/services/aiGen/providers/pixabay/index.d.ts +2 -0
- package/lib/services/aiGen/providers/pixabay/index.d.ts.map +1 -0
- package/lib/services/aiGen/providers/pixabay/index.js +17 -0
- package/lib/services/aiGen/providers/pixabay/pixabay.service.d.ts +12 -0
- package/lib/services/aiGen/providers/pixabay/pixabay.service.d.ts.map +1 -0
- package/lib/services/aiGen/providers/pixabay/pixabay.service.js +156 -0
- package/lib/services/aiGen/providers/pixverse/pixverse.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/pixverse/pixverse.service.js +125 -2
- package/lib/services/aiGen/providers/runway/cameraAdapter.d.ts +3 -0
- package/lib/services/aiGen/providers/runway/cameraAdapter.d.ts.map +1 -0
- package/lib/services/aiGen/providers/runway/cameraAdapter.js +46 -0
- package/lib/services/aiGen/providers/runway/runway.service.d.ts +12 -2
- package/lib/services/aiGen/providers/runway/runway.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/runway/runway.service.js +224 -21
- package/lib/services/aiGen/providers/types.d.ts +263 -6
- package/lib/services/aiGen/providers/types.d.ts.map +1 -1
- package/lib/services/aiGen/providers/unsplash/index.d.ts +2 -0
- package/lib/services/aiGen/providers/unsplash/index.d.ts.map +1 -0
- package/lib/services/aiGen/providers/unsplash/index.js +17 -0
- package/lib/services/aiGen/providers/unsplash/unsplash.service.d.ts +16 -0
- package/lib/services/aiGen/providers/unsplash/unsplash.service.d.ts.map +1 -0
- package/lib/services/aiGen/providers/unsplash/unsplash.service.js +131 -0
- package/lib/services/analytics.service.js +2 -4
- package/lib/services/apiUsageCounter.service.d.ts +20 -0
- package/lib/services/apiUsageCounter.service.d.ts.map +1 -0
- package/lib/services/apiUsageCounter.service.js +84 -0
- package/lib/services/asr/assemblyai.service.d.ts +72 -0
- package/lib/services/asr/assemblyai.service.d.ts.map +1 -0
- package/lib/services/asr/assemblyai.service.js +89 -0
- package/lib/services/asr/index.d.ts +3 -0
- package/lib/services/asr/index.d.ts.map +1 -0
- package/lib/services/asr/index.js +18 -0
- package/lib/services/asr/whisper.service.d.ts +18 -0
- package/lib/services/asr/whisper.service.d.ts.map +1 -0
- package/lib/services/asr/whisper.service.js +151 -0
- package/lib/services/assetCache.service.d.ts +54 -0
- package/lib/services/assetCache.service.d.ts.map +1 -0
- package/lib/services/assetCache.service.js +109 -0
- package/lib/services/audioAnalysis/index.d.ts +2 -0
- package/lib/services/audioAnalysis/index.d.ts.map +1 -0
- package/lib/services/audioAnalysis/index.js +17 -0
- package/lib/services/audioAnalysis/onsetDetection.service.d.ts +50 -0
- package/lib/services/audioAnalysis/onsetDetection.service.d.ts.map +1 -0
- package/lib/services/audioAnalysis/onsetDetection.service.js +140 -0
- package/lib/services/bullmq.service.d.ts +6 -1
- package/lib/services/bullmq.service.d.ts.map +1 -1
- package/lib/services/bullmq.service.js +62 -14
- package/lib/services/credit.service.d.ts.map +1 -1
- package/lib/services/credit.service.js +45 -7
- package/lib/services/credits/pricing.d.ts +58 -0
- package/lib/services/credits/pricing.d.ts.map +1 -0
- package/lib/services/credits/pricing.js +111 -0
- package/lib/services/editor/designToProject.d.ts +75 -0
- package/lib/services/editor/designToProject.d.ts.map +1 -0
- package/lib/services/editor/designToProject.js +295 -0
- package/lib/services/editor/planToProject.d.ts +84 -0
- package/lib/services/editor/planToProject.d.ts.map +1 -0
- package/lib/services/editor/planToProject.js +395 -0
- package/lib/services/editor/projectToDesign.d.ts +4 -0
- package/lib/services/editor/projectToDesign.d.ts.map +1 -0
- package/lib/services/editor/projectToDesign.js +186 -0
- package/lib/services/firestore.service.d.ts +17 -0
- package/lib/services/firestore.service.d.ts.map +1 -1
- package/lib/services/firestore.service.js +30 -0
- package/lib/services/gcp/index.d.ts +1 -0
- package/lib/services/gcp/index.d.ts.map +1 -1
- package/lib/services/gcp/index.js +1 -0
- package/lib/services/gcp/uploadAudioBuffer.d.ts +13 -0
- package/lib/services/gcp/uploadAudioBuffer.d.ts.map +1 -0
- package/lib/services/gcp/uploadAudioBuffer.js +28 -0
- package/lib/services/index.d.ts +13 -0
- package/lib/services/index.d.ts.map +1 -1
- package/lib/services/index.js +13 -0
- package/lib/services/musicGen/index.d.ts +6 -0
- package/lib/services/musicGen/index.d.ts.map +1 -0
- package/lib/services/musicGen/index.js +26 -0
- package/lib/services/musicGen/musicSearchFactory.service.d.ts +14 -0
- package/lib/services/musicGen/musicSearchFactory.service.d.ts.map +1 -0
- package/lib/services/musicGen/musicSearchFactory.service.js +59 -0
- package/lib/services/musicGen/providers/curated.service.d.ts +24 -0
- package/lib/services/musicGen/providers/curated.service.d.ts.map +1 -0
- package/lib/services/musicGen/providers/curated.service.js +173 -0
- package/lib/services/musicGen/providers/jamendo.service.d.ts +8 -0
- package/lib/services/musicGen/providers/jamendo.service.d.ts.map +1 -0
- package/lib/services/musicGen/providers/jamendo.service.js +113 -0
- package/lib/services/musicGen/providers/mubert.service.d.ts +10 -0
- package/lib/services/musicGen/providers/mubert.service.d.ts.map +1 -0
- package/lib/services/musicGen/providers/mubert.service.js +128 -0
- package/lib/services/musicGen/types.d.ts +46 -0
- package/lib/services/musicGen/types.d.ts.map +1 -0
- package/lib/services/musicGen/types.js +10 -0
- package/lib/services/notification.service.d.ts +22 -0
- package/lib/services/notification.service.d.ts.map +1 -0
- package/lib/services/notification.service.js +76 -0
- package/lib/services/rateLimiter/distributedRateLimiter.service.d.ts +78 -0
- package/lib/services/rateLimiter/distributedRateLimiter.service.d.ts.map +1 -0
- package/lib/services/rateLimiter/distributedRateLimiter.service.js +269 -0
- package/lib/services/rateLimiter/index.d.ts +2 -0
- package/lib/services/rateLimiter/index.d.ts.map +1 -0
- package/lib/services/rateLimiter/index.js +17 -0
- package/lib/services/redis.service.d.ts +9 -0
- package/lib/services/redis.service.d.ts.map +1 -1
- package/lib/services/redis.service.js +20 -11
- package/lib/services/redisOptions.d.ts +22 -0
- package/lib/services/redisOptions.d.ts.map +1 -0
- package/lib/services/redisOptions.js +51 -0
- package/lib/services/tts/index.d.ts +2 -0
- package/lib/services/tts/index.d.ts.map +1 -1
- package/lib/services/tts/index.js +2 -0
- package/lib/services/tts/providers/elevenlabs.service.d.ts.map +1 -1
- package/lib/services/tts/providers/elevenlabs.service.js +91 -24
- package/lib/services/tts/providers/minimax.service.d.ts +14 -0
- package/lib/services/tts/providers/minimax.service.d.ts.map +1 -0
- package/lib/services/tts/providers/minimax.service.js +78 -0
- package/lib/services/tts/providers/openai.service.d.ts +14 -0
- package/lib/services/tts/providers/openai.service.d.ts.map +1 -0
- package/lib/services/tts/providers/openai.service.js +73 -0
- package/lib/services/tts/ttsFactory.service.d.ts.map +1 -1
- package/lib/services/tts/ttsFactory.service.js +6 -0
- package/lib/services/tts/types.d.ts +33 -0
- package/lib/services/tts/types.d.ts.map +1 -1
- package/lib/utils/errors.d.ts +8 -0
- package/lib/utils/errors.d.ts.map +1 -1
- package/lib/utils/errors.js +8 -0
- package/lib/utils/helpers.d.ts +13 -0
- package/lib/utils/helpers.d.ts.map +1 -1
- package/lib/utils/helpers.js +48 -11
- package/lib/utils/logger.d.ts.map +1 -1
- package/lib/utils/logger.js +37 -1
- package/package.json +5 -1
- package/lib/services/aiGen/providers/azure/azure.service.d.ts +0 -14
- package/lib/services/aiGen/providers/azure/azure.service.d.ts.map +0 -1
- package/lib/services/aiGen/providers/azure/azure.service.js +0 -108
- package/lib/services/aiGen/providers/azure/index.d.ts +0 -2
- 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":"
|
|
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
|
-
|
|
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
|
-
|
|
29
|
+
logger_1.logger.warn("REDIS_URL not set — Redis will not be initialized");
|
|
28
30
|
return;
|
|
29
31
|
}
|
|
30
|
-
|
|
31
|
-
this.client = new ioredis_1.default(redisUrl,
|
|
32
|
-
|
|
33
|
-
|
|
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("
|
|
40
|
-
|
|
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 +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;
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
-
|
|
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:
|
|
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;
|
|
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;
|
|
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"}
|
package/lib/utils/errors.d.ts
CHANGED
|
@@ -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;;;;;;;;;;
|
|
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"}
|