@sogni-ai/sogni-intelligence-client 2.1.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 +259 -0
- package/chatRun/index.d.ts +1 -0
- package/chatRun/index.js +2 -0
- package/context/index.d.ts +1 -0
- package/context/index.js +2 -0
- package/contracts/index.d.ts +1 -0
- package/contracts/index.js +2 -0
- package/dist/chatRun/costApproval.d.ts +10 -0
- package/dist/chatRun/costApproval.d.ts.map +1 -0
- package/dist/chatRun/costApproval.js +70 -0
- package/dist/chatRun/costApproval.js.map +1 -0
- package/dist/chatRun/index.d.ts +207 -0
- package/dist/chatRun/index.d.ts.map +1 -0
- package/dist/chatRun/index.js +350 -0
- package/dist/chatRun/index.js.map +1 -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/context/index.d.ts +56 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +460 -0
- package/dist/context/index.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 +1286 -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/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 +113 -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 +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +59 -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/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/openai-tools/_manifests.generated.d.ts +4 -0
- package/dist/openai-tools/_manifests.generated.d.ts.map +1 -0
- package/dist/openai-tools/_manifests.generated.js +1792 -0
- package/dist/openai-tools/_manifests.generated.js.map +1 -0
- package/dist/openai-tools/app-tools.json +297 -0
- package/dist/openai-tools/composition-tools.json +228 -0
- package/dist/openai-tools/generation-tools.json +1263 -0
- package/dist/openai-tools/index.d.ts +17 -0
- package/dist/openai-tools/index.d.ts.map +1 -0
- package/dist/openai-tools/index.js +32 -0
- package/dist/openai-tools/index.js.map +1 -0
- package/dist/public-skill-runtime/index.d.ts +1222 -0
- package/dist/public-skill-runtime/index.d.ts.map +1 -0
- package/dist/public-skill-runtime/index.js +6492 -0
- package/dist/public-skill-runtime/index.js.map +1 -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/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/schemas/errors/error.schema.json +21 -0
- package/dist/schemas/errors/repair-control.schema.json +40 -0
- package/dist/schemas/events/artifact-reference.schema.json +22 -0
- package/dist/schemas/events/progress-event.schema.json +28 -0
- package/dist/schemas/events/workflow-event.schema.json +22 -0
- package/dist/schemas/storyboards/storyboard-planning-contract.schema.json +108 -0
- package/dist/schemas/tools/add_subtitles.schema.json +77 -0
- package/dist/schemas/tools/animate_photo.schema.json +104 -0
- package/dist/schemas/tools/apply_style.schema.json +37 -0
- package/dist/schemas/tools/change_angle.schema.json +30 -0
- package/dist/schemas/tools/compose_instrumental.schema.json +24 -0
- package/dist/schemas/tools/compose_lyrics.schema.json +28 -0
- package/dist/schemas/tools/compose_script.schema.json +68 -0
- package/dist/schemas/tools/compose_workflow.schema.json +67 -0
- package/dist/schemas/tools/compose_workflow_template.schema.json +156 -0
- package/dist/schemas/tools/dance_montage.schema.json +47 -0
- package/dist/schemas/tools/edit_image.schema.json +74 -0
- package/dist/schemas/tools/enhance_prompt.schema.json +76 -0
- package/dist/schemas/tools/extend_video.schema.json +42 -0
- package/dist/schemas/tools/generate_image.schema.json +104 -0
- package/dist/schemas/tools/generate_music.schema.json +62 -0
- package/dist/schemas/tools/generate_video.schema.json +97 -0
- package/dist/schemas/tools/orbit_video.schema.json +70 -0
- package/dist/schemas/tools/overlay_video.schema.json +126 -0
- package/dist/schemas/tools/refine_result.schema.json +43 -0
- package/dist/schemas/tools/replace_video_segment.schema.json +60 -0
- package/dist/schemas/tools/restore_photo.schema.json +47 -0
- package/dist/schemas/tools/sound_to_video.schema.json +70 -0
- package/dist/schemas/tools/stitch_video.schema.json +52 -0
- package/dist/schemas/tools/video_to_video.schema.json +77 -0
- package/dist/schemas/workflows/durable-workflow-run.schema.json +165 -0
- package/dist/schemas/workflows/durable-workflow-step.schema.json +141 -0
- package/dist/skill-runtime-source/crossSurfaceParity.d.ts +23 -0
- package/dist/skill-runtime-source/crossSurfaceParity.d.ts.map +1 -0
- package/dist/skill-runtime-source/crossSurfaceParity.js +472 -0
- package/dist/skill-runtime-source/crossSurfaceParity.js.map +1 -0
- package/dist/skill-runtime-source/index.d.ts +4 -0
- package/dist/skill-runtime-source/index.d.ts.map +1 -0
- package/dist/skill-runtime-source/index.js +20 -0
- package/dist/skill-runtime-source/index.js.map +1 -0
- package/dist/skill-runtime-source/seedanceAudioWindow.d.ts +8 -0
- package/dist/skill-runtime-source/seedanceAudioWindow.d.ts.map +1 -0
- package/dist/skill-runtime-source/seedanceAudioWindow.js +52 -0
- package/dist/skill-runtime-source/seedanceAudioWindow.js.map +1 -0
- package/dist/skill-runtime-source/workflowStatus.d.ts +17 -0
- package/dist/skill-runtime-source/workflowStatus.d.ts.map +1 -0
- package/dist/skill-runtime-source/workflowStatus.js +353 -0
- package/dist/skill-runtime-source/workflowStatus.js.map +1 -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/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 +22 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +83 -0
- package/dist/tools/index.js.map +1 -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/dynamicPromptBranches.d.ts +20 -0
- package/dist/tools/shared/dynamicPromptBranches.d.ts.map +1 -0
- package/dist/tools/shared/dynamicPromptBranches.js +193 -0
- package/dist/tools/shared/dynamicPromptBranches.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/multiImageIntent.d.ts +2 -0
- package/dist/tools/shared/multiImageIntent.d.ts.map +1 -0
- package/dist/tools/shared/multiImageIntent.js +13 -0
- package/dist/tools/shared/multiImageIntent.js.map +1 -0
- package/dist/tools/shared/numberOfVariationsAlignment.d.ts +2 -0
- package/dist/tools/shared/numberOfVariationsAlignment.d.ts.map +1 -0
- package/dist/tools/shared/numberOfVariationsAlignment.js +37 -0
- package/dist/tools/shared/numberOfVariationsAlignment.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 +221 -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 +220 -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 +11 -0
- package/dist/workflows/index.d.ts.map +1 -0
- package/dist/workflows/index.js +48 -0
- package/dist/workflows/index.js.map +1 -0
- package/dist/workflows/primitives/index.d.ts +3 -0
- package/dist/workflows/primitives/index.d.ts.map +1 -0
- package/dist/workflows/primitives/index.js +19 -0
- package/dist/workflows/primitives/index.js.map +1 -0
- package/dist/workflows/primitives/retryUntilCondition.d.ts +39 -0
- package/dist/workflows/primitives/retryUntilCondition.d.ts.map +1 -0
- package/dist/workflows/primitives/retryUntilCondition.js +102 -0
- package/dist/workflows/primitives/retryUntilCondition.js.map +1 -0
- package/dist/workflows/primitives/validateWithRubric.d.ts +28 -0
- package/dist/workflows/primitives/validateWithRubric.d.ts.map +1 -0
- package/dist/workflows/primitives/validateWithRubric.js +148 -0
- package/dist/workflows/primitives/validateWithRubric.js.map +1 -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/chatRun/costApproval.js +64 -0
- package/dist-esm/chatRun/costApproval.js.map +1 -0
- package/dist-esm/chatRun/index.js +327 -0
- package/dist-esm/chatRun/index.js.map +1 -0
- package/dist-esm/client/SogniClientWrapper.js +877 -0
- package/dist-esm/client/SogniClientWrapper.js.map +1 -0
- package/dist-esm/context/index.js +453 -0
- package/dist-esm/context/index.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 +1282 -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 +10 -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/openai-tools/_manifests.generated.js +1789 -0
- package/dist-esm/openai-tools/_manifests.generated.js.map +1 -0
- package/dist-esm/openai-tools/app-tools.json +297 -0
- package/dist-esm/openai-tools/composition-tools.json +228 -0
- package/dist-esm/openai-tools/generation-tools.json +1263 -0
- package/dist-esm/openai-tools/index.js +27 -0
- package/dist-esm/openai-tools/index.js.map +1 -0
- package/dist-esm/package.json +3 -0
- package/dist-esm/public-skill-runtime/index.js +6390 -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/schemas/errors/error.schema.json +21 -0
- package/dist-esm/schemas/errors/repair-control.schema.json +40 -0
- package/dist-esm/schemas/events/artifact-reference.schema.json +22 -0
- package/dist-esm/schemas/events/progress-event.schema.json +28 -0
- package/dist-esm/schemas/events/workflow-event.schema.json +22 -0
- package/dist-esm/schemas/storyboards/storyboard-planning-contract.schema.json +108 -0
- package/dist-esm/schemas/tools/add_subtitles.schema.json +77 -0
- package/dist-esm/schemas/tools/animate_photo.schema.json +104 -0
- package/dist-esm/schemas/tools/apply_style.schema.json +37 -0
- package/dist-esm/schemas/tools/change_angle.schema.json +30 -0
- package/dist-esm/schemas/tools/compose_instrumental.schema.json +24 -0
- package/dist-esm/schemas/tools/compose_lyrics.schema.json +28 -0
- package/dist-esm/schemas/tools/compose_script.schema.json +68 -0
- package/dist-esm/schemas/tools/compose_workflow.schema.json +67 -0
- package/dist-esm/schemas/tools/compose_workflow_template.schema.json +156 -0
- package/dist-esm/schemas/tools/dance_montage.schema.json +47 -0
- package/dist-esm/schemas/tools/edit_image.schema.json +74 -0
- package/dist-esm/schemas/tools/enhance_prompt.schema.json +76 -0
- package/dist-esm/schemas/tools/extend_video.schema.json +42 -0
- package/dist-esm/schemas/tools/generate_image.schema.json +104 -0
- package/dist-esm/schemas/tools/generate_music.schema.json +62 -0
- package/dist-esm/schemas/tools/generate_video.schema.json +97 -0
- package/dist-esm/schemas/tools/orbit_video.schema.json +70 -0
- package/dist-esm/schemas/tools/overlay_video.schema.json +126 -0
- package/dist-esm/schemas/tools/refine_result.schema.json +43 -0
- package/dist-esm/schemas/tools/replace_video_segment.schema.json +60 -0
- package/dist-esm/schemas/tools/restore_photo.schema.json +47 -0
- package/dist-esm/schemas/tools/sound_to_video.schema.json +70 -0
- package/dist-esm/schemas/tools/stitch_video.schema.json +52 -0
- package/dist-esm/schemas/tools/video_to_video.schema.json +77 -0
- package/dist-esm/schemas/workflows/durable-workflow-run.schema.json +165 -0
- package/dist-esm/schemas/workflows/durable-workflow-step.schema.json +141 -0
- package/dist-esm/skill-runtime-source/crossSurfaceParity.js +469 -0
- package/dist-esm/skill-runtime-source/crossSurfaceParity.js.map +1 -0
- package/dist-esm/skill-runtime-source/index.js +4 -0
- package/dist-esm/skill-runtime-source/index.js.map +1 -0
- package/dist-esm/skill-runtime-source/seedanceAudioWindow.js +47 -0
- package/dist-esm/skill-runtime-source/seedanceAudioWindow.js.map +1 -0
- package/dist-esm/skill-runtime-source/workflowStatus.js +348 -0
- package/dist-esm/skill-runtime-source/workflowStatus.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 +18 -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/dynamicPromptBranches.js +183 -0
- package/dist-esm/tools/shared/dynamicPromptBranches.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/multiImageIntent.js +10 -0
- package/dist-esm/tools/shared/multiImageIntent.js.map +1 -0
- package/dist-esm/tools/shared/numberOfVariationsAlignment.js +34 -0
- package/dist-esm/tools/shared/numberOfVariationsAlignment.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 +212 -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 +8 -0
- package/dist-esm/workflows/index.js.map +1 -0
- package/dist-esm/workflows/primitives/index.js +3 -0
- package/dist-esm/workflows/primitives/index.js.map +1 -0
- package/dist-esm/workflows/primitives/retryUntilCondition.js +95 -0
- package/dist-esm/workflows/primitives/retryUntilCondition.js.map +1 -0
- package/dist-esm/workflows/primitives/validateWithRubric.js +141 -0
- package/dist-esm/workflows/primitives/validateWithRubric.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 +213 -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/src/skill-runtime-source/crossSurfaceParity.ts +525 -0
- package/src/skill-runtime-source/index.ts +10 -0
- package/src/skill-runtime-source/seedanceAudioWindow.ts +61 -0
- package/src/skill-runtime-source/workflowStatus.ts +375 -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,108 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "storyboard planning contract",
|
|
3
|
+
"schemaVersion": "2026-05-12.1",
|
|
4
|
+
"description": "Typed planner payload for storyboard layout and text-rendering decisions. Renderable visible text is intentionally separate from non-renderable production metadata labels.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schemaVersion", "source", "layout", "scenes", "endCard", "metadataLabels"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schemaVersion": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"const": "storyboard-planning-contract/v1"
|
|
12
|
+
},
|
|
13
|
+
"source": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"enum": ["llm_schema", "assistant_metadata", "user_schema", "fallback_text"]
|
|
16
|
+
},
|
|
17
|
+
"layout": {
|
|
18
|
+
"type": "object",
|
|
19
|
+
"additionalProperties": false,
|
|
20
|
+
"required": ["source", "storyboardCanvasAspectRatio", "storyboardCellAspectRatio", "targetVideoAspectRatio", "boardDimensions"],
|
|
21
|
+
"properties": {
|
|
22
|
+
"source": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"enum": ["llm_schema", "assistant_metadata", "user_schema", "fallback_text"]
|
|
25
|
+
},
|
|
26
|
+
"storyboardCanvasAspectRatio": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"description": "Aspect ratio for the composite storyboard sheet/page, such as 16:9 or 9:16."
|
|
29
|
+
},
|
|
30
|
+
"storyboardCellAspectRatio": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"description": "Aspect ratio for each cinematic video-frame artwork area inside the storyboard."
|
|
33
|
+
},
|
|
34
|
+
"targetVideoAspectRatio": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"description": "Final video aspect ratio, such as 9:16 for vertical social video."
|
|
37
|
+
},
|
|
38
|
+
"boardDimensions": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"description": "Optional exact storyboard board dimensions, such as 2560x1440 or 1440x2560."
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"scenes": {
|
|
45
|
+
"type": "array",
|
|
46
|
+
"items": {
|
|
47
|
+
"type": "object",
|
|
48
|
+
"additionalProperties": false,
|
|
49
|
+
"required": ["id", "index", "visibleText", "metadataLabels", "referenceUsage"],
|
|
50
|
+
"properties": {
|
|
51
|
+
"id": {
|
|
52
|
+
"type": "string"
|
|
53
|
+
},
|
|
54
|
+
"index": {
|
|
55
|
+
"type": "integer",
|
|
56
|
+
"minimum": 1,
|
|
57
|
+
"maximum": 24
|
|
58
|
+
},
|
|
59
|
+
"visibleText": {
|
|
60
|
+
"type": "array",
|
|
61
|
+
"items": {
|
|
62
|
+
"type": "string"
|
|
63
|
+
},
|
|
64
|
+
"description": "Only text that should actually appear inside the final video frame, such as brand copy, CTA text, signage, captions, or diegetic text."
|
|
65
|
+
},
|
|
66
|
+
"metadataLabels": {
|
|
67
|
+
"type": "array",
|
|
68
|
+
"items": {
|
|
69
|
+
"type": "string"
|
|
70
|
+
},
|
|
71
|
+
"description": "Production labels, timing notes, scene numbers, overlay markers, placeholders, and other notes that may guide the storyboard but must not be rendered inside a video scene or Seedance output."
|
|
72
|
+
},
|
|
73
|
+
"referenceUsage": {
|
|
74
|
+
"type": "array",
|
|
75
|
+
"items": {
|
|
76
|
+
"type": "string"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"endCard": {
|
|
83
|
+
"type": "object",
|
|
84
|
+
"additionalProperties": false,
|
|
85
|
+
"required": ["visibleText", "metadataLabels"],
|
|
86
|
+
"properties": {
|
|
87
|
+
"visibleText": {
|
|
88
|
+
"type": "array",
|
|
89
|
+
"items": {
|
|
90
|
+
"type": "string"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"metadataLabels": {
|
|
94
|
+
"type": "array",
|
|
95
|
+
"items": {
|
|
96
|
+
"type": "string"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"metadataLabels": {
|
|
102
|
+
"type": "array",
|
|
103
|
+
"items": {
|
|
104
|
+
"type": "string"
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schemas.sogni.ai/creative-agent/2026-04-27.1/tools/add_subtitles.schema.json",
|
|
4
|
+
"title": "add_subtitles arguments",
|
|
5
|
+
"schemaVersion": "2026-04-27.1",
|
|
6
|
+
"description": "Burn subtitles into a video from caller-supplied cues or an SRT/VTT string. Use when the user asks to add captions, subtitles, on-screen dialogue, or burned-in lyrics to a video. Either pass `cues` as an array of {startSeconds, endSeconds, text}, or pass a full `srt` string. Pace cues like real subtitles: split the script into multiple short cues (typically 1.5–4 seconds each, ~1–8 words per cue, roughly 15–20 characters per second of cue duration). Never burn a single cue that spans the entire clip — even a static image should get progressively revealed lines, not one paragraph held on screen the whole time. Auto-transcription (auto_transcribe=true) is not yet enabled and will return USER_INPUT_INCOMPLETE — when the user has not supplied lines, ask them for the cue text and timing instead of calling with auto_transcribe. If the user explicitly asks you to write, invent, improvise, or make up captions/subtitles, create a few short, generic cue lines yourself and call this tool with cues; do not ask a follow-up for exact wording in that case.",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"sourceVideoIndex": {
|
|
11
|
+
"type": "number",
|
|
12
|
+
"description": "Which video to subtitle. Default: -1 (most recent generated or uploaded video). Non-negative values are 0-based indices into prior generated video results. Negative values reference uploaded videos."
|
|
13
|
+
},
|
|
14
|
+
"cues": {
|
|
15
|
+
"type": "array",
|
|
16
|
+
"description": "Ordered subtitle cues. Each cue has startSeconds, endSeconds, and the line of text to display. Provide either `cues` or `srt`, not both. Aim for multiple short cues (1.5–4s each, ~1–8 words) rather than one long cue spanning the full clip.",
|
|
17
|
+
"items": {
|
|
18
|
+
"type": "object",
|
|
19
|
+
"properties": {
|
|
20
|
+
"startSeconds": {
|
|
21
|
+
"type": "number",
|
|
22
|
+
"minimum": 0
|
|
23
|
+
},
|
|
24
|
+
"endSeconds": {
|
|
25
|
+
"type": "number",
|
|
26
|
+
"minimum": 0
|
|
27
|
+
},
|
|
28
|
+
"text": {
|
|
29
|
+
"type": "string"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"required": [
|
|
33
|
+
"startSeconds",
|
|
34
|
+
"endSeconds",
|
|
35
|
+
"text"
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"srt": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"description": "Full SRT (or VTT) document as a string, used in place of `cues`. Useful when the user pastes a subtitle file directly. Provide either `cues` or `srt`, not both."
|
|
42
|
+
},
|
|
43
|
+
"auto_transcribe": {
|
|
44
|
+
"type": "boolean",
|
|
45
|
+
"description": "Reserved for future speech-to-text support. Currently returns USER_INPUT_INCOMPLETE so the LLM can ask the user to supply cues. Do not set this — gather cue text from the user instead."
|
|
46
|
+
},
|
|
47
|
+
"style": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"description": "Optional styling overrides for the burned subtitles.",
|
|
50
|
+
"properties": {
|
|
51
|
+
"fontSizePct": {
|
|
52
|
+
"type": "number",
|
|
53
|
+
"minimum": 1,
|
|
54
|
+
"maximum": 30,
|
|
55
|
+
"description": "Font size as a percentage of the video height. Default 6."
|
|
56
|
+
},
|
|
57
|
+
"color": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"description": "Subtitle fill color. Default \"#FFFFFF\"."
|
|
60
|
+
},
|
|
61
|
+
"outlineColor": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"description": "Subtitle outline color. Default \"#000000\"."
|
|
64
|
+
},
|
|
65
|
+
"position": {
|
|
66
|
+
"type": "string",
|
|
67
|
+
"enum": [
|
|
68
|
+
"bottom",
|
|
69
|
+
"top",
|
|
70
|
+
"center"
|
|
71
|
+
],
|
|
72
|
+
"description": "Vertical placement of the subtitle line. Default \"bottom\"."
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schemas.sogni.ai/creative-agent/2026-04-27.1/tools/animate_photo.schema.json",
|
|
4
|
+
"title": "animate_photo arguments",
|
|
5
|
+
"schemaVersion": "2026-04-27.1",
|
|
6
|
+
"description": "Animate a photo into video with motion, audio, and dialogue using LTX 2.3 or WAN 2.2. Do NOT use this tool for seedance2 or seedance2-fast. Seedance 2.0 media references must go through generate_video with referenceImageIndices/referenceVideoIndices/referenceAudioIndices and @Image/@Video/@Audio role text in the prompt; for seamless-loop Seedance requests with one uploaded image, the prompt should anchor it as both the first frame and last frame. LTX/WAN NOTE: uploaded audio files are not loose references for ltx23/wan22; use sound_to_video when uploaded audio is the primary sync target. DANCE REQUESTS (\"make them dance\", \"do the X dance\"): use dance_montage — NOT this tool. LTX 2.3 generates audio natively — describe dialogue and ambient sounds directly in the prompt (do NOT pre-generate audio for this tool). 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 — always use ltx23 when persona voice is requested (WAN 2.2 does not support voice identity). PERSONA PIPELINE: For persona videos, ensure an image of the persona exists before calling animate_photo. The standard pipeline is: resolve_personas → edit_image → animate_photo. If a suitable persona image already exists (user uploaded one, a prior edit_image/generate_image result, OR the user explicitly says to use the Persona image/reference photo directly), skip edit_image and animate directly. After resolve_personas, this tool can animate the injected persona image directly when that explicit direct-use instruction is given. Auto-uses the latest result image (from any prior tool) unless sourceImageIndex is set. Supports start-frame (default), end-frame, and start+end interpolation modes for LTX/WAN — ask the user which frame role their image should play if they mention \"end frame\", \"last frame\", or provide two images. FIRST+LAST FRAME WORKFLOW: When the user wants a non-Seedance video using two different scenes as start and end frames, FIRST generate both images in a single generate_image/edit_image call with numberOfVariations=2 and Dynamic Prompts, THEN call animate_photo with frameRole=\"both\", sourceImageIndex=0, endImageIndex=1. Never generate the two frames in separate tool calls. In frameRole=\"both\", the handler automatically inspects both images and upgrades the base prompt into a scene-aware smooth transition prompt, so your prompt should state the desired transition style, action, dialogue, and audio rather than trying to list every visible object. If the request is vague, analyze the image first and suggest 2-3 specific animation ideas tailored to what you see. Only call once you have clear creative intent. N-VIDEOS PATTERN — ALWAYS BATCH IN ONE CALL: When the user wants N video versions or a multi-segment stitched non-Seedance video, NEVER call animate_photo N times. Always use sourceImageIndices in a single call so all N projects run in parallel. sourceImageIndices supports up to 16 entries; there is NO 3-clip cap, so do not split one planned batch into \"first 3\" and \"remaining\" calls. For a dialogue-heavy total-duration request with no explicit per-clip duration, prefer 15-second clips (30s total = 2 clips × 15s), not 5×6s or 6×5s. Two flavors: (A) SHARED CONTENT — when all N clips have the same dialogue/motion but different source visuals (different scenes, outfits, environments, persona looks), first generate N distinct images via ONE edit_image/generate_image call with numberOfVariations=N + Dynamic Prompts {|}, then call animate_photo with sourceImageIndices=[start..start+N-1] and a single shared `prompt`. If all segments intentionally reuse the primary uploaded image instead of generated source images, use sourceImageIndices=[-1,-1,...] with one -1 per segment. For a long or multi-segment video from a single supplied/uploaded image WITHOUT a requested image/keyframe/version generation stage, use sourceImageIndices=[-1,-1,...] and per-clip prompts. Only set frameRole=\"both\" and endImageIndex=-1 when the user explicitly says the same uploaded/source/original image should be both the first and last frame of every segment. If the user requests generated source images first, honor that image stage, then animate the generated result indices. When using generated scene keyframes and each clip should begin and end on its own scene image for stitching, call animate_photo with frameRole=\"both\" and sourceImageIndices=[start..end] but OMIT endImageIndex; do not set endImageIndex=-1 unless every source is the uploaded image. (B) PER-CLIP CONTENT — when each clip has DIFFERENT dialogue, jokes, narration, or motion (e.g. \"4 videos where each tells a different joke\"), pass BOTH sourceImageIndices AND `prompts` (an array of N strings, one per clip) in the same single call. Each prompt must independently anchor the visible characters, scene action, camera, audio, exact screenplay-style speaker tags, and exact quoted dialogue for that segment. If you just wrote or displayed a script/table, copy the exact dialogue lines into the corresponding per-clip prompts; do not summarize them as speech activity. If using named speaker tags with any multi-person reference image or generated scene keyframe, include one explicit cast map in each prompt that binds each name to visible position, clothing, and props/actions, e.g. SPEAKER_A = left person holding a prop; SPEAKER_B = center person with tablet; SPEAKER_C = right person near table. Do not also describe the same people again as generic man/boy/girl/woman/character subjects. For screenplay, storyboard, commercial, series, or other longer-form tasks with recurring characters, preserve the same character names and repeated visual anchors in every per-clip prompt where each character appears. The fan-out launches all N projects in parallel with their respective per-clip prompts. Use the standard single-source path (numberOfVariations only) when the user wants motion variety from a single fixed frame instead.",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"prompt": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "I2V RULE: Do NOT re-describe what is visible in the input image. Focus on the transition from stillness — motion, expression changes, what happens next, camera movement, and sound.\n\nLITERAL PROMPT OVERRIDE: If the user explicitly says not to modify the prompt, or to use it exactly/verbatim/as-is, copy the identified prompt text verbatim instead of applying these construction rules unless a hard requirement is missing. Set skipPromptProcessing=true; for Seedance also set expandPrompt=false.\n\nSTRUCTURE: \"[How the subject begins to move]. [What changes next]. [Camera behavior]. [Audio].\"\n\nMOTION 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.\n\nBLOCKING: Use the image as the anchor and direct only meaningful layout changes. If the prompt introduces multiple moving subjects, state left/right placement, foreground/background, facing toward/away, and relative distance.\n\nACTION: One flowing paragraph. Describe motion beat by beat with temporal connectors (\"as\", \"then\", \"while\"). Specify who moves, what moves, how it moves, and what the camera does. One main thread — avoid too many actions at once or generic phrases like \"comes alive.\"\n\nDIALOGUE: 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 labels. LTX 2.3 generates audio natively. 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 (e.g. bold white text reading CONGRATULATIONS overlays the lower third).\n\nAUDIO: 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.\n\nCAMERA: Cinematic terms — slow push-in, static tripod, handheld, slow arc, dolly in. Describe movement relative to subject.\n\nFor first+last-frame transitions (frameRole=\"both\"), write a concise base request for the transition style, action, dialogue, and audio. The handler will inspect both frames and expand it into a scene-aware prompt that maps visible objects and subjects between frames.\n\nFor specific characters (movies, TV): describe visual appearance — don't rely on names alone.\n\nFor complex/creative scenes (characters talking, skits), capture full creative intent — system auto-expands into detailed prompt.\n\nAVOID: Re-describing the image, vague prompts, too many actions at once, abstract emotions without visible behavior, rigid numeric constraints, readable text or logos.\n\nWAN 2.2 (\"wan22\"): 30-150 words, subtle natural movements.\n\nBATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax to vary motion, camera, or atmosphere while preserving the user's specified elements. Example: \"{gentle sway with soft birdsong|dramatic zoom with rolling thunder|slow pan with ambient music}\"."
|
|
13
|
+
},
|
|
14
|
+
"expandPrompt": {
|
|
15
|
+
"type": "boolean",
|
|
16
|
+
"description": "Optional. Set false only for pipeline-authored prompts that should bypass model-specific prompt expansion."
|
|
17
|
+
},
|
|
18
|
+
"skipPromptProcessing": {
|
|
19
|
+
"type": "boolean",
|
|
20
|
+
"description": "Bypass automatic prompt shaping/refinement, image-description anchoring, transition-prompt rewriting, and voice-identity prompt formatting so the prompt text is sent unchanged to the video model. Set true ONLY when the user explicitly says not to modify/rewrite/enhance/expand/change/improve the prompt, or to use/send it exactly, verbatim, or as-is, AND the provided prompt already satisfies the tool requirements. Continue to set non-prompt parameters such as source indices, frameRole, model, duration, count, and aspect ratio. For Seedance literal prompt requests, also set expandPrompt=false. Do not set for ordinary underspecified requests."
|
|
21
|
+
},
|
|
22
|
+
"videoModel": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"enum": [
|
|
25
|
+
"ltx23",
|
|
26
|
+
"wan22"
|
|
27
|
+
],
|
|
28
|
+
"description": "Which video model to use. \"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. Use ltx23 for most requests. Use wan22 for quick simple motions without audio. Default: \"ltx23\". Do not set seedance2 or seedance2-fast here; use generate_video with referenceImageIndices and @Image role text for Seedance."
|
|
29
|
+
},
|
|
30
|
+
"negativePrompt": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"description": "Optional negative prompt for LTX/Wan image-to-video models. Use only when the user explicitly states what should be avoided; do not use this field for Seedance workflows."
|
|
33
|
+
},
|
|
34
|
+
"duration": {
|
|
35
|
+
"type": "number",
|
|
36
|
+
"description": "Video duration in seconds. Default: 5. Use when the user explicitly requests a specific length (e.g., \"make a 10 second video\"). Range: 2-20."
|
|
37
|
+
},
|
|
38
|
+
"targetResolution": {
|
|
39
|
+
"type": "number",
|
|
40
|
+
"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. This preserves the source image aspect ratio. 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-pixel aspectRatio instead."
|
|
41
|
+
},
|
|
42
|
+
"sourceImageIndex": {
|
|
43
|
+
"type": "number",
|
|
44
|
+
"description": "Which image to use as the START frame. Use 0-based non-negative indices for generated result images. Use negative indices for uploaded images: -1 = first/primary upload, -2 = second upload, -3 = third upload, etc. Omit to auto-select: uses the latest result for \"start\"/\"end\" modes, or the FIRST result for \"both\" mode. IMPORTANT: When frameRole is \"both\", set this to the start frame image index and endImageIndex to the end frame image index."
|
|
45
|
+
},
|
|
46
|
+
"sourceImageIndices": {
|
|
47
|
+
"type": "array",
|
|
48
|
+
"items": {
|
|
49
|
+
"type": "number"
|
|
50
|
+
},
|
|
51
|
+
"minItems": 1,
|
|
52
|
+
"maxItems": 16,
|
|
53
|
+
"description": "Array of source frame indices — one video is generated per entry as its own SDK project, all running in PARALLEL. Use 0-based non-negative result indices for generated images. Use negative indices for uploaded images: -1 = first/primary upload, -2 = second upload, -3 = third upload, etc. Repeating -1 is allowed and is REQUIRED for multi-segment videos that reuse the same uploaded image as every segment's start frame. By default all projects share the `prompt`/`voice`/`duration`, but you can pass `prompts` (array) to give each clip its own dialogue/motion. ALWAYS use this for non-Seedance \"N videos\" or multi-segment request — never call animate_photo N times sequentially. Do NOT combine with `numberOfVariations`, `sourceImageIndex`, or frameRole=\"end\". You MAY combine with frameRole=\"both\" when clips need end frames. For adjacent transition chains across generated images, use sourceImageIndices=[start..end-1] and endImageIndices=[start+1..end] so N images produce N-1 transition clips. If the uploaded/original image starts the chain and generated results are the remaining frames, use sourceImageIndices=[-1,start..end-1] and endImageIndices=[start..end]. If the user supplies multiple uploaded images as the actual keyframe sequence, use adjacent negative uploaded indices, e.g. 5 uploaded images become sourceImageIndices=[-1,-2,-3,-4], endImageIndices=[-2,-3,-4,-5], frameRole=\"both\", prompts length 4, then stitch_video. If the user specifies transition motion, camera behavior, actions, dialogue, or audio, copy those instructions into every corresponding per-clip prompt; only invent a generic smooth transition when the user does not specify one. If the user asks for a seamless loop or final transition from the last image back to the first, close the chain by including the last image as a source and the first image as the final end frame, e.g. 5 uploaded images become sourceImageIndices=[-1,-2,-3,-4,-5], endImageIndices=[-2,-3,-4,-5,-1]. For generated scene keyframes that should each loop to themselves, omit endImageIndex/endImageIndices so each source image is also its own end frame. Set endImageIndex=-1 only when every sourceImageIndices entry is also -1 and every segment reuses the first uploaded image. Range: 1–16 indices. For generated image batches, values MUST be read from the latest edit_image/generate_image tool result's `startIndex` field. If startIndex=3 and 4 images were generated in that batch, pass `[3,4,5,6]` (NOT `[0,1,2,3]`). Do NOT assume generated indices start at 0 — they don't if there are prior results in the conversation."
|
|
54
|
+
},
|
|
55
|
+
"prompts": {
|
|
56
|
+
"type": "array",
|
|
57
|
+
"items": {
|
|
58
|
+
"type": "string"
|
|
59
|
+
},
|
|
60
|
+
"minItems": 1,
|
|
61
|
+
"maxItems": 16,
|
|
62
|
+
"description": "Per-clip prompts for fan-out — use when the user wants DIFFERENT dialogue, jokes, narration, or motion in each video. MUST be paired with `sourceImageIndices` and have the SAME length. Each entry is the full prompt for the corresponding source image. If a clip has speech, include exact spoken words in double quotes with stable speaker tags; do NOT write placeholders like \"while speaking\", \"dialogue begins\", \"explaining\", or \"final line lands\". If you just wrote a script/table/storyboard, copy that clip's exact dialogue into this prompt. When named speakers appear in a multi-person reference image or generated keyframe, start each entry with one compact cast map that binds names to visible anchors before dialogue, e.g. Cast map: SPEAKER_A is the left person holding the prop; SPEAKER_B is the center person with the tablet; SPEAKER_C is the right person near the table. Then move directly into action/dialogue; do not describe those same people again as generic man/boy/girl/woman/character subjects. This prevents speaker tags from being assigned to the wrong visible character. When set, the top-level `prompt` parameter is ignored (still required by the schema — just pass any descriptive string, e.g. a brief summary of the batch). Example: 4 source images of a couple, \"make each video have a different joke\" → sourceImageIndices=[0,1,2,3], prompts=[\"Cast map: She is the left woman in the blue dress; He is the right man in the gray jacket. She says: \\\"Why did the scarecrow win an award?\\\" He grins.\", \"Cast map: He is the right man in the gray jacket; She is the left woman in the blue dress. He says: \\\"Because he was outstanding in his field!\\\" She laughs.\", \"...\", \"...\"]. Omit this when all clips share the same dialogue/motion (visual variety only) — fan-out will use the shared `prompt` for every clip."
|
|
63
|
+
},
|
|
64
|
+
"numberOfVariations": {
|
|
65
|
+
"type": "number",
|
|
66
|
+
"description": "Number of variations (1-16). Use 1 unless user explicitly requests multiple separate video outputs.",
|
|
67
|
+
"minimum": 1,
|
|
68
|
+
"maximum": 16
|
|
69
|
+
},
|
|
70
|
+
"aspectRatio": {
|
|
71
|
+
"type": "string",
|
|
72
|
+
"description": "Do NOT set unless the user explicitly requests an aspect ratio, format, orientation, or exact pixel dimensions. When a reference/source image is used and the user did not ask to change its shape, omit this field so the handler preserves the selected source image's own ratio.\n\nFormats: \"16:9\", \"9:16\", \"4:5\", \"1:1\", \"4:3\", \"3:2\", \"21:9\", or exact pixels like \"1920x1080\".\n\nCRITICAL: When the user specifies exact pixel dimensions (e.g., \"1280x720\", \"1080x1920\", \"1920x1080\", \"3840x2160\") or an orientation-qualified named resolution (e.g., \"720p landscape\", \"720p portrait\"), use the exact pixel format, NOT a ratio like \"16:9\" or \"9:16\". Exact user-requested dimensions override the selected default media quality, including Pro/HQ defaults. A bare named video resolution like \"720p resolution\" is only a resolution tier/short-side request; do not turn it into landscape pixels and do not set aspectRatio unless the user also states landscape, portrait, vertical, horizontal, or exact pixels. If requested pixels are in bounds but not on the model's pixel step, still pass the user's exact pixel request; the handler snaps to the nearest supported size internally. Only use ratio format when the user says a generic format name without pixel dimensions.\n\nMappings (use ONLY when user does NOT specify pixel dimensions): landscape/widescreen/YouTube/cinematic → \"16:9\". portrait → \"9:16\". TikTok/Reels/IG Reels → \"1080x1920\". ultrawide/cinema scope → \"21:9\". Instagram post → \"4:5\". square → \"1:1\". standard/TV → \"4:3\". 720p landscape → \"1280x720\". 720p portrait → \"720x1280\". 1080p landscape → \"1920x1080\". 1080p portrait/HD portrait → \"1080x1920\". 4K landscape → \"3840x2160\". 4K portrait → \"2160x3840\". Never set for generic requests like \"make a video\"."
|
|
73
|
+
},
|
|
74
|
+
"frameRole": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"enum": [
|
|
77
|
+
"start",
|
|
78
|
+
"end",
|
|
79
|
+
"both"
|
|
80
|
+
],
|
|
81
|
+
"description": "How to use the source image(s) for non-Seedance video generation. \"start\" (default): image is the first frame — video animates forward from it. \"end\": image is the last frame — video leads up to it. \"both\": two images provided — interpolates between start and end frames. For single clips using \"both\", set sourceImageIndex to the start frame and endImageIndex to the end frame. For sourceImageIndices fan-out using repeated -1, use frameRole=\"both\" and set endImageIndex=-1 when every segment must use the uploaded image as the shared last frame. For adjacent generated-image transitions, use frameRole=\"both\" with matching sourceImageIndices and endImageIndices arrays. Omit endImageIndex/endImageIndices only when each source image should also be its own end frame. The handler inspects different start/end frames and generates a detailed transition prompt automatically."
|
|
82
|
+
},
|
|
83
|
+
"endImageIndex": {
|
|
84
|
+
"type": "number",
|
|
85
|
+
"description": "Which image to use as the END frame. Use 0-based non-negative indices for generated results. Use negative indices for uploaded images: -1 = first/primary upload, -2 = second upload, -3 = third upload, etc. For a single frameRole=\"both\" transition between two different images, set this to the desired end frame. For sourceImageIndices fan-out where each generated keyframe should also be its own last frame, OMIT this field. Use a shared uploaded endImageIndex only when every sourceImageIndices entry is also an uploaded image; otherwise use endImageIndices for per-clip end frames."
|
|
86
|
+
},
|
|
87
|
+
"endImageIndices": {
|
|
88
|
+
"type": "array",
|
|
89
|
+
"items": {
|
|
90
|
+
"type": "number"
|
|
91
|
+
},
|
|
92
|
+
"minItems": 1,
|
|
93
|
+
"maxItems": 16,
|
|
94
|
+
"description": "Per-clip END frame indices for sourceImageIndices fan-out. Use ONLY with frameRole=\"both\". Length MUST exactly match sourceImageIndices. Use 0-based non-negative indices for generated results and negative indices for uploaded images (-1 first upload, -2 second upload, etc.). Use this for transition chains between generated images, e.g. 5 generated images at indices [0,1,2,3,4] should become 4 transition clips with sourceImageIndices=[0,1,2,3], endImageIndices=[1,2,3,4], prompts length 4, duration as requested, then stitch_video. If the chain starts on the uploaded image and continues through generated results [0,1,2,3], use sourceImageIndices=[-1,0,1,2] and endImageIndices=[0,1,2,3]. If the user supplies 5 uploaded images as the sequence, use sourceImageIndices=[-1,-2,-3,-4] and endImageIndices=[-2,-3,-4,-5]. If the user requests a seamless loop or final transition back to the first image, append that loop closure: sourceImageIndices=[-1,-2,-3,-4,-5], endImageIndices=[-2,-3,-4,-5,-1]. Do NOT also set endImageIndex when using this."
|
|
95
|
+
},
|
|
96
|
+
"voicePersonaName": {
|
|
97
|
+
"type": "string",
|
|
98
|
+
"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 shown in the video (e.g. \"David\" narrates a video of 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."
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"required": [
|
|
102
|
+
"prompt"
|
|
103
|
+
]
|
|
104
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schemas.sogni.ai/creative-agent/2026-04-27.1/tools/apply_style.schema.json",
|
|
4
|
+
"title": "apply_style arguments",
|
|
5
|
+
"schemaVersion": "2026-04-27.1",
|
|
6
|
+
"description": "Apply an artistic style, era-specific look, or creative transformation to a photo. Use when the user wants to change the visual style (e.g., \"make it look like the 70s\", \"oil painting style\", \"vintage polaroid look\"). Can handle any creative transformation. One style per call. IMPORTANT: When previous results exist, this tool automatically uses the LATEST result image unless you specify a different sourceImageIndex or the user explicitly says \"original\". So just call it without sourceImageIndex for follow-up requests.",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"prompt": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Style prompt for Qwen Image Edit 2511 (50-200 words, natural language sentences).\n\nLITERAL PROMPT OVERRIDE: If the user explicitly says not to modify the prompt, or to use it exactly/verbatim/as-is, copy the identified prompt text verbatim instead of applying these construction rules unless a hard requirement is missing.\n\nPROMPT ORDER: [IDENTITY LOCK if people] → [STYLE TRANSFER INSTRUCTION] → [PRESERVE UNMENTIONED DETAILS]\n\nRules:\n- Use POSITIVE phrasing only. The model ignores negatives (\"preserve exact facial likeness\" NOT \"don't change the face\").\n- Transfer the visual STYLE ONLY, not the identity. Borrow palette, texture, contrast behavior, and stylistic treatment — NOT face structure.\n- Reference known art styles, artists, and franchises BY NAME to anchor the style — be specific, never generic.\n- Describe specific visual characteristics: brushstrokes, color palette, texture, composition approach, mood.\n- For era looks: describe the photographic qualities of that era (e.g., \"warm faded Kodachrome tones with soft vignette, typical of 1970s amateur photography\").\n- CRITICAL for photos with people: FRONT-LOAD identity preservation BEFORE the style instruction. 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 style. End with \"Keep the subject recognizable as the same person. Maintain exact positioning, poses, and composition.\"\n- Go bold with pop culture and iconic styles: \"Andy Warhol pop art with bold neon screen-print colors\", \"Banksy stencil street art with gritty urban textures\", \"Studio Ghibli watercolor with soft pastoral warmth\", \"Pixar 3D render with glossy skin and exaggerated features\", \"Tim Burton gothic with pale skin and dark spiraling backgrounds\", \"Van Gogh Starry Night with thick impasto swirls and vibrant blues\", \"Takashi Murakami superflat with psychedelic flowers and bold outlines\".\n- Always end with \"Preserve the subject's identity, pose, and composition.\""
|
|
13
|
+
},
|
|
14
|
+
"sourceImageIndex": {
|
|
15
|
+
"type": "number",
|
|
16
|
+
"description": "Which result image to apply the style to (0-based index). Omit to use the latest result automatically (or the original if no results exist). Only set explicitly when the user specifies a particular image number or explicitly says \"original\" (use -1 for original)."
|
|
17
|
+
},
|
|
18
|
+
"scale": {
|
|
19
|
+
"type": "number",
|
|
20
|
+
"enum": [
|
|
21
|
+
1,
|
|
22
|
+
1.5,
|
|
23
|
+
2,
|
|
24
|
+
3,
|
|
25
|
+
4
|
|
26
|
+
],
|
|
27
|
+
"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."
|
|
28
|
+
},
|
|
29
|
+
"aspectRatio": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"description": "Do NOT set unless the user explicitly requests an aspect ratio, format, orientation, or exact pixel dimensions. When a reference/source image is used and the user did not ask to change its shape, omit this field so the handler preserves the selected source image's own ratio.\n\nFormats: \"16:9\", \"9:16\", \"4:5\", \"1:1\", \"4:3\", \"3:2\", \"21:9\", or exact pixels like \"1920x1080\".\n\nCRITICAL: When the user specifies exact pixel dimensions (e.g., \"1280x720\", \"1080x1920\", \"1920x1080\", \"3840x2160\") or an orientation-qualified named resolution (e.g., \"720p landscape\", \"720p portrait\"), use the exact pixel format, NOT a ratio like \"16:9\" or \"9:16\". Exact user-requested dimensions override the selected default media quality, including Pro/HQ defaults. A bare named video resolution like \"720p resolution\" is only a resolution tier/short-side request; do not turn it into landscape pixels and do not set aspectRatio unless the user also states landscape, portrait, vertical, horizontal, or exact pixels. If requested pixels are in bounds but not on the model's pixel step, still pass the user's exact pixel request; the handler snaps to the nearest supported size internally. Only use ratio format when the user says a generic format name without pixel dimensions.\n\nMappings (use ONLY when user does NOT specify pixel dimensions): landscape/widescreen/YouTube/cinematic → \"16:9\". portrait → \"9:16\". TikTok/Reels/IG Reels → \"1080x1920\". ultrawide/cinema scope → \"21:9\". Instagram post → \"4:5\". square → \"1:1\". standard/TV → \"4:3\". 720p landscape → \"1280x720\". 720p portrait → \"720x1280\". 1080p landscape → \"1920x1080\". 1080p portrait/HD portrait → \"1080x1920\". 4K landscape → \"3840x2160\". 4K portrait → \"2160x3840\". Never set for generic requests like \"make a video\"."
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"required": [
|
|
35
|
+
"prompt"
|
|
36
|
+
]
|
|
37
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schemas.sogni.ai/creative-agent/2026-04-27.1/tools/change_angle.schema.json",
|
|
4
|
+
"title": "change_angle arguments",
|
|
5
|
+
"schemaVersion": "2026-04-27.1",
|
|
6
|
+
"description": "Generate the photo from a different camera angle or perspective. Uses AI to create a new view of the subject as if photographed from a different position. Use when the user wants to see the subject from another angle, generate a different view, create a portrait from a specific direction, or get a closeup/wide shot. Examples: \"show me from the left side\", \"generate a 3/4 portrait view\", \"closeup from slightly above\". IMPORTANT: When previous results exist, this tool automatically uses the LATEST result image unless you specify a different sourceImageIndex or the user explicitly says \"original\".",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"description": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "EXACT camera angle string. You MUST construct this by concatenating exactly one value from each category below, separated by single spaces. No commas, no extra words.\n\nFormat: \"[azimuth] [elevation] [distance]\"\n\nAzimuth (pick one): \"front view\", \"front-right quarter view\", \"right side view\", \"back-right quarter view\", \"back view\", \"back-left quarter view\", \"left side view\", \"front-left quarter view\"\nElevation (pick one): \"low-angle shot\", \"eye-level shot\", \"elevated shot\", \"high-angle shot\"\nDistance (pick one): \"close-up\", \"medium shot\", \"wide shot\"\n\nExamples:\n- \"front-right quarter view eye-level shot medium shot\"\n- \"left side view eye-level shot close-up\"\n- \"front view low-angle shot wide shot\"\n- \"right side view elevated shot medium shot\"\n\nMap user requests: \"from the left\" → \"left side view\", \"looking up at\" → \"low-angle shot\", \"closeup\" → \"close-up\", \"3/4 view\" → \"front-right quarter view\" or \"front-left quarter view\", \"portrait\" → \"front-right quarter view eye-level shot medium shot\".\nDefault elevation to \"eye-level shot\" and distance to \"medium shot\" when not specified."
|
|
13
|
+
},
|
|
14
|
+
"sourceImageIndex": {
|
|
15
|
+
"type": "number",
|
|
16
|
+
"description": "Which result image to use as source (0-based index). Omit to use the latest result automatically (or the original if no results exist). Only set explicitly when the user specifies a particular image number or explicitly says \"original\" (use -1 for original)."
|
|
17
|
+
},
|
|
18
|
+
"loraStrength": {
|
|
19
|
+
"type": "number",
|
|
20
|
+
"description": "LoRA strength for angle generation (0.1-1.0). Default: 0.9. Lower values preserve more of the original appearance, higher values produce stronger angle changes. Only set when the user wants to control the transformation intensity."
|
|
21
|
+
},
|
|
22
|
+
"aspectRatio": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "Do NOT set unless the user explicitly requests an aspect ratio, format, orientation, or exact pixel dimensions. When a reference/source image is used and the user did not ask to change its shape, omit this field so the handler preserves the selected source image's own ratio.\n\nFormats: \"16:9\", \"9:16\", \"4:5\", \"1:1\", \"4:3\", \"3:2\", \"21:9\", or exact pixels like \"1920x1080\".\n\nCRITICAL: When the user specifies exact pixel dimensions (e.g., \"1280x720\", \"1080x1920\", \"1920x1080\", \"3840x2160\") or an orientation-qualified named resolution (e.g., \"720p landscape\", \"720p portrait\"), use the exact pixel format, NOT a ratio like \"16:9\" or \"9:16\". Exact user-requested dimensions override the selected default media quality, including Pro/HQ defaults. A bare named video resolution like \"720p resolution\" is only a resolution tier/short-side request; do not turn it into landscape pixels and do not set aspectRatio unless the user also states landscape, portrait, vertical, horizontal, or exact pixels. If requested pixels are in bounds but not on the model's pixel step, still pass the user's exact pixel request; the handler snaps to the nearest supported size internally. Only use ratio format when the user says a generic format name without pixel dimensions.\n\nMappings (use ONLY when user does NOT specify pixel dimensions): landscape/widescreen/YouTube/cinematic → \"16:9\". portrait → \"9:16\". TikTok/Reels/IG Reels → \"1080x1920\". ultrawide/cinema scope → \"21:9\". Instagram post → \"4:5\". square → \"1:1\". standard/TV → \"4:3\". 720p landscape → \"1280x720\". 720p portrait → \"720x1280\". 1080p landscape → \"1920x1080\". 1080p portrait/HD portrait → \"1080x1920\". 4K landscape → \"3840x2160\". 4K portrait → \"2160x3840\". Never set for generic requests like \"make a video\"."
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"required": [
|
|
28
|
+
"description"
|
|
29
|
+
]
|
|
30
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "compose_instrumental tool schema",
|
|
3
|
+
"schemaVersion": "2026-05-14.1",
|
|
4
|
+
"description": "Synchronous instrumental music structure composition utility.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["prompt"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"prompt": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"description": "The instrumental music topic, mood, genre, scene, campaign, or composition request."
|
|
12
|
+
},
|
|
13
|
+
"music_prompt": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "Optional musical style context, instrumentation, mood, or production direction."
|
|
16
|
+
},
|
|
17
|
+
"duration_seconds": {
|
|
18
|
+
"type": "number",
|
|
19
|
+
"minimum": 10,
|
|
20
|
+
"maximum": 600,
|
|
21
|
+
"description": "Optional desired track duration in seconds."
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "compose_lyrics tool schema",
|
|
3
|
+
"schemaVersion": "2026-05-14.1",
|
|
4
|
+
"description": "Synchronous song lyric composition utility for vocal music.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["prompt"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"prompt": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"description": "The song topic, mood, genre, scene, campaign, or lyric request."
|
|
12
|
+
},
|
|
13
|
+
"language": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "Optional language code or language name for the lyrics."
|
|
16
|
+
},
|
|
17
|
+
"music_prompt": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"description": "Optional musical style context, genre, instrumentation, mood, or production direction."
|
|
20
|
+
},
|
|
21
|
+
"duration_seconds": {
|
|
22
|
+
"type": "number",
|
|
23
|
+
"minimum": 10,
|
|
24
|
+
"maximum": 600,
|
|
25
|
+
"description": "Optional desired song duration in seconds."
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "compose_script tool schema",
|
|
3
|
+
"schemaVersion": "2026-05-14.1",
|
|
4
|
+
"description": "Synchronous creative writing utility for scripts, storyboards, video prompts, ad concepts, trailers, social shorts, campaign beats, and talking-head plans.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["brief"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"brief": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"description": "The creative writing brief, story idea, product concept, video idea, or revision request."
|
|
12
|
+
},
|
|
13
|
+
"script_type": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"enum": ["video_prompt", "screenplay", "storyboard", "ad_script", "trailer", "social_short", "talking_head", "campaign", "revision"],
|
|
16
|
+
"description": "The kind of script or creative writing artifact to produce."
|
|
17
|
+
},
|
|
18
|
+
"destination_model": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "Optional destination video model selector, such as ltx23, wan22, or seedance2."
|
|
21
|
+
},
|
|
22
|
+
"destination_tool": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "Optional downstream tool, such as generate_video, animate_photo, sound_to_video, or video_to_video."
|
|
25
|
+
},
|
|
26
|
+
"duration_seconds": {
|
|
27
|
+
"type": "number",
|
|
28
|
+
"minimum": 1,
|
|
29
|
+
"maximum": 300,
|
|
30
|
+
"description": "Requested runtime for a video prompt, social short, ad, or talking-head script."
|
|
31
|
+
},
|
|
32
|
+
"scene_count": {
|
|
33
|
+
"type": "integer",
|
|
34
|
+
"minimum": 1,
|
|
35
|
+
"maximum": 12,
|
|
36
|
+
"description": "Requested number of scenes, shots, beats, or storyboard panels."
|
|
37
|
+
},
|
|
38
|
+
"aspect_ratio": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"description": "Optional target aspect ratio, such as 16:9, 9:16, 1:1, 4:5, or 21:9."
|
|
41
|
+
},
|
|
42
|
+
"platform": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"description": "Optional target platform or context, such as TikTok, YouTube Shorts, Instagram Reels, broadcast, landing page, game trailer, or pitch deck."
|
|
45
|
+
},
|
|
46
|
+
"style": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"description": "Optional style, genre, tone, visual treatment, or brand voice to preserve."
|
|
49
|
+
},
|
|
50
|
+
"first_frame_description": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"description": "Optional description of the starting frame when composing an image-to-video prompt without attached vision content."
|
|
53
|
+
},
|
|
54
|
+
"first_frame_data_url": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"description": "Optional inline image data URI for the starting frame when composing an image-to-video or first-frame video prompt."
|
|
57
|
+
},
|
|
58
|
+
"last_frame_data_url": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"description": "Optional inline image data URI for the ending frame when composing an image-to-video transition prompt."
|
|
61
|
+
},
|
|
62
|
+
"return_format": {
|
|
63
|
+
"type": "string",
|
|
64
|
+
"enum": ["script", "markdown", "json"],
|
|
65
|
+
"description": "Requested output format. Use script unless structured planning output is explicitly needed."
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "compose_workflow tool schema",
|
|
3
|
+
"schemaVersion": "2026-05-14.1",
|
|
4
|
+
"description": "Synchronous planner that emits a validated durable creative workflow plan from a brief.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["brief"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"brief": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"description": "Creative brief describing what the workflow should produce. Free-form natural language. Required."
|
|
12
|
+
},
|
|
13
|
+
"scene_count": {
|
|
14
|
+
"type": "integer",
|
|
15
|
+
"minimum": 1,
|
|
16
|
+
"maximum": 12,
|
|
17
|
+
"description": "Suggested number of distinct shots/scenes. The planner may produce more steps than scenes (e.g., keyframe + clip per scene)."
|
|
18
|
+
},
|
|
19
|
+
"duration_seconds": {
|
|
20
|
+
"type": "number",
|
|
21
|
+
"minimum": 1,
|
|
22
|
+
"maximum": 120,
|
|
23
|
+
"description": "Target total duration in seconds for video-bearing plans."
|
|
24
|
+
},
|
|
25
|
+
"aspect_ratio": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"enum": ["1:1", "4:3", "3:4", "16:9", "9:16", "21:9"],
|
|
28
|
+
"description": "Output aspect ratio."
|
|
29
|
+
},
|
|
30
|
+
"style": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"description": "Optional stylistic guidance (e.g., 'cinematic, neon, low-key', 'whiteboard illustration')."
|
|
33
|
+
},
|
|
34
|
+
"destination_models": {
|
|
35
|
+
"type": "object",
|
|
36
|
+
"additionalProperties": false,
|
|
37
|
+
"properties": {
|
|
38
|
+
"image": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"description": "Preferred image model (e.g., 'flux2', 'gpt-image-2')."
|
|
41
|
+
},
|
|
42
|
+
"video": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"description": "Preferred video model (e.g., 'ltx23', 'wan22', 'seedance2')."
|
|
45
|
+
},
|
|
46
|
+
"music": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"description": "Preferred music model."
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"max_estimated_capacity_units": {
|
|
53
|
+
"type": "integer",
|
|
54
|
+
"minimum": 1,
|
|
55
|
+
"description": "If set, the planner attempts to keep total estimated cost at or below this value and returns `fits_budget: false` if it cannot."
|
|
56
|
+
},
|
|
57
|
+
"include_audio": {
|
|
58
|
+
"type": "boolean",
|
|
59
|
+
"description": "If true, include a music generation step. Defaults to false."
|
|
60
|
+
},
|
|
61
|
+
"return_format": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"enum": ["json"],
|
|
64
|
+
"description": "Currently `json` is the only supported value. Reserved for future."
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|