@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,95 @@
|
|
|
1
|
+
export const RETRY_UNTIL_MAX_ATTEMPTS_CAP = 10;
|
|
2
|
+
export const DEFAULT_MAX_ATTEMPTS = 3;
|
|
3
|
+
export function resolveMaxAttempts(raw) {
|
|
4
|
+
if (typeof raw !== 'number' || !Number.isFinite(raw))
|
|
5
|
+
return DEFAULT_MAX_ATTEMPTS;
|
|
6
|
+
return Math.min(RETRY_UNTIL_MAX_ATTEMPTS_CAP, Math.max(1, Math.round(raw)));
|
|
7
|
+
}
|
|
8
|
+
export function readPath(obj, path) {
|
|
9
|
+
if (!path)
|
|
10
|
+
return obj;
|
|
11
|
+
const segments = path.split('.');
|
|
12
|
+
let current = obj;
|
|
13
|
+
for (const seg of segments) {
|
|
14
|
+
if (current === null || current === undefined)
|
|
15
|
+
return undefined;
|
|
16
|
+
if (typeof current !== 'object')
|
|
17
|
+
return undefined;
|
|
18
|
+
current = current[seg];
|
|
19
|
+
}
|
|
20
|
+
return current;
|
|
21
|
+
}
|
|
22
|
+
export function evaluateRetryCondition(condition, parsedResult) {
|
|
23
|
+
const observed = readPath(parsedResult, condition.path);
|
|
24
|
+
switch (condition.kind) {
|
|
25
|
+
case 'metadata_field_truthy':
|
|
26
|
+
return { passed: Boolean(observed), observed };
|
|
27
|
+
case 'metadata_field_equals':
|
|
28
|
+
return { passed: observed === condition.value, observed };
|
|
29
|
+
case 'metadata_field_gte':
|
|
30
|
+
return {
|
|
31
|
+
passed: typeof observed === 'number' && Number.isFinite(observed) && observed >= condition.value,
|
|
32
|
+
observed,
|
|
33
|
+
};
|
|
34
|
+
case 'metadata_field_lte':
|
|
35
|
+
return {
|
|
36
|
+
passed: typeof observed === 'number' && Number.isFinite(observed) && observed <= condition.value,
|
|
37
|
+
observed,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export function parseRetryUntilArgs(args) {
|
|
42
|
+
const tool = typeof args.tool === 'string' ? args.tool.trim() : '';
|
|
43
|
+
if (!tool)
|
|
44
|
+
return { ok: false, error: '`tool` is required and must be a non-empty string.' };
|
|
45
|
+
if (tool === 'wf:retry_until_condition') {
|
|
46
|
+
return { ok: false, error: '`tool` must not be wf:retry_until_condition (no recursion).' };
|
|
47
|
+
}
|
|
48
|
+
const toolArgs = (args.toolArgs && typeof args.toolArgs === 'object' && !Array.isArray(args.toolArgs))
|
|
49
|
+
? args.toolArgs
|
|
50
|
+
: null;
|
|
51
|
+
if (!toolArgs)
|
|
52
|
+
return { ok: false, error: '`toolArgs` is required and must be an object.' };
|
|
53
|
+
const maxAttempts = resolveMaxAttempts(args.maxAttempts);
|
|
54
|
+
const backoffMs = typeof args.backoffMs === 'number' && Number.isFinite(args.backoffMs) && args.backoffMs >= 0
|
|
55
|
+
? args.backoffMs
|
|
56
|
+
: 0;
|
|
57
|
+
let condition;
|
|
58
|
+
if (args.condition !== undefined && args.condition !== null) {
|
|
59
|
+
if (typeof args.condition !== 'object' || Array.isArray(args.condition)) {
|
|
60
|
+
return { ok: false, error: '`condition` must be an object when supplied.' };
|
|
61
|
+
}
|
|
62
|
+
const c = args.condition;
|
|
63
|
+
const kind = typeof c.kind === 'string' ? c.kind : '';
|
|
64
|
+
const path = typeof c.path === 'string' ? c.path : '';
|
|
65
|
+
if (!path)
|
|
66
|
+
return { ok: false, error: '`condition.path` is required when condition is supplied.' };
|
|
67
|
+
switch (kind) {
|
|
68
|
+
case 'metadata_field_truthy':
|
|
69
|
+
condition = { kind, path };
|
|
70
|
+
break;
|
|
71
|
+
case 'metadata_field_equals':
|
|
72
|
+
if (c.value === undefined)
|
|
73
|
+
return { ok: false, error: '`condition.value` required for metadata_field_equals.' };
|
|
74
|
+
if (typeof c.value !== 'string' && typeof c.value !== 'number' && typeof c.value !== 'boolean') {
|
|
75
|
+
return { ok: false, error: '`condition.value` must be a string|number|boolean for metadata_field_equals.' };
|
|
76
|
+
}
|
|
77
|
+
condition = { kind, path, value: c.value };
|
|
78
|
+
break;
|
|
79
|
+
case 'metadata_field_gte':
|
|
80
|
+
case 'metadata_field_lte':
|
|
81
|
+
if (typeof c.value !== 'number' || !Number.isFinite(c.value)) {
|
|
82
|
+
return { ok: false, error: `\`condition.value\` must be a finite number for ${kind}.` };
|
|
83
|
+
}
|
|
84
|
+
condition = { kind, path, value: c.value };
|
|
85
|
+
break;
|
|
86
|
+
default:
|
|
87
|
+
return { ok: false, error: `Unknown condition.kind "${kind}". Valid: metadata_field_truthy|metadata_field_equals|metadata_field_gte|metadata_field_lte.` };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
ok: true,
|
|
92
|
+
args: { tool, toolArgs, maxAttempts, condition, backoffMs },
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=retryUntilCondition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retryUntilCondition.js","sourceRoot":"","sources":["../../../src/workflows/primitives/retryUntilCondition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
const PASS_TOKEN = '__PASS__';
|
|
2
|
+
const FAIL_TOKEN = '__FAIL__';
|
|
3
|
+
export function buildRubricPrompts(input) {
|
|
4
|
+
const successLine = input.successDescription
|
|
5
|
+
? `Good output looks like: ${input.successDescription}`
|
|
6
|
+
: 'Good output satisfies every rubric item completely.';
|
|
7
|
+
const rubricList = input.rubric
|
|
8
|
+
.map((line, i) => `${i + 1}. ${line.trim()}`)
|
|
9
|
+
.join('\n');
|
|
10
|
+
const system = [
|
|
11
|
+
`You are a strict creative quality judge for ${input.artifactKind} artifacts.`,
|
|
12
|
+
successLine,
|
|
13
|
+
'Evaluate the artifact against EACH rubric item one at a time.',
|
|
14
|
+
`If ALL items pass, your ENTIRE response must be exactly: ${PASS_TOKEN}`,
|
|
15
|
+
`Otherwise, your ENTIRE response must start with: ${FAIL_TOKEN}: `,
|
|
16
|
+
'followed by a short comma-separated list of the failed item numbers and',
|
|
17
|
+
'a one-sentence summary of what the next render attempt should change.',
|
|
18
|
+
`Example fail response: ${FAIL_TOKEN}: items 1, 3 — subject identity is `
|
|
19
|
+
+ 'inconsistent across panels; next attempt must lock the face shape from '
|
|
20
|
+
+ 'the reference photo.',
|
|
21
|
+
'Do not output anything else. No preamble. No analysis.',
|
|
22
|
+
].join('\n');
|
|
23
|
+
const artifactBlock = input.artifactKind === 'text'
|
|
24
|
+
? `<text-artifact>\n${(input.artifactInline ?? '').trim()}\n</text-artifact>`
|
|
25
|
+
: input.artifactUrl
|
|
26
|
+
? `<${input.artifactKind}-artifact src="${input.artifactUrl}"/>`
|
|
27
|
+
: '<artifact missing/>';
|
|
28
|
+
const user = [
|
|
29
|
+
'Rubric:',
|
|
30
|
+
rubricList,
|
|
31
|
+
'',
|
|
32
|
+
'Artifact to evaluate:',
|
|
33
|
+
artifactBlock,
|
|
34
|
+
].join('\n');
|
|
35
|
+
return { system, user };
|
|
36
|
+
}
|
|
37
|
+
export function parseJudgeResponse(raw, rubric) {
|
|
38
|
+
const cleaned = (raw ?? '').trim();
|
|
39
|
+
if (cleaned.startsWith(PASS_TOKEN)) {
|
|
40
|
+
return { pass: true, failedCriteria: [], notes: cleaned, suggestedRetryNotes: '' };
|
|
41
|
+
}
|
|
42
|
+
if (cleaned.startsWith(FAIL_TOKEN)) {
|
|
43
|
+
const afterToken = cleaned.slice(FAIL_TOKEN.length).replace(/^\s*:?\s*/, '');
|
|
44
|
+
return {
|
|
45
|
+
pass: false,
|
|
46
|
+
failedCriteria: extractFailedCriteria(afterToken, rubric),
|
|
47
|
+
notes: afterToken,
|
|
48
|
+
suggestedRetryNotes: afterToken,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (cleaned.includes(PASS_TOKEN) && !cleaned.includes(FAIL_TOKEN)) {
|
|
52
|
+
return { pass: true, failedCriteria: [], notes: cleaned, suggestedRetryNotes: '' };
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
pass: false,
|
|
56
|
+
failedCriteria: extractFailedCriteria(cleaned, rubric),
|
|
57
|
+
notes: cleaned || 'Judge returned an empty or unparseable response.',
|
|
58
|
+
suggestedRetryNotes: cleaned || 'Re-render with more attention to the rubric items above.',
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function extractFailedCriteria(text, rubric) {
|
|
62
|
+
const matches = [];
|
|
63
|
+
const numberRegex = /\bitems?\s+([\d,\s]+)/i;
|
|
64
|
+
const m = text.match(numberRegex);
|
|
65
|
+
if (m) {
|
|
66
|
+
const nums = m[1]
|
|
67
|
+
.split(',')
|
|
68
|
+
.map((s) => s.trim())
|
|
69
|
+
.map((s) => Number(s))
|
|
70
|
+
.filter((n) => Number.isInteger(n) && n >= 1 && n <= rubric.length);
|
|
71
|
+
for (const n of nums)
|
|
72
|
+
matches.push(rubric[n - 1]);
|
|
73
|
+
}
|
|
74
|
+
return matches;
|
|
75
|
+
}
|
|
76
|
+
export { PASS_TOKEN, FAIL_TOKEN };
|
|
77
|
+
export function assertArtifactUrlIsSafe(url) {
|
|
78
|
+
let parsed;
|
|
79
|
+
try {
|
|
80
|
+
parsed = new URL(url);
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return { ok: false, reason: 'artifactUrl is not a valid URL' };
|
|
84
|
+
}
|
|
85
|
+
if (parsed.protocol !== 'https:' && parsed.protocol !== 'http:') {
|
|
86
|
+
return {
|
|
87
|
+
ok: false,
|
|
88
|
+
reason: `artifactUrl protocol "${parsed.protocol}" is not supported (http/https only)`,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
if (parsed.username || parsed.password) {
|
|
92
|
+
return { ok: false, reason: 'artifactUrl must not contain userinfo credentials' };
|
|
93
|
+
}
|
|
94
|
+
const host = parsed.hostname.toLowerCase();
|
|
95
|
+
if (!host)
|
|
96
|
+
return { ok: false, reason: 'artifactUrl host is empty' };
|
|
97
|
+
const bareHost = host.startsWith('[') && host.endsWith(']') ? host.slice(1, -1) : host;
|
|
98
|
+
const loopback = new Set(['localhost', '127.0.0.1', '0.0.0.0', '::', '::1']);
|
|
99
|
+
if (loopback.has(bareHost)) {
|
|
100
|
+
return { ok: false, reason: `artifactUrl host "${bareHost}" is a loopback address` };
|
|
101
|
+
}
|
|
102
|
+
if (bareHost.endsWith('.localhost') || bareHost.endsWith('.local')) {
|
|
103
|
+
return {
|
|
104
|
+
ok: false,
|
|
105
|
+
reason: `artifactUrl host "${bareHost}" is on a local network suffix`,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
if (/^(::ffff:|64:ff9b:)/i.test(bareHost)) {
|
|
109
|
+
return {
|
|
110
|
+
ok: false,
|
|
111
|
+
reason: `artifactUrl host "${bareHost}" is an IPv4-embedded IPv6 address`,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
if (PRIVATE_IPV4_PATTERNS.some((re) => re.test(bareHost))) {
|
|
115
|
+
return {
|
|
116
|
+
ok: false,
|
|
117
|
+
reason: `artifactUrl host "${bareHost}" is in a private/link-local IPv4 range`,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
if (PRIVATE_IPV6_PATTERNS.some((re) => re.test(bareHost))) {
|
|
121
|
+
return {
|
|
122
|
+
ok: false,
|
|
123
|
+
reason: `artifactUrl host "${bareHost}" is in a private/link-local IPv6 range`,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
return { ok: true };
|
|
127
|
+
}
|
|
128
|
+
const PRIVATE_IPV4_PATTERNS = [
|
|
129
|
+
/^10\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,
|
|
130
|
+
/^192\.168\.\d{1,3}\.\d{1,3}$/,
|
|
131
|
+
/^172\.(1[6-9]|2[0-9]|3[01])\.\d{1,3}\.\d{1,3}$/,
|
|
132
|
+
/^169\.254\.\d{1,3}\.\d{1,3}$/,
|
|
133
|
+
/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,
|
|
134
|
+
/^0\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,
|
|
135
|
+
];
|
|
136
|
+
const PRIVATE_IPV6_PATTERNS = [
|
|
137
|
+
/^fe80::/i,
|
|
138
|
+
/^fc00:/i,
|
|
139
|
+
/^fd[0-9a-f]{2}:/i,
|
|
140
|
+
];
|
|
141
|
+
//# sourceMappingURL=validateWithRubric.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateWithRubric.js","sourceRoot":"","sources":["../../../src/workflows/primitives/validateWithRubric.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
const DEFAULT_MAX_LENGTH = 320;
|
|
2
|
+
export function summarizeWorkflowTemplate(template, options = {}) {
|
|
3
|
+
const maxLength = options.maxDescriptionLength ?? DEFAULT_MAX_LENGTH;
|
|
4
|
+
const includeInputs = options.includeInputsSentence ?? true;
|
|
5
|
+
const base = template.description?.trim() || template.name.trim();
|
|
6
|
+
const inputsSentence = includeInputs ? buildInputsSentence(template.inputs) : '';
|
|
7
|
+
const stagesSentence = buildStagesSentence(template);
|
|
8
|
+
const parts = [base, stagesSentence, inputsSentence].filter((part) => part.length > 0);
|
|
9
|
+
const merged = parts.join(' ');
|
|
10
|
+
return truncateOnBoundary(merged, maxLength);
|
|
11
|
+
}
|
|
12
|
+
function buildStagesSentence(template) {
|
|
13
|
+
const stageCount = template.stages.length;
|
|
14
|
+
if (stageCount === 0)
|
|
15
|
+
return '';
|
|
16
|
+
const interactiveCount = template.stages.filter((stage) => stage.type === 'interactive').length;
|
|
17
|
+
const batchCount = template.stages.filter((stage) => stage.type === 'batch').length;
|
|
18
|
+
const fragments = [`${stageCount} ${stageCount === 1 ? 'stage' : 'stages'}`];
|
|
19
|
+
if (batchCount > 0)
|
|
20
|
+
fragments.push(`${batchCount} batch`);
|
|
21
|
+
if (interactiveCount > 0)
|
|
22
|
+
fragments.push(`${interactiveCount} interactive`);
|
|
23
|
+
return `(${fragments.join(', ')}).`;
|
|
24
|
+
}
|
|
25
|
+
function buildInputsSentence(inputs) {
|
|
26
|
+
const declared = inputs.filter((input) => !input.internal);
|
|
27
|
+
if (declared.length === 0)
|
|
28
|
+
return 'No inputs required.';
|
|
29
|
+
const requiredNames = declared
|
|
30
|
+
.filter((input) => input.required)
|
|
31
|
+
.map((input) => `${input.name} (${input.type})`);
|
|
32
|
+
const optionalNames = declared
|
|
33
|
+
.filter((input) => !input.required)
|
|
34
|
+
.map((input) => `${input.name} (${input.type})`);
|
|
35
|
+
const parts = [];
|
|
36
|
+
if (requiredNames.length > 0)
|
|
37
|
+
parts.push(`Required inputs: ${requiredNames.join(', ')}.`);
|
|
38
|
+
if (optionalNames.length > 0)
|
|
39
|
+
parts.push(`Optional inputs: ${optionalNames.join(', ')}.`);
|
|
40
|
+
return parts.join(' ');
|
|
41
|
+
}
|
|
42
|
+
function truncateOnBoundary(text, maxLength) {
|
|
43
|
+
if (text.length <= maxLength)
|
|
44
|
+
return text;
|
|
45
|
+
const slice = text.slice(0, maxLength);
|
|
46
|
+
const lastSpace = slice.lastIndexOf(' ');
|
|
47
|
+
if (lastSpace <= 0)
|
|
48
|
+
return `${slice.trimEnd()}…`;
|
|
49
|
+
return `${slice.slice(0, lastSpace).trimEnd()}…`;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=summarize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../src/workflows/summarize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/workflows/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
import { collectBindings, parseBinding, BindingError } from './bindings.js';
|
|
2
|
+
export function validateWorkflow(def) {
|
|
3
|
+
const issues = [];
|
|
4
|
+
const stageIds = new Set();
|
|
5
|
+
for (const stage of walkStages(def.stages)) {
|
|
6
|
+
if (stageIds.has(stage.id)) {
|
|
7
|
+
issues.push({
|
|
8
|
+
severity: 'error',
|
|
9
|
+
code: 'duplicate_stage_id',
|
|
10
|
+
message: `Duplicate stage id: ${stage.id}`,
|
|
11
|
+
path: `stages/${stage.id}`,
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
stageIds.add(stage.id);
|
|
15
|
+
}
|
|
16
|
+
const inputNames = new Set();
|
|
17
|
+
for (const input of def.inputs) {
|
|
18
|
+
if (inputNames.has(input.name)) {
|
|
19
|
+
issues.push({
|
|
20
|
+
severity: 'error',
|
|
21
|
+
code: 'duplicate_input_name',
|
|
22
|
+
message: `Duplicate input name: ${input.name}`,
|
|
23
|
+
path: `inputs/${input.name}`,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
inputNames.add(input.name);
|
|
27
|
+
}
|
|
28
|
+
const flatStages = Array.from(walkStages(def.stages));
|
|
29
|
+
const producerIndex = {};
|
|
30
|
+
flatStages.forEach((stage, idx) => {
|
|
31
|
+
for (const name of stage.produces ?? []) {
|
|
32
|
+
if (name in producerIndex) {
|
|
33
|
+
issues.push({
|
|
34
|
+
severity: 'warning',
|
|
35
|
+
code: 'duplicate_artifact_producer',
|
|
36
|
+
message: `Artifact "${name}" is produced by multiple stages. Downstream stages will see the last write.`,
|
|
37
|
+
path: `stages/${stage.id}/produces`,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
producerIndex[name] = idx;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
flatStages.forEach((stage, idx) => {
|
|
46
|
+
for (const name of stage.requiredArtifactsIn ?? []) {
|
|
47
|
+
if (!(name in producerIndex)) {
|
|
48
|
+
issues.push({
|
|
49
|
+
severity: 'error',
|
|
50
|
+
code: 'missing_artifact_producer',
|
|
51
|
+
message: `Stage "${stage.id}" requires artifact "${name}" but no earlier stage produces it.`,
|
|
52
|
+
path: `stages/${stage.id}/requiredArtifactsIn`,
|
|
53
|
+
});
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (producerIndex[name] >= idx) {
|
|
57
|
+
issues.push({
|
|
58
|
+
severity: 'error',
|
|
59
|
+
code: 'forward_artifact_reference',
|
|
60
|
+
message: `Stage "${stage.id}" requires "${name}" but its producer runs later.`,
|
|
61
|
+
path: `stages/${stage.id}/requiredArtifactsIn`,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
for (const name of stage.optionalArtifactsIn ?? []) {
|
|
66
|
+
if (!(name in producerIndex)) {
|
|
67
|
+
issues.push({
|
|
68
|
+
severity: 'warning',
|
|
69
|
+
code: 'missing_optional_artifact',
|
|
70
|
+
message: `Optional artifact "${name}" has no producer and will never be available.`,
|
|
71
|
+
path: `stages/${stage.id}/optionalArtifactsIn`,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
for (const { stage, inBatchItem } of walkStageContexts(def.stages)) {
|
|
77
|
+
const bindings = collectStageBindings(stage);
|
|
78
|
+
for (const binding of bindings) {
|
|
79
|
+
try {
|
|
80
|
+
const parsed = parseBinding(binding);
|
|
81
|
+
if (parsed.root === 'inputs') {
|
|
82
|
+
const firstField = parsed.segments.find((s) => s.kind === 'field');
|
|
83
|
+
if (firstField && firstField.kind === 'field' && !inputNames.has(firstField.name)) {
|
|
84
|
+
issues.push({
|
|
85
|
+
severity: 'error',
|
|
86
|
+
code: 'unknown_input',
|
|
87
|
+
message: `Binding "${binding}" references unknown input "${firstField.name}".`,
|
|
88
|
+
path: `stages/${stage.id}/args`,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (parsed.root === 'artifacts') {
|
|
93
|
+
const firstField = parsed.segments.find((s) => s.kind === 'field');
|
|
94
|
+
if (firstField && firstField.kind === 'field' && !(firstField.name in producerIndex)) {
|
|
95
|
+
issues.push({
|
|
96
|
+
severity: 'error',
|
|
97
|
+
code: 'unknown_artifact',
|
|
98
|
+
message: `Binding "${binding}" references unknown artifact "${firstField.name}".`,
|
|
99
|
+
path: `stages/${stage.id}/args`,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (parsed.root === 'item' && !inBatchItem && stage.type !== 'batch' && !stage.subStages?.length) {
|
|
104
|
+
issues.push({
|
|
105
|
+
severity: 'error',
|
|
106
|
+
code: 'item_binding_outside_batch',
|
|
107
|
+
message: `Stage "${stage.id}" uses $item but is not inside a batch.`,
|
|
108
|
+
path: `stages/${stage.id}/args`,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
if (err instanceof BindingError) {
|
|
114
|
+
issues.push({
|
|
115
|
+
severity: 'error',
|
|
116
|
+
code: 'invalid_binding_syntax',
|
|
117
|
+
message: err.message,
|
|
118
|
+
path: `stages/${stage.id}/args`,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
throw err;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
const graph = {};
|
|
128
|
+
for (const stage of flatStages) {
|
|
129
|
+
graph[stage.id] = [];
|
|
130
|
+
for (const name of [...(stage.requiredArtifactsIn ?? []), ...(stage.optionalArtifactsIn ?? [])]) {
|
|
131
|
+
const producerIdx = producerIndex[name];
|
|
132
|
+
if (producerIdx !== undefined) {
|
|
133
|
+
const producerStage = flatStages[producerIdx];
|
|
134
|
+
if (producerStage)
|
|
135
|
+
graph[stage.id].push(producerStage.id);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
const cycle = findCycle(graph);
|
|
140
|
+
if (cycle) {
|
|
141
|
+
issues.push({
|
|
142
|
+
severity: 'error',
|
|
143
|
+
code: 'cyclic_stage_dependency',
|
|
144
|
+
message: `Cyclic artifact dependency detected: ${cycle.join(' → ')}`,
|
|
145
|
+
path: `stages`,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
for (const stage of flatStages) {
|
|
149
|
+
if (stage.type === 'batch') {
|
|
150
|
+
if (!stage.overBinding.startsWith('$')) {
|
|
151
|
+
issues.push({
|
|
152
|
+
severity: 'error',
|
|
153
|
+
code: 'batch_over_binding_not_a_binding',
|
|
154
|
+
message: `Batch stage "${stage.id}" overBinding must be a $... binding.`,
|
|
155
|
+
path: `stages/${stage.id}/overBinding`,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
if (!stage.itemName) {
|
|
159
|
+
issues.push({
|
|
160
|
+
severity: 'error',
|
|
161
|
+
code: 'batch_item_name_required',
|
|
162
|
+
message: `Batch stage "${stage.id}" must declare itemName.`,
|
|
163
|
+
path: `stages/${stage.id}/itemName`,
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
if (stage.concurrency !== undefined && stage.concurrency < 1) {
|
|
167
|
+
issues.push({
|
|
168
|
+
severity: 'error',
|
|
169
|
+
code: 'batch_concurrency_invalid',
|
|
170
|
+
message: `Batch stage "${stage.id}" concurrency must be ≥ 1.`,
|
|
171
|
+
path: `stages/${stage.id}/concurrency`,
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
const hasErrors = issues.some((i) => i.severity === 'error');
|
|
177
|
+
return { valid: !hasErrors, issues };
|
|
178
|
+
}
|
|
179
|
+
export function computeStaleStageIds(run, mutatedArtifactNames) {
|
|
180
|
+
if (mutatedArtifactNames.length === 0)
|
|
181
|
+
return [];
|
|
182
|
+
const flat = Array.from(walkStages(run.workflowSnapshot.stages));
|
|
183
|
+
const producerIndex = {};
|
|
184
|
+
flat.forEach((stage, idx) => {
|
|
185
|
+
for (const name of stage.produces ?? []) {
|
|
186
|
+
if (!(name in producerIndex))
|
|
187
|
+
producerIndex[name] = idx;
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
const liveArtifacts = new Set(mutatedArtifactNames);
|
|
191
|
+
const stale = new Set();
|
|
192
|
+
let startIdx = Infinity;
|
|
193
|
+
for (const name of mutatedArtifactNames) {
|
|
194
|
+
const idx = producerIndex[name];
|
|
195
|
+
if (idx !== undefined && idx < startIdx)
|
|
196
|
+
startIdx = idx;
|
|
197
|
+
}
|
|
198
|
+
if (!Number.isFinite(startIdx))
|
|
199
|
+
return [];
|
|
200
|
+
for (let i = startIdx; i < flat.length; i++) {
|
|
201
|
+
const stage = flat[i];
|
|
202
|
+
const consumes = [
|
|
203
|
+
...(stage.requiredArtifactsIn ?? []),
|
|
204
|
+
...(stage.optionalArtifactsIn ?? []),
|
|
205
|
+
];
|
|
206
|
+
const touchesLive = consumes.some((name) => liveArtifacts.has(name));
|
|
207
|
+
if (touchesLive) {
|
|
208
|
+
stale.add(stage.id);
|
|
209
|
+
for (const name of stage.produces ?? [])
|
|
210
|
+
liveArtifacts.add(name);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return Array.from(stale);
|
|
214
|
+
}
|
|
215
|
+
const TRANSIENT_ITEM_FIELDS = [
|
|
216
|
+
'status',
|
|
217
|
+
'progress',
|
|
218
|
+
'workerName',
|
|
219
|
+
'error',
|
|
220
|
+
];
|
|
221
|
+
export function persistedArtifactItem(item) {
|
|
222
|
+
const clone = { ...item };
|
|
223
|
+
for (const field of TRANSIENT_ITEM_FIELDS) {
|
|
224
|
+
delete clone[field];
|
|
225
|
+
}
|
|
226
|
+
return clone;
|
|
227
|
+
}
|
|
228
|
+
export function persistedArtifact(artifact) {
|
|
229
|
+
return {
|
|
230
|
+
...artifact,
|
|
231
|
+
items: artifact.items.map(persistedArtifactItem),
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
export function persistedRun(run) {
|
|
235
|
+
const artifacts = {};
|
|
236
|
+
for (const [name, artifact] of Object.entries(run.artifacts)) {
|
|
237
|
+
artifacts[name] = persistedArtifact(artifact);
|
|
238
|
+
}
|
|
239
|
+
const stages = run.stages.map((s) => s.state === 'running' ? { ...s, state: 'pending' } : s);
|
|
240
|
+
return { ...run, artifacts, stages };
|
|
241
|
+
}
|
|
242
|
+
export function* walkStages(stages) {
|
|
243
|
+
for (const stage of stages) {
|
|
244
|
+
yield stage;
|
|
245
|
+
if (stage.subStages?.length) {
|
|
246
|
+
yield* walkStages(stage.subStages);
|
|
247
|
+
}
|
|
248
|
+
if (stage.type === 'batch') {
|
|
249
|
+
yield stage.itemStage;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
export function getFlatWorkflowStages(stages) {
|
|
254
|
+
return Array.from(walkStages(stages));
|
|
255
|
+
}
|
|
256
|
+
export function getCurrentRunStage(run) {
|
|
257
|
+
return getFlatWorkflowStages(run.workflowSnapshot.stages)[run.currentStageIndex];
|
|
258
|
+
}
|
|
259
|
+
function* walkStageContexts(stages, inBatchItem = false) {
|
|
260
|
+
for (const stage of stages) {
|
|
261
|
+
yield { stage, inBatchItem };
|
|
262
|
+
if (stage.subStages?.length) {
|
|
263
|
+
yield* walkStageContexts(stage.subStages, inBatchItem);
|
|
264
|
+
}
|
|
265
|
+
if (stage.type === 'batch') {
|
|
266
|
+
yield* walkStageContexts([stage.itemStage], true);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
function collectStageBindings(stage) {
|
|
271
|
+
const out = [];
|
|
272
|
+
if (stage.type === 'fixed') {
|
|
273
|
+
out.push(...collectBindings(stage.args));
|
|
274
|
+
}
|
|
275
|
+
if (stage.type === 'interactive') {
|
|
276
|
+
void stage;
|
|
277
|
+
}
|
|
278
|
+
if (stage.type === 'batch') {
|
|
279
|
+
const b = stage;
|
|
280
|
+
out.push(b.overBinding);
|
|
281
|
+
if (b.itemStage.type === 'fixed') {
|
|
282
|
+
out.push(...collectBindings(b.itemStage.args));
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
return out;
|
|
286
|
+
}
|
|
287
|
+
function findCycle(graph) {
|
|
288
|
+
const WHITE = 0;
|
|
289
|
+
const GRAY = 1;
|
|
290
|
+
const BLACK = 2;
|
|
291
|
+
const color = {};
|
|
292
|
+
const parent = {};
|
|
293
|
+
for (const id of Object.keys(graph))
|
|
294
|
+
color[id] = WHITE;
|
|
295
|
+
for (const start of Object.keys(graph)) {
|
|
296
|
+
if (color[start] !== WHITE)
|
|
297
|
+
continue;
|
|
298
|
+
const stack = [start];
|
|
299
|
+
parent[start] = null;
|
|
300
|
+
while (stack.length > 0) {
|
|
301
|
+
const id = stack[stack.length - 1];
|
|
302
|
+
if (color[id] === WHITE)
|
|
303
|
+
color[id] = GRAY;
|
|
304
|
+
let advanced = false;
|
|
305
|
+
for (const next of graph[id] ?? []) {
|
|
306
|
+
if (color[next] === WHITE) {
|
|
307
|
+
parent[next] = id;
|
|
308
|
+
stack.push(next);
|
|
309
|
+
advanced = true;
|
|
310
|
+
break;
|
|
311
|
+
}
|
|
312
|
+
if (color[next] === GRAY) {
|
|
313
|
+
const cycle = [next, id];
|
|
314
|
+
let p = parent[id];
|
|
315
|
+
while (p && p !== next) {
|
|
316
|
+
cycle.push(p);
|
|
317
|
+
p = parent[p];
|
|
318
|
+
}
|
|
319
|
+
return cycle.reverse();
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
if (!advanced) {
|
|
323
|
+
color[id] = BLACK;
|
|
324
|
+
stack.pop();
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
return null;
|
|
329
|
+
}
|
|
330
|
+
//# sourceMappingURL=validation.js.map
|