@sogni-ai/sogni-intelligence-client 3.0.0-alpha.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/.env.example +33 -0
- package/LICENSE +22 -0
- package/README.md +823 -0
- package/contracts/index.d.ts +1 -0
- package/contracts/index.js +2 -0
- package/dist/client/SogniClientWrapper.d.ts +86 -0
- package/dist/client/SogniClientWrapper.d.ts.map +1 -0
- package/dist/client/SogniClientWrapper.js +914 -0
- package/dist/client/SogniClientWrapper.js.map +1 -0
- package/dist/contracts/backboneDurableWorkflow.d.ts +82 -0
- package/dist/contracts/backboneDurableWorkflow.d.ts.map +1 -0
- package/dist/contracts/backboneDurableWorkflow.js +96 -0
- package/dist/contracts/backboneDurableWorkflow.js.map +1 -0
- package/dist/contracts/backboneToolCatalog.d.ts +7 -0
- package/dist/contracts/backboneToolCatalog.d.ts.map +1 -0
- package/dist/contracts/backboneToolCatalog.js +62 -0
- package/dist/contracts/backboneToolCatalog.js.map +1 -0
- package/dist/contracts/composeWorkflowTypes.d.ts +6 -0
- package/dist/contracts/composeWorkflowTypes.d.ts.map +1 -0
- package/dist/contracts/composeWorkflowTypes.js +3 -0
- package/dist/contracts/composeWorkflowTypes.js.map +1 -0
- package/dist/contracts/data/costEstimation.d.ts +5 -0
- package/dist/contracts/data/costEstimation.d.ts.map +1 -0
- package/dist/contracts/data/costEstimation.js +22 -0
- package/dist/contracts/data/costEstimation.js.map +1 -0
- package/dist/contracts/data/gatingPolicies.d.ts +6 -0
- package/dist/contracts/data/gatingPolicies.d.ts.map +1 -0
- package/dist/contracts/data/gatingPolicies.js +218 -0
- package/dist/contracts/data/gatingPolicies.js.map +1 -0
- package/dist/contracts/data/gatingPoliciesToolSurface.d.ts +7 -0
- package/dist/contracts/data/gatingPoliciesToolSurface.d.ts.map +1 -0
- package/dist/contracts/data/gatingPoliciesToolSurface.js +61 -0
- package/dist/contracts/data/gatingPoliciesToolSurface.js.map +1 -0
- package/dist/contracts/data/index.d.ts +14 -0
- package/dist/contracts/data/index.d.ts.map +1 -0
- package/dist/contracts/data/index.js +57 -0
- package/dist/contracts/data/index.js.map +1 -0
- package/dist/contracts/data/promptContracts.d.ts +5 -0
- package/dist/contracts/data/promptContracts.d.ts.map +1 -0
- package/dist/contracts/data/promptContracts.js +1173 -0
- package/dist/contracts/data/promptContracts.js.map +1 -0
- package/dist/contracts/data/repairRecipes.d.ts +5 -0
- package/dist/contracts/data/repairRecipes.d.ts.map +1 -0
- package/dist/contracts/data/repairRecipes.js +197 -0
- package/dist/contracts/data/repairRecipes.js.map +1 -0
- package/dist/contracts/data/toolCatalog.d.ts +31 -0
- package/dist/contracts/data/toolCatalog.d.ts.map +1 -0
- package/dist/contracts/data/toolCatalog.js +129 -0
- package/dist/contracts/data/toolCatalog.js.map +1 -0
- package/dist/contracts/data/toolCostMetadata.d.ts +16 -0
- package/dist/contracts/data/toolCostMetadata.d.ts.map +1 -0
- package/dist/contracts/data/toolCostMetadata.js +284 -0
- package/dist/contracts/data/toolCostMetadata.js.map +1 -0
- package/dist/contracts/data/toolPermissions.d.ts +27 -0
- package/dist/contracts/data/toolPermissions.d.ts.map +1 -0
- package/dist/contracts/data/toolPermissions.js +78 -0
- package/dist/contracts/data/toolPermissions.js.map +1 -0
- package/dist/contracts/evaluators.d.ts +94 -0
- package/dist/contracts/evaluators.d.ts.map +1 -0
- package/dist/contracts/evaluators.js +468 -0
- package/dist/contracts/evaluators.js.map +1 -0
- package/dist/contracts/hostedComposition.d.ts +85 -0
- package/dist/contracts/hostedComposition.d.ts.map +1 -0
- package/dist/contracts/hostedComposition.js +139 -0
- package/dist/contracts/hostedComposition.js.map +1 -0
- package/dist/contracts/hostedToolValidation.d.ts +47 -0
- package/dist/contracts/hostedToolValidation.d.ts.map +1 -0
- package/dist/contracts/hostedToolValidation.js +301 -0
- package/dist/contracts/hostedToolValidation.js.map +1 -0
- package/dist/contracts/idLoraPrompt.d.ts +13 -0
- package/dist/contracts/idLoraPrompt.d.ts.map +1 -0
- package/dist/contracts/idLoraPrompt.js +78 -0
- package/dist/contracts/idLoraPrompt.js.map +1 -0
- package/dist/contracts/imagePrompt.d.ts +16 -0
- package/dist/contracts/imagePrompt.d.ts.map +1 -0
- package/dist/contracts/imagePrompt.js +148 -0
- package/dist/contracts/imagePrompt.js.map +1 -0
- package/dist/contracts/index.d.ts +48 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +156 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/index.mjs +102 -0
- package/dist/contracts/musicComposition.d.ts +17 -0
- package/dist/contracts/musicComposition.d.ts.map +1 -0
- package/dist/contracts/musicComposition.js +188 -0
- package/dist/contracts/musicComposition.js.map +1 -0
- package/dist/contracts/promptContract.d.ts +11 -0
- package/dist/contracts/promptContract.d.ts.map +1 -0
- package/dist/contracts/promptContract.js +37 -0
- package/dist/contracts/promptContract.js.map +1 -0
- package/dist/contracts/promptOverrideMarker.d.ts +2 -0
- package/dist/contracts/promptOverrideMarker.d.ts.map +1 -0
- package/dist/contracts/promptOverrideMarker.js +5 -0
- package/dist/contracts/promptOverrideMarker.js.map +1 -0
- package/dist/contracts/randomThemes.d.ts +5 -0
- package/dist/contracts/randomThemes.d.ts.map +1 -0
- package/dist/contracts/randomThemes.js +159 -0
- package/dist/contracts/randomThemes.js.map +1 -0
- package/dist/contracts/registry.d.ts +29 -0
- package/dist/contracts/registry.d.ts.map +1 -0
- package/dist/contracts/registry.js +104 -0
- package/dist/contracts/registry.js.map +1 -0
- package/dist/contracts/repairRecipe.d.ts +14 -0
- package/dist/contracts/repairRecipe.d.ts.map +1 -0
- package/dist/contracts/repairRecipe.js +38 -0
- package/dist/contracts/repairRecipe.js.map +1 -0
- package/dist/contracts/storyboard.d.ts +112 -0
- package/dist/contracts/storyboard.d.ts.map +1 -0
- package/dist/contracts/storyboard.js +7 -0
- package/dist/contracts/storyboard.js.map +1 -0
- package/dist/contracts/telemetry.d.ts +57 -0
- package/dist/contracts/telemetry.d.ts.map +1 -0
- package/dist/contracts/telemetry.js +37 -0
- package/dist/contracts/telemetry.js.map +1 -0
- package/dist/contracts/toolGatingPolicy.d.ts +19 -0
- package/dist/contracts/toolGatingPolicy.d.ts.map +1 -0
- package/dist/contracts/toolGatingPolicy.js +63 -0
- package/dist/contracts/toolGatingPolicy.js.map +1 -0
- package/dist/contracts/toolPromptMarkers.d.ts +9 -0
- package/dist/contracts/toolPromptMarkers.d.ts.map +1 -0
- package/dist/contracts/toolPromptMarkers.js +13 -0
- package/dist/contracts/toolPromptMarkers.js.map +1 -0
- package/dist/contracts/toolSurface.d.ts +46 -0
- package/dist/contracts/toolSurface.d.ts.map +1 -0
- package/dist/contracts/toolSurface.js +119 -0
- package/dist/contracts/toolSurface.js.map +1 -0
- package/dist/contracts/turnPolicy.d.ts +22 -0
- package/dist/contracts/turnPolicy.d.ts.map +1 -0
- package/dist/contracts/turnPolicy.js +16 -0
- package/dist/contracts/turnPolicy.js.map +1 -0
- package/dist/contracts/videoComposition.d.ts +35 -0
- package/dist/contracts/videoComposition.d.ts.map +1 -0
- package/dist/contracts/videoComposition.js +224 -0
- package/dist/contracts/videoComposition.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +46 -0
- package/dist/index.js.map +1 -0
- package/dist/media/aspectRatio.d.ts +15 -0
- package/dist/media/aspectRatio.d.ts.map +1 -0
- package/dist/media/aspectRatio.js +72 -0
- package/dist/media/aspectRatio.js.map +1 -0
- package/dist/media/audioReference.d.ts +57 -0
- package/dist/media/audioReference.d.ts.map +1 -0
- package/dist/media/audioReference.js +194 -0
- package/dist/media/audioReference.js.map +1 -0
- package/dist/media/cameraAngle.d.ts +170 -0
- package/dist/media/cameraAngle.d.ts.map +1 -0
- package/dist/media/cameraAngle.js +48 -0
- package/dist/media/cameraAngle.js.map +1 -0
- package/dist/media/characterSheet.d.ts +9 -0
- package/dist/media/characterSheet.d.ts.map +1 -0
- package/dist/media/characterSheet.js +54 -0
- package/dist/media/characterSheet.js.map +1 -0
- package/dist/media/danceMontage.d.ts +18 -0
- package/dist/media/danceMontage.d.ts.map +1 -0
- package/dist/media/danceMontage.js +34 -0
- package/dist/media/danceMontage.js.map +1 -0
- package/dist/media/enhancementProfiles.d.ts +158 -0
- package/dist/media/enhancementProfiles.d.ts.map +1 -0
- package/dist/media/enhancementProfiles.js +224 -0
- package/dist/media/enhancementProfiles.js.map +1 -0
- package/dist/media/generationJob.d.ts +81 -0
- package/dist/media/generationJob.d.ts.map +1 -0
- package/dist/media/generationJob.js +91 -0
- package/dist/media/generationJob.js.map +1 -0
- package/dist/media/gptImage.d.ts +21 -0
- package/dist/media/gptImage.d.ts.map +1 -0
- package/dist/media/gptImage.js +162 -0
- package/dist/media/gptImage.js.map +1 -0
- package/dist/media/imageDimensions.d.ts +24 -0
- package/dist/media/imageDimensions.d.ts.map +1 -0
- package/dist/media/imageDimensions.js +64 -0
- package/dist/media/imageDimensions.js.map +1 -0
- package/dist/media/index.d.ts +16 -0
- package/dist/media/index.d.ts.map +1 -0
- package/dist/media/index.js +32 -0
- package/dist/media/index.js.map +1 -0
- package/dist/media/index.mjs +116 -0
- package/dist/media/musicSettings.d.ts +86 -0
- package/dist/media/musicSettings.d.ts.map +1 -0
- package/dist/media/musicSettings.js +234 -0
- package/dist/media/musicSettings.js.map +1 -0
- package/dist/media/vendorModelPremium.d.ts +21 -0
- package/dist/media/vendorModelPremium.d.ts.map +1 -0
- package/dist/media/vendorModelPremium.js +89 -0
- package/dist/media/vendorModelPremium.js.map +1 -0
- package/dist/media/videoAppSettings.d.ts +41 -0
- package/dist/media/videoAppSettings.d.ts.map +1 -0
- package/dist/media/videoAppSettings.js +128 -0
- package/dist/media/videoAppSettings.js.map +1 -0
- package/dist/media/videoContentLimit.d.ts +15 -0
- package/dist/media/videoContentLimit.d.ts.map +1 -0
- package/dist/media/videoContentLimit.js +169 -0
- package/dist/media/videoContentLimit.js.map +1 -0
- package/dist/media/videoReference.d.ts +35 -0
- package/dist/media/videoReference.d.ts.map +1 -0
- package/dist/media/videoReference.js +77 -0
- package/dist/media/videoReference.js.map +1 -0
- package/dist/media/videoSettings.d.ts +50 -0
- package/dist/media/videoSettings.d.ts.map +1 -0
- package/dist/media/videoSettings.js +200 -0
- package/dist/media/videoSettings.js.map +1 -0
- package/dist/public-skill-runtime/index.d.ts +1220 -0
- package/dist/public-skill-runtime/index.d.ts.map +1 -0
- package/dist/public-skill-runtime/index.js +6396 -0
- package/dist/public-skill-runtime/index.js.map +1 -0
- package/dist/public-skill-runtime/index.mjs +141 -0
- package/dist/replay/index.d.ts +4 -0
- package/dist/replay/index.d.ts.map +1 -0
- package/dist/replay/index.js +12 -0
- package/dist/replay/index.js.map +1 -0
- package/dist/replay/index.mjs +12 -0
- package/dist/replay/redact.d.ts +7 -0
- package/dist/replay/redact.d.ts.map +1 -0
- package/dist/replay/redact.js +108 -0
- package/dist/replay/redact.js.map +1 -0
- package/dist/replay/types.d.ts +61 -0
- package/dist/replay/types.d.ts.map +1 -0
- package/dist/replay/types.js +24 -0
- package/dist/replay/types.js.map +1 -0
- package/dist/runtime/chatTypes.d.ts +47 -0
- package/dist/runtime/chatTypes.d.ts.map +1 -0
- package/dist/runtime/chatTypes.js +3 -0
- package/dist/runtime/chatTypes.js.map +1 -0
- package/dist/runtime/durableWorkflowClient.d.ts +80 -0
- package/dist/runtime/durableWorkflowClient.d.ts.map +1 -0
- package/dist/runtime/durableWorkflowClient.js +312 -0
- package/dist/runtime/durableWorkflowClient.js.map +1 -0
- package/dist/runtime/index.d.ts +3 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +18 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/index.mjs +21 -0
- package/dist/skills/asset_reference_management/index.d.ts +6 -0
- package/dist/skills/asset_reference_management/index.d.ts.map +1 -0
- package/dist/skills/asset_reference_management/index.js +18 -0
- package/dist/skills/asset_reference_management/index.js.map +1 -0
- package/dist/skills/asset_reference_management/index.mjs +18 -0
- package/dist/skills/asset_reference_management/manifest.d.ts +42 -0
- package/dist/skills/asset_reference_management/manifest.d.ts.map +1 -0
- package/dist/skills/asset_reference_management/manifest.js +237 -0
- package/dist/skills/asset_reference_management/manifest.js.map +1 -0
- package/dist/skills/asset_reference_management/modelRefRegistry.d.ts +24 -0
- package/dist/skills/asset_reference_management/modelRefRegistry.d.ts.map +1 -0
- package/dist/skills/asset_reference_management/modelRefRegistry.js +136 -0
- package/dist/skills/asset_reference_management/modelRefRegistry.js.map +1 -0
- package/dist/skills/asset_reference_management/types.d.ts +31 -0
- package/dist/skills/asset_reference_management/types.d.ts.map +1 -0
- package/dist/skills/asset_reference_management/types.js +3 -0
- package/dist/skills/asset_reference_management/types.js.map +1 -0
- package/dist/tools/definitions/add-subtitles/definition.d.ts +4 -0
- package/dist/tools/definitions/add-subtitles/definition.d.ts.map +1 -0
- package/dist/tools/definitions/add-subtitles/definition.js +83 -0
- package/dist/tools/definitions/add-subtitles/definition.js.map +1 -0
- package/dist/tools/definitions/animate-photo/definition.d.ts +3 -0
- package/dist/tools/definitions/animate-photo/definition.d.ts.map +1 -0
- package/dist/tools/definitions/animate-photo/definition.js +124 -0
- package/dist/tools/definitions/animate-photo/definition.js.map +1 -0
- package/dist/tools/definitions/apply-style/definition.d.ts +3 -0
- package/dist/tools/definitions/apply-style/definition.d.ts.map +1 -0
- package/dist/tools/definitions/apply-style/definition.js +50 -0
- package/dist/tools/definitions/apply-style/definition.js.map +1 -0
- package/dist/tools/definitions/change-angle/definition.d.ts +3 -0
- package/dist/tools/definitions/change-angle/definition.d.ts.map +1 -0
- package/dist/tools/definitions/change-angle/definition.js +49 -0
- package/dist/tools/definitions/change-angle/definition.js.map +1 -0
- package/dist/tools/definitions/dance-montage/dances.d.ts +11 -0
- package/dist/tools/definitions/dance-montage/dances.d.ts.map +1 -0
- package/dist/tools/definitions/dance-montage/dances.js +90 -0
- package/dist/tools/definitions/dance-montage/dances.js.map +1 -0
- package/dist/tools/definitions/dance-montage/definition.d.ts +3 -0
- package/dist/tools/definitions/dance-montage/definition.d.ts.map +1 -0
- package/dist/tools/definitions/dance-montage/definition.js +45 -0
- package/dist/tools/definitions/dance-montage/definition.js.map +1 -0
- package/dist/tools/definitions/edit-image/definition.d.ts +3 -0
- package/dist/tools/definitions/edit-image/definition.d.ts.map +1 -0
- package/dist/tools/definitions/edit-image/definition.js +128 -0
- package/dist/tools/definitions/edit-image/definition.js.map +1 -0
- package/dist/tools/definitions/extend-video/definition.d.ts +3 -0
- package/dist/tools/definitions/extend-video/definition.d.ts.map +1 -0
- package/dist/tools/definitions/extend-video/definition.js +51 -0
- package/dist/tools/definitions/extend-video/definition.js.map +1 -0
- package/dist/tools/definitions/generate-image/definition.d.ts +3 -0
- package/dist/tools/definitions/generate-image/definition.d.ts.map +1 -0
- package/dist/tools/definitions/generate-image/definition.js +107 -0
- package/dist/tools/definitions/generate-image/definition.js.map +1 -0
- package/dist/tools/definitions/generate-music/definition.d.ts +3 -0
- package/dist/tools/definitions/generate-music/definition.d.ts.map +1 -0
- package/dist/tools/definitions/generate-music/definition.js +75 -0
- package/dist/tools/definitions/generate-music/definition.js.map +1 -0
- package/dist/tools/definitions/generate-video/definition.d.ts +3 -0
- package/dist/tools/definitions/generate-video/definition.d.ts.map +1 -0
- package/dist/tools/definitions/generate-video/definition.js +120 -0
- package/dist/tools/definitions/generate-video/definition.js.map +1 -0
- package/dist/tools/definitions/index.d.ts +25 -0
- package/dist/tools/definitions/index.d.ts.map +1 -0
- package/dist/tools/definitions/index.js +66 -0
- package/dist/tools/definitions/index.js.map +1 -0
- package/dist/tools/definitions/orbit-video/definition.d.ts +3 -0
- package/dist/tools/definitions/orbit-video/definition.d.ts.map +1 -0
- package/dist/tools/definitions/orbit-video/definition.js +103 -0
- package/dist/tools/definitions/orbit-video/definition.js.map +1 -0
- package/dist/tools/definitions/overlay-video/definition.d.ts +4 -0
- package/dist/tools/definitions/overlay-video/definition.d.ts.map +1 -0
- package/dist/tools/definitions/overlay-video/definition.js +142 -0
- package/dist/tools/definitions/overlay-video/definition.js.map +1 -0
- package/dist/tools/definitions/refine-result/definition.d.ts +3 -0
- package/dist/tools/definitions/refine-result/definition.d.ts.map +1 -0
- package/dist/tools/definitions/refine-result/definition.js +56 -0
- package/dist/tools/definitions/refine-result/definition.js.map +1 -0
- package/dist/tools/definitions/replace-video-segment/definition.d.ts +3 -0
- package/dist/tools/definitions/replace-video-segment/definition.d.ts.map +1 -0
- package/dist/tools/definitions/replace-video-segment/definition.js +65 -0
- package/dist/tools/definitions/replace-video-segment/definition.js.map +1 -0
- package/dist/tools/definitions/restore-photo/definition.d.ts +3 -0
- package/dist/tools/definitions/restore-photo/definition.d.ts.map +1 -0
- package/dist/tools/definitions/restore-photo/definition.js +58 -0
- package/dist/tools/definitions/restore-photo/definition.js.map +1 -0
- package/dist/tools/definitions/sound-to-video/definition.d.ts +3 -0
- package/dist/tools/definitions/sound-to-video/definition.d.ts.map +1 -0
- package/dist/tools/definitions/sound-to-video/definition.js +91 -0
- package/dist/tools/definitions/sound-to-video/definition.js.map +1 -0
- package/dist/tools/definitions/stitch-video/definition.d.ts +4 -0
- package/dist/tools/definitions/stitch-video/definition.d.ts.map +1 -0
- package/dist/tools/definitions/stitch-video/definition.js +89 -0
- package/dist/tools/definitions/stitch-video/definition.js.map +1 -0
- package/dist/tools/definitions/types.d.ts +15 -0
- package/dist/tools/definitions/types.d.ts.map +1 -0
- package/dist/tools/definitions/types.js +3 -0
- package/dist/tools/definitions/types.js.map +1 -0
- package/dist/tools/definitions/video-to-video/definition.d.ts +3 -0
- package/dist/tools/definitions/video-to-video/definition.d.ts.map +1 -0
- package/dist/tools/definitions/video-to-video/definition.js +101 -0
- package/dist/tools/definitions/video-to-video/definition.js.map +1 -0
- package/dist/tools/index.d.ts +19 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +70 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/index.mjs +86 -0
- package/dist/tools/normalizeArgs.d.ts +2 -0
- package/dist/tools/normalizeArgs.d.ts.map +1 -0
- package/dist/tools/normalizeArgs.js +40 -0
- package/dist/tools/normalizeArgs.js.map +1 -0
- package/dist/tools/result.d.ts +47 -0
- package/dist/tools/result.d.ts.map +1 -0
- package/dist/tools/result.js +38 -0
- package/dist/tools/result.js.map +1 -0
- package/dist/tools/shared/downloadFilename.d.ts +18 -0
- package/dist/tools/shared/downloadFilename.d.ts.map +1 -0
- package/dist/tools/shared/downloadFilename.js +157 -0
- package/dist/tools/shared/downloadFilename.js.map +1 -0
- package/dist/tools/shared/errorClassification.d.ts +15 -0
- package/dist/tools/shared/errorClassification.d.ts.map +1 -0
- package/dist/tools/shared/errorClassification.js +78 -0
- package/dist/tools/shared/errorClassification.js.map +1 -0
- package/dist/tools/shared/imageEncoding.d.ts +2 -0
- package/dist/tools/shared/imageEncoding.d.ts.map +1 -0
- package/dist/tools/shared/imageEncoding.js +11 -0
- package/dist/tools/shared/imageEncoding.js.map +1 -0
- package/dist/tools/shared/llmHelpers.d.ts +14 -0
- package/dist/tools/shared/llmHelpers.d.ts.map +1 -0
- package/dist/tools/shared/llmHelpers.js +145 -0
- package/dist/tools/shared/llmHelpers.js.map +1 -0
- package/dist/tools/shared/modelRegistry.d.ts +10 -0
- package/dist/tools/shared/modelRegistry.d.ts.map +1 -0
- package/dist/tools/shared/modelRegistry.js +98 -0
- package/dist/tools/shared/modelRegistry.js.map +1 -0
- package/dist/tools/shared/policyChecks.d.ts +25 -0
- package/dist/tools/shared/policyChecks.d.ts.map +1 -0
- package/dist/tools/shared/policyChecks.js +79 -0
- package/dist/tools/shared/policyChecks.js.map +1 -0
- package/dist/tools/shared/promptRefinementCache.d.ts +10 -0
- package/dist/tools/shared/promptRefinementCache.d.ts.map +1 -0
- package/dist/tools/shared/promptRefinementCache.js +81 -0
- package/dist/tools/shared/promptRefinementCache.js.map +1 -0
- package/dist/tools/shared/promptSanitizer.d.ts +2 -0
- package/dist/tools/shared/promptSanitizer.d.ts.map +1 -0
- package/dist/tools/shared/promptSanitizer.js +73 -0
- package/dist/tools/shared/promptSanitizer.js.map +1 -0
- package/dist/tools/shared/seedancePolicyErrors.d.ts +33 -0
- package/dist/tools/shared/seedancePolicyErrors.d.ts.map +1 -0
- package/dist/tools/shared/seedancePolicyErrors.js +239 -0
- package/dist/tools/shared/seedancePolicyErrors.js.map +1 -0
- package/dist/tools/shared/slotFailureSummary.d.ts +7 -0
- package/dist/tools/shared/slotFailureSummary.d.ts.map +1 -0
- package/dist/tools/shared/slotFailureSummary.js +63 -0
- package/dist/tools/shared/slotFailureSummary.js.map +1 -0
- package/dist/tools/shared/visionDescriptionCache.d.ts +5 -0
- package/dist/tools/shared/visionDescriptionCache.d.ts.map +1 -0
- package/dist/tools/shared/visionDescriptionCache.js +35 -0
- package/dist/tools/shared/visionDescriptionCache.js.map +1 -0
- package/dist/types/index.d.ts +224 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +34 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/errors.d.ts +38 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +99 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/helpers.d.ts +36 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +445 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/workflows/bindings.d.ts +23 -0
- package/dist/workflows/bindings.d.ts.map +1 -0
- package/dist/workflows/bindings.js +190 -0
- package/dist/workflows/bindings.js.map +1 -0
- package/dist/workflows/executor-ports.d.ts +11 -0
- package/dist/workflows/executor-ports.d.ts.map +1 -0
- package/dist/workflows/executor-ports.js +3 -0
- package/dist/workflows/executor-ports.js.map +1 -0
- package/dist/workflows/executor.d.ts +17 -0
- package/dist/workflows/executor.d.ts.map +1 -0
- package/dist/workflows/executor.js +526 -0
- package/dist/workflows/executor.js.map +1 -0
- package/dist/workflows/index.d.ts +8 -0
- package/dist/workflows/index.d.ts.map +1 -0
- package/dist/workflows/index.js +25 -0
- package/dist/workflows/index.js.map +1 -0
- package/dist/workflows/index.mjs +22 -0
- package/dist/workflows/summarize.d.ts +7 -0
- package/dist/workflows/summarize.d.ts.map +1 -0
- package/dist/workflows/summarize.js +54 -0
- package/dist/workflows/summarize.js.map +1 -0
- package/dist/workflows/types.d.ts +302 -0
- package/dist/workflows/types.d.ts.map +1 -0
- package/dist/workflows/types.js +3 -0
- package/dist/workflows/types.js.map +1 -0
- package/dist/workflows/validation.d.ts +10 -0
- package/dist/workflows/validation.d.ts.map +1 -0
- package/dist/workflows/validation.js +340 -0
- package/dist/workflows/validation.js.map +1 -0
- package/dist-esm/client/SogniClientWrapper.js +877 -0
- package/dist-esm/client/SogniClientWrapper.js.map +1 -0
- package/dist-esm/contracts/backboneDurableWorkflow.js +90 -0
- package/dist-esm/contracts/backboneDurableWorkflow.js.map +1 -0
- package/dist-esm/contracts/backboneToolCatalog.js +59 -0
- package/dist-esm/contracts/backboneToolCatalog.js.map +1 -0
- package/dist-esm/contracts/composeWorkflowTypes.js +2 -0
- package/dist-esm/contracts/composeWorkflowTypes.js.map +1 -0
- package/dist-esm/contracts/data/costEstimation.js +18 -0
- package/dist-esm/contracts/data/costEstimation.js.map +1 -0
- package/dist-esm/contracts/data/gatingPolicies.js +214 -0
- package/dist-esm/contracts/data/gatingPolicies.js.map +1 -0
- package/dist-esm/contracts/data/gatingPoliciesToolSurface.js +57 -0
- package/dist-esm/contracts/data/gatingPoliciesToolSurface.js.map +1 -0
- package/dist-esm/contracts/data/index.js +23 -0
- package/dist-esm/contracts/data/index.js.map +1 -0
- package/dist-esm/contracts/data/promptContracts.js +1169 -0
- package/dist-esm/contracts/data/promptContracts.js.map +1 -0
- package/dist-esm/contracts/data/repairRecipes.js +193 -0
- package/dist-esm/contracts/data/repairRecipes.js.map +1 -0
- package/dist-esm/contracts/data/toolCatalog.js +122 -0
- package/dist-esm/contracts/data/toolCatalog.js.map +1 -0
- package/dist-esm/contracts/data/toolCostMetadata.js +277 -0
- package/dist-esm/contracts/data/toolCostMetadata.js.map +1 -0
- package/dist-esm/contracts/data/toolPermissions.js +70 -0
- package/dist-esm/contracts/data/toolPermissions.js.map +1 -0
- package/dist-esm/contracts/evaluators.js +463 -0
- package/dist-esm/contracts/evaluators.js.map +1 -0
- package/dist-esm/contracts/hostedComposition.js +128 -0
- package/dist-esm/contracts/hostedComposition.js.map +1 -0
- package/dist-esm/contracts/hostedToolValidation.js +296 -0
- package/dist-esm/contracts/hostedToolValidation.js.map +1 -0
- package/dist-esm/contracts/idLoraPrompt.js +72 -0
- package/dist-esm/contracts/idLoraPrompt.js.map +1 -0
- package/dist-esm/contracts/imagePrompt.js +143 -0
- package/dist-esm/contracts/imagePrompt.js.map +1 -0
- package/dist-esm/contracts/index.js +27 -0
- package/dist-esm/contracts/index.js.map +1 -0
- package/dist-esm/contracts/musicComposition.js +182 -0
- package/dist-esm/contracts/musicComposition.js.map +1 -0
- package/dist-esm/contracts/promptContract.js +34 -0
- package/dist-esm/contracts/promptContract.js.map +1 -0
- package/dist-esm/contracts/promptOverrideMarker.js +2 -0
- package/dist-esm/contracts/promptOverrideMarker.js.map +1 -0
- package/dist-esm/contracts/randomThemes.js +154 -0
- package/dist-esm/contracts/randomThemes.js.map +1 -0
- package/dist-esm/contracts/registry.js +100 -0
- package/dist-esm/contracts/registry.js.map +1 -0
- package/dist-esm/contracts/repairRecipe.js +35 -0
- package/dist-esm/contracts/repairRecipe.js.map +1 -0
- package/dist-esm/contracts/storyboard.js +4 -0
- package/dist-esm/contracts/storyboard.js.map +1 -0
- package/dist-esm/contracts/telemetry.js +33 -0
- package/dist-esm/contracts/telemetry.js.map +1 -0
- package/dist-esm/contracts/toolGatingPolicy.js +60 -0
- package/dist-esm/contracts/toolGatingPolicy.js.map +1 -0
- package/dist-esm/contracts/toolPromptMarkers.js +10 -0
- package/dist-esm/contracts/toolPromptMarkers.js.map +1 -0
- package/dist-esm/contracts/toolSurface.js +110 -0
- package/dist-esm/contracts/toolSurface.js.map +1 -0
- package/dist-esm/contracts/turnPolicy.js +13 -0
- package/dist-esm/contracts/turnPolicy.js.map +1 -0
- package/dist-esm/contracts/videoComposition.js +216 -0
- package/dist-esm/contracts/videoComposition.js.map +1 -0
- package/dist-esm/index.js +7 -0
- package/dist-esm/index.js.map +1 -0
- package/dist-esm/media/aspectRatio.js +65 -0
- package/dist-esm/media/aspectRatio.js.map +1 -0
- package/dist-esm/media/audioReference.js +186 -0
- package/dist-esm/media/audioReference.js.map +1 -0
- package/dist-esm/media/cameraAngle.js +41 -0
- package/dist-esm/media/cameraAngle.js.map +1 -0
- package/dist-esm/media/characterSheet.js +48 -0
- package/dist-esm/media/characterSheet.js.map +1 -0
- package/dist-esm/media/danceMontage.js +29 -0
- package/dist-esm/media/danceMontage.js.map +1 -0
- package/dist-esm/media/enhancementProfiles.js +219 -0
- package/dist-esm/media/enhancementProfiles.js.map +1 -0
- package/dist-esm/media/generationJob.js +87 -0
- package/dist-esm/media/generationJob.js.map +1 -0
- package/dist-esm/media/gptImage.js +150 -0
- package/dist-esm/media/gptImage.js.map +1 -0
- package/dist-esm/media/imageDimensions.js +59 -0
- package/dist-esm/media/imageDimensions.js.map +1 -0
- package/dist-esm/media/index.js +16 -0
- package/dist-esm/media/index.js.map +1 -0
- package/dist-esm/media/musicSettings.js +230 -0
- package/dist-esm/media/musicSettings.js.map +1 -0
- package/dist-esm/media/vendorModelPremium.js +81 -0
- package/dist-esm/media/vendorModelPremium.js.map +1 -0
- package/dist-esm/media/videoAppSettings.js +125 -0
- package/dist-esm/media/videoAppSettings.js.map +1 -0
- package/dist-esm/media/videoContentLimit.js +162 -0
- package/dist-esm/media/videoContentLimit.js.map +1 -0
- package/dist-esm/media/videoReference.js +72 -0
- package/dist-esm/media/videoReference.js.map +1 -0
- package/dist-esm/media/videoSettings.js +191 -0
- package/dist-esm/media/videoSettings.js.map +1 -0
- package/dist-esm/package.json +3 -0
- package/dist-esm/public-skill-runtime/index.js +6294 -0
- package/dist-esm/public-skill-runtime/index.js.map +1 -0
- package/dist-esm/replay/index.js +3 -0
- package/dist-esm/replay/index.js.map +1 -0
- package/dist-esm/replay/redact.js +102 -0
- package/dist-esm/replay/redact.js.map +1 -0
- package/dist-esm/replay/types.js +20 -0
- package/dist-esm/replay/types.js.map +1 -0
- package/dist-esm/runtime/chatTypes.js +2 -0
- package/dist-esm/runtime/chatTypes.js.map +1 -0
- package/dist-esm/runtime/durableWorkflowClient.js +295 -0
- package/dist-esm/runtime/durableWorkflowClient.js.map +1 -0
- package/dist-esm/runtime/index.js +2 -0
- package/dist-esm/runtime/index.js.map +1 -0
- package/dist-esm/skills/asset_reference_management/index.js +3 -0
- package/dist-esm/skills/asset_reference_management/index.js.map +1 -0
- package/dist-esm/skills/asset_reference_management/manifest.js +228 -0
- package/dist-esm/skills/asset_reference_management/manifest.js.map +1 -0
- package/dist-esm/skills/asset_reference_management/modelRefRegistry.js +129 -0
- package/dist-esm/skills/asset_reference_management/modelRefRegistry.js.map +1 -0
- package/dist-esm/skills/asset_reference_management/types.js +2 -0
- package/dist-esm/skills/asset_reference_management/types.js.map +1 -0
- package/dist-esm/tools/definitions/add-subtitles/definition.js +80 -0
- package/dist-esm/tools/definitions/add-subtitles/definition.js.map +1 -0
- package/dist-esm/tools/definitions/animate-photo/definition.js +121 -0
- package/dist-esm/tools/definitions/animate-photo/definition.js.map +1 -0
- package/dist-esm/tools/definitions/apply-style/definition.js +47 -0
- package/dist-esm/tools/definitions/apply-style/definition.js.map +1 -0
- package/dist-esm/tools/definitions/change-angle/definition.js +46 -0
- package/dist-esm/tools/definitions/change-angle/definition.js.map +1 -0
- package/dist-esm/tools/definitions/dance-montage/dances.js +86 -0
- package/dist-esm/tools/definitions/dance-montage/dances.js.map +1 -0
- package/dist-esm/tools/definitions/dance-montage/definition.js +42 -0
- package/dist-esm/tools/definitions/dance-montage/definition.js.map +1 -0
- package/dist-esm/tools/definitions/edit-image/definition.js +125 -0
- package/dist-esm/tools/definitions/edit-image/definition.js.map +1 -0
- package/dist-esm/tools/definitions/extend-video/definition.js +48 -0
- package/dist-esm/tools/definitions/extend-video/definition.js.map +1 -0
- package/dist-esm/tools/definitions/generate-image/definition.js +104 -0
- package/dist-esm/tools/definitions/generate-image/definition.js.map +1 -0
- package/dist-esm/tools/definitions/generate-music/definition.js +72 -0
- package/dist-esm/tools/definitions/generate-music/definition.js.map +1 -0
- package/dist-esm/tools/definitions/generate-video/definition.js +117 -0
- package/dist-esm/tools/definitions/generate-video/definition.js.map +1 -0
- package/dist-esm/tools/definitions/index.js +41 -0
- package/dist-esm/tools/definitions/index.js.map +1 -0
- package/dist-esm/tools/definitions/orbit-video/definition.js +100 -0
- package/dist-esm/tools/definitions/orbit-video/definition.js.map +1 -0
- package/dist-esm/tools/definitions/overlay-video/definition.js +139 -0
- package/dist-esm/tools/definitions/overlay-video/definition.js.map +1 -0
- package/dist-esm/tools/definitions/refine-result/definition.js +53 -0
- package/dist-esm/tools/definitions/refine-result/definition.js.map +1 -0
- package/dist-esm/tools/definitions/replace-video-segment/definition.js +62 -0
- package/dist-esm/tools/definitions/replace-video-segment/definition.js.map +1 -0
- package/dist-esm/tools/definitions/restore-photo/definition.js +55 -0
- package/dist-esm/tools/definitions/restore-photo/definition.js.map +1 -0
- package/dist-esm/tools/definitions/sound-to-video/definition.js +88 -0
- package/dist-esm/tools/definitions/sound-to-video/definition.js.map +1 -0
- package/dist-esm/tools/definitions/stitch-video/definition.js +86 -0
- package/dist-esm/tools/definitions/stitch-video/definition.js.map +1 -0
- package/dist-esm/tools/definitions/types.js +2 -0
- package/dist-esm/tools/definitions/types.js.map +1 -0
- package/dist-esm/tools/definitions/video-to-video/definition.js +98 -0
- package/dist-esm/tools/definitions/video-to-video/definition.js.map +1 -0
- package/dist-esm/tools/index.js +15 -0
- package/dist-esm/tools/index.js.map +1 -0
- package/dist-esm/tools/normalizeArgs.js +37 -0
- package/dist-esm/tools/normalizeArgs.js.map +1 -0
- package/dist-esm/tools/result.js +31 -0
- package/dist-esm/tools/result.js.map +1 -0
- package/dist-esm/tools/shared/downloadFilename.js +147 -0
- package/dist-esm/tools/shared/downloadFilename.js.map +1 -0
- package/dist-esm/tools/shared/errorClassification.js +74 -0
- package/dist-esm/tools/shared/errorClassification.js.map +1 -0
- package/dist-esm/tools/shared/imageEncoding.js +8 -0
- package/dist-esm/tools/shared/imageEncoding.js.map +1 -0
- package/dist-esm/tools/shared/llmHelpers.js +137 -0
- package/dist-esm/tools/shared/llmHelpers.js.map +1 -0
- package/dist-esm/tools/shared/modelRegistry.js +91 -0
- package/dist-esm/tools/shared/modelRegistry.js.map +1 -0
- package/dist-esm/tools/shared/policyChecks.js +73 -0
- package/dist-esm/tools/shared/policyChecks.js.map +1 -0
- package/dist-esm/tools/shared/promptRefinementCache.js +70 -0
- package/dist-esm/tools/shared/promptRefinementCache.js.map +1 -0
- package/dist-esm/tools/shared/promptSanitizer.js +70 -0
- package/dist-esm/tools/shared/promptSanitizer.js.map +1 -0
- package/dist-esm/tools/shared/seedancePolicyErrors.js +232 -0
- package/dist-esm/tools/shared/seedancePolicyErrors.js.map +1 -0
- package/dist-esm/tools/shared/slotFailureSummary.js +60 -0
- package/dist-esm/tools/shared/slotFailureSummary.js.map +1 -0
- package/dist-esm/tools/shared/visionDescriptionCache.js +29 -0
- package/dist-esm/tools/shared/visionDescriptionCache.js.map +1 -0
- package/dist-esm/types/index.js +31 -0
- package/dist-esm/types/index.js.map +1 -0
- package/dist-esm/utils/errors.js +86 -0
- package/dist-esm/utils/errors.js.map +1 -0
- package/dist-esm/utils/helpers.js +419 -0
- package/dist-esm/utils/helpers.js.map +1 -0
- package/dist-esm/workflows/bindings.js +182 -0
- package/dist-esm/workflows/bindings.js.map +1 -0
- package/dist-esm/workflows/executor-ports.js +2 -0
- package/dist-esm/workflows/executor-ports.js.map +1 -0
- package/dist-esm/workflows/executor.js +522 -0
- package/dist-esm/workflows/executor.js.map +1 -0
- package/dist-esm/workflows/index.js +7 -0
- package/dist-esm/workflows/index.js.map +1 -0
- package/dist-esm/workflows/summarize.js +51 -0
- package/dist-esm/workflows/summarize.js.map +1 -0
- package/dist-esm/workflows/types.js +2 -0
- package/dist-esm/workflows/types.js.map +1 -0
- package/dist-esm/workflows/validation.js +330 -0
- package/dist-esm/workflows/validation.js.map +1 -0
- package/media/index.d.ts +1 -0
- package/media/index.js +2 -0
- package/package.json +134 -0
- package/public-skill-runtime/index.d.ts +1 -0
- package/public-skill-runtime/index.js +2 -0
- package/replay/index.d.ts +1 -0
- package/replay/index.js +2 -0
- package/runtime/index.d.ts +1 -0
- package/runtime/index.js +2 -0
- package/skills/asset_reference_management/index.d.ts +1 -0
- package/skills/asset_reference_management/index.js +2 -0
- package/tools/index.d.ts +1 -0
- package/tools/index.js +2 -0
- package/workflows/index.d.ts +1 -0
- package/workflows/index.js +2 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { LITERAL_PROMPT_OVERRIDE } from '../../../contracts/promptOverrideMarker.js';
|
|
2
|
+
export const definition = {
|
|
3
|
+
type: 'function',
|
|
4
|
+
function: {
|
|
5
|
+
name: 'generate_music',
|
|
6
|
+
description: 'Generate music from a text description. Creates original songs with optional lyrics, BPM, key signature, and duration control. Use when the user wants to create music, a song, a beat, a melody, background music, or any audio content.',
|
|
7
|
+
parameters: {
|
|
8
|
+
type: 'object',
|
|
9
|
+
properties: {
|
|
10
|
+
prompt: {
|
|
11
|
+
type: 'string',
|
|
12
|
+
description: `Genre, mood, and style description for the music. Be specific about musical characteristics.
|
|
13
|
+
|
|
14
|
+
${LITERAL_PROMPT_OVERRIDE}
|
|
15
|
+
|
|
16
|
+
Examples:
|
|
17
|
+
- "upbeat electronic dance music with driving bass and synth arpeggios"
|
|
18
|
+
- "mellow jazz ballad with soft piano, brushed drums, and walking bass"
|
|
19
|
+
- "epic orchestral soundtrack with soaring strings and powerful brass"
|
|
20
|
+
- "lo-fi hip hop beat with vinyl crackle, muted keys, and chill vibes"
|
|
21
|
+
- "acoustic folk song with fingerpicked guitar and warm harmonies"
|
|
22
|
+
|
|
23
|
+
Include:
|
|
24
|
+
- Genre (rock, jazz, electronic, classical, hip-hop, etc.)
|
|
25
|
+
- Mood (happy, melancholic, energetic, relaxing, epic, etc.)
|
|
26
|
+
- Instruments (piano, guitar, drums, synth, strings, etc.)
|
|
27
|
+
- Style descriptors (driving, mellow, atmospheric, punchy, etc.)
|
|
28
|
+
|
|
29
|
+
BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax to vary ONE dimension across separate tracks. Lock in any genre/mood/instruments the user specified, vary the rest. Example: "{lo-fi hip hop beat with muted keys|jazz piano trio with brushed drums|ambient electronic with soft pads} with warm reverb and vinyl texture".`,
|
|
30
|
+
},
|
|
31
|
+
duration: {
|
|
32
|
+
type: 'number',
|
|
33
|
+
description: 'Duration in seconds. Default: 30. Range: 10-600 (10 seconds to 10 minutes). Short clips: 10-30s. Standard songs: 120-300s.',
|
|
34
|
+
minimum: 10,
|
|
35
|
+
maximum: 600,
|
|
36
|
+
},
|
|
37
|
+
bpm: {
|
|
38
|
+
type: 'number',
|
|
39
|
+
description: 'Beats per minute / tempo. Default: 120. Range: 30-300. Slow ballad: 60-80. Mid-tempo: 90-120. Upbeat: 120-140. Fast dance: 140-180. Very fast: 180+.',
|
|
40
|
+
minimum: 30,
|
|
41
|
+
maximum: 300,
|
|
42
|
+
},
|
|
43
|
+
keyscale: {
|
|
44
|
+
type: 'string',
|
|
45
|
+
description: 'Musical key and scale. E.g., "C major", "A minor", "F# minor", "Bb major". Default: "C major". Only set when the user specifies a key or when a particular mood calls for it (minor keys for sad/dark, major for happy/bright).',
|
|
46
|
+
},
|
|
47
|
+
lyrics: {
|
|
48
|
+
type: 'string',
|
|
49
|
+
description: 'Song lyrics. Optional — omit for instrumental music. Format: write lyrics naturally with line breaks. The model will attempt to sing these lyrics with the generated music. Works best with clear, rhythmic phrasing that matches the BPM.',
|
|
50
|
+
},
|
|
51
|
+
model: {
|
|
52
|
+
type: 'string',
|
|
53
|
+
enum: ['turbo', 'sft'],
|
|
54
|
+
description: 'ACE-Step model variant. "turbo" (default): Higher quality audio generation with 4-16 steps and half the cost. Always use turbo unless the user explicitly requests the SFT model. "sft": Experimental model with lower audio quality but very strong lyric handling. 10-200 steps, full cost. Only use when the user specifically asks for SFT. Default: "turbo".',
|
|
55
|
+
},
|
|
56
|
+
timesig: {
|
|
57
|
+
type: 'number',
|
|
58
|
+
enum: [2, 3, 4, 6],
|
|
59
|
+
description: 'Time signature (beats per measure). 4 = 4/4 time (default, most common). 3 = 3/4 time (waltz). 2 = 2/4 time (march). 6 = 6/8 time (compound). Default: 4.',
|
|
60
|
+
},
|
|
61
|
+
numberOfVariations: {
|
|
62
|
+
type: 'number',
|
|
63
|
+
description: 'Number of variations (1-16). Use 1 unless user requests multiple. Default: 1.',
|
|
64
|
+
minimum: 1,
|
|
65
|
+
maximum: 16,
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
required: ['prompt'],
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/generate-music/definition.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAErF,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,2OAA2O;QAC7O,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,uBAAuB;;;;;;;;;;;;;;;sVAe6T;iBAC7U;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4HAA4H;oBAC9H,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE,GAAG;iBACb;gBACD,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,sJAAsJ;oBACxJ,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE,GAAG;iBACb;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,iOAAiO;iBACpO;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4OAA4O;iBAC/O;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;oBACtB,WAAW,EACT,mWAAmW;iBACtW;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBAClB,WAAW,EACT,2JAA2J;iBAC9J;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+EAA+E;oBACjF,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { GENERATE_VIDEO_SKIP_PROMPT_PROCESSING_DESCRIPTION, LITERAL_VIDEO_PROMPT_OVERRIDE, SEEDANCE_EXPAND_PROMPT_DESCRIPTION, SEEDANCE_TOOL_MULTIMODAL_REFERENCE_GUIDANCE, } from '../../../contracts/toolPromptMarkers.js';
|
|
2
|
+
import { ASPECT_RATIO_DESCRIPTION } from '../../../media/index.js';
|
|
3
|
+
export const definition = {
|
|
4
|
+
type: "function",
|
|
5
|
+
function: {
|
|
6
|
+
name: "generate_video",
|
|
7
|
+
description: 'Generate a video from text or Seedance multimodal references. LTX 2.3 generates audio natively (dialogue, sounds, ambient music) — describe audio in the prompt. If the user provides exact speech, include it in double quotes; if they only imply speech, describe the performance and voice without inventing quoted words. Never use placeholders such as "while speaking", "dialogue begins", "explaining", or "final line lands". PERSONA VOICE: Only when the user explicitly asks to use/clone a registered persona voice clip, call resolve_personas first, then set voicePersonaName to select which persona\'s voice clip to use. Do not set voicePersonaName for ordinary character dialogue or inferred voices; describe those voices in the prompt for native LTX audio. For cross-persona narration (e.g. David narrates a video of Aleyna), resolve both personas and set voicePersonaName to the narrator only if that registered voice was requested. Persona voice requires ltx23 (WAN 2.2 does not support voice identity). For non-Seedance syncing to a specific song or audio track, use sound_to_video instead. For non-Seedance animation from a locked source photo, use animate_photo. Do NOT use for My Personas unless generating a Seedance reference-based video — standard persona videos use resolve_personas → edit_image → animate_photo. SEEDANCE DEFAULT: For seedance2 or seedance2-fast, default to exactly one 4-15s video unless the user explicitly asks for multiple separate outputs. Multiple beats, shots, or scene descriptions in one up-to-15s Seedance prompt are still one video. If the user requests one continuous Seedance video longer than 15s, preserve the requested total duration in the prompt/context; chat orchestration should split it into supported segment renders and stitch them instead of clamping it to a 15s excerpt. Uploaded/generated storyboard, shot-sheet, or trailer-concept images used as Seedance references should become one Seedance generate_video call by default; do not extract panels with edit_image and do not animate the storyboard sheet with LTX unless the user explicitly asks for separate non-Seedance clips. Seedance loose image, video, and audio references go through this tool; do not use animate_photo sourceImageIndex/frameRole/endImageIndex for Seedance. If an uploaded video is the source clip to transform, upscale, enhance, restyle, or remaster, use video_to_video with controlMode="seedance-v2v" instead of generate_video referenceVideoIndices. If the uploaded audio is the primary sync target, lip-sync target, or requested as sound-to-video/audio-sync, use sound_to_video with videoModel="seedance2" instead of this tool. Use referenceAudioIndices here only when audio is a loose reference under an image/video-anchored Seedance shot. For Seedance, every image — first frame, last frame, or loose reference — is passed through referenceImageIndices (auto-uploaded as referenceImageUrls). Anchor frame intent in the prompt with @Image tags such as "Use @Image1 as the opening shot reference. Begin the video with a composition, subject placement, lighting, mood, and camera framing that closely match @Image1." (or @Image2 as the final shot reference). For seamless-loop or "first frame and last frame identical" requests with a single uploaded image, anchor it explicitly as both: "Use @Image1 as both the first frame and last frame so the video loops cleanly back to the opening composition." Assign each useful @Image/@Video/@Audio tag a role. APPROVED STORYBOARD PRODUCTION: When the user asks for a production workflow from an approved storyboard, the chat orchestrator should use the durable CampaignStoryboard contract: render the composite board, audit it, generate per-scene GPT Image 2 keyframes, then render Seedance scene clips and stitch them. Do not replace that with a generic storyboard-reference video unless the user asks for a fast draft. PARTIAL VIDEO EDITS: Do NOT call generate_video to re-render an existing rendered/uploaded video just to change part of it (the bumper, the intro, the end card, a single scene, the last few seconds, etc.). Use replace_video_segment for that — it preserves the unchanged portion, keeps the original audio outside the replaced window, and costs far less. Likewise use extend_video to add new time to the end without rewriting the rest. If the request is vague, ask about vision/mood/style first. Only call once you have clear creative intent.',
|
|
8
|
+
parameters: {
|
|
9
|
+
type: "object",
|
|
10
|
+
properties: {
|
|
11
|
+
prompt: {
|
|
12
|
+
type: "string",
|
|
13
|
+
description: `Write one flowing paragraph like a cinematographer describing a shot. Present tense, specific natural language. Longer clips need longer prompts; close-ups need more detail than wide shots.
|
|
14
|
+
|
|
15
|
+
${LITERAL_VIDEO_PROMPT_OVERRIDE}
|
|
16
|
+
|
|
17
|
+
STRUCTURE: shot/style → subject (age, clothing, hairstyle, distinguishing details) → environment, lighting, atmosphere → action beat by beat → camera movement → audio and dialogue.
|
|
18
|
+
|
|
19
|
+
CAST CONTINUITY: For screenplay, script, storyboard, commercial, series, or other longer-form video tasks with recurring characters, use stable character names and repeat the same visual anchors every time they appear (age range, build, hairstyle, outfit silhouette, color palette, signature prop/accessory, posture, voice). Do not rename, merge, redesign, or drift characters between scenes unless the user asks.
|
|
20
|
+
|
|
21
|
+
MOTION PACING: Scale complexity to duration. <=6s: 1 main action beat + 1 simple camera move. Around 10s: 2-3 clear action beats + 1 camera move. >10s: up to 4 action beats in clear sequence. Prefer fewer readable beats over dense micro-actions, especially in short clips.
|
|
22
|
+
|
|
23
|
+
BLOCKING: Direct the layout like scene blocking. State left/right placement, foreground/background, facing toward/away, and relative distance when multiple subjects or important objects are involved.
|
|
24
|
+
|
|
25
|
+
ACTION: Drive motion with concrete verbs. Specify who moves, what moves, how it moves, and what the camera does. Avoid generic phrases like "comes alive."
|
|
26
|
+
|
|
27
|
+
DIALOGUE: Put user-provided spoken lines in double quotes. For screenplay-style or longer-form tasks, prefix each spoken line with a stable speaker tag outside the quotes, e.g. CHARACTER: "We made it." Break long speech into short quoted phrases with acting beats between them (gestures, pauses, glances). If the user asks for speech but provides no exact words, describe the visible delivery, voice quality, and emotion without inventing quoted dialogue; ask only when exact wording is the point of the request. Never write placeholders such as "while speaking", "dialogue begins", "explaining", or "final line lands". Show emotion through visible behavior — not "she is sad", instead "she looks down, pauses, and her voice cracks". QUOTING RULE: ONLY use double quotes for spoken dialogue. Never quote on-screen text, overlay text, titles, captions, signs, or any visual text — describe them without quotes.
|
|
28
|
+
|
|
29
|
+
STORYBOARD TEXT: For storyboard references, structural headings, section numbers, slide titles, panel titles, and captions may become short audio-only narration/voiceover or key-message beats, but they are not subtitles, title cards, lower thirds, or visible overlays unless the user explicitly asks for visible text/on-screen text/title card/subtitle/lower third/signage/CTA. Do not concatenate storyboard labels into run-on voiceover; use separate brief phrases with pauses.
|
|
30
|
+
|
|
31
|
+
AUDIO: Prompt sound intentionally — voice quality, volume, room tone, ambience, music, weather, footsteps. Include language or accent if relevant. Useful voice/volume anchors: whisper, mutter, shout, scream, energetic announcer, resonant voice with gravitas, distorted radio-style, robotic monotone, childlike curiosity.
|
|
32
|
+
|
|
33
|
+
CAMERA: Cinematic terms — close-up, tracking shot, dolly in, handheld, slow arc, static frame. Describe movement relative to subject.
|
|
34
|
+
|
|
35
|
+
For specific characters (movies, TV): describe visual appearance — don't rely on names alone.
|
|
36
|
+
|
|
37
|
+
For complex/creative scenes (characters, dialogue, skits): capture the full creative intent. The system auto-expands into a detailed prompt.
|
|
38
|
+
|
|
39
|
+
AVOID: Vague prompts, too many characters at once, conflicting lighting logic, readable text or logos, abstract emotions with no visible behavior, rigid numeric constraints (exact angles, counts, speeds).
|
|
40
|
+
|
|
41
|
+
BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax. Lock in any camera/subject/style the user specified, vary the rest. Example: "slow dolly in on a city street {at dawn with golden light|during a rainstorm|at night with neon reflections}".`,
|
|
42
|
+
},
|
|
43
|
+
expandPrompt: {
|
|
44
|
+
type: "boolean",
|
|
45
|
+
description: SEEDANCE_EXPAND_PROMPT_DESCRIPTION,
|
|
46
|
+
},
|
|
47
|
+
skipPromptProcessing: {
|
|
48
|
+
type: "boolean",
|
|
49
|
+
description: GENERATE_VIDEO_SKIP_PROMPT_PROCESSING_DESCRIPTION,
|
|
50
|
+
},
|
|
51
|
+
duration: {
|
|
52
|
+
type: "number",
|
|
53
|
+
description: "Video duration in seconds. Default: 5. Range: 2-20. Use when the user explicitly requests a specific length.",
|
|
54
|
+
minimum: 2,
|
|
55
|
+
maximum: 20,
|
|
56
|
+
},
|
|
57
|
+
negativePrompt: {
|
|
58
|
+
type: "string",
|
|
59
|
+
description: "Non-Seedance only. Optional negative prompt for video models that expose a separate negative-prompt field. Do not set for seedance2 or seedance2-fast; rewrite user-provided Seedance avoid/ban/no-X requests as positive visual instructions in prompt.",
|
|
60
|
+
},
|
|
61
|
+
videoModel: {
|
|
62
|
+
type: "string",
|
|
63
|
+
enum: ["ltx23", "wan22", "seedance2", "seedance2-fast"],
|
|
64
|
+
description: 'Video model. "ltx23" (default): LTX 2.3 with native audio; Fast/HQ use the distilled 8-step worker and Default Media Quality Pro uses the non-distilled dev worker. "wan22": Fast 4-step, simple motion, no audio. Default: "ltx23". For ordinary Seedance 2.0 video requests, use seedance2-fast by default: 720p unless Default Media Quality is Fast, which should use 480p. Use seedance2 when the user explicitly asks for 1080p / the non-standard full-quality version, or whenever a generated/uploaded video storyboard image is the Seedance reference unless the user explicitly asks for a draft or the Seedance fast model/version. Storyboard-reference Seedance requests default to High Quality: set targetResolution 720 even when Default Media Quality is Fast, unless the user explicitly asks for another named resolution such as 480p. Default Media Quality Pro alone is not an explicit 1080p request; keep default Seedance resolution at 720p unless the user asks for 1080p or another resolution. ' +
|
|
65
|
+
SEEDANCE_TOOL_MULTIMODAL_REFERENCE_GUIDANCE,
|
|
66
|
+
},
|
|
67
|
+
generateAudio: {
|
|
68
|
+
type: "boolean",
|
|
69
|
+
description: "Seedance only. Whether Seedance should generate a native audio track. Omit by default; set false only when the user explicitly asks for silent output or no audio.",
|
|
70
|
+
},
|
|
71
|
+
referenceImageIndices: {
|
|
72
|
+
type: "array",
|
|
73
|
+
items: { type: "number" },
|
|
74
|
+
description: "Seedance only. Image references for @Image tags. Use negative indices for uploaded images (-1 first upload, -2 second upload) and non-negative indices for generated image results. Omit by default: uploaded images are auto-forwarded as @Image references. Anchor frame intent in the prompt with @Image tags: \"Use @Image1 as the opening shot reference. Begin the video with a composition, subject placement, lighting, mood, and camera framing that closely match @Image1.\" (or @Image2 as the final shot reference). For seamless-loop or \"first frame and last frame identical\" requests with a single uploaded image, anchor it explicitly as both: \"Use @Image1 as both the first frame and last frame so the video loops cleanly back to the opening composition.\" Do not use animate_photo sourceImageIndex/frameRole/endImageIndex for Seedance.",
|
|
75
|
+
},
|
|
76
|
+
referenceVideoIndices: {
|
|
77
|
+
type: "array",
|
|
78
|
+
items: { type: "number" },
|
|
79
|
+
description: 'Seedance only. Optional loose video references. Use negative indices for uploaded videos (-1 first uploaded video, -2 second uploaded video) and non-negative indices for generated video results. Omit by default: uploaded videos are auto-forwarded as @Video references. Set to choose a subset or include previously generated video URLs. Do not use this for uploaded source-video transforms, upscales, enhancements, restyles, or remasters; use video_to_video with controlMode="seedance-v2v" instead.',
|
|
80
|
+
},
|
|
81
|
+
referenceAudioIndices: {
|
|
82
|
+
type: "array",
|
|
83
|
+
items: { type: "number" },
|
|
84
|
+
description: 'Seedance only. Optional loose audio references. Use negative indices for uploaded audio files (-1 first uploaded audio, -2 second uploaded audio) and non-negative indices for generated audio results. Omit by default: uploaded audio is auto-forwarded as @Audio references when the Seedance request also has an image or video reference. Use this only for loose background, mood, timing, or style references under an image/video-anchored Seedance shot. If the uploaded audio is the primary sync target, lip-sync target, or requested as sound-to-video/audio-sync, use sound_to_video with videoModel="seedance2" instead. Audio-only Seedance requests are unsupported; use sound_to_video for uploaded-audio-only workflows.',
|
|
85
|
+
},
|
|
86
|
+
width: {
|
|
87
|
+
type: "number",
|
|
88
|
+
description: 'Video width in pixels. LTX 2.3: 640-3840. WAN: 480-1536. Default resolution depends on model and quality tier: LTX Fast about 720p and High/Pro about 1080p; WAN Fast uses 480p short side and High/Pro uses 720p short side. Set width only when the user specifies an exact width or orientation-qualified exact pixels. A bare named resolution like "720p resolution" is a short-side target, not an instruction to make landscape 1280x720. If the user gives only one exact dimension, set only that dimension and preserve/infer the sensible aspect ratio. User-requested exact dimensions override the default media quality. Mappings when orientation is explicit: 480p landscape=854x480, 480p portrait=480x854, 720p landscape=1280x720, 720p portrait=720x1280, 1080p landscape=1920x1080, 1080p portrait=1080x1920, 4K landscape=3840x2160. Non-step values are accepted when in bounds; LTX snaps to the nearest 64px step and WAN snaps to the nearest 16px step internally, so do not ask the user to adjust by a few pixels.',
|
|
89
|
+
},
|
|
90
|
+
height: {
|
|
91
|
+
type: "number",
|
|
92
|
+
description: 'Video height in pixels. LTX 2.3: 640-3840. WAN: 480-1536. Set height only when the user specifies an exact height or orientation-qualified exact pixels. A bare named resolution like "720p resolution" is a short-side target; do not convert it to landscape dimensions unless the user says landscape/horizontal/widescreen. If the user gives only one exact dimension, set only that dimension and preserve/infer the sensible aspect ratio. User-requested exact dimensions override Default Media Quality, including Pro. Non-step values are accepted when in bounds; LTX snaps to the nearest 64px step and WAN snaps to the nearest 16px step internally, so do not ask the user to adjust by a few pixels.',
|
|
93
|
+
},
|
|
94
|
+
targetResolution: {
|
|
95
|
+
type: "number",
|
|
96
|
+
description: 'Short-side video resolution target in pixels. Use when the user asks for a bare named resolution such as "480p", "720p", or "1080p" without exact pixels or an output orientation. Also set for default Seedance 2.0 requests: 480 when Default Media Quality is Fast, otherwise 720, including Pro unless the user explicitly asks for 1080p or another resolution. For generated/uploaded storyboard images used as Seedance references, default to 720 even when Default Media Quality is Fast; only use 480 when the user explicitly asks for 480p. This preserves/inherits the current video shape instead of forcing landscape. Do NOT set width, height, or exact-pixel aspectRatio for bare named resolution requests. If the user says "720p portrait" or "720p landscape", use exact width/height/aspectRatio instead.',
|
|
97
|
+
},
|
|
98
|
+
numberOfVariations: {
|
|
99
|
+
type: "number",
|
|
100
|
+
description: "Number of variations (1-16). Use 1 unless user explicitly requests multiple separate video outputs. For Seedance, default to 1 because each variation is an expensive separate render.",
|
|
101
|
+
minimum: 1,
|
|
102
|
+
maximum: 16,
|
|
103
|
+
},
|
|
104
|
+
aspectRatio: {
|
|
105
|
+
type: "string",
|
|
106
|
+
description: ASPECT_RATIO_DESCRIPTION,
|
|
107
|
+
},
|
|
108
|
+
voicePersonaName: {
|
|
109
|
+
type: "string",
|
|
110
|
+
description: 'ONLY when the user explicitly requests a registered/reference persona voice clip. Name of the persona whose voice clip to use as referenceAudioIdentity. Set this when the narrator/speaker is a different persona than the one described in the video (e.g. "David" narrates a scene featuring Aleyna), or to explicitly select a requested voice when multiple personas with voice clips are resolved. Do NOT set this for ordinary character dialogue, inferred voices, or personas without a voice clip — LTX 2.3 generates voice natively from the text prompt instead. Requires ltx23.',
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
required: ["prompt"],
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
//# sourceMappingURL=definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/generate-video/definition.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,iDAAiD,EACjD,6BAA6B,EAC7B,kCAAkC,EAClC,2CAA2C,GAC5C,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,m1IAAm1I;QACr1I,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;uQA0BwO;iBAC9P;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,kCAAkC;iBAChD;gBACD,oBAAoB,EAAE;oBACpB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,iDAAiD;iBAC/D;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,8GAA8G;oBAChH,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,0PAA0P;iBAC7P;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,CAAC;oBACvD,WAAW,EACT,i+BAAi+B;wBACj+B,2CAA2C;iBAC9C;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,oKAAoK;iBACvK;gBACD,qBAAqB,EAAE;oBACrB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EACT,w0BAAw0B;iBAC30B;gBACD,qBAAqB,EAAE;oBACrB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EACT,mfAAmf;iBACtf;gBACD,qBAAqB,EAAE;oBACrB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EACT,6sBAA6sB;iBAChtB;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,i/BAAi/B;iBACp/B;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,urBAAurB;iBAC1rB;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,kyBAAkyB;iBACryB;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,wLAAwL;oBAC1L,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wBAAwB;iBACtC;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,8jBAA8jB;iBACjkB;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { definition as generateImageDefinition } from './generate-image/definition.js';
|
|
2
|
+
import { definition as generateVideoDefinition } from './generate-video/definition.js';
|
|
3
|
+
import { definition as generateMusicDefinition } from './generate-music/definition.js';
|
|
4
|
+
import { definition as editImageDefinition } from './edit-image/definition.js';
|
|
5
|
+
import { definition as applyStyleDefinition } from './apply-style/definition.js';
|
|
6
|
+
import { definition as restorePhotoDefinition } from './restore-photo/definition.js';
|
|
7
|
+
import { definition as refineResultDefinition } from './refine-result/definition.js';
|
|
8
|
+
import { definition as animatePhotoDefinition } from './animate-photo/definition.js';
|
|
9
|
+
import { definition as changeAngleDefinition } from './change-angle/definition.js';
|
|
10
|
+
import { definition as videoToVideoDefinition } from './video-to-video/definition.js';
|
|
11
|
+
import { definition as stitchVideoDefinition, STITCH_TRANSITION_TYPES, } from './stitch-video/definition.js';
|
|
12
|
+
import { definition as orbitVideoDefinition } from './orbit-video/definition.js';
|
|
13
|
+
import { definition as danceMontageDefinition } from './dance-montage/definition.js';
|
|
14
|
+
import { definition as soundToVideoDefinition } from './sound-to-video/definition.js';
|
|
15
|
+
import { definition as extendVideoDefinition } from './extend-video/definition.js';
|
|
16
|
+
import { definition as replaceVideoSegmentDefinition } from './replace-video-segment/definition.js';
|
|
17
|
+
import { definition as overlayVideoDefinition, OVERLAY_POSITIONS, } from './overlay-video/definition.js';
|
|
18
|
+
import { definition as addSubtitlesDefinition, SUBTITLE_VERTICAL_POSITIONS, } from './add-subtitles/definition.js';
|
|
19
|
+
export { addSubtitlesDefinition, animatePhotoDefinition, applyStyleDefinition, changeAngleDefinition, danceMontageDefinition, editImageDefinition, extendVideoDefinition, generateImageDefinition, generateMusicDefinition, generateVideoDefinition, orbitVideoDefinition, overlayVideoDefinition, refineResultDefinition, replaceVideoSegmentDefinition, restorePhotoDefinition, soundToVideoDefinition, stitchVideoDefinition, videoToVideoDefinition, OVERLAY_POSITIONS, STITCH_TRANSITION_TYPES, SUBTITLE_VERTICAL_POSITIONS, };
|
|
20
|
+
export const generationToolDefinitions = [
|
|
21
|
+
generateImageDefinition,
|
|
22
|
+
generateVideoDefinition,
|
|
23
|
+
generateMusicDefinition,
|
|
24
|
+
editImageDefinition,
|
|
25
|
+
applyStyleDefinition,
|
|
26
|
+
restorePhotoDefinition,
|
|
27
|
+
refineResultDefinition,
|
|
28
|
+
animatePhotoDefinition,
|
|
29
|
+
changeAngleDefinition,
|
|
30
|
+
videoToVideoDefinition,
|
|
31
|
+
stitchVideoDefinition,
|
|
32
|
+
orbitVideoDefinition,
|
|
33
|
+
danceMontageDefinition,
|
|
34
|
+
soundToVideoDefinition,
|
|
35
|
+
extendVideoDefinition,
|
|
36
|
+
replaceVideoSegmentDefinition,
|
|
37
|
+
overlayVideoDefinition,
|
|
38
|
+
addSubtitlesDefinition,
|
|
39
|
+
];
|
|
40
|
+
export { DANCE_PRESETS, resolveDancePresetForRequest } from './dance-montage/dances.js';
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/definitions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAAE,UAAU,IAAI,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAAE,UAAU,IAAI,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,UAAU,IAAI,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,UAAU,IAAI,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,UAAU,IAAI,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,UAAU,IAAI,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,IAAI,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EACL,UAAU,IAAI,qBAAqB,EACnC,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,UAAU,IAAI,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,UAAU,IAAI,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,UAAU,IAAI,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,IAAI,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACpG,OAAO,EACL,UAAU,IAAI,sBAAsB,EACpC,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,UAAU,IAAI,sBAAsB,EACpC,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,2BAA2B,GAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,mBAAmB;IACnB,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;IACtB,sBAAsB;IACtB,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;IACtB,qBAAqB;IACrB,6BAA6B;IAC7B,sBAAsB;IACtB,sBAAsB;CACsB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
export const definition = {
|
|
2
|
+
type: 'function',
|
|
3
|
+
function: {
|
|
4
|
+
name: 'orbit_video',
|
|
5
|
+
description: 'Create a 360-degree orbit video around a subject. This is a SELF-CONTAINED ' +
|
|
6
|
+
'pipeline — it automatically generates angle views (via change_angle), creates ' +
|
|
7
|
+
'transition video clips, and stitches them into one seamless looping video. ' +
|
|
8
|
+
'You only need ONE source image as the front view — either an uploaded image ' +
|
|
9
|
+
'or a previously generated result. If the user uploaded an image, call this ' +
|
|
10
|
+
'tool directly without generating anything first. Do NOT pre-generate multiple ' +
|
|
11
|
+
'angles or variations — this tool handles everything internally. ' +
|
|
12
|
+
'Use when the user asks for a "360 pan", "orbit", "rotate around", "spin ' +
|
|
13
|
+
'around", or "turntable" view.',
|
|
14
|
+
parameters: {
|
|
15
|
+
type: 'object',
|
|
16
|
+
properties: {
|
|
17
|
+
elevation: {
|
|
18
|
+
type: 'string',
|
|
19
|
+
enum: ['low-angle shot', 'eye-level shot', 'elevated shot', 'high-angle shot'],
|
|
20
|
+
description: 'Camera elevation for all angles. Default: "eye-level shot".',
|
|
21
|
+
},
|
|
22
|
+
distance: {
|
|
23
|
+
type: 'string',
|
|
24
|
+
enum: ['close-up', 'medium shot', 'wide shot'],
|
|
25
|
+
description: 'Camera distance for all angles. Default: "medium shot".',
|
|
26
|
+
},
|
|
27
|
+
prompt: {
|
|
28
|
+
type: 'string',
|
|
29
|
+
description: 'Describe the SUBJECT and ambient environment (for example, a concise ' +
|
|
30
|
+
'description of the visible subject, location, weather, props, and ambience). ' +
|
|
31
|
+
'Do NOT describe camera motion, rotation, panning, orbiting, ' +
|
|
32
|
+
'or 360-degree movement — camera motion is handled automatically. ' +
|
|
33
|
+
'Do NOT put spoken dialogue here — use the dialogue parameter instead. ' +
|
|
34
|
+
'Music is automatically suppressed — use generate_music separately.',
|
|
35
|
+
},
|
|
36
|
+
dialogue: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
description: 'Spoken dialogue or narration for a SINGLE segment of the orbit video. ' +
|
|
39
|
+
'This is applied ONLY to the segment specified by dialogueSegment (default: ' +
|
|
40
|
+
'first segment). All other segments get foley/ambient audio only. Keep it ' +
|
|
41
|
+
'brief — each segment is 2.5 seconds (~6 words max). If the user asks for ' +
|
|
42
|
+
'dialogue in "just the first segment" or "only at the start", put the speech ' +
|
|
43
|
+
'here and leave prompt for motion/foley only. If the user asks for dialogue ' +
|
|
44
|
+
'in multiple/every segment, use dialogues instead.',
|
|
45
|
+
},
|
|
46
|
+
dialogues: {
|
|
47
|
+
type: 'array',
|
|
48
|
+
items: { type: 'string' },
|
|
49
|
+
description: 'Per-segment spoken dialogue lines for multiple orbit transitions. Use this ' +
|
|
50
|
+
'when the user asks for dialogue in multiple segments, every turn, or before ' +
|
|
51
|
+
'each 90-degree turn. With the default standard 360° orbit there are 4 ' +
|
|
52
|
+
'transitions, so provide exactly 4 short lines in order. Each line should be ' +
|
|
53
|
+
'brief enough for a 2.5 second segment (~6 words max). Preserve real names ' +
|
|
54
|
+
'from the request or prior generated image; never invent placeholder speakers. ' +
|
|
55
|
+
'For "us"/"we"/couple requests, make the named people speak together. ' +
|
|
56
|
+
'Omit entries or use an empty string for ' +
|
|
57
|
+
'segments that should have foley/ambient audio only. Do NOT also put these ' +
|
|
58
|
+
'dialogue lines in prompt.',
|
|
59
|
+
},
|
|
60
|
+
dialogueSegment: {
|
|
61
|
+
type: 'number',
|
|
62
|
+
description: 'Which transition segment receives the dialogue (0-based index into the ' +
|
|
63
|
+
'transition sequence). 0 = first transition (default), last index = wrap-back ' +
|
|
64
|
+
'to front. With default angles there are 4 transitions (0-3). With custom ' +
|
|
65
|
+
'angles the count equals angles.length + 1. Only used when dialogue is provided.',
|
|
66
|
+
},
|
|
67
|
+
angles: {
|
|
68
|
+
type: 'array',
|
|
69
|
+
items: {
|
|
70
|
+
type: 'string',
|
|
71
|
+
enum: [
|
|
72
|
+
'front-right quarter view',
|
|
73
|
+
'right side view',
|
|
74
|
+
'back-right quarter view',
|
|
75
|
+
'back view',
|
|
76
|
+
'back-left quarter view',
|
|
77
|
+
'left side view',
|
|
78
|
+
'front-left quarter view',
|
|
79
|
+
],
|
|
80
|
+
},
|
|
81
|
+
description: 'OMIT THIS PARAMETER for standard 360° orbits — the default (3 angles ' +
|
|
82
|
+
'at 90° increments: right, back, left + source as front = 4 transitions) ' +
|
|
83
|
+
'works for nearly all requests. Only provide this when the user explicitly ' +
|
|
84
|
+
'asks for specific angles, a partial orbit, or extra-smooth rotation. ' +
|
|
85
|
+
'Each additional angle costs extra credits and generation time. ' +
|
|
86
|
+
'Values are clockwise azimuths between the source (front) and wrap-back.',
|
|
87
|
+
},
|
|
88
|
+
sourceImageIndex: {
|
|
89
|
+
type: 'number',
|
|
90
|
+
description: 'Which result image to orbit around (0-based). If the user picked a ' +
|
|
91
|
+
'1-based image number, subtract 1 and set this explicitly (number 3 -> 2). ' +
|
|
92
|
+
'Omit only when the user did not choose a specific prior result; then the ' +
|
|
93
|
+
'tool uses the latest result or original upload.',
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
required: [],
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/orbit-video/definition.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,6EAA6E;YAC7E,gFAAgF;YAChF,6EAA6E;YAC7E,8EAA8E;YAC9E,6EAA6E;YAC7E,gFAAgF;YAChF,kEAAkE;YAClE,0EAA0E;YAC1E,+BAA+B;QACjC,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,CAAC;oBAC9E,WAAW,EAAE,6DAA6D;iBAC3E;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC;oBAC9C,WAAW,EAAE,yDAAyD;iBACvE;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,uEAAuE;wBACvE,+EAA+E;wBAC/E,8DAA8D;wBAC9D,mEAAmE;wBACnE,wEAAwE;wBACxE,oEAAoE;iBACvE;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,wEAAwE;wBACxE,6EAA6E;wBAC7E,2EAA2E;wBAC3E,2EAA2E;wBAC3E,8EAA8E;wBAC9E,6EAA6E;wBAC7E,mDAAmD;iBACtD;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EACT,6EAA6E;wBAC7E,8EAA8E;wBAC9E,wEAAwE;wBACxE,8EAA8E;wBAC9E,4EAA4E;wBAC5E,gFAAgF;wBAChF,uEAAuE;wBACvE,0CAA0C;wBAC1C,4EAA4E;wBAC5E,2BAA2B;iBAC9B;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yEAAyE;wBACzE,+EAA+E;wBAC/E,2EAA2E;wBAC3E,iFAAiF;iBACpF;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE;4BACJ,0BAA0B;4BAC1B,iBAAiB;4BACjB,yBAAyB;4BACzB,WAAW;4BACX,wBAAwB;4BACxB,gBAAgB;4BAChB,yBAAyB;yBAC1B;qBACF;oBACD,WAAW,EACT,uEAAuE;wBACvE,0EAA0E;wBAC1E,4EAA4E;wBAC5E,uEAAuE;wBACvE,iEAAiE;wBACjE,yEAAyE;iBAC5E;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qEAAqE;wBACrE,4EAA4E;wBAC5E,2EAA2E;wBAC3E,iDAAiD;iBACpD;aACF;YACD,QAAQ,EAAE,EAAE;SACb;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
export const OVERLAY_POSITIONS = [
|
|
2
|
+
'top-left',
|
|
3
|
+
'top-center',
|
|
4
|
+
'top-right',
|
|
5
|
+
'center',
|
|
6
|
+
'bottom-left',
|
|
7
|
+
'bottom-center',
|
|
8
|
+
'bottom-right',
|
|
9
|
+
];
|
|
10
|
+
export const definition = {
|
|
11
|
+
type: 'function',
|
|
12
|
+
function: {
|
|
13
|
+
name: 'overlay_video',
|
|
14
|
+
description: 'Burn text and/or logo/watermark image overlays onto a previously rendered or uploaded video. ' +
|
|
15
|
+
'Use when the user asks to add a title, caption, label, watermark, brand logo, sponsor mark, lower-third, ' +
|
|
16
|
+
'tagline, sticker, or any persistent text/graphic over the existing video frames. ' +
|
|
17
|
+
'Multiple overlays can be supplied in one call (e.g. a corner logo plus a top-center title). ' +
|
|
18
|
+
'Each overlay can optionally be limited to a [startSeconds, endSeconds] time range. ' +
|
|
19
|
+
'When the user asks for an overlay to appear for a specific window (for example "2 seconds in the middle"), set startSeconds/endSeconds on the overlay item in the same call. ' +
|
|
20
|
+
'Negative startSeconds/endSeconds are relative to the end of the base video, so startSeconds=-2 with omitted endSeconds means "the last 2 seconds". ' +
|
|
21
|
+
'When replacing a video time window with an uploaded still image or screenshot, use an image overlay with widthPct=100 and fit="cover" for that window. ' +
|
|
22
|
+
'This is a pure ffmpeg post-production op — it does not regenerate the video. ' +
|
|
23
|
+
'Do not use for generative intro/outro/bumper/end-card/start-card requests; those add or regenerate video time and should use extend_video or replace_video_segment. ' +
|
|
24
|
+
'Do not call it again just to refine default size/placement after it succeeds; finalize and wait for user feedback. ' +
|
|
25
|
+
'Do not use for animated typography, kinetic captions, or moving stickers; this lays down static overlays only.',
|
|
26
|
+
parameters: {
|
|
27
|
+
type: 'object',
|
|
28
|
+
properties: {
|
|
29
|
+
sourceVideoIndex: {
|
|
30
|
+
type: 'number',
|
|
31
|
+
description: 'Which video to overlay onto. Omit to use the most recent generated video, or the first uploaded video when no generated video exists. ' +
|
|
32
|
+
'Non-negative values are 0-based indices into prior generated video results. ' +
|
|
33
|
+
'Negative values reference uploaded videos: -1 = first uploaded video, -2 = second, etc., ' +
|
|
34
|
+
'falling back to the most recent generated video when no uploads exist.',
|
|
35
|
+
},
|
|
36
|
+
overlays: {
|
|
37
|
+
type: 'array',
|
|
38
|
+
minItems: 1,
|
|
39
|
+
description: 'Ordered list of overlays to burn in. Each overlay is rendered on top of all previous overlays. ' +
|
|
40
|
+
'Either kind="text" (with `text` and styling) or kind="image" (with `sourceImageIndex`).',
|
|
41
|
+
items: {
|
|
42
|
+
type: 'object',
|
|
43
|
+
properties: {
|
|
44
|
+
kind: {
|
|
45
|
+
type: 'string',
|
|
46
|
+
enum: ['text', 'image'],
|
|
47
|
+
description: 'Overlay kind. "text" renders drawtext; "image" composites an existing image asset.',
|
|
48
|
+
},
|
|
49
|
+
position: {
|
|
50
|
+
type: 'string',
|
|
51
|
+
enum: [...OVERLAY_POSITIONS],
|
|
52
|
+
description: 'Anchor position on the frame. Pixel offsets nudge inward; the renderer pads ' +
|
|
53
|
+
'each anchor by a small safe margin so overlays do not touch the frame edge.',
|
|
54
|
+
},
|
|
55
|
+
offsetX: {
|
|
56
|
+
type: 'number',
|
|
57
|
+
description: 'Optional horizontal offset in pixels. Positive = inward from the anchor edge.',
|
|
58
|
+
},
|
|
59
|
+
offsetY: {
|
|
60
|
+
type: 'number',
|
|
61
|
+
description: 'Optional vertical offset in pixels. Positive = inward from the anchor edge.',
|
|
62
|
+
},
|
|
63
|
+
startSeconds: {
|
|
64
|
+
type: 'number',
|
|
65
|
+
description: 'Show the overlay from this time. Default 0 (show from the start). ' +
|
|
66
|
+
'Negative values are relative to the end of the base video; startSeconds=-2 means start 2 seconds before the end.',
|
|
67
|
+
},
|
|
68
|
+
endSeconds: {
|
|
69
|
+
type: 'number',
|
|
70
|
+
description: 'Hide the overlay at this time. Default = full video duration. ' +
|
|
71
|
+
'Negative values are relative to the end of the base video.',
|
|
72
|
+
},
|
|
73
|
+
text: {
|
|
74
|
+
type: 'string',
|
|
75
|
+
description: 'Overlay text. Required when kind="text". Use plain text; line breaks are honored.',
|
|
76
|
+
},
|
|
77
|
+
fontSizePct: {
|
|
78
|
+
type: 'number',
|
|
79
|
+
minimum: 1,
|
|
80
|
+
maximum: 30,
|
|
81
|
+
description: 'Font size as a percentage of the video height. Default: 6 (≈ 43px on a 720p frame). ' +
|
|
82
|
+
'Only valid when kind="text".',
|
|
83
|
+
},
|
|
84
|
+
color: {
|
|
85
|
+
type: 'string',
|
|
86
|
+
description: 'Text fill color (CSS hex like "#FFFFFF" or named ffmpeg color). Default "#FFFFFF". ' +
|
|
87
|
+
'Only valid when kind="text".',
|
|
88
|
+
},
|
|
89
|
+
outlineColor: {
|
|
90
|
+
type: 'string',
|
|
91
|
+
description: 'Text outline color. Default "#000000" with a thin stroke for legibility. ' +
|
|
92
|
+
'Only valid when kind="text".',
|
|
93
|
+
},
|
|
94
|
+
backgroundColor: {
|
|
95
|
+
type: ['string', 'null'],
|
|
96
|
+
description: 'Optional rgba background pill behind the text (e.g. "rgba(0,0,0,0.5)"). null = no box. ' +
|
|
97
|
+
'Only valid when kind="text".',
|
|
98
|
+
},
|
|
99
|
+
fontWeight: {
|
|
100
|
+
type: 'string',
|
|
101
|
+
enum: ['normal', 'bold'],
|
|
102
|
+
description: 'Default "normal". Only valid when kind="text".',
|
|
103
|
+
},
|
|
104
|
+
sourceImageIndex: {
|
|
105
|
+
type: 'number',
|
|
106
|
+
description: 'Which image to overlay. Required when kind="image". ' +
|
|
107
|
+
'Non-negative values are 0-based indices into prior generated image results. ' +
|
|
108
|
+
'Negative values reference uploaded images in image-only order: -1 = first uploaded image, -2 = second, etc. ' +
|
|
109
|
+
'If the user uploaded one video and one logo image, the logo is sourceImageIndex=-1.',
|
|
110
|
+
},
|
|
111
|
+
widthPct: {
|
|
112
|
+
type: 'number',
|
|
113
|
+
minimum: 1,
|
|
114
|
+
maximum: 100,
|
|
115
|
+
description: 'Logo width as a percentage of the video width. Default: 15. ' +
|
|
116
|
+
'Only valid when kind="image".',
|
|
117
|
+
},
|
|
118
|
+
opacity: {
|
|
119
|
+
type: 'number',
|
|
120
|
+
minimum: 0,
|
|
121
|
+
maximum: 1,
|
|
122
|
+
description: 'Image overlay opacity, 0..1. Default 1.0 (fully opaque). Only valid when kind="image".',
|
|
123
|
+
},
|
|
124
|
+
fit: {
|
|
125
|
+
type: 'string',
|
|
126
|
+
enum: ['contain', 'cover'],
|
|
127
|
+
description: 'Image sizing mode. Default "contain" scales by widthPct and preserves the full overlay image. ' +
|
|
128
|
+
'"cover" scales/crops the image to cover the full video frame; use with widthPct=100 for screenshot/still-frame replacement windows.',
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
required: ['kind', 'position'],
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
required: ['overlays'],
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
//# sourceMappingURL=definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/overlay-video/definition.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,UAAU;IACV,YAAY;IACZ,WAAW;IACX,QAAQ;IACR,aAAa;IACb,eAAe;IACf,cAAc;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,+FAA+F;YAC/F,2GAA2G;YAC3G,mFAAmF;YACnF,8FAA8F;YAC9F,qFAAqF;YACrF,+KAA+K;YAC/K,qJAAqJ;YACrJ,yJAAyJ;YACzJ,+EAA+E;YAC/E,sKAAsK;YACtK,qHAAqH;YACrH,gHAAgH;QAClH,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,wIAAwI;wBACxI,8EAA8E;wBAC9E,2FAA2F;wBAC3F,wEAAwE;iBAC3E;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,CAAC;oBACX,WAAW,EACT,iGAAiG;wBACjG,yFAAyF;oBAC3F,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;gCACvB,WAAW,EAAE,oFAAoF;6BAClG;4BACD,QAAQ,EAAE;gCACR,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,GAAG,iBAAiB,CAAC;gCAC5B,WAAW,EACT,8EAA8E;oCAC9E,6EAA6E;6BAChF;4BACD,OAAO,EAAE;gCACP,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,+EAA+E;6BAC7F;4BACD,OAAO,EAAE;gCACP,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,6EAA6E;6BAC3F;4BACD,YAAY,EAAE;gCACZ,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,oEAAoE;oCACpE,kHAAkH;6BACrH;4BACD,UAAU,EAAE;gCACV,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,gEAAgE;oCAChE,4DAA4D;6BAC/D;4BACD,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,mFAAmF;6BACjG;4BACD,WAAW,EAAE;gCACX,IAAI,EAAE,QAAQ;gCACd,OAAO,EAAE,CAAC;gCACV,OAAO,EAAE,EAAE;gCACX,WAAW,EACT,sFAAsF;oCACtF,8BAA8B;6BACjC;4BACD,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,qFAAqF;oCACrF,8BAA8B;6BACjC;4BACD,YAAY,EAAE;gCACZ,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,2EAA2E;oCAC3E,8BAA8B;6BACjC;4BACD,eAAe,EAAE;gCACf,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;gCACxB,WAAW,EACT,yFAAyF;oCACzF,8BAA8B;6BACjC;4BACD,UAAU,EAAE;gCACV,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;gCACxB,WAAW,EAAE,gDAAgD;6BAC9D;4BACD,gBAAgB,EAAE;gCAChB,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,sDAAsD;oCACtD,8EAA8E;oCAC9E,8GAA8G;oCAC9G,qFAAqF;6BACxF;4BACD,QAAQ,EAAE;gCACR,IAAI,EAAE,QAAQ;gCACd,OAAO,EAAE,CAAC;gCACV,OAAO,EAAE,GAAG;gCACZ,WAAW,EACT,8DAA8D;oCAC9D,+BAA+B;6BAClC;4BACD,OAAO,EAAE;gCACP,IAAI,EAAE,QAAQ;gCACd,OAAO,EAAE,CAAC;gCACV,OAAO,EAAE,CAAC;gCACV,WAAW,EAAE,wFAAwF;6BACtG;4BACD,GAAG,EAAE;gCACH,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;gCAC1B,WAAW,EACT,gGAAgG;oCAChG,qIAAqI;6BACxI;yBACF;wBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;qBAC/B;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { LITERAL_PROMPT_OVERRIDE } from '../../../contracts/promptOverrideMarker.js';
|
|
2
|
+
import { ASPECT_RATIO_DESCRIPTION } from '../../../media/index.js';
|
|
3
|
+
export const definition = {
|
|
4
|
+
type: 'function',
|
|
5
|
+
function: {
|
|
6
|
+
name: 'refine_result',
|
|
7
|
+
description: 'Make ANY edit to an existing result image. This is the DEFAULT tool for follow-up requests after results exist. Use whenever the user wants to modify, adjust, or build upon a previous result — including brightness, color, sharpening, object removal, background changes, further restoration, or any other edit. If the user does not specify which image, use the most recent result (index 0 if only one result, or the last result the user referenced). Only use restore_photo instead if the user explicitly wants to start over from the original upload.',
|
|
8
|
+
parameters: {
|
|
9
|
+
type: 'object',
|
|
10
|
+
properties: {
|
|
11
|
+
prompt: {
|
|
12
|
+
type: 'string',
|
|
13
|
+
description: `Targeted refinement prompt for Qwen Image Edit 2511 (50-150 words, natural language sentences).
|
|
14
|
+
|
|
15
|
+
${LITERAL_PROMPT_OVERRIDE}
|
|
16
|
+
|
|
17
|
+
PROMPT ORDER: [IDENTITY LOCK if people] → [SPECIFIC CHANGE] → [PRESERVE EVERYTHING ELSE]
|
|
18
|
+
|
|
19
|
+
Rules:
|
|
20
|
+
- Use POSITIVE phrasing only. The model ignores negatives ("preserve exact facial likeness" NOT "don't change the face").
|
|
21
|
+
- Describe ONLY what needs to change (the delta). The base image already contains most of the truth — do not rewrite the entire image.
|
|
22
|
+
- Be specific about what to change: "warmer skin tones", "cooler shadows", "sharper facial features", "more natural greens".
|
|
23
|
+
- For creative refinements: lean into specifics — "add more dramatic Rembrandt lighting", "push the colors more toward Warhol neon pop", "make the anime eyes larger and more expressive", "add more superhero energy with glowing effects".
|
|
24
|
+
- CRITICAL for photos with people: FRONT-LOAD identity preservation before the edit. Start with "Preserve exact facial likeness, face structure, eye shape, nose shape, mouth shape, jawline, skin tone, hairline, apparent age, and overall recognizability."
|
|
25
|
+
- ALWAYS end with "Preserve all unmentioned details" to prevent unwanted changes.
|
|
26
|
+
|
|
27
|
+
BATCH VARIATIONS: Only use Dynamic Prompt syntax when the user explicitly asks to explore different refinement directions. Example: "refine with {more contrast|softer lighting|richer colors}". Default to identical prompts for refine_result batches.`,
|
|
28
|
+
},
|
|
29
|
+
sourceImageIndex: {
|
|
30
|
+
type: 'number',
|
|
31
|
+
description: 'Which result image to refine (0-based index). If the user specifies an image number, use that index. If omitted, the latest result is used automatically. When multiple results exist and the user previously referenced a specific one, use that one.',
|
|
32
|
+
},
|
|
33
|
+
numberOfVariations: {
|
|
34
|
+
type: 'number',
|
|
35
|
+
description: 'Number of variations (1-16). Use 1 unless user requests multiple. Default: 1.',
|
|
36
|
+
minimum: 1,
|
|
37
|
+
maximum: 16,
|
|
38
|
+
},
|
|
39
|
+
scale: {
|
|
40
|
+
type: 'number',
|
|
41
|
+
enum: [1, 1.5, 2, 3, 4],
|
|
42
|
+
description: 'Output scale multiplier relative to the source image size. 1 = same resolution as source (default). Use higher values when user asks to upscale, enlarge, make bigger, or increase resolution. Small images (<480px) are automatically upscaled to at least 480px regardless of this setting. Default: 1.',
|
|
43
|
+
},
|
|
44
|
+
aspectRatio: {
|
|
45
|
+
type: 'string',
|
|
46
|
+
description: ASPECT_RATIO_DESCRIPTION,
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
required: ['prompt'],
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/refine-result/definition.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,siBAAsiB;QACxiB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,uBAAuB;;;;;;;;;;;;yPAYgO;iBAChP;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,wPAAwP;iBAC3P;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+EAA+E;oBACjF,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBACvB,WAAW,EACT,2SAA2S;iBAC9S;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wBAAwB;iBACtC;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
|