@kadj-amoah/showrunner 1.1.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.
@@ -0,0 +1,2604 @@
1
+ import { z } from 'zod';
2
+
3
+ declare const comprehensionSchema: z.ZodObject<{
4
+ mode: z.ZodDefault<z.ZodEnum<["documents", "interactive"]>>;
5
+ sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
6
+ type: z.ZodEnum<["prd", "readme", "codebase", "openapi", "changelog", "custom"]>;
7
+ path: z.ZodString;
8
+ include: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
9
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ path: string;
12
+ type: "custom" | "prd" | "readme" | "codebase" | "openapi" | "changelog";
13
+ include?: string[] | undefined;
14
+ exclude?: string[] | undefined;
15
+ }, {
16
+ path: string;
17
+ type: "custom" | "prd" | "readme" | "codebase" | "openapi" | "changelog";
18
+ include?: string[] | undefined;
19
+ exclude?: string[] | undefined;
20
+ }>, "many">>;
21
+ }, "strip", z.ZodTypeAny, {
22
+ mode: "documents" | "interactive";
23
+ sources: {
24
+ path: string;
25
+ type: "custom" | "prd" | "readme" | "codebase" | "openapi" | "changelog";
26
+ include?: string[] | undefined;
27
+ exclude?: string[] | undefined;
28
+ }[];
29
+ }, {
30
+ mode?: "documents" | "interactive" | undefined;
31
+ sources?: {
32
+ path: string;
33
+ type: "custom" | "prd" | "readme" | "codebase" | "openapi" | "changelog";
34
+ include?: string[] | undefined;
35
+ exclude?: string[] | undefined;
36
+ }[] | undefined;
37
+ }>;
38
+ declare const scriptSchema: z.ZodObject<{
39
+ style: z.ZodDefault<z.ZodString>;
40
+ duration_target_seconds: z.ZodDefault<z.ZodNumber>;
41
+ highlight_features: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
42
+ vo_review_gate: z.ZodDefault<z.ZodBoolean>;
43
+ }, "strip", z.ZodTypeAny, {
44
+ style: string;
45
+ duration_target_seconds: number;
46
+ highlight_features: string[];
47
+ vo_review_gate: boolean;
48
+ }, {
49
+ style?: string | undefined;
50
+ duration_target_seconds?: number | undefined;
51
+ highlight_features?: string[] | undefined;
52
+ vo_review_gate?: boolean | undefined;
53
+ }>;
54
+ declare const recordingSchema: z.ZodObject<{
55
+ target_url: z.ZodString;
56
+ viewport: z.ZodDefault<z.ZodObject<{
57
+ width: z.ZodNumber;
58
+ height: z.ZodNumber;
59
+ }, "strip", z.ZodTypeAny, {
60
+ width: number;
61
+ height: number;
62
+ }, {
63
+ width: number;
64
+ height: number;
65
+ }>>;
66
+ browser: z.ZodDefault<z.ZodEnum<["chromium", "firefox", "webkit"]>>;
67
+ headless: z.ZodDefault<z.ZodBoolean>;
68
+ output_dir: z.ZodDefault<z.ZodString>;
69
+ trace_dir: z.ZodDefault<z.ZodString>;
70
+ cursor_highlight: z.ZodDefault<z.ZodBoolean>;
71
+ cursor_min_motion_ms: z.ZodDefault<z.ZodNumber>;
72
+ cursor_max_motion_ms: z.ZodDefault<z.ZodNumber>;
73
+ cursor_post_arrival_ms: z.ZodDefault<z.ZodNumber>;
74
+ cursor_speed_factor: z.ZodDefault<z.ZodNumber>;
75
+ cursor_chain_mode: z.ZodDefault<z.ZodEnum<["strict", "smart"]>>;
76
+ segment_buffer_ms: z.ZodDefault<z.ZodNumber>;
77
+ preflight: z.ZodDefault<z.ZodBoolean>;
78
+ state: z.ZodDefault<z.ZodObject<{
79
+ seed_script: z.ZodOptional<z.ZodString>;
80
+ reset_script: z.ZodOptional<z.ZodString>;
81
+ teardown_script: z.ZodOptional<z.ZodString>;
82
+ }, "strip", z.ZodTypeAny, {
83
+ seed_script?: string | undefined;
84
+ reset_script?: string | undefined;
85
+ teardown_script?: string | undefined;
86
+ }, {
87
+ seed_script?: string | undefined;
88
+ reset_script?: string | undefined;
89
+ teardown_script?: string | undefined;
90
+ }>>;
91
+ auth: z.ZodOptional<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
92
+ type: z.ZodLiteral<"setup_script">;
93
+ path: z.ZodString;
94
+ }, "strip", z.ZodTypeAny, {
95
+ path: string;
96
+ type: "setup_script";
97
+ }, {
98
+ path: string;
99
+ type: "setup_script";
100
+ }>, z.ZodObject<{
101
+ type: z.ZodLiteral<"session">;
102
+ cookies_file: z.ZodString;
103
+ local_storage_file: z.ZodOptional<z.ZodString>;
104
+ }, "strip", z.ZodTypeAny, {
105
+ type: "session";
106
+ cookies_file: string;
107
+ local_storage_file?: string | undefined;
108
+ }, {
109
+ type: "session";
110
+ cookies_file: string;
111
+ local_storage_file?: string | undefined;
112
+ }>, z.ZodObject<{
113
+ type: z.ZodLiteral<"form">;
114
+ login_url: z.ZodString;
115
+ fields: z.ZodObject<{
116
+ email: z.ZodObject<{
117
+ selector: z.ZodString;
118
+ env: z.ZodString;
119
+ }, "strip", z.ZodTypeAny, {
120
+ selector: string;
121
+ env: string;
122
+ }, {
123
+ selector: string;
124
+ env: string;
125
+ }>;
126
+ password: z.ZodObject<{
127
+ selector: z.ZodString;
128
+ env: z.ZodString;
129
+ }, "strip", z.ZodTypeAny, {
130
+ selector: string;
131
+ env: string;
132
+ }, {
133
+ selector: string;
134
+ env: string;
135
+ }>;
136
+ }, "strip", z.ZodTypeAny, {
137
+ email: {
138
+ selector: string;
139
+ env: string;
140
+ };
141
+ password: {
142
+ selector: string;
143
+ env: string;
144
+ };
145
+ }, {
146
+ email: {
147
+ selector: string;
148
+ env: string;
149
+ };
150
+ password: {
151
+ selector: string;
152
+ env: string;
153
+ };
154
+ }>;
155
+ submit_selector: z.ZodString;
156
+ success_url_pattern: z.ZodString;
157
+ timeout_ms: z.ZodDefault<z.ZodNumber>;
158
+ }, "strip", z.ZodTypeAny, {
159
+ type: "form";
160
+ login_url: string;
161
+ fields: {
162
+ email: {
163
+ selector: string;
164
+ env: string;
165
+ };
166
+ password: {
167
+ selector: string;
168
+ env: string;
169
+ };
170
+ };
171
+ submit_selector: string;
172
+ success_url_pattern: string;
173
+ timeout_ms: number;
174
+ }, {
175
+ type: "form";
176
+ login_url: string;
177
+ fields: {
178
+ email: {
179
+ selector: string;
180
+ env: string;
181
+ };
182
+ password: {
183
+ selector: string;
184
+ env: string;
185
+ };
186
+ };
187
+ submit_selector: string;
188
+ success_url_pattern: string;
189
+ timeout_ms?: number | undefined;
190
+ }>]>>;
191
+ }, "strip", z.ZodTypeAny, {
192
+ target_url: string;
193
+ viewport: {
194
+ width: number;
195
+ height: number;
196
+ };
197
+ browser: "chromium" | "firefox" | "webkit";
198
+ headless: boolean;
199
+ output_dir: string;
200
+ trace_dir: string;
201
+ cursor_highlight: boolean;
202
+ cursor_min_motion_ms: number;
203
+ cursor_max_motion_ms: number;
204
+ cursor_post_arrival_ms: number;
205
+ cursor_speed_factor: number;
206
+ cursor_chain_mode: "strict" | "smart";
207
+ segment_buffer_ms: number;
208
+ preflight: boolean;
209
+ state: {
210
+ seed_script?: string | undefined;
211
+ reset_script?: string | undefined;
212
+ teardown_script?: string | undefined;
213
+ };
214
+ auth?: {
215
+ path: string;
216
+ type: "setup_script";
217
+ } | {
218
+ type: "session";
219
+ cookies_file: string;
220
+ local_storage_file?: string | undefined;
221
+ } | {
222
+ type: "form";
223
+ login_url: string;
224
+ fields: {
225
+ email: {
226
+ selector: string;
227
+ env: string;
228
+ };
229
+ password: {
230
+ selector: string;
231
+ env: string;
232
+ };
233
+ };
234
+ submit_selector: string;
235
+ success_url_pattern: string;
236
+ timeout_ms: number;
237
+ } | undefined;
238
+ }, {
239
+ target_url: string;
240
+ viewport?: {
241
+ width: number;
242
+ height: number;
243
+ } | undefined;
244
+ browser?: "chromium" | "firefox" | "webkit" | undefined;
245
+ headless?: boolean | undefined;
246
+ output_dir?: string | undefined;
247
+ trace_dir?: string | undefined;
248
+ cursor_highlight?: boolean | undefined;
249
+ cursor_min_motion_ms?: number | undefined;
250
+ cursor_max_motion_ms?: number | undefined;
251
+ cursor_post_arrival_ms?: number | undefined;
252
+ cursor_speed_factor?: number | undefined;
253
+ cursor_chain_mode?: "strict" | "smart" | undefined;
254
+ segment_buffer_ms?: number | undefined;
255
+ preflight?: boolean | undefined;
256
+ state?: {
257
+ seed_script?: string | undefined;
258
+ reset_script?: string | undefined;
259
+ teardown_script?: string | undefined;
260
+ } | undefined;
261
+ auth?: {
262
+ path: string;
263
+ type: "setup_script";
264
+ } | {
265
+ type: "session";
266
+ cookies_file: string;
267
+ local_storage_file?: string | undefined;
268
+ } | {
269
+ type: "form";
270
+ login_url: string;
271
+ fields: {
272
+ email: {
273
+ selector: string;
274
+ env: string;
275
+ };
276
+ password: {
277
+ selector: string;
278
+ env: string;
279
+ };
280
+ };
281
+ submit_selector: string;
282
+ success_url_pattern: string;
283
+ timeout_ms?: number | undefined;
284
+ } | undefined;
285
+ }>;
286
+ declare const voiceoverSchema: z.ZodObject<{
287
+ provider: z.ZodDiscriminatedUnion<"name", [z.ZodObject<{
288
+ name: z.ZodLiteral<"elevenlabs">;
289
+ voice_id: z.ZodString;
290
+ model: z.ZodDefault<z.ZodString>;
291
+ api_key_env: z.ZodDefault<z.ZodString>;
292
+ endpoint: z.ZodDefault<z.ZodEnum<["with_timestamps", "basic"]>>;
293
+ stability: z.ZodDefault<z.ZodNumber>;
294
+ similarity_boost: z.ZodDefault<z.ZodNumber>;
295
+ style: z.ZodDefault<z.ZodNumber>;
296
+ use_speaker_boost: z.ZodDefault<z.ZodBoolean>;
297
+ speed: z.ZodDefault<z.ZodNumber>;
298
+ }, "strip", z.ZodTypeAny, {
299
+ name: "elevenlabs";
300
+ style: number;
301
+ voice_id: string;
302
+ model: string;
303
+ api_key_env: string;
304
+ endpoint: "with_timestamps" | "basic";
305
+ stability: number;
306
+ similarity_boost: number;
307
+ use_speaker_boost: boolean;
308
+ speed: number;
309
+ }, {
310
+ name: "elevenlabs";
311
+ voice_id: string;
312
+ style?: number | undefined;
313
+ model?: string | undefined;
314
+ api_key_env?: string | undefined;
315
+ endpoint?: "with_timestamps" | "basic" | undefined;
316
+ stability?: number | undefined;
317
+ similarity_boost?: number | undefined;
318
+ use_speaker_boost?: boolean | undefined;
319
+ speed?: number | undefined;
320
+ }>, z.ZodObject<{
321
+ name: z.ZodLiteral<"openai">;
322
+ voice: z.ZodDefault<z.ZodString>;
323
+ model: z.ZodDefault<z.ZodString>;
324
+ api_key_env: z.ZodDefault<z.ZodString>;
325
+ base_url: z.ZodOptional<z.ZodString>;
326
+ }, "strip", z.ZodTypeAny, {
327
+ name: "openai";
328
+ model: string;
329
+ api_key_env: string;
330
+ voice: string;
331
+ base_url?: string | undefined;
332
+ }, {
333
+ name: "openai";
334
+ model?: string | undefined;
335
+ api_key_env?: string | undefined;
336
+ voice?: string | undefined;
337
+ base_url?: string | undefined;
338
+ }>, z.ZodObject<{
339
+ name: z.ZodLiteral<"custom">;
340
+ module_path: z.ZodString;
341
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
342
+ }, "strip", z.ZodTypeAny, {
343
+ name: "custom";
344
+ module_path: string;
345
+ options?: Record<string, unknown> | undefined;
346
+ }, {
347
+ name: "custom";
348
+ module_path: string;
349
+ options?: Record<string, unknown> | undefined;
350
+ }>]>;
351
+ alignment_strategy: z.ZodDefault<z.ZodEnum<["required", "best_effort"]>>;
352
+ output_dir: z.ZodDefault<z.ZodString>;
353
+ alignment_dir: z.ZodDefault<z.ZodString>;
354
+ duration_drift_threshold_pct: z.ZodDefault<z.ZodNumber>;
355
+ drift_strategy: z.ZodDefault<z.ZodEnum<["adjust_timing", "resynthesize"]>>;
356
+ tail_padding_ms: z.ZodDefault<z.ZodNumber>;
357
+ post_process: z.ZodDefault<z.ZodObject<{
358
+ debreath: z.ZodDefault<z.ZodBoolean>;
359
+ }, "strip", z.ZodTypeAny, {
360
+ debreath: boolean;
361
+ }, {
362
+ debreath?: boolean | undefined;
363
+ }>>;
364
+ pause_placement: z.ZodDefault<z.ZodObject<{
365
+ strategy: z.ZodDefault<z.ZodEnum<["action_boundaries", "trailing"]>>;
366
+ min_silence_ms: z.ZodDefault<z.ZodNumber>;
367
+ snap_window_ms: z.ZodDefault<z.ZodNumber>;
368
+ }, "strip", z.ZodTypeAny, {
369
+ strategy: "action_boundaries" | "trailing";
370
+ min_silence_ms: number;
371
+ snap_window_ms: number;
372
+ }, {
373
+ strategy?: "action_boundaries" | "trailing" | undefined;
374
+ min_silence_ms?: number | undefined;
375
+ snap_window_ms?: number | undefined;
376
+ }>>;
377
+ }, "strip", z.ZodTypeAny, {
378
+ output_dir: string;
379
+ provider: {
380
+ name: "elevenlabs";
381
+ style: number;
382
+ voice_id: string;
383
+ model: string;
384
+ api_key_env: string;
385
+ endpoint: "with_timestamps" | "basic";
386
+ stability: number;
387
+ similarity_boost: number;
388
+ use_speaker_boost: boolean;
389
+ speed: number;
390
+ } | {
391
+ name: "openai";
392
+ model: string;
393
+ api_key_env: string;
394
+ voice: string;
395
+ base_url?: string | undefined;
396
+ } | {
397
+ name: "custom";
398
+ module_path: string;
399
+ options?: Record<string, unknown> | undefined;
400
+ };
401
+ alignment_strategy: "required" | "best_effort";
402
+ alignment_dir: string;
403
+ duration_drift_threshold_pct: number;
404
+ drift_strategy: "adjust_timing" | "resynthesize";
405
+ tail_padding_ms: number;
406
+ post_process: {
407
+ debreath: boolean;
408
+ };
409
+ pause_placement: {
410
+ strategy: "action_boundaries" | "trailing";
411
+ min_silence_ms: number;
412
+ snap_window_ms: number;
413
+ };
414
+ }, {
415
+ provider: {
416
+ name: "elevenlabs";
417
+ voice_id: string;
418
+ style?: number | undefined;
419
+ model?: string | undefined;
420
+ api_key_env?: string | undefined;
421
+ endpoint?: "with_timestamps" | "basic" | undefined;
422
+ stability?: number | undefined;
423
+ similarity_boost?: number | undefined;
424
+ use_speaker_boost?: boolean | undefined;
425
+ speed?: number | undefined;
426
+ } | {
427
+ name: "openai";
428
+ model?: string | undefined;
429
+ api_key_env?: string | undefined;
430
+ voice?: string | undefined;
431
+ base_url?: string | undefined;
432
+ } | {
433
+ name: "custom";
434
+ module_path: string;
435
+ options?: Record<string, unknown> | undefined;
436
+ };
437
+ output_dir?: string | undefined;
438
+ alignment_strategy?: "required" | "best_effort" | undefined;
439
+ alignment_dir?: string | undefined;
440
+ duration_drift_threshold_pct?: number | undefined;
441
+ drift_strategy?: "adjust_timing" | "resynthesize" | undefined;
442
+ tail_padding_ms?: number | undefined;
443
+ post_process?: {
444
+ debreath?: boolean | undefined;
445
+ } | undefined;
446
+ pause_placement?: {
447
+ strategy?: "action_boundaries" | "trailing" | undefined;
448
+ min_silence_ms?: number | undefined;
449
+ snap_window_ms?: number | undefined;
450
+ } | undefined;
451
+ }>;
452
+ declare const outputSchema: z.ZodObject<{
453
+ format: z.ZodDefault<z.ZodLiteral<"mp4">>;
454
+ resolution: z.ZodDefault<z.ZodString>;
455
+ fps: z.ZodDefault<z.ZodNumber>;
456
+ codec_video: z.ZodDefault<z.ZodString>;
457
+ codec_audio: z.ZodDefault<z.ZodString>;
458
+ quality: z.ZodDefault<z.ZodEnum<["draft", "standard", "high"]>>;
459
+ branding: z.ZodDefault<z.ZodObject<{
460
+ title_card: z.ZodOptional<z.ZodObject<{
461
+ enabled: z.ZodDefault<z.ZodBoolean>;
462
+ text: z.ZodString;
463
+ duration_seconds: z.ZodDefault<z.ZodNumber>;
464
+ font: z.ZodOptional<z.ZodString>;
465
+ font_size: z.ZodDefault<z.ZodNumber>;
466
+ text_color: z.ZodDefault<z.ZodString>;
467
+ background_color: z.ZodDefault<z.ZodString>;
468
+ logo: z.ZodOptional<z.ZodString>;
469
+ logo_position: z.ZodDefault<z.ZodEnum<["top_left", "top_center", "top_right"]>>;
470
+ }, "strip", z.ZodTypeAny, {
471
+ enabled: boolean;
472
+ text: string;
473
+ duration_seconds: number;
474
+ font_size: number;
475
+ text_color: string;
476
+ background_color: string;
477
+ logo_position: "top_left" | "top_center" | "top_right";
478
+ font?: string | undefined;
479
+ logo?: string | undefined;
480
+ }, {
481
+ text: string;
482
+ enabled?: boolean | undefined;
483
+ duration_seconds?: number | undefined;
484
+ font?: string | undefined;
485
+ font_size?: number | undefined;
486
+ text_color?: string | undefined;
487
+ background_color?: string | undefined;
488
+ logo?: string | undefined;
489
+ logo_position?: "top_left" | "top_center" | "top_right" | undefined;
490
+ }>>;
491
+ outro_card: z.ZodOptional<z.ZodObject<{
492
+ enabled: z.ZodDefault<z.ZodBoolean>;
493
+ text: z.ZodString;
494
+ duration_seconds: z.ZodDefault<z.ZodNumber>;
495
+ }, "strip", z.ZodTypeAny, {
496
+ enabled: boolean;
497
+ text: string;
498
+ duration_seconds: number;
499
+ }, {
500
+ text: string;
501
+ enabled?: boolean | undefined;
502
+ duration_seconds?: number | undefined;
503
+ }>>;
504
+ }, "strip", z.ZodTypeAny, {
505
+ title_card?: {
506
+ enabled: boolean;
507
+ text: string;
508
+ duration_seconds: number;
509
+ font_size: number;
510
+ text_color: string;
511
+ background_color: string;
512
+ logo_position: "top_left" | "top_center" | "top_right";
513
+ font?: string | undefined;
514
+ logo?: string | undefined;
515
+ } | undefined;
516
+ outro_card?: {
517
+ enabled: boolean;
518
+ text: string;
519
+ duration_seconds: number;
520
+ } | undefined;
521
+ }, {
522
+ title_card?: {
523
+ text: string;
524
+ enabled?: boolean | undefined;
525
+ duration_seconds?: number | undefined;
526
+ font?: string | undefined;
527
+ font_size?: number | undefined;
528
+ text_color?: string | undefined;
529
+ background_color?: string | undefined;
530
+ logo?: string | undefined;
531
+ logo_position?: "top_left" | "top_center" | "top_right" | undefined;
532
+ } | undefined;
533
+ outro_card?: {
534
+ text: string;
535
+ enabled?: boolean | undefined;
536
+ duration_seconds?: number | undefined;
537
+ } | undefined;
538
+ }>>;
539
+ background_music: z.ZodOptional<z.ZodObject<{
540
+ path: z.ZodString;
541
+ volume_db: z.ZodDefault<z.ZodNumber>;
542
+ }, "strip", z.ZodTypeAny, {
543
+ path: string;
544
+ volume_db: number;
545
+ }, {
546
+ path: string;
547
+ volume_db?: number | undefined;
548
+ }>>;
549
+ captions: z.ZodDefault<z.ZodObject<{
550
+ enabled: z.ZodDefault<z.ZodBoolean>;
551
+ format: z.ZodDefault<z.ZodEnum<["srt", "vtt", "both"]>>;
552
+ }, "strip", z.ZodTypeAny, {
553
+ enabled: boolean;
554
+ format: "srt" | "vtt" | "both";
555
+ }, {
556
+ enabled?: boolean | undefined;
557
+ format?: "srt" | "vtt" | "both" | undefined;
558
+ }>>;
559
+ output_path: z.ZodDefault<z.ZodString>;
560
+ }, "strip", z.ZodTypeAny, {
561
+ format: "mp4";
562
+ resolution: string;
563
+ fps: number;
564
+ codec_video: string;
565
+ codec_audio: string;
566
+ quality: "standard" | "draft" | "high";
567
+ branding: {
568
+ title_card?: {
569
+ enabled: boolean;
570
+ text: string;
571
+ duration_seconds: number;
572
+ font_size: number;
573
+ text_color: string;
574
+ background_color: string;
575
+ logo_position: "top_left" | "top_center" | "top_right";
576
+ font?: string | undefined;
577
+ logo?: string | undefined;
578
+ } | undefined;
579
+ outro_card?: {
580
+ enabled: boolean;
581
+ text: string;
582
+ duration_seconds: number;
583
+ } | undefined;
584
+ };
585
+ captions: {
586
+ enabled: boolean;
587
+ format: "srt" | "vtt" | "both";
588
+ };
589
+ output_path: string;
590
+ background_music?: {
591
+ path: string;
592
+ volume_db: number;
593
+ } | undefined;
594
+ }, {
595
+ format?: "mp4" | undefined;
596
+ resolution?: string | undefined;
597
+ fps?: number | undefined;
598
+ codec_video?: string | undefined;
599
+ codec_audio?: string | undefined;
600
+ quality?: "standard" | "draft" | "high" | undefined;
601
+ branding?: {
602
+ title_card?: {
603
+ text: string;
604
+ enabled?: boolean | undefined;
605
+ duration_seconds?: number | undefined;
606
+ font?: string | undefined;
607
+ font_size?: number | undefined;
608
+ text_color?: string | undefined;
609
+ background_color?: string | undefined;
610
+ logo?: string | undefined;
611
+ logo_position?: "top_left" | "top_center" | "top_right" | undefined;
612
+ } | undefined;
613
+ outro_card?: {
614
+ text: string;
615
+ enabled?: boolean | undefined;
616
+ duration_seconds?: number | undefined;
617
+ } | undefined;
618
+ } | undefined;
619
+ background_music?: {
620
+ path: string;
621
+ volume_db?: number | undefined;
622
+ } | undefined;
623
+ captions?: {
624
+ enabled?: boolean | undefined;
625
+ format?: "srt" | "vtt" | "both" | undefined;
626
+ } | undefined;
627
+ output_path?: string | undefined;
628
+ }>;
629
+ declare const showrunnerConfigSchema: z.ZodObject<{
630
+ project: z.ZodObject<{
631
+ name: z.ZodString;
632
+ product_model: z.ZodOptional<z.ZodString>;
633
+ }, "strip", z.ZodTypeAny, {
634
+ name: string;
635
+ product_model?: string | undefined;
636
+ }, {
637
+ name: string;
638
+ product_model?: string | undefined;
639
+ }>;
640
+ comprehension: z.ZodDefault<z.ZodObject<{
641
+ mode: z.ZodDefault<z.ZodEnum<["documents", "interactive"]>>;
642
+ sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
643
+ type: z.ZodEnum<["prd", "readme", "codebase", "openapi", "changelog", "custom"]>;
644
+ path: z.ZodString;
645
+ include: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
646
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
647
+ }, "strip", z.ZodTypeAny, {
648
+ path: string;
649
+ type: "custom" | "prd" | "readme" | "codebase" | "openapi" | "changelog";
650
+ include?: string[] | undefined;
651
+ exclude?: string[] | undefined;
652
+ }, {
653
+ path: string;
654
+ type: "custom" | "prd" | "readme" | "codebase" | "openapi" | "changelog";
655
+ include?: string[] | undefined;
656
+ exclude?: string[] | undefined;
657
+ }>, "many">>;
658
+ }, "strip", z.ZodTypeAny, {
659
+ mode: "documents" | "interactive";
660
+ sources: {
661
+ path: string;
662
+ type: "custom" | "prd" | "readme" | "codebase" | "openapi" | "changelog";
663
+ include?: string[] | undefined;
664
+ exclude?: string[] | undefined;
665
+ }[];
666
+ }, {
667
+ mode?: "documents" | "interactive" | undefined;
668
+ sources?: {
669
+ path: string;
670
+ type: "custom" | "prd" | "readme" | "codebase" | "openapi" | "changelog";
671
+ include?: string[] | undefined;
672
+ exclude?: string[] | undefined;
673
+ }[] | undefined;
674
+ }>>;
675
+ script: z.ZodDefault<z.ZodObject<{
676
+ style: z.ZodDefault<z.ZodString>;
677
+ duration_target_seconds: z.ZodDefault<z.ZodNumber>;
678
+ highlight_features: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
679
+ vo_review_gate: z.ZodDefault<z.ZodBoolean>;
680
+ }, "strip", z.ZodTypeAny, {
681
+ style: string;
682
+ duration_target_seconds: number;
683
+ highlight_features: string[];
684
+ vo_review_gate: boolean;
685
+ }, {
686
+ style?: string | undefined;
687
+ duration_target_seconds?: number | undefined;
688
+ highlight_features?: string[] | undefined;
689
+ vo_review_gate?: boolean | undefined;
690
+ }>>;
691
+ recording: z.ZodObject<{
692
+ target_url: z.ZodString;
693
+ viewport: z.ZodDefault<z.ZodObject<{
694
+ width: z.ZodNumber;
695
+ height: z.ZodNumber;
696
+ }, "strip", z.ZodTypeAny, {
697
+ width: number;
698
+ height: number;
699
+ }, {
700
+ width: number;
701
+ height: number;
702
+ }>>;
703
+ browser: z.ZodDefault<z.ZodEnum<["chromium", "firefox", "webkit"]>>;
704
+ headless: z.ZodDefault<z.ZodBoolean>;
705
+ output_dir: z.ZodDefault<z.ZodString>;
706
+ trace_dir: z.ZodDefault<z.ZodString>;
707
+ cursor_highlight: z.ZodDefault<z.ZodBoolean>;
708
+ cursor_min_motion_ms: z.ZodDefault<z.ZodNumber>;
709
+ cursor_max_motion_ms: z.ZodDefault<z.ZodNumber>;
710
+ cursor_post_arrival_ms: z.ZodDefault<z.ZodNumber>;
711
+ cursor_speed_factor: z.ZodDefault<z.ZodNumber>;
712
+ cursor_chain_mode: z.ZodDefault<z.ZodEnum<["strict", "smart"]>>;
713
+ segment_buffer_ms: z.ZodDefault<z.ZodNumber>;
714
+ preflight: z.ZodDefault<z.ZodBoolean>;
715
+ state: z.ZodDefault<z.ZodObject<{
716
+ seed_script: z.ZodOptional<z.ZodString>;
717
+ reset_script: z.ZodOptional<z.ZodString>;
718
+ teardown_script: z.ZodOptional<z.ZodString>;
719
+ }, "strip", z.ZodTypeAny, {
720
+ seed_script?: string | undefined;
721
+ reset_script?: string | undefined;
722
+ teardown_script?: string | undefined;
723
+ }, {
724
+ seed_script?: string | undefined;
725
+ reset_script?: string | undefined;
726
+ teardown_script?: string | undefined;
727
+ }>>;
728
+ auth: z.ZodOptional<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
729
+ type: z.ZodLiteral<"setup_script">;
730
+ path: z.ZodString;
731
+ }, "strip", z.ZodTypeAny, {
732
+ path: string;
733
+ type: "setup_script";
734
+ }, {
735
+ path: string;
736
+ type: "setup_script";
737
+ }>, z.ZodObject<{
738
+ type: z.ZodLiteral<"session">;
739
+ cookies_file: z.ZodString;
740
+ local_storage_file: z.ZodOptional<z.ZodString>;
741
+ }, "strip", z.ZodTypeAny, {
742
+ type: "session";
743
+ cookies_file: string;
744
+ local_storage_file?: string | undefined;
745
+ }, {
746
+ type: "session";
747
+ cookies_file: string;
748
+ local_storage_file?: string | undefined;
749
+ }>, z.ZodObject<{
750
+ type: z.ZodLiteral<"form">;
751
+ login_url: z.ZodString;
752
+ fields: z.ZodObject<{
753
+ email: z.ZodObject<{
754
+ selector: z.ZodString;
755
+ env: z.ZodString;
756
+ }, "strip", z.ZodTypeAny, {
757
+ selector: string;
758
+ env: string;
759
+ }, {
760
+ selector: string;
761
+ env: string;
762
+ }>;
763
+ password: z.ZodObject<{
764
+ selector: z.ZodString;
765
+ env: z.ZodString;
766
+ }, "strip", z.ZodTypeAny, {
767
+ selector: string;
768
+ env: string;
769
+ }, {
770
+ selector: string;
771
+ env: string;
772
+ }>;
773
+ }, "strip", z.ZodTypeAny, {
774
+ email: {
775
+ selector: string;
776
+ env: string;
777
+ };
778
+ password: {
779
+ selector: string;
780
+ env: string;
781
+ };
782
+ }, {
783
+ email: {
784
+ selector: string;
785
+ env: string;
786
+ };
787
+ password: {
788
+ selector: string;
789
+ env: string;
790
+ };
791
+ }>;
792
+ submit_selector: z.ZodString;
793
+ success_url_pattern: z.ZodString;
794
+ timeout_ms: z.ZodDefault<z.ZodNumber>;
795
+ }, "strip", z.ZodTypeAny, {
796
+ type: "form";
797
+ login_url: string;
798
+ fields: {
799
+ email: {
800
+ selector: string;
801
+ env: string;
802
+ };
803
+ password: {
804
+ selector: string;
805
+ env: string;
806
+ };
807
+ };
808
+ submit_selector: string;
809
+ success_url_pattern: string;
810
+ timeout_ms: number;
811
+ }, {
812
+ type: "form";
813
+ login_url: string;
814
+ fields: {
815
+ email: {
816
+ selector: string;
817
+ env: string;
818
+ };
819
+ password: {
820
+ selector: string;
821
+ env: string;
822
+ };
823
+ };
824
+ submit_selector: string;
825
+ success_url_pattern: string;
826
+ timeout_ms?: number | undefined;
827
+ }>]>>;
828
+ }, "strip", z.ZodTypeAny, {
829
+ target_url: string;
830
+ viewport: {
831
+ width: number;
832
+ height: number;
833
+ };
834
+ browser: "chromium" | "firefox" | "webkit";
835
+ headless: boolean;
836
+ output_dir: string;
837
+ trace_dir: string;
838
+ cursor_highlight: boolean;
839
+ cursor_min_motion_ms: number;
840
+ cursor_max_motion_ms: number;
841
+ cursor_post_arrival_ms: number;
842
+ cursor_speed_factor: number;
843
+ cursor_chain_mode: "strict" | "smart";
844
+ segment_buffer_ms: number;
845
+ preflight: boolean;
846
+ state: {
847
+ seed_script?: string | undefined;
848
+ reset_script?: string | undefined;
849
+ teardown_script?: string | undefined;
850
+ };
851
+ auth?: {
852
+ path: string;
853
+ type: "setup_script";
854
+ } | {
855
+ type: "session";
856
+ cookies_file: string;
857
+ local_storage_file?: string | undefined;
858
+ } | {
859
+ type: "form";
860
+ login_url: string;
861
+ fields: {
862
+ email: {
863
+ selector: string;
864
+ env: string;
865
+ };
866
+ password: {
867
+ selector: string;
868
+ env: string;
869
+ };
870
+ };
871
+ submit_selector: string;
872
+ success_url_pattern: string;
873
+ timeout_ms: number;
874
+ } | undefined;
875
+ }, {
876
+ target_url: string;
877
+ viewport?: {
878
+ width: number;
879
+ height: number;
880
+ } | undefined;
881
+ browser?: "chromium" | "firefox" | "webkit" | undefined;
882
+ headless?: boolean | undefined;
883
+ output_dir?: string | undefined;
884
+ trace_dir?: string | undefined;
885
+ cursor_highlight?: boolean | undefined;
886
+ cursor_min_motion_ms?: number | undefined;
887
+ cursor_max_motion_ms?: number | undefined;
888
+ cursor_post_arrival_ms?: number | undefined;
889
+ cursor_speed_factor?: number | undefined;
890
+ cursor_chain_mode?: "strict" | "smart" | undefined;
891
+ segment_buffer_ms?: number | undefined;
892
+ preflight?: boolean | undefined;
893
+ state?: {
894
+ seed_script?: string | undefined;
895
+ reset_script?: string | undefined;
896
+ teardown_script?: string | undefined;
897
+ } | undefined;
898
+ auth?: {
899
+ path: string;
900
+ type: "setup_script";
901
+ } | {
902
+ type: "session";
903
+ cookies_file: string;
904
+ local_storage_file?: string | undefined;
905
+ } | {
906
+ type: "form";
907
+ login_url: string;
908
+ fields: {
909
+ email: {
910
+ selector: string;
911
+ env: string;
912
+ };
913
+ password: {
914
+ selector: string;
915
+ env: string;
916
+ };
917
+ };
918
+ submit_selector: string;
919
+ success_url_pattern: string;
920
+ timeout_ms?: number | undefined;
921
+ } | undefined;
922
+ }>;
923
+ voiceover: z.ZodObject<{
924
+ provider: z.ZodDiscriminatedUnion<"name", [z.ZodObject<{
925
+ name: z.ZodLiteral<"elevenlabs">;
926
+ voice_id: z.ZodString;
927
+ model: z.ZodDefault<z.ZodString>;
928
+ api_key_env: z.ZodDefault<z.ZodString>;
929
+ endpoint: z.ZodDefault<z.ZodEnum<["with_timestamps", "basic"]>>;
930
+ stability: z.ZodDefault<z.ZodNumber>;
931
+ similarity_boost: z.ZodDefault<z.ZodNumber>;
932
+ style: z.ZodDefault<z.ZodNumber>;
933
+ use_speaker_boost: z.ZodDefault<z.ZodBoolean>;
934
+ speed: z.ZodDefault<z.ZodNumber>;
935
+ }, "strip", z.ZodTypeAny, {
936
+ name: "elevenlabs";
937
+ style: number;
938
+ voice_id: string;
939
+ model: string;
940
+ api_key_env: string;
941
+ endpoint: "with_timestamps" | "basic";
942
+ stability: number;
943
+ similarity_boost: number;
944
+ use_speaker_boost: boolean;
945
+ speed: number;
946
+ }, {
947
+ name: "elevenlabs";
948
+ voice_id: string;
949
+ style?: number | undefined;
950
+ model?: string | undefined;
951
+ api_key_env?: string | undefined;
952
+ endpoint?: "with_timestamps" | "basic" | undefined;
953
+ stability?: number | undefined;
954
+ similarity_boost?: number | undefined;
955
+ use_speaker_boost?: boolean | undefined;
956
+ speed?: number | undefined;
957
+ }>, z.ZodObject<{
958
+ name: z.ZodLiteral<"openai">;
959
+ voice: z.ZodDefault<z.ZodString>;
960
+ model: z.ZodDefault<z.ZodString>;
961
+ api_key_env: z.ZodDefault<z.ZodString>;
962
+ base_url: z.ZodOptional<z.ZodString>;
963
+ }, "strip", z.ZodTypeAny, {
964
+ name: "openai";
965
+ model: string;
966
+ api_key_env: string;
967
+ voice: string;
968
+ base_url?: string | undefined;
969
+ }, {
970
+ name: "openai";
971
+ model?: string | undefined;
972
+ api_key_env?: string | undefined;
973
+ voice?: string | undefined;
974
+ base_url?: string | undefined;
975
+ }>, z.ZodObject<{
976
+ name: z.ZodLiteral<"custom">;
977
+ module_path: z.ZodString;
978
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
979
+ }, "strip", z.ZodTypeAny, {
980
+ name: "custom";
981
+ module_path: string;
982
+ options?: Record<string, unknown> | undefined;
983
+ }, {
984
+ name: "custom";
985
+ module_path: string;
986
+ options?: Record<string, unknown> | undefined;
987
+ }>]>;
988
+ alignment_strategy: z.ZodDefault<z.ZodEnum<["required", "best_effort"]>>;
989
+ output_dir: z.ZodDefault<z.ZodString>;
990
+ alignment_dir: z.ZodDefault<z.ZodString>;
991
+ duration_drift_threshold_pct: z.ZodDefault<z.ZodNumber>;
992
+ drift_strategy: z.ZodDefault<z.ZodEnum<["adjust_timing", "resynthesize"]>>;
993
+ tail_padding_ms: z.ZodDefault<z.ZodNumber>;
994
+ post_process: z.ZodDefault<z.ZodObject<{
995
+ debreath: z.ZodDefault<z.ZodBoolean>;
996
+ }, "strip", z.ZodTypeAny, {
997
+ debreath: boolean;
998
+ }, {
999
+ debreath?: boolean | undefined;
1000
+ }>>;
1001
+ pause_placement: z.ZodDefault<z.ZodObject<{
1002
+ strategy: z.ZodDefault<z.ZodEnum<["action_boundaries", "trailing"]>>;
1003
+ min_silence_ms: z.ZodDefault<z.ZodNumber>;
1004
+ snap_window_ms: z.ZodDefault<z.ZodNumber>;
1005
+ }, "strip", z.ZodTypeAny, {
1006
+ strategy: "action_boundaries" | "trailing";
1007
+ min_silence_ms: number;
1008
+ snap_window_ms: number;
1009
+ }, {
1010
+ strategy?: "action_boundaries" | "trailing" | undefined;
1011
+ min_silence_ms?: number | undefined;
1012
+ snap_window_ms?: number | undefined;
1013
+ }>>;
1014
+ }, "strip", z.ZodTypeAny, {
1015
+ output_dir: string;
1016
+ provider: {
1017
+ name: "elevenlabs";
1018
+ style: number;
1019
+ voice_id: string;
1020
+ model: string;
1021
+ api_key_env: string;
1022
+ endpoint: "with_timestamps" | "basic";
1023
+ stability: number;
1024
+ similarity_boost: number;
1025
+ use_speaker_boost: boolean;
1026
+ speed: number;
1027
+ } | {
1028
+ name: "openai";
1029
+ model: string;
1030
+ api_key_env: string;
1031
+ voice: string;
1032
+ base_url?: string | undefined;
1033
+ } | {
1034
+ name: "custom";
1035
+ module_path: string;
1036
+ options?: Record<string, unknown> | undefined;
1037
+ };
1038
+ alignment_strategy: "required" | "best_effort";
1039
+ alignment_dir: string;
1040
+ duration_drift_threshold_pct: number;
1041
+ drift_strategy: "adjust_timing" | "resynthesize";
1042
+ tail_padding_ms: number;
1043
+ post_process: {
1044
+ debreath: boolean;
1045
+ };
1046
+ pause_placement: {
1047
+ strategy: "action_boundaries" | "trailing";
1048
+ min_silence_ms: number;
1049
+ snap_window_ms: number;
1050
+ };
1051
+ }, {
1052
+ provider: {
1053
+ name: "elevenlabs";
1054
+ voice_id: string;
1055
+ style?: number | undefined;
1056
+ model?: string | undefined;
1057
+ api_key_env?: string | undefined;
1058
+ endpoint?: "with_timestamps" | "basic" | undefined;
1059
+ stability?: number | undefined;
1060
+ similarity_boost?: number | undefined;
1061
+ use_speaker_boost?: boolean | undefined;
1062
+ speed?: number | undefined;
1063
+ } | {
1064
+ name: "openai";
1065
+ model?: string | undefined;
1066
+ api_key_env?: string | undefined;
1067
+ voice?: string | undefined;
1068
+ base_url?: string | undefined;
1069
+ } | {
1070
+ name: "custom";
1071
+ module_path: string;
1072
+ options?: Record<string, unknown> | undefined;
1073
+ };
1074
+ output_dir?: string | undefined;
1075
+ alignment_strategy?: "required" | "best_effort" | undefined;
1076
+ alignment_dir?: string | undefined;
1077
+ duration_drift_threshold_pct?: number | undefined;
1078
+ drift_strategy?: "adjust_timing" | "resynthesize" | undefined;
1079
+ tail_padding_ms?: number | undefined;
1080
+ post_process?: {
1081
+ debreath?: boolean | undefined;
1082
+ } | undefined;
1083
+ pause_placement?: {
1084
+ strategy?: "action_boundaries" | "trailing" | undefined;
1085
+ min_silence_ms?: number | undefined;
1086
+ snap_window_ms?: number | undefined;
1087
+ } | undefined;
1088
+ }>;
1089
+ llm: z.ZodDefault<z.ZodObject<{
1090
+ default: z.ZodDefault<z.ZodDiscriminatedUnion<"provider", [z.ZodObject<{
1091
+ provider: z.ZodLiteral<"anthropic">;
1092
+ model: z.ZodDefault<z.ZodString>;
1093
+ api_key_env: z.ZodDefault<z.ZodString>;
1094
+ max_tokens: z.ZodOptional<z.ZodNumber>;
1095
+ }, "strip", z.ZodTypeAny, {
1096
+ model: string;
1097
+ api_key_env: string;
1098
+ provider: "anthropic";
1099
+ max_tokens?: number | undefined;
1100
+ }, {
1101
+ provider: "anthropic";
1102
+ model?: string | undefined;
1103
+ api_key_env?: string | undefined;
1104
+ max_tokens?: number | undefined;
1105
+ }>, z.ZodObject<{
1106
+ provider: z.ZodLiteral<"openai">;
1107
+ model: z.ZodDefault<z.ZodString>;
1108
+ api_key_env: z.ZodDefault<z.ZodString>;
1109
+ max_tokens: z.ZodOptional<z.ZodNumber>;
1110
+ base_url: z.ZodOptional<z.ZodString>;
1111
+ }, "strip", z.ZodTypeAny, {
1112
+ model: string;
1113
+ api_key_env: string;
1114
+ provider: "openai";
1115
+ base_url?: string | undefined;
1116
+ max_tokens?: number | undefined;
1117
+ }, {
1118
+ provider: "openai";
1119
+ model?: string | undefined;
1120
+ api_key_env?: string | undefined;
1121
+ base_url?: string | undefined;
1122
+ max_tokens?: number | undefined;
1123
+ }>, z.ZodObject<{
1124
+ provider: z.ZodLiteral<"agent_bridge">;
1125
+ bridge: z.ZodObject<{
1126
+ mode: z.ZodDefault<z.ZodEnum<["spawn", "file_poll"]>>;
1127
+ command: z.ZodOptional<z.ZodString>;
1128
+ args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1129
+ cwd: z.ZodOptional<z.ZodString>;
1130
+ request_dir: z.ZodOptional<z.ZodString>;
1131
+ poll_interval_ms: z.ZodOptional<z.ZodNumber>;
1132
+ timeout_ms: z.ZodOptional<z.ZodNumber>;
1133
+ }, "strip", z.ZodTypeAny, {
1134
+ mode: "spawn" | "file_poll";
1135
+ timeout_ms?: number | undefined;
1136
+ command?: string | undefined;
1137
+ args?: string[] | undefined;
1138
+ cwd?: string | undefined;
1139
+ request_dir?: string | undefined;
1140
+ poll_interval_ms?: number | undefined;
1141
+ }, {
1142
+ mode?: "spawn" | "file_poll" | undefined;
1143
+ timeout_ms?: number | undefined;
1144
+ command?: string | undefined;
1145
+ args?: string[] | undefined;
1146
+ cwd?: string | undefined;
1147
+ request_dir?: string | undefined;
1148
+ poll_interval_ms?: number | undefined;
1149
+ }>;
1150
+ }, "strip", z.ZodTypeAny, {
1151
+ provider: "agent_bridge";
1152
+ bridge: {
1153
+ mode: "spawn" | "file_poll";
1154
+ timeout_ms?: number | undefined;
1155
+ command?: string | undefined;
1156
+ args?: string[] | undefined;
1157
+ cwd?: string | undefined;
1158
+ request_dir?: string | undefined;
1159
+ poll_interval_ms?: number | undefined;
1160
+ };
1161
+ }, {
1162
+ provider: "agent_bridge";
1163
+ bridge: {
1164
+ mode?: "spawn" | "file_poll" | undefined;
1165
+ timeout_ms?: number | undefined;
1166
+ command?: string | undefined;
1167
+ args?: string[] | undefined;
1168
+ cwd?: string | undefined;
1169
+ request_dir?: string | undefined;
1170
+ poll_interval_ms?: number | undefined;
1171
+ };
1172
+ }>, z.ZodObject<{
1173
+ provider: z.ZodLiteral<"custom">;
1174
+ module_path: z.ZodString;
1175
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1176
+ }, "strip", z.ZodTypeAny, {
1177
+ module_path: string;
1178
+ provider: "custom";
1179
+ options?: Record<string, unknown> | undefined;
1180
+ }, {
1181
+ module_path: string;
1182
+ provider: "custom";
1183
+ options?: Record<string, unknown> | undefined;
1184
+ }>]>>;
1185
+ overrides: z.ZodOptional<z.ZodObject<{
1186
+ comprehension: z.ZodOptional<z.ZodDiscriminatedUnion<"provider", [z.ZodObject<{
1187
+ provider: z.ZodLiteral<"anthropic">;
1188
+ model: z.ZodDefault<z.ZodString>;
1189
+ api_key_env: z.ZodDefault<z.ZodString>;
1190
+ max_tokens: z.ZodOptional<z.ZodNumber>;
1191
+ }, "strip", z.ZodTypeAny, {
1192
+ model: string;
1193
+ api_key_env: string;
1194
+ provider: "anthropic";
1195
+ max_tokens?: number | undefined;
1196
+ }, {
1197
+ provider: "anthropic";
1198
+ model?: string | undefined;
1199
+ api_key_env?: string | undefined;
1200
+ max_tokens?: number | undefined;
1201
+ }>, z.ZodObject<{
1202
+ provider: z.ZodLiteral<"openai">;
1203
+ model: z.ZodDefault<z.ZodString>;
1204
+ api_key_env: z.ZodDefault<z.ZodString>;
1205
+ max_tokens: z.ZodOptional<z.ZodNumber>;
1206
+ base_url: z.ZodOptional<z.ZodString>;
1207
+ }, "strip", z.ZodTypeAny, {
1208
+ model: string;
1209
+ api_key_env: string;
1210
+ provider: "openai";
1211
+ base_url?: string | undefined;
1212
+ max_tokens?: number | undefined;
1213
+ }, {
1214
+ provider: "openai";
1215
+ model?: string | undefined;
1216
+ api_key_env?: string | undefined;
1217
+ base_url?: string | undefined;
1218
+ max_tokens?: number | undefined;
1219
+ }>, z.ZodObject<{
1220
+ provider: z.ZodLiteral<"agent_bridge">;
1221
+ bridge: z.ZodObject<{
1222
+ mode: z.ZodDefault<z.ZodEnum<["spawn", "file_poll"]>>;
1223
+ command: z.ZodOptional<z.ZodString>;
1224
+ args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1225
+ cwd: z.ZodOptional<z.ZodString>;
1226
+ request_dir: z.ZodOptional<z.ZodString>;
1227
+ poll_interval_ms: z.ZodOptional<z.ZodNumber>;
1228
+ timeout_ms: z.ZodOptional<z.ZodNumber>;
1229
+ }, "strip", z.ZodTypeAny, {
1230
+ mode: "spawn" | "file_poll";
1231
+ timeout_ms?: number | undefined;
1232
+ command?: string | undefined;
1233
+ args?: string[] | undefined;
1234
+ cwd?: string | undefined;
1235
+ request_dir?: string | undefined;
1236
+ poll_interval_ms?: number | undefined;
1237
+ }, {
1238
+ mode?: "spawn" | "file_poll" | undefined;
1239
+ timeout_ms?: number | undefined;
1240
+ command?: string | undefined;
1241
+ args?: string[] | undefined;
1242
+ cwd?: string | undefined;
1243
+ request_dir?: string | undefined;
1244
+ poll_interval_ms?: number | undefined;
1245
+ }>;
1246
+ }, "strip", z.ZodTypeAny, {
1247
+ provider: "agent_bridge";
1248
+ bridge: {
1249
+ mode: "spawn" | "file_poll";
1250
+ timeout_ms?: number | undefined;
1251
+ command?: string | undefined;
1252
+ args?: string[] | undefined;
1253
+ cwd?: string | undefined;
1254
+ request_dir?: string | undefined;
1255
+ poll_interval_ms?: number | undefined;
1256
+ };
1257
+ }, {
1258
+ provider: "agent_bridge";
1259
+ bridge: {
1260
+ mode?: "spawn" | "file_poll" | undefined;
1261
+ timeout_ms?: number | undefined;
1262
+ command?: string | undefined;
1263
+ args?: string[] | undefined;
1264
+ cwd?: string | undefined;
1265
+ request_dir?: string | undefined;
1266
+ poll_interval_ms?: number | undefined;
1267
+ };
1268
+ }>, z.ZodObject<{
1269
+ provider: z.ZodLiteral<"custom">;
1270
+ module_path: z.ZodString;
1271
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1272
+ }, "strip", z.ZodTypeAny, {
1273
+ module_path: string;
1274
+ provider: "custom";
1275
+ options?: Record<string, unknown> | undefined;
1276
+ }, {
1277
+ module_path: string;
1278
+ provider: "custom";
1279
+ options?: Record<string, unknown> | undefined;
1280
+ }>]>>;
1281
+ script: z.ZodOptional<z.ZodDiscriminatedUnion<"provider", [z.ZodObject<{
1282
+ provider: z.ZodLiteral<"anthropic">;
1283
+ model: z.ZodDefault<z.ZodString>;
1284
+ api_key_env: z.ZodDefault<z.ZodString>;
1285
+ max_tokens: z.ZodOptional<z.ZodNumber>;
1286
+ }, "strip", z.ZodTypeAny, {
1287
+ model: string;
1288
+ api_key_env: string;
1289
+ provider: "anthropic";
1290
+ max_tokens?: number | undefined;
1291
+ }, {
1292
+ provider: "anthropic";
1293
+ model?: string | undefined;
1294
+ api_key_env?: string | undefined;
1295
+ max_tokens?: number | undefined;
1296
+ }>, z.ZodObject<{
1297
+ provider: z.ZodLiteral<"openai">;
1298
+ model: z.ZodDefault<z.ZodString>;
1299
+ api_key_env: z.ZodDefault<z.ZodString>;
1300
+ max_tokens: z.ZodOptional<z.ZodNumber>;
1301
+ base_url: z.ZodOptional<z.ZodString>;
1302
+ }, "strip", z.ZodTypeAny, {
1303
+ model: string;
1304
+ api_key_env: string;
1305
+ provider: "openai";
1306
+ base_url?: string | undefined;
1307
+ max_tokens?: number | undefined;
1308
+ }, {
1309
+ provider: "openai";
1310
+ model?: string | undefined;
1311
+ api_key_env?: string | undefined;
1312
+ base_url?: string | undefined;
1313
+ max_tokens?: number | undefined;
1314
+ }>, z.ZodObject<{
1315
+ provider: z.ZodLiteral<"agent_bridge">;
1316
+ bridge: z.ZodObject<{
1317
+ mode: z.ZodDefault<z.ZodEnum<["spawn", "file_poll"]>>;
1318
+ command: z.ZodOptional<z.ZodString>;
1319
+ args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1320
+ cwd: z.ZodOptional<z.ZodString>;
1321
+ request_dir: z.ZodOptional<z.ZodString>;
1322
+ poll_interval_ms: z.ZodOptional<z.ZodNumber>;
1323
+ timeout_ms: z.ZodOptional<z.ZodNumber>;
1324
+ }, "strip", z.ZodTypeAny, {
1325
+ mode: "spawn" | "file_poll";
1326
+ timeout_ms?: number | undefined;
1327
+ command?: string | undefined;
1328
+ args?: string[] | undefined;
1329
+ cwd?: string | undefined;
1330
+ request_dir?: string | undefined;
1331
+ poll_interval_ms?: number | undefined;
1332
+ }, {
1333
+ mode?: "spawn" | "file_poll" | undefined;
1334
+ timeout_ms?: number | undefined;
1335
+ command?: string | undefined;
1336
+ args?: string[] | undefined;
1337
+ cwd?: string | undefined;
1338
+ request_dir?: string | undefined;
1339
+ poll_interval_ms?: number | undefined;
1340
+ }>;
1341
+ }, "strip", z.ZodTypeAny, {
1342
+ provider: "agent_bridge";
1343
+ bridge: {
1344
+ mode: "spawn" | "file_poll";
1345
+ timeout_ms?: number | undefined;
1346
+ command?: string | undefined;
1347
+ args?: string[] | undefined;
1348
+ cwd?: string | undefined;
1349
+ request_dir?: string | undefined;
1350
+ poll_interval_ms?: number | undefined;
1351
+ };
1352
+ }, {
1353
+ provider: "agent_bridge";
1354
+ bridge: {
1355
+ mode?: "spawn" | "file_poll" | undefined;
1356
+ timeout_ms?: number | undefined;
1357
+ command?: string | undefined;
1358
+ args?: string[] | undefined;
1359
+ cwd?: string | undefined;
1360
+ request_dir?: string | undefined;
1361
+ poll_interval_ms?: number | undefined;
1362
+ };
1363
+ }>, z.ZodObject<{
1364
+ provider: z.ZodLiteral<"custom">;
1365
+ module_path: z.ZodString;
1366
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1367
+ }, "strip", z.ZodTypeAny, {
1368
+ module_path: string;
1369
+ provider: "custom";
1370
+ options?: Record<string, unknown> | undefined;
1371
+ }, {
1372
+ module_path: string;
1373
+ provider: "custom";
1374
+ options?: Record<string, unknown> | undefined;
1375
+ }>]>>;
1376
+ instrument: z.ZodOptional<z.ZodDiscriminatedUnion<"provider", [z.ZodObject<{
1377
+ provider: z.ZodLiteral<"anthropic">;
1378
+ model: z.ZodDefault<z.ZodString>;
1379
+ api_key_env: z.ZodDefault<z.ZodString>;
1380
+ max_tokens: z.ZodOptional<z.ZodNumber>;
1381
+ }, "strip", z.ZodTypeAny, {
1382
+ model: string;
1383
+ api_key_env: string;
1384
+ provider: "anthropic";
1385
+ max_tokens?: number | undefined;
1386
+ }, {
1387
+ provider: "anthropic";
1388
+ model?: string | undefined;
1389
+ api_key_env?: string | undefined;
1390
+ max_tokens?: number | undefined;
1391
+ }>, z.ZodObject<{
1392
+ provider: z.ZodLiteral<"openai">;
1393
+ model: z.ZodDefault<z.ZodString>;
1394
+ api_key_env: z.ZodDefault<z.ZodString>;
1395
+ max_tokens: z.ZodOptional<z.ZodNumber>;
1396
+ base_url: z.ZodOptional<z.ZodString>;
1397
+ }, "strip", z.ZodTypeAny, {
1398
+ model: string;
1399
+ api_key_env: string;
1400
+ provider: "openai";
1401
+ base_url?: string | undefined;
1402
+ max_tokens?: number | undefined;
1403
+ }, {
1404
+ provider: "openai";
1405
+ model?: string | undefined;
1406
+ api_key_env?: string | undefined;
1407
+ base_url?: string | undefined;
1408
+ max_tokens?: number | undefined;
1409
+ }>, z.ZodObject<{
1410
+ provider: z.ZodLiteral<"agent_bridge">;
1411
+ bridge: z.ZodObject<{
1412
+ mode: z.ZodDefault<z.ZodEnum<["spawn", "file_poll"]>>;
1413
+ command: z.ZodOptional<z.ZodString>;
1414
+ args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1415
+ cwd: z.ZodOptional<z.ZodString>;
1416
+ request_dir: z.ZodOptional<z.ZodString>;
1417
+ poll_interval_ms: z.ZodOptional<z.ZodNumber>;
1418
+ timeout_ms: z.ZodOptional<z.ZodNumber>;
1419
+ }, "strip", z.ZodTypeAny, {
1420
+ mode: "spawn" | "file_poll";
1421
+ timeout_ms?: number | undefined;
1422
+ command?: string | undefined;
1423
+ args?: string[] | undefined;
1424
+ cwd?: string | undefined;
1425
+ request_dir?: string | undefined;
1426
+ poll_interval_ms?: number | undefined;
1427
+ }, {
1428
+ mode?: "spawn" | "file_poll" | undefined;
1429
+ timeout_ms?: number | undefined;
1430
+ command?: string | undefined;
1431
+ args?: string[] | undefined;
1432
+ cwd?: string | undefined;
1433
+ request_dir?: string | undefined;
1434
+ poll_interval_ms?: number | undefined;
1435
+ }>;
1436
+ }, "strip", z.ZodTypeAny, {
1437
+ provider: "agent_bridge";
1438
+ bridge: {
1439
+ mode: "spawn" | "file_poll";
1440
+ timeout_ms?: number | undefined;
1441
+ command?: string | undefined;
1442
+ args?: string[] | undefined;
1443
+ cwd?: string | undefined;
1444
+ request_dir?: string | undefined;
1445
+ poll_interval_ms?: number | undefined;
1446
+ };
1447
+ }, {
1448
+ provider: "agent_bridge";
1449
+ bridge: {
1450
+ mode?: "spawn" | "file_poll" | undefined;
1451
+ timeout_ms?: number | undefined;
1452
+ command?: string | undefined;
1453
+ args?: string[] | undefined;
1454
+ cwd?: string | undefined;
1455
+ request_dir?: string | undefined;
1456
+ poll_interval_ms?: number | undefined;
1457
+ };
1458
+ }>, z.ZodObject<{
1459
+ provider: z.ZodLiteral<"custom">;
1460
+ module_path: z.ZodString;
1461
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1462
+ }, "strip", z.ZodTypeAny, {
1463
+ module_path: string;
1464
+ provider: "custom";
1465
+ options?: Record<string, unknown> | undefined;
1466
+ }, {
1467
+ module_path: string;
1468
+ provider: "custom";
1469
+ options?: Record<string, unknown> | undefined;
1470
+ }>]>>;
1471
+ }, "strip", z.ZodTypeAny, {
1472
+ comprehension?: {
1473
+ model: string;
1474
+ api_key_env: string;
1475
+ provider: "anthropic";
1476
+ max_tokens?: number | undefined;
1477
+ } | {
1478
+ model: string;
1479
+ api_key_env: string;
1480
+ provider: "openai";
1481
+ base_url?: string | undefined;
1482
+ max_tokens?: number | undefined;
1483
+ } | {
1484
+ provider: "agent_bridge";
1485
+ bridge: {
1486
+ mode: "spawn" | "file_poll";
1487
+ timeout_ms?: number | undefined;
1488
+ command?: string | undefined;
1489
+ args?: string[] | undefined;
1490
+ cwd?: string | undefined;
1491
+ request_dir?: string | undefined;
1492
+ poll_interval_ms?: number | undefined;
1493
+ };
1494
+ } | {
1495
+ module_path: string;
1496
+ provider: "custom";
1497
+ options?: Record<string, unknown> | undefined;
1498
+ } | undefined;
1499
+ script?: {
1500
+ model: string;
1501
+ api_key_env: string;
1502
+ provider: "anthropic";
1503
+ max_tokens?: number | undefined;
1504
+ } | {
1505
+ model: string;
1506
+ api_key_env: string;
1507
+ provider: "openai";
1508
+ base_url?: string | undefined;
1509
+ max_tokens?: number | undefined;
1510
+ } | {
1511
+ provider: "agent_bridge";
1512
+ bridge: {
1513
+ mode: "spawn" | "file_poll";
1514
+ timeout_ms?: number | undefined;
1515
+ command?: string | undefined;
1516
+ args?: string[] | undefined;
1517
+ cwd?: string | undefined;
1518
+ request_dir?: string | undefined;
1519
+ poll_interval_ms?: number | undefined;
1520
+ };
1521
+ } | {
1522
+ module_path: string;
1523
+ provider: "custom";
1524
+ options?: Record<string, unknown> | undefined;
1525
+ } | undefined;
1526
+ instrument?: {
1527
+ model: string;
1528
+ api_key_env: string;
1529
+ provider: "anthropic";
1530
+ max_tokens?: number | undefined;
1531
+ } | {
1532
+ model: string;
1533
+ api_key_env: string;
1534
+ provider: "openai";
1535
+ base_url?: string | undefined;
1536
+ max_tokens?: number | undefined;
1537
+ } | {
1538
+ provider: "agent_bridge";
1539
+ bridge: {
1540
+ mode: "spawn" | "file_poll";
1541
+ timeout_ms?: number | undefined;
1542
+ command?: string | undefined;
1543
+ args?: string[] | undefined;
1544
+ cwd?: string | undefined;
1545
+ request_dir?: string | undefined;
1546
+ poll_interval_ms?: number | undefined;
1547
+ };
1548
+ } | {
1549
+ module_path: string;
1550
+ provider: "custom";
1551
+ options?: Record<string, unknown> | undefined;
1552
+ } | undefined;
1553
+ }, {
1554
+ comprehension?: {
1555
+ provider: "anthropic";
1556
+ model?: string | undefined;
1557
+ api_key_env?: string | undefined;
1558
+ max_tokens?: number | undefined;
1559
+ } | {
1560
+ provider: "openai";
1561
+ model?: string | undefined;
1562
+ api_key_env?: string | undefined;
1563
+ base_url?: string | undefined;
1564
+ max_tokens?: number | undefined;
1565
+ } | {
1566
+ provider: "agent_bridge";
1567
+ bridge: {
1568
+ mode?: "spawn" | "file_poll" | undefined;
1569
+ timeout_ms?: number | undefined;
1570
+ command?: string | undefined;
1571
+ args?: string[] | undefined;
1572
+ cwd?: string | undefined;
1573
+ request_dir?: string | undefined;
1574
+ poll_interval_ms?: number | undefined;
1575
+ };
1576
+ } | {
1577
+ module_path: string;
1578
+ provider: "custom";
1579
+ options?: Record<string, unknown> | undefined;
1580
+ } | undefined;
1581
+ script?: {
1582
+ provider: "anthropic";
1583
+ model?: string | undefined;
1584
+ api_key_env?: string | undefined;
1585
+ max_tokens?: number | undefined;
1586
+ } | {
1587
+ provider: "openai";
1588
+ model?: string | undefined;
1589
+ api_key_env?: string | undefined;
1590
+ base_url?: string | undefined;
1591
+ max_tokens?: number | undefined;
1592
+ } | {
1593
+ provider: "agent_bridge";
1594
+ bridge: {
1595
+ mode?: "spawn" | "file_poll" | undefined;
1596
+ timeout_ms?: number | undefined;
1597
+ command?: string | undefined;
1598
+ args?: string[] | undefined;
1599
+ cwd?: string | undefined;
1600
+ request_dir?: string | undefined;
1601
+ poll_interval_ms?: number | undefined;
1602
+ };
1603
+ } | {
1604
+ module_path: string;
1605
+ provider: "custom";
1606
+ options?: Record<string, unknown> | undefined;
1607
+ } | undefined;
1608
+ instrument?: {
1609
+ provider: "anthropic";
1610
+ model?: string | undefined;
1611
+ api_key_env?: string | undefined;
1612
+ max_tokens?: number | undefined;
1613
+ } | {
1614
+ provider: "openai";
1615
+ model?: string | undefined;
1616
+ api_key_env?: string | undefined;
1617
+ base_url?: string | undefined;
1618
+ max_tokens?: number | undefined;
1619
+ } | {
1620
+ provider: "agent_bridge";
1621
+ bridge: {
1622
+ mode?: "spawn" | "file_poll" | undefined;
1623
+ timeout_ms?: number | undefined;
1624
+ command?: string | undefined;
1625
+ args?: string[] | undefined;
1626
+ cwd?: string | undefined;
1627
+ request_dir?: string | undefined;
1628
+ poll_interval_ms?: number | undefined;
1629
+ };
1630
+ } | {
1631
+ module_path: string;
1632
+ provider: "custom";
1633
+ options?: Record<string, unknown> | undefined;
1634
+ } | undefined;
1635
+ }>>;
1636
+ }, "strip", z.ZodTypeAny, {
1637
+ default: {
1638
+ model: string;
1639
+ api_key_env: string;
1640
+ provider: "anthropic";
1641
+ max_tokens?: number | undefined;
1642
+ } | {
1643
+ model: string;
1644
+ api_key_env: string;
1645
+ provider: "openai";
1646
+ base_url?: string | undefined;
1647
+ max_tokens?: number | undefined;
1648
+ } | {
1649
+ provider: "agent_bridge";
1650
+ bridge: {
1651
+ mode: "spawn" | "file_poll";
1652
+ timeout_ms?: number | undefined;
1653
+ command?: string | undefined;
1654
+ args?: string[] | undefined;
1655
+ cwd?: string | undefined;
1656
+ request_dir?: string | undefined;
1657
+ poll_interval_ms?: number | undefined;
1658
+ };
1659
+ } | {
1660
+ module_path: string;
1661
+ provider: "custom";
1662
+ options?: Record<string, unknown> | undefined;
1663
+ };
1664
+ overrides?: {
1665
+ comprehension?: {
1666
+ model: string;
1667
+ api_key_env: string;
1668
+ provider: "anthropic";
1669
+ max_tokens?: number | undefined;
1670
+ } | {
1671
+ model: string;
1672
+ api_key_env: string;
1673
+ provider: "openai";
1674
+ base_url?: string | undefined;
1675
+ max_tokens?: number | undefined;
1676
+ } | {
1677
+ provider: "agent_bridge";
1678
+ bridge: {
1679
+ mode: "spawn" | "file_poll";
1680
+ timeout_ms?: number | undefined;
1681
+ command?: string | undefined;
1682
+ args?: string[] | undefined;
1683
+ cwd?: string | undefined;
1684
+ request_dir?: string | undefined;
1685
+ poll_interval_ms?: number | undefined;
1686
+ };
1687
+ } | {
1688
+ module_path: string;
1689
+ provider: "custom";
1690
+ options?: Record<string, unknown> | undefined;
1691
+ } | undefined;
1692
+ script?: {
1693
+ model: string;
1694
+ api_key_env: string;
1695
+ provider: "anthropic";
1696
+ max_tokens?: number | undefined;
1697
+ } | {
1698
+ model: string;
1699
+ api_key_env: string;
1700
+ provider: "openai";
1701
+ base_url?: string | undefined;
1702
+ max_tokens?: number | undefined;
1703
+ } | {
1704
+ provider: "agent_bridge";
1705
+ bridge: {
1706
+ mode: "spawn" | "file_poll";
1707
+ timeout_ms?: number | undefined;
1708
+ command?: string | undefined;
1709
+ args?: string[] | undefined;
1710
+ cwd?: string | undefined;
1711
+ request_dir?: string | undefined;
1712
+ poll_interval_ms?: number | undefined;
1713
+ };
1714
+ } | {
1715
+ module_path: string;
1716
+ provider: "custom";
1717
+ options?: Record<string, unknown> | undefined;
1718
+ } | undefined;
1719
+ instrument?: {
1720
+ model: string;
1721
+ api_key_env: string;
1722
+ provider: "anthropic";
1723
+ max_tokens?: number | undefined;
1724
+ } | {
1725
+ model: string;
1726
+ api_key_env: string;
1727
+ provider: "openai";
1728
+ base_url?: string | undefined;
1729
+ max_tokens?: number | undefined;
1730
+ } | {
1731
+ provider: "agent_bridge";
1732
+ bridge: {
1733
+ mode: "spawn" | "file_poll";
1734
+ timeout_ms?: number | undefined;
1735
+ command?: string | undefined;
1736
+ args?: string[] | undefined;
1737
+ cwd?: string | undefined;
1738
+ request_dir?: string | undefined;
1739
+ poll_interval_ms?: number | undefined;
1740
+ };
1741
+ } | {
1742
+ module_path: string;
1743
+ provider: "custom";
1744
+ options?: Record<string, unknown> | undefined;
1745
+ } | undefined;
1746
+ } | undefined;
1747
+ }, {
1748
+ default?: {
1749
+ provider: "anthropic";
1750
+ model?: string | undefined;
1751
+ api_key_env?: string | undefined;
1752
+ max_tokens?: number | undefined;
1753
+ } | {
1754
+ provider: "openai";
1755
+ model?: string | undefined;
1756
+ api_key_env?: string | undefined;
1757
+ base_url?: string | undefined;
1758
+ max_tokens?: number | undefined;
1759
+ } | {
1760
+ provider: "agent_bridge";
1761
+ bridge: {
1762
+ mode?: "spawn" | "file_poll" | undefined;
1763
+ timeout_ms?: number | undefined;
1764
+ command?: string | undefined;
1765
+ args?: string[] | undefined;
1766
+ cwd?: string | undefined;
1767
+ request_dir?: string | undefined;
1768
+ poll_interval_ms?: number | undefined;
1769
+ };
1770
+ } | {
1771
+ module_path: string;
1772
+ provider: "custom";
1773
+ options?: Record<string, unknown> | undefined;
1774
+ } | undefined;
1775
+ overrides?: {
1776
+ comprehension?: {
1777
+ provider: "anthropic";
1778
+ model?: string | undefined;
1779
+ api_key_env?: string | undefined;
1780
+ max_tokens?: number | undefined;
1781
+ } | {
1782
+ provider: "openai";
1783
+ model?: string | undefined;
1784
+ api_key_env?: string | undefined;
1785
+ base_url?: string | undefined;
1786
+ max_tokens?: number | undefined;
1787
+ } | {
1788
+ provider: "agent_bridge";
1789
+ bridge: {
1790
+ mode?: "spawn" | "file_poll" | undefined;
1791
+ timeout_ms?: number | undefined;
1792
+ command?: string | undefined;
1793
+ args?: string[] | undefined;
1794
+ cwd?: string | undefined;
1795
+ request_dir?: string | undefined;
1796
+ poll_interval_ms?: number | undefined;
1797
+ };
1798
+ } | {
1799
+ module_path: string;
1800
+ provider: "custom";
1801
+ options?: Record<string, unknown> | undefined;
1802
+ } | undefined;
1803
+ script?: {
1804
+ provider: "anthropic";
1805
+ model?: string | undefined;
1806
+ api_key_env?: string | undefined;
1807
+ max_tokens?: number | undefined;
1808
+ } | {
1809
+ provider: "openai";
1810
+ model?: string | undefined;
1811
+ api_key_env?: string | undefined;
1812
+ base_url?: string | undefined;
1813
+ max_tokens?: number | undefined;
1814
+ } | {
1815
+ provider: "agent_bridge";
1816
+ bridge: {
1817
+ mode?: "spawn" | "file_poll" | undefined;
1818
+ timeout_ms?: number | undefined;
1819
+ command?: string | undefined;
1820
+ args?: string[] | undefined;
1821
+ cwd?: string | undefined;
1822
+ request_dir?: string | undefined;
1823
+ poll_interval_ms?: number | undefined;
1824
+ };
1825
+ } | {
1826
+ module_path: string;
1827
+ provider: "custom";
1828
+ options?: Record<string, unknown> | undefined;
1829
+ } | undefined;
1830
+ instrument?: {
1831
+ provider: "anthropic";
1832
+ model?: string | undefined;
1833
+ api_key_env?: string | undefined;
1834
+ max_tokens?: number | undefined;
1835
+ } | {
1836
+ provider: "openai";
1837
+ model?: string | undefined;
1838
+ api_key_env?: string | undefined;
1839
+ base_url?: string | undefined;
1840
+ max_tokens?: number | undefined;
1841
+ } | {
1842
+ provider: "agent_bridge";
1843
+ bridge: {
1844
+ mode?: "spawn" | "file_poll" | undefined;
1845
+ timeout_ms?: number | undefined;
1846
+ command?: string | undefined;
1847
+ args?: string[] | undefined;
1848
+ cwd?: string | undefined;
1849
+ request_dir?: string | undefined;
1850
+ poll_interval_ms?: number | undefined;
1851
+ };
1852
+ } | {
1853
+ module_path: string;
1854
+ provider: "custom";
1855
+ options?: Record<string, unknown> | undefined;
1856
+ } | undefined;
1857
+ } | undefined;
1858
+ }>>;
1859
+ output: z.ZodDefault<z.ZodObject<{
1860
+ format: z.ZodDefault<z.ZodLiteral<"mp4">>;
1861
+ resolution: z.ZodDefault<z.ZodString>;
1862
+ fps: z.ZodDefault<z.ZodNumber>;
1863
+ codec_video: z.ZodDefault<z.ZodString>;
1864
+ codec_audio: z.ZodDefault<z.ZodString>;
1865
+ quality: z.ZodDefault<z.ZodEnum<["draft", "standard", "high"]>>;
1866
+ branding: z.ZodDefault<z.ZodObject<{
1867
+ title_card: z.ZodOptional<z.ZodObject<{
1868
+ enabled: z.ZodDefault<z.ZodBoolean>;
1869
+ text: z.ZodString;
1870
+ duration_seconds: z.ZodDefault<z.ZodNumber>;
1871
+ font: z.ZodOptional<z.ZodString>;
1872
+ font_size: z.ZodDefault<z.ZodNumber>;
1873
+ text_color: z.ZodDefault<z.ZodString>;
1874
+ background_color: z.ZodDefault<z.ZodString>;
1875
+ logo: z.ZodOptional<z.ZodString>;
1876
+ logo_position: z.ZodDefault<z.ZodEnum<["top_left", "top_center", "top_right"]>>;
1877
+ }, "strip", z.ZodTypeAny, {
1878
+ enabled: boolean;
1879
+ text: string;
1880
+ duration_seconds: number;
1881
+ font_size: number;
1882
+ text_color: string;
1883
+ background_color: string;
1884
+ logo_position: "top_left" | "top_center" | "top_right";
1885
+ font?: string | undefined;
1886
+ logo?: string | undefined;
1887
+ }, {
1888
+ text: string;
1889
+ enabled?: boolean | undefined;
1890
+ duration_seconds?: number | undefined;
1891
+ font?: string | undefined;
1892
+ font_size?: number | undefined;
1893
+ text_color?: string | undefined;
1894
+ background_color?: string | undefined;
1895
+ logo?: string | undefined;
1896
+ logo_position?: "top_left" | "top_center" | "top_right" | undefined;
1897
+ }>>;
1898
+ outro_card: z.ZodOptional<z.ZodObject<{
1899
+ enabled: z.ZodDefault<z.ZodBoolean>;
1900
+ text: z.ZodString;
1901
+ duration_seconds: z.ZodDefault<z.ZodNumber>;
1902
+ }, "strip", z.ZodTypeAny, {
1903
+ enabled: boolean;
1904
+ text: string;
1905
+ duration_seconds: number;
1906
+ }, {
1907
+ text: string;
1908
+ enabled?: boolean | undefined;
1909
+ duration_seconds?: number | undefined;
1910
+ }>>;
1911
+ }, "strip", z.ZodTypeAny, {
1912
+ title_card?: {
1913
+ enabled: boolean;
1914
+ text: string;
1915
+ duration_seconds: number;
1916
+ font_size: number;
1917
+ text_color: string;
1918
+ background_color: string;
1919
+ logo_position: "top_left" | "top_center" | "top_right";
1920
+ font?: string | undefined;
1921
+ logo?: string | undefined;
1922
+ } | undefined;
1923
+ outro_card?: {
1924
+ enabled: boolean;
1925
+ text: string;
1926
+ duration_seconds: number;
1927
+ } | undefined;
1928
+ }, {
1929
+ title_card?: {
1930
+ text: string;
1931
+ enabled?: boolean | undefined;
1932
+ duration_seconds?: number | undefined;
1933
+ font?: string | undefined;
1934
+ font_size?: number | undefined;
1935
+ text_color?: string | undefined;
1936
+ background_color?: string | undefined;
1937
+ logo?: string | undefined;
1938
+ logo_position?: "top_left" | "top_center" | "top_right" | undefined;
1939
+ } | undefined;
1940
+ outro_card?: {
1941
+ text: string;
1942
+ enabled?: boolean | undefined;
1943
+ duration_seconds?: number | undefined;
1944
+ } | undefined;
1945
+ }>>;
1946
+ background_music: z.ZodOptional<z.ZodObject<{
1947
+ path: z.ZodString;
1948
+ volume_db: z.ZodDefault<z.ZodNumber>;
1949
+ }, "strip", z.ZodTypeAny, {
1950
+ path: string;
1951
+ volume_db: number;
1952
+ }, {
1953
+ path: string;
1954
+ volume_db?: number | undefined;
1955
+ }>>;
1956
+ captions: z.ZodDefault<z.ZodObject<{
1957
+ enabled: z.ZodDefault<z.ZodBoolean>;
1958
+ format: z.ZodDefault<z.ZodEnum<["srt", "vtt", "both"]>>;
1959
+ }, "strip", z.ZodTypeAny, {
1960
+ enabled: boolean;
1961
+ format: "srt" | "vtt" | "both";
1962
+ }, {
1963
+ enabled?: boolean | undefined;
1964
+ format?: "srt" | "vtt" | "both" | undefined;
1965
+ }>>;
1966
+ output_path: z.ZodDefault<z.ZodString>;
1967
+ }, "strip", z.ZodTypeAny, {
1968
+ format: "mp4";
1969
+ resolution: string;
1970
+ fps: number;
1971
+ codec_video: string;
1972
+ codec_audio: string;
1973
+ quality: "standard" | "draft" | "high";
1974
+ branding: {
1975
+ title_card?: {
1976
+ enabled: boolean;
1977
+ text: string;
1978
+ duration_seconds: number;
1979
+ font_size: number;
1980
+ text_color: string;
1981
+ background_color: string;
1982
+ logo_position: "top_left" | "top_center" | "top_right";
1983
+ font?: string | undefined;
1984
+ logo?: string | undefined;
1985
+ } | undefined;
1986
+ outro_card?: {
1987
+ enabled: boolean;
1988
+ text: string;
1989
+ duration_seconds: number;
1990
+ } | undefined;
1991
+ };
1992
+ captions: {
1993
+ enabled: boolean;
1994
+ format: "srt" | "vtt" | "both";
1995
+ };
1996
+ output_path: string;
1997
+ background_music?: {
1998
+ path: string;
1999
+ volume_db: number;
2000
+ } | undefined;
2001
+ }, {
2002
+ format?: "mp4" | undefined;
2003
+ resolution?: string | undefined;
2004
+ fps?: number | undefined;
2005
+ codec_video?: string | undefined;
2006
+ codec_audio?: string | undefined;
2007
+ quality?: "standard" | "draft" | "high" | undefined;
2008
+ branding?: {
2009
+ title_card?: {
2010
+ text: string;
2011
+ enabled?: boolean | undefined;
2012
+ duration_seconds?: number | undefined;
2013
+ font?: string | undefined;
2014
+ font_size?: number | undefined;
2015
+ text_color?: string | undefined;
2016
+ background_color?: string | undefined;
2017
+ logo?: string | undefined;
2018
+ logo_position?: "top_left" | "top_center" | "top_right" | undefined;
2019
+ } | undefined;
2020
+ outro_card?: {
2021
+ text: string;
2022
+ enabled?: boolean | undefined;
2023
+ duration_seconds?: number | undefined;
2024
+ } | undefined;
2025
+ } | undefined;
2026
+ background_music?: {
2027
+ path: string;
2028
+ volume_db?: number | undefined;
2029
+ } | undefined;
2030
+ captions?: {
2031
+ enabled?: boolean | undefined;
2032
+ format?: "srt" | "vtt" | "both" | undefined;
2033
+ } | undefined;
2034
+ output_path?: string | undefined;
2035
+ }>>;
2036
+ }, "strip", z.ZodTypeAny, {
2037
+ comprehension: {
2038
+ mode: "documents" | "interactive";
2039
+ sources: {
2040
+ path: string;
2041
+ type: "custom" | "prd" | "readme" | "codebase" | "openapi" | "changelog";
2042
+ include?: string[] | undefined;
2043
+ exclude?: string[] | undefined;
2044
+ }[];
2045
+ };
2046
+ script: {
2047
+ style: string;
2048
+ duration_target_seconds: number;
2049
+ highlight_features: string[];
2050
+ vo_review_gate: boolean;
2051
+ };
2052
+ voiceover: {
2053
+ output_dir: string;
2054
+ provider: {
2055
+ name: "elevenlabs";
2056
+ style: number;
2057
+ voice_id: string;
2058
+ model: string;
2059
+ api_key_env: string;
2060
+ endpoint: "with_timestamps" | "basic";
2061
+ stability: number;
2062
+ similarity_boost: number;
2063
+ use_speaker_boost: boolean;
2064
+ speed: number;
2065
+ } | {
2066
+ name: "openai";
2067
+ model: string;
2068
+ api_key_env: string;
2069
+ voice: string;
2070
+ base_url?: string | undefined;
2071
+ } | {
2072
+ name: "custom";
2073
+ module_path: string;
2074
+ options?: Record<string, unknown> | undefined;
2075
+ };
2076
+ alignment_strategy: "required" | "best_effort";
2077
+ alignment_dir: string;
2078
+ duration_drift_threshold_pct: number;
2079
+ drift_strategy: "adjust_timing" | "resynthesize";
2080
+ tail_padding_ms: number;
2081
+ post_process: {
2082
+ debreath: boolean;
2083
+ };
2084
+ pause_placement: {
2085
+ strategy: "action_boundaries" | "trailing";
2086
+ min_silence_ms: number;
2087
+ snap_window_ms: number;
2088
+ };
2089
+ };
2090
+ project: {
2091
+ name: string;
2092
+ product_model?: string | undefined;
2093
+ };
2094
+ recording: {
2095
+ target_url: string;
2096
+ viewport: {
2097
+ width: number;
2098
+ height: number;
2099
+ };
2100
+ browser: "chromium" | "firefox" | "webkit";
2101
+ headless: boolean;
2102
+ output_dir: string;
2103
+ trace_dir: string;
2104
+ cursor_highlight: boolean;
2105
+ cursor_min_motion_ms: number;
2106
+ cursor_max_motion_ms: number;
2107
+ cursor_post_arrival_ms: number;
2108
+ cursor_speed_factor: number;
2109
+ cursor_chain_mode: "strict" | "smart";
2110
+ segment_buffer_ms: number;
2111
+ preflight: boolean;
2112
+ state: {
2113
+ seed_script?: string | undefined;
2114
+ reset_script?: string | undefined;
2115
+ teardown_script?: string | undefined;
2116
+ };
2117
+ auth?: {
2118
+ path: string;
2119
+ type: "setup_script";
2120
+ } | {
2121
+ type: "session";
2122
+ cookies_file: string;
2123
+ local_storage_file?: string | undefined;
2124
+ } | {
2125
+ type: "form";
2126
+ login_url: string;
2127
+ fields: {
2128
+ email: {
2129
+ selector: string;
2130
+ env: string;
2131
+ };
2132
+ password: {
2133
+ selector: string;
2134
+ env: string;
2135
+ };
2136
+ };
2137
+ submit_selector: string;
2138
+ success_url_pattern: string;
2139
+ timeout_ms: number;
2140
+ } | undefined;
2141
+ };
2142
+ llm: {
2143
+ default: {
2144
+ model: string;
2145
+ api_key_env: string;
2146
+ provider: "anthropic";
2147
+ max_tokens?: number | undefined;
2148
+ } | {
2149
+ model: string;
2150
+ api_key_env: string;
2151
+ provider: "openai";
2152
+ base_url?: string | undefined;
2153
+ max_tokens?: number | undefined;
2154
+ } | {
2155
+ provider: "agent_bridge";
2156
+ bridge: {
2157
+ mode: "spawn" | "file_poll";
2158
+ timeout_ms?: number | undefined;
2159
+ command?: string | undefined;
2160
+ args?: string[] | undefined;
2161
+ cwd?: string | undefined;
2162
+ request_dir?: string | undefined;
2163
+ poll_interval_ms?: number | undefined;
2164
+ };
2165
+ } | {
2166
+ module_path: string;
2167
+ provider: "custom";
2168
+ options?: Record<string, unknown> | undefined;
2169
+ };
2170
+ overrides?: {
2171
+ comprehension?: {
2172
+ model: string;
2173
+ api_key_env: string;
2174
+ provider: "anthropic";
2175
+ max_tokens?: number | undefined;
2176
+ } | {
2177
+ model: string;
2178
+ api_key_env: string;
2179
+ provider: "openai";
2180
+ base_url?: string | undefined;
2181
+ max_tokens?: number | undefined;
2182
+ } | {
2183
+ provider: "agent_bridge";
2184
+ bridge: {
2185
+ mode: "spawn" | "file_poll";
2186
+ timeout_ms?: number | undefined;
2187
+ command?: string | undefined;
2188
+ args?: string[] | undefined;
2189
+ cwd?: string | undefined;
2190
+ request_dir?: string | undefined;
2191
+ poll_interval_ms?: number | undefined;
2192
+ };
2193
+ } | {
2194
+ module_path: string;
2195
+ provider: "custom";
2196
+ options?: Record<string, unknown> | undefined;
2197
+ } | undefined;
2198
+ script?: {
2199
+ model: string;
2200
+ api_key_env: string;
2201
+ provider: "anthropic";
2202
+ max_tokens?: number | undefined;
2203
+ } | {
2204
+ model: string;
2205
+ api_key_env: string;
2206
+ provider: "openai";
2207
+ base_url?: string | undefined;
2208
+ max_tokens?: number | undefined;
2209
+ } | {
2210
+ provider: "agent_bridge";
2211
+ bridge: {
2212
+ mode: "spawn" | "file_poll";
2213
+ timeout_ms?: number | undefined;
2214
+ command?: string | undefined;
2215
+ args?: string[] | undefined;
2216
+ cwd?: string | undefined;
2217
+ request_dir?: string | undefined;
2218
+ poll_interval_ms?: number | undefined;
2219
+ };
2220
+ } | {
2221
+ module_path: string;
2222
+ provider: "custom";
2223
+ options?: Record<string, unknown> | undefined;
2224
+ } | undefined;
2225
+ instrument?: {
2226
+ model: string;
2227
+ api_key_env: string;
2228
+ provider: "anthropic";
2229
+ max_tokens?: number | undefined;
2230
+ } | {
2231
+ model: string;
2232
+ api_key_env: string;
2233
+ provider: "openai";
2234
+ base_url?: string | undefined;
2235
+ max_tokens?: number | undefined;
2236
+ } | {
2237
+ provider: "agent_bridge";
2238
+ bridge: {
2239
+ mode: "spawn" | "file_poll";
2240
+ timeout_ms?: number | undefined;
2241
+ command?: string | undefined;
2242
+ args?: string[] | undefined;
2243
+ cwd?: string | undefined;
2244
+ request_dir?: string | undefined;
2245
+ poll_interval_ms?: number | undefined;
2246
+ };
2247
+ } | {
2248
+ module_path: string;
2249
+ provider: "custom";
2250
+ options?: Record<string, unknown> | undefined;
2251
+ } | undefined;
2252
+ } | undefined;
2253
+ };
2254
+ output: {
2255
+ format: "mp4";
2256
+ resolution: string;
2257
+ fps: number;
2258
+ codec_video: string;
2259
+ codec_audio: string;
2260
+ quality: "standard" | "draft" | "high";
2261
+ branding: {
2262
+ title_card?: {
2263
+ enabled: boolean;
2264
+ text: string;
2265
+ duration_seconds: number;
2266
+ font_size: number;
2267
+ text_color: string;
2268
+ background_color: string;
2269
+ logo_position: "top_left" | "top_center" | "top_right";
2270
+ font?: string | undefined;
2271
+ logo?: string | undefined;
2272
+ } | undefined;
2273
+ outro_card?: {
2274
+ enabled: boolean;
2275
+ text: string;
2276
+ duration_seconds: number;
2277
+ } | undefined;
2278
+ };
2279
+ captions: {
2280
+ enabled: boolean;
2281
+ format: "srt" | "vtt" | "both";
2282
+ };
2283
+ output_path: string;
2284
+ background_music?: {
2285
+ path: string;
2286
+ volume_db: number;
2287
+ } | undefined;
2288
+ };
2289
+ }, {
2290
+ voiceover: {
2291
+ provider: {
2292
+ name: "elevenlabs";
2293
+ voice_id: string;
2294
+ style?: number | undefined;
2295
+ model?: string | undefined;
2296
+ api_key_env?: string | undefined;
2297
+ endpoint?: "with_timestamps" | "basic" | undefined;
2298
+ stability?: number | undefined;
2299
+ similarity_boost?: number | undefined;
2300
+ use_speaker_boost?: boolean | undefined;
2301
+ speed?: number | undefined;
2302
+ } | {
2303
+ name: "openai";
2304
+ model?: string | undefined;
2305
+ api_key_env?: string | undefined;
2306
+ voice?: string | undefined;
2307
+ base_url?: string | undefined;
2308
+ } | {
2309
+ name: "custom";
2310
+ module_path: string;
2311
+ options?: Record<string, unknown> | undefined;
2312
+ };
2313
+ output_dir?: string | undefined;
2314
+ alignment_strategy?: "required" | "best_effort" | undefined;
2315
+ alignment_dir?: string | undefined;
2316
+ duration_drift_threshold_pct?: number | undefined;
2317
+ drift_strategy?: "adjust_timing" | "resynthesize" | undefined;
2318
+ tail_padding_ms?: number | undefined;
2319
+ post_process?: {
2320
+ debreath?: boolean | undefined;
2321
+ } | undefined;
2322
+ pause_placement?: {
2323
+ strategy?: "action_boundaries" | "trailing" | undefined;
2324
+ min_silence_ms?: number | undefined;
2325
+ snap_window_ms?: number | undefined;
2326
+ } | undefined;
2327
+ };
2328
+ project: {
2329
+ name: string;
2330
+ product_model?: string | undefined;
2331
+ };
2332
+ recording: {
2333
+ target_url: string;
2334
+ viewport?: {
2335
+ width: number;
2336
+ height: number;
2337
+ } | undefined;
2338
+ browser?: "chromium" | "firefox" | "webkit" | undefined;
2339
+ headless?: boolean | undefined;
2340
+ output_dir?: string | undefined;
2341
+ trace_dir?: string | undefined;
2342
+ cursor_highlight?: boolean | undefined;
2343
+ cursor_min_motion_ms?: number | undefined;
2344
+ cursor_max_motion_ms?: number | undefined;
2345
+ cursor_post_arrival_ms?: number | undefined;
2346
+ cursor_speed_factor?: number | undefined;
2347
+ cursor_chain_mode?: "strict" | "smart" | undefined;
2348
+ segment_buffer_ms?: number | undefined;
2349
+ preflight?: boolean | undefined;
2350
+ state?: {
2351
+ seed_script?: string | undefined;
2352
+ reset_script?: string | undefined;
2353
+ teardown_script?: string | undefined;
2354
+ } | undefined;
2355
+ auth?: {
2356
+ path: string;
2357
+ type: "setup_script";
2358
+ } | {
2359
+ type: "session";
2360
+ cookies_file: string;
2361
+ local_storage_file?: string | undefined;
2362
+ } | {
2363
+ type: "form";
2364
+ login_url: string;
2365
+ fields: {
2366
+ email: {
2367
+ selector: string;
2368
+ env: string;
2369
+ };
2370
+ password: {
2371
+ selector: string;
2372
+ env: string;
2373
+ };
2374
+ };
2375
+ submit_selector: string;
2376
+ success_url_pattern: string;
2377
+ timeout_ms?: number | undefined;
2378
+ } | undefined;
2379
+ };
2380
+ comprehension?: {
2381
+ mode?: "documents" | "interactive" | undefined;
2382
+ sources?: {
2383
+ path: string;
2384
+ type: "custom" | "prd" | "readme" | "codebase" | "openapi" | "changelog";
2385
+ include?: string[] | undefined;
2386
+ exclude?: string[] | undefined;
2387
+ }[] | undefined;
2388
+ } | undefined;
2389
+ script?: {
2390
+ style?: string | undefined;
2391
+ duration_target_seconds?: number | undefined;
2392
+ highlight_features?: string[] | undefined;
2393
+ vo_review_gate?: boolean | undefined;
2394
+ } | undefined;
2395
+ llm?: {
2396
+ default?: {
2397
+ provider: "anthropic";
2398
+ model?: string | undefined;
2399
+ api_key_env?: string | undefined;
2400
+ max_tokens?: number | undefined;
2401
+ } | {
2402
+ provider: "openai";
2403
+ model?: string | undefined;
2404
+ api_key_env?: string | undefined;
2405
+ base_url?: string | undefined;
2406
+ max_tokens?: number | undefined;
2407
+ } | {
2408
+ provider: "agent_bridge";
2409
+ bridge: {
2410
+ mode?: "spawn" | "file_poll" | undefined;
2411
+ timeout_ms?: number | undefined;
2412
+ command?: string | undefined;
2413
+ args?: string[] | undefined;
2414
+ cwd?: string | undefined;
2415
+ request_dir?: string | undefined;
2416
+ poll_interval_ms?: number | undefined;
2417
+ };
2418
+ } | {
2419
+ module_path: string;
2420
+ provider: "custom";
2421
+ options?: Record<string, unknown> | undefined;
2422
+ } | undefined;
2423
+ overrides?: {
2424
+ comprehension?: {
2425
+ provider: "anthropic";
2426
+ model?: string | undefined;
2427
+ api_key_env?: string | undefined;
2428
+ max_tokens?: number | undefined;
2429
+ } | {
2430
+ provider: "openai";
2431
+ model?: string | undefined;
2432
+ api_key_env?: string | undefined;
2433
+ base_url?: string | undefined;
2434
+ max_tokens?: number | undefined;
2435
+ } | {
2436
+ provider: "agent_bridge";
2437
+ bridge: {
2438
+ mode?: "spawn" | "file_poll" | undefined;
2439
+ timeout_ms?: number | undefined;
2440
+ command?: string | undefined;
2441
+ args?: string[] | undefined;
2442
+ cwd?: string | undefined;
2443
+ request_dir?: string | undefined;
2444
+ poll_interval_ms?: number | undefined;
2445
+ };
2446
+ } | {
2447
+ module_path: string;
2448
+ provider: "custom";
2449
+ options?: Record<string, unknown> | undefined;
2450
+ } | undefined;
2451
+ script?: {
2452
+ provider: "anthropic";
2453
+ model?: string | undefined;
2454
+ api_key_env?: string | undefined;
2455
+ max_tokens?: number | undefined;
2456
+ } | {
2457
+ provider: "openai";
2458
+ model?: string | undefined;
2459
+ api_key_env?: string | undefined;
2460
+ base_url?: string | undefined;
2461
+ max_tokens?: number | undefined;
2462
+ } | {
2463
+ provider: "agent_bridge";
2464
+ bridge: {
2465
+ mode?: "spawn" | "file_poll" | undefined;
2466
+ timeout_ms?: number | undefined;
2467
+ command?: string | undefined;
2468
+ args?: string[] | undefined;
2469
+ cwd?: string | undefined;
2470
+ request_dir?: string | undefined;
2471
+ poll_interval_ms?: number | undefined;
2472
+ };
2473
+ } | {
2474
+ module_path: string;
2475
+ provider: "custom";
2476
+ options?: Record<string, unknown> | undefined;
2477
+ } | undefined;
2478
+ instrument?: {
2479
+ provider: "anthropic";
2480
+ model?: string | undefined;
2481
+ api_key_env?: string | undefined;
2482
+ max_tokens?: number | undefined;
2483
+ } | {
2484
+ provider: "openai";
2485
+ model?: string | undefined;
2486
+ api_key_env?: string | undefined;
2487
+ base_url?: string | undefined;
2488
+ max_tokens?: number | undefined;
2489
+ } | {
2490
+ provider: "agent_bridge";
2491
+ bridge: {
2492
+ mode?: "spawn" | "file_poll" | undefined;
2493
+ timeout_ms?: number | undefined;
2494
+ command?: string | undefined;
2495
+ args?: string[] | undefined;
2496
+ cwd?: string | undefined;
2497
+ request_dir?: string | undefined;
2498
+ poll_interval_ms?: number | undefined;
2499
+ };
2500
+ } | {
2501
+ module_path: string;
2502
+ provider: "custom";
2503
+ options?: Record<string, unknown> | undefined;
2504
+ } | undefined;
2505
+ } | undefined;
2506
+ } | undefined;
2507
+ output?: {
2508
+ format?: "mp4" | undefined;
2509
+ resolution?: string | undefined;
2510
+ fps?: number | undefined;
2511
+ codec_video?: string | undefined;
2512
+ codec_audio?: string | undefined;
2513
+ quality?: "standard" | "draft" | "high" | undefined;
2514
+ branding?: {
2515
+ title_card?: {
2516
+ text: string;
2517
+ enabled?: boolean | undefined;
2518
+ duration_seconds?: number | undefined;
2519
+ font?: string | undefined;
2520
+ font_size?: number | undefined;
2521
+ text_color?: string | undefined;
2522
+ background_color?: string | undefined;
2523
+ logo?: string | undefined;
2524
+ logo_position?: "top_left" | "top_center" | "top_right" | undefined;
2525
+ } | undefined;
2526
+ outro_card?: {
2527
+ text: string;
2528
+ enabled?: boolean | undefined;
2529
+ duration_seconds?: number | undefined;
2530
+ } | undefined;
2531
+ } | undefined;
2532
+ background_music?: {
2533
+ path: string;
2534
+ volume_db?: number | undefined;
2535
+ } | undefined;
2536
+ captions?: {
2537
+ enabled?: boolean | undefined;
2538
+ format?: "srt" | "vtt" | "both" | undefined;
2539
+ } | undefined;
2540
+ output_path?: string | undefined;
2541
+ } | undefined;
2542
+ }>;
2543
+ type ShowrunnerConfig = z.infer<typeof showrunnerConfigSchema>;
2544
+ type ComprehensionConfig = z.infer<typeof comprehensionSchema>;
2545
+ type ScriptConfig = z.infer<typeof scriptSchema>;
2546
+ type RecordingConfig = z.infer<typeof recordingSchema>;
2547
+ type VoiceoverConfig = z.infer<typeof voiceoverSchema>;
2548
+ type OutputConfig = z.infer<typeof outputSchema>;
2549
+
2550
+ interface LoadedConfig {
2551
+ config: ShowrunnerConfig;
2552
+ configPath: string;
2553
+ configDir: string;
2554
+ }
2555
+ declare function loadConfig(configPath: string): Promise<LoadedConfig>;
2556
+ declare function validateConfig(input: unknown, configPath?: string): LoadedConfig;
2557
+
2558
+ declare const STAGE_NAMES: readonly ["comprehension", "script", "voiceover", "record", "mux"];
2559
+ type StageName = (typeof STAGE_NAMES)[number];
2560
+ interface PipelineOverrides {
2561
+ /** Force headed recording regardless of `recording.headless` in config. */
2562
+ headed?: boolean;
2563
+ }
2564
+ interface StageResult {
2565
+ stage: StageName;
2566
+ skipped: boolean;
2567
+ reason?: string;
2568
+ durationMs: number;
2569
+ artifacts?: Record<string, string>;
2570
+ warnings?: string[];
2571
+ meta?: Record<string, unknown>;
2572
+ halt?: boolean;
2573
+ }
2574
+ interface PipelineOptions {
2575
+ stages?: StageName[];
2576
+ force?: StageName[];
2577
+ interactive?: boolean;
2578
+ resume?: boolean;
2579
+ dryRun?: boolean;
2580
+ json?: boolean;
2581
+ overrides?: PipelineOverrides;
2582
+ }
2583
+ interface PipelineResult {
2584
+ runId: string;
2585
+ outputPath: string;
2586
+ stages: StageResult[];
2587
+ buildManifestPath: string;
2588
+ }
2589
+
2590
+ declare function run(loaded: LoadedConfig, options?: PipelineOptions): Promise<PipelineResult>;
2591
+
2592
+ type LogLevel = 'debug' | 'info' | 'warn' | 'error';
2593
+ declare const logger: {
2594
+ setLevel(level: LogLevel): void;
2595
+ setJson(json: boolean): void;
2596
+ isJson(): boolean;
2597
+ debug(message: string, fields?: Record<string, unknown>): void;
2598
+ info(message: string, fields?: Record<string, unknown>): void;
2599
+ warn(message: string, fields?: Record<string, unknown>): void;
2600
+ error(message: string, fields?: Record<string, unknown>): void;
2601
+ event(payload: Record<string, unknown>): void;
2602
+ };
2603
+
2604
+ export { type ComprehensionConfig, type OutputConfig, type PipelineOptions, type PipelineResult, type RecordingConfig, type ScriptConfig, type ShowrunnerConfig, type StageName, type VoiceoverConfig, loadConfig, logger, run, validateConfig };