vidspotai-shared 1.0.68 → 1.0.69-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/globals/aiModels/enums.d.ts +63 -6
- package/lib/globals/aiModels/enums.d.ts.map +1 -1
- package/lib/globals/aiModels/enums.js +78 -9
- package/lib/globals/aiModels/index.d.ts +2 -30
- package/lib/globals/aiModels/index.d.ts.map +1 -1
- package/lib/globals/aiModels/index.js +7 -35
- package/lib/globals/aiModels/providers/alibaba.d.ts +4 -0
- package/lib/globals/aiModels/providers/alibaba.d.ts.map +1 -0
- package/lib/globals/aiModels/providers/alibaba.js +194 -0
- package/lib/globals/aiModels/providers/bytedance.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/bytedance.js +19 -0
- package/lib/globals/aiModels/providers/elevenlabs.d.ts +14 -0
- package/lib/globals/aiModels/providers/elevenlabs.d.ts.map +1 -0
- package/lib/globals/aiModels/providers/elevenlabs.js +29 -0
- package/lib/globals/aiModels/providers/google.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/google.js +150 -2
- package/lib/globals/aiModels/providers/kling.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/kling.js +280 -37
- package/lib/globals/aiModels/providers/minimax.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/minimax.js +76 -11
- package/lib/globals/aiModels/providers/openai.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/openai.js +90 -6
- package/lib/globals/aiModels/providers/pixverse.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/pixverse.js +111 -29
- package/lib/globals/aiModels/providers/pixverseTemplates.d.ts +36 -0
- package/lib/globals/aiModels/providers/pixverseTemplates.d.ts.map +1 -0
- package/lib/globals/aiModels/providers/pixverseTemplates.js +42 -0
- package/lib/globals/aiModels/providers/runway.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/runway.js +64 -2
- package/lib/globals/aiModels/tierHelpers.d.ts +33 -0
- package/lib/globals/aiModels/tierHelpers.d.ts.map +1 -0
- package/lib/globals/aiModels/tierHelpers.js +109 -0
- package/lib/globals/aiModels/types.d.ts +20 -1
- package/lib/globals/aiModels/types.d.ts.map +1 -1
- package/lib/globals/ttsModels/index.d.ts +2 -0
- package/lib/globals/ttsModels/index.d.ts.map +1 -1
- package/lib/globals/ttsModels/index.js +9 -1
- package/lib/globals/ttsModels/providers/minimax.d.ts +8 -0
- package/lib/globals/ttsModels/providers/minimax.d.ts.map +1 -0
- package/lib/globals/ttsModels/providers/minimax.js +18 -0
- package/lib/globals/ttsModels/providers/openai.d.ts +12 -0
- package/lib/globals/ttsModels/providers/openai.d.ts.map +1 -0
- package/lib/globals/ttsModels/providers/openai.js +22 -0
- package/lib/globals/ttsModels/types.d.ts +1 -1
- package/lib/globals/ttsModels/types.d.ts.map +1 -1
- package/lib/globals/ttsModels/voices.d.ts +39 -4
- package/lib/globals/ttsModels/voices.d.ts.map +1 -1
- package/lib/globals/ttsModels/voices.js +273 -26
- package/lib/globals/types.d.ts +59 -1
- package/lib/globals/types.d.ts.map +1 -1
- package/lib/globals/types.js +81 -2
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/models/agent.model.d.ts +357 -0
- package/lib/models/agent.model.d.ts.map +1 -0
- package/lib/models/agent.model.js +21 -0
- package/lib/models/cachedAsset.model.d.ts +18 -0
- package/lib/models/cachedAsset.model.d.ts.map +1 -0
- package/lib/models/cachedAsset.model.js +2 -0
- package/lib/models/cachedRawAsset.model.d.ts +20 -0
- package/lib/models/cachedRawAsset.model.d.ts.map +1 -0
- package/lib/models/cachedRawAsset.model.js +2 -0
- package/lib/models/image.model.d.ts +47 -0
- package/lib/models/image.model.d.ts.map +1 -0
- package/lib/models/image.model.js +2 -0
- package/lib/models/index.d.ts +6 -0
- package/lib/models/index.d.ts.map +1 -1
- package/lib/models/index.js +6 -0
- package/lib/models/notification.model.d.ts +25 -0
- package/lib/models/notification.model.d.ts.map +1 -0
- package/lib/models/notification.model.js +2 -0
- package/lib/models/ref.model.d.ts +80 -0
- package/lib/models/ref.model.d.ts.map +1 -0
- package/lib/models/ref.model.js +13 -0
- package/lib/models/share.model.d.ts +29 -0
- package/lib/models/share.model.d.ts.map +1 -0
- package/lib/models/share.model.js +2 -0
- package/lib/models/user.model.d.ts +12 -1
- package/lib/models/user.model.d.ts.map +1 -1
- package/lib/models/video.model.d.ts +120 -8
- package/lib/models/video.model.d.ts.map +1 -1
- package/lib/models/video.model.js +10 -0
- package/lib/schemas/agentPersona.schema.d.ts +10 -0
- package/lib/schemas/agentPersona.schema.d.ts.map +1 -0
- package/lib/schemas/agentPersona.schema.js +11 -0
- package/lib/schemas/agentRunJob.schema.d.ts +105 -0
- package/lib/schemas/agentRunJob.schema.d.ts.map +1 -0
- package/lib/schemas/agentRunJob.schema.js +88 -0
- package/lib/schemas/brandKit.schema.d.ts +113 -0
- package/lib/schemas/brandKit.schema.d.ts.map +1 -0
- package/lib/schemas/brandKit.schema.js +46 -0
- package/lib/schemas/brief.schema.d.ts +263 -0
- package/lib/schemas/brief.schema.d.ts.map +1 -0
- package/lib/schemas/brief.schema.js +157 -0
- package/lib/schemas/index.d.ts +7 -0
- package/lib/schemas/index.d.ts.map +1 -0
- package/lib/schemas/index.js +22 -0
- package/lib/schemas/project.schema.d.ts +1025 -0
- package/lib/schemas/project.schema.d.ts.map +1 -0
- package/lib/schemas/project.schema.js +256 -0
- package/lib/schemas/videoPlan.schema.d.ts +590 -0
- package/lib/schemas/videoPlan.schema.d.ts.map +1 -0
- package/lib/schemas/videoPlan.schema.js +412 -0
- package/lib/services/agent/beatSnap.d.ts +10 -0
- package/lib/services/agent/beatSnap.d.ts.map +1 -0
- package/lib/services/agent/beatSnap.js +128 -0
- package/lib/services/agent/bibleBuilder.d.ts +43 -0
- package/lib/services/agent/bibleBuilder.d.ts.map +1 -0
- package/lib/services/agent/bibleBuilder.js +102 -0
- package/lib/services/agent/bibleImageVision.d.ts +45 -0
- package/lib/services/agent/bibleImageVision.d.ts.map +1 -0
- package/lib/services/agent/bibleImageVision.js +169 -0
- package/lib/services/agent/chatAgent.d.ts +79 -0
- package/lib/services/agent/chatAgent.d.ts.map +1 -0
- package/lib/services/agent/chatAgent.js +136 -0
- package/lib/services/agent/costPreflight.d.ts +61 -0
- package/lib/services/agent/costPreflight.d.ts.map +1 -0
- package/lib/services/agent/costPreflight.js +143 -0
- package/lib/services/agent/critic.d.ts +103 -0
- package/lib/services/agent/critic.d.ts.map +1 -0
- package/lib/services/agent/critic.js +139 -0
- package/lib/services/agent/editClassifier.d.ts +262 -0
- package/lib/services/agent/editClassifier.d.ts.map +1 -0
- package/lib/services/agent/editClassifier.js +186 -0
- package/lib/services/agent/eval/index.d.ts +5 -0
- package/lib/services/agent/eval/index.d.ts.map +1 -0
- package/lib/services/agent/eval/index.js +20 -0
- package/lib/services/agent/eval/judge.d.ts +14 -0
- package/lib/services/agent/eval/judge.d.ts.map +1 -0
- package/lib/services/agent/eval/judge.js +96 -0
- package/lib/services/agent/eval/recorder.d.ts +28 -0
- package/lib/services/agent/eval/recorder.d.ts.map +1 -0
- package/lib/services/agent/eval/recorder.js +100 -0
- package/lib/services/agent/eval/seedBriefs.d.ts +16 -0
- package/lib/services/agent/eval/seedBriefs.d.ts.map +1 -0
- package/lib/services/agent/eval/seedBriefs.js +1188 -0
- package/lib/services/agent/eval/types.d.ts +230 -0
- package/lib/services/agent/eval/types.d.ts.map +1 -0
- package/lib/services/agent/eval/types.js +73 -0
- package/lib/services/agent/executor.d.ts +141 -0
- package/lib/services/agent/executor.d.ts.map +1 -0
- package/lib/services/agent/executor.js +561 -0
- package/lib/services/agent/globalActions.d.ts +49 -0
- package/lib/services/agent/globalActions.d.ts.map +1 -0
- package/lib/services/agent/globalActions.js +328 -0
- package/lib/services/agent/index.d.ts +38 -0
- package/lib/services/agent/index.d.ts.map +1 -0
- package/lib/services/agent/index.js +53 -0
- package/lib/services/agent/llmCaller.d.ts +144 -0
- package/lib/services/agent/llmCaller.d.ts.map +1 -0
- package/lib/services/agent/llmCaller.js +16 -0
- package/lib/services/agent/llmCallerAnthropic.d.ts +90 -0
- package/lib/services/agent/llmCallerAnthropic.d.ts.map +1 -0
- package/lib/services/agent/llmCallerAnthropic.js +255 -0
- package/lib/services/agent/llmCallerGateway.d.ts +61 -0
- package/lib/services/agent/llmCallerGateway.d.ts.map +1 -0
- package/lib/services/agent/llmCallerGateway.js +360 -0
- package/lib/services/agent/llmCallerRegistry.d.ts +6 -0
- package/lib/services/agent/llmCallerRegistry.d.ts.map +1 -0
- package/lib/services/agent/llmCallerRegistry.js +39 -0
- package/lib/services/agent/modelQualityNotes.d.ts +100 -0
- package/lib/services/agent/modelQualityNotes.d.ts.map +1 -0
- package/lib/services/agent/modelQualityNotes.js +248 -0
- package/lib/services/agent/modelRouter.d.ts +41 -0
- package/lib/services/agent/modelRouter.d.ts.map +1 -0
- package/lib/services/agent/modelRouter.js +65 -0
- package/lib/services/agent/musicSelect.d.ts +23 -0
- package/lib/services/agent/musicSelect.d.ts.map +1 -0
- package/lib/services/agent/musicSelect.js +109 -0
- package/lib/services/agent/overlayRenderer.d.ts +67 -0
- package/lib/services/agent/overlayRenderer.d.ts.map +1 -0
- package/lib/services/agent/overlayRenderer.js +253 -0
- package/lib/services/agent/perSceneCritic.d.ts +90 -0
- package/lib/services/agent/perSceneCritic.d.ts.map +1 -0
- package/lib/services/agent/perSceneCritic.js +125 -0
- package/lib/services/agent/personas.d.ts +78 -0
- package/lib/services/agent/personas.d.ts.map +1 -0
- package/lib/services/agent/personas.js +177 -0
- package/lib/services/agent/planDiff.d.ts +76 -0
- package/lib/services/agent/planDiff.d.ts.map +1 -0
- package/lib/services/agent/planDiff.js +182 -0
- package/lib/services/agent/planMutations.d.ts +46 -0
- package/lib/services/agent/planMutations.d.ts.map +1 -0
- package/lib/services/agent/planMutations.js +120 -0
- package/lib/services/agent/planner/Planner.d.ts +107 -0
- package/lib/services/agent/planner/Planner.d.ts.map +1 -0
- package/lib/services/agent/planner/Planner.js +591 -0
- package/lib/services/agent/planner/overlaySanity.d.ts +7 -0
- package/lib/services/agent/planner/overlaySanity.d.ts.map +1 -0
- package/lib/services/agent/planner/overlaySanity.js +86 -0
- package/lib/services/agent/planner/promptSections.d.ts +25 -0
- package/lib/services/agent/planner/promptSections.d.ts.map +1 -0
- package/lib/services/agent/planner/promptSections.js +174 -0
- package/lib/services/agent/planner/repair.d.ts +16 -0
- package/lib/services/agent/planner/repair.d.ts.map +1 -0
- package/lib/services/agent/planner/repair.js +51 -0
- package/lib/services/agent/planner/structuralRules.d.ts +10 -0
- package/lib/services/agent/planner/structuralRules.d.ts.map +1 -0
- package/lib/services/agent/planner/structuralRules.js +111 -0
- package/lib/services/agent/planner/validators.d.ts +65 -0
- package/lib/services/agent/planner/validators.d.ts.map +1 -0
- package/lib/services/agent/planner/validators.js +284 -0
- package/lib/services/agent/planner.d.ts +3 -0
- package/lib/services/agent/planner.d.ts.map +1 -0
- package/lib/services/agent/planner.js +14 -0
- package/lib/services/agent/providerFallback/chains.d.ts +100 -0
- package/lib/services/agent/providerFallback/chains.d.ts.map +1 -0
- package/lib/services/agent/providerFallback/chains.js +198 -0
- package/lib/services/agent/providerFallback/classifier.d.ts +36 -0
- package/lib/services/agent/providerFallback/classifier.d.ts.map +1 -0
- package/lib/services/agent/providerFallback/classifier.js +103 -0
- package/lib/services/agent/providerFallback/index.d.ts +4 -0
- package/lib/services/agent/providerFallback/index.d.ts.map +1 -0
- package/lib/services/agent/providerFallback/index.js +19 -0
- package/lib/services/agent/providerFallback/withFallback.d.ts +60 -0
- package/lib/services/agent/providerFallback/withFallback.d.ts.map +1 -0
- package/lib/services/agent/providerFallback/withFallback.js +93 -0
- package/lib/services/agent/providerTaskCache.d.ts +50 -0
- package/lib/services/agent/providerTaskCache.d.ts.map +1 -0
- package/lib/services/agent/providerTaskCache.js +98 -0
- package/lib/services/agent/qualityGate.d.ts +82 -0
- package/lib/services/agent/qualityGate.d.ts.map +1 -0
- package/lib/services/agent/qualityGate.js +232 -0
- package/lib/services/agent/referenceImageRenderer.d.ts +37 -0
- package/lib/services/agent/referenceImageRenderer.d.ts.map +1 -0
- package/lib/services/agent/referenceImageRenderer.js +92 -0
- package/lib/services/agent/regenCore.d.ts +60 -0
- package/lib/services/agent/regenCore.d.ts.map +1 -0
- package/lib/services/agent/regenCore.js +487 -0
- package/lib/services/agent/runHelpers.d.ts +44 -0
- package/lib/services/agent/runHelpers.d.ts.map +1 -0
- package/lib/services/agent/runHelpers.js +196 -0
- package/lib/services/agent/sceneLayoutVision.d.ts +90 -0
- package/lib/services/agent/sceneLayoutVision.d.ts.map +1 -0
- package/lib/services/agent/sceneLayoutVision.js +212 -0
- package/lib/services/agent/stitchedVideoCritic.d.ts +136 -0
- package/lib/services/agent/stitchedVideoCritic.d.ts.map +1 -0
- package/lib/services/agent/stitchedVideoCritic.gemini.d.ts +26 -0
- package/lib/services/agent/stitchedVideoCritic.gemini.d.ts.map +1 -0
- package/lib/services/agent/stitchedVideoCritic.gemini.js +198 -0
- package/lib/services/agent/stitchedVideoCritic.js +162 -0
- package/lib/services/agent/taskPoller.d.ts +65 -0
- package/lib/services/agent/taskPoller.d.ts.map +1 -0
- package/lib/services/agent/taskPoller.js +176 -0
- package/lib/services/agent/textOverlayStyles.d.ts +60 -0
- package/lib/services/agent/textOverlayStyles.d.ts.map +1 -0
- package/lib/services/agent/textOverlayStyles.js +174 -0
- package/lib/services/agent/toolRegistry.d.ts +73 -0
- package/lib/services/agent/toolRegistry.d.ts.map +1 -0
- package/lib/services/agent/toolRegistry.js +95 -0
- package/lib/services/agent/tools/analyzeReference.tool.d.ts +36 -0
- package/lib/services/agent/tools/analyzeReference.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/analyzeReference.tool.js +44 -0
- package/lib/services/agent/tools/animateImage.tool.d.ts +24 -0
- package/lib/services/agent/tools/animateImage.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/animateImage.tool.js +115 -0
- package/lib/services/agent/tools/animateImageWithMotionBrush.tool.d.ts +32 -0
- package/lib/services/agent/tools/animateImageWithMotionBrush.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/animateImageWithMotionBrush.tool.js +135 -0
- package/lib/services/agent/tools/composeScene.tool.d.ts +978 -0
- package/lib/services/agent/tools/composeScene.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/composeScene.tool.js +90 -0
- package/lib/services/agent/tools/estimateCost.tool.d.ts +352 -0
- package/lib/services/agent/tools/estimateCost.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/estimateCost.tool.js +62 -0
- package/lib/services/agent/tools/generateAvatarVideo.tool.d.ts +32 -0
- package/lib/services/agent/tools/generateAvatarVideo.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/generateAvatarVideo.tool.js +143 -0
- package/lib/services/agent/tools/generateCaptions.tool.d.ts +42 -0
- package/lib/services/agent/tools/generateCaptions.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/generateCaptions.tool.js +196 -0
- package/lib/services/agent/tools/generateImage.tool.d.ts +74 -0
- package/lib/services/agent/tools/generateImage.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/generateImage.tool.js +206 -0
- package/lib/services/agent/tools/generateVideo.tool.d.ts +31 -0
- package/lib/services/agent/tools/generateVideo.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/generateVideo.tool.js +153 -0
- package/lib/services/agent/tools/generateVoiceover.tool.d.ts +44 -0
- package/lib/services/agent/tools/generateVoiceover.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/generateVoiceover.tool.js +206 -0
- package/lib/services/agent/tools/index.d.ts +20 -0
- package/lib/services/agent/tools/index.d.ts.map +1 -0
- package/lib/services/agent/tools/index.js +35 -0
- package/lib/services/agent/tools/planVideo.tool.d.ts +343 -0
- package/lib/services/agent/tools/planVideo.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/planVideo.tool.js +46 -0
- package/lib/services/agent/tools/render.tool.d.ts +367 -0
- package/lib/services/agent/tools/render.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/render.tool.js +48 -0
- package/lib/services/agent/tools/searchMusic.tool.d.ts +49 -0
- package/lib/services/agent/tools/searchMusic.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/searchMusic.tool.js +74 -0
- package/lib/services/agent/tools/searchStock.tool.d.ts +41 -0
- package/lib/services/agent/tools/searchStock.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/searchStock.tool.js +314 -0
- package/lib/services/agent/tools/searchUserLibrary.tool.d.ts +59 -0
- package/lib/services/agent/tools/searchUserLibrary.tool.d.ts.map +1 -0
- package/lib/services/agent/tools/searchUserLibrary.tool.js +58 -0
- package/lib/services/agent/ttsDuration.d.ts +29 -0
- package/lib/services/agent/ttsDuration.d.ts.map +1 -0
- package/lib/services/agent/ttsDuration.js +60 -0
- package/lib/services/aiGen/aiGenFactory.service.d.ts +21 -1
- package/lib/services/aiGen/aiGenFactory.service.d.ts.map +1 -1
- package/lib/services/aiGen/aiGenFactory.service.js +84 -21
- package/lib/services/aiGen/canonicalAdapters/cameraControl.types.d.ts +31 -0
- package/lib/services/aiGen/canonicalAdapters/cameraControl.types.d.ts.map +1 -0
- package/lib/services/aiGen/canonicalAdapters/cameraControl.types.js +2 -0
- package/lib/services/aiGen/canonicalAdapters/index.d.ts +3 -0
- package/lib/services/aiGen/canonicalAdapters/index.d.ts.map +1 -0
- package/lib/services/aiGen/canonicalAdapters/index.js +18 -0
- package/lib/services/aiGen/canonicalAdapters/multiShot.types.d.ts +23 -0
- package/lib/services/aiGen/canonicalAdapters/multiShot.types.d.ts.map +1 -0
- package/lib/services/aiGen/canonicalAdapters/multiShot.types.js +12 -0
- package/lib/services/aiGen/helpers.d.ts.map +1 -1
- package/lib/services/aiGen/helpers.js +10 -0
- package/lib/services/aiGen/providers/alibaba/alibaba.d.ts +14 -3
- package/lib/services/aiGen/providers/alibaba/alibaba.d.ts.map +1 -1
- package/lib/services/aiGen/providers/alibaba/alibaba.js +155 -22
- package/lib/services/aiGen/providers/baseAiGenProvider.service.d.ts +22 -4
- package/lib/services/aiGen/providers/baseAiGenProvider.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/baseAiGenProvider.service.js +32 -0
- package/lib/services/aiGen/providers/bytedance/bytedance.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/bytedance/bytedance.service.js +13 -19
- package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.d.ts +18 -0
- package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.d.ts.map +1 -0
- package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.js +102 -0
- package/lib/services/aiGen/providers/fal/falImage.service.d.ts +15 -0
- package/lib/services/aiGen/providers/fal/falImage.service.d.ts.map +1 -0
- package/lib/services/aiGen/providers/fal/falImage.service.js +141 -0
- package/lib/services/aiGen/providers/fal/index.d.ts +2 -0
- package/lib/services/aiGen/providers/fal/index.d.ts.map +1 -0
- package/lib/services/aiGen/providers/fal/index.js +17 -0
- package/lib/services/aiGen/providers/google/google.service.d.ts +11 -2
- package/lib/services/aiGen/providers/google/google.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/google/google.service.js +245 -28
- package/lib/services/aiGen/providers/index.d.ts +3 -0
- package/lib/services/aiGen/providers/index.d.ts.map +1 -1
- package/lib/services/aiGen/providers/index.js +3 -0
- package/lib/services/aiGen/providers/kling/cameraAdapter.d.ts +4 -0
- package/lib/services/aiGen/providers/kling/cameraAdapter.d.ts.map +1 -0
- package/lib/services/aiGen/providers/kling/cameraAdapter.js +53 -0
- package/lib/services/aiGen/providers/kling/index.d.ts +1 -0
- package/lib/services/aiGen/providers/kling/index.d.ts.map +1 -1
- package/lib/services/aiGen/providers/kling/index.js +1 -0
- package/lib/services/aiGen/providers/kling/kling.service.d.ts +12 -1
- package/lib/services/aiGen/providers/kling/kling.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/kling/kling.service.js +357 -26
- package/lib/services/aiGen/providers/kling/klingImage.service.d.ts +21 -0
- package/lib/services/aiGen/providers/kling/klingImage.service.d.ts.map +1 -0
- package/lib/services/aiGen/providers/kling/klingImage.service.js +208 -0
- package/lib/services/aiGen/providers/kling/types.d.ts +105 -0
- package/lib/services/aiGen/providers/kling/types.d.ts.map +1 -1
- package/lib/services/aiGen/providers/minimax/minimax.service.d.ts +15 -2
- package/lib/services/aiGen/providers/minimax/minimax.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/minimax/minimax.service.js +128 -5
- package/lib/services/aiGen/providers/minimax/types.d.ts +10 -1
- package/lib/services/aiGen/providers/minimax/types.d.ts.map +1 -1
- package/lib/services/aiGen/providers/openai/openai.service.d.ts +8 -2
- package/lib/services/aiGen/providers/openai/openai.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/openai/openai.service.js +184 -7
- package/lib/services/aiGen/providers/pexels/index.d.ts +2 -0
- package/lib/services/aiGen/providers/pexels/index.d.ts.map +1 -0
- package/lib/services/aiGen/providers/{azure → pexels}/index.js +1 -1
- package/lib/services/aiGen/providers/pexels/pexels.service.d.ts +11 -0
- package/lib/services/aiGen/providers/pexels/pexels.service.d.ts.map +1 -0
- package/lib/services/aiGen/providers/pexels/pexels.service.js +150 -0
- package/lib/services/aiGen/providers/pixabay/index.d.ts +2 -0
- package/lib/services/aiGen/providers/pixabay/index.d.ts.map +1 -0
- package/lib/services/aiGen/providers/pixabay/index.js +17 -0
- package/lib/services/aiGen/providers/pixabay/pixabay.service.d.ts +12 -0
- package/lib/services/aiGen/providers/pixabay/pixabay.service.d.ts.map +1 -0
- package/lib/services/aiGen/providers/pixabay/pixabay.service.js +156 -0
- package/lib/services/aiGen/providers/pixverse/pixverse.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/pixverse/pixverse.service.js +125 -2
- package/lib/services/aiGen/providers/runway/cameraAdapter.d.ts +3 -0
- package/lib/services/aiGen/providers/runway/cameraAdapter.d.ts.map +1 -0
- package/lib/services/aiGen/providers/runway/cameraAdapter.js +46 -0
- package/lib/services/aiGen/providers/runway/runway.service.d.ts +12 -2
- package/lib/services/aiGen/providers/runway/runway.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/runway/runway.service.js +224 -21
- package/lib/services/aiGen/providers/types.d.ts +263 -6
- package/lib/services/aiGen/providers/types.d.ts.map +1 -1
- package/lib/services/aiGen/providers/unsplash/index.d.ts +2 -0
- package/lib/services/aiGen/providers/unsplash/index.d.ts.map +1 -0
- package/lib/services/aiGen/providers/unsplash/index.js +17 -0
- package/lib/services/aiGen/providers/unsplash/unsplash.service.d.ts +16 -0
- package/lib/services/aiGen/providers/unsplash/unsplash.service.d.ts.map +1 -0
- package/lib/services/aiGen/providers/unsplash/unsplash.service.js +131 -0
- package/lib/services/analytics.service.js +2 -4
- package/lib/services/apiUsageCounter.service.d.ts +20 -0
- package/lib/services/apiUsageCounter.service.d.ts.map +1 -0
- package/lib/services/apiUsageCounter.service.js +84 -0
- package/lib/services/asr/assemblyai.service.d.ts +72 -0
- package/lib/services/asr/assemblyai.service.d.ts.map +1 -0
- package/lib/services/asr/assemblyai.service.js +89 -0
- package/lib/services/asr/index.d.ts +3 -0
- package/lib/services/asr/index.d.ts.map +1 -0
- package/lib/services/asr/index.js +18 -0
- package/lib/services/asr/whisper.service.d.ts +18 -0
- package/lib/services/asr/whisper.service.d.ts.map +1 -0
- package/lib/services/asr/whisper.service.js +151 -0
- package/lib/services/assetCache.service.d.ts +54 -0
- package/lib/services/assetCache.service.d.ts.map +1 -0
- package/lib/services/assetCache.service.js +109 -0
- package/lib/services/audioAnalysis/index.d.ts +2 -0
- package/lib/services/audioAnalysis/index.d.ts.map +1 -0
- package/lib/services/audioAnalysis/index.js +17 -0
- package/lib/services/audioAnalysis/onsetDetection.service.d.ts +50 -0
- package/lib/services/audioAnalysis/onsetDetection.service.d.ts.map +1 -0
- package/lib/services/audioAnalysis/onsetDetection.service.js +140 -0
- package/lib/services/bullmq.service.d.ts +6 -1
- package/lib/services/bullmq.service.d.ts.map +1 -1
- package/lib/services/bullmq.service.js +62 -14
- package/lib/services/credit.service.d.ts.map +1 -1
- package/lib/services/credit.service.js +45 -7
- package/lib/services/credits/pricing.d.ts +58 -0
- package/lib/services/credits/pricing.d.ts.map +1 -0
- package/lib/services/credits/pricing.js +111 -0
- package/lib/services/editor/designToProject.d.ts +75 -0
- package/lib/services/editor/designToProject.d.ts.map +1 -0
- package/lib/services/editor/designToProject.js +295 -0
- package/lib/services/editor/planToProject.d.ts +84 -0
- package/lib/services/editor/planToProject.d.ts.map +1 -0
- package/lib/services/editor/planToProject.js +395 -0
- package/lib/services/editor/projectToDesign.d.ts +4 -0
- package/lib/services/editor/projectToDesign.d.ts.map +1 -0
- package/lib/services/editor/projectToDesign.js +186 -0
- package/lib/services/firestore.service.d.ts +17 -0
- package/lib/services/firestore.service.d.ts.map +1 -1
- package/lib/services/firestore.service.js +30 -0
- package/lib/services/gcp/index.d.ts +1 -0
- package/lib/services/gcp/index.d.ts.map +1 -1
- package/lib/services/gcp/index.js +1 -0
- package/lib/services/gcp/uploadAudioBuffer.d.ts +13 -0
- package/lib/services/gcp/uploadAudioBuffer.d.ts.map +1 -0
- package/lib/services/gcp/uploadAudioBuffer.js +28 -0
- package/lib/services/index.d.ts +13 -0
- package/lib/services/index.d.ts.map +1 -1
- package/lib/services/index.js +13 -0
- package/lib/services/musicGen/index.d.ts +6 -0
- package/lib/services/musicGen/index.d.ts.map +1 -0
- package/lib/services/musicGen/index.js +26 -0
- package/lib/services/musicGen/musicSearchFactory.service.d.ts +14 -0
- package/lib/services/musicGen/musicSearchFactory.service.d.ts.map +1 -0
- package/lib/services/musicGen/musicSearchFactory.service.js +59 -0
- package/lib/services/musicGen/providers/curated.service.d.ts +24 -0
- package/lib/services/musicGen/providers/curated.service.d.ts.map +1 -0
- package/lib/services/musicGen/providers/curated.service.js +173 -0
- package/lib/services/musicGen/providers/jamendo.service.d.ts +8 -0
- package/lib/services/musicGen/providers/jamendo.service.d.ts.map +1 -0
- package/lib/services/musicGen/providers/jamendo.service.js +113 -0
- package/lib/services/musicGen/providers/mubert.service.d.ts +10 -0
- package/lib/services/musicGen/providers/mubert.service.d.ts.map +1 -0
- package/lib/services/musicGen/providers/mubert.service.js +128 -0
- package/lib/services/musicGen/types.d.ts +46 -0
- package/lib/services/musicGen/types.d.ts.map +1 -0
- package/lib/services/musicGen/types.js +10 -0
- package/lib/services/notification.service.d.ts +22 -0
- package/lib/services/notification.service.d.ts.map +1 -0
- package/lib/services/notification.service.js +76 -0
- package/lib/services/rateLimiter/distributedRateLimiter.service.d.ts +78 -0
- package/lib/services/rateLimiter/distributedRateLimiter.service.d.ts.map +1 -0
- package/lib/services/rateLimiter/distributedRateLimiter.service.js +269 -0
- package/lib/services/rateLimiter/index.d.ts +2 -0
- package/lib/services/rateLimiter/index.d.ts.map +1 -0
- package/lib/services/rateLimiter/index.js +17 -0
- package/lib/services/redis.service.d.ts +9 -0
- package/lib/services/redis.service.d.ts.map +1 -1
- package/lib/services/redis.service.js +20 -11
- package/lib/services/redisOptions.d.ts +22 -0
- package/lib/services/redisOptions.d.ts.map +1 -0
- package/lib/services/redisOptions.js +51 -0
- package/lib/services/tts/index.d.ts +2 -0
- package/lib/services/tts/index.d.ts.map +1 -1
- package/lib/services/tts/index.js +2 -0
- package/lib/services/tts/providers/elevenlabs.service.d.ts.map +1 -1
- package/lib/services/tts/providers/elevenlabs.service.js +91 -24
- package/lib/services/tts/providers/minimax.service.d.ts +14 -0
- package/lib/services/tts/providers/minimax.service.d.ts.map +1 -0
- package/lib/services/tts/providers/minimax.service.js +78 -0
- package/lib/services/tts/providers/openai.service.d.ts +14 -0
- package/lib/services/tts/providers/openai.service.d.ts.map +1 -0
- package/lib/services/tts/providers/openai.service.js +73 -0
- package/lib/services/tts/ttsFactory.service.d.ts.map +1 -1
- package/lib/services/tts/ttsFactory.service.js +6 -0
- package/lib/services/tts/types.d.ts +33 -0
- package/lib/services/tts/types.d.ts.map +1 -1
- package/lib/utils/errors.d.ts +8 -0
- package/lib/utils/errors.d.ts.map +1 -1
- package/lib/utils/errors.js +8 -0
- package/lib/utils/helpers.d.ts +13 -0
- package/lib/utils/helpers.d.ts.map +1 -1
- package/lib/utils/helpers.js +48 -11
- package/lib/utils/logger.d.ts.map +1 -1
- package/lib/utils/logger.js +37 -1
- package/package.json +5 -1
- package/lib/services/aiGen/providers/azure/azure.service.d.ts +0 -14
- package/lib/services/aiGen/providers/azure/azure.service.d.ts.map +0 -1
- package/lib/services/aiGen/providers/azure/azure.service.js +0 -108
- package/lib/services/aiGen/providers/azure/index.d.ts +0 -2
- package/lib/services/aiGen/providers/azure/index.d.ts.map +0 -1
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* AG-41 — edit-request classifier + types.
|
|
4
|
+
*
|
|
5
|
+
* Goal: when a user (or automated critic) asks for a change to an already-
|
|
6
|
+
* generated video, we should *not* default to "regenerate the whole plan from
|
|
7
|
+
* scratch". Most edits map to a much narrower (and cheaper) operation:
|
|
8
|
+
*
|
|
9
|
+
* modify-text → re-mux only ($0, ~30s)
|
|
10
|
+
* modify-music → re-mux only ($0, ~30s)
|
|
11
|
+
* reorder-scenes → re-mux only ($0, ~30s)
|
|
12
|
+
* modify-vo → re-TTS + re-mux ($0.01 / scene + ~30s)
|
|
13
|
+
* modify-scene-visual → re-gen N scenes + re-stitch ($$ per scene, longest)
|
|
14
|
+
* modify-scene-duration → usually re-gen + re-stitch
|
|
15
|
+
* regenerate-all → fall through to the full planner (last resort)
|
|
16
|
+
*
|
|
17
|
+
* The classifier takes the original plan + the user instruction (or a list of
|
|
18
|
+
* critic findings that triggered an auto-edit) and returns a structured
|
|
19
|
+
* EditRequest. The router (`editRouter.ts`) then dispatches to handlers.
|
|
20
|
+
*
|
|
21
|
+
* This module owns only the *types* and *classifier rules*. Handlers live
|
|
22
|
+
* elsewhere because they pull in ffmpeg / executor / TTS surfaces.
|
|
23
|
+
*/
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.EditRequestSchema = exports.ReorderEditSchema = exports.SceneDurationEditSchema = exports.SceneVisualEditSchema = exports.MusicEditSchema = exports.VoEditSchema = exports.TextEditSchema = exports.EditScopeSchema = exports.EditRequestTypeSchema = void 0;
|
|
26
|
+
exports.classifyCriticFindingsToEdit = classifyCriticFindingsToEdit;
|
|
27
|
+
exports.buildEditClassifierPrompt = buildEditClassifierPrompt;
|
|
28
|
+
const zod_1 = require("zod");
|
|
29
|
+
const videoPlan_schema_1 = require("../../schemas/videoPlan.schema");
|
|
30
|
+
exports.EditRequestTypeSchema = zod_1.z.enum([
|
|
31
|
+
"modify-text",
|
|
32
|
+
"modify-vo",
|
|
33
|
+
"modify-music",
|
|
34
|
+
"modify-scene-visual",
|
|
35
|
+
"modify-scene-duration",
|
|
36
|
+
"reorder-scenes",
|
|
37
|
+
"regenerate-all",
|
|
38
|
+
]);
|
|
39
|
+
exports.EditScopeSchema = zod_1.z.object({
|
|
40
|
+
/** Affected scene indices. If empty + type is global-ish, applies to whole plan. */
|
|
41
|
+
sceneIndices: zod_1.z.array(zod_1.z.number().int().nonnegative()).default([]),
|
|
42
|
+
/**
|
|
43
|
+
* "all" sentinel: the change applies across every scene (e.g. swapping the
|
|
44
|
+
* music track, regenerating with a new style). Cheaper than a regenerate-all
|
|
45
|
+
* because we still skip the planner — just rerun specific steps for every scene.
|
|
46
|
+
*/
|
|
47
|
+
appliesToAllScenes: zod_1.z.boolean().default(false),
|
|
48
|
+
});
|
|
49
|
+
exports.TextEditSchema = zod_1.z.object({
|
|
50
|
+
/** New overlays for the affected scenes, keyed by sceneIndex. */
|
|
51
|
+
overlaysByScene: zod_1.z.record(zod_1.z.string(), zod_1.z.array(videoPlan_schema_1.TextOverlaySchema)),
|
|
52
|
+
});
|
|
53
|
+
exports.VoEditSchema = zod_1.z.object({
|
|
54
|
+
/** Per-scene replacement voiceover lines. */
|
|
55
|
+
linesByScene: zod_1.z.record(zod_1.z.string(), zod_1.z.string()),
|
|
56
|
+
/** Optional new voiceStyle for these scenes (per-scene override). */
|
|
57
|
+
voiceStyleByScene: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
|
|
58
|
+
});
|
|
59
|
+
exports.MusicEditSchema = zod_1.z.object({
|
|
60
|
+
/** Either an explicit URL OR a search query for the music selector. */
|
|
61
|
+
url: zod_1.z.string().url().optional(),
|
|
62
|
+
query: zod_1.z.string().optional(),
|
|
63
|
+
moodTag: zod_1.z.string().optional(),
|
|
64
|
+
});
|
|
65
|
+
exports.SceneVisualEditSchema = zod_1.z.object({
|
|
66
|
+
/** New visual prompt to feed the generator. If absent, re-uses the original. */
|
|
67
|
+
promptByScene: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
|
|
68
|
+
/** Optional new preferred model per scene (e.g. swap to runway for one scene). */
|
|
69
|
+
modelByScene: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
|
|
70
|
+
});
|
|
71
|
+
exports.SceneDurationEditSchema = zod_1.z.object({
|
|
72
|
+
/** New durationMs per scene. Renderer / VO will adapt. */
|
|
73
|
+
durationMsByScene: zod_1.z.record(zod_1.z.string(), zod_1.z.number().int().positive()),
|
|
74
|
+
});
|
|
75
|
+
exports.ReorderEditSchema = zod_1.z.object({
|
|
76
|
+
/** New order — array of original sceneIndices in the desired playback sequence. */
|
|
77
|
+
newOrder: zod_1.z.array(zod_1.z.number().int().nonnegative()).min(2),
|
|
78
|
+
});
|
|
79
|
+
exports.EditRequestSchema = zod_1.z.object({
|
|
80
|
+
type: exports.EditRequestTypeSchema,
|
|
81
|
+
scope: exports.EditScopeSchema,
|
|
82
|
+
reason: zod_1.z.string().min(4).describe("Why this edit is being made; surfaced to user for confirmation."),
|
|
83
|
+
textEdit: exports.TextEditSchema.optional(),
|
|
84
|
+
voEdit: exports.VoEditSchema.optional(),
|
|
85
|
+
musicEdit: exports.MusicEditSchema.optional(),
|
|
86
|
+
sceneVisualEdit: exports.SceneVisualEditSchema.optional(),
|
|
87
|
+
sceneDurationEdit: exports.SceneDurationEditSchema.optional(),
|
|
88
|
+
reorderEdit: exports.ReorderEditSchema.optional(),
|
|
89
|
+
/**
|
|
90
|
+
* Cost estimate. Drives the confirmation gate — if user pinned a budget, we
|
|
91
|
+
* surface this before billing fires.
|
|
92
|
+
*/
|
|
93
|
+
estimatedCostCredits: zod_1.z.number().nonnegative().default(0),
|
|
94
|
+
/**
|
|
95
|
+
* Operations that get reused (kept as-is) from the prior run. The router uses
|
|
96
|
+
* this purely for telemetry — "we saved X% by not regenerating scene Y".
|
|
97
|
+
*/
|
|
98
|
+
reuses: zod_1.z
|
|
99
|
+
.array(zod_1.z.enum([
|
|
100
|
+
"scene-visuals",
|
|
101
|
+
"voiceovers",
|
|
102
|
+
"music-track",
|
|
103
|
+
"stitch",
|
|
104
|
+
"overlays",
|
|
105
|
+
]))
|
|
106
|
+
.default([]),
|
|
107
|
+
});
|
|
108
|
+
/**
|
|
109
|
+
* Heuristic classifier: feed in a list of per-scene critic findings (severity
|
|
110
|
+
* "fail" only) and we generate an EditRequest that targets the offending
|
|
111
|
+
* scenes. Used by `repairTrace.ts` to auto-suggest a `modify-scene-visual`
|
|
112
|
+
* when actionPlausibility fails — no LLM call needed, since the critic
|
|
113
|
+
* already structured the problem.
|
|
114
|
+
*
|
|
115
|
+
* The LLM-driven classifier (for free-text user instructions like "make the
|
|
116
|
+
* voiceover calmer on scene 3") lives in `classifyUserEditInstruction` below.
|
|
117
|
+
*/
|
|
118
|
+
function classifyCriticFindingsToEdit(args) {
|
|
119
|
+
const scopeFilter = args.userIntentScope?.length
|
|
120
|
+
? (sceneIndex) => args.userIntentScope.includes(sceneIndex)
|
|
121
|
+
: () => true;
|
|
122
|
+
const visualFails = args.perSceneFailures.filter((f) => [
|
|
123
|
+
"actionPlausibility",
|
|
124
|
+
"promptAdherence",
|
|
125
|
+
"compositionQuality",
|
|
126
|
+
"motionQuality",
|
|
127
|
+
"characterDrift",
|
|
128
|
+
].includes(f.dimension) && scopeFilter(f.sceneIndex));
|
|
129
|
+
if (visualFails.length === 0 && (args.textFixSceneIndices?.length ?? 0) === 0) {
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
// Prefer the narrower edit: if only text issues, return modify-text;
|
|
133
|
+
// otherwise modify-scene-visual on the visual-fail indices.
|
|
134
|
+
if (visualFails.length === 0) {
|
|
135
|
+
return {
|
|
136
|
+
type: "modify-text",
|
|
137
|
+
scope: { sceneIndices: args.textFixSceneIndices, appliesToAllScenes: false },
|
|
138
|
+
reason: "Critic flagged text overlays needing repair.",
|
|
139
|
+
reuses: ["scene-visuals", "voiceovers", "music-track"],
|
|
140
|
+
estimatedCostCredits: 0,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
const affected = Array.from(new Set(visualFails.map((f) => f.sceneIndex)));
|
|
144
|
+
return {
|
|
145
|
+
type: "modify-scene-visual",
|
|
146
|
+
scope: { sceneIndices: affected, appliesToAllScenes: false },
|
|
147
|
+
reason: `Per-scene critic flagged ${visualFails.length} fail finding(s) across ${affected.length} scene(s): ${visualFails
|
|
148
|
+
.slice(0, 3)
|
|
149
|
+
.map((f) => `scene ${f.sceneIndex}/${f.dimension}`)
|
|
150
|
+
.join(", ")}.`,
|
|
151
|
+
reuses: ["voiceovers", "music-track", "overlays"],
|
|
152
|
+
// Rough estimate: I2V scene is ~3 credits on T2 tier. Caller refines.
|
|
153
|
+
estimatedCostCredits: affected.length * 4,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* LLM-classifier prompt builder. The caller wires this through any LLMCaller
|
|
158
|
+
* with structured-output support (Gateway / OpenAI / Gemini).
|
|
159
|
+
*
|
|
160
|
+
* NOTE: we don't ship a default LLM caller here so the module stays
|
|
161
|
+
* dependency-light — same pattern as planner / bibleBuilder. Tests can mock.
|
|
162
|
+
*/
|
|
163
|
+
function buildEditClassifierPrompt(args) {
|
|
164
|
+
return [
|
|
165
|
+
"You classify user edit requests against an already-generated video into a structured EditRequest.",
|
|
166
|
+
"Pick the NARROWEST applicable edit type — regenerate-all is a last resort.",
|
|
167
|
+
"Cost matters: every full scene re-gen costs the user credits. Prefer modify-text > modify-music > modify-vo > modify-scene-visual > regenerate-all.",
|
|
168
|
+
"",
|
|
169
|
+
"Plan summary (the current state of the video):",
|
|
170
|
+
args.planSummary,
|
|
171
|
+
"",
|
|
172
|
+
`Completed scenes (already rendered, you can reuse): ${args.completedSceneIndices.join(", ") || "(none)"}`,
|
|
173
|
+
"",
|
|
174
|
+
"User instruction:",
|
|
175
|
+
`"""${args.userInstruction}"""`,
|
|
176
|
+
"",
|
|
177
|
+
"Output a JSON EditRequest. Set `reason` so the user sees WHY this is the chosen edit (and can override). Set `reuses` to honestly list what stays the same — that's the cost-saving accountability line.",
|
|
178
|
+
"Examples of correct narrowing:",
|
|
179
|
+
" - 'change the CTA wording' → modify-text on the last scene, reuse everything else",
|
|
180
|
+
" - 'use calmer voiceover for scene 2' → modify-vo on scene 2, reuse visuals + music + other VOs",
|
|
181
|
+
" - 'the bottle has the cap still on while she drinks' → modify-scene-visual on the offending scene only",
|
|
182
|
+
" - 'use jazz music instead' → modify-music, reuse all scenes",
|
|
183
|
+
" - 'reverse the order of the middle scenes' → reorder-scenes, reuse everything",
|
|
184
|
+
" - 'redo the whole thing in a more cinematic style' → regenerate-all (style change touches every scene)",
|
|
185
|
+
].join("\n");
|
|
186
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/agent/eval/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./types"), exports);
|
|
18
|
+
__exportStar(require("./recorder"), exports);
|
|
19
|
+
__exportStar(require("./judge"), exports);
|
|
20
|
+
__exportStar(require("./seedBriefs"), exports);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AgentPersona } from "../../../schemas/agentPersona.schema";
|
|
2
|
+
import { Project } from "../../../schemas/project.schema";
|
|
3
|
+
import { LlmCaller } from "../llmCaller";
|
|
4
|
+
import { ModelRouter } from "../modelRouter";
|
|
5
|
+
import { EvalBrief, EvalScore } from "./types";
|
|
6
|
+
export declare class EvalJudge {
|
|
7
|
+
private readonly llm;
|
|
8
|
+
private readonly router;
|
|
9
|
+
constructor(llm: LlmCaller, router?: ModelRouter);
|
|
10
|
+
judge(brief: EvalBrief, project: Project, agentRunId: string, opts?: {
|
|
11
|
+
persona?: AgentPersona;
|
|
12
|
+
}): Promise<EvalScore>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=judge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"judge.d.ts","sourceRoot":"","sources":["../../../../src/services/agent/eval/judge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAgC,SAAS,EAAE,MAAM,SAAS,CAAC;AAgD7E,qBAAa,SAAS;IAGR,OAAO,CAAC,QAAQ,CAAC,GAAG;IAFhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAER,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW;IAI3D,KAAK,CACT,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,YAAY,CAAA;KAAO,GACpC,OAAO,CAAC,SAAS,CAAC;CA+CtB"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EvalJudge = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const modelRouter_1 = require("../modelRouter");
|
|
6
|
+
const personas_1 = require("../personas");
|
|
7
|
+
const types_1 = require("./types");
|
|
8
|
+
/**
|
|
9
|
+
* LLM-as-judge — scores a finalized Project against an EvalBrief's rubric.
|
|
10
|
+
*
|
|
11
|
+
* Uses the critic-tier model (vision-capable Sonnet) with a strict structured
|
|
12
|
+
* output. Independent from the live Critic that runs during a real agent run;
|
|
13
|
+
* the judge is allowed to be slower / more expensive because it runs offline.
|
|
14
|
+
*/
|
|
15
|
+
const RUBRIC_WEIGHTS = {
|
|
16
|
+
hookStrength: 0.2,
|
|
17
|
+
voVisualSync: 0.2,
|
|
18
|
+
pacingFit: 0.15,
|
|
19
|
+
brandSafety: 0.15,
|
|
20
|
+
costVsTier: 0.1,
|
|
21
|
+
intentMatch: 0.2,
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Apply persona criticEmphasis as additive deltas to the base weights, then
|
|
25
|
+
* renormalise so the weight set still sums to 1. Keeps scores comparable
|
|
26
|
+
* across personas while letting each persona's "what matters most" lean
|
|
27
|
+
* the aggregate score.
|
|
28
|
+
*/
|
|
29
|
+
function weightsForPersona(persona) {
|
|
30
|
+
if (!persona)
|
|
31
|
+
return RUBRIC_WEIGHTS;
|
|
32
|
+
const emphasis = personas_1.PERSONA_PACKS[persona].criticEmphasis;
|
|
33
|
+
const adjusted = { ...RUBRIC_WEIGHTS };
|
|
34
|
+
for (const [axis, delta] of Object.entries(emphasis)) {
|
|
35
|
+
const key = axis;
|
|
36
|
+
adjusted[key] = Math.max(0, adjusted[key] + (delta ?? 0));
|
|
37
|
+
}
|
|
38
|
+
const total = Object.values(adjusted).reduce((s, v) => s + v, 0);
|
|
39
|
+
if (total <= 0)
|
|
40
|
+
return RUBRIC_WEIGHTS;
|
|
41
|
+
for (const k of Object.keys(adjusted)) {
|
|
42
|
+
adjusted[k] = adjusted[k] / total;
|
|
43
|
+
}
|
|
44
|
+
return adjusted;
|
|
45
|
+
}
|
|
46
|
+
const JudgeOutputSchema = zod_1.z.object({
|
|
47
|
+
rubric: types_1.EvalRubricSchema,
|
|
48
|
+
notes: zod_1.z.string(),
|
|
49
|
+
});
|
|
50
|
+
class EvalJudge {
|
|
51
|
+
constructor(llm, router) {
|
|
52
|
+
this.llm = llm;
|
|
53
|
+
this.router = router ?? new modelRouter_1.ModelRouter();
|
|
54
|
+
}
|
|
55
|
+
async judge(brief, project, agentRunId, opts = {}) {
|
|
56
|
+
const model = this.router.pickFor("critic");
|
|
57
|
+
const weights = weightsForPersona(opts.persona);
|
|
58
|
+
const messages = [
|
|
59
|
+
{
|
|
60
|
+
role: "system",
|
|
61
|
+
content: [
|
|
62
|
+
"You are an offline quality judge for AI-generated short videos.",
|
|
63
|
+
"Score the project against the rubric on each axis (0-1, two decimals).",
|
|
64
|
+
"Be harsh: 1.0 means publish-without-edit; 0.7 is good but with one fixable issue;",
|
|
65
|
+
"0.4 means a re-roll is needed. Cite concrete clip ids in `notes`.",
|
|
66
|
+
].join(" "),
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
role: "user",
|
|
70
|
+
content: [
|
|
71
|
+
`Brief id: ${brief.id} (niche: ${brief.niche})`,
|
|
72
|
+
`What "good" looks like:\n${brief.goodOutputNotes}`,
|
|
73
|
+
`\nProject JSON:\n${JSON.stringify(project, null, 2)}`,
|
|
74
|
+
].join("\n\n"),
|
|
75
|
+
},
|
|
76
|
+
];
|
|
77
|
+
const result = await this.llm.structured({
|
|
78
|
+
model,
|
|
79
|
+
fallbackModel: this.router.fallbackFor("critic"),
|
|
80
|
+
messages,
|
|
81
|
+
schema: JudgeOutputSchema,
|
|
82
|
+
schemaName: "EvalJudgeResult",
|
|
83
|
+
temperature: 0,
|
|
84
|
+
});
|
|
85
|
+
const aggregate = Object.keys(weights).reduce((sum, key) => sum + result.data.rubric[key] * weights[key], 0);
|
|
86
|
+
return {
|
|
87
|
+
briefId: brief.id,
|
|
88
|
+
agentRunId,
|
|
89
|
+
rubric: result.data.rubric,
|
|
90
|
+
score: Number(aggregate.toFixed(3)),
|
|
91
|
+
judgeNotes: result.data.notes,
|
|
92
|
+
scoredAt: new Date().toISOString(),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.EvalJudge = EvalJudge;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ToolContext, ToolOutcome } from "../toolRegistry";
|
|
2
|
+
import { AgentRunTrace } from "./types";
|
|
3
|
+
export declare function setTracePersistence(fn: (trace: AgentRunTrace) => Promise<void>): void;
|
|
4
|
+
export declare function startTrace(opts: {
|
|
5
|
+
agentRunId: string;
|
|
6
|
+
briefId?: string;
|
|
7
|
+
modelRouting: Record<string, string>;
|
|
8
|
+
rngSeed: string;
|
|
9
|
+
}): AgentRunTrace;
|
|
10
|
+
export declare function getTrace(agentRunId: string): AgentRunTrace | undefined;
|
|
11
|
+
export declare function endTrace(agentRunId: string): Promise<AgentRunTrace | undefined>;
|
|
12
|
+
/**
|
|
13
|
+
* Drop-in replacement for runTool that records the call in the active trace.
|
|
14
|
+
* Use this in eval mode; production code can keep calling runTool directly.
|
|
15
|
+
*/
|
|
16
|
+
export declare function runToolRecorded<O = unknown>(name: string, input: unknown, ctx: ToolContext): Promise<ToolOutcome<O>>;
|
|
17
|
+
/**
|
|
18
|
+
* C46 — wrap a pipeline stage so its wall-clock duration lands in
|
|
19
|
+
* `trace.stageTimings` AND on a single machine-readable log line. Lets us
|
|
20
|
+
* distinguish slow-but-progressing from actually-stuck without scraping
|
|
21
|
+
* trace.json (Loki picks up the log; trace.json keeps it for post-mortems).
|
|
22
|
+
*
|
|
23
|
+
* Counts duration whether the stage resolves or throws — so a crashed stage
|
|
24
|
+
* still leaves a timing footprint. Caller decides whether to swallow the
|
|
25
|
+
* error.
|
|
26
|
+
*/
|
|
27
|
+
export declare function trackStage<T>(agentRunId: string, stage: string, fn: () => Promise<T>, log?: (msg: string, ctx: Record<string, unknown>) => void): Promise<T>;
|
|
28
|
+
//# sourceMappingURL=recorder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../../../src/services/agent/eval/recorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnF,OAAO,EAAE,aAAa,EAA8B,MAAM,SAAS,CAAC;AAcpE,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAErF;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,aAAa,CAWhB;AAED,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAEtE;AAED,wBAAsB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAgBrF;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,CAAC,GAAG,OAAO,EAC/C,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CASzB;AAED;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAChC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GACxD,OAAO,CAAC,CAAC,CAAC,CAiBZ"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setTracePersistence = setTracePersistence;
|
|
4
|
+
exports.startTrace = startTrace;
|
|
5
|
+
exports.getTrace = getTrace;
|
|
6
|
+
exports.endTrace = endTrace;
|
|
7
|
+
exports.runToolRecorded = runToolRecorded;
|
|
8
|
+
exports.trackStage = trackStage;
|
|
9
|
+
const toolRegistry_1 = require("../toolRegistry");
|
|
10
|
+
const logger_1 = require("../../../utils/logger");
|
|
11
|
+
/**
|
|
12
|
+
* Recording wrapper around runTool — every tool call is appended to a trace
|
|
13
|
+
* buffer keyed by agentRunId. Replay reads this buffer back; offline eval
|
|
14
|
+
* compares two recordings against the same brief.
|
|
15
|
+
*
|
|
16
|
+
* Storage is in-memory by default; the host swaps in a Firestore-backed
|
|
17
|
+
* implementation by setting the persistence callback.
|
|
18
|
+
*/
|
|
19
|
+
const traces = new Map();
|
|
20
|
+
let persistFn = null;
|
|
21
|
+
function setTracePersistence(fn) {
|
|
22
|
+
persistFn = fn;
|
|
23
|
+
}
|
|
24
|
+
function startTrace(opts) {
|
|
25
|
+
const trace = {
|
|
26
|
+
agentRunId: opts.agentRunId,
|
|
27
|
+
briefId: opts.briefId,
|
|
28
|
+
startedAt: new Date().toISOString(),
|
|
29
|
+
modelRouting: opts.modelRouting,
|
|
30
|
+
rngSeed: opts.rngSeed,
|
|
31
|
+
toolCalls: [],
|
|
32
|
+
};
|
|
33
|
+
traces.set(opts.agentRunId, trace);
|
|
34
|
+
return trace;
|
|
35
|
+
}
|
|
36
|
+
function getTrace(agentRunId) {
|
|
37
|
+
return traces.get(agentRunId);
|
|
38
|
+
}
|
|
39
|
+
async function endTrace(agentRunId) {
|
|
40
|
+
const trace = traces.get(agentRunId);
|
|
41
|
+
if (!trace)
|
|
42
|
+
return undefined;
|
|
43
|
+
trace.endedAt = new Date().toISOString();
|
|
44
|
+
if (persistFn) {
|
|
45
|
+
try {
|
|
46
|
+
await persistFn(trace);
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
// Persistence failure must not poison the agent run, but surface to ops.
|
|
50
|
+
logger_1.logger.error("eval recorder: trace persist failed", {
|
|
51
|
+
agentRunId: trace.agentRunId,
|
|
52
|
+
err: err instanceof Error ? err.stack ?? err.message : String(err),
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return trace;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Drop-in replacement for runTool that records the call in the active trace.
|
|
60
|
+
* Use this in eval mode; production code can keep calling runTool directly.
|
|
61
|
+
*/
|
|
62
|
+
async function runToolRecorded(name, input, ctx) {
|
|
63
|
+
const ts = Date.now();
|
|
64
|
+
const outcome = await (0, toolRegistry_1.runTool)(name, input, ctx);
|
|
65
|
+
const trace = traces.get(ctx.agentRunId);
|
|
66
|
+
if (trace) {
|
|
67
|
+
const entry = { ts, tool: name, input, outcome };
|
|
68
|
+
trace.toolCalls.push(entry);
|
|
69
|
+
}
|
|
70
|
+
return outcome;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* C46 — wrap a pipeline stage so its wall-clock duration lands in
|
|
74
|
+
* `trace.stageTimings` AND on a single machine-readable log line. Lets us
|
|
75
|
+
* distinguish slow-but-progressing from actually-stuck without scraping
|
|
76
|
+
* trace.json (Loki picks up the log; trace.json keeps it for post-mortems).
|
|
77
|
+
*
|
|
78
|
+
* Counts duration whether the stage resolves or throws — so a crashed stage
|
|
79
|
+
* still leaves a timing footprint. Caller decides whether to swallow the
|
|
80
|
+
* error.
|
|
81
|
+
*/
|
|
82
|
+
async function trackStage(agentRunId, stage, fn, log) {
|
|
83
|
+
const startedAt = Date.now();
|
|
84
|
+
try {
|
|
85
|
+
return await fn();
|
|
86
|
+
}
|
|
87
|
+
finally {
|
|
88
|
+
const durationMs = Date.now() - startedAt;
|
|
89
|
+
const trace = traces.get(agentRunId);
|
|
90
|
+
if (trace) {
|
|
91
|
+
const timing = { stage, startedAt, durationMs };
|
|
92
|
+
(trace.stageTimings ?? (trace.stageTimings = [])).push(timing);
|
|
93
|
+
}
|
|
94
|
+
log?.(`[timing] stage=${stage} ms=${durationMs}`, {
|
|
95
|
+
agentRunId,
|
|
96
|
+
stage,
|
|
97
|
+
durationMs,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EvalBrief } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Eval set — 50 hand-curated briefs covering the 5 launch personas plus
|
|
4
|
+
* adjacent niches that should route to the closest persona (e.g. recipe →
|
|
5
|
+
* faceless-yt, real-estate → product-demo).
|
|
6
|
+
*
|
|
7
|
+
* Use these to:
|
|
8
|
+
* 1. Catch routing regressions (router persona !== expected niche).
|
|
9
|
+
* 2. Catch planner regressions (tier mix, schema validity, scene count).
|
|
10
|
+
* 3. Score quality drift after prompt / model / rubric changes.
|
|
11
|
+
*
|
|
12
|
+
* Add new briefs alongside the change that needs them; do not bulk-grow
|
|
13
|
+
* without a reason — every brief costs 4 LLM calls per run.
|
|
14
|
+
*/
|
|
15
|
+
export declare const SEED_EVAL_BRIEFS: EvalBrief[];
|
|
16
|
+
//# sourceMappingURL=seedBriefs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seedBriefs.d.ts","sourceRoot":"","sources":["../../../../src/services/agent/eval/seedBriefs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,EA4pCvC,CAAC"}
|