vidspotai-shared 1.0.67 → 1.0.69-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 -0
- package/lib/globals/aiModels/index.d.ts.map +1 -1
- package/lib/globals/aiModels/index.js +6 -0
- 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 +73 -2
- 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 -0
- 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 -13
- 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 +127 -1
- 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
package/lib/utils/errors.js
CHANGED
|
@@ -36,4 +36,12 @@ exports.USER_FACING_ERROR_CODES = {
|
|
|
36
36
|
PROMPT_INVALID: "PROMPT_INVALID",
|
|
37
37
|
INPUT_IMAGE_REJECTED: "INPUT_IMAGE_REJECTED",
|
|
38
38
|
CONTENT_POLICY_VIOLATION: "CONTENT_POLICY_VIOLATION",
|
|
39
|
+
/** Provider returned auth / config error (401, missing key) — deploy bug, fail fast. */
|
|
40
|
+
PROVIDER_AUTH_ERROR: "PROVIDER_AUTH_ERROR",
|
|
41
|
+
/** Account-level quota is exhausted (vs. transient rate limit on a short window). */
|
|
42
|
+
ACCOUNT_QUOTA_EXCEEDED: "ACCOUNT_QUOTA_EXCEEDED",
|
|
43
|
+
/** Provider is up but cannot fulfil the request (e.g. unsupported aspect ratio / duration). */
|
|
44
|
+
CAPABILITY_MISMATCH: "CAPABILITY_MISMATCH",
|
|
45
|
+
/** Provider classified the request as unavailable (general service degradation, 5xx persistent). */
|
|
46
|
+
PROVIDER_UNAVAILABLE: "PROVIDER_UNAVAILABLE",
|
|
39
47
|
};
|
package/lib/utils/helpers.d.ts
CHANGED
|
@@ -5,6 +5,19 @@ export declare const getPlanTypeById: (priceId: string) => ESUBSCRIPTION_PLANS |
|
|
|
5
5
|
export declare const getFreqById: (priceId: string) => ERENEWAL_FREQUENCY | null;
|
|
6
6
|
export declare const getPriceIdByType: (type: ESUBSCRIPTION_PLANS, freq?: ERENEWAL_FREQUENCY) => string;
|
|
7
7
|
export declare const getCreditsFromCost: (cost: number, applyFloor?: boolean) => number;
|
|
8
|
+
/**
|
|
9
|
+
* Guard against silent under-billing when a model's `cost` block is missing
|
|
10
|
+
* from `aiModelConfigs`. Every provider's `getCreditUsed()` historically fell
|
|
11
|
+
* back to a hardcoded $1 with only a `logger.warn` — meaning a freshly added
|
|
12
|
+
* model with no cost entry would charge a flat 10 credits regardless of the
|
|
13
|
+
* actual provider price.
|
|
14
|
+
*
|
|
15
|
+
* In dev/test, this throws so the gap surfaces immediately. In prod, it logs
|
|
16
|
+
* a high-severity warning (which the Slack-integrated logger forwards) and
|
|
17
|
+
* returns the supplied fallback so users aren't blocked. Either way the gap
|
|
18
|
+
* gets visibility instead of being silently absorbed.
|
|
19
|
+
*/
|
|
20
|
+
export declare const assertCostFound: (modelKey: string, cost: number | undefined, fallback: number) => number;
|
|
8
21
|
/**
|
|
9
22
|
* Discount factors applied to the total clip cost for multi-clip video types.
|
|
10
23
|
* Implements economies-of-scale pricing: higher volume → lower per-clip margin.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAElB,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,eAAe,GAC1B,SAAS,MAAM,KACd,mBAAmB,GAAG,IASxB,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,KAAG,kBAAkB,GAAG,IASlE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,MAAM,mBAAmB,EACzB,OAAM,kBAA+C,WAgBtD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,EAAE,oBAAiB,KAAG,MASpE,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,GAC1B,UAAU,MAAM,EAChB,MAAM,MAAM,GAAG,SAAS,EACxB,UAAU,MAAM,KACf,MASF,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,2BAA2B,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAInF,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,kBAAkB,GAAG,MAAM,CAEnF;AAED,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAEvD,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,EACZ,MAAM,cAAc,EACpB,KAAI,cAAkC,EACtC,UAAS,IAAI,GAAG,IAAW,KAC1B,OAAO,CAAC,MAAM,CAwChB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,WAAW,CAuBlE,CAAC;AAEF,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,SAAQ,EACf,QAAQ,SAAM,oBAQf;AAGD,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,SAAS,EAAE,CAAC,CAAC;IACb,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAGxB,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAkDrB,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAatE"}
|
package/lib/utils/helpers.js
CHANGED
|
@@ -3,12 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.detectLang = exports.getTranslationWrapper = exports.TRANSLATION_FAILED = exports.MULTI_CLIP_DISCOUNT_FACTORS = exports.getCreditsFromCost = exports.getPriceIdByType = exports.getFreqById = exports.getPlanTypeById = void 0;
|
|
6
|
+
exports.detectLang = exports.getTranslationWrapper = exports.TRANSLATION_FAILED = exports.MULTI_CLIP_DISCOUNT_FACTORS = exports.assertCostFound = exports.getCreditsFromCost = exports.getPriceIdByType = exports.getFreqById = exports.getPlanTypeById = void 0;
|
|
7
7
|
exports.getMultiClipDiscountFactor = getMultiClipDiscountFactor;
|
|
8
8
|
exports.waitForFile = waitForFile;
|
|
9
9
|
exports.generateAndValidate = generateAndValidate;
|
|
10
10
|
exports.getVideoDurationRangeText = getVideoDurationRangeText;
|
|
11
11
|
const axios_1 = __importDefault(require("axios"));
|
|
12
|
+
const logger_1 = require("./logger");
|
|
12
13
|
const plans_1 = require("../globals/plans");
|
|
13
14
|
const types_1 = require("../globals/types");
|
|
14
15
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
@@ -58,6 +59,30 @@ const getCreditsFromCost = (cost, applyFloor = true) => {
|
|
|
58
59
|
return applyFloor ? Math.max(credits, minCredits) : credits;
|
|
59
60
|
};
|
|
60
61
|
exports.getCreditsFromCost = getCreditsFromCost;
|
|
62
|
+
/**
|
|
63
|
+
* Guard against silent under-billing when a model's `cost` block is missing
|
|
64
|
+
* from `aiModelConfigs`. Every provider's `getCreditUsed()` historically fell
|
|
65
|
+
* back to a hardcoded $1 with only a `logger.warn` — meaning a freshly added
|
|
66
|
+
* model with no cost entry would charge a flat 10 credits regardless of the
|
|
67
|
+
* actual provider price.
|
|
68
|
+
*
|
|
69
|
+
* In dev/test, this throws so the gap surfaces immediately. In prod, it logs
|
|
70
|
+
* a high-severity warning (which the Slack-integrated logger forwards) and
|
|
71
|
+
* returns the supplied fallback so users aren't blocked. Either way the gap
|
|
72
|
+
* gets visibility instead of being silently absorbed.
|
|
73
|
+
*/
|
|
74
|
+
const assertCostFound = (modelKey, cost, fallback) => {
|
|
75
|
+
if (typeof cost === "number" && cost > 0)
|
|
76
|
+
return cost;
|
|
77
|
+
const msg = `[assertCostFound] No cost configured for modelKey="${modelKey}" — falling back to $${fallback}. Add a cost block to aiModelConfigs[${modelKey}] or the user will be silently under/over-billed.`;
|
|
78
|
+
if (process.env.NODE_ENV !== "production") {
|
|
79
|
+
throw new Error(msg);
|
|
80
|
+
}
|
|
81
|
+
// Use the same logger every provider already imports so this lands in Slack.
|
|
82
|
+
logger_1.logger.error(msg, { modelKey, fallback, severity: "billing-gap" });
|
|
83
|
+
return fallback;
|
|
84
|
+
};
|
|
85
|
+
exports.assertCostFound = assertCostFound;
|
|
61
86
|
/**
|
|
62
87
|
* Discount factors applied to the total clip cost for multi-clip video types.
|
|
63
88
|
* Implements economies-of-scale pricing: higher volume → lower per-clip margin.
|
|
@@ -96,14 +121,25 @@ const getTranslationWrapper = async (text, from, to = types_1.ELANGUAGE_CODE.en,
|
|
|
96
121
|
catch (err) {
|
|
97
122
|
lastErr = err;
|
|
98
123
|
const isLast = attempt === MAX_ATTEMPTS;
|
|
99
|
-
|
|
100
|
-
|
|
124
|
+
if (isLast) {
|
|
125
|
+
logger_1.logger.error("translation retry exhausted", {
|
|
126
|
+
sourceLang: from,
|
|
127
|
+
targetLang: to,
|
|
128
|
+
attempts: attempt,
|
|
129
|
+
err: lastErr?.stack ?? lastErr?.message ?? String(lastErr),
|
|
130
|
+
});
|
|
101
131
|
break;
|
|
132
|
+
}
|
|
133
|
+
logger_1.logger.warn("getTranslationWrapper attempt failed, retrying", {
|
|
134
|
+
attempt,
|
|
135
|
+
maxAttempts: MAX_ATTEMPTS,
|
|
136
|
+
err: err?.stack ?? err?.message ?? String(err),
|
|
137
|
+
});
|
|
102
138
|
await new Promise((r) => setTimeout(r, 200 * attempt));
|
|
103
139
|
}
|
|
104
140
|
}
|
|
105
141
|
const e = new Error(exports.TRANSLATION_FAILED);
|
|
106
|
-
e.cause = lastErr
|
|
142
|
+
e.cause = lastErr;
|
|
107
143
|
throw e;
|
|
108
144
|
};
|
|
109
145
|
exports.getTranslationWrapper = getTranslationWrapper;
|
|
@@ -117,7 +153,9 @@ const detectLang = async (text) => {
|
|
|
117
153
|
}
|
|
118
154
|
catch (err) {
|
|
119
155
|
// External service failure — default to English so video generation is not blocked
|
|
120
|
-
|
|
156
|
+
logger_1.logger.warn("detectLang: failed, defaulting to en", {
|
|
157
|
+
err: err?.stack ?? err?.message ?? String(err),
|
|
158
|
+
});
|
|
121
159
|
return {
|
|
122
160
|
reliable: false,
|
|
123
161
|
textBytes: 0,
|
|
@@ -159,12 +197,11 @@ async function generateAndValidate({ userPrompt, systemPrompt, jsonSchema, zodSc
|
|
|
159
197
|
return parsed;
|
|
160
198
|
}
|
|
161
199
|
catch (err) {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
throw new Error(`generateAndValidate: failed to parse or validate model output — ${err?.message}; raw="${snippet}"`);
|
|
200
|
+
logger_1.logger.error("generateAndValidate: validation failed, returning null", {
|
|
201
|
+
modelKey,
|
|
202
|
+
err: err instanceof Error ? err.stack ?? err.message : String(err),
|
|
203
|
+
});
|
|
204
|
+
return null;
|
|
168
205
|
}
|
|
169
206
|
}
|
|
170
207
|
function getVideoDurationRangeText(durationType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AA0B1C;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AA0B1C;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA2JxD;AAED,eAAO,MAAM,MAAM,gBAAyB,CAAC"}
|
package/lib/utils/logger.js
CHANGED
|
@@ -40,13 +40,49 @@ function createLogger(serviceName) {
|
|
|
40
40
|
})
|
|
41
41
|
: null;
|
|
42
42
|
/**
|
|
43
|
-
* Slack transport (ERROR ONLY)
|
|
43
|
+
* Slack transport (ERROR ONLY) — with in-memory dedup to prevent floods.
|
|
44
|
+
*
|
|
45
|
+
* When a provider goes down (Veo / Runway / Kling / Firestore throttle),
|
|
46
|
+
* scene-monitor / job-finalization can fire hundreds of identical
|
|
47
|
+
* `logger.error` calls per minute. Without dedup that = hundreds of
|
|
48
|
+
* Slack messages = noise that buries the real signal.
|
|
49
|
+
*
|
|
50
|
+
* Dedup key = `serviceName:level:firstNCharsOfMessage:firstNCharsOfStack`.
|
|
51
|
+
* First hit goes through, repeats within `dedupWindowMs` are dropped from
|
|
52
|
+
* the Slack stream (Console + Loki still receive them — only Slack is muted).
|
|
44
53
|
*/
|
|
54
|
+
const dedupWindowMs = 5 * 60 * 1000; // 5 minutes
|
|
55
|
+
const dedupCacheMax = 500;
|
|
56
|
+
const dedupCache = new Map();
|
|
57
|
+
const shouldEmitToSlack = (info) => {
|
|
58
|
+
const msg = String(info.message ?? "").slice(0, 80);
|
|
59
|
+
const stk = String(info.stack ?? "").slice(0, 80);
|
|
60
|
+
const key = `${serviceName}:${info.level}:${msg}:${stk}`;
|
|
61
|
+
const now = Date.now();
|
|
62
|
+
const last = dedupCache.get(key);
|
|
63
|
+
if (last !== undefined && now - last < dedupWindowMs) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
// FIFO eviction when over cap to bound memory growth.
|
|
67
|
+
if (dedupCache.size >= dedupCacheMax) {
|
|
68
|
+
const oldest = dedupCache.keys().next().value;
|
|
69
|
+
if (oldest !== undefined)
|
|
70
|
+
dedupCache.delete(oldest);
|
|
71
|
+
}
|
|
72
|
+
dedupCache.set(key, now);
|
|
73
|
+
return true;
|
|
74
|
+
};
|
|
45
75
|
const slackTransport = isProduction && process.env.SLACK_WEBHOOK_URL
|
|
46
76
|
? new winston_slack_webhook_transport_1.default({
|
|
47
77
|
webhookUrl: process.env.SLACK_WEBHOOK_URL,
|
|
48
78
|
level: "error",
|
|
49
79
|
formatter: (info) => {
|
|
80
|
+
// Suppress Slack message (return null payload) when this is a
|
|
81
|
+
// duplicate inside the dedup window. winston-slack-webhook-transport
|
|
82
|
+
// skips the POST when formatter returns falsy.
|
|
83
|
+
if (!shouldEmitToSlack(info)) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
50
86
|
try {
|
|
51
87
|
const { level, message, stack, timestamp, splat, ...meta } = info;
|
|
52
88
|
// Serialize metadata — convert Error objects to plain objects, handle circular refs
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vidspotai-shared",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.69-dev.0",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"types": "lib/index.d.ts",
|
|
6
6
|
"exports": {
|
|
@@ -14,14 +14,18 @@
|
|
|
14
14
|
"lib"
|
|
15
15
|
],
|
|
16
16
|
"dependencies": {
|
|
17
|
+
"@anthropic-ai/sdk": "^0.98.0",
|
|
17
18
|
"@google-cloud/storage": "*",
|
|
18
19
|
"@google/genai": "^1.22.0",
|
|
19
20
|
"@googleapis/sheets": "^13.0.1",
|
|
20
21
|
"@runwayml/sdk": "^2.11.0",
|
|
22
|
+
"audio-decode": "^3.10.1",
|
|
21
23
|
"axios": "^1.12.2",
|
|
22
24
|
"bullmq": "^5.61.0",
|
|
25
|
+
"essentia.js": "^0.1.3",
|
|
23
26
|
"firebase-admin": "^13.5.0",
|
|
24
27
|
"fs-extra": "^11.3.2",
|
|
28
|
+
"google-auth-library": "^9.15.1",
|
|
25
29
|
"ioredis": "^5.8.0",
|
|
26
30
|
"jsonwebtoken": "^9.0.2",
|
|
27
31
|
"logform": "^2.7.0",
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { BaseAiGenProviderService } from "../baseAiGenProvider.service";
|
|
2
|
-
import { CreditUsageParams, VideoGenerationParams, VideoGenerationResult, VideoStatusParams, VideoStatusResult } from "../types";
|
|
3
|
-
export declare class AzureService extends BaseAiGenProviderService {
|
|
4
|
-
private readonly baseUrl;
|
|
5
|
-
private readonly apiKey;
|
|
6
|
-
private readonly apiVersion;
|
|
7
|
-
private readonly timeout;
|
|
8
|
-
constructor();
|
|
9
|
-
private request;
|
|
10
|
-
generateVideo(params: VideoGenerationParams): Promise<VideoGenerationResult>;
|
|
11
|
-
checkVideoStatus({ task, outputFilename, outputFilePath, }: VideoStatusParams): Promise<VideoStatusResult>;
|
|
12
|
-
getCreditUsed({ modelKey, dimensions, duration, multiClip, }: CreditUsageParams): number;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=azure.service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"azure.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/azure/azure.service.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAElB,qBAAa,YAAa,SAAQ,wBAAwB;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;;YAiBnB,OAAO;IAwBf,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IA6B3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAgDjD,aAAa,CAAC,EACZ,QAAQ,EACR,UAAsB,EACtB,QAAY,EACZ,SAAiB,GAClB,EAAE,iBAAiB,GAAG,MAAM;CAS9B"}
|
|
@@ -1,108 +0,0 @@
|
|
|
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.AzureService = void 0;
|
|
7
|
-
const axios_1 = __importDefault(require("axios"));
|
|
8
|
-
const aiModels_1 = require("../../../../globals/aiModels");
|
|
9
|
-
const types_1 = require("../../../../globals/types");
|
|
10
|
-
const firebase_1 = require("../../../../libs/firebase");
|
|
11
|
-
const helpers_1 = require("../../../../utils/helpers");
|
|
12
|
-
const logger_1 = require("../../../../utils/logger");
|
|
13
|
-
const helpers_2 = require("../../helpers");
|
|
14
|
-
const baseAiGenProvider_service_1 = require("../baseAiGenProvider.service");
|
|
15
|
-
class AzureService extends baseAiGenProvider_service_1.BaseAiGenProviderService {
|
|
16
|
-
constructor() {
|
|
17
|
-
super();
|
|
18
|
-
this.apiVersion = "preview";
|
|
19
|
-
this.timeout = 60000; // 60 seconds
|
|
20
|
-
if (!process.env.AZURE_OPENAI_ENDPOINT ||
|
|
21
|
-
!process.env.AZURE_OPENAI_API_KEY) {
|
|
22
|
-
throw new Error("Missing AZURE_OPENAI_ENDPOINT or AZURE_OPENAI_API_KEY in environment variables");
|
|
23
|
-
}
|
|
24
|
-
this.baseUrl = process.env.AZURE_OPENAI_ENDPOINT;
|
|
25
|
-
this.apiKey = process.env.AZURE_OPENAI_API_KEY;
|
|
26
|
-
}
|
|
27
|
-
async request(endpoint, method, body) {
|
|
28
|
-
const url = `${this.baseUrl}${endpoint}${endpoint.includes("?") ? "&" : "?"}api-version=${this.apiVersion}`;
|
|
29
|
-
const config = {
|
|
30
|
-
method,
|
|
31
|
-
url,
|
|
32
|
-
headers: {
|
|
33
|
-
"api-key": this.apiKey,
|
|
34
|
-
"Content-Type": "application/json",
|
|
35
|
-
},
|
|
36
|
-
timeout: this.timeout,
|
|
37
|
-
data: body,
|
|
38
|
-
};
|
|
39
|
-
const res = await axios_1.default.request(config);
|
|
40
|
-
return res.data;
|
|
41
|
-
}
|
|
42
|
-
async generateVideo(params) {
|
|
43
|
-
(0, helpers_2.validateParams)(params);
|
|
44
|
-
const modelId = aiModels_1.aiModelConfigs[params.modelKey]?.modelId || "sora";
|
|
45
|
-
const body = {
|
|
46
|
-
prompt: params.prompt,
|
|
47
|
-
width: params.dimensions?.split("x")[0]
|
|
48
|
-
? parseInt(params.dimensions.split("x")[0] ?? "480", 10)
|
|
49
|
-
: 480,
|
|
50
|
-
height: params.dimensions?.split("x")[1]
|
|
51
|
-
? parseInt(params.dimensions.split("x")[1] ?? "480", 10)
|
|
52
|
-
: 480,
|
|
53
|
-
n_seconds: params.duration || 5,
|
|
54
|
-
model: modelId,
|
|
55
|
-
};
|
|
56
|
-
const job = await this.request(`/openai/v1/video/generations/jobs?`, "POST", body);
|
|
57
|
-
return {
|
|
58
|
-
task: job.id,
|
|
59
|
-
status: types_1.EVideoSceneStatus.TRIGGERED,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
async checkVideoStatus({ task, outputFilename, outputFilePath = "videos", }) {
|
|
63
|
-
const result = await this.request(`/openai/v1/video/generations/jobs/${task}?`, "GET");
|
|
64
|
-
if (result.status === "succeeded") {
|
|
65
|
-
if (!result.generations || !(result.generations.length > 0)) {
|
|
66
|
-
return {
|
|
67
|
-
status: types_1.EVideoSceneStatus.FAILED,
|
|
68
|
-
errorMessage: "No video returned from API",
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
const generationId = result.generations[0].id;
|
|
72
|
-
const videoUrl = `${this.baseUrl}/openai/v1/video/generations/${generationId}/content/video?api-version=${this.apiVersion}`;
|
|
73
|
-
const videoResp = await axios_1.default.get(videoUrl, {
|
|
74
|
-
headers: { "api-key": this.apiKey },
|
|
75
|
-
responseType: "arraybuffer",
|
|
76
|
-
timeout: this.timeout,
|
|
77
|
-
});
|
|
78
|
-
if (!videoResp.data)
|
|
79
|
-
throw new Error("No video data received from Azure API");
|
|
80
|
-
const filePath = `${outputFilePath}/${outputFilename}.mp4`;
|
|
81
|
-
const file = (0, firebase_1.getBucket)().file(filePath);
|
|
82
|
-
const buffer = Buffer.from(videoResp.data);
|
|
83
|
-
await file.save(buffer, { contentType: "video/mp4" });
|
|
84
|
-
const [signedUrl] = await file.getSignedUrl({
|
|
85
|
-
action: "read",
|
|
86
|
-
expires: "03-09-2491",
|
|
87
|
-
});
|
|
88
|
-
return { videoUrl: signedUrl, status: types_1.EVideoSceneStatus.COMPLETED };
|
|
89
|
-
}
|
|
90
|
-
else if (result.status === "failed") {
|
|
91
|
-
return {
|
|
92
|
-
status: types_1.EVideoSceneStatus.FAILED,
|
|
93
|
-
errorMessage: `Task failed: ${result.failure_reason || "unknown"}`,
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
return { status: types_1.EVideoSceneStatus.PENDING };
|
|
97
|
-
}
|
|
98
|
-
getCreditUsed({ modelKey, dimensions = "480x480", duration = 5, multiClip = false, }) {
|
|
99
|
-
const modelConfig = aiModels_1.aiModelConfigs[modelKey];
|
|
100
|
-
const cost = modelConfig.cost?.table?.[dimensions]?.[duration];
|
|
101
|
-
if (cost === undefined || cost === null) {
|
|
102
|
-
logger_1.logger.warn(`Azure getCreditUsed: no cost entry for modelKey="${modelKey}" dimensions="${dimensions}" duration=${duration} — returning fallback`, { modelKey, dimensions, duration });
|
|
103
|
-
return (0, helpers_1.getCreditsFromCost)(1.0, !multiClip);
|
|
104
|
-
}
|
|
105
|
-
return (0, helpers_1.getCreditsFromCost)(cost, !multiClip);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
exports.AzureService = AzureService;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/azure/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|