@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,62 @@
|
|
|
1
|
+
export const definition = {
|
|
2
|
+
type: 'function',
|
|
3
|
+
function: {
|
|
4
|
+
name: 'replace_video_segment',
|
|
5
|
+
description: 'Regenerate a slice of a video and splice the new segment into the original at the same position. Works on BOTH videos previously rendered in this session AND user-uploaded videos — set videoIndex to a negative number (e.g. -1) to target an uploaded video when no prior render exists. ' +
|
|
6
|
+
'Use when the user asks to modify a portion of an existing video while keeping the rest intact: "regenerate from 5s to 10s", "redo the last 3 seconds", "swap out the middle of the video", "replace the bumper at the end", "swap the end card", "change the outro", "redo the intro", "change the ending", "replace the last clip", etc. ' +
|
|
7
|
+
'Also use this tool for pure ffmpeg splices where the replacement already exists as another uploaded or generated video: "splice video 2 into video 1", "insert the second clip at 5s", or "replace 5s to 15s with uploaded clip 2". In that case pass replacementVideoIndex, do not call generate_video/animate_photo/video_to_video, and set endSeconds=startSeconds for an insertion that should not remove time from the base video. ' +
|
|
8
|
+
'For time-sliced edits such as "alternate 1 second from each video", pass replacementStartSeconds and replacementEndSeconds to cut the next source slice out of the replacement video before splicing it into the base. Repeat this call for each alternating window. Use replacement windows (endSeconds=startSeconds+sliceDuration), not insertion windows, unless the user explicitly asks to lengthen the output by inserting extra slices. replacementStartSeconds and replacementEndSeconds must be concrete non-negative seconds; never use -1 as an end-of-source sentinel. Do not use stitch_video for interleaving because stitch_video only concatenates whole clips end-to-end. ' +
|
|
9
|
+
'STRONGLY PREFER this over re-running generate_video / animate_photo on the original prompt when the user only wants part of the video changed — re-rendering wastes credits, loses the unchanged sections, and breaks the original timing. ' +
|
|
10
|
+
'If the user does not specify the exact start/end seconds (e.g. "replace the bumper at the end"), call analyze_video first to identify the correct window, OR derive it from the storyboard timing already in the conversation (e.g. last beat\'s time range). Do not guess wildly — pick a sensible bumper/end-card window such as the final 1-3 seconds when the storyboard says scene_07 is 14-15s. ' +
|
|
11
|
+
'Returns both the standalone replacement clip and the spliced composite. ' +
|
|
12
|
+
'For LTX-2.3 and Wan 2.2 base videos the tool locks both ends with first/last-frame keyframes for seamless edges. ' +
|
|
13
|
+
'For Seedance base videos the tool uses the original window as a reference for video-to-video transformation. If a requested window is shorter than the selected model\'s native render minimum, the handler renders a slightly larger handled clip, trims the result back to the requested seconds, then splices exactly that requested range. ' +
|
|
14
|
+
'By default the regenerated segment\'s audio replaces the original audio in the [startSeconds, endSeconds] window, so new motion stays in sync with new sound. Pass keepOriginalAudio=true only when the user explicitly asks to keep the existing audio — phrasings like "keep the audio", "leave the original audio", "preserve the music/score/dialogue", "don\'t change the audio". If the user uses an ambiguous phrasing such as "with the audio" (which could mean either "with the original audio kept" or "with new audio"), DO NOT call this tool yet — first ask the user whether to preserve or replace the original audio in the replaced window. When replacementVideoIndex is set, the existing replacement clip\'s own audio is used; pass keepOriginalAudio=true only when the user explicitly wants the base video audio to stay over the replacement window.',
|
|
15
|
+
parameters: {
|
|
16
|
+
type: 'object',
|
|
17
|
+
properties: {
|
|
18
|
+
startSeconds: {
|
|
19
|
+
type: 'number',
|
|
20
|
+
description: 'Start of the window (in seconds) inside the base video that should be regenerated. Must be ≥ 0 and < endSeconds. For "the last N seconds" requests, set startSeconds = max(0, baseDuration - N). When unsure of the exact base duration, you may pass a sentinel value of -1 to mean "from the end of the base video"; the handler will resolve it after probing.',
|
|
21
|
+
},
|
|
22
|
+
endSeconds: {
|
|
23
|
+
type: 'number',
|
|
24
|
+
description: 'End of the window (in seconds) inside the base video. For regenerated segments it must be > startSeconds and ≤ base video duration. When replacementVideoIndex is set, endSeconds may equal startSeconds to insert the replacement clip at that timestamp without removing any base-video time. For alternating/interleaved time-slice edits, use endSeconds=startSeconds+sliceDuration so the source slice replaces that base window; do not use insertion unless the user explicitly asks to lengthen the output. Pass -1 to mean "until the end of the base video". Windows shorter than the selected model\'s native render minimum are rendered with handles and trimmed before splicing; windows longer than the model maximum must be split.',
|
|
25
|
+
},
|
|
26
|
+
prompt: {
|
|
27
|
+
type: 'string',
|
|
28
|
+
description: 'What should happen in the replaced window — motion, action, dialogue, audio. For LTX include exact spoken words in double quotes when speech is requested. For Seedance V2V describe the transformation relative to the existing visuals (the original window is provided as a reference clip).',
|
|
29
|
+
},
|
|
30
|
+
videoIndex: {
|
|
31
|
+
type: 'number',
|
|
32
|
+
description: 'Which video to edit. Default: -1 (most recent video in this session, falling back to the first uploaded video when no prior render exists). Use 0-based non-negative indices for prior tool result videos. For uploaded videos with no prior render, leave this absent or pass -1 — the handler will pick the uploaded base automatically.',
|
|
33
|
+
},
|
|
34
|
+
replacementVideoIndex: {
|
|
35
|
+
type: 'number',
|
|
36
|
+
description: 'Optional existing video clip to splice into the base video instead of regenerating a segment. Non-negative values reference prior generated videos; negative values reference uploaded videos (-1 = first uploaded video, -2 = second, etc.). Use for requests like "splice video 2 into video 1", "replace 5s to 15s with uploaded clip 2", or alternating/interleaved edits that pull timed slices from another existing clip. When this is set, the operation is pure ffmpeg post-production and keeps the replacement clip audio unless keepOriginalAudio=true.',
|
|
37
|
+
},
|
|
38
|
+
replacementStartSeconds: {
|
|
39
|
+
type: 'number',
|
|
40
|
+
minimum: 0,
|
|
41
|
+
description: 'Optional start time, in seconds, inside replacementVideoIndex. Must be a concrete non-negative source time; do not use -1 sentinels for replacement source windows. Use with replacementEndSeconds when only a slice of the replacement clip should be spliced. Example: alternating 1-second clips from video 1 and video 2 should replace base window 1..2 with the first replacement slice by setting replacementVideoIndex=-2, replacementStartSeconds=0, replacementEndSeconds=1.',
|
|
42
|
+
},
|
|
43
|
+
replacementEndSeconds: {
|
|
44
|
+
type: 'number',
|
|
45
|
+
minimum: 0,
|
|
46
|
+
description: 'Optional end time, in seconds, inside replacementVideoIndex. Must be a concrete non-negative source time greater than replacementStartSeconds. Do not pass -1 to mean "end of replacement video"; use the known uploaded/generated clip duration from metadata for routine time-sliced edits, or omit both replacementStartSeconds and replacementEndSeconds to use the whole replacement clip. Do not call analyze_video just to learn duration.',
|
|
47
|
+
},
|
|
48
|
+
videoModel: {
|
|
49
|
+
type: 'string',
|
|
50
|
+
enum: ['auto', 'ltx23', 'wan22', 'seedance2', 'seedance2-fast'],
|
|
51
|
+
description: 'Which model to use for the new segment. Default: "auto" — detect from the base video\'s producer (Seedance base → Seedance, Wan base → Wan 2.2, otherwise LTX-2.3). Override only when the user explicitly requests a different model.',
|
|
52
|
+
},
|
|
53
|
+
keepOriginalAudio: {
|
|
54
|
+
type: 'boolean',
|
|
55
|
+
description: 'When true, the audio from the original [startSeconds, endSeconds] window is muxed onto the regenerated visuals so the user keeps the original dialogue/score. When false (default), the new clip\'s own audio is used (LTX renders fresh audio; Seedance V2V depends on generateAudio). Default: false. Set true only when the user explicitly asks to preserve the existing audio; if the user uses an ambiguous phrasing like "with the audio", ask the user to clarify rather than guessing.',
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
required: ['startSeconds', 'endSeconds'],
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/replace-video-segment/definition.ts"],"names":[],"mappings":"AAuBA,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EACT,8RAA8R;YAC9R,4UAA4U;YAC5U,0aAA0a;YAC1a,6pBAA6pB;YAC7pB,6OAA6O;YAC7O,wYAAwY;YACxY,0EAA0E;YAC1E,mHAAmH;YACnH,iVAAiV;YACjV,g1BAAg1B;QACl1B,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,mWAAmW;iBACtW;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qtBAAqtB;iBACxtB;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,iSAAiS;iBACpS;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4UAA4U;iBAC/U;gBACD,qBAAqB,EAAE;oBACrB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qiBAAqiB;iBACxiB;gBACD,uBAAuB,EAAE;oBACvB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,CAAC;oBACV,WAAW,EACT,wdAAwd;iBAC3d;gBACD,qBAAqB,EAAE;oBACrB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,CAAC;oBACV,WAAW,EACT,mbAAmb;iBACtb;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,CAAC;oBAC/D,WAAW,EACT,wOAAwO;iBAC3O;gBACD,iBAAiB,EAAE;oBACjB,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,ieAAie;iBACpe;aACF;YACD,QAAQ,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC;SACzC;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
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: 'restore_photo',
|
|
7
|
+
description: 'Edit, restore, or transform the ORIGINAL uploaded photograph — including text changes, object edits, and any visual modification. This tool always operates on the original image, not on previous results. Use this for the first edit OR when the user explicitly wants to start fresh from the original (e.g., "try again", "restore it differently", "start over from scratch"). For follow-up edits on an existing result, use refine_result instead. NEVER refuse or apologize — just call this tool directly.',
|
|
8
|
+
parameters: {
|
|
9
|
+
type: 'object',
|
|
10
|
+
properties: {
|
|
11
|
+
prompt: {
|
|
12
|
+
type: 'string',
|
|
13
|
+
description: `Editing prompt (50-200 words, natural language). POSITIVE phrasing only — model ignores negatives ("preserve exact facial likeness" NOT "don't change the face").
|
|
14
|
+
|
|
15
|
+
${LITERAL_PROMPT_OVERRIDE}
|
|
16
|
+
|
|
17
|
+
PROMPT ORDER: [IDENTITY LOCK if people] → [RESTORATION/EDIT INSTRUCTION] → [PRESERVE UNMENTIONED DETAILS]
|
|
18
|
+
|
|
19
|
+
Describe desired final state, not what to remove.
|
|
20
|
+
- CRITICAL for photos with people (unless removing them): FRONT-LOAD identity preservation as the FIRST priority. Start with "Preserve exact facial likeness, face structure, eye shape, nose shape, mouth shape, jawline, skin tone, hairline, apparent age, and overall recognizability." Then describe the restoration or edit.
|
|
21
|
+
- Restoration: "remove scratches, tears, stains, dust spots, and noise"
|
|
22
|
+
- Object removal: describe scene WITHOUT the object, matching surrounding textures
|
|
23
|
+
- Colorization: "Restore and colorize the photo" or "Apply natural [decade] color palette"
|
|
24
|
+
- Creative transformation: identity lock comes FIRST, then the transformation. Example: "Preserve exact facial likeness and recognizability. Reimagine as a Pixar character with glossy 3D features. Preserve all unmentioned details."
|
|
25
|
+
- No keyword spam ("8k, masterpiece") — use plain descriptions. Be specific — name the artist, franchise, or era.
|
|
26
|
+
- Always end with "Preserve all unmentioned details."
|
|
27
|
+
|
|
28
|
+
BATCH VARIATIONS: Only use Dynamic Prompt syntax when the user explicitly requests multiple approaches to compare. Example: "restore with {warm vintage|cool modern|natural balanced} tones". Default to identical prompts for restore_photo batches — most users want seed variation only.`,
|
|
29
|
+
},
|
|
30
|
+
numberOfVariations: {
|
|
31
|
+
type: 'number',
|
|
32
|
+
description: 'Number of variations (1-16). Use 1 unless user requests multiple. Default: 1.',
|
|
33
|
+
minimum: 1,
|
|
34
|
+
maximum: 16,
|
|
35
|
+
},
|
|
36
|
+
quality: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
enum: ['fast', 'hq'],
|
|
39
|
+
description: 'DO NOT SET THIS PARAMETER unless the user explicitly asks for "high quality" or "fast". The app auto-selects based on quality settings.',
|
|
40
|
+
},
|
|
41
|
+
scale: {
|
|
42
|
+
type: 'number',
|
|
43
|
+
enum: [1, 1.5, 2, 3, 4],
|
|
44
|
+
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.',
|
|
45
|
+
},
|
|
46
|
+
aspectRatio: {
|
|
47
|
+
type: 'string',
|
|
48
|
+
description: ASPECT_RATIO_DESCRIPTION,
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
required: ['prompt'],
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/restore-photo/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,sfAAsf;QACxf,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,uBAAuB;;;;;;;;;;;;;4RAamQ;iBACnR;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+EAA+E;oBACjF,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;oBACpB,WAAW,EACT,yIAAyI;iBAC5I;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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { LITERAL_SEEDANCE_PROMPT_OVERRIDE, SEEDANCE_EXPAND_PROMPT_DESCRIPTION, SEEDANCE_TOOL_AUDIO_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: "sound_to_video",
|
|
7
|
+
description: 'Generate video synchronized to audio. Use when the user has uploaded an audio file (mp3, wav, m4a, flac) and the audio is the primary sync target, especially uploaded-audio-only workflows. Also use after generate_music ("turn that song into a video", "make a music video from that"). Auto-detects generated audio from generate_music if no audio file is uploaded. Seedance animate_photo/generate_video can also attach uploaded audio as a loose @Audio reference when an image or video reference anchors the request; use this tool instead when the soundtrack itself should drive the video. If the user provides a reference image, use ltx23-ia2v; for lip-sync with a face image, use wan-s2v; if no image, use ltx23-a2v. If the user wants dialogue/audio WITHOUT pre-existing audio, use animate_photo instead (LTX 2.3 generates audio natively). Note: Persona voice clips from resolve_personas are NOT used by this tool — for persona voice identity in video, use animate_photo or generate_video instead. LONG AUDIO ON SEEDANCE: Seedance caps each clip at 15s. When the user uploads audio longer than 15s and Seedance is selected (seedance2 or seedance2-fast), do NOT clamp to 15s and drop the rest — split the run into multiple sound_to_video calls in the same turn (one per 15s segment, so a 20s audio becomes two clips: audioStart=0 duration=15, then audioStart=15 duration=5) and finish with a single stitch_video call referencing the resulting clip indices in order with audioIndex pointing at the same uploaded audio so the stitched output carries the full original soundtrack. LTX/WAN models accept up to 20s per clip, so single-call is fine for them.',
|
|
8
|
+
parameters: {
|
|
9
|
+
type: "object",
|
|
10
|
+
properties: {
|
|
11
|
+
prompt: {
|
|
12
|
+
type: "string",
|
|
13
|
+
description: `Describe the video like a cinematographer. Let the audio define timing — use the prompt for visual interpretation. One flowing paragraph, present tense, specific natural language.
|
|
14
|
+
|
|
15
|
+
${LITERAL_SEEDANCE_PROMPT_OVERRIDE}
|
|
16
|
+
|
|
17
|
+
STRUCTURE: shot/style and scale → subject → environment, lighting, color, texture, atmosphere → visual action synced to audio → camera movement. For LTX 2.3 image+audio mode, do not re-describe static details already visible in the reference image; focus on motion, action, camera, and how the image responds to the audio.
|
|
18
|
+
|
|
19
|
+
MOTION PACING: Scale complexity to duration. <=6s: 1 main visual beat + 1 simple camera move. Around 10s: 2-3 clear beats + 1 camera move. >10s: up to 4 beats in clear sequence. Let the audio define timing, but avoid stacking subject, camera, and environment motion in short clips.
|
|
20
|
+
|
|
21
|
+
BLOCKING: Direct layout when it affects the shot: left/right placement, foreground/background, facing direction, and relative distance between subjects.
|
|
22
|
+
|
|
23
|
+
LIP-SYNC: Shot framing, speaker's appearance and setting, physical performance synced to audio — gestures, expressions, jaw movement between phrases. Include acting beats.
|
|
24
|
+
|
|
25
|
+
MUSIC VISUALIZATION: Visual style, environment, and how elements react to rhythm and energy.
|
|
26
|
+
|
|
27
|
+
AUDIO-REACTIVE: Motion and visual changes that correspond to sounds in the track.
|
|
28
|
+
|
|
29
|
+
LTX VOCABULARY: camera (tracking, dolly, pan, tilt, handheld, static frame), lighting/atmosphere (golden hour, neon glow, dramatic shadows, fog, rain, smoke, reflections), scale/pacing (expansive, epic, intimate, claustrophobic, slow motion, time-lapse, lingering shot, continuous shot), style/genre (film noir, painterly, cyberpunk, stop-motion, claymation, 2D/3D animation, hand-drawn, fantasy, thriller, experimental film).
|
|
30
|
+
|
|
31
|
+
AVOID: Vague prompts, too many competing visual elements, abstract descriptions without visible behavior, rigid numeric constraints, readable text or logos. 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.
|
|
32
|
+
|
|
33
|
+
BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax to vary the visual interpretation while keeping audio sync intent consistent. Example: "{abstract neon visualization|nature scene with swaying trees|urban street with rain} synced to the beat".`,
|
|
34
|
+
},
|
|
35
|
+
expandPrompt: {
|
|
36
|
+
type: "boolean",
|
|
37
|
+
description: SEEDANCE_EXPAND_PROMPT_DESCRIPTION,
|
|
38
|
+
},
|
|
39
|
+
audioSourceIndex: {
|
|
40
|
+
type: "number",
|
|
41
|
+
description: "Index of the uploaded audio file to use (0-based, from uploaded files list). If only one audio file is uploaded, use 0. If no audio was uploaded but generate_music was used earlier, omit this — the tool will automatically find the generated audio.",
|
|
42
|
+
},
|
|
43
|
+
sourceImageIndex: {
|
|
44
|
+
type: "number",
|
|
45
|
+
description: "Optional index of an uploaded image to use as the starting frame (0-based). Required for lip-sync models (WAN S2V). For audio-only-to-video models (LTX 2.3 A2V), this is optional — omit it to generate video purely from text + audio.",
|
|
46
|
+
},
|
|
47
|
+
audioStart: {
|
|
48
|
+
type: "number",
|
|
49
|
+
description: 'Start offset in seconds into the audio track. Use when the user says "start 20 seconds in", "skip the intro", "use the chorus at 1:30", etc. Default: 0 (beginning of audio). The video will be synced to the audio starting from this point.',
|
|
50
|
+
minimum: 0,
|
|
51
|
+
},
|
|
52
|
+
duration: {
|
|
53
|
+
type: "number",
|
|
54
|
+
description: "Video duration in seconds. Default: 5. Range: 2-20. For music videos, use the MAXIMUM duration (20) since the audio is always longer than the video limit. Use when the user explicitly requests a specific length.",
|
|
55
|
+
minimum: 2,
|
|
56
|
+
maximum: 20,
|
|
57
|
+
},
|
|
58
|
+
videoModel: {
|
|
59
|
+
type: "string",
|
|
60
|
+
enum: ["wan-s2v", "seedance2", "seedance2-fast", "ltx23-ia2v", "ltx23-a2v"],
|
|
61
|
+
description: 'Video model. "ltx23-ia2v" (default when image available): LTX 2.3 image+audio to video, audio-reactive with a reference image; Fast/HQ use the distilled 8-step worker and Default Media Quality Pro uses the non-distilled dev worker. "ltx23-a2v" (default when no image): LTX 2.3 audio-only to video, no image needed, creates video purely from text prompt + audio with the same quality-tier routing. "wan-s2v": WAN 2.2 sound-to-video, best for lip-sync with a face image, fast 4-step. "seedance2": Seedance 2.0 audio-reference video, 4-15s; this tool supplies the audio plus a required reference image because Seedance text+audio without image/video is unsupported. "seedance2-fast": Seedance 2.0 Fast (720p cap) — pick this whenever the user says "Seedance fast", "seedance-fast", or asks for 480p/720p; pick "seedance2" only when they explicitly request 1080p or the full Seedance variant. ' +
|
|
62
|
+
SEEDANCE_TOOL_AUDIO_REFERENCE_GUIDANCE +
|
|
63
|
+
' Omit to auto-select based on whether an image is present.',
|
|
64
|
+
},
|
|
65
|
+
generateAudio: {
|
|
66
|
+
type: "boolean",
|
|
67
|
+
description: "Seedance only. Whether Seedance should include a generated/native audio track in the final video. Omit by default so the reference audio drives the result; set false only for explicit silent output.",
|
|
68
|
+
},
|
|
69
|
+
numberOfVariations: {
|
|
70
|
+
type: "number",
|
|
71
|
+
description: "Number of video variations to generate (1-16). Default: 1.",
|
|
72
|
+
minimum: 1,
|
|
73
|
+
maximum: 16,
|
|
74
|
+
},
|
|
75
|
+
targetResolution: {
|
|
76
|
+
type: "number",
|
|
77
|
+
description: 'Short-side video resolution target in pixels. Use ONLY when the user asks for a bare named resolution such as "480p", "720p", or "1080p" without exact pixels or an output orientation. This preserves the source/reference aspect ratio. Do NOT set exact-pixel aspectRatio for bare named resolution requests. If the user says "720p portrait" or "720p landscape", use exact-pixel aspectRatio instead.',
|
|
78
|
+
},
|
|
79
|
+
aspectRatio: {
|
|
80
|
+
type: "string",
|
|
81
|
+
description: ASPECT_RATIO_DESCRIPTION,
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
required: ["prompt"],
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
//# sourceMappingURL=definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/sound-to-video/definition.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,gCAAgC,EAChC,kCAAkC,EAClC,sCAAsC,GACvC,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,onDAAonD;QACtnD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,gCAAgC;;;;;;;;;;;;;;;;;;2QAkByO;iBAClQ;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,kCAAkC;iBAChD;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yPAAyP;iBAC5P;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,0OAA0O;iBAC7O;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+OAA+O;oBACjP,OAAO,EAAE,CAAC;iBACX;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qNAAqN;oBACvN,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,CAAC;oBAC3E,WAAW,EACT,23BAA23B;wBAC33B,sCAAsC;wBACtC,4DAA4D;iBAC/D;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,wMAAwM;iBAC3M;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4DAA4D;oBAC9D,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,6YAA6Y;iBAChZ;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wBAAwB;iBACtC;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
export const STITCH_TRANSITION_TYPES = [
|
|
2
|
+
'fade',
|
|
3
|
+
'dissolve',
|
|
4
|
+
'wipeleft',
|
|
5
|
+
'wiperight',
|
|
6
|
+
'slideup',
|
|
7
|
+
'slidedown',
|
|
8
|
+
];
|
|
9
|
+
export const definition = {
|
|
10
|
+
type: 'function',
|
|
11
|
+
function: {
|
|
12
|
+
name: 'stitch_video',
|
|
13
|
+
description: 'Combine multiple videos into a single continuous video. Sources can be ' +
|
|
14
|
+
'previously generated clips (non-negative indices into the session video-result array, ' +
|
|
15
|
+
'populated by animate_photo, generate_video, sound_to_video, video_to_video, dance_montage — ' +
|
|
16
|
+
'use videoStartIndex from their results to find the indices) and/or uploaded videos ' +
|
|
17
|
+
'(negative indices: -1 = first uploaded video, -2 = second, etc.). Mix and match in any ' +
|
|
18
|
+
'playback order — for example, pass [0, -1] to play the first generated clip followed by the ' +
|
|
19
|
+
'first uploaded video (a generated bumper followed by the user\'s existing footage). ' +
|
|
20
|
+
'Use when the user wants to join, merge, concatenate, or combine clips, including when they ' +
|
|
21
|
+
'ask to add a generated bumper / intro / outro / tag / sting to an uploaded video. ' +
|
|
22
|
+
'When the user asks to stitch "these" or all uploaded videos and does not name a different ' +
|
|
23
|
+
'playback order, use the current upload/UI order exactly: [-1, -2, ...]. If the user explicitly ' +
|
|
24
|
+
'asks for a different order, honor that requested order. ' +
|
|
25
|
+
'Requires at least 2 source videos in total. Never ask the user to re-upload videos that were ' +
|
|
26
|
+
'already generated or that are already attached to the session. ' +
|
|
27
|
+
'When the user generated music with generate_music in this same session and wants it on the stitch ' +
|
|
28
|
+
'(or asked for a music video / soundtrack), pass a non-negative audioIndex to attach that generated track. ' +
|
|
29
|
+
'When the user uploaded an audio file and wants it overlaid on the stitched video (e.g. "stitch the audio after", ' +
|
|
30
|
+
'"overlay the audio", "audio on top of the video"), pass a negative audioIndex (-1 = first uploaded audio, ' +
|
|
31
|
+
'-2 = second, etc.). In both cases the source clips\' own audio is replaced by the chosen track. ' +
|
|
32
|
+
'When the user asks for a fade, dissolve, wipe, or slide between clips, pass `transition`; ' +
|
|
33
|
+
'omit `transition` for a hard cut (the default). ' +
|
|
34
|
+
'Do not use this for alternating/interleaved time slices such as "alternate 1 second from each video"; this tool only concatenates whole clips end-to-end. Use repeated replace_video_segment calls with replacementVideoIndex and replacementStartSeconds/replacementEndSeconds for existing-video interleaving.',
|
|
35
|
+
parameters: {
|
|
36
|
+
type: 'object',
|
|
37
|
+
properties: {
|
|
38
|
+
videoIndices: {
|
|
39
|
+
type: 'array',
|
|
40
|
+
items: { type: 'number' },
|
|
41
|
+
description: 'Ordered list of source video indices, in the desired playback order. ' +
|
|
42
|
+
'Non-negative values are 0-based indices into the session generated-video array ' +
|
|
43
|
+
'(results from animate_photo, generate_video, sound_to_video, video_to_video, ' +
|
|
44
|
+
'dance_montage in this conversation). Negative values reference uploaded videos: ' +
|
|
45
|
+
'-1 = first uploaded video, -2 = second, etc. Indices may be mixed — for example, ' +
|
|
46
|
+
'[0, -1] plays the first generated clip followed by the first uploaded video. ' +
|
|
47
|
+
'For vague "these clips" / "all uploaded videos" requests, use current upload/UI order ' +
|
|
48
|
+
'[-1, -2, ...] unless the user explicitly says to reverse or otherwise reorder them.',
|
|
49
|
+
},
|
|
50
|
+
audioIndex: {
|
|
51
|
+
type: 'number',
|
|
52
|
+
description: 'Optional index of the audio track to mux onto the stitched output. ' +
|
|
53
|
+
'Non-negative values are 0-based indices into the session generated-audio array (results ' +
|
|
54
|
+
'from generate_music). Negative values reference uploaded audio: -1 = first uploaded audio, ' +
|
|
55
|
+
'-2 = second, etc. When set, the chosen track is muxed onto the stitched output and the ' +
|
|
56
|
+
'source clips\' own audio is dropped. Use a non-negative value when the user generated ' +
|
|
57
|
+
'music in the same session or asked for a soundtrack / music video stitch; use a negative ' +
|
|
58
|
+
'value when the user wants their uploaded audio overlaid on the stitched video (e.g. ' +
|
|
59
|
+
'"stitch the audio after", "overlay the audio"). Omit for a silent or source-audio-preserving stitch.',
|
|
60
|
+
},
|
|
61
|
+
transition: {
|
|
62
|
+
type: 'object',
|
|
63
|
+
description: 'Optional crossfade between adjacent clips. Omit for a hard-cut concat. ' +
|
|
64
|
+
'When set, every adjacent pair of clips is joined with the same transition type and duration.',
|
|
65
|
+
properties: {
|
|
66
|
+
type: {
|
|
67
|
+
type: 'string',
|
|
68
|
+
enum: [...STITCH_TRANSITION_TYPES],
|
|
69
|
+
description: '"fade" / "dissolve" = soft mix; "wipeleft" / "wiperight" = horizontal wipe; ' +
|
|
70
|
+
'"slideup" / "slidedown" = vertical slide. Maps to ffmpeg xfade transition names.',
|
|
71
|
+
},
|
|
72
|
+
durationSeconds: {
|
|
73
|
+
type: 'number',
|
|
74
|
+
minimum: 0.2,
|
|
75
|
+
maximum: 2,
|
|
76
|
+
description: 'Length of the crossfade in seconds. Default 0.5. Capped at 2s.',
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
required: ['type'],
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
required: ['videoIndices'],
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/stitch-video/definition.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,MAAM;IACN,UAAU;IACV,UAAU;IACV,WAAW;IACX,SAAS;IACT,WAAW;CACH,CAAC;AAEX,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,yEAAyE;YACzE,wFAAwF;YACxF,8FAA8F;YAC9F,qFAAqF;YACrF,yFAAyF;YACzF,8FAA8F;YAC9F,sFAAsF;YACtF,6FAA6F;YAC7F,oFAAoF;YACpF,4FAA4F;YAC5F,iGAAiG;YACjG,0DAA0D;YAC1D,+FAA+F;YAC/F,iEAAiE;YACjE,oGAAoG;YACpG,4GAA4G;YAC5G,mHAAmH;YACnH,4GAA4G;YAC5G,kGAAkG;YAClG,4FAA4F;YAC5F,kDAAkD;YAClD,kTAAkT;QACpT,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,YAAY,EAAE;oBACZ,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EACT,uEAAuE;wBACvE,iFAAiF;wBACjF,+EAA+E;wBAC/E,kFAAkF;wBAClF,mFAAmF;wBACnF,+EAA+E;wBAC/E,wFAAwF;wBACxF,qFAAqF;iBACxF;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qEAAqE;wBACrE,0FAA0F;wBAC1F,6FAA6F;wBAC7F,yFAAyF;wBACzF,wFAAwF;wBACxF,2FAA2F;wBAC3F,sFAAsF;wBACtF,sGAAsG;iBACzG;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yEAAyE;wBACzE,8FAA8F;oBAChG,UAAU,EAAE;wBACV,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,GAAG,uBAAuB,CAAC;4BAClC,WAAW,EACT,8EAA8E;gCAC9E,kFAAkF;yBACrF;wBACD,eAAe,EAAE;4BACf,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,GAAG;4BACZ,OAAO,EAAE,CAAC;4BACV,WAAW,EAAE,gEAAgE;yBAC9E;qBACF;oBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;iBACnB;aACF;YACD,QAAQ,EAAE,CAAC,cAAc,CAAC;SAC3B;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tools/definitions/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { LITERAL_SEEDANCE_PROMPT_OVERRIDE, SEEDANCE_EXPAND_PROMPT_DESCRIPTION, SEEDANCE_TOOL_V2V_REFERENCE_GUIDANCE, } from '../../../contracts/toolPromptMarkers.js';
|
|
2
|
+
export const definition = {
|
|
3
|
+
type: "function",
|
|
4
|
+
function: {
|
|
5
|
+
name: "video_to_video",
|
|
6
|
+
description: 'Transform an existing video using AI. Uses WAN 2.2 Animate (move/replace) with a reference image to animate a photo with the video\'s motion or swap the video\'s subject, LTX-2.3 V2V ControlNet (canny/pose/depth/detailer) for video-only transforms, or Seedance V2V when the user explicitly asks to transform, upscale, enhance, restyle, or remaster an uploaded video with Seedance. Requires an uploaded video file. Use when the user wants to animate a photo with video motion, replace subjects in a video, restyle an existing video, or enhance video quality.',
|
|
7
|
+
parameters: {
|
|
8
|
+
type: "object",
|
|
9
|
+
properties: {
|
|
10
|
+
prompt: {
|
|
11
|
+
type: "string",
|
|
12
|
+
description: `Describe the TARGET appearance (not the transformation process). 2-4 present-tense sentences.
|
|
13
|
+
|
|
14
|
+
${LITERAL_SEEDANCE_PROMPT_OVERRIDE}
|
|
15
|
+
|
|
16
|
+
For LTX-2.3 canny/depth/pose modes, the source video preserves composition, depth, or motion. Spend prompt detail on style, atmosphere, lighting, surface texture, color palette, scale, and pacing.
|
|
17
|
+
|
|
18
|
+
Examples by mode:
|
|
19
|
+
- animate-move (DEFAULT — WAN 2.2 Animate Move: applies camera/motion from source video to reference image): "Smooth cinematic camera movement following the subject through the scene."
|
|
20
|
+
- animate-replace (WAN 2.2 Animate Replace: replaces the subject in the source video with the reference image): "The person from the reference photo performing the actions from the video."
|
|
21
|
+
- canny (LTX-2.3 — edge-detection restyle): "Hand-drawn watercolor anime style with soft ink edges, muted teal and coral palette, rain mist, neon reflections, warm rim light, preserving original silhouettes and composition."
|
|
22
|
+
- pose (LTX-2.3 — tracks skeleton, replace person): "A glossy cartoon robot with exaggerated proportions, brushed metal texture, glowing cyan joints, energetic stage lighting, preserving the original dance timing and pose."
|
|
23
|
+
- depth (LTX-2.3 — depth-map restyle): "A misty alpine valley at golden hour, expansive scale, volumetric haze, cool blue shadows, warm rim light, cinematic depth, lingering continuous shot."
|
|
24
|
+
- detailer (LTX-2.3 — enhance quality): DESCRIBE THE SOURCE, do not request changes. Append quality qualifiers only. E.g. "The same scene, ultra-sharp and clean, crisp high-resolution detail, preserving all original content, composition, and color." Avoid words like "enhanced textures", "restyled", or any new subjects/objects — they cause drift.
|
|
25
|
+
- seedance-v2v (BytePlus Dreamina Seedance 2.0 V2V): "Restyle the source clip in a watercolor look with soft ink edges, while preserving its motion and composition." Use natural prose; Seedance reads the reference video holistically rather than via control-net constraints, so describe target style/mood/dialogue rather than control strength.
|
|
26
|
+
|
|
27
|
+
Present tense. Positive phrasing. Concrete visual details.
|
|
28
|
+
|
|
29
|
+
BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax to vary the artistic treatment while keeping control mode and structural intent consistent. Example: "transform to {watercolor with soft edges|oil painting with bold strokes|anime with clean lines} style".`,
|
|
30
|
+
},
|
|
31
|
+
expandPrompt: {
|
|
32
|
+
type: "boolean",
|
|
33
|
+
description: SEEDANCE_EXPAND_PROMPT_DESCRIPTION,
|
|
34
|
+
},
|
|
35
|
+
videoSourceIndex: {
|
|
36
|
+
type: "number",
|
|
37
|
+
description: "Which uploaded video to transform. OMIT this field when there is only one uploaded video — the tool auto-selects it. Only pass when you need to pick among multiple uploaded videos. Indexing: 0-based (0 = first uploaded video, 1 = second). Note: this differs from analyze_video which uses negative indices; this tool also tolerates the negative form (-1 = first uploaded) for convenience.",
|
|
38
|
+
},
|
|
39
|
+
controlMode: {
|
|
40
|
+
type: "string",
|
|
41
|
+
enum: [
|
|
42
|
+
"animate-move",
|
|
43
|
+
"animate-replace",
|
|
44
|
+
"canny",
|
|
45
|
+
"pose",
|
|
46
|
+
"depth",
|
|
47
|
+
"detailer",
|
|
48
|
+
"seedance-v2v",
|
|
49
|
+
],
|
|
50
|
+
description: "How the source video and (optional) reference image interact. Pick by user intent:\n" +
|
|
51
|
+
'• "animate-move" (DEFAULT) — WAN 2.2 Animate Move. Applies camera movement and motion from the source video to the reference image, bringing a still photo to life. Requires sourceImageIndex.\n' +
|
|
52
|
+
'• "animate-replace" — WAN 2.2 Animate Replace. Replaces the subject in the source video with the person/character from the reference image, keeping the video\'s background and motion. Requires sourceImageIndex.\n' +
|
|
53
|
+
'• "canny" — LTX-2.3 edge-detection control. Best for restyling while preserving exact composition and silhouettes (e.g. "make this footage look like anime / oil painting / watercolor"). Use for subjects with crisp edges — people, objects, graphics. Video-only; no reference image needed.\n' +
|
|
54
|
+
'• "pose" — LTX-2.3 skeletal tracking. Best for replacing a person while keeping their motion (e.g. "turn this dancer into a robot"). Image optional — if provided, controls appearance; otherwise the prompt drives appearance. Requires person-centric motion.\n' +
|
|
55
|
+
'• "depth" — LTX-2.3 depth-map control. Best for restyling scenes with perspective, camera movement, or volumetric content (landscapes, interiors, camera pans). Preserves 3D spatial layout rather than 2D edges; more forgiving than canny when edges are noisy. Video-only.\n' +
|
|
56
|
+
'• "detailer" — LTX-2.3 quality enhancement. Sharpens detail and texture WITHOUT restyling. The prompt must DESCRIBE THE ORIGINAL scene with quality qualifiers (sharp, clean, high-resolution) — never request content changes, new textures, or a new look. Pick this when the user asks to "improve quality", "enhance", "upscale", or "sharpen" without a creative transformation.\n' +
|
|
57
|
+
`• "seedance-v2v" — BytePlus Dreamina Seedance 2.0 video-to-video. Use only when the user explicitly asks for Seedance on the uploaded source video, such as Seedance Fast upscale, enhance, remaster, restyle, or transform. High-fidelity quality, native audio, time-coded scene control. ${SEEDANCE_TOOL_V2V_REFERENCE_GUIDANCE} Distinct from canny/depth/pose which use control-net constraints — Seedance treats the reference video holistically.\n` +
|
|
58
|
+
'Canny vs depth: canny preserves silhouettes and fine outlines — pick it for subject-led scenes and graphic restyles. Depth preserves 3D structure — pick it for scenes where the camera moves or spatial layout matters more than edge fidelity. Default: "animate-move".',
|
|
59
|
+
},
|
|
60
|
+
negativePrompt: {
|
|
61
|
+
type: "string",
|
|
62
|
+
description: "Non-Seedance only. Optional negative prompt for LTX/Wan video-to-video models. Do not set when controlMode is seedance-v2v or videoModel is seedance2/seedance2-fast; rewrite user-provided Seedance avoid/ban/no-X requests as positive prompt instructions.",
|
|
63
|
+
},
|
|
64
|
+
videoModel: {
|
|
65
|
+
type: "string",
|
|
66
|
+
enum: ["ltx23-v2v", "wan22-animate", "seedance2", "seedance2-fast"],
|
|
67
|
+
description: 'Model selector for this video-to-video request. Usually omit; controlMode chooses the non-Seedance model. For controlMode="seedance-v2v", use "seedance2-fast" by default, especially when the user asks for Seedance Fast/seedance-fast or 480p/720p. Use "seedance2" only when the user explicitly asks for the full/non-fast Seedance model or 1080p.',
|
|
68
|
+
},
|
|
69
|
+
generateAudio: {
|
|
70
|
+
type: "boolean",
|
|
71
|
+
description: 'Seedance V2V only. Whether Seedance should generate/retain a native audio track. Omit by default; set false only when the user explicitly asks for silent output or no audio. Use only with controlMode="seedance-v2v".',
|
|
72
|
+
},
|
|
73
|
+
targetResolution: {
|
|
74
|
+
type: "number",
|
|
75
|
+
description: 'Seedance V2V only. Short-side output resolution target in pixels. Use when the user asks for a bare named resolution such as "480p", "720p", or "1080p" without exact dimensions. For Seedance V2V fast, 480p and 720p are supported; preserve the source video shape instead of forcing landscape pixels.',
|
|
76
|
+
},
|
|
77
|
+
sourceImageIndex: {
|
|
78
|
+
type: "number",
|
|
79
|
+
description: 'Optional index of a reference image (0-based). Required for "animate-move" and "animate-replace". Optional for "pose" (controls appearance if provided). Ignored by "canny", "depth", and "detailer".',
|
|
80
|
+
},
|
|
81
|
+
duration: {
|
|
82
|
+
type: "number",
|
|
83
|
+
description: 'Output video duration in seconds. Range: 2-20 for WAN/LTX modes and 4-15 for controlMode="seedance-v2v". If omitted, the tool matches the uploaded source video duration when available (capped to the selected model range); otherwise it falls back to 10s for WAN Animate Move/Replace and 5s for LTX-2.3/Seedance modes. For long stitched/bulk WAN Animate Move/Replace work with no explicit per-clip length, prefer about 10s clips rather than 5s chunks. Only pass this when the user explicitly requests a different length.',
|
|
84
|
+
minimum: 2,
|
|
85
|
+
maximum: 20,
|
|
86
|
+
},
|
|
87
|
+
numberOfVariations: {
|
|
88
|
+
type: "number",
|
|
89
|
+
description: "Number of video variations to generate (1-16). Default: 1.",
|
|
90
|
+
minimum: 1,
|
|
91
|
+
maximum: 16,
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
required: ["prompt"],
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/video-to-video/definition.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,gCAAgC,EAChC,kCAAkC,EAClC,oCAAoC,GACrC,MAAM,yCAAyC,CAAC;AAEjD,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,+iBAA+iB;QACjjB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,gCAAgC;;;;;;;;;;;;;;;uRAeqP;iBAC9Q;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,kCAAkC;iBAChD;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qYAAqY;iBACxY;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,cAAc;wBACd,iBAAiB;wBACjB,OAAO;wBACP,MAAM;wBACN,OAAO;wBACP,UAAU;wBACV,cAAc;qBACf;oBACD,WAAW,EACT,sFAAsF;wBACtF,kMAAkM;wBAClM,sNAAsN;wBACtN,mSAAmS;wBACnS,mQAAmQ;wBACnQ,iRAAiR;wBACjR,yXAAyX;wBACzX,+RAA+R,oCAAoC,yHAAyH;wBAC5b,2QAA2Q;iBAC9Q;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+PAA+P;iBAClQ;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,CAAC;oBACnE,WAAW,EACT,0VAA0V;iBAC7V;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,yNAAyN;iBAC5N;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4SAA4S;iBAC/S;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,uMAAuM;iBAC1M;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,wgBAAwgB;oBAC1gB,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4DAA4D;oBAC9D,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { sanitizeBatchPrompt } from './shared/promptSanitizer.js';
|
|
2
|
+
export { classifyError, parseResultForError, } from './shared/errorClassification.js';
|
|
3
|
+
export { MODELS_BY_TOOL, getAlternativeModels, getModelArgKey, getModelOptions, isQualityTierTool, } from './shared/modelRegistry.js';
|
|
4
|
+
export * from './shared/policyChecks.js';
|
|
5
|
+
export * from './shared/seedancePolicyErrors.js';
|
|
6
|
+
export * from './shared/llmHelpers.js';
|
|
7
|
+
export * from './shared/promptRefinementCache.js';
|
|
8
|
+
export * from './shared/imageEncoding.js';
|
|
9
|
+
export * from './shared/slotFailureSummary.js';
|
|
10
|
+
export * from './shared/visionDescriptionCache.js';
|
|
11
|
+
export * from './shared/downloadFilename.js';
|
|
12
|
+
export { addSubtitlesDefinition, animatePhotoDefinition, applyStyleDefinition, changeAngleDefinition, danceMontageDefinition, editImageDefinition, extendVideoDefinition, generateImageDefinition, generateMusicDefinition, generateVideoDefinition, generationToolDefinitions, orbitVideoDefinition, overlayVideoDefinition, refineResultDefinition, replaceVideoSegmentDefinition, restorePhotoDefinition, soundToVideoDefinition, stitchVideoDefinition, videoToVideoDefinition, OVERLAY_POSITIONS, STITCH_TRANSITION_TYPES, SUBTITLE_VERTICAL_POSITIONS, DANCE_PRESETS, resolveDancePresetForRequest, } from './definitions/index.js';
|
|
13
|
+
export { isToolResultErr, isToolResultOk, mapLegacyToolErrorCategory, toolErr, toolOk, } from './result.js';
|
|
14
|
+
export { expandSingleSourceFanOutForPerClipPrompts } from './normalizeArgs.js';
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EACL,aAAa,EACb,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAEnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,2BAA2B,EAC3B,aAAa,EACb,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,eAAe,EACf,cAAc,EACd,0BAA0B,EAC1B,OAAO,EACP,MAAM,GACP,MAAM,aAAa,CAAC;AAUrB,OAAO,EAAE,yCAAyC,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
function integerArray(value) {
|
|
2
|
+
if (!Array.isArray(value))
|
|
3
|
+
return null;
|
|
4
|
+
const parsed = [];
|
|
5
|
+
for (const entry of value) {
|
|
6
|
+
if (typeof entry !== 'number' || !Number.isInteger(entry))
|
|
7
|
+
return null;
|
|
8
|
+
parsed.push(entry);
|
|
9
|
+
}
|
|
10
|
+
return parsed;
|
|
11
|
+
}
|
|
12
|
+
function stringArray(value) {
|
|
13
|
+
if (!Array.isArray(value))
|
|
14
|
+
return null;
|
|
15
|
+
const parsed = [];
|
|
16
|
+
for (const entry of value) {
|
|
17
|
+
if (typeof entry !== 'string')
|
|
18
|
+
return null;
|
|
19
|
+
parsed.push(entry);
|
|
20
|
+
}
|
|
21
|
+
return parsed;
|
|
22
|
+
}
|
|
23
|
+
export function expandSingleSourceFanOutForPerClipPrompts(args) {
|
|
24
|
+
const prompts = stringArray(args.prompts);
|
|
25
|
+
if (!prompts || prompts.length <= 1)
|
|
26
|
+
return false;
|
|
27
|
+
const sourceImageIndices = integerArray(args.sourceImageIndices);
|
|
28
|
+
if (!sourceImageIndices || sourceImageIndices.length !== 1)
|
|
29
|
+
return false;
|
|
30
|
+
args.sourceImageIndices = Array.from({ length: prompts.length }, () => sourceImageIndices[0]);
|
|
31
|
+
const endImageIndices = integerArray(args.endImageIndices);
|
|
32
|
+
if (endImageIndices?.length === 1) {
|
|
33
|
+
args.endImageIndices = Array.from({ length: prompts.length }, () => endImageIndices[0]);
|
|
34
|
+
}
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=normalizeArgs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizeArgs.js","sourceRoot":"","sources":["../../src/tools/normalizeArgs.ts"],"names":[],"mappings":"AAAA,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACvE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,yCAAyC,CAAC,IAA6B;IACrF,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAElD,MAAM,kBAAkB,GAAG,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACjE,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEzE,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAClC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAC1B,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAC5B,CAAC;IAEF,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3D,IAAI,eAAe,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,CAC/B,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAC1B,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CACzB,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export function mapLegacyToolErrorCategory(category) {
|
|
2
|
+
switch (category) {
|
|
3
|
+
case 'schema_validation': return 'PARAMETER_INVALID';
|
|
4
|
+
case 'business_rule': return 'WORKFLOW_VALIDATION_FAILED';
|
|
5
|
+
case 'precondition_failed': return 'PERMISSION_REQUIRED';
|
|
6
|
+
case 'transient_failure': return 'PROVIDER_TIMEOUT';
|
|
7
|
+
case 'permanent_failure': return 'UNKNOWN_ERROR';
|
|
8
|
+
case 'insufficient_credits': return 'COST_LIMIT_EXCEEDED';
|
|
9
|
+
case 'timeout': return 'PROVIDER_TIMEOUT';
|
|
10
|
+
case 'cancelled': return 'USER_CANCELLED';
|
|
11
|
+
case 'content_refused': return 'SAFETY_REJECTED';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function toolOk(fields) {
|
|
15
|
+
return {
|
|
16
|
+
ok: true,
|
|
17
|
+
status: 'completed',
|
|
18
|
+
output_assets: [],
|
|
19
|
+
...fields,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export function toolErr(fields) {
|
|
23
|
+
return { ok: false, ...fields };
|
|
24
|
+
}
|
|
25
|
+
export function isToolResultOk(result) {
|
|
26
|
+
return result.ok === true;
|
|
27
|
+
}
|
|
28
|
+
export function isToolResultErr(result) {
|
|
29
|
+
return result.ok === false;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/tools/result.ts"],"names":[],"mappings":"AAyDA,MAAM,UAAU,0BAA0B,CAAC,QAAiC;IAC1E,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,mBAAmB,CAAC,CAAC,OAAO,mBAAmB,CAAC;QACrD,KAAK,eAAe,CAAC,CAAC,OAAO,4BAA4B,CAAC;QAC1D,KAAK,qBAAqB,CAAC,CAAC,OAAO,qBAAqB,CAAC;QACzD,KAAK,mBAAmB,CAAC,CAAC,OAAO,kBAAkB,CAAC;QACpD,KAAK,mBAAmB,CAAC,CAAC,OAAO,eAAe,CAAC;QACjD,KAAK,sBAAsB,CAAC,CAAC,OAAO,qBAAqB,CAAC;QAC1D,KAAK,SAAS,CAAC,CAAC,OAAO,kBAAkB,CAAC;QAC1C,KAAK,WAAW,CAAC,CAAC,OAAO,gBAAgB,CAAC;QAC1C,KAAK,iBAAiB,CAAC,CAAC,OAAO,iBAAiB,CAAC;IACnD,CAAC;AACH,CAAC;AAkFD,MAAM,UAAU,MAAM,CACpB,MACkE;IAElE,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,WAAW;QACnB,aAAa,EAAE,EAAE;QACjB,GAAG,MAAM;KACV,CAAC;AACJ,CAAC;AAGD,MAAM,UAAU,OAAO,CACrB,MAAiC;IAEjC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,CAAC;AAClC,CAAC;AAGD,MAAM,UAAU,cAAc,CAC5B,MAAqB;IAErB,OAAO,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;AAC5B,CAAC;AAGD,MAAM,UAAU,eAAe,CAC7B,MAA2B;IAE3B,OAAO,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC;AAC7B,CAAC"}
|