@sogni-ai/sogni-intelligence-client 3.2.3 → 3.4.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/dist/client/SogniClientWrapper.d.ts +1 -0
- package/dist/client/SogniClientWrapper.d.ts.map +1 -1
- package/dist/client/SogniClientWrapper.js +13 -5
- package/dist/client/SogniClientWrapper.js.map +1 -1
- package/dist/contracts/imagePrompt.d.ts +1 -1
- package/dist/contracts/imagePrompt.d.ts.map +1 -1
- package/dist/contracts/imagePrompt.js +7 -0
- package/dist/contracts/imagePrompt.js.map +1 -1
- package/dist/contracts/index.d.ts +1 -1
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +3 -1
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/toolPromptMarkers.d.ts +2 -0
- package/dist/contracts/toolPromptMarkers.d.ts.map +1 -1
- package/dist/contracts/toolPromptMarkers.js +4 -1
- package/dist/contracts/toolPromptMarkers.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/media/vendorModelPremium.d.ts +1 -1
- package/dist/media/vendorModelPremium.d.ts.map +1 -1
- package/dist/media/vendorModelPremium.js +3 -1
- package/dist/media/vendorModelPremium.js.map +1 -1
- package/dist/media/videoSettings.d.ts +22 -1
- package/dist/media/videoSettings.d.ts.map +1 -1
- package/dist/media/videoSettings.js +99 -1
- package/dist/media/videoSettings.js.map +1 -1
- package/dist/openai-tools/_manifests.generated.d.ts.map +1 -1
- package/dist/openai-tools/_manifests.generated.js +20 -14
- package/dist/openai-tools/_manifests.generated.js.map +1 -1
- package/dist/openai-tools/generation-tools.json +20 -14
- package/dist/public-skill-runtime/index.d.ts +9 -1
- package/dist/public-skill-runtime/index.d.ts.map +1 -1
- package/dist/public-skill-runtime/index.js +25 -4
- package/dist/public-skill-runtime/index.js.map +1 -1
- package/dist/schemas/billing/spend-gate.schema.json +58 -37
- package/dist/schemas/events/run-event.schema.json +17 -6
- package/dist/schemas/tools/animate_photo.schema.json +3 -3
- package/dist/schemas/tools/extend_video.schema.json +1 -0
- package/dist/schemas/tools/generate_image.schema.json +1 -0
- package/dist/schemas/tools/generate_video.schema.json +6 -5
- package/dist/schemas/tools/replace_video_segment.schema.json +1 -0
- package/dist/schemas/tools/sound_to_video.schema.json +4 -3
- package/dist/schemas/tools/video_to_video.schema.json +4 -3
- package/dist/skills/asset_reference_management/modelRefRegistry.d.ts.map +1 -1
- package/dist/skills/asset_reference_management/modelRefRegistry.js +24 -0
- package/dist/skills/asset_reference_management/modelRefRegistry.js.map +1 -1
- package/dist/skills/asset_reference_management/types.d.ts +1 -1
- package/dist/skills/asset_reference_management/types.d.ts.map +1 -1
- package/dist/tools/definitions/animate-photo/definition.js +2 -2
- package/dist/tools/definitions/animate-photo/definition.js.map +1 -1
- package/dist/tools/definitions/extend-video/definition.js +1 -1
- package/dist/tools/definitions/extend-video/definition.js.map +1 -1
- package/dist/tools/definitions/generate-image/definition.js +1 -1
- package/dist/tools/definitions/generate-image/definition.js.map +1 -1
- package/dist/tools/definitions/generate-video/definition.d.ts.map +1 -1
- package/dist/tools/definitions/generate-video/definition.js +18 -7
- package/dist/tools/definitions/generate-video/definition.js.map +1 -1
- package/dist/tools/definitions/replace-video-segment/definition.js +1 -1
- package/dist/tools/definitions/replace-video-segment/definition.js.map +1 -1
- package/dist/tools/definitions/sound-to-video/definition.js +3 -3
- package/dist/tools/definitions/sound-to-video/definition.js.map +1 -1
- package/dist/tools/definitions/video-to-video/definition.js +4 -4
- package/dist/tools/definitions/video-to-video/definition.js.map +1 -1
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +11 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/shared/happyhorsePolicyErrors.d.ts +30 -0
- package/dist/tools/shared/happyhorsePolicyErrors.d.ts.map +1 -0
- package/dist/tools/shared/happyhorsePolicyErrors.js +175 -0
- package/dist/tools/shared/happyhorsePolicyErrors.js.map +1 -0
- package/dist/tools/shared/happyhorseReferences.d.ts +24 -0
- package/dist/tools/shared/happyhorseReferences.d.ts.map +1 -0
- package/dist/tools/shared/happyhorseReferences.js +52 -0
- package/dist/tools/shared/happyhorseReferences.js.map +1 -0
- package/dist/tools/shared/modelRegistry.d.ts.map +1 -1
- package/dist/tools/shared/modelRegistry.js +6 -0
- package/dist/tools/shared/modelRegistry.js.map +1 -1
- package/dist/utils/helpers.d.ts +1 -0
- package/dist/utils/helpers.d.ts.map +1 -1
- package/dist/utils/helpers.js +30 -0
- package/dist/utils/helpers.js.map +1 -1
- package/dist-esm/client/SogniClientWrapper.js +13 -5
- package/dist-esm/client/SogniClientWrapper.js.map +1 -1
- package/dist-esm/contracts/imagePrompt.js +7 -0
- package/dist-esm/contracts/imagePrompt.js.map +1 -1
- package/dist-esm/contracts/index.js +1 -1
- package/dist-esm/contracts/index.js.map +1 -1
- package/dist-esm/contracts/toolPromptMarkers.js +3 -0
- package/dist-esm/contracts/toolPromptMarkers.js.map +1 -1
- package/dist-esm/index.js +1 -1
- package/dist-esm/index.js.map +1 -1
- package/dist-esm/media/vendorModelPremium.js +3 -1
- package/dist-esm/media/vendorModelPremium.js.map +1 -1
- package/dist-esm/media/videoSettings.js +97 -0
- package/dist-esm/media/videoSettings.js.map +1 -1
- package/dist-esm/openai-tools/_manifests.generated.js +20 -14
- package/dist-esm/openai-tools/_manifests.generated.js.map +1 -1
- package/dist-esm/openai-tools/generation-tools.json +20 -14
- package/dist-esm/public-skill-runtime/index.js +22 -3
- package/dist-esm/public-skill-runtime/index.js.map +1 -1
- package/dist-esm/schemas/billing/spend-gate.schema.json +58 -37
- package/dist-esm/schemas/events/run-event.schema.json +17 -6
- package/dist-esm/schemas/tools/animate_photo.schema.json +3 -3
- package/dist-esm/schemas/tools/extend_video.schema.json +1 -0
- package/dist-esm/schemas/tools/generate_image.schema.json +1 -0
- package/dist-esm/schemas/tools/generate_video.schema.json +6 -5
- package/dist-esm/schemas/tools/replace_video_segment.schema.json +1 -0
- package/dist-esm/schemas/tools/sound_to_video.schema.json +4 -3
- package/dist-esm/schemas/tools/video_to_video.schema.json +4 -3
- package/dist-esm/skills/asset_reference_management/modelRefRegistry.js +24 -0
- package/dist-esm/skills/asset_reference_management/modelRefRegistry.js.map +1 -1
- package/dist-esm/tools/definitions/animate-photo/definition.js +2 -2
- package/dist-esm/tools/definitions/animate-photo/definition.js.map +1 -1
- package/dist-esm/tools/definitions/extend-video/definition.js +1 -1
- package/dist-esm/tools/definitions/extend-video/definition.js.map +1 -1
- package/dist-esm/tools/definitions/generate-image/definition.js +1 -1
- package/dist-esm/tools/definitions/generate-image/definition.js.map +1 -1
- package/dist-esm/tools/definitions/generate-video/definition.js +19 -8
- package/dist-esm/tools/definitions/generate-video/definition.js.map +1 -1
- package/dist-esm/tools/definitions/replace-video-segment/definition.js +1 -1
- package/dist-esm/tools/definitions/replace-video-segment/definition.js.map +1 -1
- package/dist-esm/tools/definitions/sound-to-video/definition.js +3 -3
- package/dist-esm/tools/definitions/sound-to-video/definition.js.map +1 -1
- package/dist-esm/tools/definitions/video-to-video/definition.js +4 -4
- package/dist-esm/tools/definitions/video-to-video/definition.js.map +1 -1
- package/dist-esm/tools/index.js +3 -0
- package/dist-esm/tools/index.js.map +1 -1
- package/dist-esm/tools/shared/happyhorsePolicyErrors.js +168 -0
- package/dist-esm/tools/shared/happyhorsePolicyErrors.js.map +1 -0
- package/dist-esm/tools/shared/happyhorseReferences.js +46 -0
- package/dist-esm/tools/shared/happyhorseReferences.js.map +1 -0
- package/dist-esm/tools/shared/modelRegistry.js +6 -0
- package/dist-esm/tools/shared/modelRegistry.js.map +1 -1
- package/dist-esm/utils/helpers.js +29 -0
- package/dist-esm/utils/helpers.js.map +1 -1
- package/package.json +3 -3
|
@@ -7,7 +7,7 @@ exports.definition = {
|
|
|
7
7
|
type: "function",
|
|
8
8
|
function: {
|
|
9
9
|
name: "animate_photo",
|
|
10
|
-
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. Avoid 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 because 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, prefer generating 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. If the user explicitly wants separately created frame assets, preserve that staged instruction while keeping indices correct. 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. Call once you have clear creative intent. N-VIDEOS PATTERN: Avoid sequential animate_photo calls for N outputs. For a single fixed source/end frame where only prompt text varies, use sourceImageIndex + numberOfVariations=N + one Dynamic Prompt branch in prompt so Sogni submits one project with multiple jobs. If the user explicitly asks for Dynamic Prompt or Dynamic Template syntax, prefer this one-project path whenever every output uses the same source/end frames and shared settings, even if they also ask to stitch the completed clips afterward. Use sourceImageIndices/prompts for multi-segment stitched non-Seedance video, different source/end assets, different audio windows, different durations/dimensions, isolated retry lifecycle, or other per-output parameters. 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 on ltx23 (30s total = 2 clips × 15s) and 10-second clips on wan22 (60s total on wan22 = 6 clips × 10s; do NOT pick 4 clips × 15s on wan22 — the wan22 worker rejects clips longer than 10s). Multi-source 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 and only prompt text varies, use sourceImageIndex=-1, frameRole="both" if requested, endImageIndex=-1 if requested, numberOfVariations=N, and one Dynamic Prompt branch in prompt. Each branch option must be a complete natural-language motion prompt; do not include "clip N", source-frame boilerplate, "overall request context", or instructions to follow the user request. For a long scripted/dialogue/storyboard video from a single supplied/uploaded image where each segment needs isolated exact dialogue or per-segment wiring, 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 source/end asset wiring or other per-output parameters differ, 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. Use the standard single-source path (numberOfVariations only) when the user wants motion variety from a single fixed frame.',
|
|
10
|
+
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, seedance2-mini, 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. Avoid 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 because 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, prefer generating 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. If the user explicitly wants separately created frame assets, preserve that staged instruction while keeping indices correct. 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. Call once you have clear creative intent. N-VIDEOS PATTERN: Avoid sequential animate_photo calls for N outputs. For a single fixed source/end frame where only prompt text varies, use sourceImageIndex + numberOfVariations=N + one Dynamic Prompt branch in prompt so Sogni submits one project with multiple jobs. If the user explicitly asks for Dynamic Prompt or Dynamic Template syntax, prefer this one-project path whenever every output uses the same source/end frames and shared settings, even if they also ask to stitch the completed clips afterward. Use sourceImageIndices/prompts for multi-segment stitched non-Seedance video, different source/end assets, different audio windows, different durations/dimensions, isolated retry lifecycle, or other per-output parameters. 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 on ltx23 (30s total = 2 clips × 15s) and 10-second clips on wan22 (60s total on wan22 = 6 clips × 10s; do NOT pick 4 clips × 15s on wan22 — the wan22 worker rejects clips longer than 10s). Multi-source 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 and only prompt text varies, use sourceImageIndex=-1, frameRole="both" if requested, endImageIndex=-1 if requested, numberOfVariations=N, and one Dynamic Prompt branch in prompt. Each branch option must be a complete natural-language motion prompt; do not include "clip N", source-frame boilerplate, "overall request context", or instructions to follow the user request. For a long scripted/dialogue/storyboard video from a single supplied/uploaded image where each segment needs isolated exact dialogue or per-segment wiring, 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 source/end asset wiring or other per-output parameters differ, 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. Use the standard single-source path (numberOfVariations only) when the user wants motion variety from a single fixed frame.',
|
|
11
11
|
parameters: {
|
|
12
12
|
type: "object",
|
|
13
13
|
properties: {
|
|
@@ -56,7 +56,7 @@ BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax to vary
|
|
|
56
56
|
videoModel: {
|
|
57
57
|
type: "string",
|
|
58
58
|
enum: ["ltx23", "wan22"],
|
|
59
|
-
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; per-clip duration 2-20s. "wan22": Fast 4-step, simple motion, no audio; per-clip duration capped at 10s (the worker rejects clips above 161 frames). For any wan22 total longer than 10s, batch multiple <=10s clips via sourceImageIndices and stitch them — never request a single >10s wan22 clip. 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.',
|
|
59
|
+
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; per-clip duration 2-20s. "wan22": Fast 4-step, simple motion, no audio; per-clip duration capped at 10s (the worker rejects clips above 161 frames). For any wan22 total longer than 10s, batch multiple <=10s clips via sourceImageIndices and stitch them — never request a single >10s wan22 clip. Use ltx23 for most requests. Use wan22 for quick simple motions without audio. Default: "ltx23". Do not set seedance2, seedance2-mini, or seedance2-fast here; use generate_video with referenceImageIndices and @Image role text for Seedance.',
|
|
60
60
|
},
|
|
61
61
|
negativePrompt: {
|
|
62
62
|
type: "string",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/animate-photo/definition.ts"],"names":[],"mappings":";;;AAMA,kFAGiD;AACjD,sDAAmE;AAEtD,QAAA,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/animate-photo/definition.ts"],"names":[],"mappings":";;;AAMA,kFAGiD;AACjD,sDAAmE;AAEtD,QAAA,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,k0OAAk0O;QACp0O,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,oDAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;qbA4BsZ;iBAC5a;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,4GAA4G;iBAC/G;gBACD,oBAAoB,EAAE;oBACpB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,uEAAgD;iBAC9D;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;oBACxB,WAAW,EACT,wsBAAwsB;iBAC3sB;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,oUAAoU;iBACvU;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,kVAAkV;iBACrV;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,sZAAsZ;iBACzZ;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,8bAA8b;iBACjc;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,QAAQ,EAAE,CAAC;oBACX,QAAQ,EAAE,EAAE;oBACZ,WAAW,EACT,qqGAAqqG;iBACxqG;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,QAAQ,EAAE,CAAC;oBACX,QAAQ,EAAE,EAAE;oBACZ,WAAW,EACT,2hEAA2hE;iBAC9hE;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,2XAA2X;oBAC7X,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mCAAwB;iBACtC;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC;oBAC9B,WAAW,EACT,s/BAAs/B;iBACz/B;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,ykBAAykB;iBAC5kB;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,QAAQ,EAAE,CAAC;oBACX,QAAQ,EAAE,EAAE;oBACZ,WAAW,EACT,whCAAwhC;iBAC3hC;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,mjBAAmjB;iBACtjB;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
|
|
@@ -35,7 +35,7 @@ exports.definition = {
|
|
|
35
35
|
},
|
|
36
36
|
videoModel: {
|
|
37
37
|
type: 'string',
|
|
38
|
-
enum: ['auto', 'ltx23', 'seedance2', 'seedance2-fast'],
|
|
38
|
+
enum: ['auto', 'ltx23', 'seedance2', 'seedance2-mini', 'seedance2-fast'],
|
|
39
39
|
description: 'Which model to use for the new segment. Default: "auto" — detect from the base video\'s producer (Seedance base → Seedance, otherwise LTX-2.3). ' +
|
|
40
40
|
'Override only when the user explicitly requests a different model.',
|
|
41
41
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/extend-video/definition.ts"],"names":[],"mappings":";;;AAaa,QAAA,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,gVAAgV;YAChV,uGAAuG;YACvG,qHAAqH;YACrH,uFAAuF;YACvF,wJAAwJ;YACxJ,qMAAqM;YACrM,4GAA4G;YAC5G,6GAA6G;QAC/G,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yIAAyI;wBACzI,uLAAuL;wBACvL,2KAA2K;iBAC9K;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,8GAA8G;oBAChH,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,iFAAiF;wBACjF,6LAA6L;iBAChM;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/extend-video/definition.ts"],"names":[],"mappings":";;;AAaa,QAAA,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,gVAAgV;YAChV,uGAAuG;YACvG,qHAAqH;YACrH,uFAAuF;YACvF,wJAAwJ;YACxJ,qMAAqM;YACrM,4GAA4G;YAC5G,6GAA6G;QAC/G,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yIAAyI;wBACzI,uLAAuL;wBACvL,2KAA2K;iBAC9K;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,8GAA8G;oBAChH,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,iFAAiF;wBACjF,6LAA6L;iBAChM;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;oBACxE,WAAW,EACT,kJAAkJ;wBAClJ,oEAAoE;iBACvE;gBACD,iBAAiB,EAAE;oBACjB,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,4OAA4O;iBAC/O;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;KACF;CACF,CAAC"}
|
|
@@ -43,7 +43,7 @@ VIDEO KEYFRAMES: When generating images intended as first+last frames for video
|
|
|
43
43
|
type: 'string',
|
|
44
44
|
enum: [
|
|
45
45
|
'gpt-image-2',
|
|
46
|
-
'z-turbo', 'z-image', 'chroma-v46-flash', 'chroma-detail', 'flux1-krea', 'flux2', 'pony-v7',
|
|
46
|
+
'z-turbo', 'z-image', 'krea-2-turbo', 'chroma-v46-flash', 'chroma-detail', 'flux1-krea', 'flux2', 'pony-v7',
|
|
47
47
|
'qwen-2512', 'qwen-2512-lightning',
|
|
48
48
|
'albedo-xl', 'animagine-xl', 'anima-pencil-xl', 'art-universe-xl', 'hyphoria-real',
|
|
49
49
|
'analog-madness-xl', 'cyberrealistic-xl', 'real-dream-xl', 'faetastic-xl',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/generate-image/definition.ts"],"names":[],"mappings":";;;AAMA,wFAAqF;AACrF,sDAAmE;AAEtD,QAAA,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,ywBAAywB;QAC3wB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,iDAAuB;;;;;;;;;;;;;;;;;;;;;;siBAsB6gB;iBAC7hB;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,aAAa;wBACb,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/generate-image/definition.ts"],"names":[],"mappings":";;;AAMA,wFAAqF;AACrF,sDAAmE;AAEtD,QAAA,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,ywBAAywB;QAC3wB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,iDAAuB;;;;;;;;;;;;;;;;;;;;;;siBAsB6gB;iBAC7hB;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,aAAa;wBACb,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS;wBAC3G,WAAW,EAAE,qBAAqB;wBAClC,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe;wBAClF,mBAAmB,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc;wBACzE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB;qBACpD;oBACD,WAAW,EACT,ouCAAouC;iBACvuC;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,2yBAA2yB;iBAC9yB;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4yBAA4yB;iBAC/yB;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,s9CAAs9C;oBACx9C,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,oJAAoJ;iBACvJ;gBACD,uBAAuB,EAAE;oBACvB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,uXAAuX;iBAC1X;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,sLAAsL;iBACzL;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,uIAAuI;iBAC1I;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,2KAA2K;iBAC9K;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;oBAC/B,WAAW,EACT,4QAA4Q;iBAC/Q;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;oBACpC,WAAW,EACT,uLAAuL;iBAC1L;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,GAAG,mCAAwB,glBAAglB;iBAC9mB;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../../src/tools/definitions/generate-video/definition.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../../src/tools/definitions/generate-video/definition.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAUlD,eAAO,MAAM,UAAU,EAAE,cA2IxB,CAAC"}
|
|
@@ -7,7 +7,7 @@ exports.definition = {
|
|
|
7
7
|
type: "function",
|
|
8
8
|
function: {
|
|
9
9
|
name: "generate_video",
|
|
10
|
-
description: 'Generate a video from text or Seedance multimodal references. LTX 2.3 generates audio natively (dialogue, sounds, ambient music) — describe audio in the prompt. If the user provides exact speech, include it in double quotes; if they only imply speech, describe the performance and voice without inventing quoted words. Never use placeholders such as "while speaking", "dialogue begins", "explaining", or "final line lands". PERSONA VOICE: Only when the user explicitly asks to use/clone a registered persona voice clip, call resolve_personas first, then set voicePersonaName to select which persona\'s voice clip to use. Do not set voicePersonaName for ordinary character dialogue or inferred voices; describe those voices in the prompt for native LTX audio. For cross-persona narration (e.g. David narrates a video of Aleyna), resolve both personas and set voicePersonaName to the narrator only if that registered voice was requested. Persona voice requires ltx23 (WAN 2.2 does not support voice identity). For non-Seedance syncing to a specific song or audio track, use sound_to_video instead. For non-Seedance animation from a locked source photo, use animate_photo. Do NOT use for My Personas unless generating a Seedance reference-based video — standard persona videos use resolve_personas → edit_image → animate_photo. SEEDANCE DEFAULT: For seedance2 or seedance2-fast, default to exactly one 4-15s video unless the user explicitly asks for multiple separate outputs. Multiple beats, shots, or scene descriptions in one up-to-15s Seedance prompt are still one video. If the user requests one continuous Seedance video longer than 15s, preserve the requested total duration in the prompt/context; chat orchestration should split it into supported segment renders and stitch them instead of clamping it to a 15s excerpt. Uploaded/generated storyboard, shot-sheet, or trailer-concept images used as Seedance references should become one Seedance generate_video call by default; do not extract panels with edit_image and do not animate the storyboard sheet with LTX unless the user explicitly asks for separate non-Seedance clips. Seedance loose image, video, and audio references go through this tool; do not use animate_photo sourceImageIndex/frameRole/endImageIndex for Seedance. If an uploaded video is the source clip to transform, upscale, enhance, restyle, or remaster, use video_to_video with controlMode="seedance-v2v" instead of generate_video referenceVideoIndices. If the uploaded audio is the primary sync target, lip-sync target, or requested as sound-to-video/audio-sync, use sound_to_video with videoModel="seedance2" instead of this tool. Use referenceAudioIndices here only when audio is a loose reference under an image/video-anchored Seedance shot. For Seedance, every image — first frame, last frame, or loose reference — is passed through referenceImageIndices (auto-uploaded as referenceImageUrls). Anchor frame intent in the prompt with @Image tags such as "Use @Image1 as the opening shot reference. Begin the video with a composition, subject placement, lighting, mood, and camera framing that closely match @Image1." (or @Image2 as the final shot reference). For seamless-loop or "first frame and last frame identical" requests with a single uploaded image, anchor it explicitly as both: "Use @Image1 as both the first frame and last frame so the video loops cleanly back to the opening composition." Assign each useful @Image/@Video/@Audio tag a role. APPROVED STORYBOARD PRODUCTION: When the user asks for a production workflow from an approved storyboard, the chat orchestrator should use the durable CampaignStoryboard contract: render the composite board, audit it, generate per-scene GPT Image 2 keyframes, then render Seedance scene clips and stitch them. Do not replace that with a generic storyboard-reference video unless the user asks for a fast draft. PARTIAL VIDEO EDITS: Do NOT call generate_video to re-render an existing rendered/uploaded video just to change part of it (the bumper, the intro, the end card, a single scene, the last few seconds, etc.). Use replace_video_segment for that — it preserves the unchanged portion, keeps the original audio outside the replaced window, and costs far less. Likewise use extend_video to add new time to the end without rewriting the rest. If the request is vague, ask about vision/mood/style first. Only call once you have clear creative intent.',
|
|
10
|
+
description: 'Generate a video from text or Seedance multimodal references. LTX 2.3 generates audio natively (dialogue, sounds, ambient music) — describe audio in the prompt. If the user provides exact speech, include it in double quotes; if they only imply speech, describe the performance and voice without inventing quoted words. Never use placeholders such as "while speaking", "dialogue begins", "explaining", or "final line lands". PERSONA VOICE: Only when the user explicitly asks to use/clone a registered persona voice clip, call resolve_personas first, then set voicePersonaName to select which persona\'s voice clip to use. Do not set voicePersonaName for ordinary character dialogue or inferred voices; describe those voices in the prompt for native LTX audio. For cross-persona narration (e.g. David narrates a video of Aleyna), resolve both personas and set voicePersonaName to the narrator only if that registered voice was requested. Persona voice requires ltx23 (WAN 2.2 does not support voice identity). For non-Seedance syncing to a specific song or audio track, use sound_to_video instead. For non-Seedance animation from a locked source photo, use animate_photo. Do NOT use for My Personas unless generating a Seedance reference-based video — standard persona videos use resolve_personas → edit_image → animate_photo. SEEDANCE DEFAULT: For seedance2, seedance2-mini, or seedance2-fast, default to exactly one 4-15s video unless the user explicitly asks for multiple separate outputs. Multiple beats, shots, or scene descriptions in one up-to-15s Seedance prompt are still one video. If the user requests one continuous Seedance video longer than 15s, preserve the requested total duration in the prompt/context; chat orchestration should split it into supported segment renders and stitch them instead of clamping it to a 15s excerpt. Uploaded/generated storyboard, shot-sheet, or trailer-concept images used as Seedance references should become one Seedance generate_video call by default; do not extract panels with edit_image and do not animate the storyboard sheet with LTX unless the user explicitly asks for separate non-Seedance clips. Seedance loose image, video, and audio references go through this tool; do not use animate_photo sourceImageIndex/frameRole/endImageIndex for Seedance. If an uploaded video is the source clip to transform, upscale, enhance, restyle, or remaster, use video_to_video with controlMode="seedance-v2v" instead of generate_video referenceVideoIndices. If the uploaded audio is the primary sync target, lip-sync target, or requested as sound-to-video/audio-sync, use sound_to_video with videoModel="seedance2-mini" instead of this tool unless the user asks for full Seedance. Use referenceAudioIndices here only when audio is a loose reference under an image/video-anchored Seedance shot. For Seedance, every image — first frame, last frame, or loose reference — is passed through referenceImageIndices (auto-uploaded as referenceImageUrls). Anchor frame intent in the prompt with @Image tags such as "Use @Image1 as the opening shot reference. Begin the video with a composition, subject placement, lighting, mood, and camera framing that closely match @Image1." (or @Image2 as the final shot reference). For seamless-loop or "first frame and last frame identical" requests with a single uploaded image, anchor it explicitly as both: "Use @Image1 as both the first frame and last frame so the video loops cleanly back to the opening composition." Assign each useful @Image/@Video/@Audio tag a role. APPROVED STORYBOARD PRODUCTION: When the user asks for a production workflow from an approved storyboard, the chat orchestrator should use the durable CampaignStoryboard contract: render the composite board, audit it, generate per-scene GPT Image 2 keyframes, then render Seedance scene clips and stitch them. Do not replace that with a generic storyboard-reference video unless the user asks for a fast draft. PARTIAL VIDEO EDITS: Do NOT call generate_video to re-render an existing rendered/uploaded video just to change part of it (the bumper, the intro, the end card, a single scene, the last few seconds, etc.). Use replace_video_segment for that — it preserves the unchanged portion, keeps the original audio outside the replaced window, and costs far less. Likewise use extend_video to add new time to the end without rewriting the rest. If the request is vague, ask about vision/mood/style first. Only call once you have clear creative intent.',
|
|
11
11
|
parameters: {
|
|
12
12
|
type: "object",
|
|
13
13
|
properties: {
|
|
@@ -61,13 +61,24 @@ BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax. This i
|
|
|
61
61
|
},
|
|
62
62
|
negativePrompt: {
|
|
63
63
|
type: "string",
|
|
64
|
-
description: "Advanced non-Seedance only. Use this field only when the user explicitly asks to set a separate negative prompt. For ordinary avoid/no/don't constraints on LTX 2.3 or WAN 2.2, translate them into affirmative production constraints inside prompt instead; do not move them here. Do not set for seedance2 or seedance2-fast.",
|
|
64
|
+
description: "Advanced non-Seedance only. Use this field only when the user explicitly asks to set a separate negative prompt. For ordinary avoid/no/don't constraints on LTX 2.3 or WAN 2.2, translate them into affirmative production constraints inside prompt instead; do not move them here. Do not set for seedance2, seedance2-mini, or seedance2-fast.",
|
|
65
65
|
},
|
|
66
66
|
videoModel: {
|
|
67
67
|
type: "string",
|
|
68
|
-
enum: [
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
enum: [
|
|
69
|
+
"ltx23",
|
|
70
|
+
"wan22",
|
|
71
|
+
"seedance2",
|
|
72
|
+
"seedance2-mini",
|
|
73
|
+
"seedance2-fast",
|
|
74
|
+
"happyhorse-1.1-t2v",
|
|
75
|
+
"happyhorse-1.1-i2v",
|
|
76
|
+
"happyhorse-1.1-r2v",
|
|
77
|
+
],
|
|
78
|
+
description: 'Video model. "ltx23" (default): LTX 2.3 with native audio; Fast/HQ use the distilled 8-step worker and Default Media Quality Pro uses the non-distilled dev worker. "wan22": Fast 4-step, simple motion, no audio. Default: "ltx23". Seedance quality is selected only by model: use "seedance2-mini" for Seedance 2.0 Mini or faster/lower-cost 720p iteration, use "seedance2-fast" only when the user explicitly asks for Seedance Fast / seedance-fast, and use "seedance2" for the full Seedance 2.0 model, explicit non-fast/full-quality requests, 1080p/4K requests, or generated/uploaded storyboard images unless the user explicitly asks for a draft, Mini, or the fast model. Do not use Default Media Quality Fast/HQ/Pro or targetResolution to represent Seedance quality. ' +
|
|
79
|
+
toolPromptMarkers_js_1.SEEDANCE_TOOL_MULTIMODAL_REFERENCE_GUIDANCE +
|
|
80
|
+
' ' +
|
|
81
|
+
toolPromptMarkers_js_1.HAPPYHORSE_GENERATE_VIDEO_MODEL_DESCRIPTION,
|
|
71
82
|
},
|
|
72
83
|
generateAudio: {
|
|
73
84
|
type: "boolean",
|
|
@@ -86,7 +97,7 @@ BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax. This i
|
|
|
86
97
|
referenceAudioIndices: {
|
|
87
98
|
type: "array",
|
|
88
99
|
items: { type: "number" },
|
|
89
|
-
description: 'Seedance only. Optional loose audio references. Use negative indices for uploaded audio files (-1 first uploaded audio, -2 second uploaded audio) and non-negative indices for generated audio results. Omit by default: uploaded audio is auto-forwarded as @Audio references when the Seedance request also has an image or video reference. Use this only for loose background, mood, timing, or style references under an image/video-anchored Seedance shot. If the uploaded audio is the primary sync target, lip-sync target, or requested as sound-to-video/audio-sync, use sound_to_video with videoModel="seedance2" instead. Audio-only Seedance requests are unsupported; use sound_to_video for uploaded-audio-only workflows.',
|
|
100
|
+
description: 'Seedance only. Optional loose audio references. Use negative indices for uploaded audio files (-1 first uploaded audio, -2 second uploaded audio) and non-negative indices for generated audio results. Omit by default: uploaded audio is auto-forwarded as @Audio references when the Seedance request also has an image or video reference. Use this only for loose background, mood, timing, or style references under an image/video-anchored Seedance shot. If the uploaded audio is the primary sync target, lip-sync target, or requested as sound-to-video/audio-sync, use sound_to_video with videoModel="seedance2-mini" instead unless the user asks for full Seedance. Audio-only Seedance requests are unsupported; use sound_to_video for uploaded-audio-only workflows.',
|
|
90
101
|
},
|
|
91
102
|
width: {
|
|
92
103
|
type: "number",
|
|
@@ -98,7 +109,7 @@ BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax. This i
|
|
|
98
109
|
},
|
|
99
110
|
targetResolution: {
|
|
100
111
|
type: "number",
|
|
101
|
-
description: 'Short-side video resolution target in pixels. Use when the user asks for a bare named resolution such as "480p", "720p", or "
|
|
112
|
+
description: 'Short-side video resolution target in pixels. Use when the user asks for a bare named resolution such as "480p", "720p", "1080p", "2160p", or "4K" without exact pixels or an output orientation. This is resolution only, not a Seedance quality tier: Seedance quality is selected by videoModel ("seedance2", "seedance2-mini", or "seedance2-fast"). Seedance 2.0 full supports 4K; Seedance Mini/Fast support 480p/720p only. Do not set targetResolution from Default Media Quality Fast/HQ/Pro. If omitted for Seedance, the host uses the selected model default. This preserves/inherits the current video shape instead of forcing landscape. Do NOT set width, height, or exact-pixel aspectRatio for bare named resolution requests. If the user says "720p portrait", "720p landscape", "4K portrait", or "4K landscape", use exact width/height/aspectRatio instead.',
|
|
102
113
|
},
|
|
103
114
|
numberOfVariations: {
|
|
104
115
|
type: "number",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/generate-video/definition.ts"],"names":[],"mappings":";;;AAMA,
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/generate-video/definition.ts"],"names":[],"mappings":";;;AAMA,kFAMiD;AACjD,sDAAmE;AAEtD,QAAA,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,g5IAAg5I;QACl5I,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,oDAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;kcA4Bma;iBACzb;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,yDAAkC;iBAChD;gBACD,oBAAoB,EAAE;oBACpB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,wEAAiD;iBAC/D;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,8GAA8G;oBAChH,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,mVAAmV;iBACtV;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,OAAO;wBACP,OAAO;wBACP,WAAW;wBACX,gBAAgB;wBAChB,gBAAgB;wBAChB,oBAAoB;wBACpB,oBAAoB;wBACpB,oBAAoB;qBACrB;oBACD,WAAW,EACT,6vBAA6vB;wBAC7vB,kEAA2C;wBAC3C,GAAG;wBACH,kEAA2C;iBAC9C;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,oKAAoK;iBACvK;gBACD,qBAAqB,EAAE;oBACrB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EACT,w0BAAw0B;iBAC30B;gBACD,qBAAqB,EAAE;oBACrB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EACT,mfAAmf;iBACtf;gBACD,qBAAqB,EAAE;oBACrB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EACT,yvBAAyvB;iBAC5vB;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,i/BAAi/B;iBACp/B;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,urBAAurB;iBAC1rB;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,o1BAAo1B;iBACv1B;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4XAA4X;oBAC9X,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mCAAwB;iBACtC;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,8jBAA8jB;iBACjkB;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
|
|
@@ -51,7 +51,7 @@ exports.definition = {
|
|
|
51
51
|
},
|
|
52
52
|
videoModel: {
|
|
53
53
|
type: 'string',
|
|
54
|
-
enum: ['auto', 'ltx23', 'wan22', 'seedance2', 'seedance2-fast'],
|
|
54
|
+
enum: ['auto', 'ltx23', 'wan22', 'seedance2', 'seedance2-mini', 'seedance2-fast'],
|
|
55
55
|
description: 'Which model to use for the new segment. Default: "auto" — detect from the base video\'s producer (Seedance base → Seedance, Wan base → Wan 2.2, otherwise LTX-2.3). Override only when the user explicitly requests a different model.',
|
|
56
56
|
},
|
|
57
57
|
keepOriginalAudio: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/replace-video-segment/definition.ts"],"names":[],"mappings":";;;AAuBa,QAAA,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EACT,scAAsc;YACtc,6uBAA6uB;YAC7uB,mNAAmN;YACnN,yTAAyT;YACzT,+lBAA+lB;YAC/lB,oOAAoO;YACpO,wYAAwY;YACxY,0EAA0E;YAC1E,mHAAmH;YACnH,iVAAiV;YACjV,g1BAAg1B;QACl1B,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,mWAAmW;iBACtW;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qtBAAqtB;iBACxtB;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,iSAAiS;iBACpS;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4UAA4U;iBAC/U;gBACD,qBAAqB,EAAE;oBACrB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qiBAAqiB;iBACxiB;gBACD,uBAAuB,EAAE;oBACvB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,CAAC;oBACV,WAAW,EACT,wdAAwd;iBAC3d;gBACD,qBAAqB,EAAE;oBACrB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,CAAC;oBACV,WAAW,EACT,mbAAmb;iBACtb;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/replace-video-segment/definition.ts"],"names":[],"mappings":";;;AAuBa,QAAA,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EACT,scAAsc;YACtc,6uBAA6uB;YAC7uB,mNAAmN;YACnN,yTAAyT;YACzT,+lBAA+lB;YAC/lB,oOAAoO;YACpO,wYAAwY;YACxY,0EAA0E;YAC1E,mHAAmH;YACnH,iVAAiV;YACjV,g1BAAg1B;QACl1B,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,mWAAmW;iBACtW;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qtBAAqtB;iBACxtB;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,iSAAiS;iBACpS;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4UAA4U;iBAC/U;gBACD,qBAAqB,EAAE;oBACrB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qiBAAqiB;iBACxiB;gBACD,uBAAuB,EAAE;oBACvB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,CAAC;oBACV,WAAW,EACT,wdAAwd;iBAC3d;gBACD,qBAAqB,EAAE;oBACrB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,CAAC;oBACV,WAAW,EACT,mbAAmb;iBACtb;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;oBACjF,WAAW,EACT,wOAAwO;iBAC3O;gBACD,iBAAiB,EAAE;oBACjB,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,ieAAie;iBACpe;aACF;YACD,QAAQ,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC;SACzC;KACF;CACF,CAAC"}
|
|
@@ -7,7 +7,7 @@ exports.definition = {
|
|
|
7
7
|
type: "function",
|
|
8
8
|
function: {
|
|
9
9
|
name: "sound_to_video",
|
|
10
|
-
description: 'Generate video synchronized to audio. Use when the user has uploaded an audio file (mp3, wav, m4a, flac) and the audio is the primary sync target, especially uploaded-audio-only workflows. Also use after generate_music ("turn that song into a video", "make a music video from that"). Auto-detects generated audio from generate_music if no audio file is uploaded. Seedance animate_photo/generate_video can also attach uploaded audio as a loose @Audio reference when an image or video reference anchors the request; use this tool instead when the soundtrack itself should drive the video. If the user provides a reference image, use ltx23-ia2v; for lip-sync with a face image, use wan-s2v; if no image, use ltx23-a2v. If the user wants dialogue/audio WITHOUT pre-existing audio, use animate_photo instead (LTX 2.3 generates audio natively). Note: Persona voice clips from resolve_personas are NOT used by this tool — for persona voice identity in video, use animate_photo or generate_video instead. LONG AUDIO ON SEEDANCE: Seedance caps each clip at 15s. When the user uploads audio longer than 15s and Seedance is selected (seedance2 or seedance2-fast), do NOT clamp to 15s and drop the rest — split the run into multiple sound_to_video calls in the same turn (one per 15s segment, so a 20s audio becomes two clips: audioStart=0 duration=15, then audioStart=15 duration=5) and finish with a single stitch_video call referencing the resulting clip indices in order with audioIndex pointing at the same uploaded audio so the stitched output carries the full original soundtrack. LTX/WAN models accept up to 20s per clip, so single-call is fine for them.',
|
|
10
|
+
description: 'Generate video synchronized to audio. Use when the user has uploaded an audio file (mp3, wav, m4a, flac) and the audio is the primary sync target, especially uploaded-audio-only workflows. Also use after generate_music ("turn that song into a video", "make a music video from that"). Auto-detects generated audio from generate_music if no audio file is uploaded. Seedance animate_photo/generate_video can also attach uploaded audio as a loose @Audio reference when an image or video reference anchors the request; use this tool instead when the soundtrack itself should drive the video. If the user provides a reference image, use ltx23-ia2v; for lip-sync with a face image, use wan-s2v; if no image, use ltx23-a2v. If the user wants dialogue/audio WITHOUT pre-existing audio, use animate_photo instead (LTX 2.3 generates audio natively). Note: Persona voice clips from resolve_personas are NOT used by this tool — for persona voice identity in video, use animate_photo or generate_video instead. LONG AUDIO ON SEEDANCE: Seedance caps each clip at 15s. When the user uploads audio longer than 15s and Seedance is selected (seedance2, seedance2-mini, or seedance2-fast), do NOT clamp to 15s and drop the rest — split the run into multiple sound_to_video calls in the same turn (one per 15s segment, so a 20s audio becomes two clips: audioStart=0 duration=15, then audioStart=15 duration=5) and finish with a single stitch_video call referencing the resulting clip indices in order with audioIndex pointing at the same uploaded audio so the stitched output carries the full original soundtrack. LTX/WAN models accept up to 20s per clip, so single-call is fine for them.',
|
|
11
11
|
parameters: {
|
|
12
12
|
type: "object",
|
|
13
13
|
properties: {
|
|
@@ -62,8 +62,8 @@ BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax to vary
|
|
|
62
62
|
},
|
|
63
63
|
videoModel: {
|
|
64
64
|
type: "string",
|
|
65
|
-
enum: ["wan-s2v", "seedance2", "seedance2-fast", "ltx23-ia2v", "ltx23-a2v"],
|
|
66
|
-
description: 'Video model. "ltx23-ia2v" (default when image available): LTX 2.3 image+audio to video, audio-reactive with a reference image; Fast/HQ use the distilled 8-step worker and Default Media Quality Pro uses the non-distilled dev worker. "ltx23-a2v" (default when no image): LTX 2.3 audio-only to video, no image needed, creates video purely from text prompt + audio with the same quality-tier routing. "wan-s2v": WAN 2.2 sound-to-video, best for lip-sync with a face image, fast 4-step. "seedance2": full Seedance 2.0 audio-reference video, 4-15s
|
|
65
|
+
enum: ["wan-s2v", "seedance2", "seedance2-mini", "seedance2-fast", "ltx23-ia2v", "ltx23-a2v"],
|
|
66
|
+
description: 'Video model. "ltx23-ia2v" (default when image available): LTX 2.3 image+audio to video, audio-reactive with a reference image; Fast/HQ use the distilled 8-step worker and Default Media Quality Pro uses the non-distilled dev worker. "ltx23-a2v" (default when no image): LTX 2.3 audio-only to video, no image needed, creates video purely from text prompt + audio with the same quality-tier routing. "wan-s2v": WAN 2.2 sound-to-video, best for lip-sync with a face image, fast 4-step. "seedance2": full Seedance 2.0 audio-reference video, 4-15s. "seedance2-mini": Seedance 2.0 Mini, 720p cap, fastest/lower-cost Seedance option. "seedance2-fast": Seedance 2.0 Fast legacy option. Seedance quality is selected only by this model value: pick "seedance2-mini" for faster/lower-cost drafts or explicit Mini requests, pick "seedance2-fast" only when the user says Seedance Fast / seedance-fast, and pick "seedance2" for full/non-fast Seedance or 1080p/4K. Do not infer the Seedance model from Default Media Quality Fast/HQ/Pro. ' +
|
|
67
67
|
toolPromptMarkers_js_1.SEEDANCE_TOOL_AUDIO_REFERENCE_GUIDANCE +
|
|
68
68
|
' Omit to auto-select based on whether an image is present.',
|
|
69
69
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/sound-to-video/definition.ts"],"names":[],"mappings":";;;AAMA,kFAIiD;AACjD,sDAAmE;AAEtD,QAAA,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/sound-to-video/definition.ts"],"names":[],"mappings":";;;AAMA,kFAIiD;AACjD,sDAAmE;AAEtD,QAAA,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,qoDAAqoD;QACvoD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,uDAAgC;;;;;;;;;;;;;;;;;;;;kdAoBgb;iBACzc;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,yDAAkC;iBAChD;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yPAAyP;iBAC5P;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,0OAA0O;iBAC7O;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+OAA+O;oBACjP,OAAO,EAAE,CAAC;iBACX;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qNAAqN;oBACvN,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,CAAC;oBAC7F,WAAW,EACT,8/BAA8/B;wBAC9/B,6DAAsC;wBACtC,4DAA4D;iBAC/D;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,wMAAwM;iBAC3M;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,iSAAiS;oBACnS,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,6YAA6Y;iBAChZ;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mCAAwB;iBACtC;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
|
|
@@ -70,12 +70,12 @@ BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax to vary
|
|
|
70
70
|
},
|
|
71
71
|
negativePrompt: {
|
|
72
72
|
type: "string",
|
|
73
|
-
description: "Advanced non-Seedance only. Use this field only when the user explicitly asks to set a separate negative prompt. For ordinary avoid/no/don't constraints on LTX 2.3 or WAN 2.2, translate them into affirmative production constraints inside prompt instead; do not move them here. Do not set when controlMode is seedance-v2v or videoModel is seedance2/seedance2-fast.",
|
|
73
|
+
description: "Advanced non-Seedance only. Use this field only when the user explicitly asks to set a separate negative prompt. For ordinary avoid/no/don't constraints on LTX 2.3 or WAN 2.2, translate them into affirmative production constraints inside prompt instead; do not move them here. Do not set when controlMode is seedance-v2v or videoModel is seedance2/seedance2-mini/seedance2-fast.",
|
|
74
74
|
},
|
|
75
75
|
videoModel: {
|
|
76
76
|
type: "string",
|
|
77
|
-
enum: ["ltx23-v2v", "wan22-animate", "seedance2", "seedance2-fast"],
|
|
78
|
-
description: 'Model selector for this video-to-video request. Usually omit; controlMode chooses the non-Seedance model. For controlMode="seedance-v2v", Seedance quality is selected only by model: use "seedance2-fast" when the user asks for Seedance Fast / seedance-fast
|
|
77
|
+
enum: ["ltx23-v2v", "wan22-animate", "seedance2", "seedance2-mini", "seedance2-fast"],
|
|
78
|
+
description: 'Model selector for this video-to-video request. Usually omit; controlMode chooses the non-Seedance model. For controlMode="seedance-v2v", Seedance quality is selected only by model: use "seedance2-mini" for faster/lower-cost drafts or explicit Mini requests, use "seedance2-fast" only when the user asks for Seedance Fast / seedance-fast, and use "seedance2" for full/non-fast Seedance or 1080p/4K. Do not infer the Seedance model from Default Media Quality Fast/HQ/Pro or from 480p/720p resolution requests alone.',
|
|
79
79
|
},
|
|
80
80
|
generateAudio: {
|
|
81
81
|
type: "boolean",
|
|
@@ -83,7 +83,7 @@ BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax to vary
|
|
|
83
83
|
},
|
|
84
84
|
targetResolution: {
|
|
85
85
|
type: "number",
|
|
86
|
-
description: 'Seedance V2V only. Short-side output resolution target in pixels. Use when the user asks for a bare named resolution such as "480p", "720p", or "1080p" without exact dimensions. For Seedance V2V
|
|
86
|
+
description: 'Seedance V2V only. Short-side output resolution target in pixels. Use when the user asks for a bare named resolution such as "480p", "720p", or "1080p" without exact dimensions. For Seedance V2V Mini/Fast, 480p and 720p are supported; preserve the source video shape instead of forcing landscape pixels.',
|
|
87
87
|
},
|
|
88
88
|
sourceImageIndex: {
|
|
89
89
|
type: "number",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/video-to-video/definition.ts"],"names":[],"mappings":";;;AAMA,kFAIiD;AAEpC,QAAA,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,4vBAA4vB;QAC9vB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,uDAAgC;;;;;;;;;;;;;;;;;;;uRAmBqP;iBAC9Q;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,yDAAkC;iBAChD;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qYAAqY;iBACxY;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,cAAc;wBACd,iBAAiB;wBACjB,OAAO;wBACP,MAAM;wBACN,OAAO;wBACP,UAAU;wBACV,UAAU;wBACV,SAAS;wBACT,cAAc;qBACf;oBACD,WAAW,EACT,sFAAsF;wBACtF,kMAAkM;wBAClM,sNAAsN;wBACtN,mSAAmS;wBACnS,mQAAmQ;wBACnQ,iRAAiR;wBACjR,yXAAyX;wBACzX,sbAAsb;wBACtb,4cAA4c;wBAC5c,+RAA+R,2DAAoC,yHAAyH;wBAC5b,2QAA2Q;iBAC9Q;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/video-to-video/definition.ts"],"names":[],"mappings":";;;AAMA,kFAIiD;AAEpC,QAAA,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,4vBAA4vB;QAC9vB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,uDAAgC;;;;;;;;;;;;;;;;;;;uRAmBqP;iBAC9Q;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,yDAAkC;iBAChD;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qYAAqY;iBACxY;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,cAAc;wBACd,iBAAiB;wBACjB,OAAO;wBACP,MAAM;wBACN,OAAO;wBACP,UAAU;wBACV,UAAU;wBACV,SAAS;wBACT,cAAc;qBACf;oBACD,WAAW,EACT,sFAAsF;wBACtF,kMAAkM;wBAClM,sNAAsN;wBACtN,mSAAmS;wBACnS,mQAAmQ;wBACnQ,iRAAiR;wBACjR,yXAAyX;wBACzX,sbAAsb;wBACtb,4cAA4c;wBAC5c,+RAA+R,2DAAoC,yHAAyH;wBAC5b,2QAA2Q;iBAC9Q;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4XAA4X;iBAC/X;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;oBACrF,WAAW,EACT,ogBAAogB;iBACvgB;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,yNAAyN;iBAC5N;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,iTAAiT;iBACpT;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,8NAA8N;iBACjO;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;oBAClD,WAAW,EACT,2cAA2c;iBAC9c;gBACD,mBAAmB,EAAE;oBACnB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;oBACnD,WAAW,EACT,4VAA4V;iBAC/V;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4SAA4S;iBAC/S;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,wgBAAwgB;oBAC1gB,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4DAA4D;oBAC9D,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -5,8 +5,12 @@ export { MODELS_BY_TOOL, getAlternativeModels, getModelArgKey, getModelOptions,
|
|
|
5
5
|
export type { ModelOption } from './shared/modelRegistry.js';
|
|
6
6
|
export * from './shared/policyChecks.js';
|
|
7
7
|
export * from './shared/seedancePolicyErrors.js';
|
|
8
|
+
export * from './shared/happyhorsePolicyErrors.js';
|
|
8
9
|
export { SEEDANCE_REFERENCE_LIMITS, SeedanceReferenceLimitError, validateSeedanceReferenceCounts, } from './shared/seedanceReferences.js';
|
|
9
10
|
export type { SeedanceReferenceLimits, SeedanceReferenceLimitKind, SeedanceReferenceCounts, } from './shared/seedanceReferences.js';
|
|
11
|
+
export { HAPPYHORSE_REFERENCE_LIMITS, HappyHorseReferenceLimitError, getHappyHorseReferenceLimits, validateHappyHorseReferenceCounts, } from './shared/happyhorseReferences.js';
|
|
12
|
+
export type { HappyHorseReferenceLimits, HappyHorseReferenceLimitKind, HappyHorseReferenceCounts, } from './shared/happyhorseReferences.js';
|
|
13
|
+
export { HAPPYHORSE_GENERATE_VIDEO_MODEL_DESCRIPTION, HAPPYHORSE_TOOL_REFERENCE_GUIDANCE, } from '../contracts/toolPromptMarkers.js';
|
|
10
14
|
export * from './shared/llmHelpers.js';
|
|
11
15
|
export * from './shared/promptRefinementCache.js';
|
|
12
16
|
export * from './shared/imageEncoding.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EACL,aAAa,EACb,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,eAAe,EACf,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,2BAA2B,EAC3B,aAAa,EACb,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EACL,eAAe,EACf,cAAc,EACd,0BAA0B,EAC1B,OAAO,EACP,MAAM,GACP,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,uBAAuB,EACvB,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mDAAmD,EACnD,yCAAyC,GAC1C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,EACjC,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,+BAA+B,EAC/B,iCAAiC,EACjC,gCAAgC,EAChC,mCAAmC,EACnC,+BAA+B,GAChC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,0CAA0C,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,gDAAgD,EAAE,MAAM,yCAAyC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EACL,aAAa,EACb,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,eAAe,EACf,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,4BAA4B,EAC5B,iCAAiC,GAClC,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,kCAAkC,CAAC;AAI1C,OAAO,EACL,2CAA2C,EAC3C,kCAAkC,GACnC,MAAM,mCAAmC,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,2BAA2B,EAC3B,aAAa,EACb,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EACL,eAAe,EACf,cAAc,EACd,0BAA0B,EAC1B,OAAO,EACP,MAAM,GACP,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,uBAAuB,EACvB,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mDAAmD,EACnD,yCAAyC,GAC1C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,EACjC,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,+BAA+B,EAC/B,iCAAiC,EACjC,gCAAgC,EAChC,mCAAmC,EACnC,+BAA+B,GAChC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,0CAA0C,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,gDAAgD,EAAE,MAAM,yCAAyC,CAAC"}
|
package/dist/tools/index.js
CHANGED
|
@@ -14,8 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
18
|
-
exports.maybeAlignNumberOfVariationsToDynamicBranchCount = exports.textExplicitlyRequestsMultipleImageOutputs = void 0;
|
|
17
|
+
exports.isolateDynamicPromptSlot = exports.extractDynamicPromptBranches = exports.expandSingleSourceFanOutForPerClipPrompts = exports.collapseSingleSourceFanOutToDynamicPromptVariations = exports.toolOk = exports.toolErr = exports.mapLegacyToolErrorCategory = exports.isToolResultOk = exports.isToolResultErr = exports.resolveDancePresetForRequest = exports.DANCE_PRESETS = exports.SUBTITLE_VERTICAL_POSITIONS = exports.STITCH_TRANSITION_TYPES = exports.OVERLAY_POSITIONS = exports.videoToVideoDefinition = exports.stitchVideoDefinition = exports.soundToVideoDefinition = exports.restorePhotoDefinition = exports.replaceVideoSegmentDefinition = exports.refineResultDefinition = exports.overlayVideoDefinition = exports.orbitVideoDefinition = exports.generationToolDefinitions = exports.generateVideoDefinition = exports.generateMusicDefinition = exports.generateImageDefinition = exports.extendVideoDefinition = exports.editImageDefinition = exports.danceMontageDefinition = exports.changeAngleDefinition = exports.applyStyleDefinition = exports.animatePhotoDefinition = exports.addSubtitlesDefinition = exports.HAPPYHORSE_TOOL_REFERENCE_GUIDANCE = exports.HAPPYHORSE_GENERATE_VIDEO_MODEL_DESCRIPTION = exports.validateHappyHorseReferenceCounts = exports.getHappyHorseReferenceLimits = exports.HappyHorseReferenceLimitError = exports.HAPPYHORSE_REFERENCE_LIMITS = exports.validateSeedanceReferenceCounts = exports.SeedanceReferenceLimitError = exports.SEEDANCE_REFERENCE_LIMITS = exports.isQualityTierTool = exports.getModelOptions = exports.getModelArgKey = exports.getAlternativeModels = exports.MODELS_BY_TOOL = exports.parseResultForError = exports.classifyError = exports.sanitizeBatchPrompt = void 0;
|
|
18
|
+
exports.maybeAlignNumberOfVariationsToDynamicBranchCount = exports.textExplicitlyRequestsMultipleImageOutputs = exports.isStoryboardKeyframeBatchPrompt = exports.promptHasLinkedVariantBatchLanguage = exports.promptHasStoryboardBatchLanguage = exports.validateSingleDynamicPromptBranch = exports.validateSceneDynamicPromptBatch = exports.buildDynamicPromptSlotPrompts = void 0;
|
|
19
19
|
var promptSanitizer_js_1 = require("./shared/promptSanitizer.js");
|
|
20
20
|
Object.defineProperty(exports, "sanitizeBatchPrompt", { enumerable: true, get: function () { return promptSanitizer_js_1.sanitizeBatchPrompt; } });
|
|
21
21
|
var errorClassification_js_1 = require("./shared/errorClassification.js");
|
|
@@ -29,10 +29,19 @@ Object.defineProperty(exports, "getModelOptions", { enumerable: true, get: funct
|
|
|
29
29
|
Object.defineProperty(exports, "isQualityTierTool", { enumerable: true, get: function () { return modelRegistry_js_1.isQualityTierTool; } });
|
|
30
30
|
__exportStar(require("./shared/policyChecks.js"), exports);
|
|
31
31
|
__exportStar(require("./shared/seedancePolicyErrors.js"), exports);
|
|
32
|
+
__exportStar(require("./shared/happyhorsePolicyErrors.js"), exports);
|
|
32
33
|
var seedanceReferences_js_1 = require("./shared/seedanceReferences.js");
|
|
33
34
|
Object.defineProperty(exports, "SEEDANCE_REFERENCE_LIMITS", { enumerable: true, get: function () { return seedanceReferences_js_1.SEEDANCE_REFERENCE_LIMITS; } });
|
|
34
35
|
Object.defineProperty(exports, "SeedanceReferenceLimitError", { enumerable: true, get: function () { return seedanceReferences_js_1.SeedanceReferenceLimitError; } });
|
|
35
36
|
Object.defineProperty(exports, "validateSeedanceReferenceCounts", { enumerable: true, get: function () { return seedanceReferences_js_1.validateSeedanceReferenceCounts; } });
|
|
37
|
+
var happyhorseReferences_js_1 = require("./shared/happyhorseReferences.js");
|
|
38
|
+
Object.defineProperty(exports, "HAPPYHORSE_REFERENCE_LIMITS", { enumerable: true, get: function () { return happyhorseReferences_js_1.HAPPYHORSE_REFERENCE_LIMITS; } });
|
|
39
|
+
Object.defineProperty(exports, "HappyHorseReferenceLimitError", { enumerable: true, get: function () { return happyhorseReferences_js_1.HappyHorseReferenceLimitError; } });
|
|
40
|
+
Object.defineProperty(exports, "getHappyHorseReferenceLimits", { enumerable: true, get: function () { return happyhorseReferences_js_1.getHappyHorseReferenceLimits; } });
|
|
41
|
+
Object.defineProperty(exports, "validateHappyHorseReferenceCounts", { enumerable: true, get: function () { return happyhorseReferences_js_1.validateHappyHorseReferenceCounts; } });
|
|
42
|
+
var toolPromptMarkers_js_1 = require("../contracts/toolPromptMarkers.js");
|
|
43
|
+
Object.defineProperty(exports, "HAPPYHORSE_GENERATE_VIDEO_MODEL_DESCRIPTION", { enumerable: true, get: function () { return toolPromptMarkers_js_1.HAPPYHORSE_GENERATE_VIDEO_MODEL_DESCRIPTION; } });
|
|
44
|
+
Object.defineProperty(exports, "HAPPYHORSE_TOOL_REFERENCE_GUIDANCE", { enumerable: true, get: function () { return toolPromptMarkers_js_1.HAPPYHORSE_TOOL_REFERENCE_GUIDANCE; } });
|
|
36
45
|
__exportStar(require("./shared/llmHelpers.js"), exports);
|
|
37
46
|
__exportStar(require("./shared/promptRefinementCache.js"), exports);
|
|
38
47
|
__exportStar(require("./shared/imageEncoding.js"), exports);
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,kEAAkE;AAAzD,yHAAA,mBAAmB,OAAA;AAC5B,0EAGyC;AAFvC,uHAAA,aAAa,OAAA;AACb,6HAAA,mBAAmB,OAAA;AAMrB,8DAMmC;AALjC,kHAAA,cAAc,OAAA;AACd,wHAAA,oBAAoB,OAAA;AACpB,kHAAA,cAAc,OAAA;AACd,mHAAA,eAAe,OAAA;AACf,qHAAA,iBAAiB,OAAA;AAGnB,2DAAyC;AACzC,mEAAiD;AACjD,wEAIwC;AAHtC,kIAAA,yBAAyB,OAAA;AACzB,oIAAA,2BAA2B,OAAA;AAC3B,wIAAA,+BAA+B,OAAA;AAOjC,yDAAuC;AACvC,oEAAkD;AAClD,4DAA0C;AAC1C,iEAA+C;AAC/C,qEAAmD;AACnD,+DAA6C;AAC7C,mDAyBgC;AAxB9B,kHAAA,sBAAsB,OAAA;AACtB,kHAAA,sBAAsB,OAAA;AACtB,gHAAA,oBAAoB,OAAA;AACpB,iHAAA,qBAAqB,OAAA;AACrB,kHAAA,sBAAsB,OAAA;AACtB,+GAAA,mBAAmB,OAAA;AACnB,iHAAA,qBAAqB,OAAA;AACrB,mHAAA,uBAAuB,OAAA;AACvB,mHAAA,uBAAuB,OAAA;AACvB,mHAAA,uBAAuB,OAAA;AACvB,qHAAA,yBAAyB,OAAA;AACzB,gHAAA,oBAAoB,OAAA;AACpB,kHAAA,sBAAsB,OAAA;AACtB,kHAAA,sBAAsB,OAAA;AACtB,yHAAA,6BAA6B,OAAA;AAC7B,kHAAA,sBAAsB,OAAA;AACtB,kHAAA,sBAAsB,OAAA;AACtB,iHAAA,qBAAqB,OAAA;AACrB,kHAAA,sBAAsB,OAAA;AACtB,6GAAA,iBAAiB,OAAA;AACjB,mHAAA,uBAAuB,OAAA;AACvB,uHAAA,2BAA2B,OAAA;AAC3B,yGAAA,aAAa,OAAA;AACb,wHAAA,4BAA4B,OAAA;AAG9B,yCAMqB;AALnB,4GAAA,eAAe,OAAA;AACf,2GAAA,cAAc,OAAA;AACd,uHAAA,0BAA0B,OAAA;AAC1B,oGAAA,OAAO,OAAA;AACP,mGAAA,MAAM,OAAA;AAWR,uDAG4B;AAF1B,uJAAA,mDAAmD,OAAA;AACnD,6IAAA,yCAAyC,OAAA;AAE3C,8EAW2C;AARzC,wIAAA,4BAA4B,OAAA;AAC5B,oIAAA,wBAAwB,OAAA;AACxB,yIAAA,6BAA6B,OAAA;AAC7B,2IAAA,+BAA+B,OAAA;AAC/B,6IAAA,iCAAiC,OAAA;AACjC,4IAAA,gCAAgC,OAAA;AAChC,+IAAA,mCAAmC,OAAA;AACnC,2IAAA,+BAA+B,OAAA;AAEjC,oEAA0F;AAAjF,iJAAA,0CAA0C,OAAA;AACnD,0FAA2G;AAAlG,kKAAA,gDAAgD,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,kEAAkE;AAAzD,yHAAA,mBAAmB,OAAA;AAC5B,0EAGyC;AAFvC,uHAAA,aAAa,OAAA;AACb,6HAAA,mBAAmB,OAAA;AAMrB,8DAMmC;AALjC,kHAAA,cAAc,OAAA;AACd,wHAAA,oBAAoB,OAAA;AACpB,kHAAA,cAAc,OAAA;AACd,mHAAA,eAAe,OAAA;AACf,qHAAA,iBAAiB,OAAA;AAGnB,2DAAyC;AACzC,mEAAiD;AACjD,qEAAmD;AACnD,wEAIwC;AAHtC,kIAAA,yBAAyB,OAAA;AACzB,oIAAA,2BAA2B,OAAA;AAC3B,wIAAA,+BAA+B,OAAA;AAOjC,4EAK0C;AAJxC,sIAAA,2BAA2B,OAAA;AAC3B,wIAAA,6BAA6B,OAAA;AAC7B,uIAAA,4BAA4B,OAAA;AAC5B,4IAAA,iCAAiC,OAAA;AAUnC,0EAG2C;AAFzC,mJAAA,2CAA2C,OAAA;AAC3C,0IAAA,kCAAkC,OAAA;AAEpC,yDAAuC;AACvC,oEAAkD;AAClD,4DAA0C;AAC1C,iEAA+C;AAC/C,qEAAmD;AACnD,+DAA6C;AAC7C,mDAyBgC;AAxB9B,kHAAA,sBAAsB,OAAA;AACtB,kHAAA,sBAAsB,OAAA;AACtB,gHAAA,oBAAoB,OAAA;AACpB,iHAAA,qBAAqB,OAAA;AACrB,kHAAA,sBAAsB,OAAA;AACtB,+GAAA,mBAAmB,OAAA;AACnB,iHAAA,qBAAqB,OAAA;AACrB,mHAAA,uBAAuB,OAAA;AACvB,mHAAA,uBAAuB,OAAA;AACvB,mHAAA,uBAAuB,OAAA;AACvB,qHAAA,yBAAyB,OAAA;AACzB,gHAAA,oBAAoB,OAAA;AACpB,kHAAA,sBAAsB,OAAA;AACtB,kHAAA,sBAAsB,OAAA;AACtB,yHAAA,6BAA6B,OAAA;AAC7B,kHAAA,sBAAsB,OAAA;AACtB,kHAAA,sBAAsB,OAAA;AACtB,iHAAA,qBAAqB,OAAA;AACrB,kHAAA,sBAAsB,OAAA;AACtB,6GAAA,iBAAiB,OAAA;AACjB,mHAAA,uBAAuB,OAAA;AACvB,uHAAA,2BAA2B,OAAA;AAC3B,yGAAA,aAAa,OAAA;AACb,wHAAA,4BAA4B,OAAA;AAG9B,yCAMqB;AALnB,4GAAA,eAAe,OAAA;AACf,2GAAA,cAAc,OAAA;AACd,uHAAA,0BAA0B,OAAA;AAC1B,oGAAA,OAAO,OAAA;AACP,mGAAA,MAAM,OAAA;AAWR,uDAG4B;AAF1B,uJAAA,mDAAmD,OAAA;AACnD,6IAAA,yCAAyC,OAAA;AAE3C,8EAW2C;AARzC,wIAAA,4BAA4B,OAAA;AAC5B,oIAAA,wBAAwB,OAAA;AACxB,yIAAA,6BAA6B,OAAA;AAC7B,2IAAA,+BAA+B,OAAA;AAC/B,6IAAA,iCAAiC,OAAA;AACjC,4IAAA,gCAAgC,OAAA;AAChC,+IAAA,mCAAmC,OAAA;AACnC,2IAAA,+BAA+B,OAAA;AAEjC,oEAA0F;AAAjF,iJAAA,0CAA0C,OAAA;AACnD,0FAA2G;AAAlG,kKAAA,gDAAgD,OAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type VendorModelPremiumRequiredPayload } from '../../media/index.js';
|
|
2
|
+
export declare const HAPPYHORSE_PROVIDER_CONTENT_POLICY_MESSAGE = "HappyHorse's content check didn't pass this one, so no video came back this time. We can adjust the prompt or try a different look and give it another go.";
|
|
3
|
+
export declare const HAPPYHORSE_VENDOR_GENERATION_FAILED_MESSAGE = "HappyHorse hit a snag partway through this one, so no media was generated. The provider did not return a specific reason \u2014 a quick retry usually clears it up. If it happens again, you can report the issue right from this message.";
|
|
4
|
+
export declare const HAPPYHORSE_VENDOR_TIMEOUT_MESSAGE = "HappyHorse took a bit too long on this one and timed out, so no media was generated. A quick retry usually does the trick; if it times out again, you can report the issue right from this message.";
|
|
5
|
+
export declare const HAPPYHORSE_INPUT_DOWNLOAD_FAILED_MESSAGE = "HappyHorse couldn't fetch one of the images for this video, so no media was generated. Make sure each reference image is a publicly reachable URL (or send it inline) and we'll try again.";
|
|
6
|
+
export interface HappyHorseTerminalPolicyPayload {
|
|
7
|
+
error: 'happyhorse_content_policy';
|
|
8
|
+
message: typeof HAPPYHORSE_PROVIDER_CONTENT_POLICY_MESSAGE;
|
|
9
|
+
retryPolicy: 'manual_user_confirmation';
|
|
10
|
+
nextAction: 'wait_for_user';
|
|
11
|
+
vendorErrorCode: string;
|
|
12
|
+
}
|
|
13
|
+
export interface HappyHorseTerminalGenerationFailurePayload {
|
|
14
|
+
error: 'happyhorse_generation_failed' | 'happyhorse_input_download_failed';
|
|
15
|
+
message: string;
|
|
16
|
+
retryPolicy: 'manual_user_confirmation';
|
|
17
|
+
nextAction: 'wait_for_user';
|
|
18
|
+
reportIssue?: true;
|
|
19
|
+
reportIssueReason?: string;
|
|
20
|
+
vendorError?: string;
|
|
21
|
+
vendorErrorCode?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare class HappyHorseTerminalPolicyError extends Error {
|
|
24
|
+
readonly payload: HappyHorseTerminalPolicyPayload;
|
|
25
|
+
constructor(payload: HappyHorseTerminalPolicyPayload);
|
|
26
|
+
}
|
|
27
|
+
export declare function happyhorseTerminalPolicyPayloadFromError(error: unknown): HappyHorseTerminalPolicyPayload | null;
|
|
28
|
+
export declare function happyhorseTerminalPolicyErrorFromError(error: unknown): HappyHorseTerminalPolicyError | null;
|
|
29
|
+
export declare function happyhorseTerminalGenerationFailurePayloadFromError(error: unknown): HappyHorseTerminalGenerationFailurePayload | VendorModelPremiumRequiredPayload | null;
|
|
30
|
+
//# sourceMappingURL=happyhorsePolicyErrors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"happyhorsePolicyErrors.d.ts","sourceRoot":"","sources":["../../../src/tools/shared/happyhorsePolicyErrors.ts"],"names":[],"mappings":"AAoBA,OAAO,EAEL,KAAK,iCAAiC,EACvC,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,0CAA0C,+JACuG,CAAC;AAE/J,eAAO,MAAM,2CAA2C,+OACiL,CAAC;AAE1O,eAAO,MAAM,iCAAiC,wMACyJ,CAAC;AAExM,eAAO,MAAM,wCAAwC,+LACyI,CAAC;AAE/L,MAAM,WAAW,+BAA+B;IAC9C,KAAK,EAAE,2BAA2B,CAAC;IACnC,OAAO,EAAE,OAAO,0CAA0C,CAAC;IAC3D,WAAW,EAAE,0BAA0B,CAAC;IACxC,UAAU,EAAE,eAAe,CAAC;IAE5B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,0CAA0C;IACzD,KAAK,EAAE,8BAA8B,GAAG,kCAAkC,CAAC;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,0BAA0B,CAAC;IACxC,UAAU,EAAE,eAAe,CAAC;IAC5B,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,QAAQ,CAAC,OAAO,EAAE,+BAA+B,CAAC;gBAEtC,OAAO,EAAE,+BAA+B;CAKrD;AA0FD,wBAAgB,wCAAwC,CACtD,KAAK,EAAE,OAAO,GACb,+BAA+B,GAAG,IAAI,CAmBxC;AAED,wBAAgB,sCAAsC,CACpD,KAAK,EAAE,OAAO,GACb,6BAA6B,GAAG,IAAI,CAGtC;AAED,wBAAgB,mDAAmD,CACjE,KAAK,EAAE,OAAO,GACb,0CAA0C,GAAG,iCAAiC,GAAG,IAAI,CAiEvF"}
|