vidspotai-shared 1.0.100 → 1.0.101

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 (169) hide show
  1. package/lib/globals/aiModels/enums.d.ts +1 -0
  2. package/lib/globals/aiModels/enums.d.ts.map +1 -1
  3. package/lib/globals/aiModels/enums.js +3 -0
  4. package/lib/globals/aiModels/extendCapability.d.ts +26 -0
  5. package/lib/globals/aiModels/extendCapability.d.ts.map +1 -0
  6. package/lib/globals/aiModels/extendCapability.js +42 -0
  7. package/lib/globals/aiModels/index.d.ts +1 -0
  8. package/lib/globals/aiModels/index.d.ts.map +1 -1
  9. package/lib/globals/aiModels/index.js +1 -0
  10. package/lib/globals/aiModels/providers/hostedAvatars.js +10 -10
  11. package/lib/globals/types.d.ts +34 -2
  12. package/lib/globals/types.d.ts.map +1 -1
  13. package/lib/globals/types.js +37 -0
  14. package/lib/models/demoVideoProject.model.d.ts +213 -0
  15. package/lib/models/demoVideoProject.model.d.ts.map +1 -1
  16. package/lib/models/index.d.ts +2 -0
  17. package/lib/models/index.d.ts.map +1 -1
  18. package/lib/models/index.js +2 -0
  19. package/lib/models/mediaUpload.model.d.ts +25 -0
  20. package/lib/models/mediaUpload.model.d.ts.map +1 -1
  21. package/lib/models/productConnection.model.d.ts +57 -0
  22. package/lib/models/productConnection.model.d.ts.map +1 -0
  23. package/lib/models/productConnection.model.js +7 -0
  24. package/lib/models/video.model.d.ts +11 -0
  25. package/lib/models/video.model.d.ts.map +1 -1
  26. package/lib/models/videoQaJob.model.d.ts +61 -0
  27. package/lib/models/videoQaJob.model.d.ts.map +1 -0
  28. package/lib/models/videoQaJob.model.js +16 -0
  29. package/lib/schemas/brandKit.schema.d.ts +3 -1
  30. package/lib/schemas/brandKit.schema.d.ts.map +1 -1
  31. package/lib/schemas/brandKit.schema.js +9 -0
  32. package/lib/schemas/brief.schema.d.ts +5 -4
  33. package/lib/schemas/brief.schema.d.ts.map +1 -1
  34. package/lib/schemas/brief.schema.js +23 -1
  35. package/lib/schemas/demoQuestion.schema.d.ts +24 -4
  36. package/lib/schemas/demoQuestion.schema.d.ts.map +1 -1
  37. package/lib/schemas/demoQuestion.schema.js +8 -2
  38. package/lib/schemas/demoSpec.schema.d.ts +40 -6
  39. package/lib/schemas/demoSpec.schema.d.ts.map +1 -1
  40. package/lib/schemas/demoSpec.schema.js +46 -1
  41. package/lib/schemas/project.schema.d.ts +33 -3
  42. package/lib/schemas/project.schema.d.ts.map +1 -1
  43. package/lib/schemas/project.schema.js +22 -0
  44. package/lib/schemas/social.schema.d.ts +1 -1
  45. package/lib/schemas/videoPlan.schema.d.ts +22 -20
  46. package/lib/schemas/videoPlan.schema.d.ts.map +1 -1
  47. package/lib/schemas/videoPlan.schema.js +19 -0
  48. package/lib/services/agent/editClassifier.d.ts +10 -10
  49. package/lib/services/agent/eval/types.d.ts +3 -2
  50. package/lib/services/agent/eval/types.d.ts.map +1 -1
  51. package/lib/services/agent/executor/core.d.ts.map +1 -1
  52. package/lib/services/agent/executor/core.js +11 -0
  53. package/lib/services/agent/planner/Planner.d.ts.map +1 -1
  54. package/lib/services/agent/planner/Planner.js +5 -0
  55. package/lib/services/agent/planner/overlayRegen.d.ts.map +1 -1
  56. package/lib/services/agent/planner/overlayRegen.js +5 -0
  57. package/lib/services/agent/planner/plannerMessages.d.ts.map +1 -1
  58. package/lib/services/agent/planner/plannerMessages.js +10 -1
  59. package/lib/services/agent/planner/scriptFirstPlanner.d.ts.map +1 -1
  60. package/lib/services/agent/planner/scriptFirstPlanner.js +2 -0
  61. package/lib/services/agent/regenCore.d.ts.map +1 -1
  62. package/lib/services/agent/regenCore.js +11 -1
  63. package/lib/services/agent/runHelpers.d.ts +8 -0
  64. package/lib/services/agent/runHelpers.d.ts.map +1 -1
  65. package/lib/services/agent/runHelpers.js +5 -1
  66. package/lib/services/agent/tools/chapterOutline.tool.d.ts +8 -0
  67. package/lib/services/agent/tools/chapterOutline.tool.d.ts.map +1 -1
  68. package/lib/services/agent/tools/chapterOutline.tool.js +21 -8
  69. package/lib/services/agent/tools/composeScene.tool.d.ts +32 -2
  70. package/lib/services/agent/tools/composeScene.tool.d.ts.map +1 -1
  71. package/lib/services/agent/tools/estimateCost.tool.d.ts +11 -1
  72. package/lib/services/agent/tools/estimateCost.tool.d.ts.map +1 -1
  73. package/lib/services/agent/tools/extendVideo.tool.d.ts +9 -3
  74. package/lib/services/agent/tools/extendVideo.tool.d.ts.map +1 -1
  75. package/lib/services/agent/tools/extendVideo.tool.js +12 -27
  76. package/lib/services/agent/tools/generateAvatarVideo.tool.d.ts +1 -1
  77. package/lib/services/agent/tools/generateScript.tool.d.ts +3 -2
  78. package/lib/services/agent/tools/generateScript.tool.d.ts.map +1 -1
  79. package/lib/services/agent/tools/generateScript.tool.js +16 -7
  80. package/lib/services/agent/tools/generateVoiceover.tool.d.ts +1 -1
  81. package/lib/services/agent/tools/planVideo.tool.d.ts +11 -8
  82. package/lib/services/agent/tools/planVideo.tool.d.ts.map +1 -1
  83. package/lib/services/agent/tools/render.tool.d.ts +11 -1
  84. package/lib/services/agent/tools/render.tool.d.ts.map +1 -1
  85. package/lib/services/agent/tools/searchStock.tool.d.ts +1 -1
  86. package/lib/services/agent/tools/searchUserLibrary.tool.d.ts +4 -4
  87. package/lib/services/aiGen/providers/kling/kling.service.d.ts.map +1 -1
  88. package/lib/services/aiGen/providers/kling/kling.service.js +22 -3
  89. package/lib/services/aiGen/providers/kling/klingStatus.d.ts +7 -0
  90. package/lib/services/aiGen/providers/kling/klingStatus.d.ts.map +1 -1
  91. package/lib/services/aiGen/providers/kling/klingStatus.js +41 -4
  92. package/lib/services/aiGen/providers/pixverse/pixverse.service.d.ts.map +1 -1
  93. package/lib/services/aiGen/providers/pixverse/pixverse.service.js +25 -0
  94. package/lib/services/aiGen/providers/types.d.ts +20 -0
  95. package/lib/services/aiGen/providers/types.d.ts.map +1 -1
  96. package/lib/services/avatarGen/avatarProviderFactory.d.ts.map +1 -1
  97. package/lib/services/avatarGen/avatarProviderFactory.js +3 -0
  98. package/lib/services/avatarGen/index.d.ts +1 -0
  99. package/lib/services/avatarGen/index.d.ts.map +1 -1
  100. package/lib/services/avatarGen/index.js +1 -0
  101. package/lib/services/avatarGen/providers/synthesiaAvatarProvider.d.ts +53 -0
  102. package/lib/services/avatarGen/providers/synthesiaAvatarProvider.d.ts.map +1 -0
  103. package/lib/services/avatarGen/providers/synthesiaAvatarProvider.js +176 -0
  104. package/lib/services/demo/demoAuthor.d.ts +7 -0
  105. package/lib/services/demo/demoAuthor.d.ts.map +1 -1
  106. package/lib/services/demo/demoAuthor.js +2 -0
  107. package/lib/services/demo/demoAuthorPrompt.d.ts +6 -0
  108. package/lib/services/demo/demoAuthorPrompt.d.ts.map +1 -1
  109. package/lib/services/demo/demoAuthorPrompt.js +24 -2
  110. package/lib/services/demo/demoCaptions.d.ts +69 -0
  111. package/lib/services/demo/demoCaptions.d.ts.map +1 -0
  112. package/lib/services/demo/demoCaptions.js +152 -0
  113. package/lib/services/demo/demoMusic.d.ts +8 -1
  114. package/lib/services/demo/demoMusic.d.ts.map +1 -1
  115. package/lib/services/demo/demoMusic.js +32 -16
  116. package/lib/services/demo/demoScriptPrompt.d.ts +2 -1
  117. package/lib/services/demo/demoScriptPrompt.d.ts.map +1 -1
  118. package/lib/services/demo/demoScriptPrompt.js +29 -2
  119. package/lib/services/demo/demoStockAssets.d.ts +29 -0
  120. package/lib/services/demo/demoStockAssets.d.ts.map +1 -0
  121. package/lib/services/demo/demoStockAssets.js +107 -0
  122. package/lib/services/demo/index.d.ts +3 -0
  123. package/lib/services/demo/index.d.ts.map +1 -1
  124. package/lib/services/demo/index.js +3 -0
  125. package/lib/services/demo/productConnection.service.d.ts +78 -0
  126. package/lib/services/demo/productConnection.service.d.ts.map +1 -0
  127. package/lib/services/demo/productConnection.service.js +125 -0
  128. package/lib/services/editor/planToProject.d.ts.map +1 -1
  129. package/lib/services/editor/planToProject.helpers.d.ts +1 -0
  130. package/lib/services/editor/planToProject.helpers.d.ts.map +1 -1
  131. package/lib/services/editor/planToProject.helpers.js +3 -0
  132. package/lib/services/editor/planToProject.js +39 -0
  133. package/lib/services/editor/projectToDesign.js +13 -1
  134. package/lib/services/firestore.service.d.ts +14 -0
  135. package/lib/services/firestore.service.d.ts.map +1 -1
  136. package/lib/services/firestore.service.js +16 -0
  137. package/lib/services/translation/index.d.ts +1 -0
  138. package/lib/services/translation/index.d.ts.map +1 -1
  139. package/lib/services/translation/index.js +8 -1
  140. package/lib/services/translation/outputLanguage.d.ts +75 -0
  141. package/lib/services/translation/outputLanguage.d.ts.map +1 -0
  142. package/lib/services/translation/outputLanguage.js +190 -0
  143. package/lib/services/translation/translation.service.d.ts +13 -2
  144. package/lib/services/translation/translation.service.d.ts.map +1 -1
  145. package/lib/services/translation/translation.service.js +66 -5
  146. package/lib/services/tts/index.d.ts +1 -0
  147. package/lib/services/tts/index.d.ts.map +1 -1
  148. package/lib/services/tts/index.js +1 -0
  149. package/lib/services/tts/providers/elevenlabs.service.d.ts +7 -0
  150. package/lib/services/tts/providers/elevenlabs.service.d.ts.map +1 -1
  151. package/lib/services/tts/providers/elevenlabs.service.js +69 -13
  152. package/lib/services/tts/types.d.ts +29 -0
  153. package/lib/services/tts/types.d.ts.map +1 -1
  154. package/lib/services/tts/wordTimings.d.ts +27 -0
  155. package/lib/services/tts/wordTimings.d.ts.map +1 -0
  156. package/lib/services/tts/wordTimings.js +57 -0
  157. package/lib/utils/billableDuration.d.ts +11 -0
  158. package/lib/utils/billableDuration.d.ts.map +1 -0
  159. package/lib/utils/billableDuration.js +91 -0
  160. package/lib/utils/index.d.ts +3 -0
  161. package/lib/utils/index.d.ts.map +1 -1
  162. package/lib/utils/index.js +3 -0
  163. package/lib/utils/mp4Duration.d.ts +38 -0
  164. package/lib/utils/mp4Duration.d.ts.map +1 -0
  165. package/lib/utils/mp4Duration.js +164 -0
  166. package/lib/utils/socialEntitlements.d.ts +51 -0
  167. package/lib/utils/socialEntitlements.d.ts.map +1 -0
  168. package/lib/utils/socialEntitlements.js +65 -0
  169. package/package.json +1 -1
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extendVideoTool = void 0;
4
- exports.modelSupportsExtend = modelSupportsExtend;
3
+ exports.extendVideoTool = exports.modelSupportsExtend = exports.EXTEND_CAPABLE_MODELS = void 0;
5
4
  const zod_1 = require("zod");
6
5
  const aiModels_1 = require("../../../globals/aiModels");
7
6
  const logger_1 = require("../../../utils/logger");
@@ -9,31 +8,17 @@ const aiGenFactory_service_1 = require("../../aiGen/aiGenFactory.service");
9
8
  const rateLimiter_1 = require("../../rateLimiter");
10
9
  const toolRegistry_1 = require("../toolRegistry");
11
10
  /**
12
- * AG-2: models whose provider exposes a native video-extension endpoint
13
- * (`endpoint: "extend"` + `sourceTaskId`). Extension continues a SPECIFIC prior
14
- * provider task, so unlike generate_video there is NO cross-provider
15
- * fallback: the source clip physically lives on the originating provider's
16
- * account. Kling video-extend (/v1/videos/video-extend) and Pixverse
17
- * (/video/extend/generate) are the two implemented today. Special-endpoint
18
- * Kling variants (avatar, omni-video, motion-control, lip-sync) are excluded —
19
- * the generic video-extend endpoint does not accept their tasks.
11
+ * AG-2: the extend-capable model list moved to
12
+ * `globals/aiModels/extendCapability.ts` so the HTTP request schema can consult
13
+ * it too — it previously lived here, which meant only the agent enforced it and
14
+ * `POST /v1/video/generate` accepted `endpoint:"extend"` for ANY model.
15
+ * Re-exported so `extendChain.ts` and `planner/validators.ts` keep importing
16
+ * `modelSupportsExtend` from this module unchanged.
20
17
  */
21
- const EXTEND_CAPABLE_MODELS = new Set([
22
- aiModels_1.EVideoGenModels.KLING_V2_MASTER,
23
- aiModels_1.EVideoGenModels.KLING_V2_1,
24
- aiModels_1.EVideoGenModels.KLING_V2_1_MASTER,
25
- aiModels_1.EVideoGenModels.KLING_V2_5_TURBO,
26
- aiModels_1.EVideoGenModels.KLING_V2_6,
27
- aiModels_1.EVideoGenModels.KLING_V3_0,
28
- aiModels_1.EVideoGenModels.PIXVERSE_V5,
29
- aiModels_1.EVideoGenModels.PIXVERSE_V5_5,
30
- aiModels_1.EVideoGenModels.PIXVERSE_V5_6,
31
- aiModels_1.EVideoGenModels.PIXVERSE_V6,
32
- ]);
33
- /** Whether a model key can be extended via its provider's extend endpoint. */
34
- function modelSupportsExtend(modelKey) {
35
- return EXTEND_CAPABLE_MODELS.has(modelKey);
36
- }
18
+ var extendCapability_1 = require("../../../globals/aiModels/extendCapability");
19
+ Object.defineProperty(exports, "EXTEND_CAPABLE_MODELS", { enumerable: true, get: function () { return extendCapability_1.EXTEND_CAPABLE_MODELS; } });
20
+ Object.defineProperty(exports, "modelSupportsExtend", { enumerable: true, get: function () { return extendCapability_1.modelSupportsExtend; } });
21
+ const extendCapability_2 = require("../../../globals/aiModels/extendCapability");
37
22
  const InputSchema = zod_1.z.object({
38
23
  previousTaskId: zod_1.z
39
24
  .string()
@@ -98,7 +83,7 @@ exports.extendVideoTool = {
98
83
  return Math.ceil(input.extraDurationSec * (isPremium ? 12 : 4));
99
84
  },
100
85
  handler: async (input) => {
101
- if (!modelSupportsExtend(input.modelKey)) {
86
+ if (!(0, extendCapability_2.modelSupportsExtend)(input.modelKey)) {
102
87
  throw new Error(`extend_video: model "${input.modelKey}" has no extension endpoint. ` +
103
88
  "Extend-capable: Kling (v2-master/v2.1/v2.1-master/v2.5-turbo/v2.6/v3.0), " +
104
89
  "Pixverse (v5/v5.5/v5.6/v6).");
@@ -29,8 +29,8 @@ declare const InputSchema: z.ZodObject<{
29
29
  voiceId: z.ZodOptional<z.ZodString>;
30
30
  languageCode: z.ZodOptional<z.ZodString>;
31
31
  mode: z.ZodDefault<z.ZodEnum<{
32
- pro: "pro";
33
32
  std: "std";
33
+ pro: "pro";
34
34
  }>>;
35
35
  prompt: z.ZodOptional<z.ZodString>;
36
36
  }, z.core.$strip>;
@@ -60,8 +60,8 @@ declare const InputSchema: z.ZodObject<{
60
60
  "voiceover-only": "voiceover-only";
61
61
  }>>;
62
62
  pacing: z.ZodOptional<z.ZodEnum<{
63
- medium: "medium";
64
63
  fast: "fast";
64
+ medium: "medium";
65
65
  slow: "slow";
66
66
  "very-fast": "very-fast";
67
67
  }>>;
@@ -80,6 +80,7 @@ declare const InputSchema: z.ZodObject<{
80
80
  L2: "L2";
81
81
  L3: "L3";
82
82
  }>>;
83
+ outputLanguage: z.ZodOptional<z.ZodString>;
83
84
  voice: z.ZodOptional<z.ZodObject<{
84
85
  gender: z.ZodOptional<z.ZodEnum<{
85
86
  male: "male";
@@ -94,7 +95,7 @@ declare const InputSchema: z.ZodObject<{
94
95
  senior: "senior";
95
96
  }>>;
96
97
  accent: z.ZodOptional<z.ZodString>;
97
- language: z.ZodDefault<z.ZodString>;
98
+ language: z.ZodOptional<z.ZodString>;
98
99
  voiceId: z.ZodOptional<z.ZodString>;
99
100
  style: z.ZodOptional<z.ZodEnum<{
100
101
  energetic: "energetic";
@@ -1 +1 @@
1
- {"version":3,"file":"generateScript.tool.d.ts","sourceRoot":"","sources":["../../../../src/services/agent/tools/generateScript.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAoB,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAgB,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,OAAO,EAAgB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE/D;;;;;;;;;;;;;;;GAeG;AAEH,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUf,CAAC;AAeH,QAAA,MAAM,YAAY;;;;;;;;iBAGhB,CAAC;AAEH;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,UAAU,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAyDtD;AAED,eAAO,MAAM,kBAAkB,EAAE,cAAc,CAC7C,OAAO,WAAW,EAClB,OAAO,YAAY,CAcpB,CAAC"}
1
+ {"version":3,"file":"generateScript.tool.d.ts","sourceRoot":"","sources":["../../../../src/services/agent/tools/generateScript.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAoB,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAgB,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,OAAO,EAAgB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAG/D;;;;;;;;;;;;;;;GAeG;AAEH,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUf,CAAC;AAeH,QAAA,MAAM,YAAY;;;;;;;;iBAGhB,CAAC;AAEH;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,UAAU,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAoEtD;AAED,eAAO,MAAM,kBAAkB,EAAE,cAAc,CAC7C,OAAO,WAAW,EAClB,OAAO,YAAY,CAcpB,CAAC"}
@@ -9,6 +9,7 @@ const llmCallerRegistry_1 = require("../llmCallerRegistry");
9
9
  const modelRouter_1 = require("../modelRouter");
10
10
  const ttsDuration_1 = require("../ttsDuration");
11
11
  const toolRegistry_1 = require("../toolRegistry");
12
+ const outputLanguage_1 = require("../../translation/outputLanguage");
12
13
  /**
13
14
  * Stream L (L-4) — generate_script. Script-first authoring for long-form (L1+):
14
15
  * the FIRST pass of L-3's two-pass flow. Produces the full spoken narration for
@@ -61,13 +62,21 @@ async function generateScriptCore(llm, brief, wpmOverride) {
61
62
  const durationSec = brief.durationSec ?? 300;
62
63
  const targetWords = Math.max(80, Math.round((durationSec / 60) * wpm));
63
64
  const system = [
64
- "You are a senior long-form video scriptwriter (YouTube essays, explainers,",
65
- "documentaries). Write spoken narration that one narrator reads start to",
66
- "finish: a strong hook, a clear through-line, signposted transitions between",
67
- "ideas, and a payoff/CTA at the end. Use natural spoken rhythm and normal",
68
- "punctuation. Do NOT write scene directions, shot lists, headings, or",
69
- "bracketed visual notes ONLY the words spoken aloud.",
70
- ].join(" ");
65
+ [
66
+ "You are a senior long-form video scriptwriter (YouTube essays, explainers,",
67
+ "documentaries). Write spoken narration that one narrator reads start to",
68
+ "finish: a strong hook, a clear through-line, signposted transitions between",
69
+ "ideas, and a payoff/CTA at the end. Use natural spoken rhythm and normal",
70
+ "punctuation. Do NOT write scene directions, shot lists, headings, or",
71
+ "bracketed visual notes — ONLY the words spoken aloud.",
72
+ ].join(" "),
73
+ // "" on English. The word-count budget below is language-agnostic — it's
74
+ // computed from wpm, and the ±15% band absorbs the density differences
75
+ // between languages well enough that no per-language wpm table is needed.
76
+ (0, outputLanguage_1.buildOutputLanguageSection)(brief.outputLanguage, "the narration and the suggested title"),
77
+ ]
78
+ .filter(Boolean)
79
+ .join("\n");
71
80
  const user = [
72
81
  `Topic / request: ${brief.rawPrompt}`,
73
82
  brief.goal ? `Goal: ${brief.goal}` : "",
@@ -27,9 +27,9 @@ declare const InputSchema: z.ZodObject<{
27
27
  previousRequestIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
28
28
  nextRequestIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
29
29
  applyTextNormalization: z.ZodOptional<z.ZodEnum<{
30
+ auto: "auto";
30
31
  on: "on";
31
32
  off: "off";
32
- auto: "auto";
33
33
  }>>;
34
34
  applyLanguageTextNormalization: z.ZodOptional<z.ZodBoolean>;
35
35
  optimizeStreamingLatency: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
@@ -43,8 +43,8 @@ declare const InputSchema: z.ZodObject<{
43
43
  "voiceover-only": "voiceover-only";
44
44
  }>>;
45
45
  pacing: z.ZodOptional<z.ZodEnum<{
46
- medium: "medium";
47
46
  fast: "fast";
47
+ medium: "medium";
48
48
  slow: "slow";
49
49
  "very-fast": "very-fast";
50
50
  }>>;
@@ -63,6 +63,7 @@ declare const InputSchema: z.ZodObject<{
63
63
  L2: "L2";
64
64
  L3: "L3";
65
65
  }>>;
66
+ outputLanguage: z.ZodOptional<z.ZodString>;
66
67
  voice: z.ZodOptional<z.ZodObject<{
67
68
  gender: z.ZodOptional<z.ZodEnum<{
68
69
  male: "male";
@@ -77,7 +78,7 @@ declare const InputSchema: z.ZodObject<{
77
78
  senior: "senior";
78
79
  }>>;
79
80
  accent: z.ZodOptional<z.ZodString>;
80
- language: z.ZodDefault<z.ZodString>;
81
+ language: z.ZodOptional<z.ZodString>;
81
82
  voiceId: z.ZodOptional<z.ZodString>;
82
83
  style: z.ZodOptional<z.ZodEnum<{
83
84
  energetic: "energetic";
@@ -213,8 +214,8 @@ declare const OutputSchema: z.ZodObject<{
213
214
  overlays: z.ZodOptional<z.ZodArray<z.ZodObject<{
214
215
  text: z.ZodString;
215
216
  role: z.ZodEnum<{
216
- body: "body";
217
217
  watermark: "watermark";
218
+ body: "body";
218
219
  cta: "cta";
219
220
  headline: "headline";
220
221
  subheadline: "subheadline";
@@ -222,8 +223,8 @@ declare const OutputSchema: z.ZodObject<{
222
223
  label: "label";
223
224
  }>;
224
225
  position: z.ZodOptional<z.ZodEnum<{
225
- center: "center";
226
226
  top: "top";
227
+ center: "center";
227
228
  "top-left": "top-left";
228
229
  "top-right": "top-right";
229
230
  "top-banner": "top-banner";
@@ -242,10 +243,10 @@ declare const OutputSchema: z.ZodObject<{
242
243
  fontSize: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"auto">, z.ZodNumber]>>;
243
244
  sizePct: z.ZodOptional<z.ZodNumber>;
244
245
  weight: z.ZodOptional<z.ZodEnum<{
245
- regular: "regular";
246
246
  bold: "bold";
247
- black: "black";
248
247
  medium: "medium";
248
+ regular: "regular";
249
+ black: "black";
249
250
  }>>;
250
251
  color: z.ZodOptional<z.ZodString>;
251
252
  bgColor: z.ZodOptional<z.ZodString>;
@@ -257,8 +258,8 @@ declare const OutputSchema: z.ZodObject<{
257
258
  outline: "outline";
258
259
  }>>;
259
260
  animation: z.ZodOptional<z.ZodEnum<{
260
- type: "type";
261
261
  pop: "pop";
262
+ type: "type";
262
263
  none: "none";
263
264
  fade: "fade";
264
265
  "slide-up": "slide-up";
@@ -318,8 +319,8 @@ declare const OutputSchema: z.ZodObject<{
318
319
  broll: z.ZodOptional<z.ZodArray<z.ZodObject<{
319
320
  assetUrl: z.ZodString;
320
321
  kind: z.ZodDefault<z.ZodEnum<{
321
- image: "image";
322
322
  video: "video";
323
+ image: "image";
323
324
  }>>;
324
325
  startMs: z.ZodDefault<z.ZodNumber>;
325
326
  durationMs: z.ZodOptional<z.ZodNumber>;
@@ -355,7 +356,9 @@ declare const OutputSchema: z.ZodObject<{
355
356
  }, z.core.$strip>>;
356
357
  voiceId: z.ZodOptional<z.ZodString>;
357
358
  voiceStyle: z.ZodOptional<z.ZodString>;
359
+ outputLanguage: z.ZodOptional<z.ZodString>;
358
360
  notes: z.ZodOptional<z.ZodString>;
361
+ brandLogoUrl: z.ZodOptional<z.ZodString>;
359
362
  captionStyle: z.ZodOptional<z.ZodObject<{
360
363
  fontFamily: z.ZodOptional<z.ZodString>;
361
364
  fontSize: z.ZodOptional<z.ZodNumber>;
@@ -1 +1 @@
1
- {"version":3,"file":"planVideo.tool.d.ts","sourceRoot":"","sources":["../../../../src/services/agent/tools/planVideo.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAgB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAQ/D,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAExD;AAED,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIf,CAAC;AAEH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAEhB,CAAC;AAEH,eAAO,MAAM,aAAa,EAAE,cAAc,CACxC,OAAO,WAAW,EAClB,OAAO,YAAY,CAuBpB,CAAC"}
1
+ {"version":3,"file":"planVideo.tool.d.ts","sourceRoot":"","sources":["../../../../src/services/agent/tools/planVideo.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAgB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAQ/D,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAExD;AAED,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIf,CAAC;AAEH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAEhB,CAAC;AAEH,eAAO,MAAM,aAAa,EAAE,cAAc,CACxC,OAAO,WAAW,EAClB,OAAO,YAAY,CAuBpB,CAAC"}
@@ -44,8 +44,8 @@ declare const InputSchema: z.ZodObject<{
44
44
  tracks: z.ZodArray<z.ZodObject<{
45
45
  id: z.ZodString;
46
46
  kind: z.ZodEnum<{
47
- audio: "audio";
48
47
  video: "video";
48
+ audio: "audio";
49
49
  text: "text";
50
50
  caption: "caption";
51
51
  fx: "fx";
@@ -139,6 +139,16 @@ declare const InputSchema: z.ZodObject<{
139
139
  saturation: z.ZodDefault<z.ZodNumber>;
140
140
  warmth: z.ZodDefault<z.ZodNumber>;
141
141
  }, z.core.$strip>>;
142
+ box: z.ZodOptional<z.ZodObject<{
143
+ left: z.ZodNumber;
144
+ top: z.ZodNumber;
145
+ width: z.ZodNumber;
146
+ height: z.ZodNumber;
147
+ }, z.core.$strip>>;
148
+ fit: z.ZodOptional<z.ZodEnum<{
149
+ cover: "cover";
150
+ contain: "contain";
151
+ }>>;
142
152
  id: z.ZodString;
143
153
  trackId: z.ZodString;
144
154
  display: z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"render.tool.d.ts","sourceRoot":"","sources":["../../../../src/services/agent/tools/render.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAgB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE/D;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;IACvC,OAAO,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;CAC3C,KAAK,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAGvC,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI,CAE5D;AAED,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQf,CAAC;AAEH,QAAA,MAAM,YAAY;;;iBAGhB,CAAC;AAEH,eAAO,MAAM,UAAU,EAAE,cAAc,CACrC,OAAO,WAAW,EAClB,OAAO,YAAY,CA2BpB,CAAC"}
1
+ {"version":3,"file":"render.tool.d.ts","sourceRoot":"","sources":["../../../../src/services/agent/tools/render.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAgB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE/D;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;IACvC,OAAO,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;CAC3C,KAAK,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAGvC,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI,CAE5D;AAED,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQf,CAAC;AAEH,QAAA,MAAM,YAAY;;;iBAGhB,CAAC;AAEH,eAAO,MAAM,UAAU,EAAE,cAAc,CACrC,OAAO,WAAW,EAClB,OAAO,YAAY,CA2BpB,CAAC"}
@@ -5,8 +5,8 @@ export declare function _clearStockDedupForTesting(): void;
5
5
  declare const InputSchema: z.ZodObject<{
6
6
  query: z.ZodString;
7
7
  kind: z.ZodEnum<{
8
- image: "image";
9
8
  video: "video";
9
+ image: "image";
10
10
  }>;
11
11
  aspectRatio: z.ZodOptional<z.ZodEnum<{
12
12
  "9:16": "9:16";
@@ -28,9 +28,9 @@ export declare function setUserLibrarySearch(fn: UserLibrarySearchFn): void;
28
28
  declare const InputSchema: z.ZodObject<{
29
29
  query: z.ZodString;
30
30
  kind: z.ZodOptional<z.ZodEnum<{
31
- audio: "audio";
32
- image: "image";
33
31
  video: "video";
32
+ image: "image";
33
+ audio: "audio";
34
34
  "stock-video": "stock-video";
35
35
  "stock-image": "stock-image";
36
36
  }>>;
@@ -40,9 +40,9 @@ declare const OutputSchema: z.ZodObject<{
40
40
  assets: z.ZodArray<z.ZodObject<{
41
41
  id: z.ZodString;
42
42
  kind: z.ZodEnum<{
43
- audio: "audio";
44
- image: "image";
45
43
  video: "video";
44
+ image: "image";
45
+ audio: "audio";
46
46
  "stock-video": "stock-video";
47
47
  "stock-image": "stock-image";
48
48
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"kling.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/kling/kling.service.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAyBlB;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE7C;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,wBAAwB;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAW;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IASxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkD;IAC9E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmD;;YAWlE,OAAO;IAiCf,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IA0DjC;;;;;;;;OAQG;YACW,kBAAkB;IAgChC;;;;OAIG;YACW,WAAW;YA6BX,iBAAiB;YA6BjB,qBAAqB;YAgCrB,eAAe;YAkDf,mBAAmB;YAgCnB,uBAAuB;IAsI/B,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAiB7E;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAiBxB,cAAc,IAAI,MAAM;IAexB,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;CAGjD"}
1
+ {"version":3,"file":"kling.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/kling/kling.service.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAyBlB;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE7C;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,wBAAwB;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAW;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IASxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkD;IAC9E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmD;;YAWlE,OAAO;IAiCf,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IA+EjC;;;;;;;;OAQG;YACW,kBAAkB;IAgChC;;;;OAIG;YACW,WAAW;YA6BX,iBAAiB;YA6BjB,qBAAqB;YAgCrB,eAAe;YAkDf,mBAAmB;YAgCnB,uBAAuB;IAsI/B,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAiB7E;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAiBxB,cAAc,IAAI,MAAM;IAexB,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;CAGjD"}
@@ -64,6 +64,28 @@ class KlingService extends baseAiGenProvider_service_1.BaseAiGenProviderService
64
64
  }
65
65
  async generateVideo(params) {
66
66
  (0, helpers_1.validateParams)(params);
67
+ // Extend is dispatched FIRST, and never silently downgrades.
68
+ //
69
+ // This check used to sit below the special-endpoint branches (avatar,
70
+ // lip-sync, motion-control, omni-video, turbo), so an extend request on any
71
+ // of those models fell into that model's own generate path and produced a
72
+ // BRAND-NEW clip while ignoring sourceTaskId — a silent wrong result, billed
73
+ // in full. kling-v3.0-turbo was the live example: it sits on the API 2.0
74
+ // /tasks surface, which has no video-extend equivalent at all.
75
+ //
76
+ // None of those endpoints accept a generic video-extend task, so the correct
77
+ // behaviour is to reject, not to reinterpret. The request schema already
78
+ // blocks this at the HTTP door; this is the provider-level backstop for the
79
+ // agent and any other in-process caller.
80
+ if (params.endpoint === "extend") {
81
+ if (!(0, aiModels_1.modelSupportsExtend)(params.modelKey)) {
82
+ throw new Error(`${params.modelKey} has no Kling video-extend endpoint — ` +
83
+ "avatar, lip-sync, motion-control, omni-video and v3.0-turbo tasks " +
84
+ "are not accepted by /v1/videos/video-extend. " +
85
+ `Extend-capable: ${[...aiModels_1.EXTEND_CAPABLE_MODELS].join(", ")}.`);
86
+ }
87
+ return this.extendVideo(params);
88
+ }
67
89
  if (params.modelKey === "kling-avatar") {
68
90
  return this.generateAvatarVideo(params);
69
91
  }
@@ -80,9 +102,6 @@ class KlingService extends baseAiGenProvider_service_1.BaseAiGenProviderService
80
102
  if (params.modelKey === "kling-v3.0-turbo") {
81
103
  return this.generateTurboVideo(params);
82
104
  }
83
- if (params.endpoint === "extend") {
84
- return this.extendVideo(params);
85
- }
86
105
  const modelId = aiModels_1.aiModelConfigs[params.modelKey]?.modelId;
87
106
  if (!modelId)
88
107
  throw new Error(`Unknown modelKey: ${params.modelKey}`);
@@ -6,6 +6,13 @@ import type { KlingAuthMode } from "./kling.service";
6
6
  * service's bound requestWithTimeoutRetry) plus the submit timeout, so they
7
7
  * reuse the JWT auth + IPv4-pinned agents without holding a class reference.
8
8
  */
9
+ /**
10
+ * Kling reports clip length as seconds-in-a-string ("5", "10.1"). Parse it
11
+ * defensively: a malformed or absent value must yield `undefined` (billing then
12
+ * falls back to the requested duration) rather than NaN, which would poison
13
+ * every downstream cost calculation. See VideoStatusResult.durationSec.
14
+ */
15
+ export declare function parseKlingDurationSec(raw: unknown): number | undefined;
9
16
  export interface KlingStatusDeps {
10
17
  /** Bound KlingService.requestWithTimeoutRetry. */
11
18
  request: <T>(endpoint: string, method: "POST" | "GET", body?: any, maxAttempts?: number, timeout?: number,
@@ -1 +1 @@
1
- {"version":3,"file":"klingStatus.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/kling/klingStatus.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,OAAO,EAAE,CAAC,CAAC,EACT,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GAAG,KAAK,EACtB,IAAI,CAAC,EAAE,GAAG,EACV,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,MAAM;IAChB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,aAAa,KACrB,OAAO,CAAC,CAAC,CAAC,CAAC;IAChB,oFAAoF;IACpF,eAAe,EAAE,MAAM,CAAC;CACzB;AA4ED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,eAAe,EACrB,EAAE,IAAI,EAAE,cAAc,EAAE,cAAyB,EAAE,EAAE,iBAAiB,GACrE,OAAO,CAAC,iBAAiB,CAAC,CAuD5B;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,eAAe,EACrB,EAAE,IAAI,EAAE,cAAc,EAAE,cAAyB,EAAE,EAAE,iBAAiB,GACrE,OAAO,CAAC,iBAAiB,CAAC,CAyE5B;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,eAAe,EACrB,EAAE,IAAI,EAAE,cAAc,EAAE,cAAyB,EAAE,EAAE,iBAAiB,GACrE,OAAO,CAAC,iBAAiB,CAAC,CAqG5B"}
1
+ {"version":3,"file":"klingStatus.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/kling/klingStatus.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD;;;;;GAKG;AACH;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAItE;AAED,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,OAAO,EAAE,CAAC,CAAC,EACT,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GAAG,KAAK,EACtB,IAAI,CAAC,EAAE,GAAG,EACV,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,MAAM;IAChB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,aAAa,KACrB,OAAO,CAAC,CAAC,CAAC,CAAC;IAChB,oFAAoF;IACpF,eAAe,EAAE,MAAM,CAAC;CACzB;AA4ED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,eAAe,EACrB,EAAE,IAAI,EAAE,cAAc,EAAE,cAAyB,EAAE,EAAE,iBAAiB,GACrE,OAAO,CAAC,iBAAiB,CAAC,CA4D5B;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,eAAe,EACrB,EAAE,IAAI,EAAE,cAAc,EAAE,cAAyB,EAAE,EAAE,iBAAiB,GACrE,OAAO,CAAC,iBAAiB,CAAC,CAgF5B;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,eAAe,EACrB,EAAE,IAAI,EAAE,cAAc,EAAE,cAAyB,EAAE,EAAE,iBAAiB,GACrE,OAAO,CAAC,iBAAiB,CAAC,CA2G5B"}
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.parseKlingDurationSec = parseKlingDurationSec;
6
7
  exports.checkTurboVideoStatus = checkTurboVideoStatus;
7
8
  exports.checkRegularVideoStatus = checkRegularVideoStatus;
8
9
  exports.checkAvatarVideoStatus = checkAvatarVideoStatus;
@@ -12,6 +13,24 @@ const https_1 = __importDefault(require("https"));
12
13
  const types_1 = require("../../../../globals/types");
13
14
  const firebase_1 = require("../../../../libs/firebase");
14
15
  const logger_1 = require("../../../../utils/logger");
16
+ /**
17
+ * Kling status polling + result stashing. Extracted from KlingService so the
18
+ * class stays a thin transport/dispatch layer. These take a `request` dep (the
19
+ * service's bound requestWithTimeoutRetry) plus the submit timeout, so they
20
+ * reuse the JWT auth + IPv4-pinned agents without holding a class reference.
21
+ */
22
+ /**
23
+ * Kling reports clip length as seconds-in-a-string ("5", "10.1"). Parse it
24
+ * defensively: a malformed or absent value must yield `undefined` (billing then
25
+ * falls back to the requested duration) rather than NaN, which would poison
26
+ * every downstream cost calculation. See VideoStatusResult.durationSec.
27
+ */
28
+ function parseKlingDurationSec(raw) {
29
+ if (typeof raw !== "string" && typeof raw !== "number")
30
+ return undefined;
31
+ const parsed = typeof raw === "number" ? raw : Number.parseFloat(raw);
32
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : undefined;
33
+ }
15
34
  /**
16
35
  * Download a finished Kling video and re-host it in GCS, returning a signed
17
36
  * URL. Bounded retry + IPv4 pinning: Kling's CDN hostnames frequently resolve
@@ -102,7 +121,12 @@ async function checkTurboVideoStatus(deps, { task, outputFilename, outputFilePat
102
121
  };
103
122
  }
104
123
  if (taskData.status === "succeeded") {
105
- const videoUrl = taskData.outputs?.find((o) => o.type === "video")?.url;
124
+ const videoOutput = taskData.outputs?.find((o) => o.type === "video");
125
+ const videoUrl = videoOutput?.url;
126
+ // Turbo is priced `perSecond * duration` with NO duration table, and accepts
127
+ // any length 3–15s, so a requested-vs-delivered mismatch bills wrong at
128
+ // every second of drift rather than being absorbed by a {5,10} table.
129
+ const durationSec = parseKlingDurationSec(videoOutput?.duration);
106
130
  if (!videoUrl) {
107
131
  return {
108
132
  status: types_1.EVideoSceneStatus.FAILED,
@@ -110,7 +134,7 @@ async function checkTurboVideoStatus(deps, { task, outputFilename, outputFilePat
110
134
  };
111
135
  }
112
136
  const signedUrl = await stashVideoToGcs(videoUrl, outputFilePath, outputFilename, deps.generateTimeout, { task, surface: "turbo" });
113
- return { videoUrl: signedUrl, status: types_1.EVideoSceneStatus.COMPLETED };
137
+ return { videoUrl: signedUrl, status: types_1.EVideoSceneStatus.COMPLETED, durationSec };
114
138
  }
115
139
  if (taskData.status === "failed") {
116
140
  return {
@@ -154,7 +178,13 @@ async function checkRegularVideoStatus(deps, { task, outputFilename, outputFileP
154
178
  }
155
179
  logger_1.logger.info("Kling checkVideoStatus polled", { task, durationMs: Date.now() - startTime, status: result.data.task_status });
156
180
  if (result.data.task_status === "succeed") {
157
- const videoUrl = result.data.task_result?.videos?.[0]?.url;
181
+ const video = result.data.task_result?.videos?.[0];
182
+ const videoUrl = video?.url;
183
+ // Kling reports how long the clip ACTUALLY is; this was previously read for
184
+ // `.url` only and the length discarded. Carrying it out lets billing
185
+ // reconcile on the delivered length instead of the requested one — the fix
186
+ // for extend overcharging (see VideoStatusResult.durationSec).
187
+ const durationSec = parseKlingDurationSec(video?.duration);
158
188
  if (!videoUrl) {
159
189
  return {
160
190
  status: types_1.EVideoSceneStatus.FAILED,
@@ -177,6 +207,7 @@ async function checkRegularVideoStatus(deps, { task, outputFilename, outputFileP
177
207
  return {
178
208
  videoUrl: signedUrl,
179
209
  status: types_1.EVideoSceneStatus.COMPLETED,
210
+ durationSec,
180
211
  };
181
212
  }
182
213
  if (result.data.task_status === "failed") {
@@ -198,7 +229,12 @@ async function checkAvatarVideoStatus(deps, { task, outputFilename, outputFilePa
198
229
  };
199
230
  }
200
231
  if (result.data.task_status === "succeed") {
201
- const videoUrl = result.data.task_result?.videos?.[0]?.url;
232
+ const video = result.data.task_result?.videos?.[0];
233
+ const videoUrl = video?.url;
234
+ // Avatar/lip-sync length is driven by the driving AUDIO, not by a requested
235
+ // duration — and klingCredits bills it in 5s increments. Reporting the real
236
+ // length is what makes that calculation correct.
237
+ const durationSec = parseKlingDurationSec(video?.duration);
202
238
  if (!videoUrl) {
203
239
  return {
204
240
  status: types_1.EVideoSceneStatus.FAILED,
@@ -246,6 +282,7 @@ async function checkAvatarVideoStatus(deps, { task, outputFilename, outputFilePa
246
282
  return {
247
283
  videoUrl: signedUrl,
248
284
  status: types_1.EVideoSceneStatus.COMPLETED,
285
+ durationSec,
249
286
  };
250
287
  }
251
288
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"pixverse.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/pixverse/pixverse.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AA0FlB,qBAAa,eAAgB,SAAQ,wBAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkD;IAK1E;;;;;;OAMG;YACW,WAAW;IA6CnB,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAgL3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0FjD,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;CAkDjD"}
1
+ {"version":3,"file":"pixverse.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/pixverse/pixverse.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AA+FlB,qBAAa,eAAgB,SAAQ,wBAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkD;IAK1E;;;;;;OAMG;YACW,WAAW;IA6CnB,aAAa,CACjB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAyL3B,gBAAgB,CAAC,EACrB,IAAI,EACJ,cAAc,EACd,cAAyB,GAC1B,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+GjD,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;CAkDjD"}
@@ -11,6 +11,7 @@ const aiModels_1 = require("../../../../globals/aiModels");
11
11
  const types_1 = require("../../../../globals/types");
12
12
  const firebase_1 = require("../../../../libs/firebase");
13
13
  const helpers_2 = require("../../../../utils/helpers");
14
+ const mp4Duration_1 = require("../../../../utils/mp4Duration");
14
15
  const logger_1 = require("../../../../utils/logger");
15
16
  const errors_1 = require("../../../../utils/errors");
16
17
  const transientRetry_1 = require("../../transientRetry");
@@ -138,6 +139,13 @@ class PixVerseService extends baseAiGenProvider_service_1.BaseAiGenProviderServi
138
139
  // Extend a previously-generated PixVerse video. Takes the prior video_id;
139
140
  // returns a new task whose status is polled via the same /result/{id} endpoint.
140
141
  if (params.endpoint === "extend") {
142
+ // Backstop matching kling.service: reject rather than silently falling
143
+ // through to plain generation, which would return a brand-new clip while
144
+ // the caller believed their video had been continued.
145
+ if (!(0, aiModels_1.modelSupportsExtend)(params.modelKey)) {
146
+ throw new Error(`${params.modelKey} has no PixVerse video-extend endpoint. ` +
147
+ `Extend-capable: ${[...aiModels_1.EXTEND_CAPABLE_MODELS].join(", ")}.`);
148
+ }
141
149
  if (!params.sourceTaskId) {
142
150
  throw new Error("sourceTaskId (prior PixVerse video_id) is required for video extension");
143
151
  }
@@ -320,6 +328,12 @@ class PixVerseService extends baseAiGenProvider_service_1.BaseAiGenProviderServi
320
328
  errorMessage: `Unknown PixVerse status: ${status}`,
321
329
  };
322
330
  }
331
+ // NOTE: unlike Kling, PixVerse's /video/result payload carries NO clip
332
+ // length. Verified against the official docs 2026-07-24 — the whole Resp
333
+ // object is {create_time, id, modify_time, negative_prompt, outputHeight,
334
+ // outputWidth, prompt, resolution_ratio, seed, size, status, style, url},
335
+ // and `size` is bytes. So there is no field to read: the delivered length
336
+ // is measured from the downloaded file below (see readMp4DurationSec).
323
337
  const sourceVideoUrl = data?.Resp?.url;
324
338
  if (!sourceVideoUrl) {
325
339
  return {
@@ -333,6 +347,16 @@ class PixVerseService extends baseAiGenProvider_service_1.BaseAiGenProviderServi
333
347
  throw new Error(`Failed to download PixVerse video (${videoResp.status})`);
334
348
  }
335
349
  const buffer = Buffer.from(await videoResp.arrayBuffer());
350
+ // Measure the DELIVERED length off the bytes we already hold, since the
351
+ // API never reports it. Matters most for `endpoint:"extend"`, where the
352
+ // extend body deliberately sends no duration and PixVerse appends a fixed
353
+ // native increment — billing the requested duration there over-charges.
354
+ // Returns undefined for anything unreadable, in which case finalization
355
+ // keeps billing the requested duration exactly as before.
356
+ const durationSec = (0, mp4Duration_1.readMp4DurationSec)(buffer);
357
+ if (durationSec === undefined) {
358
+ logger_1.logger.warn("PixVerse: could not read delivered duration from the downloaded clip — billing will use the requested duration", { task, bytes: buffer.length });
359
+ }
336
360
  // ---- Upload to Firebase ----
337
361
  const filePath = `${outputFilePath}/${outputFilename}.mp4`;
338
362
  const bucket = (0, firebase_1.getBucket)();
@@ -353,6 +377,7 @@ class PixVerseService extends baseAiGenProvider_service_1.BaseAiGenProviderServi
353
377
  return {
354
378
  videoUrl: publicVideoUrl,
355
379
  status: types_1.EVideoSceneStatus.COMPLETED,
380
+ durationSec,
356
381
  };
357
382
  }
358
383
  // =========================================================
@@ -102,6 +102,26 @@ export interface VideoStatusResult {
102
102
  status: EVideoSceneStatus;
103
103
  videoUrl?: string;
104
104
  errorMessage?: string;
105
+ /**
106
+ * ACTUAL length of the delivered clip, in seconds, when the provider reports
107
+ * it. Billing must prefer this over the REQUESTED duration: the two diverge
108
+ * whenever a provider ignores or clamps the requested value.
109
+ *
110
+ * The motivating case is video-extend. `buildExtendBody()` (Kling) and the
111
+ * Pixverse `/extend/generate` body deliberately send no `duration` — both
112
+ * providers append a fixed native increment (~5s / ~5-8s) — yet every billing
113
+ * site priced from the requested duration, so `endpoint:"extend"` with
114
+ * `duration:10` charged for 10s of generation and delivered ~5s. On
115
+ * kling-v2-master that is 28 credits for a 14-credit clip.
116
+ *
117
+ * Kling already returns this (`task_result.videos[].duration`, seconds as a
118
+ * string); it was parsed for `.url` only and discarded. Providers that don't
119
+ * report a length leave this undefined and billing falls back to the
120
+ * requested duration, exactly as before.
121
+ *
122
+ * See notes/UTILITY_TOOLS_LAUNCH_PLAN.md §1.5.1.
123
+ */
124
+ durationSec?: number;
105
125
  }
106
126
  export interface VideoStatusParams {
107
127
  task: TVideoJobTask;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/services/aiGen/providers/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/services/aiGen/providers/types.ts"],"names":[],"mappings":"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"}