vidspotai-shared 1.0.95 → 1.0.97

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 (143) hide show
  1. package/lib/globals/aiModels/enums.d.ts +3 -0
  2. package/lib/globals/aiModels/enums.d.ts.map +1 -1
  3. package/lib/globals/aiModels/enums.js +9 -0
  4. package/lib/globals/aiModels/index.d.ts.map +1 -1
  5. package/lib/globals/aiModels/index.js +2 -0
  6. package/lib/globals/aiModels/providers/hostedAvatars.d.ts +22 -0
  7. package/lib/globals/aiModels/providers/hostedAvatars.d.ts.map +1 -0
  8. package/lib/globals/aiModels/providers/hostedAvatars.js +129 -0
  9. package/lib/globals/aiModels/providers/kling.d.ts.map +1 -1
  10. package/lib/globals/aiModels/providers/kling.js +85 -1
  11. package/lib/globals/creditUnit.d.ts +29 -0
  12. package/lib/globals/creditUnit.d.ts.map +1 -1
  13. package/lib/globals/creditUnit.js +30 -1
  14. package/lib/globals/types.d.ts +58 -1
  15. package/lib/globals/types.d.ts.map +1 -1
  16. package/lib/globals/types.js +61 -1
  17. package/lib/models/demoVideoProject.model.d.ts +244 -0
  18. package/lib/models/demoVideoProject.model.d.ts.map +1 -0
  19. package/lib/models/demoVideoProject.model.js +2 -0
  20. package/lib/models/githubConnection.model.d.ts +35 -0
  21. package/lib/models/githubConnection.model.d.ts.map +1 -0
  22. package/lib/models/githubConnection.model.js +2 -0
  23. package/lib/models/index.d.ts +3 -0
  24. package/lib/models/index.d.ts.map +1 -1
  25. package/lib/models/index.js +3 -0
  26. package/lib/models/outreach.model.d.ts +175 -0
  27. package/lib/models/outreach.model.d.ts.map +1 -0
  28. package/lib/models/outreach.model.js +2 -0
  29. package/lib/models/video.model.d.ts +4 -0
  30. package/lib/models/video.model.d.ts.map +1 -1
  31. package/lib/schemas/brandKit.schema.d.ts +4 -0
  32. package/lib/schemas/brandKit.schema.d.ts.map +1 -1
  33. package/lib/schemas/brandKit.schema.js +10 -0
  34. package/lib/schemas/demoQuestion.schema.d.ts +286 -0
  35. package/lib/schemas/demoQuestion.schema.d.ts.map +1 -0
  36. package/lib/schemas/demoQuestion.schema.js +210 -0
  37. package/lib/schemas/demoSpec.schema.d.ts +109 -6
  38. package/lib/schemas/demoSpec.schema.d.ts.map +1 -1
  39. package/lib/schemas/demoSpec.schema.js +95 -7
  40. package/lib/schemas/index.d.ts +1 -0
  41. package/lib/schemas/index.d.ts.map +1 -1
  42. package/lib/schemas/index.js +1 -0
  43. package/lib/services/agent/providerFallback/chains.d.ts.map +1 -1
  44. package/lib/services/agent/providerFallback/chains.js +9 -1
  45. package/lib/services/agent/taskPoller.d.ts.map +1 -1
  46. package/lib/services/agent/taskPoller.js +17 -6
  47. package/lib/services/agent/tools/generateAvatarVideo.tool.d.ts +21 -9
  48. package/lib/services/agent/tools/generateAvatarVideo.tool.d.ts.map +1 -1
  49. package/lib/services/agent/tools/generateAvatarVideo.tool.js +135 -39
  50. package/lib/services/aiGen/aiGenFactory.service.d.ts +1 -1
  51. package/lib/services/aiGen/aiGenFactory.service.d.ts.map +1 -1
  52. package/lib/services/aiGen/aiGenFactory.service.js +11 -2
  53. package/lib/services/aiGen/providers/kling/kling.service.d.ts +36 -1
  54. package/lib/services/aiGen/providers/kling/kling.service.d.ts.map +1 -1
  55. package/lib/services/aiGen/providers/kling/kling.service.js +62 -5
  56. package/lib/services/aiGen/providers/kling/klingCredits.d.ts.map +1 -1
  57. package/lib/services/aiGen/providers/kling/klingCredits.js +12 -0
  58. package/lib/services/aiGen/providers/kling/klingRequests.d.ts +14 -1
  59. package/lib/services/aiGen/providers/kling/klingRequests.d.ts.map +1 -1
  60. package/lib/services/aiGen/providers/kling/klingRequests.js +44 -0
  61. package/lib/services/aiGen/providers/kling/klingStatus.d.ts +13 -1
  62. package/lib/services/aiGen/providers/kling/klingStatus.d.ts.map +1 -1
  63. package/lib/services/aiGen/providers/kling/klingStatus.js +111 -0
  64. package/lib/services/aiGen/providers/kling/types.d.ts +71 -0
  65. package/lib/services/aiGen/providers/kling/types.d.ts.map +1 -1
  66. package/lib/services/avatarGen/IAvatarVideoProvider.d.ts +136 -0
  67. package/lib/services/avatarGen/IAvatarVideoProvider.d.ts.map +1 -0
  68. package/lib/services/avatarGen/IAvatarVideoProvider.js +42 -0
  69. package/lib/services/avatarGen/avatarProviderFactory.d.ts +18 -0
  70. package/lib/services/avatarGen/avatarProviderFactory.d.ts.map +1 -0
  71. package/lib/services/avatarGen/avatarProviderFactory.js +54 -0
  72. package/lib/services/avatarGen/index.d.ts +6 -0
  73. package/lib/services/avatarGen/index.d.ts.map +1 -0
  74. package/lib/services/avatarGen/index.js +21 -0
  75. package/lib/services/avatarGen/providers/heygenAvatarProvider.d.ts +45 -0
  76. package/lib/services/avatarGen/providers/heygenAvatarProvider.d.ts.map +1 -0
  77. package/lib/services/avatarGen/providers/heygenAvatarProvider.js +190 -0
  78. package/lib/services/avatarGen/providers/klingAvatarProvider.d.ts +32 -0
  79. package/lib/services/avatarGen/providers/klingAvatarProvider.d.ts.map +1 -0
  80. package/lib/services/avatarGen/providers/klingAvatarProvider.js +69 -0
  81. package/lib/services/avatarGen/providers/tavusAvatarProvider.d.ts +56 -0
  82. package/lib/services/avatarGen/providers/tavusAvatarProvider.d.ts.map +1 -0
  83. package/lib/services/avatarGen/providers/tavusAvatarProvider.js +183 -0
  84. package/lib/services/demo/demoAuthor.d.ts +45 -0
  85. package/lib/services/demo/demoAuthor.d.ts.map +1 -0
  86. package/lib/services/demo/demoAuthor.js +75 -0
  87. package/lib/services/demo/demoAuthorNormalize.d.ts +49 -0
  88. package/lib/services/demo/demoAuthorNormalize.d.ts.map +1 -0
  89. package/lib/services/demo/demoAuthorNormalize.js +327 -0
  90. package/lib/services/demo/demoAuthorPrompt.d.ts +102 -0
  91. package/lib/services/demo/demoAuthorPrompt.d.ts.map +1 -0
  92. package/lib/services/demo/demoAuthorPrompt.js +243 -0
  93. package/lib/services/demo/demoCredits.d.ts +20 -0
  94. package/lib/services/demo/demoCredits.d.ts.map +1 -0
  95. package/lib/services/demo/demoCredits.js +51 -0
  96. package/lib/services/demo/demoMediaGuard.d.ts +43 -0
  97. package/lib/services/demo/demoMediaGuard.d.ts.map +1 -0
  98. package/lib/services/demo/demoMediaGuard.js +207 -0
  99. package/lib/services/demo/demoMusic.d.ts +13 -0
  100. package/lib/services/demo/demoMusic.d.ts.map +1 -0
  101. package/lib/services/demo/demoMusic.js +93 -0
  102. package/lib/services/demo/demoPrefill.d.ts +76 -0
  103. package/lib/services/demo/demoPrefill.d.ts.map +1 -0
  104. package/lib/services/demo/demoPrefill.js +435 -0
  105. package/lib/services/demo/demoRevisePrompt.d.ts +17 -0
  106. package/lib/services/demo/demoRevisePrompt.d.ts.map +1 -0
  107. package/lib/services/demo/demoRevisePrompt.js +85 -0
  108. package/lib/services/demo/demoReviser.d.ts +63 -0
  109. package/lib/services/demo/demoReviser.d.ts.map +1 -0
  110. package/lib/services/demo/demoReviser.js +81 -0
  111. package/lib/services/demo/demoScriptPrompt.d.ts +63 -0
  112. package/lib/services/demo/demoScriptPrompt.d.ts.map +1 -0
  113. package/lib/services/demo/demoScriptPrompt.js +234 -0
  114. package/lib/services/demo/demoScriptWriter.d.ts +65 -0
  115. package/lib/services/demo/demoScriptWriter.d.ts.map +1 -0
  116. package/lib/services/demo/demoScriptWriter.js +211 -0
  117. package/lib/services/demo/demoTriage.d.ts +65 -0
  118. package/lib/services/demo/demoTriage.d.ts.map +1 -0
  119. package/lib/services/demo/demoTriage.js +130 -0
  120. package/lib/services/demo/githubOAuth.d.ts +78 -0
  121. package/lib/services/demo/githubOAuth.d.ts.map +1 -0
  122. package/lib/services/demo/githubOAuth.js +209 -0
  123. package/lib/services/demo/githubOAuthState.d.ts +10 -0
  124. package/lib/services/demo/githubOAuthState.d.ts.map +1 -0
  125. package/lib/services/demo/githubOAuthState.js +63 -0
  126. package/lib/services/demo/index.d.ts +24 -0
  127. package/lib/services/demo/index.d.ts.map +1 -0
  128. package/lib/services/demo/index.js +39 -0
  129. package/lib/services/firestore.service.d.ts +11 -0
  130. package/lib/services/firestore.service.d.ts.map +1 -1
  131. package/lib/services/firestore.service.js +24 -0
  132. package/lib/services/index.d.ts +2 -0
  133. package/lib/services/index.d.ts.map +1 -1
  134. package/lib/services/index.js +2 -0
  135. package/lib/services/tts/providers/elevenlabs.service.d.ts.map +1 -1
  136. package/lib/services/tts/providers/elevenlabs.service.js +16 -8
  137. package/lib/utils/index.d.ts +1 -0
  138. package/lib/utils/index.d.ts.map +1 -1
  139. package/lib/utils/index.js +1 -0
  140. package/lib/utils/outreachTemplate.d.ts +46 -0
  141. package/lib/utils/outreachTemplate.d.ts.map +1 -0
  142. package/lib/utils/outreachTemplate.js +174 -0
  143. package/package.json +1 -1
@@ -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.checkTurboVideoStatus = checkTurboVideoStatus;
6
7
  exports.checkRegularVideoStatus = checkRegularVideoStatus;
7
8
  exports.checkAvatarVideoStatus = checkAvatarVideoStatus;
8
9
  const axios_1 = __importDefault(require("axios"));
@@ -11,6 +12,116 @@ const https_1 = __importDefault(require("https"));
11
12
  const types_1 = require("../../../../globals/types");
12
13
  const firebase_1 = require("../../../../libs/firebase");
13
14
  const logger_1 = require("../../../../utils/logger");
15
+ /**
16
+ * Download a finished Kling video and re-host it in GCS, returning a signed
17
+ * URL. Bounded retry + IPv4 pinning: Kling's CDN hostnames frequently resolve
18
+ * to an IPv6 PoP that is dead or geo-blocked for us, which surfaces as
19
+ * AggregateError(ETIMEDOUT) with both happy-eyeballs sockets failing.
20
+ *
21
+ * Extracted from checkAvatarVideoStatus, which had the hardened version. The
22
+ * regular (v1) poller still has its own unretried copy inline — left alone
23
+ * deliberately so this change doesn't touch a working prod path; it can adopt
24
+ * this helper in a separate commit.
25
+ */
26
+ async function stashVideoToGcs(videoUrl, outputFilePath, outputFilename, timeout, logContext) {
27
+ const file = (0, firebase_1.getBucket)().file(`${outputFilePath}/${outputFilename}.mp4`);
28
+ const maxAttempts = 3;
29
+ let lastErr;
30
+ let downloadHost = "unknown";
31
+ try {
32
+ downloadHost = new URL(videoUrl).host;
33
+ }
34
+ catch {
35
+ /* leave as unknown */
36
+ }
37
+ const v4Http = new http_1.default.Agent({ family: 4, keepAlive: true });
38
+ const v4Https = new https_1.default.Agent({ family: 4, keepAlive: true });
39
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
40
+ try {
41
+ const videoResp = await axios_1.default.get(videoUrl, {
42
+ responseType: "arraybuffer",
43
+ timeout,
44
+ httpAgent: v4Http,
45
+ httpsAgent: v4Https,
46
+ });
47
+ await file.save(Buffer.from(videoResp.data), { contentType: "video/mp4" });
48
+ const [signedUrl] = await file.getSignedUrl({
49
+ action: "read",
50
+ expires: "03-09-2491",
51
+ });
52
+ return signedUrl;
53
+ }
54
+ catch (err) {
55
+ lastErr = err;
56
+ const isErr = err instanceof Error;
57
+ logger_1.logger.warn("Kling post-success stash failed", {
58
+ ...logContext,
59
+ attempt,
60
+ maxAttempts,
61
+ downloadHost,
62
+ errName: isErr ? err.name : typeof err,
63
+ errCode: isErr ? err.code : undefined,
64
+ httpStatus: isErr ? err.response?.status : undefined,
65
+ msg: isErr ? err.message : String(err),
66
+ });
67
+ if (attempt < maxAttempts) {
68
+ await new Promise((r) => setTimeout(r, 2000 * 2 ** (attempt - 1)));
69
+ }
70
+ }
71
+ }
72
+ // Throw rather than returning FAILED: the generation SUCCEEDED and was
73
+ // billed; only our re-hosting failed. The outer TaskPoller retries the whole
74
+ // checkVideoStatus call with its own budget, so a transient GCS/CDN blip
75
+ // doesn't cost the user a video they already paid for.
76
+ throw lastErr instanceof Error
77
+ ? lastErr
78
+ : new Error(`Kling stash failed after ${maxAttempts} attempts`);
79
+ }
80
+ /**
81
+ * kling-3.0-turbo polling (Kling API 2.0). Separate from the v1 poller for
82
+ * three reasons, any one of which would break if the v1 path were reused:
83
+ * • the endpoint is GET /tasks?task_ids=<id>, not /v1/videos/<kind>/<id>
84
+ * • `data` is an ARRAY of tasks, not a single object
85
+ * • success is spelled "succeeded" here and "succeed" on v1
86
+ * It also means turbo needs no endpoint probing — one call, no 404 fan-out.
87
+ */
88
+ async function checkTurboVideoStatus(deps, { task, outputFilename, outputFilePath = "videos" }) {
89
+ const startTime = Date.now();
90
+ const result = await deps.request(`/tasks?task_ids=${encodeURIComponent(task)}`, "GET", undefined, undefined, undefined, "apiKey");
91
+ const taskData = result?.data?.[0];
92
+ logger_1.logger.info("Kling checkTurboVideoStatus polled", {
93
+ task,
94
+ durationMs: Date.now() - startTime,
95
+ status: taskData?.status,
96
+ statusMsg: taskData?.message || undefined,
97
+ });
98
+ if (!taskData) {
99
+ return {
100
+ status: types_1.EVideoSceneStatus.FAILED,
101
+ errorMessage: `Turbo task ${task} not found`,
102
+ };
103
+ }
104
+ if (taskData.status === "succeeded") {
105
+ const videoUrl = taskData.outputs?.find((o) => o.type === "video")?.url;
106
+ if (!videoUrl) {
107
+ return {
108
+ status: types_1.EVideoSceneStatus.FAILED,
109
+ errorMessage: "No video output in Kling turbo response",
110
+ };
111
+ }
112
+ const signedUrl = await stashVideoToGcs(videoUrl, outputFilePath, outputFilename, deps.generateTimeout, { task, surface: "turbo" });
113
+ return { videoUrl: signedUrl, status: types_1.EVideoSceneStatus.COMPLETED };
114
+ }
115
+ if (taskData.status === "failed") {
116
+ return {
117
+ status: types_1.EVideoSceneStatus.FAILED,
118
+ errorMessage: taskData.message ||
119
+ result.message ||
120
+ "Kling turbo task failed (no reason provided)",
121
+ };
122
+ }
123
+ return { status: types_1.EVideoSceneStatus.PENDING };
124
+ }
14
125
  async function checkRegularVideoStatus(deps, { task, outputFilename, outputFilePath = "videos" }) {
15
126
  const startTime = Date.now();
16
127
  // Try each Kling status endpoint in order until one returns non-404.
@@ -188,4 +188,75 @@ export interface KlingAvatarGenerateRequest {
188
188
  callback_url?: string;
189
189
  external_task_id?: string;
190
190
  }
191
+ export type KlingTurboResolution = "720p" | "1080p";
192
+ /** contents[] entry — API 2.0 folds prompt and image into one typed array. */
193
+ export interface KlingTurboContent {
194
+ type: "prompt" | "first_frame";
195
+ /** Set when type === "prompt". Max 2500 chars. */
196
+ text?: string;
197
+ /** Set when type === "first_frame". */
198
+ url?: string;
199
+ }
200
+ export interface KlingTurboSettings {
201
+ resolution?: KlingTurboResolution;
202
+ aspect_ratio?: KlingAspectRatio;
203
+ /** 3–15s inclusive. */
204
+ duration?: number;
205
+ }
206
+ export interface KlingTurboOptions {
207
+ callback_url?: string;
208
+ external_task_id?: string;
209
+ watermark_info?: {
210
+ enabled: boolean;
211
+ };
212
+ }
213
+ /** T2V body — prompt is a top-level string on this endpoint. */
214
+ export interface KlingTurboTextToVideoRequest {
215
+ prompt: string;
216
+ settings?: KlingTurboSettings;
217
+ options?: KlingTurboOptions;
218
+ }
219
+ /** I2V body — prompt AND image both travel inside contents[]. */
220
+ export interface KlingTurboImageToVideoRequest {
221
+ contents: KlingTurboContent[];
222
+ settings?: KlingTurboSettings;
223
+ options?: KlingTurboOptions;
224
+ }
225
+ /**
226
+ * API 2.0 task status. Note "succeeded" — the v1 surface spells the same state
227
+ * "succeed". Reusing the v1 comparison here would never match, and the scene
228
+ * would poll until it timed out.
229
+ */
230
+ export type KlingTurboTaskStatus = "submitted" | "processing" | "succeeded" | "failed";
231
+ export interface KlingTurboOutput {
232
+ type: "video" | "image" | "audio" | "element" | "voice";
233
+ id?: string;
234
+ url?: string;
235
+ watermark_url?: string;
236
+ duration?: string;
237
+ }
238
+ export interface KlingTurboTask {
239
+ id: string;
240
+ status: KlingTurboTaskStatus;
241
+ /** Failure reason when status === "failed" (e.g. risk-control rejection). */
242
+ message?: string;
243
+ create_time?: number;
244
+ update_time?: number;
245
+ external_id?: string;
246
+ outputs?: KlingTurboOutput[];
247
+ }
248
+ /** Submit response — a single task object under `data`. */
249
+ export interface KlingTurboSubmitResponse {
250
+ code: number;
251
+ message: string;
252
+ request_id: string;
253
+ data: KlingTurboTask;
254
+ }
255
+ /** GET /tasks response — `data` is an ARRAY (batch query is supported). */
256
+ export interface KlingTurboTasksResponse {
257
+ code: number;
258
+ message: string;
259
+ request_id: string;
260
+ data: KlingTurboTask[];
261
+ }
191
262
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/kling/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/services/aiGen/providers/kling/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ import { EVideoSceneStatus, TVideoJobTask } from "../../globals/types";
2
+ import { EVideoMode } from "../aiGen/types";
3
+ /**
4
+ * Avatar video generation — a first-class provider abstraction, deliberately
5
+ * SEPARATE from the generic `BaseAiGenProviderService` (text/image → video).
6
+ *
7
+ * Why its own seam (SOLID):
8
+ * - SRP: animating a presenter/script into a talking video is a different
9
+ * responsibility from text/image→video generation. Each gets its own contract.
10
+ * - ISP: avatar engines have different capabilities (hosted avatar catalogs,
11
+ * trained replicas, dubbing). Those are NARROW optional interfaces below, so
12
+ * no engine has to no-op methods it doesn't support.
13
+ * - DIP: the worker's `AvatarJobProcessor` and the agent's avatar tool depend on
14
+ * THIS interface, not on any concrete engine (Kling/HeyGen/Tavus).
15
+ * - OCP: adding an engine = add a class + register it in the avatar factory,
16
+ * with zero edits to the processor.
17
+ *
18
+ * Today `kling-avatar` is the only implementation (it adapts the shared Kling
19
+ * transport via `KlingAvatarProvider`). HeyGen/Tavus/Synthesia plug in here next.
20
+ */
21
+ export declare enum EAvatarEngine {
22
+ KLING = "kling",
23
+ HEYGEN = "heygen",
24
+ TAVUS = "tavus",
25
+ SYNTHESIA = "synthesia"
26
+ }
27
+ /**
28
+ * Declares HOW an engine produces a talking video, so the orchestrator
29
+ * (AvatarJobProcessor) knows what to do around the call:
30
+ * - inputMode "byo-media": caller supplies a face image; the AUDIO is produced
31
+ * by us (TTS stays its own concern) and passed in. (Kling)
32
+ * - inputMode "hosted": caller supplies a provider-hosted avatar + voice + a
33
+ * script; the engine does its own TTS/lip-sync. (HeyGen/Tavus)
34
+ * - nativeTts: false => the processor must run TTS first and pass `audioUrl`.
35
+ * - multiSceneSplit: true => long audio is split into scenes + stitched (Kling);
36
+ * false => the engine renders the whole script in one shot (HeyGen/Tavus).
37
+ */
38
+ export interface AvatarCapabilities {
39
+ inputMode: "byo-media" | "hosted";
40
+ nativeTts: boolean;
41
+ multiSceneSplit: boolean;
42
+ }
43
+ /**
44
+ * Discriminated request. A provider accepts exactly one `mode` (the one its
45
+ * `capabilities.inputMode` declares); passing the other is a programmer error
46
+ * and providers throw.
47
+ */
48
+ export type AvatarGenerateRequest = {
49
+ mode: "byo-media";
50
+ /** Presenter face still — the engine animates this image to lipsync the audio. */
51
+ faceImageUrl: string;
52
+ /** Public audio URL (we generated it via TTS, or the caller supplied it). */
53
+ audioUrl: string;
54
+ /** Optional motion/emotion hint passed through to the engine. */
55
+ prompt?: string;
56
+ /** std / pro etc. — maps to the engine's render quality mode. */
57
+ renderMode?: EVideoMode;
58
+ } | {
59
+ mode: "hosted";
60
+ /** Provider-hosted avatar id (or trained replica id). */
61
+ hostedAvatarId: string;
62
+ /** Provider-hosted voice id. */
63
+ hostedVoiceId: string;
64
+ /** Script the engine will synthesize + lipsync natively. */
65
+ script: string;
66
+ /** BCP-47 locale for native TTS / dubbing. */
67
+ locale?: string;
68
+ renderMode?: EVideoMode;
69
+ };
70
+ export interface AvatarSubmitResult {
71
+ /** Provider-internal task id, polled via `checkStatus`. */
72
+ providerTaskId: TVideoJobTask;
73
+ }
74
+ export interface AvatarStatusQuery {
75
+ providerTaskId: TVideoJobTask;
76
+ /** Filename (no extension) used when stashing the finished video to storage. */
77
+ outputFilename: string;
78
+ /** Storage sub-path; defaults to the avatar bucket folder. */
79
+ outputFilePath?: string;
80
+ }
81
+ export interface AvatarStatusResult {
82
+ status: EVideoSceneStatus;
83
+ /** Present when status is COMPLETED. */
84
+ videoUrl?: string;
85
+ /** Present when status is FAILED. */
86
+ errorMessage?: string;
87
+ }
88
+ /**
89
+ * Core contract every avatar engine implements. Submit + poll only — TTS,
90
+ * scene-splitting, stitching, credits and retries live in the orchestrator.
91
+ */
92
+ export interface IAvatarVideoProvider {
93
+ readonly engine: EAvatarEngine;
94
+ readonly capabilities: AvatarCapabilities;
95
+ generate(req: AvatarGenerateRequest): Promise<AvatarSubmitResult>;
96
+ checkStatus(query: AvatarStatusQuery): Promise<AvatarStatusResult>;
97
+ }
98
+ export interface AvatarOption {
99
+ id: string;
100
+ name: string;
101
+ previewUrl?: string;
102
+ }
103
+ export interface VoiceOption {
104
+ id: string;
105
+ name: string;
106
+ gender?: "male" | "female" | "neutral";
107
+ accent?: string;
108
+ previewUrl?: string;
109
+ }
110
+ export interface ConsentRecord {
111
+ /** Who consented (user id). */
112
+ userId: string;
113
+ /** Free-text or signed consent reference for likeness training. */
114
+ statement: string;
115
+ /** ISO timestamp the consent was captured. */
116
+ capturedAt: string;
117
+ }
118
+ /** Engine exposes a catalog of hosted avatars/voices (HeyGen, Tavus, Synthesia). */
119
+ export interface ISupportsHostedCatalog {
120
+ listAvatars(): Promise<AvatarOption[]>;
121
+ listVoices(): Promise<VoiceOption[]>;
122
+ }
123
+ /** Engine can train a likeness replica from user media (HeyGen instant avatar, Tavus replica). */
124
+ export interface ISupportsReplica {
125
+ createReplica(trainingMediaUrl: string, consent: ConsentRecord): Promise<{
126
+ replicaId: string;
127
+ }>;
128
+ }
129
+ /** Engine can dub an existing video into another language (Tavus — our multilingual wedge). */
130
+ export interface ISupportsDubbing {
131
+ dub(videoUrl: string, targetLocale: string): Promise<AvatarSubmitResult>;
132
+ }
133
+ export declare function supportsHostedCatalog(p: IAvatarVideoProvider): p is IAvatarVideoProvider & ISupportsHostedCatalog;
134
+ export declare function supportsReplica(p: IAvatarVideoProvider): p is IAvatarVideoProvider & ISupportsReplica;
135
+ export declare function supportsDubbing(p: IAvatarVideoProvider): p is IAvatarVideoProvider & ISupportsDubbing;
136
+ //# sourceMappingURL=IAvatarVideoProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAvatarVideoProvider.d.ts","sourceRoot":"","sources":["../../../src/services/avatarGen/IAvatarVideoProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EAvatarEngine = void 0;
4
+ exports.supportsHostedCatalog = supportsHostedCatalog;
5
+ exports.supportsReplica = supportsReplica;
6
+ exports.supportsDubbing = supportsDubbing;
7
+ /**
8
+ * Avatar video generation — a first-class provider abstraction, deliberately
9
+ * SEPARATE from the generic `BaseAiGenProviderService` (text/image → video).
10
+ *
11
+ * Why its own seam (SOLID):
12
+ * - SRP: animating a presenter/script into a talking video is a different
13
+ * responsibility from text/image→video generation. Each gets its own contract.
14
+ * - ISP: avatar engines have different capabilities (hosted avatar catalogs,
15
+ * trained replicas, dubbing). Those are NARROW optional interfaces below, so
16
+ * no engine has to no-op methods it doesn't support.
17
+ * - DIP: the worker's `AvatarJobProcessor` and the agent's avatar tool depend on
18
+ * THIS interface, not on any concrete engine (Kling/HeyGen/Tavus).
19
+ * - OCP: adding an engine = add a class + register it in the avatar factory,
20
+ * with zero edits to the processor.
21
+ *
22
+ * Today `kling-avatar` is the only implementation (it adapts the shared Kling
23
+ * transport via `KlingAvatarProvider`). HeyGen/Tavus/Synthesia plug in here next.
24
+ */
25
+ var EAvatarEngine;
26
+ (function (EAvatarEngine) {
27
+ EAvatarEngine["KLING"] = "kling";
28
+ EAvatarEngine["HEYGEN"] = "heygen";
29
+ EAvatarEngine["TAVUS"] = "tavus";
30
+ EAvatarEngine["SYNTHESIA"] = "synthesia";
31
+ })(EAvatarEngine || (exports.EAvatarEngine = EAvatarEngine = {}));
32
+ // ─── Type guards ─────────────────────────────────────────────────────────────
33
+ function supportsHostedCatalog(p) {
34
+ return (typeof p.listAvatars === "function" &&
35
+ typeof p.listVoices === "function");
36
+ }
37
+ function supportsReplica(p) {
38
+ return typeof p.createReplica === "function";
39
+ }
40
+ function supportsDubbing(p) {
41
+ return typeof p.dub === "function";
42
+ }
@@ -0,0 +1,18 @@
1
+ import { EVideoGenModels } from "../../globals/aiModels";
2
+ import { AvatarCapabilities, IAvatarVideoProvider } from "./IAvatarVideoProvider";
3
+ /** True if `modelKey` is an avatar model handled by a dedicated avatar provider. */
4
+ export declare function isAvatarModel(modelKey: EVideoGenModels): boolean;
5
+ /** Capabilities for an avatar model, or undefined if it isn't an avatar model. */
6
+ export declare function getAvatarCapabilities(modelKey: EVideoGenModels): AvatarCapabilities | undefined;
7
+ /**
8
+ * True for "hosted" avatar engines (HeyGen/Tavus) — the engine owns TTS + lipsync
9
+ * from a script, so the orchestrator skips the byo-media (face image + audio)
10
+ * path. False for byo-media engines (Kling) and non-avatar models.
11
+ */
12
+ export declare function isHostedAvatarModel(modelKey: EVideoGenModels): boolean;
13
+ /**
14
+ * Resolve the avatar provider for a model key. Throws if the model isn't an
15
+ * avatar model (callers should gate on `isAvatarModel` or know the model type).
16
+ */
17
+ export declare function getAvatarVideoProvider(modelKey: EVideoGenModels): IAvatarVideoProvider;
18
+ //# sourceMappingURL=avatarProviderFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatarProviderFactory.d.ts","sourceRoot":"","sources":["../../../src/services/avatarGen/avatarProviderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AA4ClF,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAEhE;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,eAAe,GACxB,kBAAkB,GAAG,SAAS,CAEhC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAEtE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,eAAe,GACxB,oBAAoB,CAMtB"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isAvatarModel = isAvatarModel;
4
+ exports.getAvatarCapabilities = getAvatarCapabilities;
5
+ exports.isHostedAvatarModel = isHostedAvatarModel;
6
+ exports.getAvatarVideoProvider = getAvatarVideoProvider;
7
+ const aiModels_1 = require("../../globals/aiModels");
8
+ const heygenAvatarProvider_1 = require("./providers/heygenAvatarProvider");
9
+ const klingAvatarProvider_1 = require("./providers/klingAvatarProvider");
10
+ const tavusAvatarProvider_1 = require("./providers/tavusAvatarProvider");
11
+ const avatarProviderMap = {
12
+ [aiModels_1.EVideoGenModels.KLING_AVATAR]: (modelKey) => new klingAvatarProvider_1.KlingAvatarProvider(modelKey),
13
+ [aiModels_1.EVideoGenModels.HEYGEN_AVATAR]: (modelKey) => new heygenAvatarProvider_1.HeyGenAvatarProvider(modelKey),
14
+ [aiModels_1.EVideoGenModels.TAVUS_AVATAR]: (modelKey) => new tavusAvatarProvider_1.TavusAvatarProvider(modelKey),
15
+ };
16
+ /**
17
+ * Static capability lookup, keyed off each provider's `CAPABILITIES` constant —
18
+ * so orchestrators (the worker, controllers) can branch on input mode WITHOUT
19
+ * constructing a provider (construction needs the engine's API key, which would
20
+ * make a simple "is this hosted?" check fail when keys are absent). Single
21
+ * source of truth: each entry references the provider class's own static.
22
+ */
23
+ const avatarCapabilityMap = {
24
+ [aiModels_1.EVideoGenModels.KLING_AVATAR]: klingAvatarProvider_1.KlingAvatarProvider.CAPABILITIES,
25
+ [aiModels_1.EVideoGenModels.HEYGEN_AVATAR]: heygenAvatarProvider_1.HeyGenAvatarProvider.CAPABILITIES,
26
+ [aiModels_1.EVideoGenModels.TAVUS_AVATAR]: tavusAvatarProvider_1.TavusAvatarProvider.CAPABILITIES,
27
+ };
28
+ /** True if `modelKey` is an avatar model handled by a dedicated avatar provider. */
29
+ function isAvatarModel(modelKey) {
30
+ return modelKey in avatarProviderMap;
31
+ }
32
+ /** Capabilities for an avatar model, or undefined if it isn't an avatar model. */
33
+ function getAvatarCapabilities(modelKey) {
34
+ return avatarCapabilityMap[modelKey];
35
+ }
36
+ /**
37
+ * True for "hosted" avatar engines (HeyGen/Tavus) — the engine owns TTS + lipsync
38
+ * from a script, so the orchestrator skips the byo-media (face image + audio)
39
+ * path. False for byo-media engines (Kling) and non-avatar models.
40
+ */
41
+ function isHostedAvatarModel(modelKey) {
42
+ return avatarCapabilityMap[modelKey]?.inputMode === "hosted";
43
+ }
44
+ /**
45
+ * Resolve the avatar provider for a model key. Throws if the model isn't an
46
+ * avatar model (callers should gate on `isAvatarModel` or know the model type).
47
+ */
48
+ function getAvatarVideoProvider(modelKey) {
49
+ const factory = avatarProviderMap[modelKey];
50
+ if (!factory) {
51
+ throw new Error(`No avatar provider registered for model: ${modelKey}`);
52
+ }
53
+ return factory(modelKey);
54
+ }
@@ -0,0 +1,6 @@
1
+ export * from "./IAvatarVideoProvider";
2
+ export * from "./avatarProviderFactory";
3
+ export * from "./providers/klingAvatarProvider";
4
+ export * from "./providers/heygenAvatarProvider";
5
+ export * from "./providers/tavusAvatarProvider";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/avatarGen/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./IAvatarVideoProvider"), exports);
18
+ __exportStar(require("./avatarProviderFactory"), exports);
19
+ __exportStar(require("./providers/klingAvatarProvider"), exports);
20
+ __exportStar(require("./providers/heygenAvatarProvider"), exports);
21
+ __exportStar(require("./providers/tavusAvatarProvider"), exports);
@@ -0,0 +1,45 @@
1
+ import { EVideoGenModels } from "../../../globals/aiModels";
2
+ import { AvatarCapabilities, AvatarGenerateRequest, AvatarOption, AvatarStatusQuery, AvatarStatusResult, AvatarSubmitResult, EAvatarEngine, IAvatarVideoProvider, ISupportsHostedCatalog, VoiceOption } from "../IAvatarVideoProvider";
3
+ /**
4
+ * HeyGen avatar engine — a HOSTED engine (the caller picks a HeyGen-hosted
5
+ * avatar + voice and supplies a script; HeyGen does its own TTS + lipsync).
6
+ *
7
+ * Contract (HeyGen API, verified 2026-06-26 against developers.heygen.com +
8
+ * the published OpenAPI spec; v2 endpoints supported through 2026-10-31):
9
+ * • submit : POST /v2/video/generate → { data: { video_id } }
10
+ * • status : GET /v1/video_status.get?video_id=… → { data: { status, video_url } }
11
+ * • avatars: GET /v2/avatars → { data: { avatars: [...] } }
12
+ * • voices : GET /v2/voices → { data: { voices: [...] } }
13
+ * • auth : X-Api-Key header
14
+ *
15
+ * This is a STANDALONE class (not an adapter over an existing service) because
16
+ * HeyGen has no representation in the generic video factory — avatar gen is its
17
+ * own concern (see IAvatarVideoProvider). Transport (auth + timeout + retry) is
18
+ * owned here, mirroring the per-provider pattern KlingService uses.
19
+ *
20
+ * Capabilities: inputMode "hosted", nativeTts true (HeyGen synthesizes), no
21
+ * multi-scene split (one render per script). It also exposes the hosted catalog
22
+ * (ISupportsHostedCatalog) so the UI / agent can list pickable avatars + voices.
23
+ */
24
+ export declare class HeyGenAvatarProvider implements IAvatarVideoProvider, ISupportsHostedCatalog {
25
+ private readonly modelKey;
26
+ /** Static so callers can branch on capability without constructing (which
27
+ * would require HEYGEN_API_KEY just to read the input mode). */
28
+ static readonly CAPABILITIES: AvatarCapabilities;
29
+ readonly engine = EAvatarEngine.HEYGEN;
30
+ readonly capabilities: AvatarCapabilities;
31
+ private readonly baseUrl;
32
+ private readonly apiKey;
33
+ private readonly submitTimeout;
34
+ private readonly statusTimeout;
35
+ constructor(modelKey?: EVideoGenModels);
36
+ generate(req: AvatarGenerateRequest): Promise<AvatarSubmitResult>;
37
+ checkStatus(query: AvatarStatusQuery): Promise<AvatarStatusResult>;
38
+ listAvatars(): Promise<AvatarOption[]>;
39
+ listVoices(): Promise<VoiceOption[]>;
40
+ private normalizeGender;
41
+ private request;
42
+ /** Retries transient network/timeout/429 failures with a small backoff. */
43
+ private requestWithRetry;
44
+ }
45
+ //# sourceMappingURL=heygenAvatarProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heygenAvatarProvider.d.ts","sourceRoot":"","sources":["../../../../src/services/avatarGen/providers/heygenAvatarProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAI5D,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,WAAW,EACZ,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,oBACX,YAAW,oBAAoB,EAAE,sBAAsB;IAmBrD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAjB3B;qEACiE;IACjE,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAI9C;IAEF,QAAQ,CAAC,MAAM,wBAAwB;IACvC,QAAQ,CAAC,YAAY,qBAAqC;IAE1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAW;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;gBAGrB,QAAQ,GAAE,eAA+C;IAQtE,QAAQ,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6CjE,WAAW,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgClE,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAYtC,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAwB1C,OAAO,CAAC,eAAe;YAOT,OAAO;IA0BrB,2EAA2E;YAC7D,gBAAgB;CAmD/B"}