vidspotai-shared 1.0.53 → 1.0.55

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 (230) hide show
  1. package/lib/globals/aiModels/providers/alibaba.d.ts +4 -0
  2. package/lib/globals/aiModels/providers/alibaba.d.ts.map +1 -0
  3. package/lib/globals/aiModels/providers/alibaba.js +183 -0
  4. package/lib/globals/aiModels/providers/elevenlabs.d.ts +13 -0
  5. package/lib/globals/aiModels/providers/elevenlabs.d.ts.map +1 -0
  6. package/lib/globals/aiModels/providers/elevenlabs.js +25 -0
  7. package/lib/globals/aiModels/providers/pixverseTemplates.d.ts +36 -0
  8. package/lib/globals/aiModels/providers/pixverseTemplates.d.ts.map +1 -0
  9. package/lib/globals/aiModels/providers/pixverseTemplates.js +42 -0
  10. package/lib/globals/aiModels/tierHelpers.d.ts +27 -0
  11. package/lib/globals/aiModels/tierHelpers.d.ts.map +1 -0
  12. package/lib/globals/aiModels/tierHelpers.js +73 -0
  13. package/lib/globals/ttsModels/providers/minimax.d.ts +8 -0
  14. package/lib/globals/ttsModels/providers/minimax.d.ts.map +1 -0
  15. package/lib/globals/ttsModels/providers/minimax.js +18 -0
  16. package/lib/globals/ttsModels/providers/openai.d.ts +8 -0
  17. package/lib/globals/ttsModels/providers/openai.d.ts.map +1 -0
  18. package/lib/globals/ttsModels/providers/openai.js +18 -0
  19. package/lib/globals/types.d.ts +2 -1
  20. package/lib/globals/types.d.ts.map +1 -1
  21. package/lib/globals/types.js +1 -0
  22. package/lib/models/agent.model.d.ts +117 -0
  23. package/lib/models/agent.model.d.ts.map +1 -0
  24. package/lib/models/agent.model.js +13 -0
  25. package/lib/models/analytics.model.d.ts +4 -0
  26. package/lib/models/analytics.model.d.ts.map +1 -1
  27. package/lib/models/cachedAsset.model.d.ts +18 -0
  28. package/lib/models/cachedAsset.model.d.ts.map +1 -0
  29. package/lib/models/cachedAsset.model.js +2 -0
  30. package/lib/models/cachedRawAsset.model.d.ts +20 -0
  31. package/lib/models/cachedRawAsset.model.d.ts.map +1 -0
  32. package/lib/models/cachedRawAsset.model.js +2 -0
  33. package/lib/models/video.model.d.ts +1 -0
  34. package/lib/models/video.model.d.ts.map +1 -1
  35. package/lib/schemas/agentPersona.schema.d.ts +10 -0
  36. package/lib/schemas/agentPersona.schema.d.ts.map +1 -0
  37. package/lib/schemas/agentPersona.schema.js +11 -0
  38. package/lib/schemas/brandKit.schema.d.ts +101 -0
  39. package/lib/schemas/brandKit.schema.d.ts.map +1 -0
  40. package/lib/schemas/brandKit.schema.js +46 -0
  41. package/lib/schemas/brief.schema.d.ts +216 -0
  42. package/lib/schemas/brief.schema.d.ts.map +1 -0
  43. package/lib/schemas/brief.schema.js +118 -0
  44. package/lib/schemas/index.d.ts +6 -0
  45. package/lib/schemas/index.d.ts.map +1 -0
  46. package/lib/schemas/index.js +21 -0
  47. package/lib/schemas/project.schema.d.ts +1005 -0
  48. package/lib/schemas/project.schema.d.ts.map +1 -0
  49. package/lib/schemas/project.schema.js +238 -0
  50. package/lib/schemas/videoPlan.schema.d.ts +145 -0
  51. package/lib/schemas/videoPlan.schema.d.ts.map +1 -0
  52. package/lib/schemas/videoPlan.schema.js +109 -0
  53. package/lib/services/agent/beatSnap.d.ts +10 -0
  54. package/lib/services/agent/beatSnap.d.ts.map +1 -0
  55. package/lib/services/agent/beatSnap.js +128 -0
  56. package/lib/services/agent/costPreflight.d.ts +22 -0
  57. package/lib/services/agent/costPreflight.d.ts.map +1 -0
  58. package/lib/services/agent/costPreflight.js +75 -0
  59. package/lib/services/agent/critic.d.ts +103 -0
  60. package/lib/services/agent/critic.d.ts.map +1 -0
  61. package/lib/services/agent/critic.js +132 -0
  62. package/lib/services/agent/eval/index.d.ts +5 -0
  63. package/lib/services/agent/eval/index.d.ts.map +1 -0
  64. package/lib/services/agent/eval/index.js +20 -0
  65. package/lib/services/agent/eval/judge.d.ts +14 -0
  66. package/lib/services/agent/eval/judge.d.ts.map +1 -0
  67. package/lib/services/agent/eval/judge.js +95 -0
  68. package/lib/services/agent/eval/recorder.d.ts +17 -0
  69. package/lib/services/agent/eval/recorder.d.ts.map +1 -0
  70. package/lib/services/agent/eval/recorder.js +65 -0
  71. package/lib/services/agent/eval/seedBriefs.d.ts +16 -0
  72. package/lib/services/agent/eval/seedBriefs.d.ts.map +1 -0
  73. package/lib/services/agent/eval/seedBriefs.js +1188 -0
  74. package/lib/services/agent/eval/types.d.ts +196 -0
  75. package/lib/services/agent/eval/types.d.ts.map +1 -0
  76. package/lib/services/agent/eval/types.js +65 -0
  77. package/lib/services/agent/executor.d.ts +50 -0
  78. package/lib/services/agent/executor.d.ts.map +1 -0
  79. package/lib/services/agent/executor.js +188 -0
  80. package/lib/services/agent/index.d.ts +15 -0
  81. package/lib/services/agent/index.d.ts.map +1 -0
  82. package/lib/services/agent/index.js +30 -0
  83. package/lib/services/agent/llmCaller.d.ts +77 -0
  84. package/lib/services/agent/llmCaller.d.ts.map +1 -0
  85. package/lib/services/agent/llmCaller.js +16 -0
  86. package/lib/services/agent/llmCallerGateway.d.ts +39 -0
  87. package/lib/services/agent/llmCallerGateway.d.ts.map +1 -0
  88. package/lib/services/agent/llmCallerGateway.js +246 -0
  89. package/lib/services/agent/llmCallerRegistry.d.ts +4 -0
  90. package/lib/services/agent/llmCallerRegistry.d.ts.map +1 -0
  91. package/lib/services/agent/llmCallerRegistry.js +19 -0
  92. package/lib/services/agent/modelRouter.d.ts +41 -0
  93. package/lib/services/agent/modelRouter.d.ts.map +1 -0
  94. package/lib/services/agent/modelRouter.js +57 -0
  95. package/lib/services/agent/musicSelect.d.ts +23 -0
  96. package/lib/services/agent/musicSelect.d.ts.map +1 -0
  97. package/lib/services/agent/musicSelect.js +65 -0
  98. package/lib/services/agent/personas.d.ts +60 -0
  99. package/lib/services/agent/personas.d.ts.map +1 -0
  100. package/lib/services/agent/personas.js +156 -0
  101. package/lib/services/agent/planner.d.ts +56 -0
  102. package/lib/services/agent/planner.d.ts.map +1 -0
  103. package/lib/services/agent/planner.js +237 -0
  104. package/lib/services/agent/toolRegistry.d.ts +64 -0
  105. package/lib/services/agent/toolRegistry.d.ts.map +1 -0
  106. package/lib/services/agent/toolRegistry.js +78 -0
  107. package/lib/services/agent/tools/analyzeReference.tool.d.ts +36 -0
  108. package/lib/services/agent/tools/analyzeReference.tool.d.ts.map +1 -0
  109. package/lib/services/agent/tools/analyzeReference.tool.js +44 -0
  110. package/lib/services/agent/tools/animateImage.tool.d.ts +23 -0
  111. package/lib/services/agent/tools/animateImage.tool.d.ts.map +1 -0
  112. package/lib/services/agent/tools/animateImage.tool.js +58 -0
  113. package/lib/services/agent/tools/animateImageWithMotionBrush.tool.d.ts +30 -0
  114. package/lib/services/agent/tools/animateImageWithMotionBrush.tool.d.ts.map +1 -0
  115. package/lib/services/agent/tools/animateImageWithMotionBrush.tool.js +90 -0
  116. package/lib/services/agent/tools/composeScene.tool.d.ts +948 -0
  117. package/lib/services/agent/tools/composeScene.tool.d.ts.map +1 -0
  118. package/lib/services/agent/tools/composeScene.tool.js +90 -0
  119. package/lib/services/agent/tools/estimateCost.tool.d.ts +342 -0
  120. package/lib/services/agent/tools/estimateCost.tool.d.ts.map +1 -0
  121. package/lib/services/agent/tools/estimateCost.tool.js +62 -0
  122. package/lib/services/agent/tools/generateAvatarVideo.tool.d.ts +32 -0
  123. package/lib/services/agent/tools/generateAvatarVideo.tool.d.ts.map +1 -0
  124. package/lib/services/agent/tools/generateAvatarVideo.tool.js +112 -0
  125. package/lib/services/agent/tools/generateImage.tool.d.ts +28 -0
  126. package/lib/services/agent/tools/generateImage.tool.d.ts.map +1 -0
  127. package/lib/services/agent/tools/generateImage.tool.js +97 -0
  128. package/lib/services/agent/tools/generateVideo.tool.d.ts +30 -0
  129. package/lib/services/agent/tools/generateVideo.tool.d.ts.map +1 -0
  130. package/lib/services/agent/tools/generateVideo.tool.js +84 -0
  131. package/lib/services/agent/tools/generateVoiceover.tool.d.ts +18 -0
  132. package/lib/services/agent/tools/generateVoiceover.tool.d.ts.map +1 -0
  133. package/lib/services/agent/tools/generateVoiceover.tool.js +72 -0
  134. package/lib/services/agent/tools/index.d.ts +19 -0
  135. package/lib/services/agent/tools/index.d.ts.map +1 -0
  136. package/lib/services/agent/tools/index.js +34 -0
  137. package/lib/services/agent/tools/planVideo.tool.d.ts +191 -0
  138. package/lib/services/agent/tools/planVideo.tool.d.ts.map +1 -0
  139. package/lib/services/agent/tools/planVideo.tool.js +46 -0
  140. package/lib/services/agent/tools/render.tool.d.ts +357 -0
  141. package/lib/services/agent/tools/render.tool.d.ts.map +1 -0
  142. package/lib/services/agent/tools/render.tool.js +48 -0
  143. package/lib/services/agent/tools/searchMusic.tool.d.ts +49 -0
  144. package/lib/services/agent/tools/searchMusic.tool.d.ts.map +1 -0
  145. package/lib/services/agent/tools/searchMusic.tool.js +74 -0
  146. package/lib/services/agent/tools/searchStock.tool.d.ts +37 -0
  147. package/lib/services/agent/tools/searchStock.tool.d.ts.map +1 -0
  148. package/lib/services/agent/tools/searchStock.tool.js +101 -0
  149. package/lib/services/agent/tools/searchUserLibrary.tool.d.ts +59 -0
  150. package/lib/services/agent/tools/searchUserLibrary.tool.d.ts.map +1 -0
  151. package/lib/services/agent/tools/searchUserLibrary.tool.js +58 -0
  152. package/lib/services/aiGen/canonicalAdapters/cameraControl.types.d.ts +31 -0
  153. package/lib/services/aiGen/canonicalAdapters/cameraControl.types.d.ts.map +1 -0
  154. package/lib/services/aiGen/canonicalAdapters/cameraControl.types.js +2 -0
  155. package/lib/services/aiGen/canonicalAdapters/index.d.ts +3 -0
  156. package/lib/services/aiGen/canonicalAdapters/index.d.ts.map +1 -0
  157. package/lib/services/aiGen/canonicalAdapters/index.js +18 -0
  158. package/lib/services/aiGen/canonicalAdapters/multiShot.types.d.ts +23 -0
  159. package/lib/services/aiGen/canonicalAdapters/multiShot.types.d.ts.map +1 -0
  160. package/lib/services/aiGen/canonicalAdapters/multiShot.types.js +12 -0
  161. package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.d.ts +18 -0
  162. package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.d.ts.map +1 -0
  163. package/lib/services/aiGen/providers/elevenlabs/elevenlabs.service.js +100 -0
  164. package/lib/services/aiGen/providers/fal/falImage.service.d.ts +9 -0
  165. package/lib/services/aiGen/providers/fal/falImage.service.d.ts.map +1 -0
  166. package/lib/services/aiGen/providers/fal/falImage.service.js +102 -0
  167. package/lib/services/aiGen/providers/fal/index.d.ts +2 -0
  168. package/lib/services/aiGen/providers/fal/index.d.ts.map +1 -0
  169. package/lib/services/aiGen/providers/fal/index.js +17 -0
  170. package/lib/services/aiGen/providers/kling/cameraAdapter.d.ts +4 -0
  171. package/lib/services/aiGen/providers/kling/cameraAdapter.d.ts.map +1 -0
  172. package/lib/services/aiGen/providers/kling/cameraAdapter.js +53 -0
  173. package/lib/services/aiGen/providers/pexels/index.d.ts +2 -0
  174. package/lib/services/aiGen/providers/pexels/index.d.ts.map +1 -0
  175. package/lib/services/aiGen/providers/pexels/index.js +17 -0
  176. package/lib/services/aiGen/providers/pexels/pexels.service.d.ts +11 -0
  177. package/lib/services/aiGen/providers/pexels/pexels.service.d.ts.map +1 -0
  178. package/lib/services/aiGen/providers/pexels/pexels.service.js +118 -0
  179. package/lib/services/aiGen/providers/runway/cameraAdapter.d.ts +3 -0
  180. package/lib/services/aiGen/providers/runway/cameraAdapter.d.ts.map +1 -0
  181. package/lib/services/aiGen/providers/runway/cameraAdapter.js +46 -0
  182. package/lib/services/analytics.service.d.ts +10 -0
  183. package/lib/services/analytics.service.d.ts.map +1 -1
  184. package/lib/services/analytics.service.js +27 -0
  185. package/lib/services/asr/assemblyai.service.d.ts +72 -0
  186. package/lib/services/asr/assemblyai.service.d.ts.map +1 -0
  187. package/lib/services/asr/assemblyai.service.js +89 -0
  188. package/lib/services/asr/index.d.ts +2 -0
  189. package/lib/services/asr/index.d.ts.map +1 -0
  190. package/lib/services/asr/index.js +17 -0
  191. package/lib/services/assetCache.service.d.ts +54 -0
  192. package/lib/services/assetCache.service.d.ts.map +1 -0
  193. package/lib/services/assetCache.service.js +96 -0
  194. package/lib/services/audioAnalysis/index.d.ts +2 -0
  195. package/lib/services/audioAnalysis/index.d.ts.map +1 -0
  196. package/lib/services/audioAnalysis/index.js +17 -0
  197. package/lib/services/audioAnalysis/onsetDetection.service.d.ts +50 -0
  198. package/lib/services/audioAnalysis/onsetDetection.service.d.ts.map +1 -0
  199. package/lib/services/audioAnalysis/onsetDetection.service.js +136 -0
  200. package/lib/services/editor/designToProject.d.ts +60 -0
  201. package/lib/services/editor/designToProject.d.ts.map +1 -0
  202. package/lib/services/editor/designToProject.js +194 -0
  203. package/lib/services/musicGen/index.d.ts +6 -0
  204. package/lib/services/musicGen/index.d.ts.map +1 -0
  205. package/lib/services/musicGen/index.js +26 -0
  206. package/lib/services/musicGen/musicSearchFactory.service.d.ts +14 -0
  207. package/lib/services/musicGen/musicSearchFactory.service.d.ts.map +1 -0
  208. package/lib/services/musicGen/musicSearchFactory.service.js +59 -0
  209. package/lib/services/musicGen/providers/curated.service.d.ts +22 -0
  210. package/lib/services/musicGen/providers/curated.service.d.ts.map +1 -0
  211. package/lib/services/musicGen/providers/curated.service.js +171 -0
  212. package/lib/services/musicGen/providers/jamendo.service.d.ts +8 -0
  213. package/lib/services/musicGen/providers/jamendo.service.d.ts.map +1 -0
  214. package/lib/services/musicGen/providers/jamendo.service.js +93 -0
  215. package/lib/services/musicGen/providers/mubert.service.d.ts +9 -0
  216. package/lib/services/musicGen/providers/mubert.service.d.ts.map +1 -0
  217. package/lib/services/musicGen/providers/mubert.service.js +113 -0
  218. package/lib/services/musicGen/types.d.ts +42 -0
  219. package/lib/services/musicGen/types.d.ts.map +1 -0
  220. package/lib/services/musicGen/types.js +10 -0
  221. package/lib/services/tts/providers/minimax.service.d.ts +14 -0
  222. package/lib/services/tts/providers/minimax.service.d.ts.map +1 -0
  223. package/lib/services/tts/providers/minimax.service.js +78 -0
  224. package/lib/services/tts/providers/openai.service.d.ts +14 -0
  225. package/lib/services/tts/providers/openai.service.d.ts.map +1 -0
  226. package/lib/services/tts/providers/openai.service.js +71 -0
  227. package/lib/utils/helpers.d.ts +1 -0
  228. package/lib/utils/helpers.d.ts.map +1 -1
  229. package/lib/utils/helpers.js +26 -12
  230. package/package.json +1 -1
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.analyzeReferenceTool = void 0;
4
+ exports.setReferenceAnalyzer = setReferenceAnalyzer;
5
+ const zod_1 = require("zod");
6
+ const toolRegistry_1 = require("../toolRegistry");
7
+ let injectedAnalyzer = null;
8
+ function setReferenceAnalyzer(fn) {
9
+ injectedAnalyzer = fn;
10
+ }
11
+ const InputSchema = zod_1.z.object({
12
+ url: zod_1.z
13
+ .string()
14
+ .url()
15
+ .describe("Public TikTok / IG / YouTube URL the user dropped as a 'make it like this'."),
16
+ });
17
+ const OutputSchema = zod_1.z.object({
18
+ durationMs: zod_1.z.number().positive(),
19
+ sceneCount: zod_1.z.number().int().nonnegative(),
20
+ hookMs: zod_1.z.number().nonnegative(),
21
+ cutsPerSecond: zod_1.z.number().nonnegative(),
22
+ bpm: zod_1.z.number().positive().optional(),
23
+ transcriptExcerpt: zod_1.z.string().optional(),
24
+ });
25
+ exports.analyzeReferenceTool = {
26
+ name: "analyze_reference",
27
+ description: [
28
+ "Extract structural features from a reference video URL. Use ONCE at the",
29
+ "start of intent capture if the user provided a 'make it like this' link;",
30
+ "feed the result into the planner so it inherits pacing/hook structure.",
31
+ "Do NOT call this multiple times for the same url — cache the result on",
32
+ "the brief.references[].analyzed field instead.",
33
+ ].join(" "),
34
+ inputSchema: InputSchema,
35
+ outputSchema: OutputSchema,
36
+ idempotent: true,
37
+ handler: async (input) => {
38
+ if (!injectedAnalyzer) {
39
+ throw new Error("analyze_reference: no analyzer wired. Host must call setReferenceAnalyzer() at boot.");
40
+ }
41
+ return injectedAnalyzer(input.url);
42
+ },
43
+ };
44
+ (0, toolRegistry_1.registerTool)(exports.analyzeReferenceTool);
@@ -0,0 +1,23 @@
1
+ import { z } from "zod";
2
+ import { EVideoGenModels } from "../../../globals/aiModels";
3
+ import { ToolDefinition } from "../toolRegistry";
4
+ declare const InputSchema: z.ZodObject<{
5
+ imageUrl: z.ZodString;
6
+ motionHint: z.ZodString;
7
+ modelKey: z.ZodDefault<z.ZodEnum<typeof EVideoGenModels>>;
8
+ durationSec: z.ZodDefault<z.ZodNumber>;
9
+ aspectRatio: z.ZodDefault<z.ZodEnum<{
10
+ "9:16": "9:16";
11
+ "16:9": "16:9";
12
+ "1:1": "1:1";
13
+ "4:5": "4:5";
14
+ }>>;
15
+ }, z.core.$strip>;
16
+ declare const OutputSchema: z.ZodObject<{
17
+ status: z.ZodLiteral<"triggered">;
18
+ taskId: z.ZodString;
19
+ raw: z.ZodUnknown;
20
+ }, z.core.$strip>;
21
+ export declare const animateImageTool: ToolDefinition<typeof InputSchema, typeof OutputSchema>;
22
+ export {};
23
+ //# sourceMappingURL=animateImage.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animateImage.tool.d.ts","sourceRoot":"","sources":["../../../../src/services/agent/tools/animateImage.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAgB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE/D,QAAA,MAAM,WAAW;;;;;;;;;;;iBAgBf,CAAC;AAEH,QAAA,MAAM,YAAY;;;;iBAIhB,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,cAAc,CAC3C,OAAO,WAAW,EAClB,OAAO,YAAY,CAiCpB,CAAC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.animateImageTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const aiModels_1 = require("../../../globals/aiModels");
6
+ const aiGenFactory_service_1 = require("../../aiGen/aiGenFactory.service");
7
+ const toolRegistry_1 = require("../toolRegistry");
8
+ const InputSchema = zod_1.z.object({
9
+ imageUrl: zod_1.z.string().url().describe("Source still — output of generate_image or stock pull."),
10
+ motionHint: zod_1.z
11
+ .string()
12
+ .min(1)
13
+ .describe('Plain-language motion direction, e.g. "slow zoom-in, subtle parallax", "subject turns left then smiles".'),
14
+ modelKey: zod_1.z
15
+ .nativeEnum(aiModels_1.EVideoGenModels)
16
+ .default(aiModels_1.EVideoGenModels.KLING_V2_5_TURBO)
17
+ .describe("I2V-capable model. Defaults to kling-v2.5-turbo (good cost/quality). runway-gen4-turbo for stronger motion control."),
18
+ durationSec: zod_1.z.number().int().min(2).max(10).default(5),
19
+ aspectRatio: zod_1.z.enum(["9:16", "16:9", "1:1", "4:5"]).default("9:16"),
20
+ });
21
+ const OutputSchema = zod_1.z.object({
22
+ status: zod_1.z.literal("triggered"),
23
+ taskId: zod_1.z.string(),
24
+ raw: zod_1.z.unknown(),
25
+ });
26
+ exports.animateImageTool = {
27
+ name: "animate_image",
28
+ description: [
29
+ "Animate a still image into a short clip (T2 image-to-video). Use after",
30
+ "generate_image or search_stock when you need camera/subject motion but a",
31
+ "full T3 text-to-video would be overkill. Always cheaper than generate_video",
32
+ "for the same length because the still locks composition and saves the model",
33
+ "from inventing the frame.",
34
+ "Examples:",
35
+ ' { imageUrl: "https://...", motionHint: "slow dolly-in, parallax foreground" }',
36
+ ' { imageUrl: "https://...", motionHint: "subject turns to camera and nods", modelKey: "runway-gen4-turbo" }',
37
+ ].join(" "),
38
+ inputSchema: InputSchema,
39
+ outputSchema: OutputSchema,
40
+ idempotent: false,
41
+ estimateCost: async (input) => Math.ceil(input.durationSec * 4),
42
+ handler: async (input) => {
43
+ const provider = (0, aiGenFactory_service_1.getAiGenProviderService)(input.modelKey);
44
+ const result = await provider.generateVideo({
45
+ prompt: input.motionHint,
46
+ modelKey: input.modelKey,
47
+ duration: input.durationSec,
48
+ aspectRatio: input.aspectRatio,
49
+ inputImageUrl: input.imageUrl,
50
+ type: "image-to-video",
51
+ });
52
+ const taskId = result.task?.taskId ??
53
+ result.task?.id ??
54
+ "unknown";
55
+ return { status: "triggered", taskId, raw: result.task };
56
+ },
57
+ };
58
+ (0, toolRegistry_1.registerTool)(exports.animateImageTool);
@@ -0,0 +1,30 @@
1
+ import { z } from "zod";
2
+ import { EVideoGenModels } from "../../../globals/aiModels";
3
+ import { ToolDefinition } from "../toolRegistry";
4
+ declare const InputSchema: z.ZodObject<{
5
+ imageUrl: z.ZodString;
6
+ motionHint: z.ZodString;
7
+ staticMaskUrl: z.ZodOptional<z.ZodString>;
8
+ dynamicMasks: z.ZodOptional<z.ZodArray<z.ZodObject<{
9
+ maskUrl: z.ZodString;
10
+ trajectories: z.ZodArray<z.ZodObject<{
11
+ x: z.ZodNumber;
12
+ y: z.ZodNumber;
13
+ }, z.core.$strip>>;
14
+ }, z.core.$strip>>>;
15
+ modelKey: z.ZodDefault<z.ZodEnum<typeof EVideoGenModels>>;
16
+ durationSec: z.ZodDefault<z.ZodNumber>;
17
+ aspectRatio: z.ZodDefault<z.ZodEnum<{
18
+ "9:16": "9:16";
19
+ "16:9": "16:9";
20
+ "1:1": "1:1";
21
+ }>>;
22
+ }, z.core.$strip>;
23
+ declare const OutputSchema: z.ZodObject<{
24
+ status: z.ZodLiteral<"triggered">;
25
+ taskId: z.ZodString;
26
+ raw: z.ZodUnknown;
27
+ }, z.core.$strip>;
28
+ export declare const animateImageWithMotionBrushTool: ToolDefinition<typeof InputSchema, typeof OutputSchema>;
29
+ export {};
30
+ //# sourceMappingURL=animateImageWithMotionBrush.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animateImageWithMotionBrush.tool.d.ts","sourceRoot":"","sources":["../../../../src/services/agent/tools/animateImageWithMotionBrush.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAgB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAoB/D,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;iBAiCf,CAAC;AAEH,QAAA,MAAM,YAAY;;;;iBAIhB,CAAC;AAEH,eAAO,MAAM,+BAA+B,EAAE,cAAc,CAC1D,OAAO,WAAW,EAClB,OAAO,YAAY,CAsCpB,CAAC"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.animateImageWithMotionBrushTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const aiModels_1 = require("../../../globals/aiModels");
6
+ const aiGenFactory_service_1 = require("../../aiGen/aiGenFactory.service");
7
+ const toolRegistry_1 = require("../toolRegistry");
8
+ const TrajectoryPoint = zod_1.z.object({
9
+ x: zod_1.z.number().describe("X in pixels of the input image's native resolution."),
10
+ y: zod_1.z.number().describe("Y in pixels of the input image's native resolution."),
11
+ });
12
+ const DynamicMask = zod_1.z.object({
13
+ maskUrl: zod_1.z
14
+ .string()
15
+ .url()
16
+ .describe("Public PNG URL. Same dimensions as inputImageUrl. Opaque pixels = the region that should follow the trajectory."),
17
+ trajectories: zod_1.z
18
+ .array(TrajectoryPoint)
19
+ .min(2)
20
+ .describe("≥2 polyline points (native pixel coords). Interpreted as motion path over the clip duration."),
21
+ });
22
+ const InputSchema = zod_1.z.object({
23
+ imageUrl: zod_1.z
24
+ .string()
25
+ .url()
26
+ .describe("Source still — the image the masks were painted against."),
27
+ motionHint: zod_1.z
28
+ .string()
29
+ .min(1)
30
+ .describe("Plain-language motion description for the unmasked / dynamic regions, e.g. \"clouds drift right while the person stays still\"."),
31
+ staticMaskUrl: zod_1.z
32
+ .string()
33
+ .url()
34
+ .optional()
35
+ .describe("Optional PNG mask URL. Same dimensions as imageUrl. Opaque = keep frozen."),
36
+ dynamicMasks: zod_1.z
37
+ .array(DynamicMask)
38
+ .max(6)
39
+ .optional()
40
+ .describe("Up to 6 motion-brush regions. Each has a mask PNG + a trajectory polyline."),
41
+ modelKey: zod_1.z
42
+ .nativeEnum(aiModels_1.EVideoGenModels)
43
+ .default(aiModels_1.EVideoGenModels.KLING_V2_5_TURBO)
44
+ .describe("Kling I2V model that supports motion-brush. Defaults to kling-v2.5-turbo."),
45
+ durationSec: zod_1.z.number().int().min(2).max(10).default(5),
46
+ aspectRatio: zod_1.z.enum(["9:16", "16:9", "1:1"]).default("9:16"),
47
+ });
48
+ const OutputSchema = zod_1.z.object({
49
+ status: zod_1.z.literal("triggered"),
50
+ taskId: zod_1.z.string(),
51
+ raw: zod_1.z.unknown(),
52
+ });
53
+ exports.animateImageWithMotionBrushTool = {
54
+ name: "animate_image_with_motion_brush",
55
+ description: [
56
+ "Animate a still image with fine-grained Kling motion-brush control:",
57
+ "freeze regions with `staticMaskUrl`, and/or move regions along a path",
58
+ "with `dynamicMasks[]`. Use this instead of `animate_image` when the user",
59
+ "has already painted masks (e.g. via the motion-brush Studio Tool or the",
60
+ "Generate-new-video Advanced section), or when only some parts of the",
61
+ "image should move.",
62
+ "Coordinate space: trajectory points are in the input image's native",
63
+ "pixel resolution. Mask PNGs must match those native dimensions exactly.",
64
+ "Examples:",
65
+ ' { imageUrl, motionHint: "drift the clouds right", dynamicMasks: [{maskUrl, trajectories:[{x:120,y:80},{x:540,y:80}]}] }',
66
+ ' { imageUrl, motionHint: "person nods", staticMaskUrl: "https://…background.png", dynamicMasks: [{maskUrl, trajectories:[{x:300,y:400},{x:300,y:380}]}] }',
67
+ ].join(" "),
68
+ inputSchema: InputSchema,
69
+ outputSchema: OutputSchema,
70
+ idempotent: false,
71
+ estimateCost: async (input) => Math.ceil(input.durationSec * 5),
72
+ handler: async (input) => {
73
+ const provider = (0, aiGenFactory_service_1.getAiGenProviderService)(input.modelKey);
74
+ const result = await provider.generateVideo({
75
+ prompt: input.motionHint,
76
+ modelKey: input.modelKey,
77
+ duration: input.durationSec,
78
+ aspectRatio: input.aspectRatio,
79
+ inputImageUrl: input.imageUrl,
80
+ type: "image-to-video",
81
+ staticMaskUrl: input.staticMaskUrl,
82
+ dynamicMasks: input.dynamicMasks,
83
+ });
84
+ const taskId = result.task?.taskId ??
85
+ result.task?.id ??
86
+ "unknown";
87
+ return { status: "triggered", taskId, raw: result.task };
88
+ },
89
+ };
90
+ (0, toolRegistry_1.registerTool)(exports.animateImageWithMotionBrushTool);