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.
Files changed (183) 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/google.d.ts.map +1 -1
  11. package/lib/globals/aiModels/providers/google.js +6 -9
  12. package/lib/globals/aiModels/providers/hostedAvatars.js +10 -10
  13. package/lib/globals/creditUnit.d.ts +20 -33
  14. package/lib/globals/creditUnit.d.ts.map +1 -1
  15. package/lib/globals/creditUnit.js +20 -33
  16. package/lib/globals/types.d.ts +34 -2
  17. package/lib/globals/types.d.ts.map +1 -1
  18. package/lib/globals/types.js +37 -0
  19. package/lib/models/demoVideoProject.model.d.ts +213 -0
  20. package/lib/models/demoVideoProject.model.d.ts.map +1 -1
  21. package/lib/models/index.d.ts +2 -0
  22. package/lib/models/index.d.ts.map +1 -1
  23. package/lib/models/index.js +2 -0
  24. package/lib/models/mediaUpload.model.d.ts +25 -0
  25. package/lib/models/mediaUpload.model.d.ts.map +1 -1
  26. package/lib/models/productConnection.model.d.ts +57 -0
  27. package/lib/models/productConnection.model.d.ts.map +1 -0
  28. package/lib/models/productConnection.model.js +7 -0
  29. package/lib/models/video.model.d.ts +11 -0
  30. package/lib/models/video.model.d.ts.map +1 -1
  31. package/lib/models/videoQaJob.model.d.ts +61 -0
  32. package/lib/models/videoQaJob.model.d.ts.map +1 -0
  33. package/lib/models/videoQaJob.model.js +16 -0
  34. package/lib/schemas/brandKit.schema.d.ts +3 -1
  35. package/lib/schemas/brandKit.schema.d.ts.map +1 -1
  36. package/lib/schemas/brandKit.schema.js +9 -0
  37. package/lib/schemas/brief.schema.d.ts +5 -4
  38. package/lib/schemas/brief.schema.d.ts.map +1 -1
  39. package/lib/schemas/brief.schema.js +23 -1
  40. package/lib/schemas/demoQuestion.schema.d.ts +24 -4
  41. package/lib/schemas/demoQuestion.schema.d.ts.map +1 -1
  42. package/lib/schemas/demoQuestion.schema.js +8 -2
  43. package/lib/schemas/demoSpec.schema.d.ts +40 -6
  44. package/lib/schemas/demoSpec.schema.d.ts.map +1 -1
  45. package/lib/schemas/demoSpec.schema.js +46 -1
  46. package/lib/schemas/project.schema.d.ts +33 -3
  47. package/lib/schemas/project.schema.d.ts.map +1 -1
  48. package/lib/schemas/project.schema.js +22 -0
  49. package/lib/schemas/social.schema.d.ts +1 -1
  50. package/lib/schemas/videoPlan.schema.d.ts +22 -20
  51. package/lib/schemas/videoPlan.schema.d.ts.map +1 -1
  52. package/lib/schemas/videoPlan.schema.js +19 -0
  53. package/lib/services/agent/editClassifier.d.ts +10 -10
  54. package/lib/services/agent/eval/types.d.ts +3 -2
  55. package/lib/services/agent/eval/types.d.ts.map +1 -1
  56. package/lib/services/agent/executor/core.d.ts.map +1 -1
  57. package/lib/services/agent/executor/core.js +11 -0
  58. package/lib/services/agent/planner/Planner.d.ts.map +1 -1
  59. package/lib/services/agent/planner/Planner.js +5 -0
  60. package/lib/services/agent/planner/overlayRegen.d.ts.map +1 -1
  61. package/lib/services/agent/planner/overlayRegen.js +5 -0
  62. package/lib/services/agent/planner/plannerMessages.d.ts.map +1 -1
  63. package/lib/services/agent/planner/plannerMessages.js +10 -1
  64. package/lib/services/agent/planner/scriptFirstPlanner.d.ts.map +1 -1
  65. package/lib/services/agent/planner/scriptFirstPlanner.js +2 -0
  66. package/lib/services/agent/regenCore.d.ts.map +1 -1
  67. package/lib/services/agent/regenCore.js +11 -1
  68. package/lib/services/agent/runHelpers.d.ts +8 -0
  69. package/lib/services/agent/runHelpers.d.ts.map +1 -1
  70. package/lib/services/agent/runHelpers.js +5 -1
  71. package/lib/services/agent/tools/chapterOutline.tool.d.ts +8 -0
  72. package/lib/services/agent/tools/chapterOutline.tool.d.ts.map +1 -1
  73. package/lib/services/agent/tools/chapterOutline.tool.js +21 -8
  74. package/lib/services/agent/tools/composeScene.tool.d.ts +32 -2
  75. package/lib/services/agent/tools/composeScene.tool.d.ts.map +1 -1
  76. package/lib/services/agent/tools/estimateCost.tool.d.ts +11 -1
  77. package/lib/services/agent/tools/estimateCost.tool.d.ts.map +1 -1
  78. package/lib/services/agent/tools/extendVideo.tool.d.ts +9 -3
  79. package/lib/services/agent/tools/extendVideo.tool.d.ts.map +1 -1
  80. package/lib/services/agent/tools/extendVideo.tool.js +12 -27
  81. package/lib/services/agent/tools/generateAvatarVideo.tool.d.ts +1 -1
  82. package/lib/services/agent/tools/generateScript.tool.d.ts +3 -2
  83. package/lib/services/agent/tools/generateScript.tool.d.ts.map +1 -1
  84. package/lib/services/agent/tools/generateScript.tool.js +16 -7
  85. package/lib/services/agent/tools/generateVoiceover.tool.d.ts +1 -1
  86. package/lib/services/agent/tools/planVideo.tool.d.ts +11 -8
  87. package/lib/services/agent/tools/planVideo.tool.d.ts.map +1 -1
  88. package/lib/services/agent/tools/render.tool.d.ts +11 -1
  89. package/lib/services/agent/tools/render.tool.d.ts.map +1 -1
  90. package/lib/services/agent/tools/searchStock.tool.d.ts +1 -1
  91. package/lib/services/agent/tools/searchUserLibrary.tool.d.ts +4 -4
  92. package/lib/services/aiGen/providers/alibaba/alibaba.d.ts +0 -6
  93. package/lib/services/aiGen/providers/alibaba/alibaba.d.ts.map +1 -1
  94. package/lib/services/aiGen/providers/alibaba/alibaba.js +5 -103
  95. package/lib/services/aiGen/providers/bytedance/bytedance.service.d.ts.map +1 -1
  96. package/lib/services/aiGen/providers/bytedance/bytedance.service.js +1 -9
  97. package/lib/services/aiGen/providers/google/google.service.d.ts.map +1 -1
  98. package/lib/services/aiGen/providers/google/google.service.js +26 -142
  99. package/lib/services/aiGen/providers/google/googleErrors.d.ts.map +1 -1
  100. package/lib/services/aiGen/providers/google/googleErrors.js +7 -17
  101. package/lib/services/aiGen/providers/kling/kling.service.d.ts.map +1 -1
  102. package/lib/services/aiGen/providers/kling/kling.service.js +22 -3
  103. package/lib/services/aiGen/providers/kling/klingStatus.d.ts +7 -0
  104. package/lib/services/aiGen/providers/kling/klingStatus.d.ts.map +1 -1
  105. package/lib/services/aiGen/providers/kling/klingStatus.js +41 -4
  106. package/lib/services/aiGen/providers/pixverse/pixverse.service.d.ts.map +1 -1
  107. package/lib/services/aiGen/providers/pixverse/pixverse.service.js +25 -0
  108. package/lib/services/aiGen/providers/types.d.ts +20 -0
  109. package/lib/services/aiGen/providers/types.d.ts.map +1 -1
  110. package/lib/services/avatarGen/avatarProviderFactory.d.ts.map +1 -1
  111. package/lib/services/avatarGen/avatarProviderFactory.js +3 -0
  112. package/lib/services/avatarGen/index.d.ts +1 -0
  113. package/lib/services/avatarGen/index.d.ts.map +1 -1
  114. package/lib/services/avatarGen/index.js +1 -0
  115. package/lib/services/avatarGen/providers/synthesiaAvatarProvider.d.ts +53 -0
  116. package/lib/services/avatarGen/providers/synthesiaAvatarProvider.d.ts.map +1 -0
  117. package/lib/services/avatarGen/providers/synthesiaAvatarProvider.js +176 -0
  118. package/lib/services/demo/demoAuthor.d.ts +7 -0
  119. package/lib/services/demo/demoAuthor.d.ts.map +1 -1
  120. package/lib/services/demo/demoAuthor.js +2 -0
  121. package/lib/services/demo/demoAuthorPrompt.d.ts +6 -0
  122. package/lib/services/demo/demoAuthorPrompt.d.ts.map +1 -1
  123. package/lib/services/demo/demoAuthorPrompt.js +24 -2
  124. package/lib/services/demo/demoCaptions.d.ts +69 -0
  125. package/lib/services/demo/demoCaptions.d.ts.map +1 -0
  126. package/lib/services/demo/demoCaptions.js +152 -0
  127. package/lib/services/demo/demoMusic.d.ts +8 -1
  128. package/lib/services/demo/demoMusic.d.ts.map +1 -1
  129. package/lib/services/demo/demoMusic.js +32 -16
  130. package/lib/services/demo/demoScriptPrompt.d.ts +2 -1
  131. package/lib/services/demo/demoScriptPrompt.d.ts.map +1 -1
  132. package/lib/services/demo/demoScriptPrompt.js +29 -2
  133. package/lib/services/demo/demoStockAssets.d.ts +29 -0
  134. package/lib/services/demo/demoStockAssets.d.ts.map +1 -0
  135. package/lib/services/demo/demoStockAssets.js +107 -0
  136. package/lib/services/demo/index.d.ts +3 -0
  137. package/lib/services/demo/index.d.ts.map +1 -1
  138. package/lib/services/demo/index.js +3 -0
  139. package/lib/services/demo/productConnection.service.d.ts +78 -0
  140. package/lib/services/demo/productConnection.service.d.ts.map +1 -0
  141. package/lib/services/demo/productConnection.service.js +125 -0
  142. package/lib/services/editor/planToProject.d.ts.map +1 -1
  143. package/lib/services/editor/planToProject.helpers.d.ts +1 -0
  144. package/lib/services/editor/planToProject.helpers.d.ts.map +1 -1
  145. package/lib/services/editor/planToProject.helpers.js +3 -0
  146. package/lib/services/editor/planToProject.js +39 -0
  147. package/lib/services/editor/projectToDesign.js +13 -1
  148. package/lib/services/firestore.service.d.ts +14 -0
  149. package/lib/services/firestore.service.d.ts.map +1 -1
  150. package/lib/services/firestore.service.js +16 -0
  151. package/lib/services/translation/index.d.ts +1 -0
  152. package/lib/services/translation/index.d.ts.map +1 -1
  153. package/lib/services/translation/index.js +8 -1
  154. package/lib/services/translation/outputLanguage.d.ts +75 -0
  155. package/lib/services/translation/outputLanguage.d.ts.map +1 -0
  156. package/lib/services/translation/outputLanguage.js +190 -0
  157. package/lib/services/translation/translation.service.d.ts +13 -2
  158. package/lib/services/translation/translation.service.d.ts.map +1 -1
  159. package/lib/services/translation/translation.service.js +73 -31
  160. package/lib/services/tts/index.d.ts +1 -0
  161. package/lib/services/tts/index.d.ts.map +1 -1
  162. package/lib/services/tts/index.js +1 -0
  163. package/lib/services/tts/providers/elevenlabs.service.d.ts +7 -0
  164. package/lib/services/tts/providers/elevenlabs.service.d.ts.map +1 -1
  165. package/lib/services/tts/providers/elevenlabs.service.js +69 -13
  166. package/lib/services/tts/types.d.ts +29 -0
  167. package/lib/services/tts/types.d.ts.map +1 -1
  168. package/lib/services/tts/wordTimings.d.ts +27 -0
  169. package/lib/services/tts/wordTimings.d.ts.map +1 -0
  170. package/lib/services/tts/wordTimings.js +57 -0
  171. package/lib/utils/billableDuration.d.ts +11 -0
  172. package/lib/utils/billableDuration.d.ts.map +1 -0
  173. package/lib/utils/billableDuration.js +91 -0
  174. package/lib/utils/index.d.ts +3 -0
  175. package/lib/utils/index.d.ts.map +1 -1
  176. package/lib/utils/index.js +3 -0
  177. package/lib/utils/mp4Duration.d.ts +38 -0
  178. package/lib/utils/mp4Duration.d.ts.map +1 -0
  179. package/lib/utils/mp4Duration.js +164 -0
  180. package/lib/utils/socialEntitlements.d.ts +51 -0
  181. package/lib/utils/socialEntitlements.d.ts.map +1 -0
  182. package/lib/utils/socialEntitlements.js +65 -0
  183. package/package.json +1 -1
@@ -47,8 +47,8 @@ export declare const HookStyleSchema: z.ZodEnum<{
47
47
  "voiceover-only": "voiceover-only";
48
48
  }>;
49
49
  export declare const PacingSchema: z.ZodEnum<{
50
- medium: "medium";
51
50
  fast: "fast";
51
+ medium: "medium";
52
52
  slow: "slow";
53
53
  "very-fast": "very-fast";
54
54
  }>;
@@ -114,7 +114,7 @@ export declare const VoiceProfileSchema: z.ZodObject<{
114
114
  senior: "senior";
115
115
  }>>;
116
116
  accent: z.ZodOptional<z.ZodString>;
117
- language: z.ZodDefault<z.ZodString>;
117
+ language: z.ZodOptional<z.ZodString>;
118
118
  voiceId: z.ZodOptional<z.ZodString>;
119
119
  style: z.ZodOptional<z.ZodEnum<{
120
120
  energetic: "energetic";
@@ -198,8 +198,8 @@ export declare const VideoBriefSchema: z.ZodObject<{
198
198
  "voiceover-only": "voiceover-only";
199
199
  }>>;
200
200
  pacing: z.ZodOptional<z.ZodEnum<{
201
- medium: "medium";
202
201
  fast: "fast";
202
+ medium: "medium";
203
203
  slow: "slow";
204
204
  "very-fast": "very-fast";
205
205
  }>>;
@@ -218,6 +218,7 @@ export declare const VideoBriefSchema: z.ZodObject<{
218
218
  L2: "L2";
219
219
  L3: "L3";
220
220
  }>>;
221
+ outputLanguage: z.ZodOptional<z.ZodString>;
221
222
  voice: z.ZodOptional<z.ZodObject<{
222
223
  gender: z.ZodOptional<z.ZodEnum<{
223
224
  male: "male";
@@ -232,7 +233,7 @@ export declare const VideoBriefSchema: z.ZodObject<{
232
233
  senior: "senior";
233
234
  }>>;
234
235
  accent: z.ZodOptional<z.ZodString>;
235
- language: z.ZodDefault<z.ZodString>;
236
+ language: z.ZodOptional<z.ZodString>;
236
237
  voiceId: z.ZodOptional<z.ZodString>;
237
238
  style: z.ZodOptional<z.ZodEnum<{
238
239
  energetic: "energetic";
@@ -1 +1 @@
1
- {"version":3,"file":"brief.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/brief.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;EAc3B,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;EAUrB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;EAQ1B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;EAAkD,CAAC;AAE5E;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,gBAAgB;;;;;;;EAA+C,CAAC;AAC7E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CASjE;AAKD,eAAO,MAAM,gBAAgB;;;;;;;;;;;EAW3B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAS7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;iBAiB7B,CAAC;AAEH,eAAO,MAAM,YAAY;;;iBAKvB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;iBAa9B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoF3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"brief.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/brief.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;EAc3B,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;EAUrB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;EAQ1B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;EAAkD,CAAC;AAE5E;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,gBAAgB;;;;;;;EAA+C,CAAC;AAC7E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CASjE;AAKD,eAAO,MAAM,gBAAgB;;;;;;;;;;;EAW3B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkB7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;iBAiB7B,CAAC;AAEH,eAAO,MAAM,YAAY;;;iBAKvB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;iBAa9B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkG3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -112,7 +112,16 @@ exports.VoiceProfileSchema = zod_1.z.object({
112
112
  gender: zod_1.z.enum(["female", "male", "neutral"]).optional(),
113
113
  ageRange: zod_1.z.enum(["child", "teen", "young-adult", "adult", "senior"]).optional(),
114
114
  accent: zod_1.z.string().optional(),
115
- language: zod_1.z.string().default("en"),
115
+ /**
116
+ * Per-voice language override. Optional (was `.default("en")`) — the default
117
+ * was actively harmful: the whole brief is serialized into the planner's
118
+ * user message, so every plan literally showed the model
119
+ * `"voice": { "language": "en" }` and got English narration back even when
120
+ * the user wrote their brief in another language. The canonical field is now
121
+ * `VideoBriefSchema.outputLanguage`; this stays for back-compat and for the
122
+ * rare case of a voice that should differ from the video's output language.
123
+ */
124
+ language: zod_1.z.string().optional(),
116
125
  /** Reference to a TTS voice id once selected. */
117
126
  voiceId: zod_1.z.string().optional(),
118
127
  /** AG-31: emotion / delivery style. Mapped to provider voice_settings by executor. */
@@ -172,6 +181,19 @@ exports.VideoBriefSchema = zod_1.z.object({
172
181
  * (L-5) rather than the planner.
173
182
  */
174
183
  lengthTier: exports.LengthTierSchema.optional(),
184
+ /**
185
+ * The language the VIEWER hears and reads — narration, captions, on-screen
186
+ * copy, and the plan title. ISO 639-1 (or "zh-cn"/"zh-tw").
187
+ *
188
+ * Resolved automatically at intake by `resolveOutputLanguage`: the language
189
+ * the user wrote `rawPrompt` in wins, falling back to their UI locale, then
190
+ * English. There is no user-facing picker by design.
191
+ *
192
+ * Explicitly NOT the prompt language — scene `prompt`/`intent` stay English
193
+ * because the image/video providers are tuned on English. Absent = English
194
+ * (every pre-existing brief), so the common path is unchanged.
195
+ */
196
+ outputLanguage: zod_1.z.string().optional(),
175
197
  voice: exports.VoiceProfileSchema.optional(),
176
198
  music: exports.MusicProfileSchema.optional(),
177
199
  cta: zod_1.z.string().optional(),
@@ -85,7 +85,12 @@ export declare const TextQuestionSchema: z.ZodObject<{
85
85
  * The frontend uploads via /v1/media/single-upload and answers with the URLs.
86
86
  */
87
87
  export declare const UploadQuestionSchema: z.ZodObject<{
88
- accept: z.ZodDefault<z.ZodLiteral<"image">>;
88
+ accept: z.ZodDefault<z.ZodEnum<{
89
+ any: "any";
90
+ video: "video";
91
+ image: "image";
92
+ audio: "audio";
93
+ }>>;
89
94
  multiple: z.ZodDefault<z.ZodBoolean>;
90
95
  maxFiles: z.ZodDefault<z.ZodNumber>;
91
96
  id: z.ZodString;
@@ -139,7 +144,12 @@ export declare const DemoQuestionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
139
144
  required: z.ZodDefault<z.ZodBoolean>;
140
145
  kind: z.ZodLiteral<"text">;
141
146
  }, z.core.$strip>, z.ZodObject<{
142
- accept: z.ZodDefault<z.ZodLiteral<"image">>;
147
+ accept: z.ZodDefault<z.ZodEnum<{
148
+ any: "any";
149
+ video: "video";
150
+ image: "image";
151
+ audio: "audio";
152
+ }>>;
143
153
  multiple: z.ZodDefault<z.ZodBoolean>;
144
154
  maxFiles: z.ZodDefault<z.ZodNumber>;
145
155
  id: z.ZodString;
@@ -196,7 +206,12 @@ export declare const DemoQuestionsSchema: z.ZodArray<z.ZodDiscriminatedUnion<[z.
196
206
  required: z.ZodDefault<z.ZodBoolean>;
197
207
  kind: z.ZodLiteral<"text">;
198
208
  }, z.core.$strip>, z.ZodObject<{
199
- accept: z.ZodDefault<z.ZodLiteral<"image">>;
209
+ accept: z.ZodDefault<z.ZodEnum<{
210
+ any: "any";
211
+ video: "video";
212
+ image: "image";
213
+ audio: "audio";
214
+ }>>;
200
215
  multiple: z.ZodDefault<z.ZodBoolean>;
201
216
  maxFiles: z.ZodDefault<z.ZodNumber>;
202
217
  id: z.ZodString;
@@ -258,7 +273,12 @@ export declare const DemoTriageResultSchema: z.ZodObject<{
258
273
  required: z.ZodDefault<z.ZodBoolean>;
259
274
  kind: z.ZodLiteral<"text">;
260
275
  }, z.core.$strip>, z.ZodObject<{
261
- accept: z.ZodDefault<z.ZodLiteral<"image">>;
276
+ accept: z.ZodDefault<z.ZodEnum<{
277
+ any: "any";
278
+ video: "video";
279
+ image: "image";
280
+ audio: "audio";
281
+ }>>;
262
282
  multiple: z.ZodDefault<z.ZodBoolean>;
263
283
  maxFiles: z.ZodDefault<z.ZodNumber>;
264
284
  id: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"demoQuestion.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/demoQuestion.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;GAkBG;AAEH,gEAAgE;AAChE,eAAO,MAAM,wBAAwB;;;;iBAOnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAc1E,+BAA+B;AAC/B,eAAO,MAAM,0BAA0B;;;;;;;;;;;;iBAMrC,CAAC;AAEH,kCAAkC;AAClC,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;iBAQpC,CAAC;AAEH,gDAAgD;AAChD,eAAO,MAAM,oBAAoB;;;;;;;;;iBAQ/B,CAAC;AAEH,0DAA0D;AAC1D,eAAO,MAAM,kBAAkB;;;;;;;;;iBAO7B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;iBAS/B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAM7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAEpD,kFAAkF;AAClF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAqC,CAAC;AACtE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,YAAY,EAAE,EACzB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAmFtG"}
1
+ {"version":3,"file":"demoQuestion.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/demoQuestion.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;GAkBG;AAEH,gEAAgE;AAChE,eAAO,MAAM,wBAAwB;;;;iBAOnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAc1E,+BAA+B;AAC/B,eAAO,MAAM,0BAA0B;;;;;;;;;;;;iBAMrC,CAAC;AAEH,kCAAkC;AAClC,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;iBAQpC,CAAC;AAEH,gDAAgD;AAChD,eAAO,MAAM,oBAAoB;;;;;;;;;iBAQ/B,CAAC;AAEH,0DAA0D;AAC1D,eAAO,MAAM,kBAAkB;;;;;;;;;iBAO7B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;iBAe/B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAM7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAEpD,kFAAkF;AAClF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAqC,CAAC;AACtE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,YAAY,EAAE,EACzB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAmFtG"}
@@ -89,8 +89,14 @@ exports.TextQuestionSchema = zod_1.z.object({
89
89
  exports.UploadQuestionSchema = zod_1.z.object({
90
90
  kind: zod_1.z.literal("upload"),
91
91
  ...QuestionBase,
92
- /** What the picker should accept. Only images are needed so far. */
93
- accept: zod_1.z.literal("image").default("image"),
92
+ /**
93
+ * What the picker should accept. Widened beyond images so the worker can ask
94
+ * for a logo/screenshots ("image"), a music bed ("audio"), a voiceover track
95
+ * ("audio"), or real product footage ("video") — the "ask before improvising"
96
+ * asset asks. "any" is the escape hatch. The frontend maps this to the file
97
+ * input's `accept` attribute; validation only enforces http(s) URLs (below).
98
+ */
99
+ accept: zod_1.z.enum(["image", "audio", "video", "any"]).default("image"),
94
100
  /** Allow more than one file (answer becomes string[]). */
95
101
  multiple: zod_1.z.boolean().default(false),
96
102
  /** Upper bound when `multiple`. */
@@ -27,6 +27,7 @@ export declare const DemoBrandSchema: z.ZodObject<{
27
27
  brandName: z.ZodOptional<z.ZodString>;
28
28
  wordmark: z.ZodOptional<z.ZodString>;
29
29
  logoUrl: z.ZodOptional<z.ZodString>;
30
+ siteUrl: z.ZodOptional<z.ZodString>;
30
31
  }, z.core.$strip>>;
31
32
  colors: z.ZodDefault<z.ZodObject<{
32
33
  primary: z.ZodOptional<z.ZodString>;
@@ -62,8 +63,8 @@ export declare const DemoStyleSchema: z.ZodObject<{
62
63
  "energetic-punchy": "energetic-punchy";
63
64
  }>>;
64
65
  pace: z.ZodDefault<z.ZodEnum<{
65
- medium: "medium";
66
66
  fast: "fast";
67
+ medium: "medium";
67
68
  slow: "slow";
68
69
  }>>;
69
70
  colorMood: z.ZodDefault<z.ZodEnum<{
@@ -108,6 +109,8 @@ export declare const DemoCardSchema: z.ZodObject<{
108
109
  danger: "danger";
109
110
  }>>;
110
111
  icon: z.ZodOptional<z.ZodString>;
112
+ imageUrl: z.ZodOptional<z.ZodString>;
113
+ clipUrl: z.ZodOptional<z.ZodString>;
111
114
  }, z.core.$strip>;
112
115
  /** A single chat turn for the AI-assistant scene. */
113
116
  export declare const ChatTurnSchema: z.ZodObject<{
@@ -150,9 +153,9 @@ export declare const DemoSceneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
150
153
  type: z.ZodLiteral<"featureShowcase">;
151
154
  title: z.ZodString;
152
155
  surface: z.ZodDefault<z.ZodEnum<{
153
- detail: "detail";
154
156
  search: "search";
155
157
  table: "table";
158
+ detail: "detail";
156
159
  form: "form";
157
160
  chat: "chat";
158
161
  editor: "editor";
@@ -173,6 +176,8 @@ export declare const DemoSceneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
173
176
  danger: "danger";
174
177
  }>>;
175
178
  icon: z.ZodOptional<z.ZodString>;
179
+ imageUrl: z.ZodOptional<z.ZodString>;
180
+ clipUrl: z.ZodOptional<z.ZodString>;
176
181
  }, z.core.$strip>>>;
177
182
  screenshotUrl: z.ZodOptional<z.ZodString>;
178
183
  videoUrl: z.ZodOptional<z.ZodString>;
@@ -205,6 +210,8 @@ export declare const DemoSceneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
205
210
  danger: "danger";
206
211
  }>>;
207
212
  icon: z.ZodOptional<z.ZodString>;
213
+ imageUrl: z.ZodOptional<z.ZodString>;
214
+ clipUrl: z.ZodOptional<z.ZodString>;
208
215
  }, z.core.$strip>>>;
209
216
  }, z.core.$strip>, z.ZodObject<{
210
217
  id: z.ZodString;
@@ -227,6 +234,7 @@ export declare const DemoSceneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
227
234
  narrationHint: z.ZodOptional<z.ZodString>;
228
235
  type: z.ZodLiteral<"deviceMockup">;
229
236
  device: z.ZodDefault<z.ZodEnum<{
237
+ none: "none";
230
238
  phone: "phone";
231
239
  browser: "browser";
232
240
  laptop: "laptop";
@@ -234,6 +242,7 @@ export declare const DemoSceneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
234
242
  }>>;
235
243
  screenshotUrls: z.ZodDefault<z.ZodArray<z.ZodString>>;
236
244
  videoUrl: z.ZodOptional<z.ZodString>;
245
+ clipUrls: z.ZodOptional<z.ZodArray<z.ZodString>>;
237
246
  motion: z.ZodDefault<z.ZodEnum<{
238
247
  parallax: "parallax";
239
248
  tilt: "tilt";
@@ -317,6 +326,8 @@ export declare const DemoSceneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
317
326
  danger: "danger";
318
327
  }>>;
319
328
  icon: z.ZodOptional<z.ZodString>;
329
+ imageUrl: z.ZodOptional<z.ZodString>;
330
+ clipUrl: z.ZodOptional<z.ZodString>;
320
331
  }, z.core.$strip>>>;
321
332
  }, z.core.$strip>, z.ZodObject<{
322
333
  id: z.ZodString;
@@ -339,6 +350,8 @@ export declare const DemoSceneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
339
350
  danger: "danger";
340
351
  }>>;
341
352
  icon: z.ZodOptional<z.ZodString>;
353
+ imageUrl: z.ZodOptional<z.ZodString>;
354
+ clipUrl: z.ZodOptional<z.ZodString>;
342
355
  }, z.core.$strip>>;
343
356
  }, z.core.$strip>, z.ZodObject<{
344
357
  id: z.ZodString;
@@ -402,10 +415,15 @@ export declare const GEN_ASSET_URI_PREFIX: "gen://";
402
415
  export declare const DemoGeneratedAssetSchema: z.ZodObject<{
403
416
  id: z.ZodString;
404
417
  kind: z.ZodEnum<{
405
- image: "image";
406
418
  video: "video";
419
+ image: "image";
407
420
  }>;
421
+ source: z.ZodDefault<z.ZodEnum<{
422
+ generated: "generated";
423
+ stock: "stock";
424
+ }>>;
408
425
  prompt: z.ZodString;
426
+ query: z.ZodOptional<z.ZodString>;
409
427
  purpose: z.ZodOptional<z.ZodString>;
410
428
  aspect: z.ZodOptional<z.ZodEnum<{
411
429
  "9:16": "9:16";
@@ -432,6 +450,7 @@ export declare const DemoSpecSchema: z.ZodObject<{
432
450
  brandName: z.ZodOptional<z.ZodString>;
433
451
  wordmark: z.ZodOptional<z.ZodString>;
434
452
  logoUrl: z.ZodOptional<z.ZodString>;
453
+ siteUrl: z.ZodOptional<z.ZodString>;
435
454
  }, z.core.$strip>>;
436
455
  colors: z.ZodDefault<z.ZodObject<{
437
456
  primary: z.ZodOptional<z.ZodString>;
@@ -456,8 +475,8 @@ export declare const DemoSpecSchema: z.ZodObject<{
456
475
  "energetic-punchy": "energetic-punchy";
457
476
  }>>;
458
477
  pace: z.ZodDefault<z.ZodEnum<{
459
- medium: "medium";
460
478
  fast: "fast";
479
+ medium: "medium";
461
480
  slow: "slow";
462
481
  }>>;
463
482
  colorMood: z.ZodDefault<z.ZodEnum<{
@@ -523,9 +542,9 @@ export declare const DemoSpecSchema: z.ZodObject<{
523
542
  type: z.ZodLiteral<"featureShowcase">;
524
543
  title: z.ZodString;
525
544
  surface: z.ZodDefault<z.ZodEnum<{
526
- detail: "detail";
527
545
  search: "search";
528
546
  table: "table";
547
+ detail: "detail";
529
548
  form: "form";
530
549
  chat: "chat";
531
550
  editor: "editor";
@@ -546,6 +565,8 @@ export declare const DemoSpecSchema: z.ZodObject<{
546
565
  danger: "danger";
547
566
  }>>;
548
567
  icon: z.ZodOptional<z.ZodString>;
568
+ imageUrl: z.ZodOptional<z.ZodString>;
569
+ clipUrl: z.ZodOptional<z.ZodString>;
549
570
  }, z.core.$strip>>>;
550
571
  screenshotUrl: z.ZodOptional<z.ZodString>;
551
572
  videoUrl: z.ZodOptional<z.ZodString>;
@@ -578,6 +599,8 @@ export declare const DemoSpecSchema: z.ZodObject<{
578
599
  danger: "danger";
579
600
  }>>;
580
601
  icon: z.ZodOptional<z.ZodString>;
602
+ imageUrl: z.ZodOptional<z.ZodString>;
603
+ clipUrl: z.ZodOptional<z.ZodString>;
581
604
  }, z.core.$strip>>>;
582
605
  }, z.core.$strip>, z.ZodObject<{
583
606
  id: z.ZodString;
@@ -600,6 +623,7 @@ export declare const DemoSpecSchema: z.ZodObject<{
600
623
  narrationHint: z.ZodOptional<z.ZodString>;
601
624
  type: z.ZodLiteral<"deviceMockup">;
602
625
  device: z.ZodDefault<z.ZodEnum<{
626
+ none: "none";
603
627
  phone: "phone";
604
628
  browser: "browser";
605
629
  laptop: "laptop";
@@ -607,6 +631,7 @@ export declare const DemoSpecSchema: z.ZodObject<{
607
631
  }>>;
608
632
  screenshotUrls: z.ZodDefault<z.ZodArray<z.ZodString>>;
609
633
  videoUrl: z.ZodOptional<z.ZodString>;
634
+ clipUrls: z.ZodOptional<z.ZodArray<z.ZodString>>;
610
635
  motion: z.ZodDefault<z.ZodEnum<{
611
636
  parallax: "parallax";
612
637
  tilt: "tilt";
@@ -690,6 +715,8 @@ export declare const DemoSpecSchema: z.ZodObject<{
690
715
  danger: "danger";
691
716
  }>>;
692
717
  icon: z.ZodOptional<z.ZodString>;
718
+ imageUrl: z.ZodOptional<z.ZodString>;
719
+ clipUrl: z.ZodOptional<z.ZodString>;
693
720
  }, z.core.$strip>>>;
694
721
  }, z.core.$strip>, z.ZodObject<{
695
722
  id: z.ZodString;
@@ -712,6 +739,8 @@ export declare const DemoSpecSchema: z.ZodObject<{
712
739
  danger: "danger";
713
740
  }>>;
714
741
  icon: z.ZodOptional<z.ZodString>;
742
+ imageUrl: z.ZodOptional<z.ZodString>;
743
+ clipUrl: z.ZodOptional<z.ZodString>;
715
744
  }, z.core.$strip>>;
716
745
  }, z.core.$strip>, z.ZodObject<{
717
746
  id: z.ZodString;
@@ -765,10 +794,15 @@ export declare const DemoSpecSchema: z.ZodObject<{
765
794
  generatedAssets: z.ZodDefault<z.ZodArray<z.ZodObject<{
766
795
  id: z.ZodString;
767
796
  kind: z.ZodEnum<{
768
- image: "image";
769
797
  video: "video";
798
+ image: "image";
770
799
  }>;
800
+ source: z.ZodDefault<z.ZodEnum<{
801
+ generated: "generated";
802
+ stock: "stock";
803
+ }>>;
771
804
  prompt: z.ZodString;
805
+ query: z.ZodOptional<z.ZodString>;
772
806
  purpose: z.ZodOptional<z.ZodString>;
773
807
  aspect: z.ZodOptional<z.ZodEnum<{
774
808
  "9:16": "9:16";
@@ -1 +1 @@
1
- {"version":3,"file":"demoSpec.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/demoSpec.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,eAAO,MAAM,wBAAwB,EAAG,CAAU,CAAC;AAMnD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;iBAI1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AASxD,uCAAuC;AACvC,eAAO,MAAM,iBAAiB;;;;;;;EAO5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAU1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAIxD,8FAA8F;AAC9F,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAC;AAiBH,gEAAgE;AAChE,eAAO,MAAM,UAAU;;;;;;iBAOrB,CAAC;AAEH,gEAAgE;AAChE,eAAO,MAAM,cAAc;;;;;;;;;;;iBAMzB,CAAC;AAEH,qDAAqD;AACrD,eAAO,MAAM,cAAc;;;;;;;iBAKzB,CAAC;AA6LH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAe1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAI9C;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAG,QAAiB,CAAC;AAEtD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;iBAoBnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAI1E,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyCzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,MAAM,CAEzE"}
1
+ {"version":3,"file":"demoSpec.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/demoSpec.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,eAAO,MAAM,wBAAwB,EAAG,CAAU,CAAC;AAMnD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;iBAI1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AASxD,uCAAuC;AACvC,eAAO,MAAM,iBAAiB;;;;;;;EAO5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAU1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAIxD,8FAA8F;AAC9F,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAC;AAiBH,gEAAgE;AAChE,eAAO,MAAM,UAAU;;;;;;iBAOrB,CAAC;AAEH,gEAAgE;AAChE,eAAO,MAAM,cAAc;;;;;;;;;;;;;iBAgBzB,CAAC;AAEH,qDAAqD;AACrD,eAAO,MAAM,cAAc;;;;;;;iBAKzB,CAAC;AA+MH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAe1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAI9C;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAG,QAAiB,CAAC;AAEtD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqCnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAI1E,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyCzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,MAAM,CAEzE"}
@@ -98,6 +98,16 @@ exports.DemoCardSchema = zod_1.z.object({
98
98
  badge: zod_1.z.string().optional(),
99
99
  badgeKind: zod_1.z.enum(["neutral", "positive", "warning", "danger"]).optional(),
100
100
  icon: zod_1.z.string().optional(),
101
+ /**
102
+ * Optional leading media for the card — a real thumbnail (poster/image) or a
103
+ * looping product CLIP. Used by list/grid surfaces (e.g. search results, a
104
+ * library grid) so a row shows real content instead of a gradient glyph.
105
+ * Sourced the same way as scene media: a real user/product asset, a resolved
106
+ * `gen://` AI asset, or a `stock://` library asset. Renders muted + cover-fit
107
+ * and degrades to the gradient glyph on load failure. NEVER a fabricated URL.
108
+ */
109
+ imageUrl: zod_1.z.string().optional(),
110
+ clipUrl: zod_1.z.string().optional(),
101
111
  });
102
112
  /** A single chat turn for the AI-assistant scene. */
103
113
  exports.ChatTurnSchema = zod_1.z.object({
@@ -183,7 +193,17 @@ const BigStatementSceneSchema = SceneBaseSchema.extend({
183
193
  /** Real screenshot(s) composited into 3D-perspective device frames w/ parallax (LangEase). */
184
194
  const DeviceMockupSceneSchema = SceneBaseSchema.extend({
185
195
  type: zod_1.z.literal("deviceMockup"),
186
- device: zod_1.z.enum(["browser", "laptop", "phone", "tablet"]).default("browser"),
196
+ /**
197
+ * Device chrome drawn around the media. `"none"` presents the capture
198
+ * FULL-BLEED with no frame at all — the right choice when the footage already
199
+ * contains the product's own window/app chrome and a second frame around it
200
+ * would read as chrome-inside-chrome.
201
+ *
202
+ * `"none"` fits the media rather than cropping it (see DeviceFrame `fit`), so
203
+ * a capture whose aspect differs from the composition keeps every edge — a
204
+ * product UI loses its meaning when its top bar or toolbar is cropped away.
205
+ */
206
+ device: zod_1.z.enum(["browser", "laptop", "phone", "tablet", "none"]).default("browser"),
187
207
  /**
188
208
  * Screenshots to showcase (scroll/parallax/zoom across them). May be empty when
189
209
  * `videoUrl` supplies the media instead — the canonical way to play a user's
@@ -197,6 +217,14 @@ const DeviceMockupSceneSchema = SceneBaseSchema.extend({
197
217
  * `inputs.mediaAssets`, rendered via `<OffthreadVideo>` (muted, loops to fill).
198
218
  */
199
219
  videoUrl: zod_1.z.string().optional(),
220
+ /**
221
+ * Optional set of real video CLIPS to show as a LIBRARY GRID inside the frame
222
+ * (2×2+). When two or more are given the frame renders a product-library screen
223
+ * — each clip a looping, cover-fit card with a duration chip + title — instead
224
+ * of a single cycling screenshot. The canonical "here are the videos it made"
225
+ * beat. Clips loop muted; a dead URL degrades that one card to a poster glyph.
226
+ */
227
+ clipUrls: zod_1.z.array(zod_1.z.string()).optional(),
200
228
  /** Camera move applied to the mockup. */
201
229
  motion: zod_1.z.enum(["tilt", "parallax", "scroll", "zoom-in", "orbit"]).default("parallax"),
202
230
  headline: zod_1.z.string().optional(),
@@ -306,12 +334,29 @@ exports.DemoGeneratedAssetSchema = zod_1.z.object({
306
334
  /** Stable id scenes reference as `gen://<id>`. */
307
335
  id: zod_1.z.string(),
308
336
  kind: zod_1.z.enum(["image", "video"]),
337
+ /**
338
+ * How the asset is resolved:
339
+ * - "generated" (default): the AI provider renders it from `prompt`.
340
+ * - "stock": the stock-asset stage searches a real library (Pexels → Pixabay
341
+ * → Unsplash) for `query` and fills `url` with a real photo/clip. Free +
342
+ * instant + real — preferred over generation for generic real-world subjects
343
+ * (a laptop on a desk, a city street, a coffee shop) where a licensed stock
344
+ * shot beats a synthesized one. Both kinds are referenced the same way
345
+ * (`gen://<id>`) and flow through the same substitution + media guard.
346
+ */
347
+ source: zod_1.z.enum(["generated", "stock"]).default("generated"),
309
348
  /**
310
349
  * The full generation prompt, written by the PLANNER for THIS product:
311
350
  * concrete subject + composition + lighting/mood + brand palette accents.
312
351
  * Never contains readable text/UI copy (AI-rendered text artifacts).
352
+ * Required for `source:"generated"`; ignored for stock (use `query`).
313
353
  */
314
354
  prompt: zod_1.z.string(),
355
+ /**
356
+ * Stock-search terms (2–5 plain words describing the subject, no brand names,
357
+ * no UI copy) — used when `source:"stock"`. e.g. "founder laptop cafe".
358
+ */
359
+ query: zod_1.z.string().optional(),
315
360
  /** Why this asset exists / which beat it serves — audit + revise context. */
316
361
  purpose: zod_1.z.string().optional(),
317
362
  /** Output geometry; defaults to the spec aspect at generation time. */
@@ -227,6 +227,16 @@ export declare const ImageClipSchema: z.ZodObject<{
227
227
  saturation: z.ZodDefault<z.ZodNumber>;
228
228
  warmth: z.ZodDefault<z.ZodNumber>;
229
229
  }, z.core.$strip>>;
230
+ box: z.ZodOptional<z.ZodObject<{
231
+ left: z.ZodNumber;
232
+ top: z.ZodNumber;
233
+ width: z.ZodNumber;
234
+ height: z.ZodNumber;
235
+ }, z.core.$strip>>;
236
+ fit: z.ZodOptional<z.ZodEnum<{
237
+ cover: "cover";
238
+ contain: "contain";
239
+ }>>;
230
240
  id: z.ZodString;
231
241
  trackId: z.ZodString;
232
242
  display: z.ZodObject<{
@@ -529,6 +539,16 @@ export declare const ClipSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
529
539
  saturation: z.ZodDefault<z.ZodNumber>;
530
540
  warmth: z.ZodDefault<z.ZodNumber>;
531
541
  }, z.core.$strip>>;
542
+ box: z.ZodOptional<z.ZodObject<{
543
+ left: z.ZodNumber;
544
+ top: z.ZodNumber;
545
+ width: z.ZodNumber;
546
+ height: z.ZodNumber;
547
+ }, z.core.$strip>>;
548
+ fit: z.ZodOptional<z.ZodEnum<{
549
+ cover: "cover";
550
+ contain: "contain";
551
+ }>>;
532
552
  id: z.ZodString;
533
553
  trackId: z.ZodString;
534
554
  display: z.ZodObject<{
@@ -748,8 +768,8 @@ export declare const ClipSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
748
768
  metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
749
769
  }, z.core.$strip>], "type">;
750
770
  export declare const TrackKindSchema: z.ZodEnum<{
751
- audio: "audio";
752
771
  video: "video";
772
+ audio: "audio";
753
773
  text: "text";
754
774
  caption: "caption";
755
775
  fx: "fx";
@@ -757,8 +777,8 @@ export declare const TrackKindSchema: z.ZodEnum<{
757
777
  export declare const TrackSchema: z.ZodObject<{
758
778
  id: z.ZodString;
759
779
  kind: z.ZodEnum<{
760
- audio: "audio";
761
780
  video: "video";
781
+ audio: "audio";
762
782
  text: "text";
763
783
  caption: "caption";
764
784
  fx: "fx";
@@ -808,8 +828,8 @@ export declare const ProjectSchema: z.ZodObject<{
808
828
  tracks: z.ZodArray<z.ZodObject<{
809
829
  id: z.ZodString;
810
830
  kind: z.ZodEnum<{
811
- audio: "audio";
812
831
  video: "video";
832
+ audio: "audio";
813
833
  text: "text";
814
834
  caption: "caption";
815
835
  fx: "fx";
@@ -903,6 +923,16 @@ export declare const ProjectSchema: z.ZodObject<{
903
923
  saturation: z.ZodDefault<z.ZodNumber>;
904
924
  warmth: z.ZodDefault<z.ZodNumber>;
905
925
  }, z.core.$strip>>;
926
+ box: z.ZodOptional<z.ZodObject<{
927
+ left: z.ZodNumber;
928
+ top: z.ZodNumber;
929
+ width: z.ZodNumber;
930
+ height: z.ZodNumber;
931
+ }, z.core.$strip>>;
932
+ fit: z.ZodOptional<z.ZodEnum<{
933
+ cover: "cover";
934
+ contain: "contain";
935
+ }>>;
906
936
  id: z.ZodString;
907
937
  trackId: z.ZodString;
908
938
  display: z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"project.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/project.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/project.schema.ts"],"names":[],"mappings":"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"}
@@ -205,6 +205,28 @@ exports.ImageClipSchema = zod_1.z.object({
205
205
  })
206
206
  .optional(),
207
207
  colorGrade: exports.ColorGradeSchema.optional(),
208
+ /**
209
+ * Optional fixed layout box in composition PIXELS. Used for overlay images
210
+ * pinned to a region — e.g. a brand logo in a corner (Reach per-recipient
211
+ * enrichment). When ABSENT the image fills the frame exactly as before (no
212
+ * behavior change for scene visuals). `left`/`top` are the box's top-left
213
+ * corner; `width`/`height` its size. Consumed by projectToDesign → the
214
+ * renderer's container/media styles.
215
+ */
216
+ box: zod_1.z
217
+ .object({
218
+ left: zod_1.z.number(),
219
+ top: zod_1.z.number(),
220
+ width: zod_1.z.number().positive(),
221
+ height: zod_1.z.number().positive(),
222
+ })
223
+ .optional(),
224
+ /**
225
+ * object-fit for the image within its box (or the frame). Default "cover"
226
+ * (unchanged legacy behavior). Overlay logos use "contain" so a wide/tall
227
+ * logo is letterboxed inside its box rather than cropped.
228
+ */
229
+ fit: zod_1.z.enum(["cover", "contain"]).optional(),
208
230
  });
209
231
  exports.AudioClipSchema = zod_1.z.object({
210
232
  ...ClipBase,
@@ -37,8 +37,8 @@ export declare const SocialInboxReplySchema: z.ZodObject<{
37
37
  /** Body for PATCH /v1/social/inbox/:id — update handling state / moderation. */
38
38
  export declare const SocialInboxUpdateSchema: z.ZodObject<{
39
39
  status: z.ZodOptional<z.ZodEnum<{
40
- read: "read";
41
40
  hidden: "hidden";
41
+ read: "read";
42
42
  unread: "unread";
43
43
  replied: "replied";
44
44
  }>>;