vidspotai-shared 1.0.91 → 1.0.93

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 (61) hide show
  1. package/lib/schemas/demoSpec.schema.d.ts +689 -0
  2. package/lib/schemas/demoSpec.schema.d.ts.map +1 -0
  3. package/lib/schemas/demoSpec.schema.js +276 -0
  4. package/lib/schemas/index.d.ts +1 -0
  5. package/lib/schemas/index.d.ts.map +1 -1
  6. package/lib/schemas/index.js +1 -0
  7. package/lib/schemas/project.schema.d.ts +78 -0
  8. package/lib/schemas/project.schema.d.ts.map +1 -1
  9. package/lib/schemas/project.schema.js +55 -1
  10. package/lib/schemas/videoPlan.schema.d.ts +69 -0
  11. package/lib/schemas/videoPlan.schema.d.ts.map +1 -1
  12. package/lib/schemas/videoPlan.schema.js +30 -1
  13. package/lib/services/agent/editClassifier.d.ts +16 -0
  14. package/lib/services/agent/editClassifier.d.ts.map +1 -1
  15. package/lib/services/agent/index.d.ts +1 -0
  16. package/lib/services/agent/index.d.ts.map +1 -1
  17. package/lib/services/agent/index.js +1 -0
  18. package/lib/services/agent/overlayRenderer.d.ts.map +1 -1
  19. package/lib/services/agent/overlayRenderer.js +8 -0
  20. package/lib/services/agent/planner/Planner.d.ts.map +1 -1
  21. package/lib/services/agent/planner/Planner.js +13 -2
  22. package/lib/services/agent/planner/structuralRules.d.ts.map +1 -1
  23. package/lib/services/agent/planner/structuralRules.js +6 -1
  24. package/lib/services/agent/textStylePacks.d.ts +35 -0
  25. package/lib/services/agent/textStylePacks.d.ts.map +1 -0
  26. package/lib/services/agent/textStylePacks.js +70 -0
  27. package/lib/services/agent/tools/composeScene.tool.d.ts +46 -0
  28. package/lib/services/agent/tools/composeScene.tool.d.ts.map +1 -1
  29. package/lib/services/agent/tools/estimateCost.tool.d.ts +16 -0
  30. package/lib/services/agent/tools/estimateCost.tool.d.ts.map +1 -1
  31. package/lib/services/agent/tools/planVideo.tool.d.ts +27 -0
  32. package/lib/services/agent/tools/planVideo.tool.d.ts.map +1 -1
  33. package/lib/services/agent/tools/render.tool.d.ts +16 -0
  34. package/lib/services/agent/tools/render.tool.d.ts.map +1 -1
  35. package/lib/services/aiGen/providers/bytedance/bytedance.service.d.ts.map +1 -1
  36. package/lib/services/aiGen/providers/bytedance/bytedance.service.js +8 -8
  37. package/lib/services/aiGen/providers/google/google.service.d.ts.map +1 -1
  38. package/lib/services/aiGen/providers/google/google.service.js +54 -18
  39. package/lib/services/aiGen/providers/google/googleApiKeys.d.ts +10 -6
  40. package/lib/services/aiGen/providers/google/googleApiKeys.d.ts.map +1 -1
  41. package/lib/services/aiGen/providers/google/googleApiKeys.js +10 -6
  42. package/lib/services/aiGen/providers/google/googleErrors.d.ts +17 -10
  43. package/lib/services/aiGen/providers/google/googleErrors.d.ts.map +1 -1
  44. package/lib/services/aiGen/providers/google/googleErrors.js +60 -21
  45. package/lib/services/aiGen/providers/google/googleKeyPool.d.ts.map +1 -1
  46. package/lib/services/aiGen/providers/google/googleKeyPool.js +40 -12
  47. package/lib/services/asr/index.d.ts +1 -0
  48. package/lib/services/asr/index.d.ts.map +1 -1
  49. package/lib/services/asr/index.js +1 -0
  50. package/lib/services/asr/transcribeWithFallback.d.ts +54 -0
  51. package/lib/services/asr/transcribeWithFallback.d.ts.map +1 -0
  52. package/lib/services/asr/transcribeWithFallback.js +87 -0
  53. package/lib/services/editor/designToProject.d.ts +2 -0
  54. package/lib/services/editor/designToProject.d.ts.map +1 -1
  55. package/lib/services/editor/designToProject.js +10 -0
  56. package/lib/services/editor/planToProject.d.ts.map +1 -1
  57. package/lib/services/editor/planToProject.helpers.d.ts +9 -3
  58. package/lib/services/editor/planToProject.helpers.d.ts.map +1 -1
  59. package/lib/services/editor/planToProject.helpers.js +17 -2
  60. package/lib/services/editor/planToProject.js +21 -3
  61. package/package.json +1 -1
@@ -190,6 +190,14 @@ export declare const TextOverlaySchema: z.ZodObject<{
190
190
  "word-pop": "word-pop";
191
191
  "highlight-current": "highlight-current";
192
192
  }>>;
193
+ preset: z.ZodOptional<z.ZodEnum<{
194
+ none: "none";
195
+ "fade-soft": "fade-soft";
196
+ "kinetic-pop": "kinetic-pop";
197
+ "editorial-wipe": "editorial-wipe";
198
+ "bold-slam": "bold-slam";
199
+ "type-on": "type-on";
200
+ }>>;
193
201
  startMs: z.ZodOptional<z.ZodNumber>;
194
202
  endMs: z.ZodOptional<z.ZodNumber>;
195
203
  persistAcrossScenes: z.ZodOptional<z.ZodBoolean>;
@@ -243,12 +251,32 @@ export type SceneLayout = z.infer<typeof SceneLayoutSchema>;
243
251
  * free-form CSS strings (hex or named). CH-1 added `fontWeight` (100–900),
244
252
  * which the renderer now honours (falling back to 800 when unset).
245
253
  */
254
+ /**
255
+ * Per-video animation "look". The planner picks ONE pack for the whole video
256
+ * so overlays/captions feel consistent; planToProject resolves the pack into
257
+ * concrete text/caption preset defaults (see resolveStylePack) that each
258
+ * overlay/caption can still override individually. Absent → "clean".
259
+ */
260
+ export declare const TextStylePackSchema: z.ZodEnum<{
261
+ bold: "bold";
262
+ clean: "clean";
263
+ kinetic: "kinetic";
264
+ editorial: "editorial";
265
+ minimal: "minimal";
266
+ }>;
267
+ export type TextStylePack = z.infer<typeof TextStylePackSchema>;
246
268
  export declare const CaptionStyleSchema: z.ZodObject<{
247
269
  fontFamily: z.ZodOptional<z.ZodString>;
248
270
  fontSize: z.ZodOptional<z.ZodNumber>;
249
271
  fontWeight: z.ZodOptional<z.ZodNumber>;
250
272
  color: z.ZodOptional<z.ZodString>;
251
273
  highlightColor: z.ZodOptional<z.ZodString>;
274
+ preset: z.ZodOptional<z.ZodEnum<{
275
+ none: "none";
276
+ "tiktok-word": "tiktok-word";
277
+ "karaoke-fill": "karaoke-fill";
278
+ "block-cut": "block-cut";
279
+ }>>;
252
280
  }, z.core.$strip>;
253
281
  export type CaptionStyle = z.infer<typeof CaptionStyleSchema>;
254
282
  export declare const PlannedSceneSchema: z.ZodObject<{
@@ -283,6 +311,12 @@ export declare const PlannedSceneSchema: z.ZodObject<{
283
311
  fontWeight: z.ZodOptional<z.ZodNumber>;
284
312
  color: z.ZodOptional<z.ZodString>;
285
313
  highlightColor: z.ZodOptional<z.ZodString>;
314
+ preset: z.ZodOptional<z.ZodEnum<{
315
+ none: "none";
316
+ "tiktok-word": "tiktok-word";
317
+ "karaoke-fill": "karaoke-fill";
318
+ "block-cut": "block-cut";
319
+ }>>;
286
320
  }, z.core.$strip>>;
287
321
  onScreenText: z.ZodOptional<z.ZodString>;
288
322
  overlays: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -340,6 +374,14 @@ export declare const PlannedSceneSchema: z.ZodObject<{
340
374
  "word-pop": "word-pop";
341
375
  "highlight-current": "highlight-current";
342
376
  }>>;
377
+ preset: z.ZodOptional<z.ZodEnum<{
378
+ none: "none";
379
+ "fade-soft": "fade-soft";
380
+ "kinetic-pop": "kinetic-pop";
381
+ "editorial-wipe": "editorial-wipe";
382
+ "bold-slam": "bold-slam";
383
+ "type-on": "type-on";
384
+ }>>;
343
385
  startMs: z.ZodOptional<z.ZodNumber>;
344
386
  endMs: z.ZodOptional<z.ZodNumber>;
345
387
  persistAcrossScenes: z.ZodOptional<z.ZodBoolean>;
@@ -504,6 +546,12 @@ export declare const VideoPlanSchema: z.ZodObject<{
504
546
  fontWeight: z.ZodOptional<z.ZodNumber>;
505
547
  color: z.ZodOptional<z.ZodString>;
506
548
  highlightColor: z.ZodOptional<z.ZodString>;
549
+ preset: z.ZodOptional<z.ZodEnum<{
550
+ none: "none";
551
+ "tiktok-word": "tiktok-word";
552
+ "karaoke-fill": "karaoke-fill";
553
+ "block-cut": "block-cut";
554
+ }>>;
507
555
  }, z.core.$strip>>;
508
556
  onScreenText: z.ZodOptional<z.ZodString>;
509
557
  overlays: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -561,6 +609,14 @@ export declare const VideoPlanSchema: z.ZodObject<{
561
609
  "word-pop": "word-pop";
562
610
  "highlight-current": "highlight-current";
563
611
  }>>;
612
+ preset: z.ZodOptional<z.ZodEnum<{
613
+ none: "none";
614
+ "fade-soft": "fade-soft";
615
+ "kinetic-pop": "kinetic-pop";
616
+ "editorial-wipe": "editorial-wipe";
617
+ "bold-slam": "bold-slam";
618
+ "type-on": "type-on";
619
+ }>>;
564
620
  startMs: z.ZodOptional<z.ZodNumber>;
565
621
  endMs: z.ZodOptional<z.ZodNumber>;
566
622
  persistAcrossScenes: z.ZodOptional<z.ZodBoolean>;
@@ -650,7 +706,20 @@ export declare const VideoPlanSchema: z.ZodObject<{
650
706
  fontWeight: z.ZodOptional<z.ZodNumber>;
651
707
  color: z.ZodOptional<z.ZodString>;
652
708
  highlightColor: z.ZodOptional<z.ZodString>;
709
+ preset: z.ZodOptional<z.ZodEnum<{
710
+ none: "none";
711
+ "tiktok-word": "tiktok-word";
712
+ "karaoke-fill": "karaoke-fill";
713
+ "block-cut": "block-cut";
714
+ }>>;
653
715
  }, z.core.$strip>>;
716
+ textStylePack: z.ZodOptional<z.ZodEnum<{
717
+ bold: "bold";
718
+ clean: "clean";
719
+ kinetic: "kinetic";
720
+ editorial: "editorial";
721
+ minimal: "minimal";
722
+ }>>;
654
723
  bible: z.ZodOptional<z.ZodObject<{
655
724
  characters: z.ZodDefault<z.ZodArray<z.ZodObject<{
656
725
  id: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"videoPlan.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/videoPlan.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB;;;;;;;GAOG;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB;;;;;iBAc5B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;iBASjC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;EASnC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;EAS/B,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc;;;;;;;;EAQzB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAY7B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;EAQ9B,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;;EAM5B,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8B5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,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,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;iBAqC5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB;;;;;;iBAM7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+I7B,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;iBAa/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;;;;;;iBAkBxB,CAAC;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD;;;;;;GAMG;AACH,eAAO,MAAM,YAAY;;;;;iBASvB,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4I1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"videoPlan.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/videoPlan.schema.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VideoPlanSchema = exports.ScriptSchema = exports.ChapterSchema = exports.PlannerWarningSchema = exports.PlannedSceneSchema = exports.CaptionStyleSchema = exports.SceneLayoutSchema = exports.TextOverlaySchema = exports.TextBgStyleSchema = exports.TextAnimationSchema = exports.TextPositionSchema = exports.TextRoleSchema = exports.TransitionKindSchema = exports.SceneAssetStrategySchema = exports.AgentVisualBibleSchema = exports.BibleEntitySchema = void 0;
3
+ exports.VideoPlanSchema = exports.ScriptSchema = exports.ChapterSchema = exports.PlannerWarningSchema = exports.PlannedSceneSchema = exports.CaptionStyleSchema = exports.TextStylePackSchema = exports.SceneLayoutSchema = exports.TextOverlaySchema = exports.TextBgStyleSchema = exports.TextAnimationSchema = exports.TextPositionSchema = exports.TextRoleSchema = exports.TransitionKindSchema = exports.SceneAssetStrategySchema = exports.AgentVisualBibleSchema = exports.BibleEntitySchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const agentPersona_schema_1 = require("./agentPersona.schema");
6
6
  const brief_schema_1 = require("./brief.schema");
@@ -158,6 +158,14 @@ exports.TextOverlaySchema = zod_1.z.object({
158
158
  */
159
159
  bgStyle: exports.TextBgStyleSchema.optional(),
160
160
  animation: exports.TextAnimationSchema.optional(),
161
+ /**
162
+ * Named animation preset (see TextPresetSchema). Preferred over `animation`
163
+ * for new plans — a preset bundles a richer, designed entrance. When both are
164
+ * set, `preset` wins at render time. The planner picks one per video for
165
+ * consistency (see the plan-level `textStylePack`); per-overlay overrides are
166
+ * rare. Absent → renderer uses `animation` (or its role default).
167
+ */
168
+ preset: project_schema_1.TextPresetSchema.optional(),
161
169
  /** Start/end times in ms within the scene; default = whole scene. */
162
170
  startMs: zod_1.z.number().nonnegative().optional(),
163
171
  endMs: zod_1.z.number().nonnegative().optional(),
@@ -221,12 +229,27 @@ exports.SceneLayoutSchema = zod_1.z.object({
221
229
  * free-form CSS strings (hex or named). CH-1 added `fontWeight` (100–900),
222
230
  * which the renderer now honours (falling back to 800 when unset).
223
231
  */
232
+ /**
233
+ * Per-video animation "look". The planner picks ONE pack for the whole video
234
+ * so overlays/captions feel consistent; planToProject resolves the pack into
235
+ * concrete text/caption preset defaults (see resolveStylePack) that each
236
+ * overlay/caption can still override individually. Absent → "clean".
237
+ */
238
+ exports.TextStylePackSchema = zod_1.z.enum([
239
+ "clean", // fade-soft text, plain captions — neutral / corporate
240
+ "bold", // bold-slam headlines, tiktok-word captions — punchy ads
241
+ "kinetic", // kinetic-pop text, tiktok-word captions — energetic social
242
+ "editorial", // editorial-wipe text, karaoke-fill captions — premium brand
243
+ "minimal", // static text, plain captions — let the visuals breathe
244
+ ]);
224
245
  exports.CaptionStyleSchema = zod_1.z.object({
225
246
  fontFamily: zod_1.z.string().min(1).max(80).optional(),
226
247
  fontSize: zod_1.z.number().int().min(8).max(200).optional(),
227
248
  fontWeight: zod_1.z.number().int().min(100).max(900).optional(),
228
249
  color: zod_1.z.string().min(1).max(40).optional(),
229
250
  highlightColor: zod_1.z.string().min(1).max(40).optional(),
251
+ /** Named caption animation preset (see CaptionPresetSchema). Absent → "none". */
252
+ preset: project_schema_1.CaptionPresetSchema.optional(),
230
253
  });
231
254
  exports.PlannedSceneSchema = zod_1.z.object({
232
255
  sceneIndex: zod_1.z.number().int().nonnegative(),
@@ -527,6 +550,12 @@ exports.VideoPlanSchema = zod_1.z.object({
527
550
  * this in the planner — it's a post-hoc user edit.
528
551
  */
529
552
  captionStyle: exports.CaptionStyleSchema.optional(),
553
+ /**
554
+ * Per-video animation look (see TextStylePackSchema). The planner picks one
555
+ * for consistency; planToProject resolves it into default text/caption
556
+ * presets that individual overlays/captions can override. Absent → "clean".
557
+ */
558
+ textStylePack: exports.TextStylePackSchema.optional(),
530
559
  /**
531
560
  * AG-12 — Visual Bible built by the BibleBuilder pre-pass and threaded
532
561
  * into every scene that references entity ids. Optional because legacy
@@ -92,6 +92,14 @@ export declare const TextEditSchema: z.ZodObject<{
92
92
  "word-pop": "word-pop";
93
93
  "highlight-current": "highlight-current";
94
94
  }>>;
95
+ preset: z.ZodOptional<z.ZodEnum<{
96
+ none: "none";
97
+ "fade-soft": "fade-soft";
98
+ "kinetic-pop": "kinetic-pop";
99
+ "editorial-wipe": "editorial-wipe";
100
+ "bold-slam": "bold-slam";
101
+ "type-on": "type-on";
102
+ }>>;
95
103
  startMs: z.ZodOptional<z.ZodNumber>;
96
104
  endMs: z.ZodOptional<z.ZodNumber>;
97
105
  persistAcrossScenes: z.ZodOptional<z.ZodBoolean>;
@@ -187,6 +195,14 @@ export declare const EditRequestSchema: z.ZodObject<{
187
195
  "word-pop": "word-pop";
188
196
  "highlight-current": "highlight-current";
189
197
  }>>;
198
+ preset: z.ZodOptional<z.ZodEnum<{
199
+ none: "none";
200
+ "fade-soft": "fade-soft";
201
+ "kinetic-pop": "kinetic-pop";
202
+ "editorial-wipe": "editorial-wipe";
203
+ "bold-slam": "bold-slam";
204
+ "type-on": "type-on";
205
+ }>>;
190
206
  startMs: z.ZodOptional<z.ZodNumber>;
191
207
  endMs: z.ZodOptional<z.ZodNumber>;
192
208
  persistAcrossScenes: z.ZodOptional<z.ZodBoolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"editClassifier.d.ts","sourceRoot":"","sources":["../../../src/services/agent/editClassifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,qBAAqB;;;;;;;;EAQhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,eAAe;;;iBAS1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGzB,CAAC;AAEH,eAAO,MAAM,YAAY;;;iBAKvB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;iBAK1B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;iBAKhC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;iBAGlC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;iBAG5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8B5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,gBAAgB,EAAE,KAAK,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,uFAAuF;IACvF,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,GAAG,WAAW,GAAG,IAAI,CAwCrB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC,GAAG,MAAM,CAuBT"}
1
+ {"version":3,"file":"editClassifier.d.ts","sourceRoot":"","sources":["../../../src/services/agent/editClassifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,qBAAqB;;;;;;;;EAQhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,eAAe;;;iBAS1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGzB,CAAC;AAEH,eAAO,MAAM,YAAY;;;iBAKvB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;iBAK1B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;iBAKhC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;iBAGlC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;iBAG5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8B5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,gBAAgB,EAAE,KAAK,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,uFAAuF;IACvF,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,GAAG,WAAW,GAAG,IAAI,CAwCrB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC,GAAG,MAAM,CAuBT"}
@@ -40,6 +40,7 @@ export * from "./stitchedVideoCritic";
40
40
  export * from "./stitchedVideoCritic.gemini";
41
41
  export * from "./perSceneCritic";
42
42
  export * from "./textOverlayStyles";
43
+ export * from "./textStylePacks";
43
44
  export * from "./overlayRenderer";
44
45
  export * from "./editClassifier";
45
46
  export * from "./qualityGate";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/agent/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,UAAU,CAAC;AACzB,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/agent/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,UAAU,CAAC;AACzB,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
@@ -56,6 +56,7 @@ __exportStar(require("./stitchedVideoCritic"), exports);
56
56
  __exportStar(require("./stitchedVideoCritic.gemini"), exports);
57
57
  __exportStar(require("./perSceneCritic"), exports);
58
58
  __exportStar(require("./textOverlayStyles"), exports);
59
+ __exportStar(require("./textStylePacks"), exports);
59
60
  __exportStar(require("./overlayRenderer"), exports);
60
61
  __exportStar(require("./editClassifier"), exports);
61
62
  __exportStar(require("./qualityGate"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"overlayRenderer.d.ts","sourceRoot":"","sources":["../../../src/services/agent/overlayRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAElF,MAAM,WAAW,aAAa;IAC5B,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,gBAAgB,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,MAAM,EAAE,WAAW,CAAC;IACpB,8DAA8D;IAC9D,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,+CAA+C;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAsHD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,aAAa,GACjB,eAAe,CA6EjB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,WAAW,EAAE,EACvB,GAAG,EAAE,aAAa,GACjB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAMlD;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,GACzC,WAAW,EAAE,EAAE,CAyBjB"}
1
+ {"version":3,"file":"overlayRenderer.d.ts","sourceRoot":"","sources":["../../../src/services/agent/overlayRenderer.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAElF,MAAM,WAAW,aAAa;IAC5B,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,gBAAgB,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,MAAM,EAAE,WAAW,CAAC;IACpB,8DAA8D;IAC9D,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,+CAA+C;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAsHD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,aAAa,GACjB,eAAe,CA6EjB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,WAAW,EAAE,EACvB,GAAG,EAAE,aAAa,GACjB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAMlD;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,GACzC,WAAW,EAAE,EAAE,CAyBjB"}
@@ -1,4 +1,12 @@
1
1
  "use strict";
2
+ // REMOVED FOR v2 — kept for reference.
3
+ // Legacy text-overlay path (ffmpeg `drawtext` → later skia-canvas). The live v2
4
+ // agent render composites text via the Remotion render tree
5
+ // (vidspotai-remotion-components → TextClipView/CaptionClipView, driven by
6
+ // apps/node-express-server/src/services/render/remotionRenderer.ts), which gives
7
+ // the editor preview 1:1 parity with the export. Nothing in the production
8
+ // pipeline imports this any more — only dev/debug replay scripts do. Retained,
9
+ // not deleted, so those scripts keep working and the old approach is recoverable.
2
10
  /**
3
11
  * AG-40 — overlay renderer. Turns a `TextOverlay[]` into a list of ffmpeg
4
12
  * `drawtext` filter expressions ready to chain in a `-filter_complex` graph.
@@ -1 +1 @@
1
- {"version":3,"file":"Planner.d.ts","sourceRoot":"","sources":["../../../../src/services/agent/planner/Planner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAoB,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,SAAS,EAEV,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAkB7C;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,SAAS,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,OAAO;IAIN,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAEP,IAAI,EAAE,cAAc;IAK3C,IAAI,CACR,KAAK,EAAE,UAAU,EACjB,IAAI,GAAE;QACJ,OAAO,CAAC,EAAE,YAAY,CAAC;QACvB,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;QACjC,WAAW,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;QACvC,KAAK,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;QAChC;;;;;;WAMG;QACH,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;KAC9B,GACL,OAAO,CAAC,SAAS,CAAC;IAyQrB;;;;;;;;;;;OAWG;IACH,UAAU,CACR,KAAK,EAAE,UAAU,EACjB,IAAI,GAAE;QACJ,OAAO,CAAC,EAAE,YAAY,CAAC;QACvB,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;QACjC,WAAW,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;QACvC,KAAK,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;KAC5B,GACL;QAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;KAAE;IAqEhE;;;;;;;;;;;;;;;;OAgBG;IACG,0BAA0B,CAC9B,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,UAAU,EACjB,IAAI,GAAE;QACJ,OAAO,CAAC,EAAE,YAAY,CAAC;QACvB,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;QACjC,KAAK,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;QAChC,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,0EAA0E;QAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;KACjB,GACL,OAAO,CAAC,WAAW,EAAE,CAAC;CAQ1B"}
1
+ {"version":3,"file":"Planner.d.ts","sourceRoot":"","sources":["../../../../src/services/agent/planner/Planner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAoB,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,SAAS,EAEV,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAkB7C;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,SAAS,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,OAAO;IAIN,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAEP,IAAI,EAAE,cAAc;IAK3C,IAAI,CACR,KAAK,EAAE,UAAU,EACjB,IAAI,GAAE;QACJ,OAAO,CAAC,EAAE,YAAY,CAAC;QACvB,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;QACjC,WAAW,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;QACvC,KAAK,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;QAChC;;;;;;WAMG;QACH,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;KAC9B,GACL,OAAO,CAAC,SAAS,CAAC;IAoRrB;;;;;;;;;;;OAWG;IACH,UAAU,CACR,KAAK,EAAE,UAAU,EACjB,IAAI,GAAE;QACJ,OAAO,CAAC,EAAE,YAAY,CAAC;QACvB,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;QACjC,WAAW,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;QACvC,KAAK,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;KAC5B,GACL;QAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;KAAE;IAqEhE;;;;;;;;;;;;;;;;OAgBG;IACG,0BAA0B,CAC9B,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,UAAU,EACjB,IAAI,GAAE;QACJ,OAAO,CAAC,EAAE,YAAY,CAAC;QACvB,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;QACjC,KAAK,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;QAChC,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,0EAA0E;QAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;KACjB,GACL,OAAO,CAAC,WAAW,EAAE,CAAC;CAQ1B"}
@@ -129,9 +129,20 @@ class Planner {
129
129
  const reparsed = videoPlan_schema_1.VideoPlanSchema.safeParse(result.data);
130
130
  if (reparsed.success) {
131
131
  // AG-9: duration contract. Brief.durationSec is the user's ask; if the
132
- // plan under-delivers by >10%, re-prompt with an explicit correction.
132
+ // plan over/under-delivers by >10%, re-prompt with an explicit correction.
133
+ //
134
+ // Downgrade-on-last-attempt (like ttsGap/chapterGap below): for SHORT
135
+ // briefs the ±10% window can be narrower than the scene-duration quantum
136
+ // and have NO feasible integer-scene solution — e.g. an 8s brief allows
137
+ // 7.2–8.8s, but a 5s-min model gives 1 scene=5s (under) or 2 scenes=10s
138
+ // (over, ratio 1.25) with nothing in between, so every retry fails and
139
+ // the WHOLE project was being thrown away + paging on-call. A duration
140
+ // miss is a quality miss, not render-breaking (the user still gets a
141
+ // playable video and the storyboard shows the real total duration), so
142
+ // after we've burned every retry, ship the closest plan rather than
143
+ // fail the project. The LLM still gets all maxRetries to hit the target.
133
144
  const durationGap = (0, validators_1.checkDurationContract)(reparsed.data, brief);
134
- if (durationGap) {
145
+ if (durationGap && attempt < this.maxRetries) {
135
146
  lastErrors = durationGap;
136
147
  continue;
137
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"structuralRules.d.ts","sourceRoot":"","sources":["../../../../src/services/agent/planner/structuralRules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,MAAM,+BAA+B,CAAC;AAE7E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAsOrE"}
1
+ {"version":3,"file":"structuralRules.d.ts","sourceRoot":"","sources":["../../../../src/services/agent/planner/structuralRules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,MAAM,+BAA+B,CAAC;AAG7E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CA0OrE"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildStructuralRulesSection = buildStructuralRulesSection;
4
4
  const brief_schema_1 = require("../../../schemas/brief.schema");
5
+ const textStylePacks_1 = require("../textStylePacks");
5
6
  /**
6
7
  * Strict structural rules surfaced by Phase 1 dry-run (AG-8/9/10). These three
7
8
  * gaps consistently capped UGC eval scores at 0.887 — pacing ignored, duration
@@ -147,7 +148,11 @@ function buildStructuralRulesSection(brief) {
147
148
  // text-layout v1 — extended position vocabulary + animation/bgStyle/sizePct
148
149
  // recommendations. Planner picks per-scene based on scene.intent / role.
149
150
  lines.push(" - Overlay position vocabulary (set `position` explicitly to override role default): 'top', 'top-banner' (full-width strip across the top — good for category labels / counter chips), 'top-left' / 'top-right' (corner badges), 'center' (single-line emphasis), 'left-rail' (vertically-centered left 33% — product-shot copy beside the asset), 'lower-third' (default for subheadline/body), 'bottom', 'bottom-left' / 'bottom-right', 'caption-strip' (bottom-pinned word-by-word captions — TikTok-style on voiceover-driven scenes). Pick the position that matches the scene intent: hook → 'center' or 'top-banner'; product-reveal → 'left-rail' or 'lower-third'; voiceover-narration → 'caption-strip'; cta → 'lower-third' or bottom band.");
150
- lines.push(" - Overlay animation (set `animation` to override role default): 'fade' (default neutral), 'slide-up' (cta / lower-third feels intentional), 'pop' (headline / label — punchy), 'type' (typewriter — sparingly, on hook moments only), 'word-pop' (each word pops in sequentially — for hooks where you want to land the message word by word), 'highlight-current' (for caption-strip — active word brightens while others dim, mimics karaoke captions; ONLY use with position='caption-strip'). Default to 'fade' if unsure. Don't stack 'word-pop' on every scene — once or twice per video.");
151
+ // Animation style pack — the ONE top-level animation decision. It sets how
152
+ // overlays and captions animate across the whole video; per-overlay
153
+ // `animation`/`preset` overrides below are rarely needed once a pack is set.
154
+ lines.push(` - ${textStylePacks_1.TEXT_STYLE_PACK_CHEAT_SHEET}`);
155
+ lines.push(" - Overlay animation (OPTIONAL per-overlay override — the `textStylePack` above already sets sensible motion, so only set this when ONE overlay must differ): 'fade', 'slide-up', 'pop', 'type', 'word-pop', 'highlight-current' (caption-strip only). Prefer leaving it unset and letting the pack drive the look.");
151
156
  lines.push(" - Overlay bgStyle (background decoration for legibility — set `bgStyle` to override the auto-default): 'none' (text only, no chrome), 'shadow' (drop shadow — safe default on any background), 'pill' (rounded-rect fill hugging the text — great for cta / counter chips), 'bar' (full-width edge-to-edge band — pairs with 'top-banner' or 'caption-strip'), 'outline' (glyph stroke for high contrast on busy footage). The renderer applies a smart default when omitted, so only set this when you specifically want a different treatment.");
152
157
  lines.push(" - Overlay sizePct (optional alternative to fontSize, expressed as % of frame height, range 2–20): use for resolution-independent sizing. Typical: hook headline ~10–14, subheadline ~6–8, body ~4–6, caption-strip ~5–7, watermark ~2–3. The role default is fine 90% of the time; only set sizePct when you want emphasis bigger or smaller than the role suggests.");
153
158
  lines.push(" - Overlay font (optional, picks from the curated pack): one of 'Inter', 'Anton', 'Bebas Neue', 'Playfair Display', 'Caveat', 'Permanent Marker', 'IBM Plex Sans', 'Space Grotesk', 'Archivo Black', 'Outfit', 'Fraunces', 'DM Serif Display'. Persona-driven pick: friendly/casual → Caveat or Outfit; bold/urgent (sales hook) → Anton, Archivo Black, or Bebas Neue; editorial/premium → Playfair Display, Fraunces, or DM Serif Display; tech/modern → Inter, Space Grotesk, or IBM Plex Sans; handmade/artisanal → Permanent Marker or Caveat. Omit `font` to use the role default (Poppins) when no persona signal is strong.");
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Text/caption style packs — the per-video "animation look" the planner picks
3
+ * once, resolved into concrete TextPreset / CaptionPreset defaults per role.
4
+ *
5
+ * Why a pack (not per-overlay animation choices): a single coherent look reads
6
+ * far better than each overlay animating differently. The planner emits ONE
7
+ * `textStylePack` for the whole video; planToProject resolves it into a preset
8
+ * for every overlay/caption, and any per-overlay `preset` still wins. The
9
+ * preset ids here MUST stay in lock-step with the registry in
10
+ * `vidspotai-remotion-components/src/presets` and the enums in project.schema.
11
+ */
12
+ import type { CaptionPreset, TextPreset } from "../../schemas/project.schema";
13
+ import type { TextRole, TextStylePack } from "../../schemas/videoPlan.schema";
14
+ export interface StylePackDef {
15
+ label: string;
16
+ description: string;
17
+ /** Default text preset for any role not in `textByRole`. */
18
+ text: TextPreset;
19
+ /** Role-specific overrides (e.g. headlines slam, body fades). */
20
+ textByRole?: Partial<Record<TextRole, TextPreset>>;
21
+ /** Caption animation for the whole video. */
22
+ caption: CaptionPreset;
23
+ }
24
+ export declare const DEFAULT_STYLE_PACK: TextStylePack;
25
+ export declare const TEXT_STYLE_PACKS: Record<TextStylePack, StylePackDef>;
26
+ /** Resolve the text preset for a given role under a pack (per-role override wins). */
27
+ export declare function resolveTextPreset(pack: TextStylePack | undefined, role: TextRole): TextPreset;
28
+ /** Resolve the caption preset for a pack. */
29
+ export declare function resolveCaptionPreset(pack: TextStylePack | undefined): CaptionPreset;
30
+ /**
31
+ * Cheat sheet handed to the planner so it picks a pack that fits the persona /
32
+ * brief instead of leaving it default. One line per pack.
33
+ */
34
+ export declare const TEXT_STYLE_PACK_CHEAT_SHEET: string;
35
+ //# sourceMappingURL=textStylePacks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textStylePacks.d.ts","sourceRoot":"","sources":["../../../src/services/agent/textStylePacks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE9E,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,IAAI,EAAE,UAAU,CAAC;IACjB,iEAAiE;IACjE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IACnD,6CAA6C;IAC7C,OAAO,EAAE,aAAa,CAAC;CACxB;AAED,eAAO,MAAM,kBAAkB,EAAE,aAAuB,CAAC;AAEzD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,aAAa,EAAE,YAAY,CAqChE,CAAC;AAEF,sFAAsF;AACtF,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,aAAa,GAAG,SAAS,EAC/B,IAAI,EAAE,QAAQ,GACb,UAAU,CAGZ;AAED,6CAA6C;AAC7C,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,aAAa,GAAG,SAAS,GAC9B,aAAa,CAEf;AAED;;;GAGG;AACH,eAAO,MAAM,2BAA2B,QAMhC,CAAC"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ /**
3
+ * Text/caption style packs — the per-video "animation look" the planner picks
4
+ * once, resolved into concrete TextPreset / CaptionPreset defaults per role.
5
+ *
6
+ * Why a pack (not per-overlay animation choices): a single coherent look reads
7
+ * far better than each overlay animating differently. The planner emits ONE
8
+ * `textStylePack` for the whole video; planToProject resolves it into a preset
9
+ * for every overlay/caption, and any per-overlay `preset` still wins. The
10
+ * preset ids here MUST stay in lock-step with the registry in
11
+ * `vidspotai-remotion-components/src/presets` and the enums in project.schema.
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.TEXT_STYLE_PACK_CHEAT_SHEET = exports.TEXT_STYLE_PACKS = exports.DEFAULT_STYLE_PACK = void 0;
15
+ exports.resolveTextPreset = resolveTextPreset;
16
+ exports.resolveCaptionPreset = resolveCaptionPreset;
17
+ exports.DEFAULT_STYLE_PACK = "clean";
18
+ exports.TEXT_STYLE_PACKS = {
19
+ clean: {
20
+ label: "Clean",
21
+ description: "Gentle fades, no flashy motion. Corporate, explainer, professional, real-estate.",
22
+ text: "fade-soft",
23
+ caption: "none",
24
+ },
25
+ bold: {
26
+ label: "Bold",
27
+ description: "Headlines slam in, captions pop word-by-word. Direct-response ads, promos, hooks.",
28
+ text: "kinetic-pop",
29
+ textByRole: { headline: "bold-slam", cta: "bold-slam" },
30
+ caption: "tiktok-word",
31
+ },
32
+ kinetic: {
33
+ label: "Kinetic",
34
+ description: "Energetic per-word motion throughout. Social / UGC / fast-cut, high-retention.",
35
+ text: "kinetic-pop",
36
+ caption: "tiktok-word",
37
+ },
38
+ editorial: {
39
+ label: "Editorial",
40
+ description: "Refined wipe reveals + karaoke caption fill. Premium brand films, fashion, lifestyle.",
41
+ text: "editorial-wipe",
42
+ caption: "karaoke-fill",
43
+ },
44
+ minimal: {
45
+ label: "Minimal",
46
+ description: "Static text, plain captions. Let the visuals lead — cinematic, documentary.",
47
+ text: "none",
48
+ caption: "none",
49
+ },
50
+ };
51
+ /** Resolve the text preset for a given role under a pack (per-role override wins). */
52
+ function resolveTextPreset(pack, role) {
53
+ const def = exports.TEXT_STYLE_PACKS[pack ?? exports.DEFAULT_STYLE_PACK];
54
+ return def.textByRole?.[role] ?? def.text;
55
+ }
56
+ /** Resolve the caption preset for a pack. */
57
+ function resolveCaptionPreset(pack) {
58
+ return exports.TEXT_STYLE_PACKS[pack ?? exports.DEFAULT_STYLE_PACK].caption;
59
+ }
60
+ /**
61
+ * Cheat sheet handed to the planner so it picks a pack that fits the persona /
62
+ * brief instead of leaving it default. One line per pack.
63
+ */
64
+ exports.TEXT_STYLE_PACK_CHEAT_SHEET = `
65
+ Animation style packs (pick exactly one \`textStylePack\` for the whole video — match it to the persona/vibe):
66
+ ${Object.entries(exports.TEXT_STYLE_PACKS)
67
+ .map(([id, def]) => ` - ${id}: ${def.description}`)
68
+ .join("\n")}
69
+ Default is "clean" when unsure. The pack drives how headlines/CTAs and captions animate; you don't need to set per-overlay \`animation\`/\`preset\` unless one overlay must differ.
70
+ `.trim();
@@ -36,6 +36,7 @@ declare const InputSchema: z.ZodObject<{
36
36
  fx: "fx";
37
37
  }>;
38
38
  name: z.ZodOptional<z.ZodString>;
39
+ sourceTrackId: z.ZodOptional<z.ZodString>;
39
40
  index: z.ZodNumber;
40
41
  muted: z.ZodDefault<z.ZodBoolean>;
41
42
  hidden: z.ZodDefault<z.ZodBoolean>;
@@ -230,6 +231,14 @@ declare const InputSchema: z.ZodObject<{
230
231
  }>>;
231
232
  backgroundColor: z.ZodOptional<z.ZodString>;
232
233
  shadow: z.ZodOptional<z.ZodString>;
234
+ preset: z.ZodOptional<z.ZodEnum<{
235
+ none: "none";
236
+ "fade-soft": "fade-soft";
237
+ "kinetic-pop": "kinetic-pop";
238
+ "editorial-wipe": "editorial-wipe";
239
+ "bold-slam": "bold-slam";
240
+ "type-on": "type-on";
241
+ }>>;
233
242
  id: z.ZodString;
234
243
  trackId: z.ZodString;
235
244
  display: z.ZodObject<{
@@ -285,6 +294,12 @@ declare const InputSchema: z.ZodObject<{
285
294
  color: z.ZodDefault<z.ZodString>;
286
295
  highlightColor: z.ZodOptional<z.ZodString>;
287
296
  language: z.ZodDefault<z.ZodString>;
297
+ preset: z.ZodOptional<z.ZodEnum<{
298
+ none: "none";
299
+ "tiktok-word": "tiktok-word";
300
+ "karaoke-fill": "karaoke-fill";
301
+ "block-cut": "block-cut";
302
+ }>>;
288
303
  id: z.ZodString;
289
304
  trackId: z.ZodString;
290
305
  display: z.ZodObject<{
@@ -353,6 +368,7 @@ declare const InputSchema: z.ZodObject<{
353
368
  "from-bottom-left": "from-bottom-left";
354
369
  }>>;
355
370
  }, z.core.$strip>>>;
371
+ masterVolume: z.ZodDefault<z.ZodNumber>;
356
372
  agentRunId: z.ZodOptional<z.ZodString>;
357
373
  metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
358
374
  createdAt: z.ZodString;
@@ -549,6 +565,14 @@ declare const InputSchema: z.ZodObject<{
549
565
  }>>;
550
566
  backgroundColor: z.ZodOptional<z.ZodString>;
551
567
  shadow: z.ZodOptional<z.ZodString>;
568
+ preset: z.ZodOptional<z.ZodEnum<{
569
+ none: "none";
570
+ "fade-soft": "fade-soft";
571
+ "kinetic-pop": "kinetic-pop";
572
+ "editorial-wipe": "editorial-wipe";
573
+ "bold-slam": "bold-slam";
574
+ "type-on": "type-on";
575
+ }>>;
552
576
  id: z.ZodString;
553
577
  trackId: z.ZodString;
554
578
  display: z.ZodObject<{
@@ -604,6 +628,12 @@ declare const InputSchema: z.ZodObject<{
604
628
  color: z.ZodDefault<z.ZodString>;
605
629
  highlightColor: z.ZodOptional<z.ZodString>;
606
630
  language: z.ZodDefault<z.ZodString>;
631
+ preset: z.ZodOptional<z.ZodEnum<{
632
+ none: "none";
633
+ "tiktok-word": "tiktok-word";
634
+ "karaoke-fill": "karaoke-fill";
635
+ "block-cut": "block-cut";
636
+ }>>;
607
637
  id: z.ZodString;
608
638
  trackId: z.ZodString;
609
639
  display: z.ZodObject<{
@@ -711,6 +741,7 @@ declare const OutputSchema: z.ZodObject<{
711
741
  fx: "fx";
712
742
  }>;
713
743
  name: z.ZodOptional<z.ZodString>;
744
+ sourceTrackId: z.ZodOptional<z.ZodString>;
714
745
  index: z.ZodNumber;
715
746
  muted: z.ZodDefault<z.ZodBoolean>;
716
747
  hidden: z.ZodDefault<z.ZodBoolean>;
@@ -905,6 +936,14 @@ declare const OutputSchema: z.ZodObject<{
905
936
  }>>;
906
937
  backgroundColor: z.ZodOptional<z.ZodString>;
907
938
  shadow: z.ZodOptional<z.ZodString>;
939
+ preset: z.ZodOptional<z.ZodEnum<{
940
+ none: "none";
941
+ "fade-soft": "fade-soft";
942
+ "kinetic-pop": "kinetic-pop";
943
+ "editorial-wipe": "editorial-wipe";
944
+ "bold-slam": "bold-slam";
945
+ "type-on": "type-on";
946
+ }>>;
908
947
  id: z.ZodString;
909
948
  trackId: z.ZodString;
910
949
  display: z.ZodObject<{
@@ -960,6 +999,12 @@ declare const OutputSchema: z.ZodObject<{
960
999
  color: z.ZodDefault<z.ZodString>;
961
1000
  highlightColor: z.ZodOptional<z.ZodString>;
962
1001
  language: z.ZodDefault<z.ZodString>;
1002
+ preset: z.ZodOptional<z.ZodEnum<{
1003
+ none: "none";
1004
+ "tiktok-word": "tiktok-word";
1005
+ "karaoke-fill": "karaoke-fill";
1006
+ "block-cut": "block-cut";
1007
+ }>>;
963
1008
  id: z.ZodString;
964
1009
  trackId: z.ZodString;
965
1010
  display: z.ZodObject<{
@@ -1028,6 +1073,7 @@ declare const OutputSchema: z.ZodObject<{
1028
1073
  "from-bottom-left": "from-bottom-left";
1029
1074
  }>>;
1030
1075
  }, z.core.$strip>>>;
1076
+ masterVolume: z.ZodDefault<z.ZodNumber>;
1031
1077
  agentRunId: z.ZodOptional<z.ZodString>;
1032
1078
  metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1033
1079
  createdAt: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"composeScene.tool.d.ts","sourceRoot":"","sources":["../../../../src/services/agent/tools/composeScene.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,OAAO,EAAgB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAiC/D,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGf,CAAC;AAEH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIhB,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,cAAc,CAC3C,OAAO,WAAW,EAClB,OAAO,YAAY,CA4DpB,CAAC"}
1
+ {"version":3,"file":"composeScene.tool.d.ts","sourceRoot":"","sources":["../../../../src/services/agent/tools/composeScene.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,OAAO,EAAgB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAiC/D,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGf,CAAC;AAEH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIhB,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,cAAc,CAC3C,OAAO,WAAW,EAClB,OAAO,YAAY,CA4DpB,CAAC"}