vidspotai-shared 1.0.70 → 1.0.71-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 +10 -3
- package/lib/globals/aiModels/index.d.ts.map +1 -1
- package/lib/globals/aiModels/index.js +14 -3
- 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 +363 -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 +7 -0
- package/lib/models/index.d.ts.map +1 -1
- package/lib/models/index.js +7 -0
- package/lib/models/mediaUpload.model.d.ts +19 -0
- package/lib/models/mediaUpload.model.d.ts.map +1 -0
- package/lib/models/mediaUpload.model.js +2 -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 +10 -1
- 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/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 +19 -0
- package/lib/services/firestore.service.d.ts.map +1 -1
- package/lib/services/firestore.service.js +33 -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 +49 -6
- 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;AA0DrB,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,
|
|
@@ -162,8 +200,13 @@ async function generateAndValidate({ userPrompt, systemPrompt, jsonSchema, zodSc
|
|
|
162
200
|
// Returning null here previously caused downstream "Cannot read properties
|
|
163
201
|
// of null" crashes in callers that immediately accessed fields on the
|
|
164
202
|
// result. Surface the real failure so the caller can present a friendly
|
|
165
|
-
// error (and so Slack shows the LLM payload that broke).
|
|
203
|
+
// error (and so Slack shows the LLM payload that broke). Log via logger
|
|
204
|
+
// first for consistent observability.
|
|
166
205
|
const snippet = raw.length > 500 ? `${raw.slice(0, 500)}…` : raw;
|
|
206
|
+
logger_1.logger.error("generateAndValidate: validation failed", {
|
|
207
|
+
modelKey,
|
|
208
|
+
err: err instanceof Error ? err.stack ?? err.message : String(err),
|
|
209
|
+
});
|
|
167
210
|
throw new Error(`generateAndValidate: failed to parse or validate model output — ${err?.message}; raw="${snippet}"`);
|
|
168
211
|
}
|
|
169
212
|
}
|
|
@@ -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.71-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"}
|