@sogni-ai/sogni-intelligence-client 4.19.0 → 4.20.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.
Files changed (51) hide show
  1. package/dist/contracts/data/gatingPolicies.d.ts.map +1 -1
  2. package/dist/contracts/data/gatingPolicies.js +7 -4
  3. package/dist/contracts/data/gatingPolicies.js.map +1 -1
  4. package/dist/contracts/data/promptContracts.d.ts.map +1 -1
  5. package/dist/contracts/data/promptContracts.js +51 -28
  6. package/dist/contracts/data/promptContracts.js.map +1 -1
  7. package/dist/media/index.d.ts +2 -0
  8. package/dist/media/index.d.ts.map +1 -1
  9. package/dist/media/index.js +2 -0
  10. package/dist/media/index.js.map +1 -1
  11. package/dist/media/personaCharacterSheet.d.ts +80 -0
  12. package/dist/media/personaCharacterSheet.d.ts.map +1 -0
  13. package/dist/media/personaCharacterSheet.js +177 -0
  14. package/dist/media/personaCharacterSheet.js.map +1 -0
  15. package/dist/media/personaReferences.d.ts +70 -0
  16. package/dist/media/personaReferences.d.ts.map +1 -0
  17. package/dist/media/personaReferences.js +206 -0
  18. package/dist/media/personaReferences.js.map +1 -0
  19. package/dist/public-skill-runtime/index.d.ts.map +1 -1
  20. package/dist/public-skill-runtime/index.js +2 -1
  21. package/dist/public-skill-runtime/index.js.map +1 -1
  22. package/dist/tools/definitions/animate-photo/definition.js +2 -2
  23. package/dist/tools/definitions/animate-photo/definition.js.map +1 -1
  24. package/dist/tools/definitions/generate-speech/definition.js +4 -4
  25. package/dist/tools/definitions/generate-speech/definition.js.map +1 -1
  26. package/dist/tools/definitions/generate-video/definition.js +3 -3
  27. package/dist/tools/definitions/generate-video/definition.js.map +1 -1
  28. package/dist/tools/shared/seedancePolicyErrors.d.ts.map +1 -1
  29. package/dist/tools/shared/seedancePolicyErrors.js +62 -10
  30. package/dist/tools/shared/seedancePolicyErrors.js.map +1 -1
  31. package/dist-esm/contracts/data/gatingPolicies.js +7 -4
  32. package/dist-esm/contracts/data/gatingPolicies.js.map +1 -1
  33. package/dist-esm/contracts/data/promptContracts.js +51 -28
  34. package/dist-esm/contracts/data/promptContracts.js.map +1 -1
  35. package/dist-esm/media/index.js +2 -0
  36. package/dist-esm/media/index.js.map +1 -1
  37. package/dist-esm/media/personaCharacterSheet.js +166 -0
  38. package/dist-esm/media/personaCharacterSheet.js.map +1 -0
  39. package/dist-esm/media/personaReferences.js +187 -0
  40. package/dist-esm/media/personaReferences.js.map +1 -0
  41. package/dist-esm/public-skill-runtime/index.js +2 -1
  42. package/dist-esm/public-skill-runtime/index.js.map +1 -1
  43. package/dist-esm/tools/definitions/animate-photo/definition.js +2 -2
  44. package/dist-esm/tools/definitions/animate-photo/definition.js.map +1 -1
  45. package/dist-esm/tools/definitions/generate-speech/definition.js +4 -4
  46. package/dist-esm/tools/definitions/generate-speech/definition.js.map +1 -1
  47. package/dist-esm/tools/definitions/generate-video/definition.js +3 -3
  48. package/dist-esm/tools/definitions/generate-video/definition.js.map +1 -1
  49. package/dist-esm/tools/shared/seedancePolicyErrors.js +62 -10
  50. package/dist-esm/tools/shared/seedancePolicyErrors.js.map +1 -1
  51. package/package.json +2 -2
@@ -21,7 +21,7 @@ exports.definition = {
21
21
  type: "function",
22
22
  function: {
23
23
  name: "animate_photo",
24
- description: 'Animate a photo into video with motion, audio, and dialogue using LTX 2.5 by default, LTX 2.3 as rollback, or WAN 2.2. Do NOT use this tool for seedance2, seedance2-mini, seedance2-mini-uncensored, seedance2-5, or seedance2-5-uncensored. Seedance media references — including Seedance 2.5 first-and-last-frame requests — 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 ltx25/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.5 and LTX 2.3 generate 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 LTX 2.5 has no compatible ID-LoRA and 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 ltx25 by default (or ltx23 rollback) (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.',
24
+ description: 'Animate a photo into video with motion, audio, and dialogue using LTX 2.5 by default, LTX 2.3 as rollback, or WAN 2.2. Do NOT use this tool for seedance2, seedance2-mini, seedance2-mini-uncensored, seedance2-5, or seedance2-5-uncensored. Seedance media references — including Seedance 2.5 first-and-last-frame requests — 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 ltx25/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.5 and LTX 2.3 generate 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. On animate_photo, persona voice requires ltx23 because LTX 2.5 has no compatible ID-LoRA and WAN 2.2 does not support voice identity; for a persona voice on MiniMax H3 r2v, Seedance or Wan 3, use generate_video. PERSONA PIPELINE: For persona videos on this tool, ensure an image of the persona exists before calling animate_photo. The standard pipeline is: resolve_personas → edit_image → animate_photo. MiniMax H3 r2v, Seedance and Wan 3 reference videos skip this pipeline: generate_video takes the resolved persona reference images directly. 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 ltx25 by default (or ltx23 rollback) (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.',
25
25
  parameters: {
26
26
  type: "object",
27
27
  properties: {
@@ -178,7 +178,7 @@ ${promptLimits_js_1.VIDEO_PROMPT_LENGTH_LIMITS_GUIDANCE}`,
178
178
  },
179
179
  voicePersonaName: {
180
180
  type: "string",
181
- description: 'ONLY when the user explicitly requests a registered/reference persona voice clip. Name of the persona whose voice clip to use as referenceAudioIdentity. Set this when the narrator/speaker is a different persona than the one shown in the video (e.g. "David" narrates a video of Aleyna), or to explicitly select a requested voice when multiple personas with voice clips are resolved. Do NOT set this for ordinary character dialogue, inferred voices, or personas without a voice clip — LTX 2.3 generates voice natively from the text prompt instead. Requires ltx23 because LTX 2.5 has no compatible ID-LoRA.',
181
+ description: 'ONLY when the user explicitly asks for a registered persona\'s own voice. Name of the persona whose voice clip to use as referenceAudioIdentity (LTX 2.3 Audio ID). Set this when the narrator/speaker is a different persona than the one shown in the video (e.g. "David" narrates a video of Aleyna), or to explicitly select a requested voice when multiple personas with voice clips are resolved. Do NOT set this for ordinary character dialogue, inferred voices, or personas without a voice clip — LTX 2.3 generates voice natively from the text prompt instead. On animate_photo it requires ltx23: LTX 2.5 has no compatible ID-LoRA, and the WAN, Wan 3, HappyHorse and MiniMax H3 frame modes take no voice reference. For a persona voice on MiniMax H3 r2v, Seedance or Wan 3, use generate_video.',
182
182
  },
183
183
  loras: {
184
184
  type: "array",
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/animate-photo/definition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/animate-photo/definition.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ exports.definition = {
6
6
  type: 'function',
7
7
  function: {
8
8
  name: 'generate_speech',
9
- description: 'Turn written words into spoken audio. Use when the user wants something read aloud, a narration, a voiceover, a line of dialogue, an audiobook passage, or a voice cloned from a recording they uploaded. This tool speaks text; it does not compose music — use generate_music for songs and instrumentals.',
9
+ description: 'Turn written words into spoken audio. Use when the user wants something read aloud, a narration, a voiceover, a line of dialogue, an audiobook passage, or a voice cloned from a recording they uploaded or from a saved persona\'s voice recording. This tool speaks text; it does not compose music — use generate_music for songs and instrumentals.',
10
10
  parameters: {
11
11
  type: 'object',
12
12
  properties: {
@@ -26,7 +26,7 @@ Limit 4096 characters, roughly five minutes of speech. A longer script is refuse
26
26
  model: {
27
27
  type: 'string',
28
28
  enum: ['voice', 'clone', 'design'],
29
- description: 'Which speech model to use, chosen by what the user gave you. "voice" (default): one of nine studio voices, optionally restyled by voiceDescription — the right choice for narration, voiceover and dialogue when no particular person is being imitated. "clone": reproduces a specific voice from a recording the user uploaded; requires voiceSourceIndex. "design": invents a speaker who does not exist from a written description; requires voiceDescription and takes no recording. Pick "clone" whenever the user uploads a voice clip and asks for that person, and "design" when they describe a speaker instead of choosing one.',
29
+ description: 'Which speech model to use, chosen by what the user gave you. "voice" (default): one of nine studio voices, optionally restyled by voiceDescription — the right choice for narration, voiceover and dialogue when no particular person is being imitated. "clone": reproduces a specific voice from a recording the user uploaded or a resolved persona\'s voice recording; requires voiceSourceIndex. "design": invents a speaker who does not exist from a written description; requires voiceDescription and takes no recording. Pick "clone" whenever the user uploads a voice clip and asks for that person, or asks for a saved persona\'s own voice, and "design" when they describe a speaker instead of choosing one.',
30
30
  },
31
31
  voice: {
32
32
  type: 'string',
@@ -50,12 +50,12 @@ Limit 4096 characters, roughly five minutes of speech. A longer script is refuse
50
50
  },
51
51
  voiceSourceIndex: {
52
52
  type: 'number',
53
- description: 'Which audio holds the voice to clone, using the same numbering every other tool uses for audio: negative indices are uploads (-1 = first/primary upload, -2 = second upload, and so on) and 0-based non-negative indices are audio generated earlier in this conversation. A clip the user just uploaded is -1. Required when model="clone" and ignored otherwise. The clip should be three to thirty seconds of one person speaking cleanly, with no music, no second speaker and no heavy room echo; anything past thirty seconds is trimmed.',
53
+ description: 'Which audio holds the voice to clone, using the same numbering every other tool uses for audio: negative indices are uploads (-1 = first/primary upload, -2 = second upload, and so on) and 0-based non-negative indices are audio generated earlier in this conversation. A clip the user just uploaded is -1. A resolved persona\'s full voice recording uses the index resolve_personas reports. Required when model="clone" and ignored otherwise. The clip should be three to thirty seconds of one person speaking cleanly, with no music, no second speaker and no heavy room echo; anything past thirty seconds is trimmed.',
54
54
  },
55
55
  voice_source_url: { type: 'string', description: 'REST alternative to voiceSourceIndex: retrievable original recording for clone mode.' },
56
56
  voiceTranscript: {
57
57
  type: 'string',
58
- description: 'The exact words spoken in the uploaded clip, when model="clone". Supplying it lets the model condition on the recording itself rather than on a speaker fingerprint alone, which is markedly closer to the source — set it whenever the user tells you what the clip says or the transcript is otherwise known. Omitting it still produces a recognisable clone, just a looser one. Limit 1024 characters.',
58
+ description: 'The exact words spoken in the uploaded clip, when model="clone". Supplying it lets the model condition on the recording itself rather than on a speaker fingerprint alone, which is markedly closer to the source — set it whenever the user tells you what the clip says or the transcript is otherwise known. Omitting it still produces a recognisable clone, just a looser one. Leave it out for a persona voice recording: the persona\'s saved transcript is filled in automatically. Limit 1024 characters.',
59
59
  maxLength: 1024,
60
60
  },
61
61
  language: {
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/generate-speech/definition.ts"],"names":[],"mappings":";;;AAUA,wFAAqF;AAExE,QAAA,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,8SAA8S;QAChT,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,iDAAuB;;;;;;yKAMgJ;oBAC/J,SAAS,EAAE,IAAI;iBAChB;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;oBAClC,WAAW,EACT,4mBAA4mB;iBAC/mB;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,QAAQ;wBACR,QAAQ;wBACR,UAAU;wBACV,MAAM;wBACN,OAAO;wBACP,UAAU;wBACV,OAAO;wBACP,MAAM;wBACN,OAAO;qBACR;oBACD,WAAW,EACT,8VAA8V;iBACjW;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,gqBAAgqB;oBAClqB,SAAS,EAAE,GAAG;iBACf;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,ihBAAihB;iBACphB;gBACD,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sFAAsF,EAAE;gBACzI,eAAe,EAAE;oBACf,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4YAA4Y;oBAC9Y,SAAS,EAAE,IAAI;iBAChB;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,MAAM;wBACN,SAAS;wBACT,SAAS;wBACT,UAAU;wBACV,QAAQ;wBACR,QAAQ;wBACR,QAAQ;wBACR,SAAS;wBACT,YAAY;wBACZ,SAAS;wBACT,SAAS;qBACV;oBACD,WAAW,EACT,mVAAmV;iBACtV;gBACD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,uDAAuD,EAAE;gBAC9H,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,iCAAiC,EAAE;gBAC9G,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,0CAA0C,EAAE;gBACnH,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yMAAyM;oBAC3M,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/generate-speech/definition.ts"],"names":[],"mappings":";;;AAUA,wFAAqF;AAExE,QAAA,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,yVAAyV;QAC3V,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,iDAAuB;;;;;;yKAMgJ;oBAC/J,SAAS,EAAE,IAAI;iBAChB;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;oBAClC,WAAW,EACT,+rBAA+rB;iBAClsB;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,QAAQ;wBACR,QAAQ;wBACR,UAAU;wBACV,MAAM;wBACN,OAAO;wBACP,UAAU;wBACV,OAAO;wBACP,MAAM;wBACN,OAAO;qBACR;oBACD,WAAW,EACT,8VAA8V;iBACjW;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,gqBAAgqB;oBAClqB,SAAS,EAAE,GAAG;iBACf;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qmBAAqmB;iBACxmB;gBACD,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sFAAsF,EAAE;gBACzI,eAAe,EAAE;oBACf,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,ofAAof;oBACtf,SAAS,EAAE,IAAI;iBAChB;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,MAAM;wBACN,SAAS;wBACT,SAAS;wBACT,UAAU;wBACV,QAAQ;wBACR,QAAQ;wBACR,QAAQ;wBACR,SAAS;wBACT,YAAY;wBACZ,SAAS;wBACT,SAAS;qBACV;oBACD,WAAW,EACT,mVAAmV;iBACtV;gBACD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,uDAAuD,EAAE;gBAC9H,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,iCAAiC,EAAE;gBAC9G,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,0CAA0C,EAAE;gBACnH,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yMAAyM;oBAC3M,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
@@ -22,7 +22,7 @@ exports.definition = {
22
22
  type: "function",
23
23
  function: {
24
24
  name: "generate_video",
25
- description: 'Generate a video from text or Seedance multimodal references. LTX 2.5 is the default and generates audio natively; LTX 2.3 remains available as rollback and also 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 because LTX 2.5 has no compatible ID-LoRA and 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, seedance2-mini-uncensored, seedance2-5, or seedance2-5-uncensored, default to exactly one video (4-15s on 2.0/Mini/Mini Uncensored, 4-30s on seedance2-5 and seedance2-5-uncensored) 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, prefer seedance2-5, which renders up to 30s in a single call; beyond 30s (or on 2.0/Mini) preserve the requested total duration in the prompt/context and let chat orchestration split it into supported segment renders and stitch them instead of clamping it to a short excerpt. Uploaded/generated storyboard, shot-sheet, or trailer-concept images used as Seedance references should become one Seedance 2.5 generate_video call at targetResolution=1080 by default; preserve an explicitly requested model or resolution, and use Seedance 2.0 for 4K because Seedance 2.5 supports up to 1080p. 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 one reference still per approved scene with GPT Image 2.5 Sunburst, render each scene as a Seedance 2.5 video segment at 1080p, then stitch the segments. Preserve an explicit alternate model or resolution. 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. WAN 3 uses the exact selector wan3.0-video: use this tool for text-to-video or loose Image 1/Video 1/Audio 1 references; use animate_photo for native first/last frames and sound_to_video when audio drives timing. A Wan 3 video reference conditions a new generation; it does not invoke a provider-backed edit or extend mode.',
25
+ description: 'Generate a video from text or Seedance multimodal references. LTX 2.5 is the default and generates audio natively; LTX 2.3 remains available as rollback and also 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\'s own voice, call resolve_personas first, then set voicePersonaName to select which persona\'s voice to use. Do not set voicePersonaName for ordinary character dialogue or inferred voices; describe those voices in the prompt for native 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 works on ltx23 (Audio ID) and as a voice reference on MiniMax H3 r2v, Seedance and Wan 3; LTX 2.5 has no compatible ID-LoRA and 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. MY PERSONAS: On MiniMax H3 r2v, Seedance or Wan 3, pass a resolved persona\'s reference images straight in through referenceImageIndices with no edit_image step; every clip carries its own references, and the prompt binds each persona to its images with the model\'s tokens (@Image1, <Picture 1>, Image 1). On LTX and WAN 2.2, persona videos use resolve_personas → edit_image → animate_photo. SEEDANCE DEFAULT: For seedance2, seedance2-mini, seedance2-mini-uncensored, seedance2-5, or seedance2-5-uncensored, default to exactly one video (4-15s on 2.0/Mini/Mini Uncensored, 4-30s on seedance2-5 and seedance2-5-uncensored) 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, prefer seedance2-5, which renders up to 30s in a single call; beyond 30s (or on 2.0/Mini) preserve the requested total duration in the prompt/context and let chat orchestration split it into supported segment renders and stitch them instead of clamping it to a short excerpt. Uploaded/generated storyboard, shot-sheet, or trailer-concept images used as Seedance references should become one Seedance 2.5 generate_video call at targetResolution=1080 by default; preserve an explicitly requested model or resolution, and use Seedance 2.0 for 4K because Seedance 2.5 supports up to 1080p. 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 one reference still per approved scene with GPT Image 2.5 Sunburst, render each scene as a Seedance 2.5 video segment at 1080p, then stitch the segments. Preserve an explicit alternate model or resolution. 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. WAN 3 uses the exact selector wan3.0-video: use this tool for text-to-video or loose Image 1/Video 1/Audio 1 references; use animate_photo for native first/last frames and sound_to_video when audio drives timing. A Wan 3 video reference conditions a new generation; it does not invoke a provider-backed edit or extend mode.',
26
26
  parameters: {
27
27
  type: "object",
28
28
  properties: {
@@ -137,7 +137,7 @@ ${promptLimits_js_1.VIDEO_PROMPT_LENGTH_LIMITS_GUIDANCE}`,
137
137
  "wan3.0-spicy-video",
138
138
  ],
139
139
  description: '"ltx25" (default): LTX 2.5 with native audio; Fast, HQ, and Pro currently use the release-validated official Distilled INT8 workflow. The Dev checkpoints are not publicly routed until upstream publishes and Sogni validates an official ComfyUI Dev recipe. ' +
140
- 'Video model. "ltx23": LTX 2.3 rollback with native audio. "wan22": quick simple motion without audio. "minimax-h3-t2v": standard 20-step MiniMax H3 text-to-video; "minimax-h3-t2v-turbo": the existing 4-step LightX2V Turbo text-to-video; "minimax-h3-fasth3-t2v-turbo": the separate FastVideo VSA four-step FastH3 engine, about 2x faster and fixed to Euler/simple; "minimax-h3-fasth3-t2v-turbo-2stage": the two-stage FastH3 engine: FastH3 renders the canvas, then the worker enlarges it 2x and refines it, so the clip is delivered at twice the canvas width and height with the same length and audio. targetResolution picks the delivered class: 1080 renders a 544px short-edge canvas (960x544 is delivered at 1920x1088) for 10 Spark per second, 1440 or omitted renders the 768p canvas for 2K (1344x768 is delivered at 2688x1536) for 16 Spark per second, and 720 renders a 384px canvas (672x384 is delivered at 1344x768) for the regular FastH3 price of 4 Spark per second. The estimate prices every request. It takes the same inputs, durations and LoRAs as "minimax-h3-fasth3-t2v-turbo". Choose it when the user asks for 1080p, 1440p or 2K MiniMax H3 output, for two-stage output, or for the sharpest/best H3 quality; for ordinary 768p FastH3 output keep the regular FastH3 selector at targetResolution 768. All use native audio, fixed 24fps, 5.17-15.08s, and a 768p-class 32px-grid canvas; use animate_photo for H3 image-conditioned modes. Base and Turbo T2V/I2V/FLF2V prompts use the exact ordered fields integrated_multimodal_description, overall_soundscape, and non_diegetic_music; I2V/FLF2V prepend the official alignment line. "minimax-h3-r2v": standard 20-step MiniMax H3 reference-to-video; "minimax-h3-r2v-turbo": the dedicated LightX2V 4-step Ref2VA Turbo workflow using Euler/simple and a 960x544 default. "minimax-h3-r2v-2stage" (Standard, 20 steps, res_multistep/simple) and "minimax-h3-r2v-balanced-2stage" (Balanced, 8 steps, Euler/simple) are the two-stage reference-to-video forms: the tier renders the canvas, then the worker enlarges it 2x and refines it, so the clip is delivered at twice the canvas width and height with the same length, audio and references. targetResolution names the delivered class exactly as for the FastH3 two-stage selectors: 1080 renders a 544px short-edge canvas (960x544 is delivered at 1920x1088), 1440 or omitted renders the 768p canvas for 2K (1344x768 is delivered at 2688x1536), and 720 renders a 384px canvas (672x384 is delivered at 1344x768). Each bills its tier\'s own per-second rate plus the two-stage surcharge of the delivered class (none at 720p); the estimate prices every request. Choose one when the user asks for 1080p, 1440p or 2K MiniMax H3 reference-to-video output; keep the one-stage "minimax-h3-r2v" or Balanced selector for ordinary 768p output. "minimax-h3-fasth3-r2v-turbo" is FastH3 Reference, the FastH3 tier\'s reference-to-video engine (FastVideo\'s FastH3 Omni on its own distilled checkpoint), about twice as fast as Balanced Reference, with the same references, durations, catalog LoRAs and Personal LoRAs as the other R2V selectors; "minimax-h3-fasth3-r2v-turbo-2stage" is its two-stage form and reads targetResolution like the other two-stage selectors (1080, 1440 or omitted for 2K, 720), billing its own per-second rate plus the two-stage surcharge of the delivered class. Every R2V selector accepts up to 9 images, 3 videos, and 3 audios (12 files total); at least one visual reference (image or video) is required and audio alone is invalid. Select references with referenceImageIndices/referenceVideoIndices/referenceAudioIndices and address them with the official <Subject N>/<Picture N>/<Video N>/<Audio N> semantics. Seedance quality is selected only by model: use "seedance2-mini" for Seedance 2.0 Mini or faster/lower-cost 720p iteration, use "seedance2-5" at targetResolution=1080 for generated/uploaded storyboard images and current high-quality Seedance generation unless the user explicitly requests another model or resolution, and use "seedance2" for Seedance 2.0 or 4K requests because Seedance 2.5 supports up to 1080p. Do not use Default Media Quality Fast/HQ/Pro to represent Seedance quality. "seedance2-5": Seedance 2.5, the newest Seedance generation — 480p, 720p, and 1080p (4K is unsupported), 4-30s per clip at a fixed 24 fps, native audio, first-and-last-frame conditioning, and a much larger reference budget than the 2.0 family: up to 30 images, 10 videos, and 10 audios, with up to 50 reference media files total, subject to those per-modality caps. Choose "seedance2-5" when the user asks for Seedance 2.5, wants a single continuous Seedance clip longer than 15s (2.5 renders up to 30s in one call instead of being split and stitched), or wants a first-and-last-frame Seedance transition. Keep "seedance2" for 4K requests; Seedance 2.5 supports up to 1080p. ' +
140
+ 'Prefer FastH3 Omni R2V (minimax-h3-fasth3-r2v-turbo) for MiniMax reference-to-video. For two-stage, 1080p or 2K output, prefer minimax-h3-fasth3-r2v-turbo-2stage. Use Standard, Balanced, or LightX2V Turbo R2V only when explicitly requested. Video model. "ltx23": LTX 2.3 rollback with native audio. "wan22": quick simple motion without audio. "minimax-h3-t2v": standard 20-step MiniMax H3 text-to-video; "minimax-h3-t2v-turbo": the existing 4-step LightX2V Turbo text-to-video; "minimax-h3-fasth3-t2v-turbo": the separate FastVideo VSA four-step FastH3 engine, about 2x faster and fixed to Euler/simple; "minimax-h3-fasth3-t2v-turbo-2stage": the two-stage FastH3 engine: FastH3 renders the canvas, then the worker enlarges it 2x and refines it, so the clip is delivered at twice the canvas width and height with the same length and audio. targetResolution picks the delivered class: 1080 renders a 544px short-edge canvas (960x544 is delivered at 1920x1088) for 10 Spark per second, 1440 or omitted renders the 768p canvas for 2K (1344x768 is delivered at 2688x1536) for 16 Spark per second, and 720 renders a 384px canvas (672x384 is delivered at 1344x768) for the regular FastH3 price of 4 Spark per second. The estimate prices every request. It takes the same inputs, durations and LoRAs as "minimax-h3-fasth3-t2v-turbo". Choose it when the user asks for 1080p, 1440p or 2K MiniMax H3 output, for two-stage output, or for the sharpest/best H3 quality; for ordinary 768p FastH3 output keep the regular FastH3 selector at targetResolution 768. All use native audio, fixed 24fps, 5.17-15.08s, and a 768p-class 32px-grid canvas; use animate_photo for H3 image-conditioned modes. Base and Turbo T2V/I2V/FLF2V prompts use the exact ordered fields integrated_multimodal_description, overall_soundscape, and non_diegetic_music; I2V/FLF2V prepend the official alignment line. "minimax-h3-r2v": standard 20-step MiniMax H3 reference-to-video; "minimax-h3-r2v-turbo": the dedicated LightX2V 4-step Ref2VA Turbo workflow using Euler/simple and a 960x544 default. "minimax-h3-r2v-2stage" (Standard, 20 steps, res_multistep/simple) and "minimax-h3-r2v-balanced-2stage" (Balanced, 8 steps, Euler/simple) are the two-stage reference-to-video forms: the tier renders the canvas, then the worker enlarges it 2x and refines it, so the clip is delivered at twice the canvas width and height with the same length, audio and references. targetResolution names the delivered class exactly as for the FastH3 two-stage selectors: 1080 renders a 544px short-edge canvas (960x544 is delivered at 1920x1088), 1440 or omitted renders the 768p canvas for 2K (1344x768 is delivered at 2688x1536), and 720 renders a 384px canvas (672x384 is delivered at 1344x768). Each bills its tier\'s own per-second rate plus the two-stage surcharge of the delivered class (none at 720p); the estimate prices every request. Choose these only for an explicitly requested Standard or Balanced tier; otherwise prefer FastH3 Omni R2V and its two-stage selector for 1080p or 2K. "minimax-h3-fasth3-r2v-turbo" is FastH3 Reference, the FastH3 tier\'s reference-to-video engine (FastVideo\'s FastH3 Omni on its own distilled checkpoint), about twice as fast as Balanced Reference, with the same references, durations, catalog LoRAs and Personal LoRAs as the other R2V selectors; "minimax-h3-fasth3-r2v-turbo-2stage" is its two-stage form and reads targetResolution like the other two-stage selectors (1080, 1440 or omitted for 2K, 720), billing its own per-second rate plus the two-stage surcharge of the delivered class. Every R2V selector accepts up to 9 images, 3 videos, and 3 audios (12 files total); at least one visual reference (image or video) is required and audio alone is invalid. Select references with referenceImageIndices/referenceVideoIndices/referenceAudioIndices and address them with the official <Subject N>/<Picture N>/<Video N>/<Audio N> semantics. Seedance quality is selected only by model: use "seedance2-mini" for Seedance 2.0 Mini or faster/lower-cost 720p iteration, use "seedance2-5" at targetResolution=1080 for generated/uploaded storyboard images and current high-quality Seedance generation unless the user explicitly requests another model or resolution, and use "seedance2" for Seedance 2.0 or 4K requests because Seedance 2.5 supports up to 1080p. Do not use Default Media Quality Fast/HQ/Pro to represent Seedance quality. "seedance2-5": Seedance 2.5, the newest Seedance generation — 480p, 720p, and 1080p (4K is unsupported), 4-30s per clip at a fixed 24 fps, native audio, first-and-last-frame conditioning, and a much larger reference budget than the 2.0 family: up to 30 images, 10 videos, and 10 audios, with up to 50 reference media files total, subject to those per-modality caps. Choose "seedance2-5" when the user asks for Seedance 2.5, wants a single continuous Seedance clip longer than 15s (2.5 renders up to 30s in one call instead of being split and stitched), or wants a first-and-last-frame Seedance transition. Keep "seedance2" for 4K requests; Seedance 2.5 supports up to 1080p. ' +
141
141
  toolPromptMarkers_js_1.SEEDANCE_25_UNCENSORED_MODEL_DESCRIPTION +
142
142
  ' ' +
143
143
  toolPromptMarkers_js_1.SEEDANCE_MINI_UNCENSORED_MODEL_DESCRIPTION +
@@ -210,7 +210,7 @@ ${promptLimits_js_1.VIDEO_PROMPT_LENGTH_LIMITS_GUIDANCE}`,
210
210
  },
211
211
  voicePersonaName: {
212
212
  type: "string",
213
- description: 'ONLY when the user explicitly requests a registered/reference persona voice clip. Name of the persona whose voice clip to use as referenceAudioIdentity. Set this when the narrator/speaker is a different persona than the one described in the video (e.g. "David" narrates a scene featuring Aleyna), or to explicitly select a requested voice when multiple personas with voice clips are resolved. Do NOT set this for ordinary character dialogue, inferred voices, or personas without a voice clip — LTX 2.3 generates voice natively from the text prompt instead. Requires ltx23 because LTX 2.5 has no compatible ID-LoRA.',
213
+ description: 'ONLY when the user explicitly asks for a registered persona\'s own voice. Name of the resolved persona whose voice to use. Set this when the narrator/speaker is a different persona than the one described in the video (e.g. "David" narrates a scene featuring Aleyna), or to explicitly select a requested voice when multiple personas with voice clips are resolved. Do NOT set this for ordinary character dialogue, inferred voices, or personas without a voice clip; describe those voices in the prompt instead. On ltx23 it is Audio ID (LTX 2.5 has no compatible ID-LoRA). On MiniMax H3 r2v, Seedance and Wan 3, that persona\'s short voice sample is attached as an audio reference for its timbre, next to the persona\'s reference images, and counts against the model\'s audio reference limit; on MiniMax H3 also set sourceAudioPolicy="reference_only". The sample is the voice, not the soundtrack: write the spoken words in the prompt. Other video models have no voice identity.',
214
214
  },
215
215
  loras: {
216
216
  type: "array",
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/generate-video/definition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/generate-video/definition.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"seedancePolicyErrors.d.ts","sourceRoot":"","sources":["../../../src/tools/shared/seedancePolicyErrors.ts"],"names":[],"mappings":"AAMA,OAAO,EAIL,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,iCAAiC,EACvC,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,wCAAwC,0DACI,CAAC;AAO1D,eAAO,MAAM,oCAAoC,oGACkD,CAAC;AAEpG,eAAO,MAAM,wCAAwC,6JACuG,CAAC;AAE7J,eAAO,MAAM,yCAAyC,6OACiL,CAAC;AACxO,eAAO,MAAM,+BAA+B,sMACyJ,CAAC;AAEtM,eAAO,MAAM,yCAAyC,+JACwG,CAAC;AAE/J,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,qCAAqC,GAAG,yBAAyB,CAAC;IAOzE,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,0BAA0B,CAAC;IACxC,UAAU,EAAE,eAAe,CAAC;IAC5B,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,eAAe,EAAE,OAAO,wCAAwC,GAAG,MAAM,CAAC;CAC3E;AAED,MAAM,WAAW,wCAAwC;IACvD,KAAK,EAAE,4BAA4B,GAAG,mCAAmC,CAAC;IAC1E,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;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,OAAO,EAAE,6BAA6B,CAAC;gBAEpC,OAAO,EAAE,6BAA6B;CAKnD;AA2FD,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAOjF;AAoFD,wBAAgB,sCAAsC,CACpD,KAAK,EAAE,OAAO,GACb,6BAA6B,GAAG,IAAI,CAmCtC;AAED,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,OAAO,GACb,2BAA2B,GAAG,IAAI,CAGpC;AAED,wBAAgB,iDAAiD,CAC/D,KAAK,EAAE,OAAO,GAEZ,wCAAwC,GACxC,iCAAiC,GACjC,2BAA2B,GAC3B,2BAA2B,GAC3B,IAAI,CAmGP"}
1
+ {"version":3,"file":"seedancePolicyErrors.d.ts","sourceRoot":"","sources":["../../../src/tools/shared/seedancePolicyErrors.ts"],"names":[],"mappings":"AAMA,OAAO,EAIL,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,iCAAiC,EACvC,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,wCAAwC,0DACI,CAAC;AAO1D,eAAO,MAAM,oCAAoC,oGACkD,CAAC;AAEpG,eAAO,MAAM,wCAAwC,6JACuG,CAAC;AAE7J,eAAO,MAAM,yCAAyC,6OACiL,CAAC;AACxO,eAAO,MAAM,+BAA+B,sMACyJ,CAAC;AAEtM,eAAO,MAAM,yCAAyC,+JACwG,CAAC;AAE/J,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,qCAAqC,GAAG,yBAAyB,CAAC;IAOzE,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,0BAA0B,CAAC;IACxC,UAAU,EAAE,eAAe,CAAC;IAC5B,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,eAAe,EAAE,OAAO,wCAAwC,GAAG,MAAM,CAAC;CAC3E;AAED,MAAM,WAAW,wCAAwC;IACvD,KAAK,EAAE,4BAA4B,GAAG,mCAAmC,CAAC;IAC1E,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;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,OAAO,EAAE,6BAA6B,CAAC;gBAEpC,OAAO,EAAE,6BAA6B;CAKnD;AA2FD,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAOjF;AAsID,wBAAgB,sCAAsC,CACpD,KAAK,EAAE,OAAO,GACb,6BAA6B,GAAG,IAAI,CAmCtC;AAED,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,OAAO,GACb,2BAA2B,GAAG,IAAI,CAGpC;AAED,wBAAgB,iDAAiD,CAC/D,KAAK,EAAE,OAAO,GAEZ,wCAAwC,GACxC,iCAAiC,GACjC,2BAA2B,GAC3B,2BAA2B,GAC3B,IAAI,CAmGP"}
@@ -112,20 +112,72 @@ function seedanceAudioDurationLimitFromText(text) {
112
112
  const parsed = Number(match[1]);
113
113
  return Number.isFinite(parsed) && parsed > 0 ? parsed : null;
114
114
  }
115
+ function jsonObjectsIn(text) {
116
+ const objects = [];
117
+ for (let start = text.indexOf('{'); start >= 0; start = text.indexOf('{', start + 1)) {
118
+ let depth = 0;
119
+ let inString = false;
120
+ for (let index = start; index < text.length; index++) {
121
+ const char = text[index];
122
+ if (inString) {
123
+ if (char === '\\')
124
+ index++;
125
+ else if (char === '"')
126
+ inString = false;
127
+ }
128
+ else if (char === '"')
129
+ inString = true;
130
+ else if (char === '{')
131
+ depth++;
132
+ else if (char === '}' && --depth === 0) {
133
+ try {
134
+ objects.push(JSON.parse(text.slice(start, index + 1)));
135
+ start = index;
136
+ }
137
+ catch {
138
+ }
139
+ break;
140
+ }
141
+ }
142
+ }
143
+ return objects;
144
+ }
145
+ function invalidParameterMessageIn(value) {
146
+ if (!value || typeof value !== 'object')
147
+ return null;
148
+ const { code, message } = value;
149
+ if (typeof code === 'string' && /^InvalidParameter(?:\.|$)/.test(code) && typeof message === 'string') {
150
+ return message;
151
+ }
152
+ for (const child of Object.values(value)) {
153
+ const found = invalidParameterMessageIn(child);
154
+ if (found !== null)
155
+ return found;
156
+ }
157
+ return null;
158
+ }
159
+ const SEEDANCE_VENDOR_REASON_MAX_LENGTH = 300;
115
160
  function seedanceInvalidParameterMessageFromText(text) {
116
161
  if (!text)
117
162
  return null;
118
- const match = text.match(/"(?:message|Message)"\s*:\s*"((?:[^"\\]|\\.)*)"/);
119
- if (!match?.[1])
120
- return null;
121
- let parsed = match[1];
122
- try {
123
- parsed = JSON.parse(`"${parsed}"`);
163
+ for (const object of jsonObjectsIn(text)) {
164
+ const raw = invalidParameterMessageIn(object);
165
+ if (raw === null)
166
+ continue;
167
+ const reason = raw
168
+ .replace(/\s*Request id:\s*\S+/gi, '')
169
+ .replace(/https?:\/\/\S+/gi, '')
170
+ .replace(/\s+/g, ' ')
171
+ .trim();
172
+ if (!reason)
173
+ return null;
174
+ if (reason.length <= SEEDANCE_VENDOR_REASON_MAX_LENGTH)
175
+ return reason;
176
+ const cut = reason.slice(0, SEEDANCE_VENDOR_REASON_MAX_LENGTH);
177
+ const lastSpace = cut.lastIndexOf(' ');
178
+ return `${lastSpace > 0 ? cut.slice(0, lastSpace) : cut}…`;
124
179
  }
125
- catch {
126
- }
127
- parsed = parsed.replace(/\s*Request id:\s*[A-Za-z0-9._-]+/i, '').trim();
128
- return parsed.length > 0 ? parsed : null;
180
+ return null;
129
181
  }
130
182
  const SEEDANCE_FRAME_REFERENCE_CONFLICT_PATTERN = /\bfirst\/last frame content cannot be mixed with reference media content\b/i;
131
183
  const SEEDANCE_SOCKET_MIXED_MODE_PATTERN = /\bSeedance rejects requests that combine first\/last-frame images with reference media\b/i;
@@ -1 +1 @@
1
- {"version":3,"file":"seedancePolicyErrors.js","sourceRoot":"","sources":["../../../src/tools/shared/seedancePolicyErrors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seedancePolicyErrors.js","sourceRoot":"","sources":["../../../src/tools/shared/seedancePolicyErrors.ts"],"names":[],"mappings":";;;AAmKA,kFAOC;AAsID,wFAqCC;AAED,oFAKC;AAED,8GA0GC;AAlcD,mDAO8B;AAEjB,QAAA,wCAAwC,GACnD,uDAAuD,CAAC;AAO7C,QAAA,oCAAoC,GAC/C,iGAAiG,CAAC;AAEvF,QAAA,wCAAwC,GACnD,0JAA0J,CAAC;AAEhJ,QAAA,yCAAyC,GACpD,qOAAqO,CAAC;AAC3N,QAAA,+BAA+B,GAC1C,mMAAmM,CAAC;AAEzL,QAAA,yCAAyC,GACpD,4JAA4J,CAAC;AA6B/J,MAAa,2BAA4B,SAAQ,KAAK;IAGpD,YAAY,OAAsC;QAChD,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AARD,kEAQC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,OAAO,IAAI,OAAO,EAAU;IACpE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAI,KAA6B,CAAC,KAAK,CAAC;QACnD,OAAO;YACL,KAAK,CAAC,IAAI;YACV,KAAK,CAAC,OAAO;YACb,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;SAC3C,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC/B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEhB,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;SACjC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SACzD,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,OAAO,IAAI,OAAO,EAAU;IACrE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,KAAK,IAAI,CAAC;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC;IAC9D,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAI,KAA6B,CAAC,KAAK,CAAC;QACnD,OAAO,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACxD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEhB,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAChE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAChD,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,CACrC,CAAC;AACJ,CAAC;AAED,SAAS,sCAAsC,CAAC,IAAY;IAC1D,OAAO,CACL,6CAA6C,CAAC,IAAI,CAAC,IAAI,CAAC;QACxD,yCAAyC,CAAC,IAAI,CAAC,IAAI,CAAC;QACpD,sDAAsD,CAAC,IAAI,CAAC,IAAI,CAAC,CAClE,CAAC;AACJ,CAAC;AAED,SAAS,kCAAkC,CAAC,IAAY;IACtD,OAAO,CACL,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC;QACtC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,sDAAsD,CAAC,IAAI,CAAC,IAAI,CAAC;QACjE,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CACvB,CAAC;AACJ,CAAC;AAUD,MAAM,wCAAwC,GAAsB;IAClE,oIAAoI;IACpI,iGAAiG;CAClG,CAAC;AAQF,SAAgB,mCAAmC,CAAC,KAAc;IAChE,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrC,KAAK,MAAM,OAAO,IAAI,wCAAwC,EAAE,CAAC;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAY;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5D,OAAO,QAAQ,IAAI,IAAI,CAAC;AAC1B,CAAC;AAED,SAAS,kCAAkC,CAAC,IAAY;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CACtB,qHAAqH,CACtH,CAAC;IACF,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/D,CAAC;AAGD,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,OAAO,GAAc,EAAE,CAAC;IAC9B,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QACrF,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,IAAI,KAAK,IAAI;oBAAE,KAAK,EAAE,CAAC;qBACtB,IAAI,IAAI,KAAK,GAAG;oBAAE,QAAQ,GAAG,KAAK,CAAC;YAC1C,CAAC;iBAAM,IAAI,IAAI,KAAK,GAAG;gBAAE,QAAQ,GAAG,IAAI,CAAC;iBACpC,IAAI,IAAI,KAAK,GAAG;gBAAE,KAAK,EAAE,CAAC;iBAC1B,IAAI,IAAI,KAAK,GAAG,IAAI,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvD,KAAK,GAAG,KAAK,CAAC;gBAChB,CAAC;gBAAC,MAAM,CAAC;gBAET,CAAC;gBACD,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAGD,SAAS,yBAAyB,CAAC,KAAc;IAC/C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAA8C,CAAC;IACzE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACtG,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAGD,MAAM,iCAAiC,GAAG,GAAG,CAAC;AAY9C,SAAS,uCAAuC,CAAC,IAAY;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,GAAG,KAAK,IAAI;YAAE,SAAS;QAC3B,MAAM,MAAM,GAAG,GAAG;aACf,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC;aACrC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;aAC/B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,IAAI,EAAE,CAAC;QACV,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,IAAI,MAAM,CAAC,MAAM,IAAI,iCAAiC;YAAE,OAAO,MAAM,CAAC;QACtE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,iCAAiC,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAC7D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AASD,MAAM,yCAAyC,GAC7C,6EAA6E,CAAC;AAShF,MAAM,kCAAkC,GACtC,2FAA2F,CAAC;AAM9F,SAAS,oCAAoC,CAC3C,aAAqB;IAErB,IAAI,kCAAkC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAG3D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;IACvD,CAAC;IACD,IAAI,yCAAyC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAClE,OAAO;YACL,aAAa;YACb,WAAW,EACT,yOAAyO;SAC5O,CAAC;IACJ,CAAC;IACD,OAAO;QACL,aAAa;QACb,WAAW,EAAE,kCAAkC,aAAa,EAAE;KAC/D,CAAC;AACJ,CAAC;AAED,SAAgB,sCAAsC,CACpD,KAAc;IAEd,IAAI,KAAK,YAAY,2BAA2B;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IAEvE,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,gDAAwC,CAAC,CAAC;IACrF,MAAM,0BAA0B,GAAG,sCAAsC,CAAC,IAAI,CAAC,CAAC;IAChF,MAAM,sBAAsB,GAAG,kCAAkC,CAAC,IAAI,CAAC,CAAC;IACxE,IAAI,CAAC,oBAAoB,IAAI,CAAC,0BAA0B,IAAI,CAAC,sBAAsB;QAAE,OAAO,IAAI,CAAC;IAEjG,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChF,IAAI,CAAC,eAAe,IAAI,CAAC,qBAAqB;QAAE,OAAO,IAAI,CAAC;IAI5D,MAAM,aAAa,GAAG,mCAAmC,CAAC,KAAK,CAAC,CAAC;IACjE,IAAI,CAAC,oBAAoB,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACzD,OAAO;YACL,KAAK,EAAE,yBAAyB;YAChC,OAAO,EAAE,aAAa,IAAI,gDAAwC;YAClE,WAAW,EAAE,0BAA0B;YACvC,UAAU,EAAE,eAAe;YAC3B,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,eAAe,EAAE,uBAAuB,CAAC,IAAI,CAAC,IAAI,yBAAyB;SAC5E,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,qCAAqC;QAC5C,OAAO,EAAE,aAAa,IAAI,4CAAoC;QAC9D,WAAW,EAAE,0BAA0B;QACvC,UAAU,EAAE,eAAe;QAC3B,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,eAAe,EAAE,gDAAwC;KAC1D,CAAC;AACJ,CAAC;AAED,SAAgB,oCAAoC,CAClD,KAAc;IAEd,MAAM,OAAO,GAAG,sCAAsC,CAAC,KAAK,CAAC,CAAC;IAC9D,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC;AAED,SAAgB,iDAAiD,CAC/D,KAAc;IAUd,MAAM,cAAc,GAAG,IAAA,+CAAoC,EAAC,KAAK,CAAC,CAAC;IACnE,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC;IAI1C,MAAM,sBAAsB,GAAG,IAAA,+CAAoC,EAAC,KAAK,CAAC,CAAC;IAC3E,IAAI,sBAAsB;QAAE,OAAO,sBAAsB,CAAC;IAE1D,MAAM,cAAc,GAAG,IAAA,6CAAkC,EAAC,KAAK,CAAC,CAAC;IACjE,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC;IAE1C,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrC,IACE,CAAC,mFAAmF,CAAC,IAAI,CAAC,IAAI,CAAC;WAC5F,CAAC,gDAAgD,CAAC,IAAI,CAAC,IAAI,CAAC;WAC5D,CAAC,qCAAqC,CAAC,IAAI,CAAC,IAAI,CAAC;WACjD,CAAC,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,EACjD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAIlD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,2FAA2F,CAAC,CAAC;QACvH,MAAM,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACjG,OAAO;YACL,KAAK,EAAE,4BAA4B;YACnC,OAAO;YACP,WAAW,EAAE,0BAA0B;YACvC,UAAU,EAAE,eAAe;YAC3B,eAAe,EAAE,8BAA8B;YAC/C,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;SAChC,CAAC;IACJ,CAAC;IACD,MAAM,kBAAkB,GAAG,kCAAkC,CAAC,IAAI,CAAC,CAAC;IACpE,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;QAChC,OAAO;YACL,KAAK,EAAE,mCAAmC;YAC1C,OAAO,EAAE,wEAAwE,kBAAkB,iBAAiB,kBAAkB,4CAA4C;YAClL,WAAW,EAAE,0BAA0B;YACvC,UAAU,EAAE,eAAe;YAC3B,eAAe,EAAE,kBAAkB;YACnC,uBAAuB,EAAE,kBAAkB;YAC3C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrD,CAAC;IACJ,CAAC;IACD,MAAM,uBAAuB,GAAG,uCAAuC,CAAC,IAAI,CAAC,CAAC;IAC9E,IAAI,uBAAuB,EAAE,CAAC;QAC5B,IAAI,sCAAsC,CAAC,uBAAuB,CAAC,EAAE,CAAC;YACpE,OAAO;gBACL,KAAK,EAAE,4BAA4B;gBACnC,OAAO,EAAE,iDAAyC;gBAClD,WAAW,EAAE,0BAA0B;gBACvC,UAAU,EAAE,eAAe;gBAC3B,WAAW,EAAE,IAAI;gBACjB,iBAAiB,EAAE,qFAAqF;gBACxG,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,gDAAwC,CAAC;oBACtE,CAAC,CAAC,gDAAwC;oBAC1C,CAAC,CAAC,yBAAyB;gBAC7B,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;aAChC,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,oCAAoC,CAAC,uBAAuB,CAAC,CAAC;QAC7E,OAAO;YACL,KAAK,EAAE,4BAA4B;YACnC,OAAO,EAAE,MAAM,CAAC,WAAW;YAC3B,WAAW,EAAE,0BAA0B;YACvC,UAAU,EAAE,eAAe;YAC3B,eAAe,EAAE,kBAAkB;YACnC,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;SAChD,CAAC;IACJ,CAAC;IACD,IAAI,mDAAmD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnE,OAAO;YACL,KAAK,EAAE,4BAA4B;YACnC,OAAO,EAAE,uCAA+B;YACxC,WAAW,EAAE,0BAA0B;YACvC,UAAU,EAAE,eAAe;YAC3B,WAAW,EAAE,IAAI;YACjB,iBAAiB,EAAE,iDAAiD;YACpE,eAAe,EAAE,kBAAkB;YACnC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrD,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,4BAA4B;QACnC,OAAO,EAAE,iDAAyC;QAClD,WAAW,EAAE,0BAA0B;QACvC,UAAU,EAAE,eAAe;QAC3B,WAAW,EAAE,IAAI;QACjB,iBAAiB,EAAE,iFAAiF;QACpG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrD,CAAC;AACJ,CAAC"}
@@ -194,7 +194,7 @@ export const GATING_POLICIES = [
194
194
  },
195
195
  {
196
196
  policyId: 'HAS_PERSONA_AND_REQUESTS_VIDEO',
197
- version: '1.0.0',
197
+ version: '1.1.0',
198
198
  trigger: {
199
199
  allOf: [
200
200
  'has_active_persona',
@@ -207,9 +207,12 @@ export const GATING_POLICIES = [
207
207
  no_persona_image_in_session: 'session_state',
208
208
  },
209
209
  },
210
- effect: { forbid: [], require: ['resolve_personas', 'edit_image'] },
211
- rationale: 'Persona videos require an image stage first: resolve_personas, then ' +
212
- 'edit_image to render the persona, then animate. Do not go text-to-video.',
210
+ effect: { forbid: [], require: ['resolve_personas'] },
211
+ rationale: 'Persona videos start with resolve_personas. On MiniMax H3 reference-to-video, Seedance or ' +
212
+ 'Wan 3, pass the resolved persona reference images straight to generate_video as ' +
213
+ 'referenceImageIndices, with no edit_image step. On LTX and every other video model, render ' +
214
+ 'the persona with edit_image first, then animate it. Do not go text-to-video without the ' +
215
+ 'persona references.',
213
216
  },
214
217
  {
215
218
  policyId: 'HAS_PERSONA_AND_REQUESTS_PERSONA_IMAGE',
@@ -1 +1 @@
1
- {"version":3,"file":"gatingPolicies.js","sourceRoot":"","sources":["../../../src/contracts/data/gatingPolicies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gatingPolicies.js","sourceRoot":"","sources":["../../../src/contracts/data/gatingPolicies.ts"],"names":[],"mappings":"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"}
@@ -227,7 +227,7 @@ const ANIMATE_PHOTO_CONTRACT = {
227
227
  };
228
228
  const GENERATE_VIDEO_CONTRACT = {
229
229
  contractId: 'generate_video_v1',
230
- version: '1.5.0',
230
+ version: '1.6.0',
231
231
  toolName: 'generate_video',
232
232
  baseDescription: [
233
233
  'generate_video produces text-to-video clips and multimodal reference videos.',
@@ -241,6 +241,13 @@ const GENERATE_VIDEO_CONTRACT = {
241
241
  'by type. Do not bracket or @-prefix these identifiers. Wan 3 renders 2-30 seconds at fixed',
242
242
  '30 fps, offers 480P/720P/1080P and 16:9/4:3/1:1/3:4/9:16, and can toggle native audio.',
243
243
  '',
244
+ 'MY PERSONAS: When the user means themselves or names a saved Persona and wants it on MiniMax H3',
245
+ 'reference-to-video, Seedance or Wan 3, call resolve_personas, then pass the resolved persona',
246
+ 'reference images straight in as referenceImageIndices (the negative indices resolve_personas',
247
+ 'reports), with no edit_image step. Every clip carries its own references. Bind each persona to',
248
+ 'its images in the prompt with the model\'s tokens: @Image1 on Seedance, <Picture 1> on MiniMax H3,',
249
+ 'Image 1 on Wan 3. On LTX, a persona video animates an edit_image still with animate_photo.',
250
+ '',
244
251
  'MINIMAX H3 SOURCE AUDIO: Every H3 R2V call with a reference video or audio must set',
245
252
  'sourceAudioPolicy. A specific/original/trending song is immutable: use reuse_exact, author',
246
253
  'the official audio reuse task plus fully_copy, keep choreography on explicit source times,',
@@ -301,6 +308,7 @@ const GENERATE_VIDEO_CONTRACT = {
301
308
  'or an exact-duration LTX clip. If the user did not explicitly ask for Seedance, choose the',
302
309
  'model/tool that can satisfy the requested duration exactly.',
303
310
  '',
311
+ 'Prefer FastH3 Omni R2V (minimax-h3-fasth3-r2v-turbo) for MiniMax reference-to-video. For two-stage, 1080p or 2K output, prefer minimax-h3-fasth3-r2v-turbo-2stage. Use Standard, Balanced, or LightX2V Turbo R2V only when explicitly requested.',
304
312
  'MINIMAX H3 TWO-STAGE OUTPUT: 1080p and 2K MiniMax H3 delivery is its own selector, not an option.',
305
313
  '"minimax-h3-fasth3-t2v-turbo-2stage" is the two-stage FastH3 engine: FastH3 renders the canvas,',
306
314
  'then the worker enlarges it 2x and refines it, so the clip is delivered at twice the canvas width',
@@ -316,7 +324,7 @@ const GENERATE_VIDEO_CONTRACT = {
316
324
  '20 steps) and "minimax-h3-r2v-balanced-2stage" (Balanced, 8 steps) take exactly the references, prompt',
317
325
  'contract, durations and LoRAs of "minimax-h3-r2v" and "minimax-h3-r2v-balanced", deliver twice the',
318
326
  'canvas, and read targetResolution the same way (1080, 1440 or omitted for 2K, 720); each bills its',
319
- "tier's rate plus the two-stage surcharge of the delivered class. Choose one when the user asks for",
327
+ "tier's rate plus the two-stage surcharge of the delivered class. Choose these only when the user explicitly asks for Standard or Balanced at",
320
328
  '1080p, 1440p or 2K MiniMax H3 reference-to-video output; keep the one-stage R2V selectors for 768p.',
321
329
  'FastH3 Reference is the FastH3 tier\'s reference-to-video: "minimax-h3-fasth3-r2v-turbo" takes the same',
322
330
  'references, prompt contract, durations, catalog LoRAs and Personal LoRAs as "minimax-h3-r2v", and its',
@@ -766,7 +774,7 @@ const STITCH_VIDEO_CONTRACT = {
766
774
  };
767
775
  const SOUND_TO_VIDEO_CONTRACT = {
768
776
  contractId: 'sound_to_video_v1',
769
- version: '1.2.0',
777
+ version: '1.3.0',
770
778
  toolName: 'sound_to_video',
771
779
  baseDescription: [
772
780
  'sound_to_video creates audio-synced video from an audio source. Works with uploaded audio',
@@ -784,12 +792,12 @@ const SOUND_TO_VIDEO_CONTRACT = {
784
792
  'input driving the video output.',
785
793
  '',
786
794
  'PERSONA VOICE CLIPS: Persona voice clips returned by resolve_personas are voice identity',
787
- 'references for LTX Audio ID, not audio tracks to synchronize. If the user explicitly asks',
788
- 'for a registered/persona/reference voice or voice clone, call resolve_personas first, then',
789
- 'use generate_video with ltx23 and voicePersonaName when there is no image source, or',
790
- 'animate_photo with ltx23 and voicePersonaName when an image/source frame should be',
791
- 'animated. Do not call sound_to_video for a persona voice clip unless a separate uploaded',
792
- 'audio track is the primary sync driver.',
795
+ 'references, not audio tracks to synchronize. If the user explicitly asks for a persona\'s own',
796
+ 'voice, call resolve_personas first, then set voicePersonaName on generate_video (Audio ID on',
797
+ 'ltx23, a voice reference on MiniMax H3 reference-to-video, Seedance and Wan 3) or on',
798
+ 'animate_photo with ltx23 when an image/source frame should be animated. Do not call',
799
+ 'sound_to_video for a persona voice clip unless a separate uploaded audio track is the primary',
800
+ 'sync driver.',
793
801
  '',
794
802
  'MINIMAX H3 AUDIO GUIDE: only when the user asks for MiniMax H3 or FastH3 with an uploaded audio',
795
803
  'track, use sound_to_video with videoModel "minimax-h3-fasth3-ia2v-turbo" (first-frame image via',
@@ -861,7 +869,7 @@ const GENERATE_MUSIC_CONTRACT = {
861
869
  };
862
870
  const GENERATE_SPEECH_CONTRACT = {
863
871
  contractId: 'generate_speech_v1',
864
- version: '1.0.0',
872
+ version: '1.1.0',
865
873
  toolName: 'generate_speech',
866
874
  baseDescription: [
867
875
  'generate_speech reads written words aloud. It is text-to-speech, not music: use',
@@ -878,13 +886,16 @@ const GENERATE_SPEECH_CONTRACT = {
878
886
  'structured piece; a sentence or two is yours to write.',
879
887
  '',
880
888
  'PICK THE MODEL FROM WHAT THE USER GAVE YOU. A voice clip uploaded with "make it sound like',
881
- 'me" is model="clone" with voiceSourceIndex pointing at that upload. A described speaker who',
882
- 'does not exist ("an old lighthouse keeper") is model="design" with voiceDescription. Anything',
883
- 'else is model="voice" — choose a voice from the roster and, if the user described a mood or',
884
- 'a delivery, put that in voiceDescription too.',
889
+ 'me" is model="clone" with voiceSourceIndex pointing at that upload. A saved Persona\'s voice is',
890
+ 'a clone source too: when the user asks for that persona\'s own voice, call resolve_personas and',
891
+ 'use model="clone" with voiceSourceIndex set to the full voice recording index it reports. A',
892
+ 'described speaker who does not exist ("an old lighthouse keeper") is model="design" with',
893
+ 'voiceDescription. Anything else is model="voice" — choose a voice from the roster and, if the',
894
+ 'user described a mood or a delivery, put that in voiceDescription too.',
885
895
  '',
886
896
  'CLONING QUALITY. Set voiceTranscript whenever the words in the uploaded clip are known: it',
887
- 'is the difference between a close clone and a loose one. Tell the user if their reference is',
897
+ 'is the difference between a close clone and a loose one. Leave it out for a persona recording:',
898
+ 'the persona\'s saved transcript is supplied automatically. Tell the user if their reference is',
888
899
  'shorter than three seconds, has music under it, or has two people talking — those are the',
889
900
  'three reasons a clone comes back sounding wrong.',
890
901
  '',
@@ -898,13 +909,13 @@ const GENERATE_SPEECH_CONTRACT = {
898
909
  parameterDocs: {
899
910
  prompt: 'The literal words to speak, verbatim. Not a description of the audio.',
900
911
  voiceDescription: 'Delivery direction for model="voice"; the speaker to invent for model="design". Never sent with model="clone".',
901
- voiceSourceIndex: 'Which audio holds the voice to clone, same numbering as other tools use for audio: -1 is the first upload, -2 the second, and 0-based non-negative indices address audio generated earlier. Required for model="clone".',
902
- voiceTranscript: 'What the uploaded clip says. Optional, but it makes the clone markedly closer to the source.',
912
+ voiceSourceIndex: 'Which audio holds the voice to clone, same numbering as other tools use for audio: -1 is the first upload, -2 the second, and 0-based non-negative indices address audio generated earlier. A resolved persona\'s full voice recording uses the index resolve_personas reports. Required for model="clone".',
913
+ voiceTranscript: 'What the uploaded clip says. Optional, but it makes the clone markedly closer to the source. Omit it for a persona voice recording; its saved transcript is filled in automatically.',
903
914
  },
904
915
  };
905
916
  const RESOLVE_PERSONAS_CONTRACT = {
906
917
  contractId: 'resolve_personas_v1',
907
- version: '1.0.0',
918
+ version: '1.1.0',
908
919
  toolName: 'resolve_personas',
909
920
  baseDescription: [
910
921
  'resolve_personas is the required first step when the user explicitly names a saved Persona',
@@ -912,16 +923,28 @@ const RESOLVE_PERSONAS_CONTRACT = {
912
923
  'or voice clone. Do not answer in prose, ask a follow-up, or finalize before calling this',
913
924
  'tool when a listed Persona name is present.',
914
925
  '',
915
- 'DIRECT PERSONA IMAGE / VOICE VIDEO: If the user says to use the Persona image/reference',
916
- 'directly/originally, call resolve_personas first, then call animate_photo using the injected',
917
- 'persona photo as an uploaded image index. For one named Persona, use sourceImageIndex=-1',
918
- 'or sourceImageIndices=[-1,...] for a multi-clip batch. If Persona Voice was explicitly',
919
- 'requested, set voicePersonaName to the exact resolved Persona name and use ltx23. Use',
920
- 'animate_photo when an image/source frame should be animated. Use generate_video with',
921
- 'ltx23 when the user requested a persona voice video but no image source exists yet.',
922
- 'Do not call sound_to_video for Persona voice clips; they are voice identity references,',
923
- 'not the audio track to synchronize. Do not generate a new image first when the user',
924
- 'explicitly requested the existing Persona image directly.',
926
+ 'REFERENCE-TO-VIDEO PERSONAS: On MiniMax H3 reference-to-video (minimax-h3-r2v*), Seedance',
927
+ '(seedance2*, seedance2-5*) or Wan 3 (wan3.0-video, wan3.0-spicy-video), pass the persona',
928
+ 'reference images this tool resolves (identity portrait, character sheet, full-body front,',
929
+ 'profile, back, expression) straight to generate_video as referenceImageIndices, using the',
930
+ 'negative uploaded indices it reports, with no edit_image step. Every clip or scene carries',
931
+ 'its own references. Bind each persona to its images in the prompt with the model\'s tokens:',
932
+ '@Image1 on Seedance, <Picture 1> on MiniMax H3, Image 1 on Wan 3.',
933
+ '',
934
+ 'DIRECT PERSONA IMAGE: On LTX and the other image-animation models, if the user says to use',
935
+ 'the Persona image/reference directly/originally, call resolve_personas first, then call',
936
+ 'animate_photo using the injected persona photo as an uploaded image index. For one named',
937
+ 'Persona, use sourceImageIndex=-1 or sourceImageIndices=[-1,...] for a multi-clip batch. Do',
938
+ 'not generate a new image first when the user explicitly requested the existing Persona image',
939
+ 'directly.',
940
+ '',
941
+ 'PERSONA VOICE: Only when the user asks for the persona\'s own voice, set voicePersonaName to',
942
+ 'the exact resolved Persona name. On ltx23 it is Audio ID: animate_photo when an image/source',
943
+ 'frame should be animated, generate_video when no image source exists yet. On MiniMax H3',
944
+ 'reference-to-video, Seedance and Wan 3, generate_video attaches the persona\'s short voice',
945
+ 'sample as an audio reference for its timbre. A voice sample is identity, not the soundtrack.',
946
+ 'Do not call sound_to_video for Persona voice clips. For speech alone, clone the persona\'s full',
947
+ 'voice recording with generate_speech (model="clone", voiceSourceIndex from this tool).',
925
948
  '',
926
949
  'MULTI-CLIP PERSONA BATCHES: If the user asks for several separate clips from the same',
927
950
  'Persona Image, make one animate_photo call after resolve_personas with repeated persona',