vidspotai-shared 1.0.100 → 1.0.101-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/globals/aiModels/enums.d.ts +1 -0
- package/lib/globals/aiModels/enums.d.ts.map +1 -1
- package/lib/globals/aiModels/enums.js +3 -0
- package/lib/globals/aiModels/extendCapability.d.ts +26 -0
- package/lib/globals/aiModels/extendCapability.d.ts.map +1 -0
- package/lib/globals/aiModels/extendCapability.js +42 -0
- package/lib/globals/aiModels/index.d.ts +1 -0
- package/lib/globals/aiModels/index.d.ts.map +1 -1
- package/lib/globals/aiModels/index.js +1 -0
- package/lib/globals/aiModels/providers/google.d.ts.map +1 -1
- package/lib/globals/aiModels/providers/google.js +6 -9
- package/lib/globals/aiModels/providers/hostedAvatars.js +10 -10
- package/lib/globals/creditUnit.d.ts +20 -33
- package/lib/globals/creditUnit.d.ts.map +1 -1
- package/lib/globals/creditUnit.js +20 -33
- package/lib/globals/types.d.ts +34 -2
- package/lib/globals/types.d.ts.map +1 -1
- package/lib/globals/types.js +37 -0
- package/lib/models/demoVideoProject.model.d.ts +213 -0
- package/lib/models/demoVideoProject.model.d.ts.map +1 -1
- package/lib/models/index.d.ts +2 -0
- package/lib/models/index.d.ts.map +1 -1
- package/lib/models/index.js +2 -0
- package/lib/models/mediaUpload.model.d.ts +25 -0
- package/lib/models/mediaUpload.model.d.ts.map +1 -1
- package/lib/models/productConnection.model.d.ts +57 -0
- package/lib/models/productConnection.model.d.ts.map +1 -0
- package/lib/models/productConnection.model.js +7 -0
- package/lib/models/video.model.d.ts +11 -0
- package/lib/models/video.model.d.ts.map +1 -1
- package/lib/models/videoQaJob.model.d.ts +61 -0
- package/lib/models/videoQaJob.model.d.ts.map +1 -0
- package/lib/models/videoQaJob.model.js +16 -0
- package/lib/schemas/brandKit.schema.d.ts +3 -1
- package/lib/schemas/brandKit.schema.d.ts.map +1 -1
- package/lib/schemas/brandKit.schema.js +9 -0
- package/lib/schemas/brief.schema.d.ts +5 -4
- package/lib/schemas/brief.schema.d.ts.map +1 -1
- package/lib/schemas/brief.schema.js +23 -1
- package/lib/schemas/demoQuestion.schema.d.ts +24 -4
- package/lib/schemas/demoQuestion.schema.d.ts.map +1 -1
- package/lib/schemas/demoQuestion.schema.js +8 -2
- package/lib/schemas/demoSpec.schema.d.ts +40 -6
- package/lib/schemas/demoSpec.schema.d.ts.map +1 -1
- package/lib/schemas/demoSpec.schema.js +46 -1
- package/lib/schemas/project.schema.d.ts +33 -3
- package/lib/schemas/project.schema.d.ts.map +1 -1
- package/lib/schemas/project.schema.js +22 -0
- package/lib/schemas/social.schema.d.ts +1 -1
- package/lib/schemas/videoPlan.schema.d.ts +22 -20
- package/lib/schemas/videoPlan.schema.d.ts.map +1 -1
- package/lib/schemas/videoPlan.schema.js +19 -0
- package/lib/services/agent/editClassifier.d.ts +10 -10
- package/lib/services/agent/eval/types.d.ts +3 -2
- package/lib/services/agent/eval/types.d.ts.map +1 -1
- package/lib/services/agent/executor/core.d.ts.map +1 -1
- package/lib/services/agent/executor/core.js +11 -0
- package/lib/services/agent/planner/Planner.d.ts.map +1 -1
- package/lib/services/agent/planner/Planner.js +5 -0
- package/lib/services/agent/planner/overlayRegen.d.ts.map +1 -1
- package/lib/services/agent/planner/overlayRegen.js +5 -0
- package/lib/services/agent/planner/plannerMessages.d.ts.map +1 -1
- package/lib/services/agent/planner/plannerMessages.js +10 -1
- package/lib/services/agent/planner/scriptFirstPlanner.d.ts.map +1 -1
- package/lib/services/agent/planner/scriptFirstPlanner.js +2 -0
- package/lib/services/agent/regenCore.d.ts.map +1 -1
- package/lib/services/agent/regenCore.js +11 -1
- package/lib/services/agent/runHelpers.d.ts +8 -0
- package/lib/services/agent/runHelpers.d.ts.map +1 -1
- package/lib/services/agent/runHelpers.js +5 -1
- package/lib/services/agent/tools/chapterOutline.tool.d.ts +8 -0
- package/lib/services/agent/tools/chapterOutline.tool.d.ts.map +1 -1
- package/lib/services/agent/tools/chapterOutline.tool.js +21 -8
- package/lib/services/agent/tools/composeScene.tool.d.ts +32 -2
- package/lib/services/agent/tools/composeScene.tool.d.ts.map +1 -1
- package/lib/services/agent/tools/estimateCost.tool.d.ts +11 -1
- package/lib/services/agent/tools/estimateCost.tool.d.ts.map +1 -1
- package/lib/services/agent/tools/extendVideo.tool.d.ts +9 -3
- package/lib/services/agent/tools/extendVideo.tool.d.ts.map +1 -1
- package/lib/services/agent/tools/extendVideo.tool.js +12 -27
- package/lib/services/agent/tools/generateAvatarVideo.tool.d.ts +1 -1
- package/lib/services/agent/tools/generateScript.tool.d.ts +3 -2
- package/lib/services/agent/tools/generateScript.tool.d.ts.map +1 -1
- package/lib/services/agent/tools/generateScript.tool.js +16 -7
- package/lib/services/agent/tools/generateVoiceover.tool.d.ts +1 -1
- package/lib/services/agent/tools/planVideo.tool.d.ts +11 -8
- package/lib/services/agent/tools/planVideo.tool.d.ts.map +1 -1
- package/lib/services/agent/tools/render.tool.d.ts +11 -1
- package/lib/services/agent/tools/render.tool.d.ts.map +1 -1
- package/lib/services/agent/tools/searchStock.tool.d.ts +1 -1
- package/lib/services/agent/tools/searchUserLibrary.tool.d.ts +4 -4
- package/lib/services/aiGen/providers/alibaba/alibaba.d.ts +0 -6
- package/lib/services/aiGen/providers/alibaba/alibaba.d.ts.map +1 -1
- package/lib/services/aiGen/providers/alibaba/alibaba.js +5 -103
- package/lib/services/aiGen/providers/bytedance/bytedance.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/bytedance/bytedance.service.js +1 -9
- package/lib/services/aiGen/providers/google/google.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/google/google.service.js +26 -142
- package/lib/services/aiGen/providers/google/googleErrors.d.ts.map +1 -1
- package/lib/services/aiGen/providers/google/googleErrors.js +7 -17
- package/lib/services/aiGen/providers/kling/kling.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/kling/kling.service.js +22 -3
- package/lib/services/aiGen/providers/kling/klingStatus.d.ts +7 -0
- package/lib/services/aiGen/providers/kling/klingStatus.d.ts.map +1 -1
- package/lib/services/aiGen/providers/kling/klingStatus.js +41 -4
- package/lib/services/aiGen/providers/pixverse/pixverse.service.d.ts.map +1 -1
- package/lib/services/aiGen/providers/pixverse/pixverse.service.js +25 -0
- package/lib/services/aiGen/providers/types.d.ts +20 -0
- package/lib/services/aiGen/providers/types.d.ts.map +1 -1
- package/lib/services/avatarGen/avatarProviderFactory.d.ts.map +1 -1
- package/lib/services/avatarGen/avatarProviderFactory.js +3 -0
- package/lib/services/avatarGen/index.d.ts +1 -0
- package/lib/services/avatarGen/index.d.ts.map +1 -1
- package/lib/services/avatarGen/index.js +1 -0
- package/lib/services/avatarGen/providers/synthesiaAvatarProvider.d.ts +53 -0
- package/lib/services/avatarGen/providers/synthesiaAvatarProvider.d.ts.map +1 -0
- package/lib/services/avatarGen/providers/synthesiaAvatarProvider.js +176 -0
- package/lib/services/demo/demoAuthor.d.ts +7 -0
- package/lib/services/demo/demoAuthor.d.ts.map +1 -1
- package/lib/services/demo/demoAuthor.js +2 -0
- package/lib/services/demo/demoAuthorPrompt.d.ts +6 -0
- package/lib/services/demo/demoAuthorPrompt.d.ts.map +1 -1
- package/lib/services/demo/demoAuthorPrompt.js +24 -2
- package/lib/services/demo/demoCaptions.d.ts +69 -0
- package/lib/services/demo/demoCaptions.d.ts.map +1 -0
- package/lib/services/demo/demoCaptions.js +152 -0
- package/lib/services/demo/demoMusic.d.ts +8 -1
- package/lib/services/demo/demoMusic.d.ts.map +1 -1
- package/lib/services/demo/demoMusic.js +32 -16
- package/lib/services/demo/demoScriptPrompt.d.ts +2 -1
- package/lib/services/demo/demoScriptPrompt.d.ts.map +1 -1
- package/lib/services/demo/demoScriptPrompt.js +29 -2
- package/lib/services/demo/demoStockAssets.d.ts +29 -0
- package/lib/services/demo/demoStockAssets.d.ts.map +1 -0
- package/lib/services/demo/demoStockAssets.js +107 -0
- package/lib/services/demo/index.d.ts +3 -0
- package/lib/services/demo/index.d.ts.map +1 -1
- package/lib/services/demo/index.js +3 -0
- package/lib/services/demo/productConnection.service.d.ts +78 -0
- package/lib/services/demo/productConnection.service.d.ts.map +1 -0
- package/lib/services/demo/productConnection.service.js +125 -0
- package/lib/services/editor/planToProject.d.ts.map +1 -1
- package/lib/services/editor/planToProject.helpers.d.ts +1 -0
- package/lib/services/editor/planToProject.helpers.d.ts.map +1 -1
- package/lib/services/editor/planToProject.helpers.js +3 -0
- package/lib/services/editor/planToProject.js +39 -0
- package/lib/services/editor/projectToDesign.js +13 -1
- package/lib/services/firestore.service.d.ts +14 -0
- package/lib/services/firestore.service.d.ts.map +1 -1
- package/lib/services/firestore.service.js +16 -0
- package/lib/services/translation/index.d.ts +1 -0
- package/lib/services/translation/index.d.ts.map +1 -1
- package/lib/services/translation/index.js +8 -1
- package/lib/services/translation/outputLanguage.d.ts +75 -0
- package/lib/services/translation/outputLanguage.d.ts.map +1 -0
- package/lib/services/translation/outputLanguage.js +190 -0
- package/lib/services/translation/translation.service.d.ts +13 -2
- package/lib/services/translation/translation.service.d.ts.map +1 -1
- package/lib/services/translation/translation.service.js +73 -31
- package/lib/services/tts/index.d.ts +1 -0
- package/lib/services/tts/index.d.ts.map +1 -1
- package/lib/services/tts/index.js +1 -0
- package/lib/services/tts/providers/elevenlabs.service.d.ts +7 -0
- package/lib/services/tts/providers/elevenlabs.service.d.ts.map +1 -1
- package/lib/services/tts/providers/elevenlabs.service.js +69 -13
- package/lib/services/tts/types.d.ts +29 -0
- package/lib/services/tts/types.d.ts.map +1 -1
- package/lib/services/tts/wordTimings.d.ts +27 -0
- package/lib/services/tts/wordTimings.d.ts.map +1 -0
- package/lib/services/tts/wordTimings.js +57 -0
- package/lib/utils/billableDuration.d.ts +11 -0
- package/lib/utils/billableDuration.d.ts.map +1 -0
- package/lib/utils/billableDuration.js +91 -0
- package/lib/utils/index.d.ts +3 -0
- package/lib/utils/index.d.ts.map +1 -1
- package/lib/utils/index.js +3 -0
- package/lib/utils/mp4Duration.d.ts +38 -0
- package/lib/utils/mp4Duration.d.ts.map +1 -0
- package/lib/utils/mp4Duration.js +164 -0
- package/lib/utils/socialEntitlements.d.ts +51 -0
- package/lib/utils/socialEntitlements.d.ts.map +1 -0
- package/lib/utils/socialEntitlements.js +65 -0
- package/package.json +1 -1
|
@@ -34,6 +34,14 @@ export interface IDemoVideoInputs {
|
|
|
34
34
|
websiteUrl?: string;
|
|
35
35
|
/** User-uploaded product screenshots (GCS URLs). The reliable fallback for auth'd SaaS. */
|
|
36
36
|
screenshotUrls?: string[];
|
|
37
|
+
/**
|
|
38
|
+
* Opt-in: record a short screencast of `websiteUrl` in a headless browser and
|
|
39
|
+
* feature it as B-roll (Tier 1 of the product-footage-capture feature —
|
|
40
|
+
* notes/PRODUCT_FOOTAGE_CAPTURE_PLAN.md). Only acts when the worker's
|
|
41
|
+
* `DEMO_RECORD_ENABLED` kill-switch is also on; otherwise ignored. Records the
|
|
42
|
+
* PUBLIC page only — authenticated capture (Tier 2) is a separate connect flow.
|
|
43
|
+
*/
|
|
44
|
+
recordProductUrl?: boolean;
|
|
37
45
|
/** Public GitHub repo URL (v1) — read for brand tokens + feature extraction. OAuth depth is v2. */
|
|
38
46
|
githubRepoUrl?: string;
|
|
39
47
|
/**
|
|
@@ -138,6 +146,29 @@ export interface IDemoPendingClarification {
|
|
|
138
146
|
/** Epoch ms when we paused. */
|
|
139
147
|
createdAt: number;
|
|
140
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* A worker pause waiting for the user to (re)connect their product sign-in so the
|
|
151
|
+
* RECORDING stage can replay it and capture the authenticated UI (Tier 2
|
|
152
|
+
* product-footage-capture). Set when an authed replay hits a login wall (expired
|
|
153
|
+
* or missing session) with status AWAITING_INPUT. The user reconnects via the
|
|
154
|
+
* live sign-in session (which re-captures the storageState), then a resume clears
|
|
155
|
+
* this and re-enqueues. Sibling of {@link IDemoPendingClarification} — same pause
|
|
156
|
+
* seam, different `kind`.
|
|
157
|
+
*/
|
|
158
|
+
export interface IDemoPendingSignin {
|
|
159
|
+
/** Discriminator — a sign-in reconnect pause. */
|
|
160
|
+
kind: "signin";
|
|
161
|
+
/** Origin host of the product whose session expired / is missing. */
|
|
162
|
+
host: string;
|
|
163
|
+
/** The product URL to reconnect + record. */
|
|
164
|
+
productUrl: string;
|
|
165
|
+
/** Deep-link the frontend Connect modal can open (set by the frontend surface). */
|
|
166
|
+
connectUrl?: string;
|
|
167
|
+
/** The stage the worker paused BEFORE, so resume re-enters at the right place. */
|
|
168
|
+
resumeStage: EDemoVideoStatus;
|
|
169
|
+
/** Epoch ms when we paused. */
|
|
170
|
+
createdAt: number;
|
|
171
|
+
}
|
|
141
172
|
/** One timeline-synced narration segment, authored from the rendered DemoSpec timeline (plan §6). */
|
|
142
173
|
export interface IDemoVideoScriptSegment {
|
|
143
174
|
/** Scene this narration belongs to (matches DemoScene.id). */
|
|
@@ -149,6 +180,48 @@ export interface IDemoVideoScriptSegment {
|
|
|
149
180
|
/** Spoken duration, ms (post-TTS, speed-matched to the scene). */
|
|
150
181
|
durationMs: number;
|
|
151
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
* One word of narration, timed on the VIDEO timeline (not relative to its own
|
|
185
|
+
* segment). Absolute times are what the renderer and the `.srt` both need, and
|
|
186
|
+
* keeping one clock avoids an off-by-a-segment class of bug.
|
|
187
|
+
*/
|
|
188
|
+
export interface IDemoCaptionWord {
|
|
189
|
+
word: string;
|
|
190
|
+
startMs: number;
|
|
191
|
+
endMs: number;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* One on-screen caption line. A narration SEGMENT is per-scene and can run 30+
|
|
195
|
+
* words; a CUE is what a viewer can actually read at once, so one segment
|
|
196
|
+
* usually yields several cues (see `buildCaptionTrack`).
|
|
197
|
+
*/
|
|
198
|
+
export interface IDemoCaptionCue {
|
|
199
|
+
/** Scene this cue's narration belongs to (matches DemoScene.id). */
|
|
200
|
+
sceneId: string;
|
|
201
|
+
/** The full line, as displayed. */
|
|
202
|
+
text: string;
|
|
203
|
+
startMs: number;
|
|
204
|
+
endMs: number;
|
|
205
|
+
/**
|
|
206
|
+
* Per-word timings for the karaoke/word-pop presets. Empty when the TTS
|
|
207
|
+
* provider returned no alignment — the renderer then spaces words evenly
|
|
208
|
+
* across the cue, so a cue is never dropped for want of timings.
|
|
209
|
+
*/
|
|
210
|
+
words: IDemoCaptionWord[];
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Burned-in caption track for a demo video, derived from the ACTUAL synthesized
|
|
214
|
+
* speech (ElevenLabs character alignment), not from a words-per-second estimate.
|
|
215
|
+
*
|
|
216
|
+
* Pipeline-owned and deliberately NOT part of `DemoSpec`: the spec doubles as the
|
|
217
|
+
* planner LLM's structured-output schema, and word timings are something only the
|
|
218
|
+
* voicing stage can know. Persisted at `demoVideoProjects.captionTrack`.
|
|
219
|
+
*/
|
|
220
|
+
export interface IDemoCaptionTrack {
|
|
221
|
+
cues: IDemoCaptionCue[];
|
|
222
|
+
/** True when timings came from real provider alignment rather than estimation. */
|
|
223
|
+
fromAlignment: boolean;
|
|
224
|
+
}
|
|
152
225
|
/** Per-stage wall-clock timing (feedback_track_stage_timings). Persisted so we can spot stuck-vs-slow. */
|
|
153
226
|
export interface IDemoVideoStageTiming {
|
|
154
227
|
stage: EDemoVideoStatus;
|
|
@@ -156,6 +229,108 @@ export interface IDemoVideoStageTiming {
|
|
|
156
229
|
startedAt: number;
|
|
157
230
|
/** Wall-clock duration of the stage, ms (set when it ends). */
|
|
158
231
|
ms?: number;
|
|
232
|
+
/**
|
|
233
|
+
* Human-readable narration of what this stage actually saw and did — e.g.
|
|
234
|
+
* "Planned 9 scenes · 82s · problem-solution" or "Checks passed · repaired
|
|
235
|
+
* audio loudness" (plan §12 / Phase 4, AG-NARRATE). Written by the worker when
|
|
236
|
+
* the stage resolves, from the stage's REAL result (deterministic, no LLM), and
|
|
237
|
+
* capped short enough to render in a timeline row. Absent for stages with
|
|
238
|
+
* nothing worth narrating, and on projects generated before Phase 4.
|
|
239
|
+
*/
|
|
240
|
+
note?: string;
|
|
241
|
+
}
|
|
242
|
+
/** Verdict for a single Output-QA check. `warn` ships; `fail` records a caveat. */
|
|
243
|
+
export type EDemoQaStatus = "pass" | "warn" | "fail";
|
|
244
|
+
/**
|
|
245
|
+
* One deterministic technical check the Output-QA supervisor ran against the
|
|
246
|
+
* muxed deliverable (plan §12 / Phase 1). Mirrors, in code, the ffprobe/ffmpeg
|
|
247
|
+
* checks a human runs by hand: duration parity, faststart/moov order, audio
|
|
248
|
+
* presence + non-silence, stream/dimension integrity.
|
|
249
|
+
*/
|
|
250
|
+
export interface IDemoQaCheck {
|
|
251
|
+
/** Stable machine id, e.g. `duration-parity`, `faststart`, `audio-non-silence`. */
|
|
252
|
+
id: string;
|
|
253
|
+
/** Human-readable label for the UI/logs. */
|
|
254
|
+
label: string;
|
|
255
|
+
status: EDemoQaStatus;
|
|
256
|
+
/** What was observed vs expected (e.g. "actual 81.30s vs expected 81.50s (Δ200ms)"). */
|
|
257
|
+
detail: string;
|
|
258
|
+
}
|
|
259
|
+
/** What the perceptual supervisor recommends doing with the reviewed cut. */
|
|
260
|
+
export type EDemoQaRecommendation = "ship" | "ship-with-caveats" | "revise";
|
|
261
|
+
/** One perceptual (watched-it-back) finding from the Gemini critic (Phase 2). */
|
|
262
|
+
export interface IDemoQaPerceptualFinding {
|
|
263
|
+
severity: EDemoQaStatus;
|
|
264
|
+
/** Rubric axis, e.g. `hookStrength`, `voiceoverPacing`, `brandTextLegibility`. */
|
|
265
|
+
dimension: string;
|
|
266
|
+
message: string;
|
|
267
|
+
/** 0-based scene index the finding maps to, when the critic could localize it. */
|
|
268
|
+
sceneIndexHint?: number;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Perceptual half of the Output-QA supervisor (plan §12 / Phase 2): the Gemini
|
|
272
|
+
* "watch it back and judge it" pass that grades what ffprobe can't — hook, VO
|
|
273
|
+
* clarity/pacing, brand-text legibility, cut rhythm, CTA, overall shippability —
|
|
274
|
+
* plus the AG-45 gate's recommendation. Present only when the perceptual critic
|
|
275
|
+
* ran (flag `DEMO_PERCEPTUAL_QA_ENABLED` + a Gemini key). Non-blocking: a low
|
|
276
|
+
* score is a recommendation, not a hard failure.
|
|
277
|
+
*/
|
|
278
|
+
export interface IDemoQaPerceptual {
|
|
279
|
+
/** Production-readiness 0–10 (Gemini's weighted score). */
|
|
280
|
+
score: number;
|
|
281
|
+
/** Would a paying customer accept this as-is? */
|
|
282
|
+
shippable: boolean;
|
|
283
|
+
/** 2–4 sentence human summary. */
|
|
284
|
+
summary: string;
|
|
285
|
+
findings: IDemoQaPerceptualFinding[];
|
|
286
|
+
/** What the supervisor recommends: ship / ship-with-caveats / revise. */
|
|
287
|
+
recommendation: EDemoQaRecommendation;
|
|
288
|
+
/** Raw AG-45 gate action (`ship`/`remix`/`regen-scenes`/`replan`…) for telemetry. */
|
|
289
|
+
gateAction: string;
|
|
290
|
+
/** Human-readable why, from the gate. */
|
|
291
|
+
reason: string;
|
|
292
|
+
/** Caveats to surface when recommendation = ship-with-caveats. */
|
|
293
|
+
caveats?: string[];
|
|
294
|
+
/** Whether an auto-revise was actually triggered off this review. */
|
|
295
|
+
autoRevised?: boolean;
|
|
296
|
+
/** Epoch ms the perceptual pass finished. */
|
|
297
|
+
ranAt: number;
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Structured result of the Output-QA supervisor stage (QA_REVIEW). Persisted on
|
|
301
|
+
* the project for observability + the Phase-3 "where is the issue" UI. QA is
|
|
302
|
+
* NON-blocking: `shippable` may be false (a caveat) but the video still ships.
|
|
303
|
+
*/
|
|
304
|
+
export interface IDemoQaReport {
|
|
305
|
+
/** True when no check ended `fail` (warns are tolerated). */
|
|
306
|
+
ok: boolean;
|
|
307
|
+
/** True when the output is fit to ship (no unrecoverable `fail`). */
|
|
308
|
+
shippable: boolean;
|
|
309
|
+
checks: IDemoQaCheck[];
|
|
310
|
+
/** Machine ids of the ffmpeg auto-fixes actually applied (e.g. `remux-faststart`, `loudnorm`). */
|
|
311
|
+
fixesApplied: string[];
|
|
312
|
+
/** Raw probe snapshot for debugging (durations in ms, audio loudness in dB, dims). */
|
|
313
|
+
probe: {
|
|
314
|
+
videoDurationMs?: number;
|
|
315
|
+
audioDurationMs?: number;
|
|
316
|
+
expectedDurationMs?: number;
|
|
317
|
+
width?: number;
|
|
318
|
+
height?: number;
|
|
319
|
+
fps?: number;
|
|
320
|
+
hasAudio?: boolean;
|
|
321
|
+
audioMeanDb?: number;
|
|
322
|
+
audioMaxDb?: number;
|
|
323
|
+
faststart?: boolean;
|
|
324
|
+
};
|
|
325
|
+
/** Number of validate→fix→re-validate iterations run (0 = passed first look). */
|
|
326
|
+
iterations: number;
|
|
327
|
+
/** Epoch ms the QA pass finished. */
|
|
328
|
+
ranAt: number;
|
|
329
|
+
/**
|
|
330
|
+
* Perceptual review of the deliverable (Phase 2). Present only when the Gemini
|
|
331
|
+
* critic ran (flag-gated + needs a key). Absent = deterministic QA only.
|
|
332
|
+
*/
|
|
333
|
+
perceptual?: IDemoQaPerceptual;
|
|
159
334
|
}
|
|
160
335
|
export interface IDemoVideoProjectModel {
|
|
161
336
|
userId: string;
|
|
@@ -170,6 +345,15 @@ export interface IDemoVideoProjectModel {
|
|
|
170
345
|
* "captured from your site" vs "you uploaded".
|
|
171
346
|
*/
|
|
172
347
|
capturedScreenshotUrls?: string[];
|
|
348
|
+
/**
|
|
349
|
+
* Product footage the worker auto-RECORDED from `inputs.websiteUrl` during the
|
|
350
|
+
* RECORDING stage (Tier 1 product-footage-capture). Stored as featured media
|
|
351
|
+
* assets (`kind: "video"`) so the gather stage re-injects them into the
|
|
352
|
+
* planner's `mediaAssets` on every pass — a redelivered/resumed job reuses the
|
|
353
|
+
* clip instead of re-launching the browser + re-encoding. Absent unless the
|
|
354
|
+
* user opted into `recordProductUrl` and a capture succeeded.
|
|
355
|
+
*/
|
|
356
|
+
capturedFootageUrls?: IDemoMediaAsset[];
|
|
173
357
|
/** The planned, re-renderable DemoSpec. Present once PLANNING completes. */
|
|
174
358
|
demoSpec?: DemoSpec;
|
|
175
359
|
/**
|
|
@@ -198,6 +382,13 @@ export interface IDemoVideoProjectModel {
|
|
|
198
382
|
* steady state. See [[DemoQuestion]].
|
|
199
383
|
*/
|
|
200
384
|
pendingClarification?: IDemoPendingClarification;
|
|
385
|
+
/**
|
|
386
|
+
* Set while the worker is PAUSED (status AWAITING_INPUT) waiting for the user
|
|
387
|
+
* to (re)connect their product sign-in for authenticated recording (Tier 2).
|
|
388
|
+
* Distinct from `pendingClarification` (`kind` discriminator). Absent in steady
|
|
389
|
+
* state; cleared on resume. See {@link IDemoPendingSignin}.
|
|
390
|
+
*/
|
|
391
|
+
pendingSignin?: IDemoPendingSignin;
|
|
201
392
|
/**
|
|
202
393
|
* Ids of clarifying questions this project has ALREADY paused on. The worker's
|
|
203
394
|
* deterministic asset asks (missing logo / screenshots) consult this so a
|
|
@@ -216,6 +407,15 @@ export interface IDemoVideoProjectModel {
|
|
|
216
407
|
script?: IDemoVideoScriptSegment[];
|
|
217
408
|
/** Muxed-in narration track (pre-mux audio asset). */
|
|
218
409
|
voiceoverUrl?: string;
|
|
410
|
+
/**
|
|
411
|
+
* Word-timed captions derived from the synthesized narration, burned into the
|
|
412
|
+
* render (G3). Present once VOICING ran with captions enabled for this aspect /
|
|
413
|
+
* audioIntent. Absent on music-led cuts, on the `DEMO_CAPTIONS_DISABLED`
|
|
414
|
+
* kill-switch, and on projects rendered before G3 landed.
|
|
415
|
+
*/
|
|
416
|
+
captionTrack?: IDemoCaptionTrack;
|
|
417
|
+
/** `.srt` sidecar for YouTube/LinkedIn uploads, generated from `captionTrack`. */
|
|
418
|
+
captionsSrtUrl?: string;
|
|
219
419
|
/**
|
|
220
420
|
* Background-music bed mixed under the narration (ducked). Selected from the
|
|
221
421
|
* curated catalog by DemoSpec style. Persisted for observability + redelivery
|
|
@@ -230,6 +430,19 @@ export interface IDemoVideoProjectModel {
|
|
|
230
430
|
aspect?: DemoSpec["aspect"];
|
|
231
431
|
/** Per-stage timings for observability (persisted into the doc, not a side trace.json). */
|
|
232
432
|
stageTimings?: IDemoVideoStageTiming[];
|
|
433
|
+
/**
|
|
434
|
+
* Result of the Output-QA supervisor stage (QA_REVIEW). Present once QA ran.
|
|
435
|
+
* Non-blocking: a `shippable: false` report still ships the video but records
|
|
436
|
+
* the caveats for the UI. Absent when the `DEMO_QA_DISABLED` kill-switch is set.
|
|
437
|
+
*/
|
|
438
|
+
qaReport?: IDemoQaReport;
|
|
439
|
+
/**
|
|
440
|
+
* How many times the perceptual supervisor has auto-triggered a spec-revise +
|
|
441
|
+
* re-render on this project (Phase 2, gated by `DEMO_QA_AUTOFIX_ENABLED`).
|
|
442
|
+
* Bounded to 1 so a persistently-low critic score can't loop the pipeline (or
|
|
443
|
+
* its cost) forever. Incremented in the same write that sets `pendingRevision`.
|
|
444
|
+
*/
|
|
445
|
+
qaAutoReviseCount?: number;
|
|
233
446
|
estimatedCredits?: number;
|
|
234
447
|
totalCreditsUsed?: number;
|
|
235
448
|
errorMessage?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"demoVideoProject.model.d.ts","sourceRoot":"","sources":["../../src/models/demoVideoProject.model.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"demoVideoProject.model.d.ts","sourceRoot":"","sources":["../../src/models/demoVideoProject.model.ts"],"names":[],"mappings":"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"}
|
package/lib/models/index.d.ts
CHANGED
|
@@ -12,5 +12,7 @@ export * from "./mediaUpload.model";
|
|
|
12
12
|
export * from "./social.model";
|
|
13
13
|
export * from "./demoVideoProject.model";
|
|
14
14
|
export * from "./githubConnection.model";
|
|
15
|
+
export * from "./productConnection.model";
|
|
15
16
|
export * from "./outreach.model";
|
|
17
|
+
export * from "./videoQaJob.model";
|
|
16
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
|
package/lib/models/index.js
CHANGED
|
@@ -28,4 +28,6 @@ __exportStar(require("./mediaUpload.model"), exports);
|
|
|
28
28
|
__exportStar(require("./social.model"), exports);
|
|
29
29
|
__exportStar(require("./demoVideoProject.model"), exports);
|
|
30
30
|
__exportStar(require("./githubConnection.model"), exports);
|
|
31
|
+
__exportStar(require("./productConnection.model"), exports);
|
|
31
32
|
__exportStar(require("./outreach.model"), exports);
|
|
33
|
+
__exportStar(require("./videoQaJob.model"), exports);
|
|
@@ -7,6 +7,19 @@
|
|
|
7
7
|
* (tags, folders, sharing) is v2.
|
|
8
8
|
*/
|
|
9
9
|
export type EMediaUploadKind = "image" | "video" | "audio" | "other";
|
|
10
|
+
/**
|
|
11
|
+
* Lifecycle of an upload record.
|
|
12
|
+
*
|
|
13
|
+
* `single-upload` writes its record only once the bytes are already in GCS, so
|
|
14
|
+
* it has no use for this and legacy rows carry no `status` at all — absent is
|
|
15
|
+
* therefore read as "ready" everywhere. The resumable path (see
|
|
16
|
+
* `mediaUploadSession.controller.ts`) must reserve the row BEFORE the browser
|
|
17
|
+
* starts PUTting, because the object path is the thing being authorized; those
|
|
18
|
+
* rows start `pending` and are flipped once the object is verified present.
|
|
19
|
+
* `aborted` is a tombstone — kept rather than deleted so an interrupted upload
|
|
20
|
+
* can be resumed or garbage-collected on evidence instead of guesswork.
|
|
21
|
+
*/
|
|
22
|
+
export type EMediaUploadStatus = "pending" | "ready" | "aborted";
|
|
10
23
|
export interface IMediaUploadModel {
|
|
11
24
|
userId: string;
|
|
12
25
|
url: string;
|
|
@@ -15,5 +28,17 @@ export interface IMediaUploadModel {
|
|
|
15
28
|
kind: EMediaUploadKind;
|
|
16
29
|
sizeBytes?: number;
|
|
17
30
|
createdAt: string;
|
|
31
|
+
/** Absent means ready — see EMediaUploadStatus. */
|
|
32
|
+
status?: EMediaUploadStatus;
|
|
33
|
+
/**
|
|
34
|
+
* Bucket-relative object path (e.g. `media-uploads/foo-ab12-171.webm`).
|
|
35
|
+
*
|
|
36
|
+
* Only set by the resumable path, which needs to re-derive the GCS handle at
|
|
37
|
+
* completion time. It is deliberately NOT taken from the client on completion:
|
|
38
|
+
* the client would then be able to claim any object in the bucket as its own.
|
|
39
|
+
*/
|
|
40
|
+
objectPath?: string;
|
|
41
|
+
/** Set when this row came from the in-app screen recorder rather than a file picker. */
|
|
42
|
+
source?: "screen-recorder";
|
|
18
43
|
}
|
|
19
44
|
//# sourceMappingURL=mediaUpload.model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediaUpload.model.d.ts","sourceRoot":"","sources":["../../src/models/mediaUpload.model.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"mediaUpload.model.d.ts","sourceRoot":"","sources":["../../src/models/mediaUpload.model.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAErE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { FieldValue } from "firebase-admin/firestore";
|
|
2
|
+
/**
|
|
3
|
+
* Product sign-in connection — the stored, encrypted result of a user signing
|
|
4
|
+
* into their own SaaS product once via the self-hosted live-browser session, so
|
|
5
|
+
* the worker can replay it headlessly and RECORD the authenticated UI as B-roll
|
|
6
|
+
* (Tier 2 of the product-footage-capture feature — notes/PRODUCT_FOOTAGE_CAPTURE_PLAN.md).
|
|
7
|
+
*
|
|
8
|
+
* We NEVER store the user's credentials. The human signs in inside a browser
|
|
9
|
+
* they drive (Google popup, email/password, SSO, magic link — whichever their
|
|
10
|
+
* product uses); we capture only the RESULT — a Playwright-style `storageState`
|
|
11
|
+
* (cookies + localStorage across the origins touched during sign-in) — and store
|
|
12
|
+
* it ENCRYPTED at rest via the shared token vault (AES-256-GCM,
|
|
13
|
+
* `SOCIAL_TOKEN_ENC_KEY`), exactly like {@link IGithubConnectionModel}. Only a
|
|
14
|
+
* worker / Cloud Function decrypts it at replay time.
|
|
15
|
+
*
|
|
16
|
+
* Doc id = `${userId}__${host}` so re-connecting the same product upserts (a
|
|
17
|
+
* fresh session replaces the expired one) and a user can hold several product
|
|
18
|
+
* profiles (one per host), reused across demo projects. Sessions expire, so the
|
|
19
|
+
* worker flips `status` to "expired" when a replay hits a login wall, and the
|
|
20
|
+
* needs_signin resume loop asks the user to reconnect.
|
|
21
|
+
*/
|
|
22
|
+
export interface IProductConnectionModel {
|
|
23
|
+
/** Owning user (also part of the doc id). */
|
|
24
|
+
userId: string;
|
|
25
|
+
/** Origin host of the connected product (part of the doc id), e.g. "app.acme.com". */
|
|
26
|
+
host: string;
|
|
27
|
+
/** The URL the user connected / the default recording target. */
|
|
28
|
+
productUrl: string;
|
|
29
|
+
/**
|
|
30
|
+
* All web origins captured in the session (multi-origin auth — e.g. a product
|
|
31
|
+
* spanning app.acme.com + auth.acme.com). storageState is keyed per origin.
|
|
32
|
+
*/
|
|
33
|
+
origins: string[];
|
|
34
|
+
/** Optional user-facing label ("My dashboard", "Acme staging"). */
|
|
35
|
+
label?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Playwright-style `storageState` (cookies + localStorage) serialized to JSON
|
|
38
|
+
* then ENCRYPTED via the shared token vault. Never store or log plaintext.
|
|
39
|
+
* Decrypt with `decryptToken` only inside a worker / Cloud Function at replay.
|
|
40
|
+
*/
|
|
41
|
+
stateEnc: string;
|
|
42
|
+
/**
|
|
43
|
+
* Best-effort epoch ms of the earliest captured cookie expiry — drives the
|
|
44
|
+
* "reconnect soon" UX. Absent when no expiries were readable (session cookies).
|
|
45
|
+
*/
|
|
46
|
+
expiresHint?: number;
|
|
47
|
+
/** Lifecycle: "active" until a replay detects the session no longer authenticates. */
|
|
48
|
+
status: "active" | "expired";
|
|
49
|
+
/** When the session was captured / last refreshed. */
|
|
50
|
+
capturedAt: FieldValue;
|
|
51
|
+
/** When a worker last replayed it for a recording (observability). */
|
|
52
|
+
lastUsedAt?: FieldValue;
|
|
53
|
+
updatedAt: FieldValue;
|
|
54
|
+
}
|
|
55
|
+
/** Deterministic doc id for a user's product connection (one per host). */
|
|
56
|
+
export declare function productConnectionDocId(userId: string, host: string): string;
|
|
57
|
+
//# sourceMappingURL=productConnection.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"productConnection.model.d.ts","sourceRoot":"","sources":["../../src/models/productConnection.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,uBAAuB;IACtC,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sFAAsF;IACtF,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,sDAAsD;IACtD,UAAU,EAAE,UAAU,CAAC;IACvB,sEAAsE;IACtE,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,EAAE,UAAU,CAAC;CACvB;AAED,2EAA2E;AAC3E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3E"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.productConnectionDocId = productConnectionDocId;
|
|
4
|
+
/** Deterministic doc id for a user's product connection (one per host). */
|
|
5
|
+
function productConnectionDocId(userId, host) {
|
|
6
|
+
return `${userId}__${host}`;
|
|
7
|
+
}
|
|
@@ -16,7 +16,18 @@ export interface IVideoScene {
|
|
|
16
16
|
*/
|
|
17
17
|
taskProvider?: string;
|
|
18
18
|
sceneIndex: number;
|
|
19
|
+
/** REQUESTED duration, in seconds. What we asked the provider for. */
|
|
19
20
|
duration?: number;
|
|
21
|
+
/**
|
|
22
|
+
* DELIVERED duration, in seconds, when the provider reports it
|
|
23
|
+
* (VideoStatusResult.durationSec). Billing prefers this over `duration`.
|
|
24
|
+
*
|
|
25
|
+
* These diverge whenever a provider ignores or clamps the request — most
|
|
26
|
+
* sharply on video-extend, where Kling/Pixverse append a fixed native
|
|
27
|
+
* increment (~5s) regardless of what was asked. Undefined for providers that
|
|
28
|
+
* don't report a length; billing then falls back to `duration` as before.
|
|
29
|
+
*/
|
|
30
|
+
actualDurationSec?: number;
|
|
20
31
|
prompt?: string;
|
|
21
32
|
outputVideoUrl?: string;
|
|
22
33
|
inputVideoUrl?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video.model.d.ts","sourceRoot":"","sources":["../../src/models/video.model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"video.model.d.ts","sourceRoot":"","sources":["../../src/models/video.model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { IDemoQaReport } from "./demoVideoProject.model";
|
|
2
|
+
/**
|
|
3
|
+
* Output-QA job model — the main-pipeline sibling of the demo supervisor's
|
|
4
|
+
* `qaReport` (see notes/SAAS_DEMO_GENERATOR_PLAN.md §12).
|
|
5
|
+
*
|
|
6
|
+
* Backs the MCP `check_video_quality` / `repair_video` tools. Those are
|
|
7
|
+
* enqueue→poll like every other long-running VidSpotAI flow: the MCP server
|
|
8
|
+
* validates + writes one of these docs + enqueues, and the Express worker (the
|
|
9
|
+
* only surface with ffmpeg installed) does the download/probe/repair and writes
|
|
10
|
+
* the result back here. The MCP tool polls this doc to completion.
|
|
11
|
+
*
|
|
12
|
+
* Deliberately its OWN collection rather than a field on `videoJobs`: QA is a
|
|
13
|
+
* per-request event (you can inspect the same video repeatedly, with different
|
|
14
|
+
* repair sets), and keeping it separate means the main generation model's shape
|
|
15
|
+
* is untouched.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* The QA report shape is pipeline-agnostic despite its historical `Demo` name —
|
|
19
|
+
* it's produced by one engine (`services/qa/outputQa.ts`) for both pipelines.
|
|
20
|
+
* This alias lets main-pipeline code refer to it without reading as demo code.
|
|
21
|
+
*/
|
|
22
|
+
export type IOutputQaReport = IDemoQaReport;
|
|
23
|
+
export declare enum EVideoQaJobStatus {
|
|
24
|
+
QUEUED = "queued",
|
|
25
|
+
RUNNING = "running",
|
|
26
|
+
COMPLETED = "completed",
|
|
27
|
+
FAILED = "failed"
|
|
28
|
+
}
|
|
29
|
+
/** What the caller asked for. `inspect` never writes; `repair` may re-upload. */
|
|
30
|
+
export declare enum EVideoQaMode {
|
|
31
|
+
INSPECT = "inspect",
|
|
32
|
+
REPAIR = "repair"
|
|
33
|
+
}
|
|
34
|
+
export interface IVideoQaJobModel {
|
|
35
|
+
/** Owner — always the authenticated caller; enforced at enqueue AND re-checked
|
|
36
|
+
* in the worker, so a forged doc can't make the worker touch someone's file. */
|
|
37
|
+
userId: string;
|
|
38
|
+
/** The `videoJobs` doc whose output is being inspected/repaired. */
|
|
39
|
+
videoJobId: string;
|
|
40
|
+
status: EVideoQaJobStatus;
|
|
41
|
+
mode: EVideoQaMode;
|
|
42
|
+
/**
|
|
43
|
+
* Repairs the caller permitted, for `repair` mode. Always a subset of the
|
|
44
|
+
* closed allow-list in `demoFfmpegTools.repairOutput`; empty in `inspect` mode.
|
|
45
|
+
*/
|
|
46
|
+
requestedFixes: string[];
|
|
47
|
+
/** The output URL as it stood when the job was enqueued. */
|
|
48
|
+
sourceVideoUrl: string;
|
|
49
|
+
report?: IOutputQaReport;
|
|
50
|
+
/** Set only when a repair changed the bytes AND the re-upload succeeded. */
|
|
51
|
+
repairedVideoUrl?: string;
|
|
52
|
+
/** True when `repairedVideoUrl` was written back onto the videoJobs doc. */
|
|
53
|
+
appliedToVideoJob?: boolean;
|
|
54
|
+
errorMessage?: string;
|
|
55
|
+
createdAt: string;
|
|
56
|
+
updatedAt: string;
|
|
57
|
+
/** Epoch ms the worker started, for stuck-job triage. */
|
|
58
|
+
startedAt?: number;
|
|
59
|
+
finishedAt?: number;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=videoQaJob.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"videoQaJob.model.d.ts","sourceRoot":"","sources":["../../src/models/videoQaJob.model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;;;;;;;;;;;;;GAcG;AAEH;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC;AAE5C,oBAAY,iBAAiB;IAC3B,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAED,iFAAiF;AACjF,oBAAY,YAAY;IACtB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B;oFACgF;IAChF,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB;;;OAGG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,4DAA4D;IAC5D,cAAc,EAAE,MAAM,CAAC;IAGvB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EVideoQaMode = exports.EVideoQaJobStatus = void 0;
|
|
4
|
+
var EVideoQaJobStatus;
|
|
5
|
+
(function (EVideoQaJobStatus) {
|
|
6
|
+
EVideoQaJobStatus["QUEUED"] = "queued";
|
|
7
|
+
EVideoQaJobStatus["RUNNING"] = "running";
|
|
8
|
+
EVideoQaJobStatus["COMPLETED"] = "completed";
|
|
9
|
+
EVideoQaJobStatus["FAILED"] = "failed";
|
|
10
|
+
})(EVideoQaJobStatus || (exports.EVideoQaJobStatus = EVideoQaJobStatus = {}));
|
|
11
|
+
/** What the caller asked for. `inspect` never writes; `repair` may re-upload. */
|
|
12
|
+
var EVideoQaMode;
|
|
13
|
+
(function (EVideoQaMode) {
|
|
14
|
+
EVideoQaMode["INSPECT"] = "inspect";
|
|
15
|
+
EVideoQaMode["REPAIR"] = "repair";
|
|
16
|
+
})(EVideoQaMode || (exports.EVideoQaMode = EVideoQaMode = {}));
|
|
@@ -20,6 +20,7 @@ export declare const BrandIdentitySchema: z.ZodObject<{
|
|
|
20
20
|
brandName: z.ZodOptional<z.ZodString>;
|
|
21
21
|
wordmark: z.ZodOptional<z.ZodString>;
|
|
22
22
|
logoUrl: z.ZodOptional<z.ZodString>;
|
|
23
|
+
siteUrl: z.ZodOptional<z.ZodString>;
|
|
23
24
|
}, z.core.$strip>;
|
|
24
25
|
export declare const BrandReferenceSchema: z.ZodObject<{
|
|
25
26
|
url: z.ZodString;
|
|
@@ -31,6 +32,7 @@ export declare const BrandKitSchema: z.ZodObject<{
|
|
|
31
32
|
brandName: z.ZodOptional<z.ZodString>;
|
|
32
33
|
wordmark: z.ZodOptional<z.ZodString>;
|
|
33
34
|
logoUrl: z.ZodOptional<z.ZodString>;
|
|
35
|
+
siteUrl: z.ZodOptional<z.ZodString>;
|
|
34
36
|
}, z.core.$strip>>;
|
|
35
37
|
colors: z.ZodDefault<z.ZodObject<{
|
|
36
38
|
primary: z.ZodOptional<z.ZodString>;
|
|
@@ -58,7 +60,7 @@ export declare const BrandKitSchema: z.ZodObject<{
|
|
|
58
60
|
senior: "senior";
|
|
59
61
|
}>>;
|
|
60
62
|
accent: z.ZodOptional<z.ZodString>;
|
|
61
|
-
language: z.
|
|
63
|
+
language: z.ZodOptional<z.ZodString>;
|
|
62
64
|
voiceId: z.ZodOptional<z.ZodString>;
|
|
63
65
|
style: z.ZodOptional<z.ZodEnum<{
|
|
64
66
|
energetic: "energetic";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brandKit.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/brandKit.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;GAIG;AAEH,eAAO,MAAM,iBAAiB;;;;;iBAM5B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;iBAa3B,CAAC;AAEH,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"brandKit.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/brandKit.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;GAIG;AAEH,eAAO,MAAM,iBAAiB;;;;;iBAM5B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;iBAa3B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;iBAa9B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;iBAG/B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkBzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -34,6 +34,15 @@ exports.BrandIdentitySchema = zod_1.z.object({
|
|
|
34
34
|
brandName: zod_1.z.string().optional(),
|
|
35
35
|
wordmark: zod_1.z.string().optional(),
|
|
36
36
|
logoUrl: zod_1.z.string().url().optional(),
|
|
37
|
+
/**
|
|
38
|
+
* The product's own web address. Rendered in the address bar of any browser
|
|
39
|
+
* <DeviceFrame>, which otherwise falls back to the placeholder
|
|
40
|
+
* "app.example.com" — a stand-in that reads as an unfinished mock the moment
|
|
41
|
+
* real product footage sits behind it. The demo pipeline already resolves a
|
|
42
|
+
* website for every author (`authorInput.websiteUrl`), so this is normally
|
|
43
|
+
* populated for free rather than being one more thing to ask for.
|
|
44
|
+
*/
|
|
45
|
+
siteUrl: zod_1.z.string().url().optional(),
|
|
37
46
|
});
|
|
38
47
|
exports.BrandReferenceSchema = zod_1.z.object({
|
|
39
48
|
url: zod_1.z.string().url(),
|