@sogni-ai/sogni-intelligence-client 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (819) hide show
  1. package/.env.example +33 -0
  2. package/LICENSE +22 -0
  3. package/README.md +259 -0
  4. package/chatRun/index.d.ts +1 -0
  5. package/chatRun/index.js +2 -0
  6. package/context/index.d.ts +1 -0
  7. package/context/index.js +2 -0
  8. package/contracts/index.d.ts +1 -0
  9. package/contracts/index.js +2 -0
  10. package/dist/chatRun/costApproval.d.ts +10 -0
  11. package/dist/chatRun/costApproval.d.ts.map +1 -0
  12. package/dist/chatRun/costApproval.js +70 -0
  13. package/dist/chatRun/costApproval.js.map +1 -0
  14. package/dist/chatRun/index.d.ts +207 -0
  15. package/dist/chatRun/index.d.ts.map +1 -0
  16. package/dist/chatRun/index.js +350 -0
  17. package/dist/chatRun/index.js.map +1 -0
  18. package/dist/client/SogniClientWrapper.d.ts +86 -0
  19. package/dist/client/SogniClientWrapper.d.ts.map +1 -0
  20. package/dist/client/SogniClientWrapper.js +914 -0
  21. package/dist/client/SogniClientWrapper.js.map +1 -0
  22. package/dist/context/index.d.ts +56 -0
  23. package/dist/context/index.d.ts.map +1 -0
  24. package/dist/context/index.js +460 -0
  25. package/dist/context/index.js.map +1 -0
  26. package/dist/contracts/backboneDurableWorkflow.d.ts +82 -0
  27. package/dist/contracts/backboneDurableWorkflow.d.ts.map +1 -0
  28. package/dist/contracts/backboneDurableWorkflow.js +96 -0
  29. package/dist/contracts/backboneDurableWorkflow.js.map +1 -0
  30. package/dist/contracts/backboneToolCatalog.d.ts +7 -0
  31. package/dist/contracts/backboneToolCatalog.d.ts.map +1 -0
  32. package/dist/contracts/backboneToolCatalog.js +62 -0
  33. package/dist/contracts/backboneToolCatalog.js.map +1 -0
  34. package/dist/contracts/composeWorkflowTypes.d.ts +6 -0
  35. package/dist/contracts/composeWorkflowTypes.d.ts.map +1 -0
  36. package/dist/contracts/composeWorkflowTypes.js +3 -0
  37. package/dist/contracts/composeWorkflowTypes.js.map +1 -0
  38. package/dist/contracts/data/costEstimation.d.ts +5 -0
  39. package/dist/contracts/data/costEstimation.d.ts.map +1 -0
  40. package/dist/contracts/data/costEstimation.js +22 -0
  41. package/dist/contracts/data/costEstimation.js.map +1 -0
  42. package/dist/contracts/data/gatingPolicies.d.ts +6 -0
  43. package/dist/contracts/data/gatingPolicies.d.ts.map +1 -0
  44. package/dist/contracts/data/gatingPolicies.js +218 -0
  45. package/dist/contracts/data/gatingPolicies.js.map +1 -0
  46. package/dist/contracts/data/gatingPoliciesToolSurface.d.ts +7 -0
  47. package/dist/contracts/data/gatingPoliciesToolSurface.d.ts.map +1 -0
  48. package/dist/contracts/data/gatingPoliciesToolSurface.js +61 -0
  49. package/dist/contracts/data/gatingPoliciesToolSurface.js.map +1 -0
  50. package/dist/contracts/data/index.d.ts +14 -0
  51. package/dist/contracts/data/index.d.ts.map +1 -0
  52. package/dist/contracts/data/index.js +57 -0
  53. package/dist/contracts/data/index.js.map +1 -0
  54. package/dist/contracts/data/promptContracts.d.ts +5 -0
  55. package/dist/contracts/data/promptContracts.d.ts.map +1 -0
  56. package/dist/contracts/data/promptContracts.js +1286 -0
  57. package/dist/contracts/data/promptContracts.js.map +1 -0
  58. package/dist/contracts/data/repairRecipes.d.ts +5 -0
  59. package/dist/contracts/data/repairRecipes.d.ts.map +1 -0
  60. package/dist/contracts/data/repairRecipes.js +197 -0
  61. package/dist/contracts/data/repairRecipes.js.map +1 -0
  62. package/dist/contracts/data/toolCatalog.d.ts +31 -0
  63. package/dist/contracts/data/toolCatalog.d.ts.map +1 -0
  64. package/dist/contracts/data/toolCatalog.js +129 -0
  65. package/dist/contracts/data/toolCatalog.js.map +1 -0
  66. package/dist/contracts/data/toolCostMetadata.d.ts +16 -0
  67. package/dist/contracts/data/toolCostMetadata.d.ts.map +1 -0
  68. package/dist/contracts/data/toolCostMetadata.js +284 -0
  69. package/dist/contracts/data/toolCostMetadata.js.map +1 -0
  70. package/dist/contracts/data/toolPermissions.d.ts +27 -0
  71. package/dist/contracts/data/toolPermissions.d.ts.map +1 -0
  72. package/dist/contracts/data/toolPermissions.js +78 -0
  73. package/dist/contracts/data/toolPermissions.js.map +1 -0
  74. package/dist/contracts/evaluators.d.ts +94 -0
  75. package/dist/contracts/evaluators.d.ts.map +1 -0
  76. package/dist/contracts/evaluators.js +468 -0
  77. package/dist/contracts/evaluators.js.map +1 -0
  78. package/dist/contracts/hostedComposition.d.ts +85 -0
  79. package/dist/contracts/hostedComposition.d.ts.map +1 -0
  80. package/dist/contracts/hostedComposition.js +139 -0
  81. package/dist/contracts/hostedComposition.js.map +1 -0
  82. package/dist/contracts/hostedToolValidation.d.ts +47 -0
  83. package/dist/contracts/hostedToolValidation.d.ts.map +1 -0
  84. package/dist/contracts/hostedToolValidation.js +301 -0
  85. package/dist/contracts/hostedToolValidation.js.map +1 -0
  86. package/dist/contracts/idLoraPrompt.d.ts +13 -0
  87. package/dist/contracts/idLoraPrompt.d.ts.map +1 -0
  88. package/dist/contracts/idLoraPrompt.js +78 -0
  89. package/dist/contracts/idLoraPrompt.js.map +1 -0
  90. package/dist/contracts/imagePrompt.d.ts +16 -0
  91. package/dist/contracts/imagePrompt.d.ts.map +1 -0
  92. package/dist/contracts/imagePrompt.js +148 -0
  93. package/dist/contracts/imagePrompt.js.map +1 -0
  94. package/dist/contracts/index.d.ts +48 -0
  95. package/dist/contracts/index.d.ts.map +1 -0
  96. package/dist/contracts/index.js +156 -0
  97. package/dist/contracts/index.js.map +1 -0
  98. package/dist/contracts/musicComposition.d.ts +17 -0
  99. package/dist/contracts/musicComposition.d.ts.map +1 -0
  100. package/dist/contracts/musicComposition.js +188 -0
  101. package/dist/contracts/musicComposition.js.map +1 -0
  102. package/dist/contracts/promptContract.d.ts +11 -0
  103. package/dist/contracts/promptContract.d.ts.map +1 -0
  104. package/dist/contracts/promptContract.js +37 -0
  105. package/dist/contracts/promptContract.js.map +1 -0
  106. package/dist/contracts/promptOverrideMarker.d.ts +2 -0
  107. package/dist/contracts/promptOverrideMarker.d.ts.map +1 -0
  108. package/dist/contracts/promptOverrideMarker.js +5 -0
  109. package/dist/contracts/promptOverrideMarker.js.map +1 -0
  110. package/dist/contracts/randomThemes.d.ts +5 -0
  111. package/dist/contracts/randomThemes.d.ts.map +1 -0
  112. package/dist/contracts/randomThemes.js +159 -0
  113. package/dist/contracts/randomThemes.js.map +1 -0
  114. package/dist/contracts/registry.d.ts +29 -0
  115. package/dist/contracts/registry.d.ts.map +1 -0
  116. package/dist/contracts/registry.js +104 -0
  117. package/dist/contracts/registry.js.map +1 -0
  118. package/dist/contracts/repairRecipe.d.ts +14 -0
  119. package/dist/contracts/repairRecipe.d.ts.map +1 -0
  120. package/dist/contracts/repairRecipe.js +38 -0
  121. package/dist/contracts/repairRecipe.js.map +1 -0
  122. package/dist/contracts/storyboard.d.ts +113 -0
  123. package/dist/contracts/storyboard.d.ts.map +1 -0
  124. package/dist/contracts/storyboard.js +7 -0
  125. package/dist/contracts/storyboard.js.map +1 -0
  126. package/dist/contracts/telemetry.d.ts +57 -0
  127. package/dist/contracts/telemetry.d.ts.map +1 -0
  128. package/dist/contracts/telemetry.js +37 -0
  129. package/dist/contracts/telemetry.js.map +1 -0
  130. package/dist/contracts/toolGatingPolicy.d.ts +19 -0
  131. package/dist/contracts/toolGatingPolicy.d.ts.map +1 -0
  132. package/dist/contracts/toolGatingPolicy.js +63 -0
  133. package/dist/contracts/toolGatingPolicy.js.map +1 -0
  134. package/dist/contracts/toolPromptMarkers.d.ts +9 -0
  135. package/dist/contracts/toolPromptMarkers.d.ts.map +1 -0
  136. package/dist/contracts/toolPromptMarkers.js +13 -0
  137. package/dist/contracts/toolPromptMarkers.js.map +1 -0
  138. package/dist/contracts/toolSurface.d.ts +46 -0
  139. package/dist/contracts/toolSurface.d.ts.map +1 -0
  140. package/dist/contracts/toolSurface.js +119 -0
  141. package/dist/contracts/toolSurface.js.map +1 -0
  142. package/dist/contracts/turnPolicy.d.ts +22 -0
  143. package/dist/contracts/turnPolicy.d.ts.map +1 -0
  144. package/dist/contracts/turnPolicy.js +16 -0
  145. package/dist/contracts/turnPolicy.js.map +1 -0
  146. package/dist/contracts/videoComposition.d.ts +35 -0
  147. package/dist/contracts/videoComposition.d.ts.map +1 -0
  148. package/dist/contracts/videoComposition.js +224 -0
  149. package/dist/contracts/videoComposition.js.map +1 -0
  150. package/dist/index.d.ts +11 -0
  151. package/dist/index.d.ts.map +1 -0
  152. package/dist/index.js +59 -0
  153. package/dist/index.js.map +1 -0
  154. package/dist/media/aspectRatio.d.ts +15 -0
  155. package/dist/media/aspectRatio.d.ts.map +1 -0
  156. package/dist/media/aspectRatio.js +72 -0
  157. package/dist/media/aspectRatio.js.map +1 -0
  158. package/dist/media/audioReference.d.ts +57 -0
  159. package/dist/media/audioReference.d.ts.map +1 -0
  160. package/dist/media/audioReference.js +194 -0
  161. package/dist/media/audioReference.js.map +1 -0
  162. package/dist/media/cameraAngle.d.ts +170 -0
  163. package/dist/media/cameraAngle.d.ts.map +1 -0
  164. package/dist/media/cameraAngle.js +48 -0
  165. package/dist/media/cameraAngle.js.map +1 -0
  166. package/dist/media/characterSheet.d.ts +9 -0
  167. package/dist/media/characterSheet.d.ts.map +1 -0
  168. package/dist/media/characterSheet.js +54 -0
  169. package/dist/media/characterSheet.js.map +1 -0
  170. package/dist/media/danceMontage.d.ts +18 -0
  171. package/dist/media/danceMontage.d.ts.map +1 -0
  172. package/dist/media/danceMontage.js +34 -0
  173. package/dist/media/danceMontage.js.map +1 -0
  174. package/dist/media/enhancementProfiles.d.ts +158 -0
  175. package/dist/media/enhancementProfiles.d.ts.map +1 -0
  176. package/dist/media/enhancementProfiles.js +224 -0
  177. package/dist/media/enhancementProfiles.js.map +1 -0
  178. package/dist/media/generationJob.d.ts +81 -0
  179. package/dist/media/generationJob.d.ts.map +1 -0
  180. package/dist/media/generationJob.js +91 -0
  181. package/dist/media/generationJob.js.map +1 -0
  182. package/dist/media/gptImage.d.ts +21 -0
  183. package/dist/media/gptImage.d.ts.map +1 -0
  184. package/dist/media/gptImage.js +162 -0
  185. package/dist/media/gptImage.js.map +1 -0
  186. package/dist/media/imageDimensions.d.ts +24 -0
  187. package/dist/media/imageDimensions.d.ts.map +1 -0
  188. package/dist/media/imageDimensions.js +64 -0
  189. package/dist/media/imageDimensions.js.map +1 -0
  190. package/dist/media/index.d.ts +16 -0
  191. package/dist/media/index.d.ts.map +1 -0
  192. package/dist/media/index.js +32 -0
  193. package/dist/media/index.js.map +1 -0
  194. package/dist/media/musicSettings.d.ts +86 -0
  195. package/dist/media/musicSettings.d.ts.map +1 -0
  196. package/dist/media/musicSettings.js +234 -0
  197. package/dist/media/musicSettings.js.map +1 -0
  198. package/dist/media/vendorModelPremium.d.ts +21 -0
  199. package/dist/media/vendorModelPremium.d.ts.map +1 -0
  200. package/dist/media/vendorModelPremium.js +89 -0
  201. package/dist/media/vendorModelPremium.js.map +1 -0
  202. package/dist/media/videoAppSettings.d.ts +41 -0
  203. package/dist/media/videoAppSettings.d.ts.map +1 -0
  204. package/dist/media/videoAppSettings.js +128 -0
  205. package/dist/media/videoAppSettings.js.map +1 -0
  206. package/dist/media/videoContentLimit.d.ts +15 -0
  207. package/dist/media/videoContentLimit.d.ts.map +1 -0
  208. package/dist/media/videoContentLimit.js +169 -0
  209. package/dist/media/videoContentLimit.js.map +1 -0
  210. package/dist/media/videoReference.d.ts +35 -0
  211. package/dist/media/videoReference.d.ts.map +1 -0
  212. package/dist/media/videoReference.js +77 -0
  213. package/dist/media/videoReference.js.map +1 -0
  214. package/dist/media/videoSettings.d.ts +50 -0
  215. package/dist/media/videoSettings.d.ts.map +1 -0
  216. package/dist/media/videoSettings.js +200 -0
  217. package/dist/media/videoSettings.js.map +1 -0
  218. package/dist/openai-tools/_manifests.generated.d.ts +4 -0
  219. package/dist/openai-tools/_manifests.generated.d.ts.map +1 -0
  220. package/dist/openai-tools/_manifests.generated.js +1792 -0
  221. package/dist/openai-tools/_manifests.generated.js.map +1 -0
  222. package/dist/openai-tools/app-tools.json +297 -0
  223. package/dist/openai-tools/composition-tools.json +228 -0
  224. package/dist/openai-tools/generation-tools.json +1263 -0
  225. package/dist/openai-tools/index.d.ts +17 -0
  226. package/dist/openai-tools/index.d.ts.map +1 -0
  227. package/dist/openai-tools/index.js +32 -0
  228. package/dist/openai-tools/index.js.map +1 -0
  229. package/dist/public-skill-runtime/index.d.ts +1222 -0
  230. package/dist/public-skill-runtime/index.d.ts.map +1 -0
  231. package/dist/public-skill-runtime/index.js +6492 -0
  232. package/dist/public-skill-runtime/index.js.map +1 -0
  233. package/dist/replay/index.d.ts +4 -0
  234. package/dist/replay/index.d.ts.map +1 -0
  235. package/dist/replay/index.js +12 -0
  236. package/dist/replay/index.js.map +1 -0
  237. package/dist/replay/redact.d.ts +7 -0
  238. package/dist/replay/redact.d.ts.map +1 -0
  239. package/dist/replay/redact.js +108 -0
  240. package/dist/replay/redact.js.map +1 -0
  241. package/dist/replay/types.d.ts +61 -0
  242. package/dist/replay/types.d.ts.map +1 -0
  243. package/dist/replay/types.js +24 -0
  244. package/dist/replay/types.js.map +1 -0
  245. package/dist/runtime/chatTypes.d.ts +47 -0
  246. package/dist/runtime/chatTypes.d.ts.map +1 -0
  247. package/dist/runtime/chatTypes.js +3 -0
  248. package/dist/runtime/chatTypes.js.map +1 -0
  249. package/dist/runtime/durableWorkflowClient.d.ts +80 -0
  250. package/dist/runtime/durableWorkflowClient.d.ts.map +1 -0
  251. package/dist/runtime/durableWorkflowClient.js +312 -0
  252. package/dist/runtime/durableWorkflowClient.js.map +1 -0
  253. package/dist/runtime/index.d.ts +3 -0
  254. package/dist/runtime/index.d.ts.map +1 -0
  255. package/dist/runtime/index.js +18 -0
  256. package/dist/runtime/index.js.map +1 -0
  257. package/dist/schemas/errors/error.schema.json +21 -0
  258. package/dist/schemas/errors/repair-control.schema.json +40 -0
  259. package/dist/schemas/events/artifact-reference.schema.json +22 -0
  260. package/dist/schemas/events/progress-event.schema.json +28 -0
  261. package/dist/schemas/events/workflow-event.schema.json +22 -0
  262. package/dist/schemas/storyboards/storyboard-planning-contract.schema.json +108 -0
  263. package/dist/schemas/tools/add_subtitles.schema.json +77 -0
  264. package/dist/schemas/tools/animate_photo.schema.json +104 -0
  265. package/dist/schemas/tools/apply_style.schema.json +37 -0
  266. package/dist/schemas/tools/change_angle.schema.json +30 -0
  267. package/dist/schemas/tools/compose_instrumental.schema.json +24 -0
  268. package/dist/schemas/tools/compose_lyrics.schema.json +28 -0
  269. package/dist/schemas/tools/compose_script.schema.json +68 -0
  270. package/dist/schemas/tools/compose_workflow.schema.json +67 -0
  271. package/dist/schemas/tools/compose_workflow_template.schema.json +156 -0
  272. package/dist/schemas/tools/dance_montage.schema.json +47 -0
  273. package/dist/schemas/tools/edit_image.schema.json +74 -0
  274. package/dist/schemas/tools/enhance_prompt.schema.json +76 -0
  275. package/dist/schemas/tools/extend_video.schema.json +42 -0
  276. package/dist/schemas/tools/generate_image.schema.json +104 -0
  277. package/dist/schemas/tools/generate_music.schema.json +62 -0
  278. package/dist/schemas/tools/generate_video.schema.json +97 -0
  279. package/dist/schemas/tools/orbit_video.schema.json +70 -0
  280. package/dist/schemas/tools/overlay_video.schema.json +126 -0
  281. package/dist/schemas/tools/refine_result.schema.json +43 -0
  282. package/dist/schemas/tools/replace_video_segment.schema.json +60 -0
  283. package/dist/schemas/tools/restore_photo.schema.json +47 -0
  284. package/dist/schemas/tools/sound_to_video.schema.json +70 -0
  285. package/dist/schemas/tools/stitch_video.schema.json +52 -0
  286. package/dist/schemas/tools/video_to_video.schema.json +77 -0
  287. package/dist/schemas/workflows/durable-workflow-run.schema.json +165 -0
  288. package/dist/schemas/workflows/durable-workflow-step.schema.json +141 -0
  289. package/dist/skill-runtime-source/crossSurfaceParity.d.ts +23 -0
  290. package/dist/skill-runtime-source/crossSurfaceParity.d.ts.map +1 -0
  291. package/dist/skill-runtime-source/crossSurfaceParity.js +472 -0
  292. package/dist/skill-runtime-source/crossSurfaceParity.js.map +1 -0
  293. package/dist/skill-runtime-source/index.d.ts +4 -0
  294. package/dist/skill-runtime-source/index.d.ts.map +1 -0
  295. package/dist/skill-runtime-source/index.js +20 -0
  296. package/dist/skill-runtime-source/index.js.map +1 -0
  297. package/dist/skill-runtime-source/seedanceAudioWindow.d.ts +8 -0
  298. package/dist/skill-runtime-source/seedanceAudioWindow.d.ts.map +1 -0
  299. package/dist/skill-runtime-source/seedanceAudioWindow.js +52 -0
  300. package/dist/skill-runtime-source/seedanceAudioWindow.js.map +1 -0
  301. package/dist/skill-runtime-source/workflowStatus.d.ts +17 -0
  302. package/dist/skill-runtime-source/workflowStatus.d.ts.map +1 -0
  303. package/dist/skill-runtime-source/workflowStatus.js +353 -0
  304. package/dist/skill-runtime-source/workflowStatus.js.map +1 -0
  305. package/dist/skills/asset_reference_management/index.d.ts +6 -0
  306. package/dist/skills/asset_reference_management/index.d.ts.map +1 -0
  307. package/dist/skills/asset_reference_management/index.js +18 -0
  308. package/dist/skills/asset_reference_management/index.js.map +1 -0
  309. package/dist/skills/asset_reference_management/manifest.d.ts +42 -0
  310. package/dist/skills/asset_reference_management/manifest.d.ts.map +1 -0
  311. package/dist/skills/asset_reference_management/manifest.js +237 -0
  312. package/dist/skills/asset_reference_management/manifest.js.map +1 -0
  313. package/dist/skills/asset_reference_management/modelRefRegistry.d.ts +24 -0
  314. package/dist/skills/asset_reference_management/modelRefRegistry.d.ts.map +1 -0
  315. package/dist/skills/asset_reference_management/modelRefRegistry.js +136 -0
  316. package/dist/skills/asset_reference_management/modelRefRegistry.js.map +1 -0
  317. package/dist/skills/asset_reference_management/types.d.ts +31 -0
  318. package/dist/skills/asset_reference_management/types.d.ts.map +1 -0
  319. package/dist/skills/asset_reference_management/types.js +3 -0
  320. package/dist/skills/asset_reference_management/types.js.map +1 -0
  321. package/dist/tools/definitions/add-subtitles/definition.d.ts +4 -0
  322. package/dist/tools/definitions/add-subtitles/definition.d.ts.map +1 -0
  323. package/dist/tools/definitions/add-subtitles/definition.js +83 -0
  324. package/dist/tools/definitions/add-subtitles/definition.js.map +1 -0
  325. package/dist/tools/definitions/animate-photo/definition.d.ts +3 -0
  326. package/dist/tools/definitions/animate-photo/definition.d.ts.map +1 -0
  327. package/dist/tools/definitions/animate-photo/definition.js +124 -0
  328. package/dist/tools/definitions/animate-photo/definition.js.map +1 -0
  329. package/dist/tools/definitions/apply-style/definition.d.ts +3 -0
  330. package/dist/tools/definitions/apply-style/definition.d.ts.map +1 -0
  331. package/dist/tools/definitions/apply-style/definition.js +50 -0
  332. package/dist/tools/definitions/apply-style/definition.js.map +1 -0
  333. package/dist/tools/definitions/change-angle/definition.d.ts +3 -0
  334. package/dist/tools/definitions/change-angle/definition.d.ts.map +1 -0
  335. package/dist/tools/definitions/change-angle/definition.js +49 -0
  336. package/dist/tools/definitions/change-angle/definition.js.map +1 -0
  337. package/dist/tools/definitions/dance-montage/dances.d.ts +11 -0
  338. package/dist/tools/definitions/dance-montage/dances.d.ts.map +1 -0
  339. package/dist/tools/definitions/dance-montage/dances.js +90 -0
  340. package/dist/tools/definitions/dance-montage/dances.js.map +1 -0
  341. package/dist/tools/definitions/dance-montage/definition.d.ts +3 -0
  342. package/dist/tools/definitions/dance-montage/definition.d.ts.map +1 -0
  343. package/dist/tools/definitions/dance-montage/definition.js +45 -0
  344. package/dist/tools/definitions/dance-montage/definition.js.map +1 -0
  345. package/dist/tools/definitions/edit-image/definition.d.ts +3 -0
  346. package/dist/tools/definitions/edit-image/definition.d.ts.map +1 -0
  347. package/dist/tools/definitions/edit-image/definition.js +128 -0
  348. package/dist/tools/definitions/edit-image/definition.js.map +1 -0
  349. package/dist/tools/definitions/extend-video/definition.d.ts +3 -0
  350. package/dist/tools/definitions/extend-video/definition.d.ts.map +1 -0
  351. package/dist/tools/definitions/extend-video/definition.js +51 -0
  352. package/dist/tools/definitions/extend-video/definition.js.map +1 -0
  353. package/dist/tools/definitions/generate-image/definition.d.ts +3 -0
  354. package/dist/tools/definitions/generate-image/definition.d.ts.map +1 -0
  355. package/dist/tools/definitions/generate-image/definition.js +107 -0
  356. package/dist/tools/definitions/generate-image/definition.js.map +1 -0
  357. package/dist/tools/definitions/generate-music/definition.d.ts +3 -0
  358. package/dist/tools/definitions/generate-music/definition.d.ts.map +1 -0
  359. package/dist/tools/definitions/generate-music/definition.js +75 -0
  360. package/dist/tools/definitions/generate-music/definition.js.map +1 -0
  361. package/dist/tools/definitions/generate-video/definition.d.ts +3 -0
  362. package/dist/tools/definitions/generate-video/definition.d.ts.map +1 -0
  363. package/dist/tools/definitions/generate-video/definition.js +120 -0
  364. package/dist/tools/definitions/generate-video/definition.js.map +1 -0
  365. package/dist/tools/definitions/index.d.ts +25 -0
  366. package/dist/tools/definitions/index.d.ts.map +1 -0
  367. package/dist/tools/definitions/index.js +66 -0
  368. package/dist/tools/definitions/index.js.map +1 -0
  369. package/dist/tools/definitions/orbit-video/definition.d.ts +3 -0
  370. package/dist/tools/definitions/orbit-video/definition.d.ts.map +1 -0
  371. package/dist/tools/definitions/orbit-video/definition.js +103 -0
  372. package/dist/tools/definitions/orbit-video/definition.js.map +1 -0
  373. package/dist/tools/definitions/overlay-video/definition.d.ts +4 -0
  374. package/dist/tools/definitions/overlay-video/definition.d.ts.map +1 -0
  375. package/dist/tools/definitions/overlay-video/definition.js +142 -0
  376. package/dist/tools/definitions/overlay-video/definition.js.map +1 -0
  377. package/dist/tools/definitions/refine-result/definition.d.ts +3 -0
  378. package/dist/tools/definitions/refine-result/definition.d.ts.map +1 -0
  379. package/dist/tools/definitions/refine-result/definition.js +56 -0
  380. package/dist/tools/definitions/refine-result/definition.js.map +1 -0
  381. package/dist/tools/definitions/replace-video-segment/definition.d.ts +3 -0
  382. package/dist/tools/definitions/replace-video-segment/definition.d.ts.map +1 -0
  383. package/dist/tools/definitions/replace-video-segment/definition.js +65 -0
  384. package/dist/tools/definitions/replace-video-segment/definition.js.map +1 -0
  385. package/dist/tools/definitions/restore-photo/definition.d.ts +3 -0
  386. package/dist/tools/definitions/restore-photo/definition.d.ts.map +1 -0
  387. package/dist/tools/definitions/restore-photo/definition.js +58 -0
  388. package/dist/tools/definitions/restore-photo/definition.js.map +1 -0
  389. package/dist/tools/definitions/sound-to-video/definition.d.ts +3 -0
  390. package/dist/tools/definitions/sound-to-video/definition.d.ts.map +1 -0
  391. package/dist/tools/definitions/sound-to-video/definition.js +91 -0
  392. package/dist/tools/definitions/sound-to-video/definition.js.map +1 -0
  393. package/dist/tools/definitions/stitch-video/definition.d.ts +4 -0
  394. package/dist/tools/definitions/stitch-video/definition.d.ts.map +1 -0
  395. package/dist/tools/definitions/stitch-video/definition.js +89 -0
  396. package/dist/tools/definitions/stitch-video/definition.js.map +1 -0
  397. package/dist/tools/definitions/types.d.ts +15 -0
  398. package/dist/tools/definitions/types.d.ts.map +1 -0
  399. package/dist/tools/definitions/types.js +3 -0
  400. package/dist/tools/definitions/types.js.map +1 -0
  401. package/dist/tools/definitions/video-to-video/definition.d.ts +3 -0
  402. package/dist/tools/definitions/video-to-video/definition.d.ts.map +1 -0
  403. package/dist/tools/definitions/video-to-video/definition.js +101 -0
  404. package/dist/tools/definitions/video-to-video/definition.js.map +1 -0
  405. package/dist/tools/index.d.ts +22 -0
  406. package/dist/tools/index.d.ts.map +1 -0
  407. package/dist/tools/index.js +83 -0
  408. package/dist/tools/index.js.map +1 -0
  409. package/dist/tools/normalizeArgs.d.ts +2 -0
  410. package/dist/tools/normalizeArgs.d.ts.map +1 -0
  411. package/dist/tools/normalizeArgs.js +40 -0
  412. package/dist/tools/normalizeArgs.js.map +1 -0
  413. package/dist/tools/result.d.ts +47 -0
  414. package/dist/tools/result.d.ts.map +1 -0
  415. package/dist/tools/result.js +38 -0
  416. package/dist/tools/result.js.map +1 -0
  417. package/dist/tools/shared/downloadFilename.d.ts +18 -0
  418. package/dist/tools/shared/downloadFilename.d.ts.map +1 -0
  419. package/dist/tools/shared/downloadFilename.js +157 -0
  420. package/dist/tools/shared/downloadFilename.js.map +1 -0
  421. package/dist/tools/shared/dynamicPromptBranches.d.ts +20 -0
  422. package/dist/tools/shared/dynamicPromptBranches.d.ts.map +1 -0
  423. package/dist/tools/shared/dynamicPromptBranches.js +193 -0
  424. package/dist/tools/shared/dynamicPromptBranches.js.map +1 -0
  425. package/dist/tools/shared/errorClassification.d.ts +15 -0
  426. package/dist/tools/shared/errorClassification.d.ts.map +1 -0
  427. package/dist/tools/shared/errorClassification.js +78 -0
  428. package/dist/tools/shared/errorClassification.js.map +1 -0
  429. package/dist/tools/shared/imageEncoding.d.ts +2 -0
  430. package/dist/tools/shared/imageEncoding.d.ts.map +1 -0
  431. package/dist/tools/shared/imageEncoding.js +11 -0
  432. package/dist/tools/shared/imageEncoding.js.map +1 -0
  433. package/dist/tools/shared/llmHelpers.d.ts +14 -0
  434. package/dist/tools/shared/llmHelpers.d.ts.map +1 -0
  435. package/dist/tools/shared/llmHelpers.js +145 -0
  436. package/dist/tools/shared/llmHelpers.js.map +1 -0
  437. package/dist/tools/shared/modelRegistry.d.ts +10 -0
  438. package/dist/tools/shared/modelRegistry.d.ts.map +1 -0
  439. package/dist/tools/shared/modelRegistry.js +98 -0
  440. package/dist/tools/shared/modelRegistry.js.map +1 -0
  441. package/dist/tools/shared/multiImageIntent.d.ts +2 -0
  442. package/dist/tools/shared/multiImageIntent.d.ts.map +1 -0
  443. package/dist/tools/shared/multiImageIntent.js +13 -0
  444. package/dist/tools/shared/multiImageIntent.js.map +1 -0
  445. package/dist/tools/shared/numberOfVariationsAlignment.d.ts +2 -0
  446. package/dist/tools/shared/numberOfVariationsAlignment.d.ts.map +1 -0
  447. package/dist/tools/shared/numberOfVariationsAlignment.js +37 -0
  448. package/dist/tools/shared/numberOfVariationsAlignment.js.map +1 -0
  449. package/dist/tools/shared/policyChecks.d.ts +25 -0
  450. package/dist/tools/shared/policyChecks.d.ts.map +1 -0
  451. package/dist/tools/shared/policyChecks.js +79 -0
  452. package/dist/tools/shared/policyChecks.js.map +1 -0
  453. package/dist/tools/shared/promptRefinementCache.d.ts +10 -0
  454. package/dist/tools/shared/promptRefinementCache.d.ts.map +1 -0
  455. package/dist/tools/shared/promptRefinementCache.js +81 -0
  456. package/dist/tools/shared/promptRefinementCache.js.map +1 -0
  457. package/dist/tools/shared/promptSanitizer.d.ts +2 -0
  458. package/dist/tools/shared/promptSanitizer.d.ts.map +1 -0
  459. package/dist/tools/shared/promptSanitizer.js +73 -0
  460. package/dist/tools/shared/promptSanitizer.js.map +1 -0
  461. package/dist/tools/shared/seedancePolicyErrors.d.ts +33 -0
  462. package/dist/tools/shared/seedancePolicyErrors.d.ts.map +1 -0
  463. package/dist/tools/shared/seedancePolicyErrors.js +239 -0
  464. package/dist/tools/shared/seedancePolicyErrors.js.map +1 -0
  465. package/dist/tools/shared/slotFailureSummary.d.ts +7 -0
  466. package/dist/tools/shared/slotFailureSummary.d.ts.map +1 -0
  467. package/dist/tools/shared/slotFailureSummary.js +63 -0
  468. package/dist/tools/shared/slotFailureSummary.js.map +1 -0
  469. package/dist/tools/shared/visionDescriptionCache.d.ts +5 -0
  470. package/dist/tools/shared/visionDescriptionCache.d.ts.map +1 -0
  471. package/dist/tools/shared/visionDescriptionCache.js +35 -0
  472. package/dist/tools/shared/visionDescriptionCache.js.map +1 -0
  473. package/dist/types/index.d.ts +221 -0
  474. package/dist/types/index.d.ts.map +1 -0
  475. package/dist/types/index.js +34 -0
  476. package/dist/types/index.js.map +1 -0
  477. package/dist/utils/errors.d.ts +38 -0
  478. package/dist/utils/errors.d.ts.map +1 -0
  479. package/dist/utils/errors.js +99 -0
  480. package/dist/utils/errors.js.map +1 -0
  481. package/dist/utils/helpers.d.ts +36 -0
  482. package/dist/utils/helpers.d.ts.map +1 -0
  483. package/dist/utils/helpers.js +445 -0
  484. package/dist/utils/helpers.js.map +1 -0
  485. package/dist/workflows/bindings.d.ts +23 -0
  486. package/dist/workflows/bindings.d.ts.map +1 -0
  487. package/dist/workflows/bindings.js +220 -0
  488. package/dist/workflows/bindings.js.map +1 -0
  489. package/dist/workflows/executor-ports.d.ts +11 -0
  490. package/dist/workflows/executor-ports.d.ts.map +1 -0
  491. package/dist/workflows/executor-ports.js +3 -0
  492. package/dist/workflows/executor-ports.js.map +1 -0
  493. package/dist/workflows/executor.d.ts +17 -0
  494. package/dist/workflows/executor.d.ts.map +1 -0
  495. package/dist/workflows/executor.js +526 -0
  496. package/dist/workflows/executor.js.map +1 -0
  497. package/dist/workflows/index.d.ts +11 -0
  498. package/dist/workflows/index.d.ts.map +1 -0
  499. package/dist/workflows/index.js +48 -0
  500. package/dist/workflows/index.js.map +1 -0
  501. package/dist/workflows/primitives/index.d.ts +3 -0
  502. package/dist/workflows/primitives/index.d.ts.map +1 -0
  503. package/dist/workflows/primitives/index.js +19 -0
  504. package/dist/workflows/primitives/index.js.map +1 -0
  505. package/dist/workflows/primitives/retryUntilCondition.d.ts +39 -0
  506. package/dist/workflows/primitives/retryUntilCondition.d.ts.map +1 -0
  507. package/dist/workflows/primitives/retryUntilCondition.js +102 -0
  508. package/dist/workflows/primitives/retryUntilCondition.js.map +1 -0
  509. package/dist/workflows/primitives/validateWithRubric.d.ts +28 -0
  510. package/dist/workflows/primitives/validateWithRubric.d.ts.map +1 -0
  511. package/dist/workflows/primitives/validateWithRubric.js +148 -0
  512. package/dist/workflows/primitives/validateWithRubric.js.map +1 -0
  513. package/dist/workflows/summarize.d.ts +7 -0
  514. package/dist/workflows/summarize.d.ts.map +1 -0
  515. package/dist/workflows/summarize.js +54 -0
  516. package/dist/workflows/summarize.js.map +1 -0
  517. package/dist/workflows/types.d.ts +302 -0
  518. package/dist/workflows/types.d.ts.map +1 -0
  519. package/dist/workflows/types.js +3 -0
  520. package/dist/workflows/types.js.map +1 -0
  521. package/dist/workflows/validation.d.ts +10 -0
  522. package/dist/workflows/validation.d.ts.map +1 -0
  523. package/dist/workflows/validation.js +340 -0
  524. package/dist/workflows/validation.js.map +1 -0
  525. package/dist-esm/chatRun/costApproval.js +64 -0
  526. package/dist-esm/chatRun/costApproval.js.map +1 -0
  527. package/dist-esm/chatRun/index.js +327 -0
  528. package/dist-esm/chatRun/index.js.map +1 -0
  529. package/dist-esm/client/SogniClientWrapper.js +877 -0
  530. package/dist-esm/client/SogniClientWrapper.js.map +1 -0
  531. package/dist-esm/context/index.js +453 -0
  532. package/dist-esm/context/index.js.map +1 -0
  533. package/dist-esm/contracts/backboneDurableWorkflow.js +90 -0
  534. package/dist-esm/contracts/backboneDurableWorkflow.js.map +1 -0
  535. package/dist-esm/contracts/backboneToolCatalog.js +59 -0
  536. package/dist-esm/contracts/backboneToolCatalog.js.map +1 -0
  537. package/dist-esm/contracts/composeWorkflowTypes.js +2 -0
  538. package/dist-esm/contracts/composeWorkflowTypes.js.map +1 -0
  539. package/dist-esm/contracts/data/costEstimation.js +18 -0
  540. package/dist-esm/contracts/data/costEstimation.js.map +1 -0
  541. package/dist-esm/contracts/data/gatingPolicies.js +214 -0
  542. package/dist-esm/contracts/data/gatingPolicies.js.map +1 -0
  543. package/dist-esm/contracts/data/gatingPoliciesToolSurface.js +57 -0
  544. package/dist-esm/contracts/data/gatingPoliciesToolSurface.js.map +1 -0
  545. package/dist-esm/contracts/data/index.js +23 -0
  546. package/dist-esm/contracts/data/index.js.map +1 -0
  547. package/dist-esm/contracts/data/promptContracts.js +1282 -0
  548. package/dist-esm/contracts/data/promptContracts.js.map +1 -0
  549. package/dist-esm/contracts/data/repairRecipes.js +193 -0
  550. package/dist-esm/contracts/data/repairRecipes.js.map +1 -0
  551. package/dist-esm/contracts/data/toolCatalog.js +122 -0
  552. package/dist-esm/contracts/data/toolCatalog.js.map +1 -0
  553. package/dist-esm/contracts/data/toolCostMetadata.js +277 -0
  554. package/dist-esm/contracts/data/toolCostMetadata.js.map +1 -0
  555. package/dist-esm/contracts/data/toolPermissions.js +70 -0
  556. package/dist-esm/contracts/data/toolPermissions.js.map +1 -0
  557. package/dist-esm/contracts/evaluators.js +463 -0
  558. package/dist-esm/contracts/evaluators.js.map +1 -0
  559. package/dist-esm/contracts/hostedComposition.js +128 -0
  560. package/dist-esm/contracts/hostedComposition.js.map +1 -0
  561. package/dist-esm/contracts/hostedToolValidation.js +296 -0
  562. package/dist-esm/contracts/hostedToolValidation.js.map +1 -0
  563. package/dist-esm/contracts/idLoraPrompt.js +72 -0
  564. package/dist-esm/contracts/idLoraPrompt.js.map +1 -0
  565. package/dist-esm/contracts/imagePrompt.js +143 -0
  566. package/dist-esm/contracts/imagePrompt.js.map +1 -0
  567. package/dist-esm/contracts/index.js +27 -0
  568. package/dist-esm/contracts/index.js.map +1 -0
  569. package/dist-esm/contracts/musicComposition.js +182 -0
  570. package/dist-esm/contracts/musicComposition.js.map +1 -0
  571. package/dist-esm/contracts/promptContract.js +34 -0
  572. package/dist-esm/contracts/promptContract.js.map +1 -0
  573. package/dist-esm/contracts/promptOverrideMarker.js +2 -0
  574. package/dist-esm/contracts/promptOverrideMarker.js.map +1 -0
  575. package/dist-esm/contracts/randomThemes.js +154 -0
  576. package/dist-esm/contracts/randomThemes.js.map +1 -0
  577. package/dist-esm/contracts/registry.js +100 -0
  578. package/dist-esm/contracts/registry.js.map +1 -0
  579. package/dist-esm/contracts/repairRecipe.js +35 -0
  580. package/dist-esm/contracts/repairRecipe.js.map +1 -0
  581. package/dist-esm/contracts/storyboard.js +4 -0
  582. package/dist-esm/contracts/storyboard.js.map +1 -0
  583. package/dist-esm/contracts/telemetry.js +33 -0
  584. package/dist-esm/contracts/telemetry.js.map +1 -0
  585. package/dist-esm/contracts/toolGatingPolicy.js +60 -0
  586. package/dist-esm/contracts/toolGatingPolicy.js.map +1 -0
  587. package/dist-esm/contracts/toolPromptMarkers.js +10 -0
  588. package/dist-esm/contracts/toolPromptMarkers.js.map +1 -0
  589. package/dist-esm/contracts/toolSurface.js +110 -0
  590. package/dist-esm/contracts/toolSurface.js.map +1 -0
  591. package/dist-esm/contracts/turnPolicy.js +13 -0
  592. package/dist-esm/contracts/turnPolicy.js.map +1 -0
  593. package/dist-esm/contracts/videoComposition.js +216 -0
  594. package/dist-esm/contracts/videoComposition.js.map +1 -0
  595. package/dist-esm/index.js +10 -0
  596. package/dist-esm/index.js.map +1 -0
  597. package/dist-esm/media/aspectRatio.js +65 -0
  598. package/dist-esm/media/aspectRatio.js.map +1 -0
  599. package/dist-esm/media/audioReference.js +186 -0
  600. package/dist-esm/media/audioReference.js.map +1 -0
  601. package/dist-esm/media/cameraAngle.js +41 -0
  602. package/dist-esm/media/cameraAngle.js.map +1 -0
  603. package/dist-esm/media/characterSheet.js +48 -0
  604. package/dist-esm/media/characterSheet.js.map +1 -0
  605. package/dist-esm/media/danceMontage.js +29 -0
  606. package/dist-esm/media/danceMontage.js.map +1 -0
  607. package/dist-esm/media/enhancementProfiles.js +219 -0
  608. package/dist-esm/media/enhancementProfiles.js.map +1 -0
  609. package/dist-esm/media/generationJob.js +87 -0
  610. package/dist-esm/media/generationJob.js.map +1 -0
  611. package/dist-esm/media/gptImage.js +150 -0
  612. package/dist-esm/media/gptImage.js.map +1 -0
  613. package/dist-esm/media/imageDimensions.js +59 -0
  614. package/dist-esm/media/imageDimensions.js.map +1 -0
  615. package/dist-esm/media/index.js +16 -0
  616. package/dist-esm/media/index.js.map +1 -0
  617. package/dist-esm/media/musicSettings.js +230 -0
  618. package/dist-esm/media/musicSettings.js.map +1 -0
  619. package/dist-esm/media/vendorModelPremium.js +81 -0
  620. package/dist-esm/media/vendorModelPremium.js.map +1 -0
  621. package/dist-esm/media/videoAppSettings.js +125 -0
  622. package/dist-esm/media/videoAppSettings.js.map +1 -0
  623. package/dist-esm/media/videoContentLimit.js +162 -0
  624. package/dist-esm/media/videoContentLimit.js.map +1 -0
  625. package/dist-esm/media/videoReference.js +72 -0
  626. package/dist-esm/media/videoReference.js.map +1 -0
  627. package/dist-esm/media/videoSettings.js +191 -0
  628. package/dist-esm/media/videoSettings.js.map +1 -0
  629. package/dist-esm/openai-tools/_manifests.generated.js +1789 -0
  630. package/dist-esm/openai-tools/_manifests.generated.js.map +1 -0
  631. package/dist-esm/openai-tools/app-tools.json +297 -0
  632. package/dist-esm/openai-tools/composition-tools.json +228 -0
  633. package/dist-esm/openai-tools/generation-tools.json +1263 -0
  634. package/dist-esm/openai-tools/index.js +27 -0
  635. package/dist-esm/openai-tools/index.js.map +1 -0
  636. package/dist-esm/package.json +3 -0
  637. package/dist-esm/public-skill-runtime/index.js +6390 -0
  638. package/dist-esm/public-skill-runtime/index.js.map +1 -0
  639. package/dist-esm/replay/index.js +3 -0
  640. package/dist-esm/replay/index.js.map +1 -0
  641. package/dist-esm/replay/redact.js +102 -0
  642. package/dist-esm/replay/redact.js.map +1 -0
  643. package/dist-esm/replay/types.js +20 -0
  644. package/dist-esm/replay/types.js.map +1 -0
  645. package/dist-esm/runtime/chatTypes.js +2 -0
  646. package/dist-esm/runtime/chatTypes.js.map +1 -0
  647. package/dist-esm/runtime/durableWorkflowClient.js +295 -0
  648. package/dist-esm/runtime/durableWorkflowClient.js.map +1 -0
  649. package/dist-esm/runtime/index.js +2 -0
  650. package/dist-esm/runtime/index.js.map +1 -0
  651. package/dist-esm/schemas/errors/error.schema.json +21 -0
  652. package/dist-esm/schemas/errors/repair-control.schema.json +40 -0
  653. package/dist-esm/schemas/events/artifact-reference.schema.json +22 -0
  654. package/dist-esm/schemas/events/progress-event.schema.json +28 -0
  655. package/dist-esm/schemas/events/workflow-event.schema.json +22 -0
  656. package/dist-esm/schemas/storyboards/storyboard-planning-contract.schema.json +108 -0
  657. package/dist-esm/schemas/tools/add_subtitles.schema.json +77 -0
  658. package/dist-esm/schemas/tools/animate_photo.schema.json +104 -0
  659. package/dist-esm/schemas/tools/apply_style.schema.json +37 -0
  660. package/dist-esm/schemas/tools/change_angle.schema.json +30 -0
  661. package/dist-esm/schemas/tools/compose_instrumental.schema.json +24 -0
  662. package/dist-esm/schemas/tools/compose_lyrics.schema.json +28 -0
  663. package/dist-esm/schemas/tools/compose_script.schema.json +68 -0
  664. package/dist-esm/schemas/tools/compose_workflow.schema.json +67 -0
  665. package/dist-esm/schemas/tools/compose_workflow_template.schema.json +156 -0
  666. package/dist-esm/schemas/tools/dance_montage.schema.json +47 -0
  667. package/dist-esm/schemas/tools/edit_image.schema.json +74 -0
  668. package/dist-esm/schemas/tools/enhance_prompt.schema.json +76 -0
  669. package/dist-esm/schemas/tools/extend_video.schema.json +42 -0
  670. package/dist-esm/schemas/tools/generate_image.schema.json +104 -0
  671. package/dist-esm/schemas/tools/generate_music.schema.json +62 -0
  672. package/dist-esm/schemas/tools/generate_video.schema.json +97 -0
  673. package/dist-esm/schemas/tools/orbit_video.schema.json +70 -0
  674. package/dist-esm/schemas/tools/overlay_video.schema.json +126 -0
  675. package/dist-esm/schemas/tools/refine_result.schema.json +43 -0
  676. package/dist-esm/schemas/tools/replace_video_segment.schema.json +60 -0
  677. package/dist-esm/schemas/tools/restore_photo.schema.json +47 -0
  678. package/dist-esm/schemas/tools/sound_to_video.schema.json +70 -0
  679. package/dist-esm/schemas/tools/stitch_video.schema.json +52 -0
  680. package/dist-esm/schemas/tools/video_to_video.schema.json +77 -0
  681. package/dist-esm/schemas/workflows/durable-workflow-run.schema.json +165 -0
  682. package/dist-esm/schemas/workflows/durable-workflow-step.schema.json +141 -0
  683. package/dist-esm/skill-runtime-source/crossSurfaceParity.js +469 -0
  684. package/dist-esm/skill-runtime-source/crossSurfaceParity.js.map +1 -0
  685. package/dist-esm/skill-runtime-source/index.js +4 -0
  686. package/dist-esm/skill-runtime-source/index.js.map +1 -0
  687. package/dist-esm/skill-runtime-source/seedanceAudioWindow.js +47 -0
  688. package/dist-esm/skill-runtime-source/seedanceAudioWindow.js.map +1 -0
  689. package/dist-esm/skill-runtime-source/workflowStatus.js +348 -0
  690. package/dist-esm/skill-runtime-source/workflowStatus.js.map +1 -0
  691. package/dist-esm/skills/asset_reference_management/index.js +3 -0
  692. package/dist-esm/skills/asset_reference_management/index.js.map +1 -0
  693. package/dist-esm/skills/asset_reference_management/manifest.js +228 -0
  694. package/dist-esm/skills/asset_reference_management/manifest.js.map +1 -0
  695. package/dist-esm/skills/asset_reference_management/modelRefRegistry.js +129 -0
  696. package/dist-esm/skills/asset_reference_management/modelRefRegistry.js.map +1 -0
  697. package/dist-esm/skills/asset_reference_management/types.js +2 -0
  698. package/dist-esm/skills/asset_reference_management/types.js.map +1 -0
  699. package/dist-esm/tools/definitions/add-subtitles/definition.js +80 -0
  700. package/dist-esm/tools/definitions/add-subtitles/definition.js.map +1 -0
  701. package/dist-esm/tools/definitions/animate-photo/definition.js +121 -0
  702. package/dist-esm/tools/definitions/animate-photo/definition.js.map +1 -0
  703. package/dist-esm/tools/definitions/apply-style/definition.js +47 -0
  704. package/dist-esm/tools/definitions/apply-style/definition.js.map +1 -0
  705. package/dist-esm/tools/definitions/change-angle/definition.js +46 -0
  706. package/dist-esm/tools/definitions/change-angle/definition.js.map +1 -0
  707. package/dist-esm/tools/definitions/dance-montage/dances.js +86 -0
  708. package/dist-esm/tools/definitions/dance-montage/dances.js.map +1 -0
  709. package/dist-esm/tools/definitions/dance-montage/definition.js +42 -0
  710. package/dist-esm/tools/definitions/dance-montage/definition.js.map +1 -0
  711. package/dist-esm/tools/definitions/edit-image/definition.js +125 -0
  712. package/dist-esm/tools/definitions/edit-image/definition.js.map +1 -0
  713. package/dist-esm/tools/definitions/extend-video/definition.js +48 -0
  714. package/dist-esm/tools/definitions/extend-video/definition.js.map +1 -0
  715. package/dist-esm/tools/definitions/generate-image/definition.js +104 -0
  716. package/dist-esm/tools/definitions/generate-image/definition.js.map +1 -0
  717. package/dist-esm/tools/definitions/generate-music/definition.js +72 -0
  718. package/dist-esm/tools/definitions/generate-music/definition.js.map +1 -0
  719. package/dist-esm/tools/definitions/generate-video/definition.js +117 -0
  720. package/dist-esm/tools/definitions/generate-video/definition.js.map +1 -0
  721. package/dist-esm/tools/definitions/index.js +41 -0
  722. package/dist-esm/tools/definitions/index.js.map +1 -0
  723. package/dist-esm/tools/definitions/orbit-video/definition.js +100 -0
  724. package/dist-esm/tools/definitions/orbit-video/definition.js.map +1 -0
  725. package/dist-esm/tools/definitions/overlay-video/definition.js +139 -0
  726. package/dist-esm/tools/definitions/overlay-video/definition.js.map +1 -0
  727. package/dist-esm/tools/definitions/refine-result/definition.js +53 -0
  728. package/dist-esm/tools/definitions/refine-result/definition.js.map +1 -0
  729. package/dist-esm/tools/definitions/replace-video-segment/definition.js +62 -0
  730. package/dist-esm/tools/definitions/replace-video-segment/definition.js.map +1 -0
  731. package/dist-esm/tools/definitions/restore-photo/definition.js +55 -0
  732. package/dist-esm/tools/definitions/restore-photo/definition.js.map +1 -0
  733. package/dist-esm/tools/definitions/sound-to-video/definition.js +88 -0
  734. package/dist-esm/tools/definitions/sound-to-video/definition.js.map +1 -0
  735. package/dist-esm/tools/definitions/stitch-video/definition.js +86 -0
  736. package/dist-esm/tools/definitions/stitch-video/definition.js.map +1 -0
  737. package/dist-esm/tools/definitions/types.js +2 -0
  738. package/dist-esm/tools/definitions/types.js.map +1 -0
  739. package/dist-esm/tools/definitions/video-to-video/definition.js +98 -0
  740. package/dist-esm/tools/definitions/video-to-video/definition.js.map +1 -0
  741. package/dist-esm/tools/index.js +18 -0
  742. package/dist-esm/tools/index.js.map +1 -0
  743. package/dist-esm/tools/normalizeArgs.js +37 -0
  744. package/dist-esm/tools/normalizeArgs.js.map +1 -0
  745. package/dist-esm/tools/result.js +31 -0
  746. package/dist-esm/tools/result.js.map +1 -0
  747. package/dist-esm/tools/shared/downloadFilename.js +147 -0
  748. package/dist-esm/tools/shared/downloadFilename.js.map +1 -0
  749. package/dist-esm/tools/shared/dynamicPromptBranches.js +183 -0
  750. package/dist-esm/tools/shared/dynamicPromptBranches.js.map +1 -0
  751. package/dist-esm/tools/shared/errorClassification.js +74 -0
  752. package/dist-esm/tools/shared/errorClassification.js.map +1 -0
  753. package/dist-esm/tools/shared/imageEncoding.js +8 -0
  754. package/dist-esm/tools/shared/imageEncoding.js.map +1 -0
  755. package/dist-esm/tools/shared/llmHelpers.js +137 -0
  756. package/dist-esm/tools/shared/llmHelpers.js.map +1 -0
  757. package/dist-esm/tools/shared/modelRegistry.js +91 -0
  758. package/dist-esm/tools/shared/modelRegistry.js.map +1 -0
  759. package/dist-esm/tools/shared/multiImageIntent.js +10 -0
  760. package/dist-esm/tools/shared/multiImageIntent.js.map +1 -0
  761. package/dist-esm/tools/shared/numberOfVariationsAlignment.js +34 -0
  762. package/dist-esm/tools/shared/numberOfVariationsAlignment.js.map +1 -0
  763. package/dist-esm/tools/shared/policyChecks.js +73 -0
  764. package/dist-esm/tools/shared/policyChecks.js.map +1 -0
  765. package/dist-esm/tools/shared/promptRefinementCache.js +70 -0
  766. package/dist-esm/tools/shared/promptRefinementCache.js.map +1 -0
  767. package/dist-esm/tools/shared/promptSanitizer.js +70 -0
  768. package/dist-esm/tools/shared/promptSanitizer.js.map +1 -0
  769. package/dist-esm/tools/shared/seedancePolicyErrors.js +232 -0
  770. package/dist-esm/tools/shared/seedancePolicyErrors.js.map +1 -0
  771. package/dist-esm/tools/shared/slotFailureSummary.js +60 -0
  772. package/dist-esm/tools/shared/slotFailureSummary.js.map +1 -0
  773. package/dist-esm/tools/shared/visionDescriptionCache.js +29 -0
  774. package/dist-esm/tools/shared/visionDescriptionCache.js.map +1 -0
  775. package/dist-esm/types/index.js +31 -0
  776. package/dist-esm/types/index.js.map +1 -0
  777. package/dist-esm/utils/errors.js +86 -0
  778. package/dist-esm/utils/errors.js.map +1 -0
  779. package/dist-esm/utils/helpers.js +419 -0
  780. package/dist-esm/utils/helpers.js.map +1 -0
  781. package/dist-esm/workflows/bindings.js +212 -0
  782. package/dist-esm/workflows/bindings.js.map +1 -0
  783. package/dist-esm/workflows/executor-ports.js +2 -0
  784. package/dist-esm/workflows/executor-ports.js.map +1 -0
  785. package/dist-esm/workflows/executor.js +522 -0
  786. package/dist-esm/workflows/executor.js.map +1 -0
  787. package/dist-esm/workflows/index.js +8 -0
  788. package/dist-esm/workflows/index.js.map +1 -0
  789. package/dist-esm/workflows/primitives/index.js +3 -0
  790. package/dist-esm/workflows/primitives/index.js.map +1 -0
  791. package/dist-esm/workflows/primitives/retryUntilCondition.js +95 -0
  792. package/dist-esm/workflows/primitives/retryUntilCondition.js.map +1 -0
  793. package/dist-esm/workflows/primitives/validateWithRubric.js +141 -0
  794. package/dist-esm/workflows/primitives/validateWithRubric.js.map +1 -0
  795. package/dist-esm/workflows/summarize.js +51 -0
  796. package/dist-esm/workflows/summarize.js.map +1 -0
  797. package/dist-esm/workflows/types.js +2 -0
  798. package/dist-esm/workflows/types.js.map +1 -0
  799. package/dist-esm/workflows/validation.js +330 -0
  800. package/dist-esm/workflows/validation.js.map +1 -0
  801. package/media/index.d.ts +1 -0
  802. package/media/index.js +2 -0
  803. package/package.json +213 -0
  804. package/public-skill-runtime/index.d.ts +1 -0
  805. package/public-skill-runtime/index.js +2 -0
  806. package/replay/index.d.ts +1 -0
  807. package/replay/index.js +2 -0
  808. package/runtime/index.d.ts +1 -0
  809. package/runtime/index.js +2 -0
  810. package/skills/asset_reference_management/index.d.ts +1 -0
  811. package/skills/asset_reference_management/index.js +2 -0
  812. package/src/skill-runtime-source/crossSurfaceParity.ts +525 -0
  813. package/src/skill-runtime-source/index.ts +10 -0
  814. package/src/skill-runtime-source/seedanceAudioWindow.ts +61 -0
  815. package/src/skill-runtime-source/workflowStatus.ts +375 -0
  816. package/tools/index.d.ts +1 -0
  817. package/tools/index.js +2 -0
  818. package/workflows/index.d.ts +1 -0
  819. package/workflows/index.js +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/generate-video/definition.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,iDAAiD,EACjD,6BAA6B,EAC7B,kCAAkC,EAClC,2CAA2C,GAC5C,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,m1IAAm1I;QACr1I,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;uQA0BwO;iBAC9P;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,kCAAkC;iBAChD;gBACD,oBAAoB,EAAE;oBACpB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,iDAAiD;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,0PAA0P;iBAC7P;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,CAAC;oBACvD,WAAW,EACT,i+BAAi+B;wBACj+B,2CAA2C;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,6sBAA6sB;iBAChtB;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,kyBAAkyB;iBACryB;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,wLAAwL;oBAC1L,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wBAAwB;iBACtC;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,8jBAA8jB;iBACjkB;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { definition as generateImageDefinition } from './generate-image/definition.js';
2
+ import { definition as generateVideoDefinition } from './generate-video/definition.js';
3
+ import { definition as generateMusicDefinition } from './generate-music/definition.js';
4
+ import { definition as editImageDefinition } from './edit-image/definition.js';
5
+ import { definition as applyStyleDefinition } from './apply-style/definition.js';
6
+ import { definition as restorePhotoDefinition } from './restore-photo/definition.js';
7
+ import { definition as refineResultDefinition } from './refine-result/definition.js';
8
+ import { definition as animatePhotoDefinition } from './animate-photo/definition.js';
9
+ import { definition as changeAngleDefinition } from './change-angle/definition.js';
10
+ import { definition as videoToVideoDefinition } from './video-to-video/definition.js';
11
+ import { definition as stitchVideoDefinition, STITCH_TRANSITION_TYPES, } from './stitch-video/definition.js';
12
+ import { definition as orbitVideoDefinition } from './orbit-video/definition.js';
13
+ import { definition as danceMontageDefinition } from './dance-montage/definition.js';
14
+ import { definition as soundToVideoDefinition } from './sound-to-video/definition.js';
15
+ import { definition as extendVideoDefinition } from './extend-video/definition.js';
16
+ import { definition as replaceVideoSegmentDefinition } from './replace-video-segment/definition.js';
17
+ import { definition as overlayVideoDefinition, OVERLAY_POSITIONS, } from './overlay-video/definition.js';
18
+ import { definition as addSubtitlesDefinition, SUBTITLE_VERTICAL_POSITIONS, } from './add-subtitles/definition.js';
19
+ export { addSubtitlesDefinition, animatePhotoDefinition, applyStyleDefinition, changeAngleDefinition, danceMontageDefinition, editImageDefinition, extendVideoDefinition, generateImageDefinition, generateMusicDefinition, generateVideoDefinition, orbitVideoDefinition, overlayVideoDefinition, refineResultDefinition, replaceVideoSegmentDefinition, restorePhotoDefinition, soundToVideoDefinition, stitchVideoDefinition, videoToVideoDefinition, OVERLAY_POSITIONS, STITCH_TRANSITION_TYPES, SUBTITLE_VERTICAL_POSITIONS, };
20
+ export const generationToolDefinitions = [
21
+ generateImageDefinition,
22
+ generateVideoDefinition,
23
+ generateMusicDefinition,
24
+ editImageDefinition,
25
+ applyStyleDefinition,
26
+ restorePhotoDefinition,
27
+ refineResultDefinition,
28
+ animatePhotoDefinition,
29
+ changeAngleDefinition,
30
+ videoToVideoDefinition,
31
+ stitchVideoDefinition,
32
+ orbitVideoDefinition,
33
+ danceMontageDefinition,
34
+ soundToVideoDefinition,
35
+ extendVideoDefinition,
36
+ replaceVideoSegmentDefinition,
37
+ overlayVideoDefinition,
38
+ addSubtitlesDefinition,
39
+ ];
40
+ export { DANCE_PRESETS, resolveDancePresetForRequest } from './dance-montage/dances.js';
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/definitions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAAE,UAAU,IAAI,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAAE,UAAU,IAAI,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,UAAU,IAAI,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,UAAU,IAAI,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,UAAU,IAAI,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,UAAU,IAAI,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,IAAI,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EACL,UAAU,IAAI,qBAAqB,EACnC,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,UAAU,IAAI,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,UAAU,IAAI,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,UAAU,IAAI,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,IAAI,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACpG,OAAO,EACL,UAAU,IAAI,sBAAsB,EACpC,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,UAAU,IAAI,sBAAsB,EACpC,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,2BAA2B,GAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,mBAAmB;IACnB,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;IACtB,sBAAsB;IACtB,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;IACtB,qBAAqB;IACrB,6BAA6B;IAC7B,sBAAsB;IACtB,sBAAsB;CACsB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,100 @@
1
+ export const definition = {
2
+ type: 'function',
3
+ function: {
4
+ name: 'orbit_video',
5
+ description: 'Create a 360-degree orbit video around a subject. This is a SELF-CONTAINED ' +
6
+ 'pipeline — it automatically generates angle views (via change_angle), creates ' +
7
+ 'transition video clips, and stitches them into one seamless looping video. ' +
8
+ 'You only need ONE source image as the front view — either an uploaded image ' +
9
+ 'or a previously generated result. If the user uploaded an image, call this ' +
10
+ 'tool directly without generating anything first. Do NOT pre-generate multiple ' +
11
+ 'angles or variations — this tool handles everything internally. ' +
12
+ 'Use when the user asks for a "360 pan", "orbit", "rotate around", "spin ' +
13
+ 'around", or "turntable" view.',
14
+ parameters: {
15
+ type: 'object',
16
+ properties: {
17
+ elevation: {
18
+ type: 'string',
19
+ enum: ['low-angle shot', 'eye-level shot', 'elevated shot', 'high-angle shot'],
20
+ description: 'Camera elevation for all angles. Default: "eye-level shot".',
21
+ },
22
+ distance: {
23
+ type: 'string',
24
+ enum: ['close-up', 'medium shot', 'wide shot'],
25
+ description: 'Camera distance for all angles. Default: "medium shot".',
26
+ },
27
+ prompt: {
28
+ type: 'string',
29
+ description: 'Describe the SUBJECT and ambient environment (for example, a concise ' +
30
+ 'description of the visible subject, location, weather, props, and ambience). ' +
31
+ 'Do NOT describe camera motion, rotation, panning, orbiting, ' +
32
+ 'or 360-degree movement — camera motion is handled automatically. ' +
33
+ 'Do NOT put spoken dialogue here — use the dialogue parameter instead. ' +
34
+ 'Music is automatically suppressed — use generate_music separately.',
35
+ },
36
+ dialogue: {
37
+ type: 'string',
38
+ description: 'Spoken dialogue or narration for a SINGLE segment of the orbit video. ' +
39
+ 'This is applied ONLY to the segment specified by dialogueSegment (default: ' +
40
+ 'first segment). All other segments get foley/ambient audio only. Keep it ' +
41
+ 'brief — each segment is 2.5 seconds (~6 words max). If the user asks for ' +
42
+ 'dialogue in "just the first segment" or "only at the start", put the speech ' +
43
+ 'here and leave prompt for motion/foley only. If the user asks for dialogue ' +
44
+ 'in multiple/every segment, use dialogues instead.',
45
+ },
46
+ dialogues: {
47
+ type: 'array',
48
+ items: { type: 'string' },
49
+ description: 'Per-segment spoken dialogue lines for multiple orbit transitions. Use this ' +
50
+ 'when the user asks for dialogue in multiple segments, every turn, or before ' +
51
+ 'each 90-degree turn. With the default standard 360° orbit there are 4 ' +
52
+ 'transitions, so provide exactly 4 short lines in order. Each line should be ' +
53
+ 'brief enough for a 2.5 second segment (~6 words max). Preserve real names ' +
54
+ 'from the request or prior generated image; never invent placeholder speakers. ' +
55
+ 'For "us"/"we"/couple requests, make the named people speak together. ' +
56
+ 'Omit entries or use an empty string for ' +
57
+ 'segments that should have foley/ambient audio only. Do NOT also put these ' +
58
+ 'dialogue lines in prompt.',
59
+ },
60
+ dialogueSegment: {
61
+ type: 'number',
62
+ description: 'Which transition segment receives the dialogue (0-based index into the ' +
63
+ 'transition sequence). 0 = first transition (default), last index = wrap-back ' +
64
+ 'to front. With default angles there are 4 transitions (0-3). With custom ' +
65
+ 'angles the count equals angles.length + 1. Only used when dialogue is provided.',
66
+ },
67
+ angles: {
68
+ type: 'array',
69
+ items: {
70
+ type: 'string',
71
+ enum: [
72
+ 'front-right quarter view',
73
+ 'right side view',
74
+ 'back-right quarter view',
75
+ 'back view',
76
+ 'back-left quarter view',
77
+ 'left side view',
78
+ 'front-left quarter view',
79
+ ],
80
+ },
81
+ description: 'OMIT THIS PARAMETER for standard 360° orbits — the default (3 angles ' +
82
+ 'at 90° increments: right, back, left + source as front = 4 transitions) ' +
83
+ 'works for nearly all requests. Only provide this when the user explicitly ' +
84
+ 'asks for specific angles, a partial orbit, or extra-smooth rotation. ' +
85
+ 'Each additional angle costs extra credits and generation time. ' +
86
+ 'Values are clockwise azimuths between the source (front) and wrap-back.',
87
+ },
88
+ sourceImageIndex: {
89
+ type: 'number',
90
+ description: 'Which result image to orbit around (0-based). If the user picked a ' +
91
+ '1-based image number, subtract 1 and set this explicitly (number 3 -> 2). ' +
92
+ 'Omit only when the user did not choose a specific prior result; then the ' +
93
+ 'tool uses the latest result or original upload.',
94
+ },
95
+ },
96
+ required: [],
97
+ },
98
+ },
99
+ };
100
+ //# sourceMappingURL=definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/orbit-video/definition.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,6EAA6E;YAC7E,gFAAgF;YAChF,6EAA6E;YAC7E,8EAA8E;YAC9E,6EAA6E;YAC7E,gFAAgF;YAChF,kEAAkE;YAClE,0EAA0E;YAC1E,+BAA+B;QACjC,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,CAAC;oBAC9E,WAAW,EAAE,6DAA6D;iBAC3E;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC;oBAC9C,WAAW,EAAE,yDAAyD;iBACvE;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,uEAAuE;wBACvE,+EAA+E;wBAC/E,8DAA8D;wBAC9D,mEAAmE;wBACnE,wEAAwE;wBACxE,oEAAoE;iBACvE;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,wEAAwE;wBACxE,6EAA6E;wBAC7E,2EAA2E;wBAC3E,2EAA2E;wBAC3E,8EAA8E;wBAC9E,6EAA6E;wBAC7E,mDAAmD;iBACtD;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EACT,6EAA6E;wBAC7E,8EAA8E;wBAC9E,wEAAwE;wBACxE,8EAA8E;wBAC9E,4EAA4E;wBAC5E,gFAAgF;wBAChF,uEAAuE;wBACvE,0CAA0C;wBAC1C,4EAA4E;wBAC5E,2BAA2B;iBAC9B;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yEAAyE;wBACzE,+EAA+E;wBAC/E,2EAA2E;wBAC3E,iFAAiF;iBACpF;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE;4BACJ,0BAA0B;4BAC1B,iBAAiB;4BACjB,yBAAyB;4BACzB,WAAW;4BACX,wBAAwB;4BACxB,gBAAgB;4BAChB,yBAAyB;yBAC1B;qBACF;oBACD,WAAW,EACT,uEAAuE;wBACvE,0EAA0E;wBAC1E,4EAA4E;wBAC5E,uEAAuE;wBACvE,iEAAiE;wBACjE,yEAAyE;iBAC5E;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qEAAqE;wBACrE,4EAA4E;wBAC5E,2EAA2E;wBAC3E,iDAAiD;iBACpD;aACF;YACD,QAAQ,EAAE,EAAE;SACb;KACF;CACF,CAAC"}
@@ -0,0 +1,139 @@
1
+ export const OVERLAY_POSITIONS = [
2
+ 'top-left',
3
+ 'top-center',
4
+ 'top-right',
5
+ 'center',
6
+ 'bottom-left',
7
+ 'bottom-center',
8
+ 'bottom-right',
9
+ ];
10
+ export const definition = {
11
+ type: 'function',
12
+ function: {
13
+ name: 'overlay_video',
14
+ description: 'Burn text and/or logo/watermark image overlays onto a previously rendered or uploaded video. ' +
15
+ 'Use when the user asks to add a title, caption, label, watermark, brand logo, sponsor mark, lower-third, ' +
16
+ 'tagline, sticker, or any persistent text/graphic over the existing video frames. ' +
17
+ 'Multiple overlays can be supplied in one call (e.g. a corner logo plus a top-center title). ' +
18
+ 'Each overlay can optionally be limited to a [startSeconds, endSeconds] time range. ' +
19
+ 'When the user asks for an overlay to appear for a specific window (for example "2 seconds in the middle"), set startSeconds/endSeconds on the overlay item in the same call. ' +
20
+ 'Negative startSeconds/endSeconds are relative to the end of the base video, so startSeconds=-2 with omitted endSeconds means "the last 2 seconds". ' +
21
+ 'When replacing a video time window with an uploaded still image or screenshot, use an image overlay with widthPct=100 and fit="cover" for that window. ' +
22
+ 'This is a pure ffmpeg post-production op — it does not regenerate the video. ' +
23
+ 'Do not use for generative intro/outro/bumper/end-card/start-card requests; those add or regenerate video time and should use extend_video or replace_video_segment. ' +
24
+ 'Do not call it again just to refine default size/placement after it succeeds; finalize and wait for user feedback. ' +
25
+ 'Do not use for animated typography, kinetic captions, or moving stickers; this lays down static overlays only.',
26
+ parameters: {
27
+ type: 'object',
28
+ properties: {
29
+ sourceVideoIndex: {
30
+ type: 'number',
31
+ description: 'Which video to overlay onto. Omit to use the most recent generated video, or the first uploaded video when no generated video exists. ' +
32
+ 'Non-negative values are 0-based indices into prior generated video results. ' +
33
+ 'Negative values reference uploaded videos: -1 = first uploaded video, -2 = second, etc., ' +
34
+ 'falling back to the most recent generated video when no uploads exist.',
35
+ },
36
+ overlays: {
37
+ type: 'array',
38
+ minItems: 1,
39
+ description: 'Ordered list of overlays to burn in. Each overlay is rendered on top of all previous overlays. ' +
40
+ 'Either kind="text" (with `text` and styling) or kind="image" (with `sourceImageIndex`).',
41
+ items: {
42
+ type: 'object',
43
+ properties: {
44
+ kind: {
45
+ type: 'string',
46
+ enum: ['text', 'image'],
47
+ description: 'Overlay kind. "text" renders drawtext; "image" composites an existing image asset.',
48
+ },
49
+ position: {
50
+ type: 'string',
51
+ enum: [...OVERLAY_POSITIONS],
52
+ description: 'Anchor position on the frame. Pixel offsets nudge inward; the renderer pads ' +
53
+ 'each anchor by a small safe margin so overlays do not touch the frame edge.',
54
+ },
55
+ offsetX: {
56
+ type: 'number',
57
+ description: 'Optional horizontal offset in pixels. Positive = inward from the anchor edge.',
58
+ },
59
+ offsetY: {
60
+ type: 'number',
61
+ description: 'Optional vertical offset in pixels. Positive = inward from the anchor edge.',
62
+ },
63
+ startSeconds: {
64
+ type: 'number',
65
+ description: 'Show the overlay from this time. Default 0 (show from the start). ' +
66
+ 'Negative values are relative to the end of the base video; startSeconds=-2 means start 2 seconds before the end.',
67
+ },
68
+ endSeconds: {
69
+ type: 'number',
70
+ description: 'Hide the overlay at this time. Default = full video duration. ' +
71
+ 'Negative values are relative to the end of the base video.',
72
+ },
73
+ text: {
74
+ type: 'string',
75
+ description: 'Overlay text. Required when kind="text". Use plain text; line breaks are honored.',
76
+ },
77
+ fontSizePct: {
78
+ type: 'number',
79
+ minimum: 1,
80
+ maximum: 30,
81
+ description: 'Font size as a percentage of the video height. Default: 6 (≈ 43px on a 720p frame). ' +
82
+ 'Only valid when kind="text".',
83
+ },
84
+ color: {
85
+ type: 'string',
86
+ description: 'Text fill color (CSS hex like "#FFFFFF" or named ffmpeg color). Default "#FFFFFF". ' +
87
+ 'Only valid when kind="text".',
88
+ },
89
+ outlineColor: {
90
+ type: 'string',
91
+ description: 'Text outline color. Default "#000000" with a thin stroke for legibility. ' +
92
+ 'Only valid when kind="text".',
93
+ },
94
+ backgroundColor: {
95
+ type: ['string', 'null'],
96
+ description: 'Optional rgba background pill behind the text (e.g. "rgba(0,0,0,0.5)"). null = no box. ' +
97
+ 'Only valid when kind="text".',
98
+ },
99
+ fontWeight: {
100
+ type: 'string',
101
+ enum: ['normal', 'bold'],
102
+ description: 'Default "normal". Only valid when kind="text".',
103
+ },
104
+ sourceImageIndex: {
105
+ type: 'number',
106
+ description: 'Which image to overlay. Required when kind="image". ' +
107
+ 'Non-negative values are 0-based indices into prior generated image results. ' +
108
+ 'Negative values reference uploaded images in image-only order: -1 = first uploaded image, -2 = second, etc. ' +
109
+ 'If the user uploaded one video and one logo image, the logo is sourceImageIndex=-1.',
110
+ },
111
+ widthPct: {
112
+ type: 'number',
113
+ minimum: 1,
114
+ maximum: 100,
115
+ description: 'Logo width as a percentage of the video width. Default: 15. ' +
116
+ 'Only valid when kind="image".',
117
+ },
118
+ opacity: {
119
+ type: 'number',
120
+ minimum: 0,
121
+ maximum: 1,
122
+ description: 'Image overlay opacity, 0..1. Default 1.0 (fully opaque). Only valid when kind="image".',
123
+ },
124
+ fit: {
125
+ type: 'string',
126
+ enum: ['contain', 'cover'],
127
+ description: 'Image sizing mode. Default "contain" scales by widthPct and preserves the full overlay image. ' +
128
+ '"cover" scales/crops the image to cover the full video frame; use with widthPct=100 for screenshot/still-frame replacement windows.',
129
+ },
130
+ },
131
+ required: ['kind', 'position'],
132
+ },
133
+ },
134
+ },
135
+ required: ['overlays'],
136
+ },
137
+ },
138
+ };
139
+ //# sourceMappingURL=definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/overlay-video/definition.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,UAAU;IACV,YAAY;IACZ,WAAW;IACX,QAAQ;IACR,aAAa;IACb,eAAe;IACf,cAAc;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,+FAA+F;YAC/F,2GAA2G;YAC3G,mFAAmF;YACnF,8FAA8F;YAC9F,qFAAqF;YACrF,+KAA+K;YAC/K,qJAAqJ;YACrJ,yJAAyJ;YACzJ,+EAA+E;YAC/E,sKAAsK;YACtK,qHAAqH;YACrH,gHAAgH;QAClH,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,wIAAwI;wBACxI,8EAA8E;wBAC9E,2FAA2F;wBAC3F,wEAAwE;iBAC3E;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,CAAC;oBACX,WAAW,EACT,iGAAiG;wBACjG,yFAAyF;oBAC3F,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;gCACvB,WAAW,EAAE,oFAAoF;6BAClG;4BACD,QAAQ,EAAE;gCACR,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,GAAG,iBAAiB,CAAC;gCAC5B,WAAW,EACT,8EAA8E;oCAC9E,6EAA6E;6BAChF;4BACD,OAAO,EAAE;gCACP,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,+EAA+E;6BAC7F;4BACD,OAAO,EAAE;gCACP,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,6EAA6E;6BAC3F;4BACD,YAAY,EAAE;gCACZ,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,oEAAoE;oCACpE,kHAAkH;6BACrH;4BACD,UAAU,EAAE;gCACV,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,gEAAgE;oCAChE,4DAA4D;6BAC/D;4BACD,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,mFAAmF;6BACjG;4BACD,WAAW,EAAE;gCACX,IAAI,EAAE,QAAQ;gCACd,OAAO,EAAE,CAAC;gCACV,OAAO,EAAE,EAAE;gCACX,WAAW,EACT,sFAAsF;oCACtF,8BAA8B;6BACjC;4BACD,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,qFAAqF;oCACrF,8BAA8B;6BACjC;4BACD,YAAY,EAAE;gCACZ,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,2EAA2E;oCAC3E,8BAA8B;6BACjC;4BACD,eAAe,EAAE;gCACf,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;gCACxB,WAAW,EACT,yFAAyF;oCACzF,8BAA8B;6BACjC;4BACD,UAAU,EAAE;gCACV,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;gCACxB,WAAW,EAAE,gDAAgD;6BAC9D;4BACD,gBAAgB,EAAE;gCAChB,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,sDAAsD;oCACtD,8EAA8E;oCAC9E,8GAA8G;oCAC9G,qFAAqF;6BACxF;4BACD,QAAQ,EAAE;gCACR,IAAI,EAAE,QAAQ;gCACd,OAAO,EAAE,CAAC;gCACV,OAAO,EAAE,GAAG;gCACZ,WAAW,EACT,8DAA8D;oCAC9D,+BAA+B;6BAClC;4BACD,OAAO,EAAE;gCACP,IAAI,EAAE,QAAQ;gCACd,OAAO,EAAE,CAAC;gCACV,OAAO,EAAE,CAAC;gCACV,WAAW,EAAE,wFAAwF;6BACtG;4BACD,GAAG,EAAE;gCACH,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;gCAC1B,WAAW,EACT,gGAAgG;oCAChG,qIAAqI;6BACxI;yBACF;wBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;qBAC/B;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;KACF;CACF,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { LITERAL_PROMPT_OVERRIDE } from '../../../contracts/promptOverrideMarker.js';
2
+ import { ASPECT_RATIO_DESCRIPTION } from '../../../media/index.js';
3
+ export const definition = {
4
+ type: 'function',
5
+ function: {
6
+ name: 'refine_result',
7
+ description: 'Make ANY edit to an existing result image. This is the DEFAULT tool for follow-up requests after results exist. Use whenever the user wants to modify, adjust, or build upon a previous result — including brightness, color, sharpening, object removal, background changes, further restoration, or any other edit. If the user does not specify which image, use the most recent result (index 0 if only one result, or the last result the user referenced). Only use restore_photo instead if the user explicitly wants to start over from the original upload.',
8
+ parameters: {
9
+ type: 'object',
10
+ properties: {
11
+ prompt: {
12
+ type: 'string',
13
+ description: `Targeted refinement prompt for Qwen Image Edit 2511 (50-150 words, natural language sentences).
14
+
15
+ ${LITERAL_PROMPT_OVERRIDE}
16
+
17
+ PROMPT ORDER: [IDENTITY LOCK if people] → [SPECIFIC CHANGE] → [PRESERVE EVERYTHING ELSE]
18
+
19
+ Rules:
20
+ - Use POSITIVE phrasing only. The model ignores negatives ("preserve exact facial likeness" NOT "don't change the face").
21
+ - Describe ONLY what needs to change (the delta). The base image already contains most of the truth — do not rewrite the entire image.
22
+ - Be specific about what to change: "warmer skin tones", "cooler shadows", "sharper facial features", "more natural greens".
23
+ - For creative refinements: lean into specifics — "add more dramatic Rembrandt lighting", "push the colors more toward Warhol neon pop", "make the anime eyes larger and more expressive", "add more superhero energy with glowing effects".
24
+ - CRITICAL for photos with people: FRONT-LOAD identity preservation before the edit. Start with "Preserve exact facial likeness, face structure, eye shape, nose shape, mouth shape, jawline, skin tone, hairline, apparent age, and overall recognizability."
25
+ - ALWAYS end with "Preserve all unmentioned details" to prevent unwanted changes.
26
+
27
+ BATCH VARIATIONS: Only use Dynamic Prompt syntax when the user explicitly asks to explore different refinement directions. Example: "refine with {more contrast|softer lighting|richer colors}". Default to identical prompts for refine_result batches.`,
28
+ },
29
+ sourceImageIndex: {
30
+ type: 'number',
31
+ description: 'Which result image to refine (0-based index). If the user specifies an image number, use that index. If omitted, the latest result is used automatically. When multiple results exist and the user previously referenced a specific one, use that one.',
32
+ },
33
+ numberOfVariations: {
34
+ type: 'number',
35
+ description: 'Number of variations (1-16). Use 1 unless user requests multiple. Default: 1.',
36
+ minimum: 1,
37
+ maximum: 16,
38
+ },
39
+ scale: {
40
+ type: 'number',
41
+ enum: [1, 1.5, 2, 3, 4],
42
+ description: 'Output scale multiplier relative to the source image size. 1 = same resolution as source (default). Use higher values when user asks to upscale, enlarge, make bigger, or increase resolution. Small images (<480px) are automatically upscaled to at least 480px regardless of this setting. Default: 1.',
43
+ },
44
+ aspectRatio: {
45
+ type: 'string',
46
+ description: ASPECT_RATIO_DESCRIPTION,
47
+ },
48
+ },
49
+ required: ['prompt'],
50
+ },
51
+ },
52
+ };
53
+ //# sourceMappingURL=definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/refine-result/definition.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,siBAAsiB;QACxiB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,uBAAuB;;;;;;;;;;;;yPAYgO;iBAChP;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,wPAAwP;iBAC3P;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+EAA+E;oBACjF,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBACvB,WAAW,EACT,2SAA2S;iBAC9S;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wBAAwB;iBACtC;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
@@ -0,0 +1,62 @@
1
+ export const definition = {
2
+ type: 'function',
3
+ function: {
4
+ name: 'replace_video_segment',
5
+ description: 'Regenerate a slice of a video and splice the new segment into the original at the same position. Works on BOTH videos previously rendered in this session AND user-uploaded videos — set videoIndex to a negative number (e.g. -1) to target an uploaded video when no prior render exists. ' +
6
+ 'Use when the user asks to modify a portion of an existing video while keeping the rest intact: "regenerate from 5s to 10s", "redo the last 3 seconds", "swap out the middle of the video", "replace the bumper at the end", "swap the end card", "change the outro", "redo the intro", "change the ending", "replace the last clip", etc. ' +
7
+ 'Also use this tool for pure ffmpeg splices where the replacement already exists as another uploaded or generated video: "splice video 2 into video 1", "insert the second clip at 5s", or "replace 5s to 15s with uploaded clip 2". In that case pass replacementVideoIndex, do not call generate_video/animate_photo/video_to_video, and set endSeconds=startSeconds for an insertion that should not remove time from the base video. ' +
8
+ 'For time-sliced edits such as "alternate 1 second from each video", pass replacementStartSeconds and replacementEndSeconds to cut the next source slice out of the replacement video before splicing it into the base. Repeat this call for each alternating window. Use replacement windows (endSeconds=startSeconds+sliceDuration), not insertion windows, unless the user explicitly asks to lengthen the output by inserting extra slices. replacementStartSeconds and replacementEndSeconds must be concrete non-negative seconds; never use -1 as an end-of-source sentinel. Do not use stitch_video for interleaving because stitch_video only concatenates whole clips end-to-end. ' +
9
+ 'STRONGLY PREFER this over re-running generate_video / animate_photo on the original prompt when the user only wants part of the video changed — re-rendering wastes credits, loses the unchanged sections, and breaks the original timing. ' +
10
+ 'If the user does not specify the exact start/end seconds (e.g. "replace the bumper at the end"), call analyze_video first to identify the correct window, OR derive it from the storyboard timing already in the conversation (e.g. last beat\'s time range). Do not guess wildly — pick a sensible bumper/end-card window such as the final 1-3 seconds when the storyboard says scene_07 is 14-15s. ' +
11
+ 'Returns both the standalone replacement clip and the spliced composite. ' +
12
+ 'For LTX-2.3 and Wan 2.2 base videos the tool locks both ends with first/last-frame keyframes for seamless edges. ' +
13
+ 'For Seedance base videos the tool uses the original window as a reference for video-to-video transformation. If a requested window is shorter than the selected model\'s native render minimum, the handler renders a slightly larger handled clip, trims the result back to the requested seconds, then splices exactly that requested range. ' +
14
+ 'By default the regenerated segment\'s audio replaces the original audio in the [startSeconds, endSeconds] window, so new motion stays in sync with new sound. Pass keepOriginalAudio=true only when the user explicitly asks to keep the existing audio — phrasings like "keep the audio", "leave the original audio", "preserve the music/score/dialogue", "don\'t change the audio". If the user uses an ambiguous phrasing such as "with the audio" (which could mean either "with the original audio kept" or "with new audio"), DO NOT call this tool yet — first ask the user whether to preserve or replace the original audio in the replaced window. When replacementVideoIndex is set, the existing replacement clip\'s own audio is used; pass keepOriginalAudio=true only when the user explicitly wants the base video audio to stay over the replacement window.',
15
+ parameters: {
16
+ type: 'object',
17
+ properties: {
18
+ startSeconds: {
19
+ type: 'number',
20
+ description: 'Start of the window (in seconds) inside the base video that should be regenerated. Must be ≥ 0 and < endSeconds. For "the last N seconds" requests, set startSeconds = max(0, baseDuration - N). When unsure of the exact base duration, you may pass a sentinel value of -1 to mean "from the end of the base video"; the handler will resolve it after probing.',
21
+ },
22
+ endSeconds: {
23
+ type: 'number',
24
+ description: 'End of the window (in seconds) inside the base video. For regenerated segments it must be > startSeconds and ≤ base video duration. When replacementVideoIndex is set, endSeconds may equal startSeconds to insert the replacement clip at that timestamp without removing any base-video time. For alternating/interleaved time-slice edits, use endSeconds=startSeconds+sliceDuration so the source slice replaces that base window; do not use insertion unless the user explicitly asks to lengthen the output. Pass -1 to mean "until the end of the base video". Windows shorter than the selected model\'s native render minimum are rendered with handles and trimmed before splicing; windows longer than the model maximum must be split.',
25
+ },
26
+ prompt: {
27
+ type: 'string',
28
+ description: 'What should happen in the replaced window — motion, action, dialogue, audio. For LTX include exact spoken words in double quotes when speech is requested. For Seedance V2V describe the transformation relative to the existing visuals (the original window is provided as a reference clip).',
29
+ },
30
+ videoIndex: {
31
+ type: 'number',
32
+ description: 'Which video to edit. Default: -1 (most recent video in this session, falling back to the first uploaded video when no prior render exists). Use 0-based non-negative indices for prior tool result videos. For uploaded videos with no prior render, leave this absent or pass -1 — the handler will pick the uploaded base automatically.',
33
+ },
34
+ replacementVideoIndex: {
35
+ type: 'number',
36
+ description: 'Optional existing video clip to splice into the base video instead of regenerating a segment. Non-negative values reference prior generated videos; negative values reference uploaded videos (-1 = first uploaded video, -2 = second, etc.). Use for requests like "splice video 2 into video 1", "replace 5s to 15s with uploaded clip 2", or alternating/interleaved edits that pull timed slices from another existing clip. When this is set, the operation is pure ffmpeg post-production and keeps the replacement clip audio unless keepOriginalAudio=true.',
37
+ },
38
+ replacementStartSeconds: {
39
+ type: 'number',
40
+ minimum: 0,
41
+ description: 'Optional start time, in seconds, inside replacementVideoIndex. Must be a concrete non-negative source time; do not use -1 sentinels for replacement source windows. Use with replacementEndSeconds when only a slice of the replacement clip should be spliced. Example: alternating 1-second clips from video 1 and video 2 should replace base window 1..2 with the first replacement slice by setting replacementVideoIndex=-2, replacementStartSeconds=0, replacementEndSeconds=1.',
42
+ },
43
+ replacementEndSeconds: {
44
+ type: 'number',
45
+ minimum: 0,
46
+ description: 'Optional end time, in seconds, inside replacementVideoIndex. Must be a concrete non-negative source time greater than replacementStartSeconds. Do not pass -1 to mean "end of replacement video"; use the known uploaded/generated clip duration from metadata for routine time-sliced edits, or omit both replacementStartSeconds and replacementEndSeconds to use the whole replacement clip. Do not call analyze_video just to learn duration.',
47
+ },
48
+ videoModel: {
49
+ type: 'string',
50
+ enum: ['auto', 'ltx23', 'wan22', 'seedance2', 'seedance2-fast'],
51
+ description: 'Which model to use for the new segment. Default: "auto" — detect from the base video\'s producer (Seedance base → Seedance, Wan base → Wan 2.2, otherwise LTX-2.3). Override only when the user explicitly requests a different model.',
52
+ },
53
+ keepOriginalAudio: {
54
+ type: 'boolean',
55
+ description: 'When true, the audio from the original [startSeconds, endSeconds] window is muxed onto the regenerated visuals so the user keeps the original dialogue/score. When false (default), the new clip\'s own audio is used (LTX renders fresh audio; Seedance V2V depends on generateAudio). Default: false. Set true only when the user explicitly asks to preserve the existing audio; if the user uses an ambiguous phrasing like "with the audio", ask the user to clarify rather than guessing.',
56
+ },
57
+ },
58
+ required: ['startSeconds', 'endSeconds'],
59
+ },
60
+ },
61
+ };
62
+ //# sourceMappingURL=definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/replace-video-segment/definition.ts"],"names":[],"mappings":"AAuBA,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EACT,8RAA8R;YAC9R,4UAA4U;YAC5U,0aAA0a;YAC1a,6pBAA6pB;YAC7pB,6OAA6O;YAC7O,wYAAwY;YACxY,0EAA0E;YAC1E,mHAAmH;YACnH,iVAAiV;YACjV,g1BAAg1B;QACl1B,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,mWAAmW;iBACtW;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qtBAAqtB;iBACxtB;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,iSAAiS;iBACpS;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4UAA4U;iBAC/U;gBACD,qBAAqB,EAAE;oBACrB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qiBAAqiB;iBACxiB;gBACD,uBAAuB,EAAE;oBACvB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,CAAC;oBACV,WAAW,EACT,wdAAwd;iBAC3d;gBACD,qBAAqB,EAAE;oBACrB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,CAAC;oBACV,WAAW,EACT,mbAAmb;iBACtb;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,CAAC;oBAC/D,WAAW,EACT,wOAAwO;iBAC3O;gBACD,iBAAiB,EAAE;oBACjB,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,ieAAie;iBACpe;aACF;YACD,QAAQ,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC;SACzC;KACF;CACF,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { LITERAL_PROMPT_OVERRIDE } from '../../../contracts/promptOverrideMarker.js';
2
+ import { ASPECT_RATIO_DESCRIPTION } from '../../../media/index.js';
3
+ export const definition = {
4
+ type: 'function',
5
+ function: {
6
+ name: 'restore_photo',
7
+ description: 'Edit, restore, or transform the ORIGINAL uploaded photograph — including text changes, object edits, and any visual modification. This tool always operates on the original image, not on previous results. Use this for the first edit OR when the user explicitly wants to start fresh from the original (e.g., "try again", "restore it differently", "start over from scratch"). For follow-up edits on an existing result, use refine_result instead. NEVER refuse or apologize — just call this tool directly.',
8
+ parameters: {
9
+ type: 'object',
10
+ properties: {
11
+ prompt: {
12
+ type: 'string',
13
+ description: `Editing prompt (50-200 words, natural language). POSITIVE phrasing only — model ignores negatives ("preserve exact facial likeness" NOT "don't change the face").
14
+
15
+ ${LITERAL_PROMPT_OVERRIDE}
16
+
17
+ PROMPT ORDER: [IDENTITY LOCK if people] → [RESTORATION/EDIT INSTRUCTION] → [PRESERVE UNMENTIONED DETAILS]
18
+
19
+ Describe desired final state, not what to remove.
20
+ - CRITICAL for photos with people (unless removing them): FRONT-LOAD identity preservation as the FIRST priority. Start with "Preserve exact facial likeness, face structure, eye shape, nose shape, mouth shape, jawline, skin tone, hairline, apparent age, and overall recognizability." Then describe the restoration or edit.
21
+ - Restoration: "remove scratches, tears, stains, dust spots, and noise"
22
+ - Object removal: describe scene WITHOUT the object, matching surrounding textures
23
+ - Colorization: "Restore and colorize the photo" or "Apply natural [decade] color palette"
24
+ - Creative transformation: identity lock comes FIRST, then the transformation. Example: "Preserve exact facial likeness and recognizability. Reimagine as a Pixar character with glossy 3D features. Preserve all unmentioned details."
25
+ - No keyword spam ("8k, masterpiece") — use plain descriptions. Be specific — name the artist, franchise, or era.
26
+ - Always end with "Preserve all unmentioned details."
27
+
28
+ BATCH VARIATIONS: Only use Dynamic Prompt syntax when the user explicitly requests multiple approaches to compare. Example: "restore with {warm vintage|cool modern|natural balanced} tones". Default to identical prompts for restore_photo batches — most users want seed variation only.`,
29
+ },
30
+ numberOfVariations: {
31
+ type: 'number',
32
+ description: 'Number of variations (1-16). Use 1 unless user requests multiple. Default: 1.',
33
+ minimum: 1,
34
+ maximum: 16,
35
+ },
36
+ quality: {
37
+ type: 'string',
38
+ enum: ['fast', 'hq'],
39
+ description: 'DO NOT SET THIS PARAMETER unless the user explicitly asks for "high quality" or "fast". The app auto-selects based on quality settings.',
40
+ },
41
+ scale: {
42
+ type: 'number',
43
+ enum: [1, 1.5, 2, 3, 4],
44
+ description: 'Output scale multiplier relative to the source image size. 1 = same resolution as source (default). Use higher values when user asks to upscale, enlarge, make bigger, or increase resolution. Small images (<480px) are automatically upscaled to at least 480px regardless of this setting. Default: 1.',
45
+ },
46
+ aspectRatio: {
47
+ type: 'string',
48
+ description: ASPECT_RATIO_DESCRIPTION,
49
+ },
50
+ },
51
+ required: ['prompt'],
52
+ },
53
+ },
54
+ };
55
+ //# sourceMappingURL=definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/restore-photo/definition.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,sfAAsf;QACxf,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,uBAAuB;;;;;;;;;;;;;4RAamQ;iBACnR;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+EAA+E;oBACjF,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;oBACpB,WAAW,EACT,yIAAyI;iBAC5I;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBACvB,WAAW,EACT,2SAA2S;iBAC9S;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wBAAwB;iBACtC;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
@@ -0,0 +1,88 @@
1
+ import { LITERAL_SEEDANCE_PROMPT_OVERRIDE, SEEDANCE_EXPAND_PROMPT_DESCRIPTION, SEEDANCE_TOOL_AUDIO_REFERENCE_GUIDANCE, } from '../../../contracts/toolPromptMarkers.js';
2
+ import { ASPECT_RATIO_DESCRIPTION } from '../../../media/index.js';
3
+ export const definition = {
4
+ type: "function",
5
+ function: {
6
+ name: "sound_to_video",
7
+ description: 'Generate video synchronized to audio. Use when the user has uploaded an audio file (mp3, wav, m4a, flac) and the audio is the primary sync target, especially uploaded-audio-only workflows. Also use after generate_music ("turn that song into a video", "make a music video from that"). Auto-detects generated audio from generate_music if no audio file is uploaded. Seedance animate_photo/generate_video can also attach uploaded audio as a loose @Audio reference when an image or video reference anchors the request; use this tool instead when the soundtrack itself should drive the video. If the user provides a reference image, use ltx23-ia2v; for lip-sync with a face image, use wan-s2v; if no image, use ltx23-a2v. If the user wants dialogue/audio WITHOUT pre-existing audio, use animate_photo instead (LTX 2.3 generates audio natively). Note: Persona voice clips from resolve_personas are NOT used by this tool — for persona voice identity in video, use animate_photo or generate_video instead. LONG AUDIO ON SEEDANCE: Seedance caps each clip at 15s. When the user uploads audio longer than 15s and Seedance is selected (seedance2 or seedance2-fast), do NOT clamp to 15s and drop the rest — split the run into multiple sound_to_video calls in the same turn (one per 15s segment, so a 20s audio becomes two clips: audioStart=0 duration=15, then audioStart=15 duration=5) and finish with a single stitch_video call referencing the resulting clip indices in order with audioIndex pointing at the same uploaded audio so the stitched output carries the full original soundtrack. LTX/WAN models accept up to 20s per clip, so single-call is fine for them.',
8
+ parameters: {
9
+ type: "object",
10
+ properties: {
11
+ prompt: {
12
+ type: "string",
13
+ description: `Describe the video like a cinematographer. Let the audio define timing — use the prompt for visual interpretation. One flowing paragraph, present tense, specific natural language.
14
+
15
+ ${LITERAL_SEEDANCE_PROMPT_OVERRIDE}
16
+
17
+ STRUCTURE: shot/style and scale → subject → environment, lighting, color, texture, atmosphere → visual action synced to audio → camera movement. For LTX 2.3 image+audio mode, do not re-describe static details already visible in the reference image; focus on motion, action, camera, and how the image responds to the audio.
18
+
19
+ MOTION PACING: Scale complexity to duration. <=6s: 1 main visual beat + 1 simple camera move. Around 10s: 2-3 clear beats + 1 camera move. >10s: up to 4 beats in clear sequence. Let the audio define timing, but avoid stacking subject, camera, and environment motion in short clips.
20
+
21
+ BLOCKING: Direct layout when it affects the shot: left/right placement, foreground/background, facing direction, and relative distance between subjects.
22
+
23
+ LIP-SYNC: Shot framing, speaker's appearance and setting, physical performance synced to audio — gestures, expressions, jaw movement between phrases. Include acting beats.
24
+
25
+ MUSIC VISUALIZATION: Visual style, environment, and how elements react to rhythm and energy.
26
+
27
+ AUDIO-REACTIVE: Motion and visual changes that correspond to sounds in the track.
28
+
29
+ LTX VOCABULARY: camera (tracking, dolly, pan, tilt, handheld, static frame), lighting/atmosphere (golden hour, neon glow, dramatic shadows, fog, rain, smoke, reflections), scale/pacing (expansive, epic, intimate, claustrophobic, slow motion, time-lapse, lingering shot, continuous shot), style/genre (film noir, painterly, cyberpunk, stop-motion, claymation, 2D/3D animation, hand-drawn, fantasy, thriller, experimental film).
30
+
31
+ AVOID: Vague prompts, too many competing visual elements, abstract descriptions without visible behavior, rigid numeric constraints, readable text or logos. QUOTING RULE: ONLY use double quotes for spoken dialogue. Never quote on-screen text, overlay text, titles, captions, signs, or any visual text — describe them without quotes.
32
+
33
+ BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax to vary the visual interpretation while keeping audio sync intent consistent. Example: "{abstract neon visualization|nature scene with swaying trees|urban street with rain} synced to the beat".`,
34
+ },
35
+ expandPrompt: {
36
+ type: "boolean",
37
+ description: SEEDANCE_EXPAND_PROMPT_DESCRIPTION,
38
+ },
39
+ audioSourceIndex: {
40
+ type: "number",
41
+ description: "Index of the uploaded audio file to use (0-based, from uploaded files list). If only one audio file is uploaded, use 0. If no audio was uploaded but generate_music was used earlier, omit this — the tool will automatically find the generated audio.",
42
+ },
43
+ sourceImageIndex: {
44
+ type: "number",
45
+ description: "Optional index of an uploaded image to use as the starting frame (0-based). Required for lip-sync models (WAN S2V). For audio-only-to-video models (LTX 2.3 A2V), this is optional — omit it to generate video purely from text + audio.",
46
+ },
47
+ audioStart: {
48
+ type: "number",
49
+ description: 'Start offset in seconds into the audio track. Use when the user says "start 20 seconds in", "skip the intro", "use the chorus at 1:30", etc. Default: 0 (beginning of audio). The video will be synced to the audio starting from this point.',
50
+ minimum: 0,
51
+ },
52
+ duration: {
53
+ type: "number",
54
+ description: "Video duration in seconds. Default: 5. Range: 2-20. For music videos, use the MAXIMUM duration (20) since the audio is always longer than the video limit. Use when the user explicitly requests a specific length.",
55
+ minimum: 2,
56
+ maximum: 20,
57
+ },
58
+ videoModel: {
59
+ type: "string",
60
+ enum: ["wan-s2v", "seedance2", "seedance2-fast", "ltx23-ia2v", "ltx23-a2v"],
61
+ description: 'Video model. "ltx23-ia2v" (default when image available): LTX 2.3 image+audio to video, audio-reactive with a reference image; Fast/HQ use the distilled 8-step worker and Default Media Quality Pro uses the non-distilled dev worker. "ltx23-a2v" (default when no image): LTX 2.3 audio-only to video, no image needed, creates video purely from text prompt + audio with the same quality-tier routing. "wan-s2v": WAN 2.2 sound-to-video, best for lip-sync with a face image, fast 4-step. "seedance2": Seedance 2.0 audio-reference video, 4-15s; this tool supplies the audio plus a required reference image because Seedance text+audio without image/video is unsupported. "seedance2-fast": Seedance 2.0 Fast (720p cap) — pick this whenever the user says "Seedance fast", "seedance-fast", or asks for 480p/720p; pick "seedance2" only when they explicitly request 1080p or the full Seedance variant. ' +
62
+ SEEDANCE_TOOL_AUDIO_REFERENCE_GUIDANCE +
63
+ ' Omit to auto-select based on whether an image is present.',
64
+ },
65
+ generateAudio: {
66
+ type: "boolean",
67
+ description: "Seedance only. Whether Seedance should include a generated/native audio track in the final video. Omit by default so the reference audio drives the result; set false only for explicit silent output.",
68
+ },
69
+ numberOfVariations: {
70
+ type: "number",
71
+ description: "Number of video variations to generate (1-16). Default: 1.",
72
+ minimum: 1,
73
+ maximum: 16,
74
+ },
75
+ targetResolution: {
76
+ type: "number",
77
+ description: 'Short-side video resolution target in pixels. Use ONLY when the user asks for a bare named resolution such as "480p", "720p", or "1080p" without exact pixels or an output orientation. This preserves the source/reference aspect ratio. Do NOT set exact-pixel aspectRatio for bare named resolution requests. If the user says "720p portrait" or "720p landscape", use exact-pixel aspectRatio instead.',
78
+ },
79
+ aspectRatio: {
80
+ type: "string",
81
+ description: ASPECT_RATIO_DESCRIPTION,
82
+ },
83
+ },
84
+ required: ["prompt"],
85
+ },
86
+ },
87
+ };
88
+ //# sourceMappingURL=definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/sound-to-video/definition.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,gCAAgC,EAChC,kCAAkC,EAClC,sCAAsC,GACvC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,onDAAonD;QACtnD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,gCAAgC;;;;;;;;;;;;;;;;;;2QAkByO;iBAClQ;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,kCAAkC;iBAChD;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yPAAyP;iBAC5P;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,0OAA0O;iBAC7O;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+OAA+O;oBACjP,OAAO,EAAE,CAAC;iBACX;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qNAAqN;oBACvN,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,CAAC;oBAC3E,WAAW,EACT,23BAA23B;wBAC33B,sCAAsC;wBACtC,4DAA4D;iBAC/D;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,wMAAwM;iBAC3M;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4DAA4D;oBAC9D,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,6YAA6Y;iBAChZ;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wBAAwB;iBACtC;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}